Professional Documents
Culture Documents
Baze Podataka 04
Baze Podataka 04
PK & FK ključevi
SQL SELECT
Nastavljamo dalje
Kardinalnost veze
Opisivanje učešća u vezi između entiteta
Veze
▪ Veza povezuje dva (ili više) entiteta
▪ Ali samo tamo gde veza između entiteta postoji
▪ Ograničenje učešća zovemo kardinalnost veze
▪ Jedan-na-jedan
▪ Jedan-na-više
▪ Više-na-više
Jedan-na-jedan (1:1)
▪ Kada jedan red iz entiteta
vezuje za jedan red iz
drugog entiteta
Na primer:
▪ Ko je sa kime u braku
▪ Ko je potpisao koji ugovor
Svaka osoba nije u braku ili jeste sa najviše jednom osobom
Svaki student je potpisao tačno jedan ugovor o školovanju
Svaki ugovor o školovanju je potpisao tačno jedan student
Jedan-na-više (1:M)
▪ Kada jedan red iz entiteta
vezuje za više redova iz
drugog entiteta
Na primer:
▪ Ko su deca od majke
▪ Ko su studenti na smeru
Svaka žena je rodila nijedno, jedno ili više dece
Svako dete je rodila tačno jedna žena
Svaki smer ima bar jednog studenta
Svaki student je na tačno jednom smeru
Više-na-više (M:N)
▪ Kada jedan red iz entiteta
vezuje za više redova iz
drugog entiteta i obrnuto
Na primer:
▪ Ko posećuje koju lokaciju
▪ Ko je položio koji predmet
Svaka osoba posećuje bar jednu lokaciju (ili više)
Svaku lokaciju posećuje bar jedna osoba (ili više)
Svaki student nije položio ništa, ili je položio jedan ili više predmeta
Svaki predmet je položio bar jedan student (a verovatno i više)
Granice
▪ Imamo gornju granicu (max) i donju granicu (min)
▪ Pravilo je da je uvek
▪ Možemo da imamo:
▪ 0,1 – minimalno 0, maksimalno 1
▪ 1,1 – minimalno 1, maksimalno 1
▪ 0,M – minimalno 0, maksimalno M (više)
▪ 1,M – minimalno 1, maksimalno M (više)
▪ Proizvoljno – 0,4 ili 1,10 ...
Svaka osoba mora biti rođena u nekom gradu
Svaka osoba mora živeti u nekom gradu
Teoretski možemo i ovako ali nije praktično (nije ista informacija)
Naziv veze ovde ne može da pokrije sve mogućnosti
Svaka zgrada mora da ima bar šest stanova (inače nije zgrada)
Svaki stan je uvek u samo jednoj zgradi
Primarni (PK) ključ
Bez ovoga baze podataka nemaju smisla
Čemu služi primarni ključ
▪ Unikatno pronalazi svaki zapis (svaki red, n-torku) u tabeli
(entitetu)
▪ Jedan primarni ključ → jedan zapis
▪ Svaki deo primarnog ključa mora biti unet
(imati vrednost)
Kakav može da bude
▪ Po broju atributa:
▪ Prost – jedan atribut čini primarni ključ
▪ Kompozitan – dva ili više atributa čine primarni ključ
▪ Po „izvoru“:
▪ Prirodan – već postoji (npr: broj indeksa, JMBG, kod valute)
▪ Generisan / Zamenjen – dodeljena nasumična vrednost
Kako nalazimo prirodan PK
1. Pronađemo sve super ključeve
sve kombinacije atributa koje mogu da identifikuju zapis
2. Pronađemo sve ključeve kandidate
najkraći super ključevi koji se više ne mogu skratiti
3. Jedan od kandidata biramo za primarni
onaj koji je najbolji sa stanovništva performansi
4. Ostali kandidati postaju alternativni ključ
preporučen korak
Prirodni primarni ključevi
▪ JMBG za osobe
▪ Broj ugovora za ugovore
▪ IATA kod za aerodrome
▪ ISO kodovi za valute, zemlje, jezike
▪ Titula + ime + prezime za kraljevsku dinastiju
▪ Broj formulara za dokumenta
Primeri
▪ https://www.iban.com/country-codes
▪ https://en.wikipedia.org/wiki/Language_code
▪ https://en.wikipedia.org/wiki/ISO_4217
▪ https://en.wikipedia.org/wiki/ISO_9362
▪ https://en.wikipedia.org/wiki/ISO/IEC_5218
▪ https://knjigovodja.in.rs/sh/sifrarnik-delatnosti
Osobine dobrog primarnog ključa
▪ Jednostavan ključ (jedan atribut)
▪ Fizički mala veličina (broj / datum / par karaktera teksta)
▪ Nepromenljiva veličina u bajtovima
▪ Uglavnom već uređene vrednosti (datum da, tekst?)