Ano ang Mga Foreign Key sa SQL Databases?

Ano ang Mga Foreign Key sa SQL Databases?

Pinapayagan ng mga dayuhang susi ang mga administrator ng database na madaling makilala ang iba't ibang mga koneksyon na umiiral sa loob ng isang SQL database management system.





Nagsasagawa ang SQL ng mga pagpapatakbo sa matematika sa data sa loob ng isang sistema ng pamamahala ng database. Naglalaman ang mga database na ito ng iba't ibang mga talahanayan na ang bawat tindahan ng data sa isang tukoy na nilalang. Kung mayroon kang isang database ng pag-upa ng kotse, isang entity (o mesa) sa database na iyon ay magiging mga customer (na mag-iimbak ng lahat ng personal na data sa bawat customer).





Naglalaman ang mga talahanayan ng database ng mga hilera at haligi, kung saan naghahatid ang bawat hilera ng isang tala at ang bawat haligi ay nagtataglay ng data na tukoy sa katangian.





Sa isang sistema ng pamamahala ng database, ang bawat tala (o hilera) ay dapat na natatangi.

Pangunahing Mga Susi

Bagaman ang itinakda ay ang bawat tala sa isang talahanayan ay dapat na magkakaiba, hindi ito palaging ang kaso. Nagpapatuloy sa halimbawa ng database ng pag-arkila ng kotse, kung ang database ay naglalaman ng dalawang customer na ang bawat isa ay may pangalang John Brown, ang isang John Brown ay maaaring asahan na ibalik ang isang Mercedes-Benz na hindi niya nirentahan.



Ang paglikha ng isang pangunahing susi ay magpapagaan ng peligro na ito. Sa isang sistema ng pamamahala ng SQL database, isang pangunahing susi ay isang natatanging pagkakakilanlan na nakikilala ang isang record mula sa iba pa.

kailangan bang magtugma ang mga stick stick

Samakatuwid, ang bawat tala sa isang SQL database management system ay dapat magkaroon ng pangunahing susi.





Paggamit ng Pangunahing Mga Susi sa isang Database

Upang maisama ang pangunahing mga susi sa isang sistema ng pamamahala ng database gamit ang SQL, maaari mo lamang itong idagdag bilang isang normal na katangian kapag lumilikha ng isang bagong talahanayan. Kaya't ang talahanayan ng mga customer ay maglalaman ng apat na mga katangian (o mga haligi):

  • CarOwnerID (na mag-iimbak ng pangunahing key)
  • Pangalan
  • Huling pangalan
  • Numero ng telepono

Kaugnay: Paano Lumikha ng isang Talahanayan sa SQL





Ngayon ang bawat tala ng kostumer na pumapasok sa database ay magkakaroon ng isang natatanging numero ng pagkakakilanlan, pati na rin isang apelyido, apelyido, at numero ng telepono. Ang numero ng telepono ay hindi sapat na natatangi upang maging pangunahing susi, sapagkat bagaman natatangi ito sa isang tao nang paisa-isang, madaling baguhin ng isang tao ang kanilang numero, nangangahulugang ito ay magiging kabilang na sa iba.

Isang Rekord Na May Pangunahing Pangunahing Halimbawa

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

Ang SQL code sa itaas ay magdaragdag ng isang bagong tala sa paunang mayroon Mga suki mesa Ipinapakita ng talahanayan sa ibaba ang bagong talahanayan ng customer na may dalawang tala ni John Brown.

Ang Panlabas na Susi

Ngayon mayroon kang pangunahing mga susi na natatanging makilala ang isang tagapag-upa ng kotse mula sa isa pa. Ang problema lang ay, sa database, walang tunay na koneksyon sa pagitan ng bawat John Brown at ng kotse na inuupahan niya.

Samakatuwid, ang posibilidad ng paggawa ng isang pagkakamali ay mayroon pa rin. Dito naglalaro ang mga banyagang susi. Ang paggamit ng isang pangunahing susi upang malutas ang problema ng kalabuan ng pagmamay-ari ay makakamit lamang kung ang pangunahing susi ay dumoble bilang isang banyagang susi.

Ano ang isang Foreign Key?

