You are on page 1of 33

Baze podataka-

26.12.2017.
Predavanja X

Predavač: Doc.dr.sc. Jasmin Ćosić


264

Baze podataka - Predavanja (doc.dr.sc. Jasmin Ćosić)


Integritet BP
Kada se spomene osiguranje integriteta BP misli se na:

26.12.2017.
• Mogući oporavak u slučaju nezgode („disaster”)
• Kada se javlja potreba za rekonstrukcijom baze

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Mogućeg konkurentnog pristupa BP od strane više
korisnika
• Osiguranje BP od mogućih destruktivnih utjecaja
• Osiguranje ispravnosti i konzistentnosti podataka

265
Integritet BP
• Čuvati integritet baze znači čuvati korektnost i konzistentnost
podataka.

26.12.2017.
• Korektnost znači da svaki pojedini podatak ima ispravnu
vrijednost.

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Konzistentnost znači da su različiti podaci međusobno
usklađeni, dakle ne protuslove jedan drugome.
• Integritet baze lako bi se mogao narušiti na primjer pogrešnim
radom aplikacija.

266
Integritet BP
• U tu svrhu, suvremeni DBMS-i dozvoljavaju projektantu baze
da definira takozvana ograničenja (constraints).

26.12.2017.
• Riječ je o uvjetima (pravilima) koje korektni i konzistentni
podaci moraju zadovoljavati.
• Projektant uvodi ograničenja tako da ih upiše u fizičku shemu

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
baze.
• Uvedena ograničenja DBMS će uključiti u konačnu realizaciju
baze.
• To znači da će u kasnijem radu kod svake promjene podataka
DBMS automatski provjeravati jesu li sva ograničenja
zadovoljena.
• Ako neko ograničenje nije zadovoljeno, tada DBMS neće
izvršiti traženu promjenu, već će dotičnoj aplikaciji poslati 267
poruku o greški.
Integritet BP
• Ograničenje na integritet domene uvodi se u prvom redu
tako da se u naredbi CREATE TABLE atributu pridruži

26.12.2017.
odgovarajući tip, uz eventualnu klauzulu NOT NULL.

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Ograničenje kojim se izražava svojstvo ključa uvodi se u
prvom redu tako da se u naredbu CREATE TABLE stavi
klauzula PRIMARY KEY odnosno UNIQUE, zajedno s
imenom ili imenima atributa koji čine primarni ključ
odnosno kandidat za ključ.

268
Integritet BP
• U današnjim DBMS-ima ograničenje kojim se čuva
svojstvo stranog ključa uvodi se tako da se u

26.12.2017.
odgovarajuću naredbu CREATE TABLE stavi klauzula
FOREIGN KEY … REFERENCES … .

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Dakle eksplicitno navodimo ime atributa koji predstavlja
strani ključ u dotičnoj relaciji, te ime relacije u kojoj taj
isti atribut predstavlja strani ključ.

269
Sigurnost BP
• Stvaranje pretpostavki za oporavak baze (DB recovery)
• Uključen je DBMS-ov mehanizam za upravljanje transakcijama

26.12.2017.
• Povremeno se stvara rezervna kopija baze
• Održava se žurnal-datoteka (log)

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• SET AUTOCOMMIT = 0 //mod za commit;
• Početak transakcije mora se eksplicitno označiti naredbom
BEGIN;
• Potvrda da je transakcija uredno završila postže se naredbom
COMMIT;
• a opoziv neuspjele transakcije naredbom
ROLLBACK;
270
Sigurnost BP
• Zaštita podataka od neovlaštene uporabe uglavnom se
postiţe tako da se korisnicima pomoću SQL naredbi

26.12.2017.
GRANT i REVOKE dodjeljuju ili uskraćuju ovlaštenja.

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Uvođenje korisnika i upravljanje njihovim ovlaštenjima
obično je posao administratora baze.

• Ipak, dobro je da projektant u sklopu fizičkog oblikovanja


baze već predvidi nekoliko tipičnih korisnika, te predloži
njihova ovlaštenja.
271
Sigurnost BP
• Kreiranje korisnika se vrši izvođenjem naredbi:

26.12.2017.
CREATE USER jasmin IDENTIFIED by C051C_#0791;

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Kao prvi primjer davanja ovlaštenja, najprije navodimo
naredbu GRANT kojom administrator neregistriranom
(anonymous) korisniku dozvoljava pretraživanje fakultetske
baze fakultet.

• GRANT DBA to jasmin;


• GRANT select, insert, update, delete on STUDENT to jasmin;
272
Sigurnost BP
> REVOKE SELECT ON fakultet.* FROM ''@localhost;

26.12.2017.
> REVOKE SELECT on fakultet.* FROM someuser@localhost;

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
> GRANT SELECT ON fakultet.STUDENT TO someuser@localhost;

