1.integritet

21
Referencijalni integritet Da bismo osigurali integritet podataka u bazi, potrebno je uključiti opciju Referencijalnog integriteta. Uključivanjem ove opcije osiguravamo da se: − ne može mijenjati vrijednost primarnog ključa ako postoji povezani slog udrugoj tablici ne može izbrisati slog u tablici primarnog ključa ako postoji povezani slog udrugoj tablici − ne može unijeti vrijednost vanjskog ključa prije nego se unese ista vrijednost kao primarni ključ u povezanoj tablici. Uključivanje opcije Referencijalnog integriteta: U prozoru Odnosi (Slika 39.) pokrenemo Izgled tablice (engl. Edit Relationship) prozor (desni klik na veznu crtu ili klik na Uredi odnose u grupi Alati) i uključimo opciju Nametni referencijalni integritet (engl. Enforce Referential Integrity). Opcije Kaskadno ažuriraj srodna polja (engl. Cascade Update Related Fields) i Kaskadno izbriši srodna polja (engl. Cascade Delete Related Fields) ažuriraju ili brišu promjene odnosno zapise u svim ostalim tablicama koje su povezane. Na samom dnu prozora vidimo vrstu odnosa, odnosno kojeg je tipa odabrana relacija (Jedan- Na_više). 1. Ograničenja u relacionom modelu. DINAMIČKA PRAVILA INTEGRITETA Pravila integriteta definišu dozvoljena stanja i dozvoljene prelaze sistema iz stanja u stanje. Pravilo

Upload: dragan-karanovic

Post on 06-Nov-2015

4 views

Category:

Documents


1 download

DESCRIPTION

int

TRANSCRIPT

Referencijalni integritetDa bismo osigurali integritet podataka u bazi, potrebno je ukljuiti opciju Referencijalnog integriteta. Ukljuivanjem ove opcije osiguravamo da se: ne moe mijenjati vrijednost primarnog kljua ako postoji povezani slog udrugoj tablici ne moe izbrisati slog u tablici primarnog kljua ako postoji povezani slog udrugoj tablici ne moe unijeti vrijednost vanjskog kljua prije nego se unese ista vrijednost kao primarni klju u povezanoj tablici.

Ukljuivanje opcije Referencijalnog integriteta:U prozoru Odnosi (Slika 39.) pokrenemo Izgled tablice (engl. Edit Relationship) prozor(desni klik na veznu crtu ili klik na Uredi odnose u grupi Alati) i ukljuimo opciju Nametnireferencijalni integritet (engl. Enforce Referential Integrity).Opcije Kaskadno auriraj srodna polja (engl. Cascade Update Related Fields) i Kaskadnoizbrii srodna polja (engl. Cascade Delete Related Fields) auriraju ili briu promjeneodnosno zapise u svim ostalim tablicama koje su povezane. Na samom dnu prozoravidimo vrstu odnosa, odnosno kojeg je tipa odabrana relacija (Jedan-Na_vie).

1. Ogranienja u relacionom modelu.DINAMIKA PRAVILA INTEGRITETAPravila integriteta definiu dozvoljena stanja i dozvoljene prelaze sistema iz stanja u stanje. Pravilointegriteta u relacionom modelu se iskazuje definisanjem ogranienja na vrednosti atributa iakcijama koje se preduzimaju kada neka operacija auriranja narui posmatrano ogranienje.OGRANIENJA I PRAVILA INTEGRITETAUobiajeno je da se u relacionom modelu definiu dve vrste pravila integriteta: Pravila integriteta modela, koja su posledica strukture relacinog modela, pa su zbog toga opta imoraju da vae u svakom konkretnom relacionom modelu.Definiu se dva opta pravila integriteta relacionog modela:(1) Integritet entiteta (integritet kljua): Ni jedan atribut koji je primarni klju ili deoprimarnog kljua neke bazne relacije ne moe da uzme nula vrednost.(2) Referencijalni integritet. Ako neka bazna relacija (recimo R2) poseduje spoljni klju(recimo SK) koji ovu relaciju povezuje sa nekom drugom baznom relacijom (recimo R1), prekoprimarnog kljua (recimo PK), tada svaka vrednost SK mora biti bilo jednaka nekoj vrednostiPK, ili biti nula vrednost. Relacije R1 i R2 ne moraju biti Poslovna pravila integriteta, odnosno specifina ogranienja za dati relacioni model. Naziv"poslovna" proistie iz injenice da se preko ovih ogranienja iskazuju specifini odnosi vrednostiatributa koji vae u datom realnom (najee poslovnom) sistemu.Uobiajeno je da se ova pravila integriteta podele nasledee podtipove:Pravila integriteta za domene, preko kojih se specifikuje koje vrednosti postoje u domenu;Pravila integriteta za atribute, preko kojih se definiu dozvoljene vrednosti nekog atributanezavisno od vrednosti drugih atributa u bazi;Pravila integriteta za relacije, preko kojih je mogue vezati vrednost jednog, za vrednostdrugog atributa u jednoj relaciji;Pravila integriteta za bazu, preko kojih je mogue povezati vrednosti atributa iz vie relacija.SQL standard podrzava sledece vrste ogranicenja:Ogranicenja domenaOgranicenja tabela i kolonaOpsta ogranicenja Ogranicenje domena je CHECK ogranicenje. Primenjuje se na sve kolone definisane nadposmatranim domenom. Ogranicenje tabele definisano je za jednu baznu tabelu. Ogranicenje tabele je:-UNIQUE ogranicenje,-PRIMARY KEY ogranicenje,-referencijalno (FOREIGN KEY) ogranicenje ili-CHECK ogranicen2-UNIQUE ogranicenje obezbedjuje jedinstvenost vrednosti jedne ili vise kolona bazne tabele. UNIQUEogranicenje je zadovoljeno ako i samo ako ne postoje dva reda bazne tabele sa istim definisanim(NOT NULL) vrednostima u kolonama nad kojima je ogranicenje specificirano.-PRIMARY KEY ogranicenje definise primarni kljuc tabele. Ono je zadovoljeno ako i samo ako nepostoje dva reda bazne tabele sa istim vrednostima u kolonama nad kojima je ogranicenjespecificirano i ne postoji ni jedna nedefinisana vrednost ni u jednoj od navedenih kolona.-Referencijalno ogranicenje realizuje referencijalni integritet na taj nacin sto specificira jednu ili visekolona bazne tabele kao referencirajuce kolone i njima odgovarajuce referencirane kolone u nekoj(ne neophodno razlicitoj) baznoj tabeli.Tabela sa referencirajucim kolonama naziva se referencirajuca tabela, a tabela sareferenciranim kolonama - referencirana tabela. Nad referenciranim kolonama referenciranetabele definisano je PRIMARY KEY ili UNIQUE ogranicenje. Referencijalno ogranicenje jezadovoljeno ako su, za svaki red referencirajuce tabele, vrednosti referencirajucih kolonajednake vrednostima odgovarajucih referenciranih kolona nekog reda referencirane tabele.Ako neka od referencirajucih kolona sadrzi null vrednost, zadovoljenje referencijalnogintegriteta zavisi od tretmana null vrednosti (match opcija). Kao deo specifikacijereferencijalnog ogranicenja mogu se navesti i akcije za zadovoljavanje ogranicenja, kojimase definisu promene koje treba sprovesti nad referencirajucom tabelom, a bez kojih bipromene nad referenciranom tabelom dovele do narusavanja referencijalnog ogranicenja. CHECK ogranicenje definise uslov. Ogranicenje je naruseno ako je za bilo koji red tabele rezultatevaluacije uslova FALSE (lazno), a zadovoljeno ako je rezultat TRUE (istinito) ili UNKNOWN(nepoznato). Opste ogranicenje (assertion) je CHECK ogranicenje, kojim se definise uslov nad podacima visetabela baze podataka. Ogranicenje je naruseno ukoliko je rezultat evaluacije uslova FALSE (lazno), azadovoljeno ako je rezultat TRUE (istinito) ili UNKNOWN (nepoznato). SQL:1999 standard, kao i SQL-92, definise ogranicenje kolone kao sintaksnu skracenicuogranicenja tabele . Medjutim, pored UNIQUE, PRIMARY KEY, FOREIGN KEY i CHECK ogranicenja,ogranicenje kolone moze biti i NOT NULL.21. Vrste ogranienja u relacionom modelu. Pokazati na primeru definisanje ogranienja.Kada se proveravaju ogranienja?Ogranicenja domenaOgranicenja tabela i kolonaOpsta ogranicenja21 Ogranicenje domena je CHECK ogranicenje. Primenjuje se na sve kolone definisane nadposmatranim domenom. Ogranicenje tabele definisano je za jednu baznu tabelu. Ogranicenje tabele je:-UNIQUE ogranicenje,-PRIMARY KEY ogranicenje,-referencijalno (FOREIGN KEY) ogranicenje ili-CHECK ogranicen-UNIQUE ogranicenje obezbedjuje jedinstvenost vrednosti jedne ili vise kolona bazne tabele. UNIQUEogranicenje je zadovoljeno ako i samo ako ne postoje dva reda bazne tabele sa istim definisanim(NOT NULL) vrednostima u kolonama nad kojima je ogranicenje specificirano.CREATE TABLE RADNIK(...MLB CHAR (13) UNIQUE,......);-PRIMARY KEY ogranicenje definise primarni kljuc tabele. Ono je zadovoljeno ako i samo ako nepostoje dva reda bazne tabele sa istim vrednostima u kolonama nad kojima je ogranicenjespecificirano i ne postoji ni jedna nedefinisana vrednost ni u jednoj od navedenih kolona.CREATE TABLE ODELJENJE(ODELJENJE# INTEGER PRIMARY KEY,......);-Referencijalno ogranicenje realizuje referencijalni integritet na taj nacin sto specificira jednu ili visekolona bazne tabele kao referencirajuce kolone i njima odgovarajuce referencirane kolone u nekoj(ne neophodno razlicitoj) baznoj tabeli.CREATE TABLE RADNIK(......ODELJENJE# INTEGER NOT NULLREFERENCES ODELJENJE (ODELJENJE#),... );22Tabela sa referencirajucim kolonama naziva se referencirajuca tabela, a tabela sareferenciranim kolonama - referencirana tabela. Nad referenciranim kolonama referenciranetabele definisano je PRIMARY KEY ili UNIQUE ogranicenje. Referencijalno ogranicenje jezadovoljeno ako su, za svaki red referencirajuce tabele, vrednosti referencirajucih kolonajednake vrednostima odgovarajucih referenciranih kolona nekog reda referencirane tabele.Ako neka od referencirajucih kolona sadrzi null vrednost, zadovoljenje referencijalnogintegriteta zavisi od tretmana null vrednosti (match opcija). Kao deo specifikacijereferencijalnog ogranicenja mogu se navesti i akcije za zadovoljavanje ogranicenja, kojimase definisu promene koje treba sprovesti nad referencirajucom tabelom, a bez kojih bipromene nad referenciranom tabelom dovele do narusavanja referencijalnog ogranicenja. CHECK ogranicenje definise uslov. Ogranicenje je naruseno ako je za bilo koji red tabele rezultatevaluacije uslova FALSE (lazno), a zadovoljeno ako je rezultat TRUE (istinito) ili UNKNOWN(nepoznato).CREATE TABLE RADNIK(...IME VARCHAR (20) NOT NULL CHECK(IME = UPPER (IME)),......); Opste ogranicenje (assertion) je CHECK ogranicenje, kojim se definise uslov nad podacima visetabela baze podataka. Ogranicenje je naruseno ukoliko je rezultat evaluacije uslova FALSE (lazno), azadovoljeno ako je rezultat TRUE (istinito) ili UNKNOWN (nepoznato). SQL:1999 standard, kao i SQL-92, definise ogranicenje kolone kao sintaksnu skracenicuogranicenja tabele . Medjutim, pored UNIQUE, PRIMARY KEY, FOREIGN KEY i CHECK ogranicenja,ogranicenje kolone moze biti i NOT NULL.Provera ogranicenja: Ogranicenja se, po default-u, proveravaju na kraju izvrsavanja svake SQL naredbe. SQL:1999 standard dozvoljava da se provera ogranicenja odlozi i izvrsi na kraju transakcije. Za svako ogranicenje je moguce specificirati da li je ili ne dozvoljeno odlaganje provere do krajatransakcije, sto se zapisuje navodjenjem opcije[NOT] DEFERRABLE. Ako je izabrana opcija DEFERRABLE, tada je neophodno navesti da li je na pocetku transakcijeprovera ogranicenja odlozena (INITIALLY DEFERRED) ili ne (INITIALLY IMMEDIATE). Provera ogranicenja, koje je specificirano kao INITIALLY IMMEDIATE DEFERRABLE, moze se odlozitido kraja transakcije koriscenjem naredbe SET CONSTRAINTS.5. INTEGRITET PODATAKA[footnoteRef:1] [1: Prema: Baze podataka; Veleuilite Split, 2004 [online] dostupno na:www.vsmti.hr/nastava/nastavni.. ./1433-bpliteratura-pomskripta.htm.]

Integritetom podataka osigurava se njihova suvislost i postie se da podaci odgovaraju tono zadanimpravilima i formatima u okviru baze podataka. Svaka je baza podataka vie ili manje vjerna slika svijetakoji nas okruuje, tj. onog njegovog dijela o kojem elimo obraivati podatke. Pri tome se baza podatakasastoji od podataka koji su meusobno povezani na razliite naine i njihove vrijednosti predstavljaju diorealnog okruja. Potrebno je definirati odreena pravila kojima je zadatak postavljanje ogranienja kojapostoje kako na pojavljivanje vrijednosti pojedinih atributa, tako i na njihovo meusobno povezivanje. Tase pravila nazivaju pravila integriteta (integrity rules) i od ogromnog su znaenja za ispravnofunkcioniranje sustava i zatitu informacija.INTEGRITET ENTITETA DOMENA PODATAKADomena podataka predstavlja skup vrijednosti koje odreeni atribut moe poprimiti. Pojedinanavrijednost atributa se smatra najmanjom nedjeljivom semantikom jedinicom podataka. Domena sedefinira za svaki atribut i predstavlja podatke koji pripadaju istom tipu podataka. Mijeanje vie tipovapodataka unutar jedne domene nije doputeno.Primjer: Promatrajmo entitet STUDENT i njegov atribut DATUM ROENJA. Ovaj atribut daje podatako tome kada je roen student. Radi se o podatku koji mora udovoljavati standardnom tipu podataka kojiprikazuje datum u uobiajenom formatu dan.mjesec.godina. Logino je da se za ovaj atribut vee tippodataka datuma, koji osigurava prikaz podataka u eljenom formatu. Meutim definiranje tipa podatakaza pojedini atribut najee nije dovoljno da bi se osigurala suvislost podataka. Pretpostavimo da senalazimo u godini 2001, te da u tablicu STUDENT elimo unijeti podatak o novom studentu, za kojegupisujemo datum roenja 11.05.2006. Ovaj podatak je sa stajalita formata podataka potpuno ispravan, alinije logian, budui je student svakako morao biti roen prije. Stoga je uz svaki atribut osim tipa podatakapotrebno definirati i ogranienja, koja osiguravaju realnost podataka.REFERENCIJALNI INTEGRITETOsigurava loginu vezu i pravila odnosa meu podacima u tablicama koje su relacijski povezane.U tablici ne moe postojati vrijednost stranog kljua za koju ne postoji ista vrijednost primarnogkljua u osnovnoj tablici.

Izmeu tablica STUDENT i UPISNI LIST postoji relacija one-to-many koja je ostvarena stranim kljuemu tablici UPISNI LIST (Student_id). Referencijalni integritet definira pravila unosa, brisanja ipromjene(auriranja) podataka, kako bi se osigurala konzistentnost podataka u bazi. Na dizajneru bazepodataka je da definira ponaanje baze prilikom pojedinih promjena. Pri tome postoje dvije mogunostiponaanja sustava.a) Traena akcija se odbija i u bazi se na dogaaju nikakve promjene.b) Akcija se doputa, ali se uz nju pokreu jo neke akcije koje imaju svrhu uspostaviti konzistentnostbaze podatakaFK18Unos podatakaZabranjen je unos podatka u tablicu, sa nekom vrijednost stranog kljua, ako u osnovnoj tablici ne postojiista vrijednost primarnog kljua. (Restricted).Brisanje podataka1. Ogranieno (Restricted) - Brisanje reda sa odreenom vrijednou primarnog kljua dozvoljeno jesamo ako se ta vrijednost ne pojavljuje u drugoj tablici kao strani klju. Primjer: Ne moe se uklonitipojedinog studenta iz tablice STUDENT, ako u tablici upisni list postoje njegovi upisni listovi.2. Stupnjevano Kaskadno (Cascade) brisanje. Brisanje podatka sa odreenom vrijednosti primarnogkljua izaziva brisanje svih podataka u drugoj tablici gdje se ta vrijednost primarnog kljua pojavljujekao strani klju. Primjer: Brisanjem pojedinog studenta iz tablice STUDENT, automatski se briu svinjegovi upisni listovi iz tablice UPISNI LIST.3. Nuliranje (Nullifies) brisanjem odreene vrijednosti primarnog kljua, najprije se sve istevrijednosti stranog kljua postavljaju na null vrijednost, a onda se iz osnovne tablice brie tavrijednost primarnog kljua. Primjer: Brisanjem pojedinog studenta iz tablice STUDENT, najprije seza sve upisne listove koji pripadaju tome studentu, atribut student_id, koji je u tablici UPISNI LISTstrani klju postavlja na null vrijednost, a potom se uklanja eljeni podatak iz tablice STUDENT.Auriranje podataka1. Ogranieno (Restricted) : Auriranje vrijednosti primarnog kljua dozvoljeno je samo ako se tavrijednost ne pojavljuje u drugoj tablici kao strani klju.2. Stupnjevano Kaskadno (Cascade) auriranje. Auriranje vrijednosti primarnog kljua izazivaauriranje svih podataka u drugoj tablici gdje se ta vrijednost primarnog kljua pojavljuje kao straniklju.3. Nuliranje (Nullifies) auriranjem odreene vrijednosti primarnog kljua, najprije se sve istevrijednosti stranog kljua postavljaju na null vrijednost, a onda se u osnovnoj tablici mijenja tavrijednost primarnog kljua.Prilikom definiranja tipa akcije vezane za pravila referencijalnog integriteta, dizajner baze podataka morarjeiti dilemu: moe li strani klju poprimiti null vrijednost?Iako je odgovor na prvi pogled NE, to je najei sluaj u praksi, postoje sluajevi kad je to mogue. Upromatranom primjeru relacijske veze meu entitetima STUDENT i UPISNI LIST, null vrijednoststranog kljua (student_id u tablici UPISNI LIST) nema nikakvog smisla. To bi znailo da je mogueevidentirati upisni list koji nije povezan sa niti jednim studentom, to nije realno. Postoje meutimsituacije kada je realna mogunost da strani klju poprimi null vrijednost. Ukoliko je relacijska veza Rizmeu entiteta E i F definirana sa:card(E, R)=(0,n) i card(F,R)=(0,1)radi se o relaciji jedan-na-vie (1n), koja se ostvaruje stranim kljuem u tablici F, pri emu taj straniklju moe poprimiti null vrijednost. Ako je pri tome primarni klju entiteta E sloen (sastoji se od vieatributa-kolona), to podrazumijeva da e i strani klju u tablici F takoer biti sloen. Ako je strani kljusloen, tada vrijednosti njegovih atributa za pojedine elemente entiteta moraju biti ili sve poznate ili svenull vrijednosti. To znai da nije doputeno da neke vrijednosti atributa koje ine strani klju budu null, adruge ne.U sluajevima kada nije dozvoljeno da strani klju poprimi null vrijednost, razumljivo da nije moguedefinirati referencijalni integritet zasnovan na nuliranju.1.4.3 Trigeri[footnoteRef:2] [2: laeti]