Sa isang sistema ng pamamahala ng SQL database, ang isang banyagang susi ay isang natatanging pagkakakilanlan o isang kumbinasyon ng mga natatanging pagkakakilanlan na kumokonekta sa dalawa o higit pang mga talahanayan sa isang database.

Sa apat na mga sistema ng pamamahala ng database ng SQL na mayroon, ang sistemang pamamahala ng pamanggit na database ay ang pinakatanyag. Kapag nagpapasya kung aling talahanayan sa isang pamanggit na database ang dapat magkaroon ng isang banyagang susi, dapat mo munang kilalanin kung aling talahanayan ang paksa at alin ang object sa kanilang relasyon.

Bumalik sa database ng pag-upa ng kotse, upang ikonekta ang bawat customer sa tamang kotse kakailanganin mong maunawaan na ang isang customer (ang paksa) ay nagpaparenta ng kotse (ang object). Samakatuwid, ang banyagang susi ay dapat na nasa talahanayan ng mga kotse.

Ang SQL code na bumubuo ng isang talahanayan na may isang banyagang susi ay bahagyang naiiba mula sa pamantayan.

Lumilikha ng isang Talahanayan Na May Isang Pangunahing Halimbawa ng Foreign

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

Tulad ng nakikita mo sa code sa itaas, ang isang banyagang key ay dapat na malinaw na makilala bilang tulad, kasama ang isang sanggunian sa pangunahing key na konektado sa bagong talahanayan.

windows 7 tema para sa windows 8

Kaugnay: Ang Mahalagang SQL ay Nag-uutos sa Cheat Sheet para sa Mga Nagsisimula

Upang magdagdag ng isang talaan sa bagong talahanayan, kakailanganin mong tiyakin na ang halaga sa banyagang key na patlang ay tumutugma sa halaga sa pangunahing pangunahing patlang ng orihinal na talahanayan.

Pagdaragdag ng isang Rekord Sa Isang Panlabas na Halimbawang Halimbawa

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

Ang code sa itaas ay lumilikha ng isang bagong tala sa bago Mga sasakyan talahanayan, na gumagawa ng sumusunod na resulta.

Talaan ng Kotse

Mula sa talahanayan sa itaas, maaari mong makilala ang tamang John Brown na nagpapaupa ng isang Mercedes-Benz ng dayuhang susi sa talaan.

Advance Foreign Keys

Mayroong dalawang iba pang mga paraan upang magamit ang isang banyagang key sa isang database.

Kung titingnan mo muli ang kahulugan ng isang banyagang key sa itaas, mahahanap mo na sinasabi na ang isang banyagang key ay maaaring isang natatanging pagkakakilanlan o isang kumbinasyon ng mga natatanging pagkakakilanlan.

Bumalik sa halimbawa ng database ng pag-arkila ng kotse, makikita mo na ang paglikha ng isang bagong tala (ng parehong kotse) sa tuwing inuupahan ng isang customer ang kotseng iyon, tinalo ang layunin ng Mga sasakyan mesa Kung ang mga kotse ay ipinagbibili at ibinebenta sa isang solong customer nang isang beses, ang umiiral na database ay perpekto; ngunit ibinigay na ang mga kotse ay mga pagrenta mayroong isang mas mahusay na paraan upang kumatawan sa data na ito.

Mga Composite Key

Ang isang pinaghalo susi ay may dalawa o higit pang mga natatanging pagkakakilanlan. Sa isang pamamagitang database, magkakaroon ng mga pagkakataon kung kailan ang paggamit ng isang solong banyagang susi ay hindi sapat na kumakatawan sa mga ugnayan na mayroon sa loob ng database na iyon.

Sa halimbawa ng pag-upa ng kotse, ang pinakapraktikal na diskarte ay ang paglikha ng isang bagong talahanayan na nag-iimbak ng mga detalye ng renta. Para sa impormasyon sa talahanayan ng pag-upa ng kotse upang maging kapaki-pakinabang, kailangan nitong kumonekta sa parehong mga talahanayan ng kotse at ng customer.

Lumilikha ng isang Talahanayan Na May Composite Foreign Keys

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