> GRANT SELECT ON fakultet.NASTAVNIK TO


someuser@localhost;

273
Sigurnost BP
• U relacijskom modelu, i globalna shema i pogled (pod-
shema) zadaju se kao skup relacija.

26.12.2017.
• Pritom se virtualne relacije koje čine pogled izvode iz

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
stvarnih relacija koje čine globalnu shemu.

• U SQL-u se relacija-pogled zadaje naredbom CREATE


VIEW, a izvođenje iz globalnih relacija opisuje se
naredbom SELECT koja je ugniježđena u CREATE VIEW.

274
Sigurnost BP
CREATE VIEW NAST_VIEW1
AS SELECT OIB, PREZIME, IME, IME_ZAVODA, BROJ_SOBE

26.12.2017.
FROM NASTAVNIK;

CREATE VIEW NAST_VIEW2

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
AS SELECT * FROM NASTAVNIK
WHERE IME_ZAVODA = 'Zavod za raĉunarstvo';

CREATE VIEW UPISAO_VIEW


AS SELECT PREDMET.NASLOV, UPISAO.DATUM_UPISA,
UPISAO.OCJENA FROM UPISAO, PREDMET
WHERE UPISAO.JMBAG = 0036398757 275
AND UPISAO.SIFRA_PREDMETA = PREDMET.SIFRA_PREDMETA;
JEDNOSTAVAN PRIMJER -
CODE
• #
• # Table structure for table 't_vozilo'
• #

26.12.2017.
• DROP TABLE IF EXISTS `t_vozilo`;

• CREATE TABLE `t_vozilo` (


• `RegBroj` VARCHAR(25) NOT NULL,
• `brojSasije` VARCHAR(55),
• `Tip` INTEGER REFERENCES t_tipvozila(ID),

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• `BrojMotora` VARCHAR(55),
• `Vlasnik` VARCHAR(55) REFERENCES t_vlasnik(IDDozvole),
• `proizvodjac` INTEGER REFERENCES t_proizvodjac(ID),
• PRIMARY KEY (`RegBroj`)
• );

• #
• # Dumping data for table 'vozilo'
• #

• INSERT INTO `t_vozilo` (`RegBroj`, `brojSasije`, `Tip`, `BrojMotora`, `Vlasnik`, `proizvodjac`) VALUES ('E710555', 'XYZ789L', 2,
'ASDFALSKJ2234', '123/15', 2);
• INSERT INTO `t_vozilo` (`RegBroj`, `brojSasije`, `Tip`, `BrojMotora`, `Vlasnik`, `proizvodjac`) VALUES ('E440123', 'YXZ123', 1,
'SLDFSJLJK223DS', '123/15', 1);
• INSERT INTO `t_vozilo` (`RegBroj`, `brojSasije`, `Tip`, `BrojMotora`, `Vlasnik`, `proizvodjac`) VALUES ('M458564', '123YX234J', 3,
'3211234KFFSDF', '321/12', 3);
• INSERT INTO `t_vozilo` (`RegBroj`, `brojSasije`, `Tip`, `BrojMotora`, `Vlasnik`, `proizvodjac`) VALUES ('K45A333', '432KJK23', 1,


'ASDF432234SDF', '555/10', 4);
# 4 records
276
Sigurnost BP
• Jedna od mjera u procesu osiguranja integriteta BP je primjena
„transakcija”

26.12.2017.
• Bitni koncepti koji predstavljaju mehanizam zaštite su:

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Arhiviranje
• Vođenje dnevnika završenih transakcija
• Import podataka
• Export podataka

277
Izrada dokumentacije
• Projektna dokumentacija za bazu podataka prati sve tri faze
oblikovanja, i zato se dijeli na tri dijela.

26.12.2017.
• Projektna dokumentacija na konceptualnoj razini. Opisuje
konceptualnu shemu baze.
• Projektna dokumentacija na logičkoj razini. Dokumentira logičku

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
shemu baze.
• Projektna dokumentacija na fizičkoj razini. Sadrži fizičku shemu
baze

278
Izrada dokumentacije
• Projektna dokumentacija sastoji se od tekstualnih i grafičkih
dijelova. Dokumentacija na konceptualnoj razini uglavnom je

26.12.2017.
grafička, dakle prvenstveno se oslanja na dijagrame.
• Dokumentacija na logičkoj razini može dijelom biti grafička, no
ipak se više oslanja na tekstualne dijelove koji se oblikuju

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
uporabom bogate tipografije (raznoliki fontovi, podcrtavanje i
slično).
• Dokumentacija na fizičkoj razini uvijek je goli ASCII tekst.

279
Izrada dokumentacije
• Rekli smo da dokumentacija na konceptualnoj razini ustvari
opisuje konceptualnu shemu baze koja se sastoji od

