Razlika između primarnog i stranog ključa

Ključne razlike između primarnog i stranog ključa

  • Ograničenje primarnog ključa je stupac koji jedinstveno identificira svaki red u tablici sustava za upravljanje relacijskom bazom podataka, dok je strani ključ stupac koji stvara odnos između dvije tablice.
  • Primarni ključ nikada ne prihvaća null vrijednosti, dok strani ključ može prihvatiti više null vrijednosti.
  • Možete imati samo jedan primarni ključ u tablici, dok možete imati više stranih ključeva u tablici.
  • Vrijednost primarnog ključa ne može se ukloniti iz nadređene tablice, dok se vrijednost stranog ključa može ukloniti iz podređene tablice.
  • Dva retka ne mogu imati identične vrijednosti za primarni ključ; s druge strane, strani ključ može sadržavati duplicirane vrijednosti.
  • Nema ograničenja za umetanje vrijednosti u stupac tablice dok umećete bilo koju vrijednost u tablicu stranog ključa; osigurati da je vrijednost prisutna u stupcu primarnog ključa.
Razlika između primarnog i stranog ključa
Razlika između primarnog i stranog ključa

Ovdje sam analizirao razliku između primarnog ključa i stranog ključa i sveobuhvatno ću procijeniti njihove prednosti i nedostatke.

Što je primarni ključ?

Ograničenje primarnog ključa je stupac ili grupa stupaca koji jedinstveno identificiraju svaki red u tablici sustava upravljanja relacijskom bazom podataka. Ne može biti duplikat, što znači da se ista vrijednost ne smije pojavljivati ​​više od jednom u tablici.

Tablica ne može imati više od jednog primarnog ključa. The Osnovni ključ može se definirati na razini stupca ili tablice. Ako izradite kompozitni primarni ključ, on bi trebao biti definiran na razini tablice.

Primjer primarnog ključa

Sintaksa:

Ispod je sintaksa primarnog ključa:

CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype,  PRIMARY KEY (Column-Name)
.
);    

Ovdje,

  • Table_Name je naziv tablice koju morate kreirati.
  • Column_Name je naziv stupca koji ima primarni ključ.

Primjer:

StudID Rola br Ime Prezime E-mail
1 11 mužjak nekih malih životinja Cijena abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

U gornjem primjeru, stvorili smo tablicu studenata sa stupcima kao što su StudID, Roll No., First Name, Prezime i Email. StudID je odabran kao primarni ključ jer može jedinstveno identificirati druge retke u tablici.

Zašto koristiti primarni ključ?

Tijekom mojih godina rukovanja sustavima baza podataka primijetio sam ove nedostatke i prednosti korištenja primarnog ključa:

  • Glavni cilj primarnog ključa je identificirati svaki zapis u tablici baze podataka.
  • Primarni ključ možete koristiti kada ne dopustite nekome da unese nulte vrijednosti.
  • Ako izbrišete ili ažurirate zapise, poduzet će se radnja koju ste naveli kako bi se osigurao integritet podataka.
  • Izvedite operaciju ograničenja da biste odbili operaciju brisanja ili ažuriranja za nadređenu tablicu.
  • Podaci su organizirani u slijedu grupiranih indeksa kad god fizički organizirate tablicu DBMS-a.

Što je vanjski ključ?

Strani ključ je stupac koji stvara odnos između dvije tablice. Svrha stranog ključa je održati integritet podataka i omogućiti navigaciju između dvije različite instance entiteta. Djeluje kao unakrsna referenca između dvije tablice jer upućuje na primarni ključ druge tablice. Svaki odnos u bazi podataka trebao bi biti podržan stranim ključem.

Primjer stranog ključa

Sintaksa:

Ispod je sintaksa stranog ključa:

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);