Svi dosad pomenuti oblici uslova integriteta ukljucuju, eksplicitno ili implicitno,pored tvrdenja, i akciju koju sistem preduzima u slucaju da tvr denje nije tacno. Na primer, kod specificnih uslova integriteta koji se odnose na strukturu domena,pokusaj da se unese vrednost atributa koja nije iz odgovarajuceg domena odbijase. To odbijanje da se registruje vrednost predstavlja akciju koja se preduzima uslucaju da uslov integriteta nije zadovoljen. Pokusaj da se izbrise n-torka iz jednerelacije, sa vrednoscu primarnog kljuca koja postoji kao vrednost stranog kljucan-torke zavisne relacije, odbija se, ili proizvodi kaskadno brisanje odgovarajucihn-torki iz zavisne relacije, odnosno postavljanje markera nedostajucih vrednostistranog kljuca u odgovarajuce n-torke zavisnih relacija (o ovim efektima brisanjabice vise reci u odeljku o SQL podrsci brisanju).Opstija forma uslova integriteta, kojom se moze zadati proizvoljna akcija uslucaju proizvoljnog (navedenog) dogadaja nad objektom u bazi, zove se triger(okidac, engl. trigger). Triger je proceduralni mehanizam koji specificnoj operacijimodifikovanja podataka triger operaciji, nad specificnom baznom relacijom,pridruzuje niz SQL iskaza, triger proceduru, koja se aktivira tj. izvrsi kadgod seizvrsi triger operacija.Triger se moze koristiti za validaciju ulaznih podataka, za automatsko generisanjevrednosti unesene vrste, za citanje iz ili upis u druge tabele u cilju uspostavljanjamedusobnih veza, za podrsku uzbunjivanju (alarmiranju) kroz poruke elektronske poste. Koriscenje trigera omogucuje brzi razvoj aplikacija, globalnonametanje ogranicenja (uslova integriteta) i lakse odrzavanje aplikacija i podataka.U sistemima koji podrzavaju mehanizam trigera uobicajeno je da za svaku odoperacija unosenja, izmene i brisanja postoje po dve vrste trigera kojima se definisuprocedure koje ta operacija aktivira: triger cija se triger procedura aktivira preizvrsenja same operacije (pre-triger) i triger cija se triger procedura aktivira posleizvrsenja operacije (posle-triger). Pre-trigeri koriste se najcesce za proveru nekihuslova pre izvrsenja triger procedure. Posle-trigeri koriste se za propagiranje vrednostiprema potrebi, ili za izvodenje drugih zadataka kao sto je slanje poruke, koji mogu biti deo triger operacije.Primer 1.1 Za relacije P (pisac) i KP (autor), sa pripadnim atributima, u DB2UDB sistemu mogao bi da definise sledeci triger vezan za registraciju novog autorskogdela, tj. za unosenje n-torke u relaciju KP:CREATE TRIGGER KP UNOSAFTER INSERT ON KP1.4 Integritetni deo relacionog modela 25REFERENCING NEW AS NKPFOR EACH ROW MODE DB2SQLUPDATE PSET BR NASLOVA = BR NASLOVA + 1WHERE P SIF = NKP.P SIF(ovaj se triger odnosi na automatsko uvecanje broja naslova autora za 1, a aktivirase kadgod se unese podatak o novoj knjizi tog autora; dakle, triger operacija jeoperacija unosenja INSERT u tabelu KP, a triger procedura sastoji se od jednogjedinog SQL iskaza azuriranja UPDATE tabele P; uvecanje u tabeli P izvrsavase posle AFTER izvrsenog unosa u tabelu KP; nova uneta vrsta u tabelu KPdobija ime NKP opcijom REFERENCING; triger se aktivira za svaku novu unetuvrstu u tabelu KP FOR EACH ROW, dok je DB2SQL jedini podrzani vid trigerau ovom sistemu).Na slican nacin mogu se definisati i trigeri pri brisanju, odnosno izmeni podatkao autorskom delu:CREATE TRIGGER KP BRISAFTER DELETE ON KPREFERENCING OLD AS OKPFOR EACH ROW MODE DB2SQLUPDATE PSET BR NASLOVA = BR NASLOVA - 1WHERE P SIF = OKP.P SIF)CREATE TRIGGER KP AZURAFTER UPDATE OF P SIF ON KPREFERENCING NEW AS NKP OLD AS OKPFOR EACH ROW MODE DB2SQLBEGIN ATOMICUPDATE PSET BR NASLOVA = BR NASLOVA - 1WHERE P SIF = OKP.P SIF;UPDATE PSET BR NASLOVA = BR NASLOVA + 1WHERE P SIF = NKP.P SIFEND(posto se triger procedura poslednjeg trigera sastoji od dva SQL iskaza, neophodnoje zagraditi ih BEGIN ATOMIC END konstrukcijom, koja ukazuje da se ilioba iskaza moraju izvrsiti uspesno ili nijedan).Uslov integriteta koji kontrolise odnos starih i novih vrednosti kolona priazuriranju moze se sada izraziti trigerom cija se triger procedura sastoji od iskazagenerisanja greske u slucaju da odnos nije valjan, i izvestavanja o toj gresci.26 1 Relacioni model podatakaPrimer 1.2 Zahtev da pri promeni statusa izdavaca (atribut STATUS tabele I),novi status mora biti veci od starog, inace se promena ne izvrsava vec se izdajeporuka o gresci, moze biti realizovan sledecim trigerom u sistemu DB2:CREATE TRIGGER N STATUSNO CASCADE BEFORE UPDATE OF STATUS ON IREFERENCING NEW AS NI OLD AS OIFOR EACH ROW MODE DB2SQLWHEN (NI.STATUS < OI.STATUS)SIGNAL SQLSTATE 85000 (Novi status manji od starog)(triger se aktivira pre izvrsenja operacije azuriranja BEFORE a triger procedurane proizvodi aktiviranje drugih trigera NO CASCADE; kod greske niskovnakonstanta 85000 bira se prema utvrdenim sintaksnim pravilima). Koriscenjem trigera mogu se izraziti i opsti uslovi integriteta, integritet entitetai referencijalni integritet. Na primer, referencijalni integritet nad relacijama I, KIsa kaskadnim brisanjem, ukoliko zavisne n-torke postoje u zavisnoj relaciji, mozese izraziti sledecim trigerom u sistemu DB2:CREATE TRIGGER REFINTAFTER DELETE ON IREFERENCING OLD AS OIFOR EACH ROW MODE DB2SQLDELETE FROM KIWHERE KI.I SIF = OI.I SIFIpak, zbog znacaja koji opsti uslovi integriteta imaju, neuporedivo je bolje imatiposebnu, jednostavnu i deklarativnu (neproceduralnu) formu za njihovo zadavanje._________________________________________________________________________INTEGRITET U RELACIJSKOM MODELU[footnoteRef:3] [3: https://www.fkit.unizg.hr/_download/.../Pred-BAZE5-2011-12.pp]

Integritet, konzistencija i osiguranje odnosno zatita podataka po svom znaenju su meusobno srodniPod integritetom baze podataka podrazumjevamo ispravnost i istinitost informacija, odnosno podataka sadranih u baziZajednika karakteristika svih integritetskih ogranienja jest injenica da svaki podatak koji nije u skladu s nekim od pravila sigurno nije istinitBaza podataka, da bi bila upotrebljiva, mora sadrati semantiki konzistentne podatke.Uvjeti koji odreuju jesu li podaci konzistentni zovu se ogranienja. Svaka promjena podataka u bazi podataka koja nije uinjena u skladu sa zadanim ogranienjima dovodi do pojave nekonzistentnih (nepouzdanih i/ili netonih) podataka.Ogranienja koja se mogu definirati su:jedinstvenost vrijednosti, ne smiju postojati dvije n-torke koje imaju iste vrijednosti odreenog atributa (ili skupa atributa), ne nul-vrijednost, atribut ne smije poprimiti nul-vrijednost (minimalna kardinalnost atributa jest 1),referencijalni integritet, vrijednost jednog atributa (strani klju) je nul-vrijednost ili je jednaka vrijednosti drugog atributa stanovite n-torke druge ili iste relacije (primarni klju),ogranienje uz kontrolu (check constraint), odreeni uvjet mora biti ispunjen za sve n-torke relacije; iroko ogranienje kojim se moe npr. odrediti domena vrijednosti atributa, propisati da vrijedi odreeni odnos vrijednosti razliitih atributa itd.Entitetski integritet je kombinacija ogranienja jedinstvenosti i ne-nulvrijednosti. Definira ogranienje kljua i jami jednoznano identificiranje bilo koje n-torke u bazi podataka.Referencijalni integritet ima veliku vanost za konzistentnost baze podataka. Povezuje pojam primarnog kljua sa stranim kljuem.Definicija ref. integriteta (Tkalac, 1993): Ako u relaciji R postoji strani klju koji odgovara primarnom kljuu relacije S, svaka vrijednost stranog kljua u relaciji R mora biti jednaka vrijednosti primarnog kljua u nekoj n-torki relacije S ili jednaka nul-vrijednosti (R i S mogu biti ista relacija).Referencijalni integritet je odran ako svaki strani klju pronalazi primarni klju s istom vrijednosti.Strani klju uspostavlja odnos n-torki dviju relacija to odgovara binarnoj vezi u modelu entiteti-veze.Primjer: Relacijska baza podataka PARTNER_TRGOVAC definirana je relacijskom shemom:PARTNER (PARTNER_SIFRA, PARTNER_NAZIV, PARTNER_ADRESA, MB)TRGOVAC(MB, IME_PREZIME,DATUM_RODJENJA, MB_VG, PLACA, DODATAK)Svaki trgovac radi s nijednim, jednim ili vie partnera. Svaki partner pripada jednom i samo jednom trgovcu. Trgovci su organizirani u grupe, svaki radi u okviru jedne grupe. Nije predvieno da se za grupu vode posebni podaci. Svaki trgovac moe biti voditelj jednom ili vie trgovaca u grupi, te mora imati jednog i samo jednog voditelja grupe.Napomena: Primarni kljuevi oznaeni su crvenom bojom, a strani klju plavom bojom.