Ano ang Relasyon sa Database?

Talaan ng mga Nilalaman:

Ano ang Relasyon sa Database?
Ano ang Relasyon sa Database?
Anonim

Ang isang relasyon ay naitatag sa pagitan ng dalawang talahanayan ng database kapag ang isang talahanayan ay gumagamit ng isang dayuhang key na tumutukoy sa pangunahing key ng isa pang talahanayan. Ito ang pangunahing konsepto sa likod ng terminong relational database.

Paano Gumagana ang Foreign Key para Magtatag ng Relasyon

Ang pangunahing key ay natatanging kinikilala ang bawat tala sa talahanayan. Ito ay isang uri ng susi ng kandidato na karaniwang ang unang column sa isang talahanayan at maaaring awtomatikong mabuo ng database upang matiyak na ito ay natatangi. Ang foreign key ay isa pang candidate key (hindi ang primary key) na ginagamit para i-link ang isang record sa data sa ibang table.

Halimbawa, isaalang-alang ang dalawang talahanayang ito na tumutukoy kung aling guro ang nagtuturo kung aling kurso. Dito, ang pangunahing key ng talahanayan ng Courses ay Course_ID. Ang foreign key nito ay Teacher_ID:

Course_ID Course_Name Teacher_ID
Course_001 Biology Teacher_001
Course_002 Math Teacher_002
Course_003 English Teacher_003

Makikita mong tumutugma ang foreign key sa Courses sa isang primary key sa Teachers:

Teacher_ID Pangalan_Guro
Teacher_001 Carmen
Teacher_002 Veronica
Teacher_003 Jorge

Masasabi nating nakatulong ang Teacher_ID foreign key na magtatag ng ugnayan sa pagitan ng Courses at ng Teachers table.

Image
Image

Mga Uri ng Mga Relasyon sa Database

Gamit ang mga foreign key, o iba pang candidate key, maaari kang magpatupad ng tatlong uri ng mga ugnayan sa pagitan ng mga talahanayan:

One-to-One

Ang ganitong uri ng relasyon ay nagbibigay-daan lamang sa isang talaan sa bawat panig ng relasyon. Ang pangunahing susi ay nauugnay sa isang tala lamang (o wala) sa isa pang talahanayan. Halimbawa, sa isang kasal, ang bawat asawa ay may isa lamang na asawa. Ang ganitong uri ng relasyon ay maaaring ipatupad sa iisang talahanayan at samakatuwid ay hindi gumagamit ng foreign key.

Isa-sa-Marami

Ang isa-sa-maraming relasyon ay nagbibigay-daan sa isang talaan sa isang talahanayan na maiugnay sa maraming talaan sa isa pang talahanayan. Isaalang-alang ang isang negosyong may database na mayroong mga talahanayan ng Mga Customer at Order.

Ang isang customer ay maaaring bumili ng maraming order, ngunit ang isang order ay hindi ma-link sa maraming customer. Samakatuwid ang talahanayan ng Mga Order ay maglalaman ng foreign key na tumugma sa pangunahing key ng talahanayan ng Mga Customer, habang ang talahanayan ng Mga Customer ay walang foreign key na tumuturo sa talahanayan ng Mga Order.

Many-to-Many

Ito ay isang kumplikadong relasyon kung saan maraming record sa isang table ang maaaring mag-link sa maraming record sa isa pang table. Halimbawa, malamang na kailangan ng aming negosyo ang mga talahanayan ng Mga Customer at Order, at malamang na kailangan din ng talahanayan ng Mga Produkto.

Muli, ang ugnayan sa pagitan ng talahanayan ng Mga Customer at Mga Order ay isa-sa-marami, ngunit isaalang-alang ang kaugnayan sa pagitan ng talahanayan ng Mga Order at Mga Produkto. Maaaring maglaman ng maraming produkto ang isang order, at maaaring ma-link ang isang produkto sa maraming order dahil maaaring magsumite ang ilang customer ng order na naglalaman ng ilan sa mga parehong produkto. Ang ganitong uri ng relasyon ay nangangailangan ng hindi bababa sa tatlong talahanayan.

Bakit Mahalaga ang Mga Relasyon sa Database?

Ang pagtatatag ng mga pare-parehong ugnayan sa pagitan ng mga talahanayan ng database ay nakakatulong na matiyak ang integridad ng data, na nag-aambag sa normalisasyon ng database. Halimbawa, paano kung hindi kami nag-link ng anumang mga talahanayan sa pamamagitan ng isang foreign key at sa halip ay pinagsama ang data sa mga talahanayan ng Courses at Teachers, tulad nito:

Teacher_ID Pangalan_Guro Course
Teacher_001 Carmen Biology, Math
Teacher_002 Veronica Math
Teacher_003 Jorge English

Ang disenyong ito ay hindi nababaluktot at lumalabag sa unang prinsipyo ng normalization ng database, First Normal Form, na nagsasaad na ang bawat table cell ay dapat maglaman ng isang solong, discrete na piraso ng data.

O marahil ay nagpasya kaming magdagdag ng pangalawang record para sa Carmen, upang maipatupad ang 1NF:

Teacher_ID Pangalan_Guro Course
Teacher_001 Carmen Biology
Teacher_001 Carmen Math
Teacher_002 Veronica Math
Teacher_003 Jorge English

Mahina pa rin itong disenyo, na nagpapakilala ng hindi kinakailangang pagdoble at tinatawag na mga anomalya sa pagpapasok ng data, na nangangahulugang maaari itong mag-ambag sa hindi pare-parehong data. Halimbawa, kung maraming record ang isang guro, paano kung kailangang i-edit ang ilang data, ngunit hindi napagtatanto ng taong nagsasagawa ng pag-edit ng data na maraming record ang umiiral? Ang talahanayan ay maglalaman ng iba't ibang data para sa parehong indibidwal, nang walang anumang malinaw na paraan upang makilala ito o maiwasan ito.

Ang paghahati sa talahanayang ito sa dalawang talahanayan, Mga Guro at Kurso, ay lumilikha ng wastong ugnayan sa pagitan ng data at samakatuwid ay nakakatulong na matiyak ang pagkakapare-pareho at katumpakan ng data.

Inirerekumendang: