Upload
milivoje
View
218
Download
0
Embed Size (px)
Citation preview
7/25/2019 01_Uvod_DDL_DML_0
1/44
Fakultet tehni kih nauka, DRA, Novi Sad Predmet:
Struktura i organizacija bazapodataka
Dr Slavica Aleksi , Milanka Bjelica,
Nikola Obrenovi
7/25/2019 01_Uvod_DDL_DML_0
2/44
2
Sistem ocenjivanja
Ukupno: 100 bodova
Predispitne
obaveze
Zavrni
ispitTeoretski deo(predavanja)
20 30 50
Praktini deo
(vebe) 50 0 50
70 30 100
7/25/2019 01_Uvod_DDL_DML_0
3/44
3
Praktini deo - vebe
50 bodova U toku nastave
3 zadatka / ve be sloeni oblici vebi (Z1 -Z3) realizacija zadataka na vebama
SQL jezik (20 bodova) ER model podataka (15 bodova) Prevo enje ER eme u relacioni model podataka
(15 bodova) Maks. 50 bodova
7/25/2019 01_Uvod_DDL_DML_0
4/44
4
Praktini deo - vebe
Pravila realizacije obaveza Zadaci / vebe sloeni oblici vebi (Z1 -Z3)
polaganje na asu vebi, koji je za to unapredplaniran, pred asistentom
u toku semestra student dobija na vebama primere i zadatke koji
predstavljaju pripremu za njihovu realizaciju najvie jedan zadatak / veba moe se ponoviti,
odnosno popraviti, na kraju semestra
7/25/2019 01_Uvod_DDL_DML_0
5/44
5
Praktini deo - vebe Softverska podrka
SUBP Microsoft SQL Server 2008 R2 SQL Server Management Studio
7/25/2019 01_Uvod_DDL_DML_0
6/44
6
Rad u uionici
Windows: User name: EE X-Y
X broj indeksa Y godina upisa
Password: ftn
7/25/2019 01_Uvod_DDL_DML_0
7/44
7
Rad u uionici
SQL Server Management Studio Start -> Programs ->Microsoft SQL Server
2008 R2-> SQL Server Management Studio
Materijali www.acs.uns.ac.rs
7/25/2019 01_Uvod_DDL_DML_0
8/44
8
Rad u uionici
Podaci potrebni za konektovanje na bazupodataka SQL Server: ULMO (Network server)
SQL Server Authentication: Username: sa Password: sa
7/25/2019 01_Uvod_DDL_DML_0
9/44
9
SQL (Structured Query Language)
SQL standardni jezik relacionih sistema za
upravljanje bazama podataka jezik visokog nivoa deklarativnosti objedinjuje funkcije jezika za definiciju
podataka, jezik za manipulaciju podacima i
upitni jezik
7/25/2019 01_Uvod_DDL_DML_0
10/44
10
SQL (Structured Query Language)
Namena i zadaci SQL-a u okviru sistemaza upravljanje bazama podataka administratorima baze podataka za obavljanje
poslova administracije programerima za izradu aplikacija nad bazom
podataka
krajnjim korisnicima, za postavljanje upita nadbazom podataka
7/25/2019 01_Uvod_DDL_DML_0
11/44
11
SQL (Structured Query Language)
SQL se javlja u formama: interaktivnog jezika sistema za upravljanje
bazama podataka ugra enog jezika u jezik III generacije sastavnog dela jezika IV generacije
7/25/2019 01_Uvod_DDL_DML_0
12/44
12
SQL (Structured Query Language)
Saglasno nameni i vrstama korisnika koji gaupotrebljavaju, SQL obezbeuje realizacijusledeih zadataka: izraavanje upita putem upitnog jezika (naredba
SELECT) auriranje baze podataka putem jezika za
manipulaciju podacima (naredbe INSERT, DELETE iUPDATE)
realizacija implementacione eme baze podataka idefinisanje fizike organizacije baze podataka(naredbe CREATE, DROP i ALTER)
automatsko odravanje renika podataka
7/25/2019 01_Uvod_DDL_DML_0
13/44
13
SQL (Structured Query Language)
Saglasno nameni i vrstama korisnika koji gaupotrebljavaju, SQL obezbeuje realizaciju sledeihzadataka: transakcijska obrada podataka ( naredbe COMMIT, ROLLBACK,
SAVEPOINT) zakljuavanje resursa (naredba LOCK TABLE) zatita podataka od neovlaenog pristupa (naredbe GRANT,
REVOKE) praenje zauzea resursa i performansi rada sistema za
upravljanje bazama podataka (naredbe AUDIT, EXPLAIN PLAN) obezbeenje proceduralnog naina obrade podataka "slog po
slog" (naredbe za rad sa kursorom: OPEN, FETCH, CLOSE)
7/25/2019 01_Uvod_DDL_DML_0
14/44
14
SQL (Structured Query Language)
Sintaksa SQL- a zavisi od proizvoaasistema za upravljanje bazama podataka.
7/25/2019 01_Uvod_DDL_DML_0
15/44
Kreiranje baze podatakaCREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL } ][ ON [ PRIMARY ] [ ,...n ] [ ,
[ ,...n ] ] [ LOG ON [ ,...n ] ] ][ COLLATE collation_name ] [ WITH [,...n ] ][;]
15
7/25/2019 01_Uvod_DDL_DML_0
16/44
Primer
create database E12333;
nakon kreiranja nove baze podataka, sveostale naredbe se izvravaju nad tom
bazom podataka opcija New Query iz konteksnog menija
16
7/25/2019 01_Uvod_DDL_DML_0
17/44
17
SQL tipovi podatakaData TypeDescription
VARCHAR(size) niz karaktera promenljive duine, maksimalne duine size ;minimalna duina je 1, maksimalna je 8000
CHAR(size) Niz karaktera fiksne duine od size bajtova; default i minimalna duina je 1,maksimalna duina je 8000
NVARCHAR(size) Unicode niz karaktera promenljive duine, maksimalneduine size ; m inimalna duina je 1, maksimalna je 4000
NCHAR(size) Unicode n iz karaktera fiksne duine od size bajtova; default i minimalna duina je 1,maksimalna duina je 4000
NUMERIC(p,s) broj ukupnog broja cifara p, od ega je s cifaraiza decimalnog zareza; p moe imati vrednosti
od 1 do 38 BINARY binarni sadr aj do 8000 bajtova INT REAL, FLOAT DATETIME vrednosti za vreme i datum TEXT, NTEXT veliki text do 2^31-1karaktera IMAGE veliki binarni sadr aj do 2^31-1 bajtova
7/25/2019 01_Uvod_DDL_DML_0
18/44
18
Kreiranje tabele
CREATE TABLE [ema.] ( [DEFAULT izraz] [, ...][CONSTRAINT constraint_name PRIMARY KEY
(col1[,])] [CONSTRAINT constraint_name FOREIGN KEY(col1[,]) references table_name (col1[,])] );
ema poklapa se sa nazivom korisnika DEFAULT opcija:
Specificira se predefinisana vrednost za kolonu, kojase koristi ukoliko se prilikom ubacivanja podatakaizostavi vrednost za tu kolonu
7/25/2019 01_Uvod_DDL_DML_0
19/44
19
Naziv tabele i kolone
mora poeti slovom, mora biti izmeu 1 i 30 znakova duine, mora sadrati samo velika i mala slova,
cifre, _, $ i #, ne sme se poklapati sa nazivom nekog
drugog objekta koji je kreirao isti korisnik,
ne sme biti rezervisana re Microsoft SQLservera.
nazivi nisu case sensitive.
7/25/2019 01_Uvod_DDL_DML_0
20/44
20
Primer
radnik({Mbr, Ime, Prz, Sef, Plt, God}, {Mbr}),projekat({Spr, Ruk, Nap, Nar}, {Spr}),radproj({Spr, Mbr, Brc}, {Spr+Mbr}),
radnik[Sef] radnik[Mbr],projekat[Ruk] radnik[Mbr],radproj[Mbr] radnik[Mbr],radproj[Spr] projekat[Spr].
7/25/2019 01_Uvod_DDL_DML_0
21/44
21
Tabela radnik Mbr - maticni broj radnika Ime - ime radnika Prz - prezime radnika Sef - maticni broj direktno nadredjenog rukovodioca
- radnika Plt - mesecni iznos plate radnika God - Datum rodjenja radnika Pre godinja premija na platu radnika
Obeleja Mbr, Ime, Prz ne smeju imati null vrednost.Plata ne sme biti manja od 500
7/25/2019 01_Uvod_DDL_DML_0
22/44
22
Tabela radnikCREATE TABLE radnik(
Mbr integer NOT NULL,Ime varchar(20) NOT NULL,Prz varchar(25) NOT NULL,
Sef integer,Plt decimal(10, 2),Pre decimal(6, 2),God date NOT NULL,
CONSTRAINT radnik_PK PRIMARY KEY (Mbr),CONSTRAINT radnik_FK FOREIGN KEY (Sef)REFERENCES Radnik (Mbr),
CONSTRAINT radnik_CH CHECK (Plt>500));
7/25/2019 01_Uvod_DDL_DML_0
23/44
23
Tabela projekat
Spr - sifra projekta Ruk - rukovodilac projekta Nap - naziv projekta Nar - narucilac projekta
Obeleja Spr i Ruk ne smeju imati nullvrednost, dok obeleje Nap mora imati
jedinstvenu vrednost
7/25/2019 01_Uvod_DDL_DML_0
24/44
24
Tabela projekatCREATE TABLE projekat
(Spr integer not null,
Ruk integer not null,Nap varchar(30),Nar varchar(30),CONSTRAINT projekat_PK PRIMARY KEY (Spr),
CONSTRAINT projekat_FK FOREIGN KEY (Ruk)REFERENCES Radnik (Mbr),
CONSTRAINT projekat_UK UNIQUE (Nap));
7/25/2019 01_Uvod_DDL_DML_0
25/44
25
Tabela radproj
Spr - sifra projekta Mbr - maticni broj radnika Brc - broj casova nedeljnog angazovanja na
projektu
Sva tri obeleja ne smeju da imaju nullvrednost
7/25/2019 01_Uvod_DDL_DML_0
26/44
26
Tabela radproj
CREATE TABLE radproj(Spr integer NOT NULL,
Mbr integer NOT NULL,Brc integer NOT NULL,CONSTRAINT radproj_PK PRIMARY KEY (Spr, Mbr),CONSTRAINT radproj_rad_FK FOREIGN KEY (Mbr)
REFERENCES radnik(Mbr),CONSTRAINT radproj_prj_FK FOREIGN KEY (Spr)
REFERENCES projekat(Spr));
7/25/2019 01_Uvod_DDL_DML_0
27/44
7/25/2019 01_Uvod_DDL_DML_0
28/44
28
Kreiranje tabele za vebu
create table organizacija(
orgid int not null,orgnaziv varchar(20) null,mestoorg varchar(20) null,CONSTRAINT organizacija_pkPRIMARY KEY (orgid)
);
7/25/2019 01_Uvod_DDL_DML_0
29/44
29
Kreiranje tabele
imenik ({Mbr, Telbroj}, {Mbr})
Mbr matini broj radnika Telbroj telefonski broj radnika
7/25/2019 01_Uvod_DDL_DML_0
30/44
7/25/2019 01_Uvod_DDL_DML_0
31/44
7/25/2019 01_Uvod_DDL_DML_0
32/44
7/25/2019 01_Uvod_DDL_DML_0
33/44
33
ALTER TABLE U tabelu imenik dodati obeleja mesto i adresa .
alter table imenikadd adresa varchar(20) null,
mesto varchar(30) null;
U tabelu imenik dodati ogranienje referencijalnogintegritetaimenik[Mbr] radnik[Mbr]
alter table imenikadd constraint radnik_ti_fk FOREIGN KEY (mbr)
references radnik (mbr) ;
7/25/2019 01_Uvod_DDL_DML_0
34/44
34
ALTER TABLE
Iz tabele imenik ukloniti obeleje mesto
alter table imenikdrop column mesto;
7/25/2019 01_Uvod_DDL_DML_0
35/44
7/25/2019 01_Uvod_DDL_DML_0
36/44
36
Auriranje baze podataka
INSERT DELETE
UPDATE
7/25/2019 01_Uvod_DDL_DML_0
37/44
7/25/2019 01_Uvod_DDL_DML_0
38/44
7/25/2019 01_Uvod_DDL_DML_0
39/44
7/25/2019 01_Uvod_DDL_DML_0
40/44
7/25/2019 01_Uvod_DDL_DML_0
41/44
41
Auriranje baze podataka
Iskljuiti radnike sa onih projekta gde im je angaovanje na projektu manje od 5asova
delete from radprojwhere brc < 5
7/25/2019 01_Uvod_DDL_DML_0
42/44
42
Auriranje baze podataka
UPDATE modifikacija postoje ih torki
UPDATE SET < obeleje >= {,= }
[WHERE ()]
7/25/2019 01_Uvod_DDL_DML_0
43/44
7/25/2019 01_Uvod_DDL_DML_0
44/44
44
Auriranje baze podataka
Svim radnicima koji ma je ef radnik saifrom 50, poveati p latu za 500
update radnikset plt = plt + 500where sef = 50