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 | |
---|---|---|---|---|
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