Ang code sa itaas ay naglalarawan ng isang mahalagang punto; kahit na ang isang talahanayan sa isang database ng SQL ay maaaring magkaroon ng higit sa isang banyagang susi, maaari lamang magkaroon ng isang solong pangunahing susi. Ito ay dahil dapat magkaroon lamang ng isang natatanging paraan upang makilala ang isang talaan.

Kinakailangan upang pagsamahin ang lahat ng tatlong mga katangian sa talahanayan upang magkaroon ng isang natatanging susi. Ang isang customer ay maaaring magrenta ng higit sa isang kotse sa parehong araw (kaya CustomerID at Pinaupahan ng Petsa ay hindi isang mahusay na kumbinasyon) higit sa isang customer ay maaari ring magrenta ng parehong kotse sa parehong araw (kaya Numero ng lisensya at Pinaupahan ng Petsa ay hindi magandang kombinasyon).

Gayunpaman, ang paglikha ng isang pinaghalo susi na nagsasabi kung aling mga customer, anong kotse, at sa anong araw gumagawa ng isang mahusay na natatanging susi. Ang natatanging susi na ito ay kumakatawan sa parehong isang pinaghalo banyagang susi at isang pinaghalo pangunahing pangunahing susi.

kung paano gawing mas mahusay ang pagpapatakbo ng mga laro sa laptop

Mga Pangunahing Pangunahing Susi ng dayuhan

Oh oo, ang mga pangunahing pangunahing susi ay lumabas. Bagaman walang opisyal na pangalan para dito, ang isang banyagang susi ay maaari ding maging pangunahing susi sa parehong talahanayan. Nangyayari ito kapag lumikha ka ng isang bagong talahanayan na naglalaman ng dalubhasang data tungkol sa isang mayroon nang nilalang (o tala sa ibang talahanayan).

Sabihin na si Fred (na nagtatrabaho sa kumpanya ng pag-upa ng kotse) ay nasa database ng kumpanya sa ilalim ng talahanayan ng empleyado. Pagkatapos ng ilang taon, siya ay naging isang superbisor at naidagdag sa talahanayan ng superbisor.

Si Fred ay empleyado pa rin at magkakaroon pa rin ng parehong id number. Kaya't ang empleyado id ni Fred ay nasa talahanayan ng superbisor bilang isang banyagang susi na magiging pangunahing susi din sa mesang iyon (dahil walang katuturan na lumikha ng isang bagong numero ng id para kay Fred ngayong siya ay isang superbisor).

Ngayon Maaari Mong Makilala ang Mga Foreign Key sa SQL Databases

Ang mga banyagang susi ay nagkokonekta ng iba't ibang mga talahanayan sa loob ng isang database ng SQL. Mula sa artikulong ito, maaari mong makita kung ano ang isang banyagang susi, kung paano ito gumagana, at kung bakit mahalagang magkaroon ng mga ito sa isang database. Nauunawaan mo rin ang pangunahing, at mas kumplikado, na mga form ng mga banyagang susi.

Kung sa tingin mo ay kawili-wili ang mga banyagang susi, magkakaroon ka ng araw sa larangan kapag nagsimula kang gumamit ng proyekto at mga pagpapatakbo ng pagpili upang tanungin ang iyong mga database ng SQL.

Magbahagi Magbahagi Mag-tweet Email Alamin Kung Paano Gamitin ang Mga Pagpapatakbo ng Proyekto at Seleksyon sa SQL

Makita ang mga database ng pamamagitang SQL sa pamamagitan ng pag-unawa sa mga pagpapatakbo ng Project at Selection sa mga halimbawang ito.

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • Programming
  • SQL
  • database
Tungkol sa May-akda Kadeisha Kean(21 Artikulo Nai-publish)

Si Kadeisha Kean ay isang Full-Stack Software Developer at Teknikal / Teknikal na Manunulat. Siya ay may natatanging kakayahan na gawing simple ang ilan sa mga pinaka kumplikadong teknolohikal na konsepto; paggawa ng materyal na madaling maunawaan ng anumang baguhan sa teknolohiya. Siya ay madamdamin tungkol sa pagsusulat, pagbuo ng mga kagiliw-giliw na software, at paglalakbay sa buong mundo (sa pamamagitan ng mga dokumentaryo).

Higit pa Mula kay Kadeisha Kean

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe