VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not null osigurava da atribut mora imati/nesmije imati Null vrijednost Unique vrijednost atributa mora biti jedinstvena Primarni ključ jedinstveno identificira redak tablice Vanjski ključ omogućava referencijalni integritet podataka (osigurava da su dozvoljene samo one vrijednosti koje se već pojavljuju u bazi) Veličina tipa podatka unaprijed je određena veličina podatka Specifične vrijednosti
VRIJEDNOSTI ATRIBUTA NULL vrijednost: Ponekad se događa da informacije koje treba unijeti u bazu podataka nisu potpune neke informacije trenutno nisu poznate neke informacije uopće ne postoje Informacije koje nedostaju prikazuju se kao NULL vrijednosti Null vrijednost je neovisna o tipu podatka kojeg predstavlja Null vrijednost je vrijednost koja ne postoji u definiranoj domeni atributa - vrijednost koja nije definirana Nikakva vrijednost nije unešena Nepoznata vrijednost Nije isto što i prazni string Nije isto što i nula
REFERENCIJALNI INTEGRITET RI se odnosi na ograničenja (constraint) prilikom korištenja tablica (relacija) baze ( redova podataka (prilikom izmjene ili brisanja RI se odnosi na: tablice koje imaju vanjske ključeve - 3NF tablice sa složenim ključevima, ako elementi ključa predstavljaju vanjski ključ prema drugoj tablici
REFERENCIJALNI INTEGRITET Dakle, referencijalni integritet je način zaštite (od pogrešnog unosa ili brisanja) povezanih podataka koji se nalaze u različitim tablicama. Vanjski ključ jedne tablice se povezuje s primarnim ključem druge tablice. Uvođenjem referencijalnog integriteta omogućeni su izmjena ili brisanje zapisa iz tablice na strani primarnog ključa, a da se pritom izmjene koje se naprave automatski prenose u tablicu na strani vanjskog ključa. Referencijalni integritet osigurava postojanost svih podataka u bazi.
REFERENCIJALNI INTEGRITET Izvodi se nad naredbama: Update Izmjena podataka u tablici Delete Brisanje podataka iz tablice Na svakoj naredbi izvodi se na slijedeće načine: Cascade - Kaskada Restrict - Restrikcija ( Brisanje Clear ili Set Null - Nulovanje (ne
RI NA UPDATE-U Cascade (kaskada) prilikom izmjene vrijednosti primarnog ključa u jednoj tablici dogoditi će se i promjena vrijednosti tog atributa u tablici u kojoj on predstavlja vanjski ključ. To se zove kaskadni update. Restrict (restrikcija) zahtjev za izmjenom vrijednosti primarnog ključa u jednoj tablici biti će odbijen ako postoji barem jedan red sa postojećom starom vrijednošću tog atributa u tablici u kojoj on predstavlja vanjski ključ. Clear ili Set null (nulovanje) prilikom izmjene vrijednosti primarnog ključa u jednoj tablici dogoditi će se postavljanje vrijednosti tog atributa u tablici u kojoj on predstavlja vanjski ključ na NULL vrijednost.
RI NA DELETE-U Cascade (kaskada) prilikom brisanja vrijednosti primarnog ključa u jednoj tablici dogoditi će se i brisanje vrijednosti tog atributa u tablici u kojoj on predstavlja vanjski ključ. To se zove kaskadni delete. Restrict (restrikcija) zahtjev za brisanjem vrijednosti primarnog ključa u jednoj tablici biti će odbijen ako postoji barem jedan red sa postojećom vrijednošću tog atributa u tablici u kojoj on predstavlja vanjski ključ. Clear ili Set null (nulovanje) prilikom brisanja vrijednosti primarnog ključa u jednoj tablici dogoditi će se postavljanje vrijednosti tog atributa u tablici u kojoj on predstavlja vanjski ključ na NULL vrijednost.
KREIRANJE OGRANIČENJA VANJSKOG KLJUČA ALTER TABLE Naziv tablice ADD CONSTRAINT Naziv ograničenja FOREIGN KEY Naziv V. Ključa(Atribut1, ) REFERENCES Vezna tablica(atribut1, ) ON DELETE Akcija ON UPDATE Akcija; Akcija - Cascade, Restrict, Clear ili Set Null
KREIRANJE VANJSKIH KLJUČEVA Da bi se ključevi mogli kreirati u QueryBrowseru potrebno je napraviti slijedeće za svaku tablicu na kojoj se kreiraju: DTM na željenu tablicu Edit Table Table Options označiti InnoDB Storage Engine InnoDB je mehanizam pohranjivanja podataka
KREIRANJE VANJSKIH KLJUČEVA ALTER TABLE Kupci ADD CONSTRAINT V_Gradovi FOREIGN KEY V_Gradovi(PostBr) REFERENCES Gradovi(PostBr) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE Racuni ADD CONSTRAINT V_Kupci FOREIGN KEY V_Kupci(NazivKupca) REFERENCES Kupci(NazivKupca) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE ArtikliRac ADD CONSTRAINT V_Artikli FOREIGN KEY V_Artikli(NazivArtikla) REFERENCES Artikli(NazivArtikla) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE ArtikliRac ADD CONSTRAINT V_Racuni FOREIGN KEY V_Racuni(BrojRac) REFERENCES Racuni(BrojRac) ON DELETE CASCADE ON UPDATE CASCADE;