Professional Documents
Culture Documents
2 SQL Naredbe Za Kreiranje Podataka I Prakticni Rad U Access U
2 SQL Naredbe Za Kreiranje Podataka I Prakticni Rad U Access U
Ciljevi lekcije
Upoznati se sa osnovama SQL programskog jezike
Upoznati se sa različitim standardima SQL-a
Naučiti osnovne SQL naredbe za kreiranje strukture relacione baze podataka
Proučiti primer SQL naredbi za kreiranje strukture relacione baze podataka
PREDUZEĆE
Prva verzija programskog jezika SQL razvijena je od strane kompanije IMB krajem
1970-ih godina. Ova verzija, inicijalno nazvana SEQUEL, je razvijena za potrebe
manipulacije podacima System R sistemu za upravljanje relacionim bazama podataka.
2003 SQL:2003
2006 SQL:2006
2008 SQL:2008
Neophodno predznanje
Baza podataka
Računarski program (u praksi obično skup računarskih programa odnosno aplikacija) koji
obezbeđuje kreiranje, obradu i administraciju nad bazom podataka. DBMS dobija zahteve u
obliku upita (SQL upiti - naredne lekcije!) i prevodi te zahteve u odgovarajuće akcije nad
bazom podataka.
Relacioni model
Model podataka koji ima snažnu teorijsku osnovu, koja se zasniva na matematičkoj teoriji
relacija i na logici prvog reda, i za korisnika vrlo prihvatljivu reprezentaciju u vidu
dvodimenzionalne tabele.
Relacija
Atribut relacije
Torka relacije
Vrsta relacije.
Slika 1 Relacioni dijagram baze podataka PREDUZEĆE
Preduzeće je podeljeno na veći broj sektora. U tabeli SEKTOR se pamte sledeći podaci
o sektorima: broj sektora, naziv sektora, matični broj šefa sektora i datum kada je šef sektora
postavljen na svoju dužnost. Za primarni ključ je izabran broj sektora odnosno kolona Broj.
Jedini strani ključ je kolona Sef koja referencira kolonu MatBr u tabeli RADNIK (šef
sektora je jedan od radnika u preduzeću).
Tabela LOK_SEK čuva podatke o lokacijama na kojima se nalazi određeni sektor: broj
sektora i naziv lokacije. Primarni ključ je kompozitni i čine ga kolone Sektor i Lokacija.
Strani ključ je kolona Sektor koja referencira kolonu Broj u tabeli SEKTOR.
Ime Text(20) Ne Da
SSLovo Text(1) Ne Da
Prezime Text(30) Ne Da
DatumRodj Date/Time Ne Ne
Adresa Text(100) Ne Ne
Pol Text(1) Ne Ne
Naziv Text(50) Ne Da
DatPost Date/Time Ne Ne
Naziv Text(100) Ne Da
Lokacija Text(50) Ne Ne
Pol Text(1) Ne Ne
Srodstvo Text(10) Ne Da
DatRodj Date/Time Ne Ne
SQL DDL naredbe se koriste za kreiranje, izmenu i brisanje same relacione baze
podataka kao i objekata koji čine relacionu bazu podataka. Centralni objekat svake relacione
baze podataka jeste tabela. Za kreiranje tabele koristi se SQL naredba CREATE TABLE.
Osnovni format CREATE TABLE dat je u nastavku:
(<lista_deklaracija_kolona>
[,<lista_deklaracija_organičenja_tabele>]);
<ime_kolone><tip_podatka>[(<dužina>)] [<ograničenje_kolone>],
Deklaracija kolone sadrži ime kolone, tip podatka kolone, opciono dužinu (ako je
neophodna, u zavisnosti od tipa podatka) i opciono, ograničenja za kolonu. Deklaracije
kolona se razdvojaju zapetama. U odeljku Tipovi podataka navedeni su tipovi podataka koje
možete koristiti. Ograničenja za kolonu su opciona i mogu da sadrže specifikaciju
predefinisane vrednosti i niz specifikacija ograničenja, što je detaljnije opisano u odeljku
Ograničenja kolona.
Nakon deklaracije svih kolona navode se ograničenja koja važe za celu tabelu.
Specifikacije ograničenja za tabelu su navedena u odeljku Ograničenja tabele.
U Tabeli 3 su dati generički tipovi podataka koje definiše SQL standard. Ne podržavaju
svi RDBMS-ovi tipove podataka definisane u SQL standardu.
numeric(p,s) Argument p definiše ukupan broj cifara broja dok argument s definiše broj
cifara desno od decimalnog zareza. Npr. numeric(6, 2) je broj koji ima 4 cifre
ispred decimalnog zareza i 2 cifre iza decimalnog zareza.
decimal(p,s) Argument p definiše ukupan broj cifara broja dok argument s definiše broj
cifara desno od decimalnog zareza. Npr. numeric(6, 2) je broj koji ima 4 cifre
ispred decimalnog zareza i 2 cifre iza decimalnog zareza.
bit(x) Argument x definiše maksimalan broj bitova koje podatak može da prihvati.
Podaci su fiksne dužine.
bit varying(x) Argument x definiše maksimalan broj bitova koje podataka može da prihvati.
Podaci su promenljive dužine.
date Datum.
time Vreme.
Tip podatakaOpis
binary(n) Argument n (1 do 8000) definiše maksimalan broj bajtova koji kolona može da
prihvati. Ovaj tip definiše binarne podatke fiksne dužine.
image Binarni podaci promenljive dužine. Maksimalan broj bajtova koji kolona može
prihvatiti je 2^31 - 1 (2,147,483,647).
numeric(p, s) Argument p (1 do 38) definiše ukupan broj cifara broja dok argument s (0 ≤ s ≤
p) definiše broj cifara desno od decimalnog zareza. Mogu se predstaviti brojevi
u opsegu od - 10^38 +1 do 10^38 - 1.
varchar(n) Argument x definiše maksimalan broj bitova koje podatak može da prihvati.
Podaci su promenljive dužine.
Primer 1
NULL ili NOT NULL -definiše da kolona može ili ne može imatu NULL vrednosti.
UNIQUE - definiše da kolona ima jedinstvene vrednosti (kandidati za ključeve).
PRIMARY KEY - definiše da kolona predstavlja primarni ključ tabele (može da se
primeni na samo jednu kolonu u tabeli).
CHECK -definiše ograničenje za proveru vrednosti kolone (koristi se kod upisa ili
ažuriranja vrednosti).
DEFAULT - definiše podrazumevanu vrednost za kolonu (kolona uzima ovu
vrednost, ako vrednost kolone nije navedena).
REFERENCES -definiše da kolona predstavlja spoljni ključ tabele.
Za vrednost kolone se mogu specificirati ograničenja NULL ili NOT NULL čime se
dozvoljava ili zabranjuje NULL vrednost kolone. Strože ograničenje je UNIQUE, koje ne
dozvoljava ponavljanje vrednosti u koloni.
Pri kreiranju tabele u kojoj je atribut A primarni ključ, a atribut B spoljni ključ možete
koristi oblik naredbe CREATE TABLE koji je prikazan u nastavku.
Uočite da kod deklaracije spoljnog ključa tabele treba navesti iza ključne reči
REFERENCES ime referencirane tabele i opciono, u maloj zagradi, ime referencirane
kolone u toj tabeli. DBMS očekuje da je referencirana kolona primarni ključ (kolona
deklarisana sa PRIMARY KEY) u referenciranoj tabeli. Na taj način atribit iza koga stoji
klauzula REFERENCES definisan je kao spoljni ključ u odnosu na primarni ključ tabele čije
je ime navedeno iza klauzule REFERENCES.
Primer 2
PRIMARY KEY - definiše koja kolona ili koje kolone čine primarni ključ tabele.
UNIQUE - definiše koja kolona ili koje kolone imaju jedinstvene vrednosti (kandidati
za ključeve).
FOREIGN KEY - definiše koja kolona ili koje kolone čine spoljni ključ tabele.
CHECK -definiše ograničenja vrednosti kolone ili kolona koje DBMS proverava kod
upisa ili ažuriranja vrednosti te ili tih kolona.
Za kreiranje tabele u kojoj je skup atributa (a,b,c) primarni ključ možete koristiti oblik
CREATE TABLE naredbe prikazan u nastavku.
CREATE TABLE < ime_tabele >
(
<atributi i njihovi tipovi podataka>,
PRIMARY KEY (a,b,c)
);
Atribute a, b i c treba deklarisati u sekciji < atributi i njihovi tipovi podataka >.
Primer 3
U oba slučaja, iza ovih klauzula se navodi jedna od klauzula koja definiše aktivnost
koja će se izvršiti nad torkama u slučaju brisanja ili ažuriranja vrednosti torke u tabeli u kojoj
je ograničenje navedeno:
Primer 4
Primer 5
Proučiti detaljno funkcije MS Access-a kao alata za razvoj aplikacija i DBMSa, kreirati
novu bazu podataka i u njoj kreirati tabele iz nekog od primera (PREDUZEĆE, VIDEO
KLUB i sl).
Kreirajte sve tabele iz baze podataka koju ste projektovali tako što ćete da unesete
imena i tipove kolona:
snimite tabelu pod željenim imenom
domene atributa odredite tipovima podataka koje nudi Access
3. Tabele možete modifikovati tako što ćete iz istog prozora da klikom na tabelu i izborom
opcije Design.
Za kreiranje veze između dve tabele jednostavno kliknite i povucite ključ jedne tabele
i prevucite ga preko stranog ključa u drugoj tabeli. Podesite ograničenja:
1.4.1. Pitanja za samostalni rad
Proučiti detaljno funkcije MS Access-a kao alata za razvoj aplikacija i DBMSa, kreirati
bazu podataka PREDUZEĆE korišćenjem relacionog modela koji je dat u ovoj lekciji.