Primarni ključ vs inozemni ključ: u čemu je razlika?

Sadržaj:

Anonim

Prije nego što naučimo razliku između primarnog i stranog ključa, naučimo:

Što su ključevi?

Ključevi su atribut koji vam pomaže identificirati red (skup) u relaciji (tablici). Omogućuju vam pronalaženje odnosa između dvije tablice. Tipke vam pomažu jedinstveno prepoznati redak u tablici kombinacijom jednog ili više stupaca u toj tablici. Ključ baze podataka također je koristan za pronalaženje jedinstvenog zapisa ili retka iz tablice.

Što je odnos baze podataka?

Relacija baze podataka je asocijacija između jedne ili više tablica izrađenih pomoću izraza pridruživanja. Koristi se za učinkovito dohvaćanje podataka iz baze podataka. Postoje prvenstveno tri vrste odnosa 1) Jedan na jedan, 2) Jedan na mnogo, 3) Mnogo na mnogo.

Što je primarni ključ?

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

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

Što je strani ključ?

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

KLJUČNE RAZLIKE:

  • Ograničenje primarnog ključa je stupac koji jedinstveno identificira svaki redak u tablici sustava upravljanja relacijskim bazama podataka, dok je inozemni 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.
  • U tablici možete imati samo jedan primarni ključ, dok u tablici možete imati više stranih ključeva.
  • 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.
  • Nijedna dva retka ne mogu imati identične vrijednosti za primarni ključ, s druge strane strani ključ može sadržavati dvostruke vrijednosti.
  • Nema ograničenja za umetanje vrijednosti u stupac tablice tijekom umetanja bilo koje vrijednosti u tablicu stranog ključa, osigurajte da je vrijednost prisutna u stupcu primarnog ključa.

Zašto koristiti primarni ključ?

Evo slabosti / prednosti korištenja primarnog ključa:

  • Glavni je cilj primarnog ključa identificirati svaki zapis u tablici baze podataka.
  • Primarni ključ možete koristiti kada ne dopuštate nekome unos null vrijednosti.
  • Ako izbrišete ili ažurirate zapise, poduzet će se radnja koju ste naveli kako bi se osigurala cjelovitost podataka.
  • Izvršite operaciju ograničenja kako biste odbili operaciju brisanja ili ažuriranja za nadređenu tablicu.
  • Podaci su organizirani u slijedu klasteriziranog indeksa kad god fizički organizirate DBMS tablicu.

Zašto koristiti strani ključ?

Evo važnih razloga upotrebe stranog ključa:

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

Primjer primarnog ključa

Sintaksa:

Ispod je sintaksa primarnog ključa:

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

Ovdje,

  • Table_Name je naziv tablice koju morate stvoriti.
  • Ime stupca naziv je stupca koji ima primarni ključ.

Primjer:

StudID Rola br Ime Prezime E-mail
1 11 Tom Cijena Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
2 12 Nick Wright Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
3 13 Dana Natan Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.

U gornjem primjeru stvorili smo studentsku tablicu sa stupcima poput StudID, Roll No, First Name, Prezime i Email. StudID je odabran kao primarni ključ jer može jedinstveno prepoznati ostale retke u tablici.

Primjer stranog ključa

Sintaksa:

Ispod je sintaksa stranog ključa:

CREATE TABLE 
(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 stvoriti.
  • Parametri stupac1, stupac2… prikazuju stupce koje treba dodati u tablicu.
  • Ograničenje označava naziv ograničenja koje stvarate.
  • Reference ukazuju na tablicu s primarnim ključem.

Primjer:

DeptCode Ime odjela
001 Znanost
002 Engleski
005 Računalo
ID učitelja Fname Lname
B002 David Warner
B017 Sara Josipa
B009 Mikrofon Brunton

U gornjem primjeru imamo dva stola, učitelja 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 Deptcodeu u ime učitelja, možemo stvoriti odnos između dvije tablice.

ID učitelja DeptCode Fname Lname
B002 002 David Warner
B017 002 Sara Josipa
B009 001 Mikrofon Brunton

Ovaj koncept poznat je i kao referentna cjelovitost.

Razlika između primarnog i stranog ključa

Evo važne razlike između primarnog i stranog ključa:

Osnovni ključ Strani kljuc
Ograničenje primarnog ključa je stupac ili grupa stupaca koji jedinstveno identificiraju svaki redak u tablici relacijskog sustava upravljanja bazom podataka. Strani ključ je stupac koji stvara odnos između dvije tablice.
Pomaže vam da jedinstveno prepoznate zapis u tablici. To je polje u tablici koje je primarni ključ druge tablice.
Primarni ključ nikada ne prihvaća null vrijednosti. Strani ključ može prihvatiti više null vrijednosti.
Primarni ključ je klasterirani indeks, a podaci u DBMS tablici fizički su organizirani u slijedu klasteriziranog indeksa. Strani ključ ne može automatski stvoriti indeks, klasteriran ili neklasteriran.
Možete imati jedan primarni ključ u tablici. U tablici možete imati više stranih ključeva.
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.
Primarni ključ možete implicitno definirati na privremenim tablicama. Ne možete definirati strane ključeve na lokalnim ili globalnim privremenim tablicama.
Primarni ključ je klasterizirani indeks. Prema zadanim postavkama to nije klasterizirani indeks.
Nijedna dva retka ne mogu imati identične vrijednosti za primarni ključ. Strani ključ može sadržavati dvostruke vrijednosti.
Nema ograničenja za umetanje vrijednosti u stupac tablice. Tijekom umetanja bilo koje vrijednosti u tablicu stranog ključa, osigurajte da je vrijednost prisutna u stupcu primarnog ključa.