baze podataka - lekcija 02.pdf

  • Upload
    asxov

  • View
    243

  • Download
    0

Embed Size (px)

Citation preview

  • 8/14/2019 baze podataka - lekcija 02.pdf

    1/21

    SQL NAREDBE ZA KREIRANJE PODATAKA

    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 structure relacione baze podataka PREDUZE E

    Structured Query Language (SQL) predstavlja programski jezik koji je projektovan za potrebe pretraivanja iupravljanja podacima u Sistemima za upravljanje relacionim bazama podataka (Relational DatabaseManagement Systems - RDBMS), za kreiranje i modifikacija ema relacione baze podataka i za kontrolupristupa objektima baze podataka.

    Prva verzija programskog jezika SQL razvijena je od strane kompanije IMB krajem 1970-ih godina. Ovaverzija, inicijalno nazvana SEQUEL, je razvijena za potrebe manipulacije podacima System R sistemu zaupravljanje relacionim bazama podataka.

    SQL je formalno standardizovan 1986 godine, od strane American National Standards Institute (ANSI), podnazivom SQL-86. Ovaj standard je kasnije prihva en id od strane International Organization forStandardization (ISO). Svi SQL standardi koji su naknadno usvojeni predstavljaju zajedni ke standardeorganizacija ANSI i ISO (Tabela 1). Ve ina RDBMS-ova implementira jedan od navedenih standarda.

    Godina Naziv Ostali nazivi

    1986 SQL-86 SQL-87

    1989 SQL-89 FIPS 127-1

    1992 SQL-92 SQL2, FIPS 127-2

    1999 SQL:1999 SQL3

    2003 SQL:2003

    2006 SQL:2006

    2008 SQL:2008

    Tabela 1 Usvojeni SQL standardi

    SQL je programski jezik razvijen sa specifi nom namenom . Njegova osnovna karakteristika je da se radi odeklarativnom jeziku za upravljanje i manipulacijom podacima u relacionim bazama podataka. SQLomogu ava pribavljanje, dodavanje, auriranje i brisanje podataka u relacionoj bazi podataka. Ve inaproizvo aa RDBMS-a proiruje SQL standard dodaju i proceduralne elemente, kontrolne strukture, korisni kidefinisane tipove podataka i druge elemente. SQL standard SQL-99 mnoga od ovih proirenja su formalnoprihva enakao delovi SQL jezika u vidu SQL Persistent Stored Modules (SQL/PSM) (Tabela 2).

  • 8/14/2019 baze podataka - lekcija 02.pdf

    2/21

    Proizvo a Ime Puno ime

    ANSI/ISO Standard SQL/PSM SQL/Persistent Stored Modules

    Interbase/Firebird PSQL Procedural SQL

    IBM SQL PL SQL Procedural Language (implements SQL/PSM)

    Microsoft/Sybase T-SQL Transact-SQL

    MySQL SQL/PSM SQL/Persistent Stored Module (implements SQL/PSM

    Oracle PL/SQL Procedural Language/SQL (based on Ada)

    PostgreSQL PL/pgSQL Procedural Language/PostgreSQL Structured Query Language (bazira sena Oracle PL/SQL)

    PostgreSQL PL/PSM Procedural Language/Persistent Stored Modules

    Tabela 2 Proirena SQL jezika koja su postala deo standarda

    Ve ina proizvo aa relacionih DBMS-ova bezbe uje alat za kreiranje i izvravanje naredbi SQL jezika. Ovajalat moe biti obi an Command-line Interface (SQL/CLI) ili alat sa bogatim grafi kim interfejsom. Tako e, uveini slu ajeva, je obezbe ena programksa podrka koja omogu ava da se SQL naredbe kreiraju i koriste izdrugih programskih jezika.

    Sve naredbe SQL jezika se mogu podeliti u dve velike grupe:

    1. Data Definition Language (DDL) - jezik koji se koristi za definisanje strukture relacione baze podataka2. Data Manipulation Language (DML) - jezik za pribavljanje I auriranje podataka u relacionoj bazi

    podataka.

    NEOPHODNO PREDZNANJE

    Baza podataka

    Predstavlja kolekciju povezanih podataka organizovanih u logi ke celine predstavljene tabelama.

    Sistem za upravljanje bazama podataka (DBMS)

    Raunarski 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 - narednelekcije!) i prevodi te zahteve u odgovaraju e akcije nad bazom podataka.

    Relacioni model

    Model podataka koji ima snanu teorijsku osnovu, koja se zasniva na matemati koj teoriji relacija i na logiciprvog reda, i za korisnika vrlo prihvatljivu reprezentaciju u vidu dvodimenzionalne tabele.

  • 8/14/2019 baze podataka - lekcija 02.pdf

    3/21

    RelacijaTabela sa vrstama i kolonama.

    Atribut relacijePredstavlja osobinu entiteta predstavljenog relacijom. Atribut je prakti no imenovana kolona relacije odnosnotabele, koje se odnose na svojstva objekta predstavljenog relacijom.

    Torka relacijeVrsta relacije.

    Relaciona baza podatakaKolekcija normalizovanih relacija.

    BAZA PODATAKA PREDUZE E

    U nastavku je prikazana relaciona baza podataka PREDUZE E koja e biti kori ena u svim lekcijama ovogkursa koje se bave SQL programskim jezikom. Relacioni dijagram baze podataka PREDUZE E prikazan je naSlici 1.

    Slika 1 Relacioni dijagram baze podataka PREDUZE E

    Tabela RADNIK uva podatke o radnicima preduze a. Za svakog radnika se pamti mati ni broj, ime, srednjeslovo, prezime, datum ro enja, pol, plata, adresa, mati ni broj neposrednog rukovodioca i broj sektora u komeradnik radi. Za primarni klju je izabran mati ni broj radnika odnosno kolona MatBr . Tabela ima dva stranaklju a: Rukovodilac i Sektor . Kolona Rukovodilac referencira kolonu MatBr u istoj tabeli jer rukovodilac je

    jedan od radnika (rekurzivna veza). Kolona Sektor referencira kolonu Broj u tabeli Sektor .

  • 8/14/2019 baze podataka - lekcija 02.pdf

    4/21

    Preduze e je podeljeno na ve i broj sektora. U tabeli SEKTOR se pamte slede i podaci o sektorima: brojsektora, naziv sektora, mati ni broj efa sektora i datum kada je ef sektora postavljen na svoju dunost. Zaprimarni klju je izabran broj sektora odnosno kolona Broj . Jedini strani klju je kolona Sef koja referencirakolonu MatBr u tabeli RADNIK (ef sektora je jedan od radnika u preduze u).

    Tabela PROJEKAT uva podatke o projektima koji su aktivni unutar preduze a. Za svaki projekat se pamti:broj projekta, naziv projekta, lokacija projekta i broj sektora koji je zaduen za projekat. Za primarni klju jeizabran broj projekta odnosno kolona Broj . Jedini strani klju je kolona Sektor koja referencira kolonu Broj u

    tabeli Sektor.

    Tabela CLAN_PORODICE uva slede e podatke o lanovima porodica radnika: mati ni broj radnika, imelana porodice, pol, srodstvo sa radnikom i datum roenja. Primarni klju je kompozitni i ine ga koloneRadnik i Ime . Strani klju je kolona Radnik koja referencira kolonu MatBr u tabeli RADNIK .

    Tabela LOK_SEK uva podatke o lokacijama na kojima se nalazi odre eni sektor: broj sektora i nazivlokacije. Primarni klju je kompozitni i ine ga kolone Sektor i Lokacija . Strani klju je kolona Sektor kojareferencira kolonu Broj u tabeli SEKTOR .

    Tabela RADI_NA predstavlja evidenciju angaovanja radnika na razli itim projektima. Za svako angaovanjese pamti: mati ni broj angaovanog radnika, broj projekta na kome je angaovan i broj radnih sati nedeljnokoliko je angaovan na projektu. Primarni klju je kompozitni i ine ga kolone Radnik i Projekat . Tabela imadva strana klju a: Radnik i Projekat . Kolona Radnik referencira kolonu MatBr u tabeli RADNIK a kolonaProjekat referencira kolonu Broj u tabeli PROJEKAT .

    DEFINICIJA TABELA

    Kolona Tip Klju Obavezna Napomena

    MatBr Number Primarni klju Da Long IntegerIme Text(20) Ne Da

    SSLovo Text(1) Ne DaPrezime Text(30) Ne Da

    DatumRodj Date/Time Ne NeAdresa Text(100) Ne Ne

    Pol Text(1) Ne NePlata Number Ne Ne Single

    Rukovodilac Number Strani klju Ne Long Integer

    Sektor Number Strani klju Da Byt

    Definicija tabele RADNIK

    Kolona Tip Klju Obavezna Napomena Broj Number Primarni klju Da Byte

    Naziv Text(50) Ne DaSef Number Strani klju Da Long Integer

    DatPost Date/Time Ne Ne

    Definicija tabele SEKTOR

  • 8/14/2019 baze podataka - lekcija 02.pdf

    5/21

    Kolona Tip Klju Obavezna Napomena Broj Number Primarni klju Da Integer

    Naziv Text(100) Ne Da

    Lokacija Text(50) Ne Ne

    Sektor Number Strani klju Da Byte

    Definicija tabele PROJEKAT

    Kolona Tip Klju Obavezna Napomena Radnik Number Primarni klju , Strani klju Da Long Integer

    Ime Text(20) Primarni klju DaPol Text(1) Ne Ne

    Srodstvo Text(10) Ne DaDatRodj Date/Time Ne Ne

    Definicija tabele CLAN_PORODICE

    Kolona Tip Klju Obavezna Napomena Sektor Number Primarni klju , Strani klju Da Byte

    Lokacija Text(50) Primarni klju Da

    Definicija tabele LOK_SEK

    Kolona Tip Klju Obavezna Napomena Radnik Number Primarni klju , Strani klju Da Long Integer

    Projekat Number Primarni klju , Strani klju Da Integer

    Sati number Ne Da Byte

    Definicija tabele RADI_NA

    TEST PODACI ZA BAZU PODATAKA PREDUZE

    E

  • 8/14/2019 baze podataka - lekcija 02.pdf

    6/21

  • 8/14/2019 baze podataka - lekcija 02.pdf

    7/21

    SQL NAREDBE ZA KREIRANJE PODATAKA

    SQL DDL naredbe se koriste za kreiranje, izmenu i brisanje same relacione baze podataka kao i objekata kojiine relacionu baze podataka. Centralni objekat svake relacione baze podataka jeste tabela. Za kreiranje tabelekoristi se SQL naredba CREATE TABLE . Osnovni format CREATE TABLE dat je u nastavku:

    CREATE TABLE

    (

    [,]);

    Za deklaraciju kolona se koristi format koji je dat u nastavku:

    [()] [],

    Deklaracija kolone sadri ime kolone, tip podatka kolone, opciono duinu (ako je neophodna, u zavisnosti odtipa podatka) i opciono, ograni enja za kolonu. Deklaracije kolona se razdvojaju zapetama. U odeljku Tipovipodataka navedeni su tipovi podataka koje moete koristiti. Ograni enja za kolonu su opciona i mogu dasadre specifikaciju predefinisane vrednosti i niz specifikacija ograni enja, to je detaljnije opisano u odeljkuOgrani enja kolona .

    Nakon deklaracije svih kolona navode se ograni enja koja vae za celu tabelu. Specifikacije ograni enja zatabelu su navedena u odeljku Ograni enja tabele .

    Navedena sintaksa naredbe CREATE TABLE nije kompletna. SQL standard obezbe uju kori enje velikogbroja dodatnih klauzula koje korisnicima omogu avaju preciznu kontrolu procesa kreiranja tabele. Osim togaproizvo ai RDBMS-ova prouruju CREATE TABLE naredbu klauzulama koje su posledica specifi nihosobina njihovih proizvoda.

    TIPOVI PODATAKA

    U Tabeli 3 su dati generi ki tipovi podataka koje definie SQL standard. Ne podravaju svi RDBMS-ovi tipovepodataka definisane u SQL standardu.

    Tip podataka Opis integer Celobrojna vrednostsmallint Celobrojna vrednostnumeric(p,s) Argument p definie ukupan broj cifara broja dok argument s definie broj cifara desno od

    decimalnog zareza. Npr. numeric(6, 2) je broj koji ima 4 cifre ispred decimalnog zareza i 2cifre iza decimalnog zareza.

    decimal(p,s) Argument p definie ukupan broj cifara broja dok argument s definie broj cifara desno oddecimalnog zareza. Npr. numeric(6, 2) je broj koji ima 4 cifre ispred decimalnog zareza i 2cifre iza decimalnog zareza.

    real Broj u pokrenom zarezu jednostruke preciznostidouble precision Broj u pokretnom zarezu dvostruke preciznostifloat(p) Argument p definie preciznost broja.char(x) Argument x predstavlja maksimalan broj karaktera koji kolona moe da prihvati. Ovaj tip

    definie tekstualne podatke fiksne duine, odnosno podataka se dopunjuje blanko znacima sadesne strane kako bi se obezbedila specificirana duina.

    varchar2(x) Argument x predstavlja maksimalan broj karaktera koji kolona moe da prihvati. Ovaj tip

  • 8/14/2019 baze podataka - lekcija 02.pdf

    8/21

    definie tekstualne podatke promenljive duine (nema dopunjavanja blanko znacima).bit(x) Argument x definie maksimalan broj bitova koje podataka moe da prihvati. Podaci su fiksne

    duine.bit varying(x) Argument x definie maksimalan broj bitova koje podataka moe da prihvati. Podaci su

    promenljive duine.date Datum.time Vreme.timestamp Datum i vreme.time with timezone

    time koji uklju uje i informaciju o vremenskoj zoni.

    timestamp withtime zone

    timestamp koji uklju uje i informaciju o vremenskoj zoni..

    Interval Vremenski interval.

    Tabela 3 Generi ki SQL tipovi podataka

    U Tabeli 4 su navedeni tipovi podataka koje implementira Microsoft SQL Server familija proizvoda.

    Tippodataka

    Opis

    binary(n) Argument n (1 do 8000) definie maksimalan broj bajtova koji kolona moe da prihvati. Ovaj tipdefinie binarne podatke fiksne duine.

    char(n) Argument n (1 do 8000) predstavlja maksimalan broj karaktera koji kolona moe da prihvati.Ovaj tip definie tekstualne podatke fiksne duine, odnosno podataka se dopunjuje blankoznacima sa desne strane kako bi se obezbedila specificirana duina.

    datetime Tip podataka koji se koristi za predstavljanje informacija o vremenu i datumu. Koristi 8 bajtovaza pam enje informacija o datumu i vremenu sa precizno u od 3,33 milisekunde. Mogu sepredstaviti podaci o datumu i vremenu u opsegu od 01.01.1753 do 31.12.9999. godine.

    image Binarni podaci promenljive duine. Maksimalan broj bajtova koji kolona moe prihvatiti je 2^31- 1 (2,147,483,647).

    int Colobrojna vrednost u opsegu od -2^31 (-2,147,483,648) do 2^31 - 1 (2,147,483,647).numeric(p, s) Argument p (1 do 38) definie ukupan broj cifara broja dok argument s (0 s p) definie broj

    cifara desno od decimalnog zareza. Mogu se predstaviti brojevi u opsegu od - 10^38 +1 through10^38 - 1.

    smalldatetime Tip podataka koji se koristi za predstavljanje informacija o vremenu i datumu. Koristi 4 bajta zapam enje informacija o datumu i vremenu sa precizno u od 1 minuta. Mogu se predstavitipodaci o datumu i vremenu u opsegu od 01.01.1900 do 06.06.2079. godine.

    smallint Colobrojna vrednost u opsegu od -2^15 (--32,768) do 2^15 - 1 (-32,767).

    text Tip podataka koji se koristi za predstavljanje tekstualnih podataka promenljive duine.Maksimalna duina je 2^31 - 1 (2,147,483,647) bajtova.tinzint(x) Colobrojna vrednost u opsegu od 0 do 255.varchar(n) Argument x definie maksimalan broj bitova koje podataka moe da prihvati. Podaci su

    promenljive duine.

    Tabela 4 Tipovi podataka koje implementira MS SQL Server

  • 8/14/2019 baze podataka - lekcija 02.pdf

    9/21

    SQL DDL NAREDBE ZA KREIRANJE TABELA RADNIK I SEKTOR

    Primer 1

    CREATE TABLE RADNIK

    (

    MatBr Int ,

    Ime VarChar (15),

    SSlovo Char (1),

    Prezime VarChar (15),

    DatRodj Date ,

    Pol Char (1),

    Plata Numeric (8, 2),

    Adresa VarChar (30),

    Rukovodilac Int ,

    Sektor Int

    );

    CREATE TABLE SEKTOR

    (

    Broj Int ,

    Naziv VarChar (15),

    Sef Int ,

    DatPost Date

    );

  • 8/14/2019 baze podataka - lekcija 02.pdf

    10/21

    OGRANI ENJE KOLONE

    Ograni enja koja moete da definiete za kolonu kod kreiranja tabela su:

    NULL ili NOT NULL -definie da kolona moe ili ne moe imatu NULL vrednosti. UNIQUE - definie da kolona ima jedinstvene vrednosti (kandidati za klju eve). PRIMARY KEY - definie da kolona predstavlja primarni klju tabele (moe da se primeni na samo

    jednu kolonu u tabeli). CHECK -definie ograni enje za proveru vrednosti kolone (koristi se kod upisa ili auriranja

    vrednosti). DEFAULT - definie podrazumevanu vrednost za kolonu (kolona uzima ovu vrednost, ako vrednost

    kolone nije navedena). REFERENCES -definie da kolona predstavlja spoljni klju tabele.

    Za vrednost kolone se mogu specificirati ograni enja NULL ili NOT NULL ime se dozvoljava ili zabranjujeNULL vrednost kolone. Stroe ograni enje je UNIQUE , koje ne dozvoljava ponavljanje vrednosti u koloni.

    Za kolonu podrazumevano ograni enje je NULL vrednost. To zna i da navodimo samo ograni enje NOTNULL , ako je definisano za konkretnu kolonu.

    Kod navo enja PRIMARY KEY podrazumeva se NOT NULL ograni enje za tu kolonu, tako da ga ne trebaposebno navoditi.

    Pri kreiranju tabele u kojoj je atribut A primarni klju , a atribut B spoljni klju moete koristi oblik naredbeCREATE TABLE koji je prikazan u nastavku .

    CREATE TABLE

    (

    A PRIMARY KEY ,

    B REFERENCES (),

    ostali atributi

    );

    Uoite da kod deklaracije spoljnog klju a tabele treba navesti iza klju ne re i REFERENCES imereferencirane 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 primarniklju tabele ije je ime navedeno iza klauzule REFERENCES .

    Primer 2

    SQL DDL naredba za kreiranje tabele PROJEKAT.

    CREATE TABLE PROJEKAT

    (

    Broj Int PRIMARY KEY ,

  • 8/14/2019 baze podataka - lekcija 02.pdf

    11/21

    Naziv VarChar (25) NOT NULL ,

    Lokacija VarChar (15) DEFAULT ("Ni"),

    Sektor Integer REFERENCES SEKTOR(Broj)

    );

    OGRANI ENJA TABELE

    Za definisanje ograni enja koja vae za tabelu u celini moete koristiti:

    PRIMARY KEY - definie koja kolona ili koje kolone ine primarni klju tabele. UNIQUE - definie koja kolona ili koje kolone imaju jedinstvene vrednosti (kandidati za klju eve). FOREIGN KEY - definie koja kolona ili koje kolone ine spoljni klju tabele. CHECK -definie ograni enja vrednosti kolone ili kolona koje DBMS proverava kod upisa ili

    auriranja vrednosti te ili tih kolona.

    Za kreiranje tabele u kojoj je skup atributa (a,b,c) primarni klju moete koristiti oblik CREATE TABLEnaredbe prikazan u nastavku.

    CREATE TABLE < ime_tabele >

    (

    ,

    PRIMARY KEY (a,b,c)

    );

    Atribute a, b i c treba deklarisati u sekciji < atributi i njihovi tipovi podataka >.

    Primer 3

    SQL DDL naredba za kreiranje tabele RADI_NA.

    CREATE TABLE RADI_NA

    (

    Radnik Int ,

    Projekat Int ,

    Sati Int NOT NULL ,

    CONSTRAINT RadiNaPK PRIMARY KEY ( Radnik , Projekat )

    );

  • 8/14/2019 baze podataka - lekcija 02.pdf

    12/21

    OGRANI ENJE STRANOG KLJU A

    U deklaraciji kolone ili tabele, nakon klauzule REFERENCES , mogu se navesti klauzule ON DELETE iliON UPDATE koje specificiraju aktivnosti u slu aju naruavanja integriteta.

    ON DELETE omogu ava specifikaciju aktivnosti nad torkama relacije, odnosno vrstama tabele, u kojoj jenavedeno REFERENCES ograni enje, u slu aju brisanja torki u referenciranoj tabeli.

    ON UPDATE omogu ava specifikaciju aktivnosti nad torkama u tabeli gde je REFERENCES ograni enjenavedeno u slu aju auriranja (promene vrednosti) podataka u referenciranoj tabeli.

    U oba slu aja, iza ovih klauzula se navodi jedna od klauzula koja definie aktivnost koja e se izvriti nadtorkama u slu aju brisanja ili auriranja vrednosti torke u tabeli u kojoj je ograni enje navedeno:

    NO ACTION - nema akcije (ovo je predefinisana vrednost). CASCADE - kaskadno izvrenje aktivnosti brisanja (briu se torke u tabeli na koju se referencirate) kod

    ON DELETE ili aktivnosti auriranja (auriraju se vrednosti referenciranih atributa) kod ONUPDATE .

    SET DEFAULT - promena vrednosti atributa u tabeli na koju se referencirate na predefinisanuvrednost.

    SET NULL - promena vrednosti atributa u tabeli na koju se referencirate na NULL.

    Ne zaboravite da je kod deklarisanja FOREIGN KEY ograni enja na kraju deklaracije tabele, neophodnonavesti listu referentnih atributa u okviru zagrada, tako da CREATE TABLE naredba ima slede i oblik:

    CREATE TABLE

    (

    FOREIGN KEY ()

    REFERENCES ()

    [ ON DELETE { NO ACTION | CASCADE | SET DEFAULT | SET NULL }]

    [ ON UPDATE { NO ACTION | CASCADE | SET DEFAULT | SET NULL }]

    CHECK ()

    );

    Primer 4

    SQL DDL naredba za kreiranje tabele CLAN_PORODICE.

    CREATE TABLE RADI_NA

    (

    Radnik Int ,

  • 8/14/2019 baze podataka - lekcija 02.pdf

    13/21

    Projekat Int ,

    Sati Int NOT NULL ,

    CONSTRAINT RadiNaPK PRIMARY KEY (Radnik, Projekat) ,

    CONSTRAINT RadnikFK FOREIGN KEY (Radnik) REFERENCESRADNIK(MatBr) ,

    CONSTRAINT ProjekatFK FOREIGN KEY (Projekat) REFERENCESPROJEKAT(Broj)

    );

    DDL NAREDBE ZA KREIRANJE BAZE PODATAKA PREDUZE E

    Primer 5

    CREATE TABLE RADNIK

    (

    MatBr Int,

    Ime VarChar(15) NOT NULL,

    SSlovo Char(1), NOT NULL,

    Prezime VarChar(15) NOT NULL,

    DatRodj Date,

    Pol Char(1) DEFAULT "M",

    Plata Numeric(8, 2) CHECK (PLATA > 1000),

    Adresa VarChar(30),

    Rukovodilac Int,

    Sektor Int NOT NULL,

    CONSTRAINT RadnikPK PRIMARY KEY (MatBr),

    CONSTRAINT RukovodiFK FOREIGN KEY (Rukovodilac) REFERENCESRADNIK(MatBr),

    CONSTRAINT SektorFK1 FOREIGN KEY (Sektor) REFERENCESSEKTOR(Broj)

    );

  • 8/14/2019 baze podataka - lekcija 02.pdf

    14/21

    CREATE TABLE SEKTOR

    (

    Broj Int,

    Naziv VarChar(15) NOT NULL,

    Sef Int NOT NULL,

    DatPost Date,

    CONSTRAINT SektorPK PRIMARY KEY (Broj),

    CONSTRAINT SefFK FOREIGN KEY (Sef) REFERENCESRADNIK(MatBr)

    );

    CREATE TABLE PROJEKAT

    (

    Broj Int,

    Naziv VarChar(25) NOT NULL,

    Lokacija VarChar(15) DEFAULT "Ni",

    Sektor Integer NOT NULL,

    CONSTRAINT ProjekatPK PRIMARY KEY (Broj),

    CONSTRAINT NadlezanFK FOREIGN KEY (Sektor) REFERENCESSEKTOR(Broj)

    );

    CREATE TABLE CLAN_PORODICE

    (

    Radnik Int,

    Ime VarChar(15),

    Pol Char(1) NOT NULL DEFAULT "M",

  • 8/14/2019 baze podataka - lekcija 02.pdf

    15/21

    DatRodj Date,

    CONSTRAINT ClanPorodicePK PRIMARY KEY (Radnik, Ime),

    CONSTRAINT RoditeljFK FOREIGN KEY (Radnik) REFERENCESRADNIK(MatBr)

    );

    CREATE TABLE LOK_SEK

    (

    Sektor Int,

    Lokacija VarChar(15),

    CONSTRAINT LokacijaPK PRIMARY KEY (Sektor, Lokacija),

    CONSTRAINT SektorFK2 FOREIGN KEY (Sektor) REFERENCESSEKTOR(Broj)

    );

    CREATE TABLE RADI_NA

    (

    Radnik Int,

    Projekat Int,

    Sati Int NOT NULL,

    CONSTRAINT RadiNaPK PRIMARY KEY (Radnik, Projekat),

    CONSTRAINT RadnikFK FOREIGN KEY (Radnik) REFERENCESRADNIK(MatBr),

    CONSTRAINT ProjekatFK FOREIGN KEY (Projekat) REFERENCESPROJEKAT(Broj)

    );

  • 8/14/2019 baze podataka - lekcija 02.pdf

    16/21

    MS ACCESS SPECIFI NOSTI

    Trenutno najrasporostranjeniji standard SQL-a koji se koristi je ANSI SQL-92. Ovaj standard implementiranajve i broj proizvo aa DBMS-a. Sa druge strane MS Access koristi neto stariju verziju standarda ANSISQL-89. Tako e, kao i ve ina drugih proizvo ala DBMS-a, Microsoft je u MS Access SQL implementiraospecifi nosti koje nisu deo SQL standarda. Iz ovih razloga, postoje elementi SQL standarda koji ne e raditi uMS Access-u. U nastavku e biti navedene neki od elemenata SQL standarda, a vezani su za CRATE TABLEnaredbu, koje MS Access ne podrava:

    MS Access ne podrava UNIQUE , CHECK i DEFAULT ograni enja. Ekvivalentna ograni enja semogu definisati u tabeli kori enjem Desig View-a za tabelu.

    Char i VarChar tipovi podataka se konvertuju u Text tip podataka MS Access ne podrava u potpunosti SQL standard za definisanje ograni enja stranog klju a. Podrano

    je samo osnovno kreiranje stranog klju a bez mogu nosti definisanje ON UPDATE i ON DELETE akcija. Ove akcije se mogu naknadno definisati kori enjem posebnih alata za kreiranje tabela idefinisanje relacija.

    PRAKTI

    AN RAD : MS ACCESSProu iti detaljno funkcije MS Access-a kao alata za razvoj aplikacija i DBMSa, kreirati novu bazu podataka i unjoj kreirati tabele iz nekog od primera (PREDUZE E, VIDEO KLUB i sl).

    Kratko uputstvo za kori enje MS Access-a:

    1. Kreiranje baze podataka

    Startujte MS Access - Windows , Programs, prona i ikonicu za Access

    Pojavi e se po etna upozorenja koja se odnose na sigurnost i treba ih potvrditi Kreirati novu bazu podataka - kada se otvori Access, Create New database , kao na slici, a

    nakon toga izabrati Blank Database i uneti ime baze podataka:

  • 8/14/2019 baze podataka - lekcija 02.pdf

    17/21

    2. Kreiranje tabela i izbor klju a - nakon otvaranja Database Window -a kao na slici:

  • 8/14/2019 baze podataka - lekcija 02.pdf

    18/21

    Ponite sa kreiranjem tabela klikom na Table i Create Table in Design View :

  • 8/14/2019 baze podataka - lekcija 02.pdf

    19/21

    Kreirajte sve tabele iz baze podataka koju ste projektovali tako to ete da unesete imenai tipove kolona:

    snimite tabelu pod eljenim imenom domene atributa odredite tipovima podataka koje nudi Access

    Izaberite klju ni atribut, selekcijom tog atributa i klikom na ikonicu sa klju em natoolbar-u.

    3. Tabele moete modifikovati tako to ete iz istog prozora da klikom na tabelu i izborom opcije Design.4. Unos i modifikacija podataka u tabeli - jednostavno dvostrukim klikom na tabelu otvara se tabela u modu zaprikaz i unos podataka. Moete da unosite nove vrste ili da menjate postoje e:

  • 8/14/2019 baze podataka - lekcija 02.pdf

    20/21

    5. Podeavanja za o uvanje referencijalnog integriteta

    Izabrati ikonicu za Relationship i otvori e vam se slede i prozor u kome moete dadodate tabele izme u kojih ete definisati veze za o uvanje referencijalnog integriteta:

  • 8/14/2019 baze podataka - lekcija 02.pdf

    21/21

    Za kreiranje veze izme u dve tabele jednostavno kliknite i povucite klju jedne tabele iprevucite ga preko stranog klju a u drugoj tabeli. Podesite ograni enja:

    PITANJA ZA SAMOSTALNI RAD

    Kreiranje baze podataka

    Prou iti detaljno funkcije MS Access-a kao alata za razvoj aplikacija i DBMSa, kreirati bazu podatakaPREDUZE E kori enjem relacionog modela koji je dat u ovoj lekciji.