Ang isa sa mga pinakamahalagang konsepto sa mga database ay ang paglikha ng mga relasyon sa pagitan ng mga talahanayan ng database. Nagbibigay ang mga relasyon na ito ng isang mekanismo para sa pag-link ng data na nakaimbak sa maraming mga talahanayan at pagkuha sa isang mahusay na paraan. Upang lumikha ng isang link sa pagitan ng dalawang talahanayan, kailangan mong tukuyin ang isang banyagang susi sa isang talahanayan na tumutukoy sa isang haligi sa isa pang talahanayan.
Mga Tables ng Database at Mga Relasyon
Maaaring alam mo na ang mga database ay isang serye lamang ng mga talahanayan , katulad ng kung ano ang maaari mong gamitin sa isang programa ng spreadsheet , tulad ng Microsoft Excel. Sa katunayan, maaari mo ring i-convert ang isang Excel spreadsheet sa isang database. Kung saan ang mga database ay magkakaiba mula sa mga spreadsheet, gayunpaman, ay pagdating sa pagtatayo ng mga makapangyarihang relasyon sa pagitan ng mga talahanayan.
Isaalang-alang, halimbawa, isang database na ginagamit ng isang kumpanya upang subaybayan ang impormasyon ng tao na mapagkukunan. Ang database na iyon ay maaaring may talahanayan na tinatawag na Mga empleyado na naglalaman ng sumusunod na impormasyon para sa bawat miyembro ng kawani ng kumpanya:
- Employee ID
- Pangalan
- Huling pangalan
- Telepono sa opisina
- Telepono sa bahay
- PosisyonID
Sa halimbawang ito, ang empleyado ID ay isang natatanging nabuong integer na nakatalaga sa bawat empleyado kapag sila ay idinagdag sa database. Ang ID ng posisyon ay isang code ng trabaho na ginagamit upang puntahan ang posisyon ng empleyado sa kumpanya. Sa ganitong pamamaraan, ang isang empleyado ay maaaring magkaroon lamang ng isang posisyon, ngunit ang maramihang (o hindi) empleyado ay maaaring punan ang bawat posisyon. Halimbawa, maaaring mayroon kang daan-daang empleyado na may posisyon ng "Cashier".
Maaaring maglaman din ang database ng isang table na tinatawag na Mga Posisyon na may sumusunod na karagdagang impormasyon tungkol sa bawat posisyon:
- PosisyonID
- Pamagat
- Antas ng trabaho
- SkillCategory
- Lokasyon
Ang field ng Posisyon ID sa talahanayan na ito ay katulad ng field ng Employee ID sa talahanayan ng mga empleyado - ito ay isang natatanging nabuong integer na nilikha kapag ang isang posisyon ay idinagdag sa database.
Kapag pumunta kami sa pull ng listahan ng mga empleyado mula sa database, natural na humiling ng pangalan ng bawat tao at ng kanilang pamagat. Gayunman, ang impormasyong ito ay naka-imbak sa maramihang mga talahanayan ng database, kaya maaari itong makuha lamang gamit ang isang JOIN query na nangangailangan ng umiiral na kaugnayan sa pagitan ng mga talahanayan.
Kapag tiningnan mo ang istraktura ng mga talahanayan, ang patlang na tumutukoy sa relasyon ay marahil halata - ang posisyon ng Posisyon ID. Ang bawat empleyado ay maaaring magkaroon lamang ng isang posisyon at ang posisyon na iyon ay makikilala sa pamamagitan ng pagsasama ng Posisyon ID mula sa kaukulang entry ng mga posisyon ng table. Bilang karagdagan sa pagiging pangunahing susi para sa mga talahanayan ng Mga Posisyon, sa halimbawang ito, ang posisyon ng Posisyon ID ay isang banyagang susi mula sa talahanayan ng Mga Empleyado hanggang sa mga talahanayan ng Mga Posisyon. Pagkatapos ng database ay maaaring gamitin ang field na ito upang iugnay ang impormasyon mula sa maraming mga talahanayan at tiyakin na ang anumang mga pagbabago o mga pagdaragdag sa database ay patuloy na nagpapatupad ng referential integridad .
Sa sandaling nakilala mo ang banyagang susi, maaari mong sige at hilahin ang ninanais na impormasyon mula sa database gamit ang sumusunod na query:
Paglikha ng mga Dayuhang Key sa SQL Server
Sa teknikal na paraan, hindi mo kailangang tukuyin ang relasyon ng tahasang upang magawa ang mga tanong tulad ng nasa itaas. Gayunpaman, kung tahasang tinukoy mo ang relasyon gamit ang isang banyagang pagpigil sa key, ang database ay makakapagpatupad ng ilang gawaing pang-housekeeping para sa iyo:
- Kapag nagdadagdag ka ng isang bagong rekord sa talahanayan ng Mga Empleyado, tiyakin ng database na ang Posisyon ID na iyong ipinasok ay isang wastong pangunahing susi sa mga talahanayan ng Mga Posisyon.
- Kung babaguhin mo ang isang Posisyon ID sa table ng mga Posisyon, ang database ay maaaring magsagawa ng kinakailangang mga update sa talahanayan ng Mga Empleyado upang mapanatili ang pare-pareho.
- Ang database ay maaaring maprotektahan laban sa epekto ng isang pagtanggal ng isang posisyon mula sa talahanayan ng posisyon sa pamamagitan ng alinman sa pagtanggi na tanggalin ang isang posisyon na may kaukulang mga entry ng empleyado o magsagawa ng cascading tanggalin ang lahat ng kaugnay na empleyado.
Narito kung paano mo malilikha ang dayuhang susi sa SQL Server:
ALTER TABLE Mga empleyado ADD FOREIGN KEY (PosisyonID) Mga pamagat ng REFERENCES (PositionID)Maaari ka ring lumikha ng isang banyagang susi kapag lumikha ka ng isang talahanayan sa pamamagitan ng pagdaragdag ng sugnay:
FOREIGN KEY REFERENCES Posisyon (PositionID)sa dulo ng kahulugan ng haligi para sa dayuhang hanay ng haligi.