Professional Documents
Culture Documents
BAZE PODATAKA
O predmetu
Web
http://www2.fsr.ba/nastava/baze
To: goran.kraljevic@hteronet.ba
Subject: Baze
1
Polaganje ispita ...
Modeliranje 25 bodova
SQL 50 bodova
Teorija 25 bodova
Ukupno : 100 bodova
2
Baza podataka
3
Ciljevi razvoja baza podataka
4
Sustav za upravljanje bazama podataka
Funkcije SUBP-a:
• Definiranje baze podataka (DDL–Data Definition Language)
• Manipuliranje podacima u bazi (DML–Data Manipulation Language)
• Upravljačke funkcije:
̶ Sigurnost i zaštita od neovlaštenog pristupa
̶ Očuvanje integriteta (backup i recovery)
̶ Statističko praćenje rada baze podataka
̶ Optimizacija rada
5
Fizička i logička organizacija podataka
• Oracle
• IBM DB2
• Microsoft SQL Server
• Sybase
• Informix (sada IBM)
• MySQL
• PostgreSQL
• ...
6
Povijesni razvoj baza podataka
• Problemi:
̶ nema standarda
̶ višestruko ponavljanje podataka
̶ meĎuovisnost podataka
̶ teško je vršiti neuobičajena pretraživanja
̶ integritet podataka
̶ sigurnost
̶ istovremeni pristup, ...
Modeli podataka
7
Hijerarhijski i mreţni model
Modeli podataka
• Relacijski model
̶ 1970 dogaĎa se relacijska "revolucija“
̶ E.F.Codd objavljuje članak "A Relational Model of Data for
Large Shared Databanks" koji postavlja osnove skoro svim
današnjim sustavima baza podataka
̶ ...
• Objektni model
̶ inspiriran objektno orijentiranim programskim jezicima
̶ baza je skup objekata koji se sastoje od podataka i metoda
koje vrše operacija nad njima
8
Relacijski model podataka
̶ Relacija
̶ Atribut
̶ Domena
9
Relacijski model podataka
10
Ključevi u relacijskoj bazi podataka
Primjer:
11
Ključevi u relacijskoj bazi podataka
Primjer:
• Entitetski integritet
- povezan sa primarnim ključem
• Referencijalni integritet
- povezan sa stranim ključem
12
Entitetski integritet
Primjeri:
Referencijalni integritet
Primjer:
13
Ograničenja u relacijskom modelu podataka
Domenski integritet
• Kako svaki atribut ima pridruženu domenu, postoje ograničenja
(engl. domain constraints) koja čine restrikcije nad skupom
dozvoljenih vrijednosti atributa relacije.
• Unija
• Razlika
• Presjek
• Kartezijev produkt
• Projekcija
• Selekcija
• Spajanje (join)
14
Operacije u relacijskom modelu
15
Operacije u relacijskom modelu
16
Operacije u relacijskom modelu
17
Operacije u relacijskom modelu
18
Modeliranje podataka
Modeliranje podataka
19
ER modeliranje
ER modeliranje:
• je sastavljeno iz entiteta, veza i atributa
• je slikovni prikaz sustava baze podataka
• je neovisno o DBMS i hardveru
• predstavlja konceptualni model visokog nivoa
• podržava korisnikovu percepciju podataka
• je alat za projektiranje
Entitet
20
Jaki i slabi tip entiteta
Atribut
21
Veze
Binarna veza
veza 2 entiteta
Ternarna veza
veza 3 entiteta
Unarna veza
isti entitet više puta
egzistira u različitim
ulogama
Kardinalnost veze
22
Grafički prikaz veze
Primjer:
• Vezu više na više možemo razbiti uvoĎenjem entiteta najam, koji sadrži
atribut datum_najma
23
Preslikavanje ER modela u relacije
VEZA JEDAN:VIŠE
• Primarni ključ entiteta sa strane veze JEDAN doda se kao
strani ključ u entitet sa strane veze VIŠE.
VEZA VIŠE:VIŠE
• Doda se novi entitet, koji sadrži primarne ključeve obaju
rubnih entiteta.
• Ti atributi zajedno tvore složeni primarni ključ novonastalog
entiteta.
24
Preslikavanje ER modela u relacije
Usporedne veze
• Svaku vezu zamijenimo s po jednim stranim ključem u relaciji
na strani veze VIŠE (usporedne veze se preslikaju u jednu, ali
s uvoĎenjem dodatnog stranog ključa).
• Da bi razlikovali veze meĎu entitetima stranim ključevima
damo različite nazive.
Povratne veze
• Doda se strani ključ jednak primarnom ključu relacije.
• Za povratne veze vrijedi da je strani ključ jednak primarnom
ključu relacije, ali pod drugim imenom.
25
Relacije u UML-u
ZAVISNOST (dependency)
AGREGACIJA (aggregation)
GENERALIZACIJA (generalization)
REALIZACIJA (realization)
26
Normalizacija podataka
Normalizacija podataka
27
Definicije funkcijskih ovisnosti
28
Definicije funkcijskih ovisnosti
1NF
29
2NF
3NF
30
Primjer normalizacije podataka
31
Normalizacija podataka (1NF)
Rješenje:
PK (STUDENT) = {Matbr}
PK (ISPIT) = {Matbr, SifPred, DatIsp}
ISPIT ne zadovoljava 2 NF !
Rješenje:
32
Normalizacija podataka (3NF)
ISPIT ne zadovoljava 3 NF !
Rješenje:
Normalizacija podataka
Vaţno:
- Baza podataka treba biti barem u 3 NF !
33
Relacijski model (UML notacija)
Modeliranje podataka
Primjeri
34
Primjer 1.
Primjer 1. ( ER model )
35
Primjer 1. ( Relacijski model )
Primjer 2.
36
Primjer 2. ( ER model )
37
Primjer 3.
Primjer 3. ( ER model )
38
Primjer 3. ( Relacijski model )
Primjer 4.
39
Primjer 4.
(nastavak zadatka ...)
...
Evidentiraju se letovi samo putničkih zrakoplova. Let je identificiran šifrom
i datumom leta (npr. "OU763", 1.6.2001), a za let se evidentira s kojeg
aerodroma zrakoplov polijeće, na koji aerodrom slijeće te vrijeme
polijetanja i vrijeme slijetanja. Evidentira se koji zrakoplov leti na kojem
letu.
Evidentiraju se kategorije cijena karata. Svaka kategorija cijena ima svoju
šifru (jedinstveno identificira kategoriju) i naziv (npr. "poslovna",
"ekonomska", "s popustom za zaposlenika kompanije", "s popustom za
osobe mlaĎe od 27 godina", itd). Putnik kupuje kartu točno odreĎene
kategorije cijene za odreĎeni let. Putnik ne može za jedan let kupiti više
od jedne karte. Za svakog putnika se evidentira jmbg (jedinstveno
odreĎuje putnika), prezime i ime.
Primjer 4. ( ER model )
40
Primjer 4. ( Relacijski model )
Primjer 5.
41
Primjer 5. ( ER model )
Modeliranje podataka
Primjeri za vjeţbu
42
Primjer 1. (Evidentiranje objavljenih radova)
Primjer 2. (Ugovori)
43
Primjer 3. (Videoteka)
44
Primjer 5. (Tehnički biro)
45
Sigurnost i integritet
Integritet:
̶ korektnost (dopuštene zdravorazumske vrijednosti podataka)
̶ konzistencija (meĎusobna suglasnost podataka)
Korisnici i sigurnost
46
Korisnici i sigurnost
• CONNECT pero/pero;
Sistemske privilegije
47
Sistemske privilegije
GRANT sistemske_privilegije
TO korisnik|uloga|PUBLIC
[WITH ADMIN OPTION]
REVOKE sistemske_privilegije
FROM korisnik|uloga|PUBLIC
Sistemske privilegije
Primjeri:
48
Uloga (Role)
Korisnici
Uloga
Privilegije
Uloga (Role)
• GRANT uloga_1
TO pero;
49
Objektne privilegije
Objektne privilegije
50
Objektne privilegije
Primjer:
• GRANT select
ON opcina
TO PUBLIC;
Upravljanje transakcijama
51
Upravljanje transakcijama
Upravljanje transakcijama
500 KM
Račun 1 Račun 2
5.000 KM 1.000 KM
52
Osobine transakcija
• 2 tipa transakcija:
– DML – sadrži jedan ili više DML iskaza
– DDL – sadrži jedan DDL iskaz
53
Upravljanje transakcijama
Upravljanje transakcijama
54
Upravljanje transakcijama
Upravljanje transakcijama
Primjer
55
Upravljanje transakcijama
Primjer
56
Zaključavanje (locking)
Što se zaključava?
̶ granulacija: polje, zapis, tablica, stranica (fizički blok na
kojem su zapisi pohranjeni)
57
Mrtva točka (Deadlock)
Deadlock
Primjer
UPDATE djelatnik
t1 SET placa=placa+1000
WHERE id_djelatnika=1; UPDATE djelatnik
t2 SET placa=placa-500
WHERE id_djelatnika=2;
UPDATE djelatnik
t3 SET placa=placa-500
WHERE id_djelatnika=2;
UPDATE djelatnik
t4 SET placa=placa+1000
WHERE id_djelatnika=1;
t5 → ORA-00060: deadlock detected while waiting for resource
58
Ostali objekti u bazi podataka
VIEW, SEQUENCE, INDEX, SYNONYM
• TABLE – Tablica
• VIEW – Pogled
• INDEX – Indeks
• SEQUENCE – Sekvenca
(ORACLE)
• SYNONYM – Sinonim
(ORACLE)
59
Pogled (VIEW)
Što je pogled?
- “prozor” u podatke
- podaci se izvode, ne posjeduju
- pohranjuje se kao SELECT izraz u rječnik podataka
Uporaba pogleda
- za ograničenje pristupa podacima
- za pojednostavljenje složenih upita
- za omogućavanje neovisnosti podataka
- za prikaz različitih pogleda na iste podatke
Pogled (VIEW)
Jednostavni pogled
- podaci su iz jedne tablice
- ne sadrži funkcije ili grupe
- može izvršiti DML
Sloţeni pogled
- podaci su iz više tablica
- sadrži funkcije ili grupe
- ne može izvršiti DML
60
Kreiranje pogleda (VIEW)
Pogled (VIEW)
61
Brisanje pogleda (VIEW)
Indeks (INDEX)
62
Kreiranje indeksa (INDEX)
– AUTOMATSKI
• UNIQUE INDEX se automatski kreira kada se definira
PRIMARY KEY ili UNIQUE CONSTRAINT u definiciji
tablice
– RUČNO
• Korisnik može ručno dodati indeks na neki drugi
atribut (radi ubrzanja pristupa podacima)
Primjer:
• CREATE INDEX djelatnik_prez_idx
ON djelatnik(prezime);
Indeks (INDEX)
63
Indeks (INDEX)
Indeks (INDEX)
64
Sekvence (SEQUENCES)
Što je sekvenca?
Sekvence (SEQUENCES)
65
Sekvence (SEQUENCES)
Sekvence (SEQUENCES)
• SELECT odjel_sifra_seq.CURRVAL
FROM dual;
66
Sinonimi (SYNONYMS)
Primjer:
CREATE [PUBLIC] SYNONYM ime_sinonima
FOR [vlasnik.]ime_objekta;
O predmetu
Web
http://www2.fsr.ba/nastava/baze
To: goran.kraljevic@hteronet.ba
Subject: Baze
67