26.12.2017.
elemenata koji se zovu entiteti, atributi, odnosno veze. Postoji
nekoliko predložaka za prikaz konceptualne sheme:

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Izvorni Chen-ov dijagram
• Reducirani Chen-ov dijagram
• UML-ov class dijagram

280

Izrada dokumentacije

Baze podataka - Predavanja


26.12.2017.
(doc.dr.sc. Jasmin Ćosić)
281
Izrada dokumentacije
• Što se tiče dokumentacije na logičkoj razini, rekli smo
da ona opisuje logičku shemu baze. U slučaju relacijske

26.12.2017.
baze logička shema je skup relacija (tablica) građenih od
atributa (stupaca).
• Zato se ona također naziva i relacijska shema. Opisat

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
ćemo dva bitno različita predloška za prikaz relacijske
sheme koji su danas najčešće u uporabi.

• Tekstualni prikaz relacijske sheme.


• Grafički prikaz relacijske sheme

282
Izrada dokumentacije

Baze podataka - Predavanja


26.12.2017.
(doc.dr.sc. Jasmin Ćosić)
283
Izrada dokumentacije
• Sljedeća slika prikazuje fizičku shemu naše baze o studentima,
predmetima i upisima.

26.12.2017.
Baze podataka - Predavanja
(doc.dr.sc. Jasmin Ćosić)
284
Izrada dokumentacije
• Uvod
• Specifikacija problema

26.12.2017.
• Analiza problema
• Dizajn baze podataka (konceptualna razina)

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Dizajn baze podataka (logička razina)
• Implementacija baze podataka (fizička razina)
• Testiranje, verifikacija i validacija
• Upustvo za upotrebu (ukratko, kao prilog)
• Zaključak
• Literatura (Navođenje izvora)
285
Primjer
• Primjer: BOLNICA (pacijent) !

Baze podataka - Predavanja


26.12.2017.
(doc.dr.sc. Jasmin Ćosić)
286
Primjer

Baze podataka - Predavanja


26.12.2017.
(doc.dr.sc. Jasmin Ćosić)
287
Primjer
• KIRURG (JMBG, PREZIME, IME, ADRESA, BROJ TELEFONA)
• PACIJENT (JMBG, PREZIME, IME, ID SOBE, ADRESA, DATUM

26.12.2017.
ROĐENJA, SPOL)
• SESTRA (JMBG, PREZIME, IME, STRUCNA_SPREMA)
• SOBA (ID SOBE, TIP SOBE, BROJ KREVETA)

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• SALA (ID SALE, TIP SALE)
• OPERACIJA (ID OPERACIJE, JMBG KIRURGA, ID SALE, JMBG
PACIJENTA, TIP OPERACIJE, DATUM, VRIJEME)
• ASISTIRA (ID OPERACIJE, JMBG KIRURGA, ULOGA)
• ZADUŽENA ZA SOBU (JMBG SESTRE, ID SOBE, DATUM ZADUŽIVANJA)
• ZADUŽENA ZA SALU (JMBG SESTRE, ID SALE, DATUM ZADUŽIVANJA)

• STRUCNA_SPREMA(ID,NAZIV)
• TIP_OPERACIJE(ID,NAZIV) 288
ODBC konekcija I MySQL
• Migracija podataka između DBMS-ova pomoću ODBC-a

26.12.2017.
Odabir “flat” fajla u ACCESS-u

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
“drajver” za MS ACCESS

289
ODBC konekcija I MySQL
• Kada se konfiguriše ODBC driver za konkretni DMBS sa kog se
vrši migracija pokrećemo program za migraciju.

26.12.2017.
• Migraciju sa MSACCESS ćemo uraditi sa programom MSAccess
to MySQL.

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
• Program je open-source

290
ODBC konekcija I MySQL

26.12.2017.
Načini migracije podataka

Baze podataka - Predavanja


(doc.dr.sc. Jasmin Ćosić)
Podaci za pristup
MySQL serveru

Password ukoliko
je Access zaštićen

291
Odabir tablica
ODBC konekcija I MySQL

Baze podataka - Predavanja


26.12.2017.
(doc.dr.sc. Jasmin Ćosić)
292
Početak migracije
ODBC konekcija I MySQL

Baze podataka - Predavanja


26.12.2017.
(doc.dr.sc. Jasmin Ćosić)
293
Iz ACCESS-a
ODBC konekcija I MySQL

Naša baza karate-a

Baze podataka - Predavanja


26.12.2017.
(doc.dr.sc. Jasmin Ćosić)
294
ODBC konekcija I MySQL

Baze podataka - Predavanja


26.12.2017.
(doc.dr.sc. Jasmin Ćosić)
295
Baze podataka - Predavanja
26.12.2017.
(doc.dr.sc. Jasmin Ćosić)
296

You might also like