Ovdje,

  • Parametar Naziv tablice označava naziv tablice koju ćete kreirati.
  • Parametri column1, column2… opisuju stupce koje je potrebno dodati u tablicu.
  • Ograničenje označava naziv ograničenja koje stvarate.
  • Reference označavaju tablicu s primarnim ključem.

Primjer:

DeptCode Naziv odjela
001 Znanost
002 Engleski
005 računalo
ID učitelja Fname Ime
B002 David Warner
B017 Sara Josip
B009 mikrofon Brunton

U gornjem primjeru imamo dvije tablice: nastavnik i odjel u školi. Međutim, ne postoji način da se vidi koja pretraga radi u kojem odjelu.

U ovoj tablici, dodavanjem stranog ključa u Deptcode imenu nastavnika, možemo stvoriti odnos između dvije tablice.

ID učitelja DeptCode Fname Ime
B002 002 David Warner
B017 002 Sara Josip
B009 001 mikrofon Brunton

Ovaj koncept je također poznat kao referencijalni integritet.

Zašto koristiti strani ključ?

Iz onoga što sam vidio, evo važnih razloga za implementaciju stranih ključeva:

  • Strani ključevi pomažu vam da migrirate entitete pomoću primarnog ključa iz nadređene tablice.
  • A strani kljuc omogućuje povezivanje dvije ili više tablica.
  • To čini podatke vaše baze podataka dosljednima.
  • Strani ključ se može koristiti za podudaranje stupca ili kombinacije stupaca s primarnim ključem u nadređenoj tablici.
  • SQL ograničenje stranog ključa koristi se kako bi se osiguralo da referentni integritet roditeljskih podataka odgovara vrijednostima u podređenoj tablici.

Razlika između primarnog ključa i stranog ključa

Dopustite mi da podijelim važnu razliku između primarnog ključa i stranog ključa, kao što sam osobno iskusio:

Primarni ključ naspram stranog ključa
Primarni ključ naspram stranog ključa
Osnova usporedbe Glavni ključ Strani kljuc
Definicija Ograničenje primarnog ključa je stupac ili grupa stupaca koji jedinstveno identificiraju svaki redak u tablici sustav upravljanja relacijskim bazama podataka. Strani ključ je stupac koji stvara odnos između dvije tablice.
osnovni Pomaže vam da jedinstveno identificirate zapis u tablici. To je polje u tablici koje je primarni ključ druge tablice.
NULL Primarni ključ nikada ne prihvaća nulte vrijednosti. Strani ključ može prihvatiti više null vrijednosti.
Indeksiranje Primarni ključ je klasterirani indeks, a podaci u tablici DBMS fizički su organizirani u nizu klasteriranog indeksa. Strani ključ ne može automatski stvoriti indeks, klasteriran ili neklasteriran.
Računati Možete imati jedan primarni ključ u tablici. Možete imati više stranih ključeva u tablici.
brisanje Vrijednost primarnog ključa ne može se ukloniti iz nadređene tablice. Vrijednost stranog ključa može se ukloniti iz podređene tablice.
Privremeni stol Primarni ključ možete implicitno definirati u privremenim tablicama. Ne možete definirati strane ključeve na lokalnim ili globalnim privremenim tablicama.
Odnos Primarni ključ je klasterirani indeks. Prema zadanim postavkama, to nije klasterirani indeks.
kopiranje Dva retka ne mogu imati identične vrijednosti za primarni ključ. Strani ključ može sadržavati duplicirane vrijednosti.
Umetanje Nema ograničenja za umetanje vrijednosti u stupac tablice. Prilikom umetanja bilo koje vrijednosti u tablicu stranih ključeva, osigurajte da je vrijednost prisutna u stupcu primarnog ključa.

Kako odabrati između primarnog ključa i stranog ključa

Prema onome što smo vidjeli, primarni ključevi jedinstveno identificiraju unose u tablici, a strani ključevi povezuju te unose u tablicama, što je ključno za održavanje integriteta podataka i omogućavanje učinkovitog pronalaženja podataka.