Referencijalni integritet, uvod u SQL, ogranicenja ... podataka/Predavanja/05 - BP -...
Transcript of Referencijalni integritet, uvod u SQL, ogranicenja ... podataka/Predavanja/05 - BP -...
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Referencijalni integritet, uvod u SQL,ogranicenja, kreiranje tablica
6. tjedan
T. Caric, T. Erdelic
Zavod za inteligentne transportne sustaveFakultet prometnih znanosti
Sveuciliste u Zagrebu
Baze podataka
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )1/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podatakaPravila integriteta podatakaReferencijalni integritet
Pregled 1. poglavlja
Integritet podatakaPravila integriteta podatakaReferencijalni integritet
SQL upitni jezik
Kreiranje objekata u bazi podataka
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )2/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podatakaPravila integriteta podatakaReferencijalni integritet
Integritet podataka
I Integritetom podataka osigurava se njihova suvislost idosljednost uporabe
I Pravila integriteta: ogranicenja na pojavljivanje vrijednostiatributa i njihovo medusobno povezivanje
I Domena se definira za svaki atribut entiteta i predstavlja skupvrijednosti koje odredeni atribut moze poprimiti
I Referencijalni integritet osigurava logicnu vezu i pravila odnosaizmedu podataka u povezanim tablicama
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )3/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podatakaPravila integriteta podatakaReferencijalni integritet
Referencijalni integritet
Referencijalni integritetReferencijalni integritet osigurava logicnu vezu i pravila odnosaizmedu podataka u povezanim tablicama.
I U tablici ne moze postojati vrijednost stranog kljuca za kojune postoji jednaka vrijednost primarnog kljuca u osnovnojtablici
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )4/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podatakaPravila integriteta podatakaReferencijalni integritet
Referencijalni integritet
I Referencijalni integritet definira pravilaI UnosaI BrisanjaI Promjene (azuriranja podataka)
I Kako bi se osigurala dosljednost (konzistentnost) podataka ubazi podataka
I Projektant baze definira ponasanje bazeI Trazena akcija se odbija i u bazi se na dogadaju nikakve
promjeneI Akcija se dopusta, ali se uz nju pokrecu akcije koje moraju
uspostaviti konzistentnost baze podataka
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )5/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podatakaPravila integriteta podatakaReferencijalni integritet
Unos podataka
I Unos podataka - zabranjen je unos podatka u tablicu, snekom vrijednosti stranog kljuca, ako u osnovnoj tablici nepostoji ista vrijednost primarnog kljuca (restricted)
I PRIMJER: Ne moze se u tablicu Student dodati redak kojikao vrijednost atributa MjestoId koja je ujedno i strani kljucpoprima vrijednost koje nema u tablici Mjesto
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )6/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podatakaPravila integriteta podatakaReferencijalni integritet
Brisanje podataka
I Ograniceno (restricted)I Brisanje reda sa odredenom vrijednoscu primarnog kljuca
dozvoljeno je samo ako se ta vrijednost ne pojavljuje u drugojtablici kao strani kljuc
I PRIMJER: Ne moze se ukloniti pojedini redak iz tabliceMjesto, ako u tablici Student postoje njegove reference.
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )7/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podatakaPravila integriteta podatakaReferencijalni integritet
Brisanje podataka
I Stupnjevano ili kaskadno brisanje (cascade)I Brisanje podatka sa odredenom vrijednosti primarnog kljuca
izaziva brisanje svih podataka u drugoj tablici gdje se tavrijednost primarnog kljuca pojavljuje kao strani kljuc
I PRIMJER: Brisanjem redka iz tablice mjesto sa Id-em 2izbrisali bi se svi redci u tablici student koji referenciraju tajredak iz tablice Mjesto
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )8/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podatakaPravila integriteta podatakaReferencijalni integritet
Brisanje podatakaI Nuliranje (nullifies)
I Brisanjem odredene vrijednosti primarnog kljuca, najprije sesve iste vrijednosti stranog kljuca postavljaju na NULLvrijednost, a onda se iz osnovne tablice brise ta vrijednostprimarnog kljuca
I PRIMJER: Brisanjem pojedinog redka iz tablice Mjesto,najprije se sve vrijednosti stranog kljuca koje referenciraju tajredak postavljaju na NULL, a potom se uklanja zeljeni podatakiz tablice Mjesto
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )9/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podatakaPravila integriteta podatakaReferencijalni integritet
Azuriranje podataka
I Azuriranje podatakaI Ograniceno (restricted) - azuriranje vrijednosti primarnog
kljuca dozvoljeno je samo ako se ta vrijednost ne pojavljuje udrugoj tablici kao strani kljuc
I Stupnjevito ili kaskadno azuriranje (cascade) - azuriranjevrijednosti primarnog kljuca izaziva azuriranje svih podataka udrugoj tablici gdje se ta vrijednost primarnog kljuca pojavljujekao strani kljuc
I Nuliranje (nullifies) - azuriranjem odredene vrijednostiprimarnog kljuca, najprije se sve iste vrijednosti stranog kljucapostavljaju na NULL vrijednost, a onda se u osnovnoj tablicimijenja vrijednost primarnog kljuca
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )10/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Pregled 2. poglavlja
Integritet podataka
SQL upitni jezikUvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Kreiranje objekata u bazi podataka
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )11/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Pocetak SQL
I SQL je nastao 1974 u IBM Research Laboratoryu podnazivom SEQUEL (Structured English Query Language)
I SEQUEL je kasnije preimenovan u SQL (Structured QueryLanguage)
I Razlog: jedna zrakoplovna kompanija u to vrijeme je imalazasticen brend SEQUEL
I Cilj jezika je bilo priblizavanje relacijskih baza korisnicima te jezbog toga koncept jezika intuitivan
I SQL je bio nadmocan naspram svih dotadasnjih jezika za radsa bazama podataka, te je zbog toga prihvacen
I SQL spada u neproceduralne jezike 4 generacijeI Opisuje sto zelimo dobiti kao rezultat, a ne kako doci do njegaI U DBMS je ugraden optimizator upita koji pronalazi
najefikasniji nacin izvrsavanja upitaT. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )12/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Standardi SQL
I SQL je standardni jezik relacijskih baza podataka (databaselanguage)
I Postojeci standardi suI 1986. god. - SQL-86 ili SQL1 (prva verzija standarda - ANSI)I 1992. god. - SQL-92 ili SQL2
I Poboljsani dinamicki upiti, dodani kursori i izvjestaji ogreskama...
I 1999. god. - SQL:1999I Dodani rekurzivni upiti, okidaci, kontrola toka i neke
objekto-orijentirane znacajkeI 2003. god. - SQL:2003
I Dodana podrska za XMLI 2006. god. - SQL:2006I 2008. god. - SQL:2008I 2011. god. - SQL:2011
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )13/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Cilj standardizacije SQL
I Cilj standardizacijeI Prenosivost definicija baza podataka izmedu razlicitih
implementacija DBMS-a (MySQL, SQL Server, Oracle. . . )I Stvarnost je takva da implementacije nisu kompatibilne u
potpunostiI Problem kompatibilnosti
I Razne tvrte kao npr. Microsoft i Oracle rade svoje varijacijeSQL-a te ga dodatno prosiruju
I Oracle prosirenje - PL/SQLI Microsoft prosirenje - Transact-SQL (T-SQL)
I Razlozi nekompatibilnostiI Velicina SQL standarda (cesto se ne implementira do kraja)I Standard ne specificira nekoliko kljucnih podrucja kao sto je
indeksiranjeI U nekim dijelovima je dvosmislen, nije precizan pa ga se
razlicito tumaciT. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )14/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Podjela SQL
I SQL se dijeli naI Jezik za definiciju strukture - DDL (Data Definition
Language)I Definira strukturu objekata u bazi podatakaI Primjeri DDL naredbi su
I CREATEI ALTERI DROP
I Jezik za manipulaciju podacima - DML (DataManipulation Language)
I Naredbe vrse manipulaciju podacima (dohvacanje, azuriranje)I Primjeri DML naredbi su
I SELECTI UPDATEI INSERT
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )15/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
SQL objekti
I U tablici su prikazani SQL objekti s kojima cemo raditi unutarovog kolegija
Baza podataka DatabaseRelacija (tablica) Table
Atribut (stupac, kolona) ColumnSinonim (alias) Alias
Ogranicenje ConstraintIndeks Index
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )16/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
SQL imenovanje objekata
I Imena objekata koje se kreiraju ne mogu biti jednaka SQLkljucnim rjecima (SELECT, UPDATE, FROM, ...)
I Ime moze sadrzavati najvise 128 znakovaI Prvi znak mora biti slovo ili ’ ’I Unutar i na kraju imena mogu se koristiti i brojke
I PRIMJERI Student, student, student11, stu1dent => ISPRAVNOI Mjesec.2012, st*udent, 11student, => NE ISPRAVNO
I SQL je neosjetljiv (case insensitive) na velika i mala slovaizmedu kljucnih rjeci i imena objekata
I SeLect * From STUDENT = SELECT * FROM StudeNt
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )17/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Pravila imenovanje objekata
I Pravila imenovanja se uvode zbog urednosti pisanja SQL kodaI Nisu obavezna, ali postoje nepisana pravila kako bi se lakse
snalazili po svom i tudem SQL koduI Pravila
I Naziv tablice – se pise u jednini bez hrvatskih slova (c, c. . . )I Student, Vozac, Automobil, Vlak, ...
I Primarni kljuc – se oznacava sa Id ili Id + naziv tabliceI U tablici Student primarni kljuc treba biti Id ili IdStudent
I Strani kljuc – pise se na nacin da se prvo napise ime tablicena koju se referencira + Id
I Ako u tablici Student imamo strani kljuc na tablicu Mjestostrani kljuc treba imenovati sa MjestoId
I SQL kljucne rijeci – pisu se velikim slovima
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )18/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Koristenje komentara unutar SQL
I Postoje dvije vrste komentaraI Blok komentari - komentiraju vise linija koda (/* ... */)
/∗ Ovo j ev i s e l i n i j s k i komentar ∗/
I Linijski komentari - komentiraju samo 1 liniju koda (−− ...)
−−Ovo j e komentarSELECT ∗ FROM City −−Ovo j e komentar
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )19/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Citanje sintaksnih dijagrama
I Svaka osnovna naredba koju naucimo prikazati ce sesintaksnim dijagramima gdje sljedece opcije oznacavaju
| - razdvaja ponudene opcije{ } - uokviruju stavke koje su obavezne[ ] - uokviruju stavke koje nisu obavezne
[, . . . n] - stavka koja se nalazi ispred zareza moze seponoviti jednom ili vise puta
Rijeci napisane velikim slovima - kljucne SQL rijeci itreba ih pisati tocno tako
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )20/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Tipovi podataka
Tip podatkaTip podatka odreduje koju vrstu podatka odredeni atribut mozesadrzavati te operacije koje se mogu vrsiti na tom skupuvrijednosti.
I Predefinirani tipovi podatakaI Egzaktni brojeviI Aproksimirani brojeviI Vremenski i datumskiI ZnakovniI BinarniI Ostali
I Korisnicki definirani tipovi – njima se necemo baviti
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )21/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Egzaktni brojevi
I Egzaktni brojevi su oni koji se mogu zapisati u racunalu tocnoonakvi kakvi jesu
I DBMS interno jednu od vrijednosti iz raspona obicno krajnjukoristi za pohranu NULL vrijednosti
Podatkovni tip Raspon vrijednosti Zauzece memorijebigint −263 do 263 − 1 8B
int −231 do 231 − 1 4Bsmallint −215 do 215 − 1 4Btinyint 0 do 255 1B
bit 1 ili 0 (TRUE ili FALSE) 2B
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )22/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Egzaktni brojevi
I Osim spomenutih u egzaktne brojeve spadaju jos numeric,decimal, money i smallmoney tipovi podataka
I Podatkovnim tipom decimal(m,n) zapisuju se brojevi sadecimalnim zarezom
I m - predstavlja ukupan broj znamenkiI n - predstavlja broj znamenki iza decimalnog zarezaI NPR. DECIMAL(10,3) - predstavlja decimalni broj sa najvise
15 znamenki, od toga se najvise 3 znamenke mogu nalaziti izadecimalnog zareza
I Decimal tip podatka brojeve pohranjuje bez numerickepogreske za razliku od broja sa plivajucim zarezom - float
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )23/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Aproksimirani brojevi
I Aproksimirani brojevi su brojevi kojima spremamo pribliznoprikazive vrijednosti
Podatkovni tip Raspon vrijednosti Memorijafloat[(n)] −1, 79 ∗ 10308 do 1, 79 ∗ 10308 4B-8B
real −3, 40 ∗ 10308 do 3, 40 ∗ 10308 4B
I n - broj bitova potrebnih da se spremi mantisa i od njegazavisi potrosnja memorije
I Ako je n specificiran njegova vrijednost mora biti izmedu 1 i53, a ako nije predefinirana vrijednost je 53
I Ako je n u rasponu od 1-24 tada se trosi 4B, a ako je od25-53 8B memorije
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )24/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Vremenski i datumski tipovi
I Vremenski i datumski tipovi zapisuju vrijeme i datum u bazupodataka u dogovorenom formatu
Podatkovni tip Raspon vrijednosti Memorijadate od 1.1.1 do 31.12.9999 3B
datetime od 1.1.1753 do 31.12.9999 8B
I Format zapisa datuma je ’YYYY-MM-DD’ i kao takav seuvijek prikazuje
I Interno DBMS datum zapisuje u obliku cijelog broja kojipredstavlja broj dana proteklih od 31.12.1899.
I Takav zapis omogucava operacije + i − sa datumima gdje jerezultat uvijek broj dana
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )25/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Znakovni tipovi podataka
I Znakovni tipovi podataka su oni u koje se zapisuju tekst
Podatkovni tip Raspon Kodiranje Memorijachar[(n)] 1 do 8000 ASCII n * B
varchar[(n|max)] 1 do 8000 ASCII n + 2Bnchar[(n)] 1 do 4000 UNICODE n * 2B
nvarchar[(n|max)] 1 do 4000 UNICODE n * 2 + 2B
I n - oznacava maksimalnu duljinu znakova fiksne ili varijabilneduzine
I char i nchar - oznacavaju znakovni niz fiksne velicineI varchar i nvarchar - oznacavaju niz znakova varijabilne duzine
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )26/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Binarni podatkovni tipovi
I Binarni podatkovni tipovi sluze za spremanje slika, filmova,dokumenata itd.
Podatkovni tip Raspon vrijednosti Memorijabinary[(n)] Fiksno od 1 do 8000B nB
varbinary[(n|max)] Varijabilno od 1 do 8000B n + 2Bimage Varijabilno do 2.147.483.647B
I max kod varbinary tipa podatka omogucava spremanje do2GB podataka
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )27/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
UvodSQL objekti, imenovanje, rezervirane rijeci, komentariTipovi podataka
Ostali tipovi
I Ostali tipovi spodataka sluze za spremanje XML datoteka,spremanje globalnog indetifikatora. . .cursor - Koristi se za varijable ili za izlazne parametre
uskladistenih procedura koji sadrze referencu nakursor
uniqueidentifier - Globalni jedinstveni indetifikator koji se josnaziva GUID
xml - Tip podatka u koji se spremaju XML podacitable - Ovaj tip podatka koristi se za privremeno spremanje
rezultirajuceg skupa za kasnije koristenje. Najcesce seu njega sprema rezultat tablicnih funkcija
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )28/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Kreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
Pregled 3. poglavlja
Integritet podataka
SQL upitni jezik
Kreiranje objekata u bazi podatakaKreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )29/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Kreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
Kreiranje baze podataka
I Prvi korak u implementaciji relacijske sheme je kreiranje bazepodataka
CREATE DATABASE { NazivBazePodataka }
I Moze se sa dodatnim opcijama podesiti gdje da se kreira bazai kakve ce joj biti karaktersitike
I Brisanje baze podataka se radi sljedecom naredbom
DROP DATABASE { NazivBazePodataka }
I Specificno kod izvrsavanja SQL koda je da DBMS nikad nepita ”Da li ste sigurni da zelite izbrisati cijelu bazupodataka?” - on samo brisanje nepovratno napravi tako daoko toga treba biti oprezan
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )30/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Kreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
Kreiranje tablica
I Svaka tablica sastoji se od svog naziva i stupaca, a za svakistupac se bira
I NazivI Tip podatkaI Ogranicenja
I Primarni i strani kljuc, obaveznost unosa, predefiniranavrijednost, jedinstvenost i provjera
CREATE TABLE {NazivTablice}(
{NazivStupca} {TipPodatka} { [ NOT ] | NULL } ,{NazivStupca} {TipPodatka} { [ NOT ] | NULL } ,{ . . . } { . . . } { . . . }
)
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )31/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Kreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
Kreiranje tablice sa primarnim kljucem
I Kreiranje tablice sa primarnim kljucemCREATE TABLE Drzava (
Id int PRIMARY KEY NOT NULL ,Naziv nvarchar ( 5 0 ) NOT NULL
)
I Kreiranje tablice sa slozenim primarnim kljucemCREATE TABLE PredmetStudent (
StudentId int NOT NULL ,PredmetId int NOT NULL ,CONSTRAINT PK_PredmetStudent
PRIMARY KEY ( StudentId , PredmetId ))
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )32/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Kreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
Kreiranje tablice sa stranim kljucem
I Kreiranje tablice sa stranim kljucem
CREATE TABLE Grad (Id int PRIMARY KEY NOT NULL ,Naziv nvarchar ( 5 0 ) NOT NULL ,DrzavaId int NOT NULL ,CONSTRAINT FK_Grad_Drzava FOREIGN KEY
( DrzavaId ) REFERENCES Drzava ( Id ))
I Obaveznost unosa atributaI NOT NULL – kada je vrijednost atributa obavezna za unosI NULL – ako atribut moze poprimiti NULL vrijednost
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )33/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Kreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
Kreiranje tablice sa ostalim ogranicenjima
I Kreiranje tablice sa ogranicenjima podataka: predefiniranavrijednost, jedinstvenost i provjera
I UNIQUE – jedinstvenost vrijednostiI Kada se postavi ovo ogranicenje svaka vrijednost u stupcu
mora biti jedinstvena ili ce tokom dodavanja novog redkaDBMS javiti da se ogranicenje krsi
I CHECK– provjera vrijednostiI Ovo ogranicenje provjerava da li novo dodana vrijednost
zadovoljava postavljeni uvjet.I DEFAULT – predefinirana vrijednost
I Ovo ogranicenje se postavlja kada zelimo za vrijednostatributa postaviti predfefinirane vrijednost - svaki puta kada sedoda novi redak ako eksplicitno nije naglasena vrijednostatributa poprimit ce predefiniranu vrijednost
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )34/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Kreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
Kreiranje tablice sa ostalim ogranicenjima
CREATE TABLE Student (Id int PRIMARY KEY NOT NULL ,Ime nvarchar (max) NOT NULL ,Prezime nvarchar (max) NOT NULL ,JMBAG char (11) NOT NULL ,Redovni bit NOT NULL
CONSTRAINT DF_Redovni DEFAULT (1) ,DatumRodjenja datetime NOT NULL ,
CONSTRAINT UQ_Student_JMBAGUNIQUE ( JMBAG ),
CONSTRAINT CH_Student_DatumRodjenjaCHECK ( DatumRodjenja > ’1900.01.01 ’)
)
I CHECK - sa njim uz tip podataka definiramo domenu atributa
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )35/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Kreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
Azuriranje tablica
I Kada se jednom kreira relacijska shema moguce ju je mjenjatiI Mjenjanje strukture se obicno radi zbog normalizacije ili
denormalizacije baze podatakaI Dodavanje novog stupca se radi na sljedeci nacin
ALTER TABLE {NazivTablice}ADD {NazivStupca} {Tip} { [ NOT ] | NULL}
I Brisanje stupca se radi na sljedeci nacin
ALTER TABLE {NazivTablice}DROP COLUMN {NazivStupca}
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )36/38
Integritet podatakaSQL upitni jezik
Kreiranje objekata u bazi podataka
Kreiranje baze podatakaKreiranje tablicaAzuriranje tablicaBrisanje tablica
Brisanje tablica
I Za brisanje tablice se koristi naredba DROP kao i za brisanjesvih drugih objekata u bazi podataka
I Kod brisanja tablice je potrebno provjeriti da li tablica koja sebrise ima svojih referenci na druge objekte
I Ako tablica ima svoje reference DBMS ce sprijeciti njezinobrisanje
I Brisanjem tablice brisu se i svi podaci iz nje
DROP TABLE {NazivTablice}
T. Caric, T. Erdelic ITS::Baze podataka (6. tjedan )37/38