Professional Documents
Culture Documents
SkriptaSBP PDF
SkriptaSBP PDF
Naklada: 40 kom
Nijedan dio ove skripte ne smije se umnoavati, fotokopirati ni
na bilo koji drugi nain reproducirati ili koristiti, ukljuujui web distribuciju
i sustave za pretraivanje, te skladitenje podataka bez pismenog
doputenja nakladnika.
CIP - Katalogizacija u publikaciji
SVEUILINA KNJINICA
RIJEKA
UDK 004.65(075.8)
KALUA, Marin
Sustavi baza podataka / Marin Kalua. Rijeka :
Veleuilite, 2008. - (Udbenici Veleuilita u Rijeci =
Manualia Collegium Politechnic Fluminensis)
Veleuilite u Rijeci uvrstilo je ovaj udbenik u veleuiline udbenike (Klasa: 00309/08-01/01, Ur. broj: 2170-57-01-08-13).
PREDGOVOR
Ova skripta napisana je prema sadraju kolegija Sustavi baza podataka koji se izvodi
na Strunom studiju informatike pri Veleuilitu u Rijeci. Svi sadraji koji su skriptom
obraeni usklaeni su s planom i programom kolegija.
Skripta obuhvaa osnovna razmatranja potreba za drutvenu korisnost baza
podataka sa stanovita organizacije, skladitenja i koritenja podatkovnog sadraja.
Objanjava koncepte fizike organizacije podataka i fizikog skladitenja, dohvata i
dostupnosti podatkovnog sadraja. Prikazano je i logiko gledanje na podatke,
logika organiziranost podataka, te komunikacijski jezik s raunalom za dohvat
podataka i razumijevanje istih. Objanjena su i semantika ogranienja na podacima
i njihova izvedivost na bazi podataka. Pravila koja uvaju konzistentnost u
podatkovnom
sadraju
definirana
su
odreenim
matematiki
dokazanim
podataka,
odnosno
svoenje
anomalija
prilikom
auriranja
SADRAJ
1.
POTREBE U OKRUENJU.................................................................................................... 1
1.2.
PROMJENE U DRUTVU...................................................................................................... 1
1.3.
1.4.
2.
3.
DATOTENA ORGANIZIRANOST........................................................................................ 6
3.2.
4.
POGLED NA PODATKE.............................................................................................................. 10
5.
6.
BAZA PODATAKA....................................................................................................................... 16
6.1.
6.1.1.
6.1.2.
6.1.3.
6.1.4.
6.2.
7.
DBMS ................................................................................................................................... 16
SQL ...................................................................................................................................... 23
7.1.1.
7.1.2.
7.1.3.
7.2.
7.2.1.
7.2.2.
7.2.3.
7.2.4.
8.
XML .............................................................................................................................................. 30
9.
10.
11.
11.1.
11.2.
11.2.1.
11.2.2.
11.2.3.
11.2.4.
VANJSKO SPAJANJE................................................................................................. 50
11.3.
FUNKCIJSKA ZAVISNOST.................................................................................................. 51
11.4.
KLJU .................................................................................................................................. 52
12.
12.1.
REDUNDANCIJA ................................................................................................................. 54
12.2.
ANOMALIJE ......................................................................................................................... 55
12.3.
NORMALIZACIJA ................................................................................................................ 57
12.4.
12.5.
12.5.1.
12.5.2.
12.5.3.
12.5.4.
13.
13.1.
UVANJE KONZISTENTNOSTI.......................................................................................... 67
13.2.
13.2.1.
TRANSAKCIJSKI PRISTUP........................................................................................ 70
13.2.2.
13.3.
14.
1.3. RAD
SUVREMENO
DOBA
BEZ
KORITENJA
BAZA
PODATAKA
Svjetski trendovi pokazuju potrebu za sve veom povezanou meu ljudima
u poslovnom i neposlovnom ivotu. U komunikaciji meu ljudima potrebni su podaci
koji e predstavljati temelj uspjeno izvedene komunikacije. Kada u komunikaciji ne
bismo koristili podatke kao dokaze, vrlo bismo brzo bili izbaeni iz igre. To znai da
u suvremeno, digitalno doba, u vrijeme globalizacije, ne moemo biti uspjean
poslovni subjekt ako ne posjedujemo podatke iz kojih moemo jednostavno, brzo, i
tono doi do informacije koja moe pomoi u poslovnom odnosu.
Komunikacija bez koritenja podataka dobivenih iz baze moe biti Sizifov posao.
DATOTEKA
Skup istovrsnih slogova koji zajedno ine i definiraju tip pojave. Kako svaki
slog predstavlja jednu jedinku iz objektivne stvarnosti opisanu pomou vrijednosti
atributa zapisanu u poljima, tako datoteka predstavlja stog takvih pojava meusobno
razliitih, ali samo onih koje pripadaju istom tipu pojave i koje se mogu jednoznano
opisati atributima (poljima) u datoteci.
Tako npr. postoji datoteka koja sadri podatke o studentima. Ona je sainjena
od slogova, a slogovi su pojedinani studenti iz objektivne stvarnosti. Razliitost
svakog pojedinog studenta od drugog definirana je vrijednostima u poljima
(atributima).
Isto tako, primjerice, postoji datoteka o studijima iji slogovi predstavljaju
pojedinane studije koji su opisani i zapisani u poljima.
U datoteci se nalaze samo slogovi iste vrste. U datoteci nema slogova
razliitih vrsta. Moderniji programi posjeduju mogunost spremanja slogova u
datoteku, a koji nisu jednake vrste. Takve datoteke imaju fiziki odvojene lokacije za
spremanje slogova razliitih vrsta. Slogovi jedne vrste spremaju se u jedan dio
datoteke, dok se slogovi druge vrste spremaju u drugi dio datoteke.
BAZA PODATAKA
Organizirana, povezana, elektronika biblioteka datoteka. Baza podataka
sastoji se od vie razliitih datoteka koje su na logikoj razini na neki nain povezane.
Povezane nisu datoteke, ve podaci koji se nalaze zapisani u poljima slogova
datoteke. Baza podataka je organizirana jer postoje pravila povezivanja i odnosa
meu podacima iz datoteka. Logike poveznice meu datotekama regulirane su
programskim rjeenjem. Programsko rjeenje koje brine o vezama meu podacima u
datotekama moe biti:
-
3. ORGANIZACIJA PODATAKA
Pojam datoteke ve smo pojasnili. U datoteke se spremaju podaci o pojavama
i odnosima u objektivnoj stvarnosti. Podatke je potrebno sigurno zapisati kako bi se
uvijek moglo do njih doi brzo i tono.
SLIJEDNA
DIREKTNA
SAM
U slijednim ili sekvencijalnim datotekama podaci se zapisuju redom jedan iza
drugoga onim redoslijedom kojim se unose. Ova metoda organizacije podataka moe
se ostvariti na svim nosiocima podataka.
Slika pokazuje shematski prikaz sekvencijalno spremljenih podataka.
ISAM
Indeks-sekvencijalna organizacija podataka nastala je na bazi sekvencijalne
organizacije s ciljem da pobolja njezina svojstva. Postojea sekvencijalna struktura
nadograena je indeksnom strukturom. Podatku je mogue pristupiti direktno.
Postoje dva preduvjeta: razliitost definicije sloga i neposredan pristup
memoriji. Slogovima se mora moi pristupiti direktno. To je mogue ako je nositelj
podataka direktno organiziran. ISAM metodom ne mogu biti organizirane datoteke
spremljene na magnetnim trakama. Svaki slog treba se razlikovati od drugoga prema
nekim obiljejima. Takva obiljeja obino se stvaraju na temelju vrijednosti primarnog
kljua ili se sama vrijednost primarnog kljua koristi u tu svrhu.
Zapisivanje podataka provodi se jednako kao i kod SAM metode, samo to se
istovremeno uz zapisivanje podataka izvodi i zapisivanje tablice indeksa. Tablica
indeksa sastoji se od dva stupca: stupac s kljuevima i stupac s adresama slogova.
Za pristup odreenom slogu potrebno je znati vrijednost kljua i time se direktno
pristupa eljenom slogu.
Nedostaci:
slaba iskoritenost prostora nosioca podataka
teka sekvencijalna i grupna obrada podataka
tekoe u pronalaenju najboljeg postupka za transformaciju kljua
datoteka mora uvijek biti cijela prisutna u sustavu.
4. POGLED NA PODATKE
Podaci nose odreenu vrstu i razinu stanja realnog svijeta. Podatke treba
uvati kako bi se zakonitosti u realnom svijetu mogle trajno rabiti kao izvori
informacija u buduim aktivnostima. Stoga, kada se promatraju, postoje dva naina
razmiljanja o podacima:
-
fiziki
logiki.
Prvi nain vodi brigu o podacima i njihovom sigurnom spremanju. Drugi se nain
brine o tehnici dohvaanja samo odreenih podataka sa svrhom stvaranja nove
informacije.
FIZIKI POGLED NA PODATKE
Pokazuje lokaciju gdje su podaci smjeteni i u kakvom obliku. Govori o lokaciji
u prostoru, na kojem mediju, u kojoj tablici, u kojem redu i na kojem stupcu se nalazi
odreeni podatak koji se trai. Fiziki pogled pokazuje (objanjava) fiziku lokaciju
podataka. Objanjava metodu (zakonitost) koja definira pravila kako e podaci biti
spremljeni i kako e biti organizirani bitovi (prekidai).
LOGIKI POGLED NA PODATKE
Definira koji su to i kakvi su dobiveni podaci koje potrebuje odreena aplikacija
(programsko rjeenje). Logiki pogled na podatke daje pravila kako pristupiti
podacima iz bilo kakve aplikacije. Podrazumijeva naziv podataka i njegovu tipizaciju.
Tip kojem pripada odreeni podatak kako bi se definirala vrsta dobivene informacije.
Ovaj pogled objanjava pristup kojim korisnik ili programer na konceptualnoj
razini razumije podatke.
10
Nekonzistentnost
o Ako se jedan podatak nalazi u dvije razliite datoteke, tada se on moe
na razliite naine itati i/ili pisati. Dvije razliite datoteke mogu biti
razliito fiziki organizirane te mogu posjedovati razliite metode
pristupa. Ne znai da e se jednom podatku u jednoj datoteci pristupati
jednako, odnosno istom metodom i algoritmom, kao i tom istom ili
drugom podatku u nekoj drugoj datoteci.
11
Zalihost podataka
o Jednaki podaci u razliitim datotekama nisu povezani na logikoj razini.
Program ne mora poznavati i imati uvida u sve datoteke u kojima se
nalaze podaci. Kako ne postoji sustavna povezanost meu podacima,
esto se deava multipliciranje istog podatka u vie razliitih datoteka.
Time se omoguuje drugim programima dolazak do podataka.
Redundancija je logino narasla.
o Pretpostavimo da postoje dva korisnika programa A i B. Program A
koristi odreene datoteke i u njih sprema neke podatke, a program B
koristi neke druge datoteke i neke datoteke programa A. Program A i
program B ne poznaju koje sve izvore podataka koristi onaj drugi.
Podaci se esto ponavljaju, jer programi A i B esto koriste jednake
podatke, s razliitih lokacija. Jedan podatak je zapisan na razliitim
lokacijama i time se stvara zalihost redundancija.
12
Onemoguavanje
fleksibilnosti
obrade
viih
razina
upravljanja
podacima
o esto postoje zahtjevi za dobivanjem novih informacija iz podatkovne
osnove, ali ne iz samo jedne datoteke. Dolazak do odreenih podataka
iz vie razliitih datoteka i njihovo prezentiranje krajnjem korisniku kroz
program obino se rjeava pomou vrlo sloenih algoritama, koji su
ukljueni u sam program.
o Linearne promjene nad podacima prema odreenim formulama vrlo su
teko izvedive. Istovremeno dohvaanje podataka iz razliitih datoteka
na temelju definiranih spojnih toaka izvodi se esto sekvencijalno s
definiranim formulama ispada (izbaaja) i neobuhvaanja.
-
14
15
6. BAZA PODATAKA
Baza podataka je organizirani elektroniki skup podataka, pripremljen tako da
se moe jednostavno koristiti. To znai da se podaci u bazi podataka mogu
jednostavno koristiti, pregledavati, pretraivati, sortirati, usporeivati, te takoer,
mijenjati, dodavati i brisati. Podaci su u bazi podataka pohranjeni i sustavno
upravljani. Zalihost (redundancija) je u bazi podataka svedena na minimum.
6.1. DBMS
Bazom podataka upravlja Sustav za Upravljanje Bazama Podataka (SUBP)
eng. Database Management System (DBMS). DBMS je program koji kreira podatke i
kontrolira pristup podacima u bazi podataka. DBMS omoguava poslovnim
aplikacijama raznovrstan dohvat podataka. DBMS je neovisan o platformi na kojoj se
koristi, te neovisan o raunalnom programu (poslovnoj aplikaciji) koji ga koristi.
DBMS omoguuje korisniku ili programeru poznavanje logike strukture
podataka i logiki pogled na podatke. On interno vodi brigu o fizikoj lokaciji
podataka na disku i tehnologiji njihove pohrane i dohvaanja, odnosno razumijeva
fiziki pogled na podatke. Korisnik (krajnji ili programer) ne moe dobiti informaciju o
fizikoj organizaciji podataka, no to mu nije niti potrebno.
U nastavku emo pokazati neke koristi DBMS-a:
16
dobivene
povezivanjem
podataka
osigurava
se
referencijalnim
integritetom.
Samo
DBMS
operacijski
sustav
mogu
biti
uzrokom
nedostupnosti podataka.
17
DD (Data Dictionary)
18
PREZIME:
CHARACTER(16) UNIQUE
JMBG:
SPOL:
CHARACTER(1) VALUES(M,)
DAT_UPI:
DATE NO DUPLICATE
GRAD:
CHARACTER(24) FOREIGN(GRADOVI.GRAD)
PLACENO: DECIMAL(7,2)
)
ili
ALTER TABLE STUDENT ADD ATTRIBUTE BODOVA NUMBER(2)
ili
ALTER TABLE STUDENT DROP ATTRIBUTE SPOL
19
oznaka obaveznosti
20
prikaz podataka
grupiranje podataka
22
6.2. SQL
Cilj standardiziranog pristupnog jezika je stvoriti pravila kojih se treba
pridravati kod stvaranja pitanja raunalu za dobivanjem odreenih podataka koji
mogu dati odreenu informaciju, a koja ima za posljedicu provoenje odreene
aktivnosti.
Takav upitni jezik zove se: SQL Structured Query Language, standardizirani
upitni jezik za manipulaciju podacima koji se nalaze pohranjeni u bazi podataka. U
SQL-u su integrirani i dostupni svi elementi koji su u teoriji zahtjevni pristupnim
jezikom u bazi podataka.
SQL je zaet u IBM-u 70-ih godina pod nazivom SEQUEL. SEQUEL je bio
dizajniran za upravljanje podacima i njihovim pronalaenjem. SQL do 80-ih godina
nije komercijalno razvijan zbog slabih karakteristika tadanjih raunala. Do kraja 80ih godina razvilo se nekoliko desetaka razliitih komercijalnih SQL sustava. Sa
stanovita korisnika velika razliitost meu njima dovela je do potrebe standardizacije
upitnog jezika. ANSI (American National Standards Institute) i ISO (International
Standards Organizations) objavile su 1989. prvu inaicu standarda pod nazivom
SQL-89. Ve 1992. objavljen je SQL-2 standard, te 1999. SQL-3 standard.
Danas se SQL jo uvijek razvija iako je ve na vrlo zavidnom stupnju razvoja.
Svi vodei proizvoai DBMS sustava implementirali su standard u svoja DBMS
rjeenja.
23
Tip veze 1 prema 1 (1:1) prikazuje takvu vrstu povezivanja podataka kojom se
za odreeni podatak moe definirati samo jedna vrijednost u drugom podatku. Time
se onaj prvi podatak dodatno opisuje, objanjava, obogauje novim svojstvima.
Objekt na lijevoj strani veze moe predstavljati i vie atributa koji su svi u vezi 1:1. U
tom sluaju takav je objekt tip entiteta. Veza 1:1 oznaava da e se za jednu pojavu
vrijednosti na lijevoj strani veze dogoditi jedna pojava vrijednosti na desnoj strani
veze i obrnuto. Obino se tipom veze 1:1 prikazuju veze izmeu tipa entiteta i
njegovih pripadnih atributa i specijalne veze izmeu dva razliita tipa entiteta.
24
Tip veze 1 prema vie (1:M) prikazuje takvu vrstu povezivanja podataka kojom
se za odreeni podatak moe definirati vie vrijednosti u drugom podatku. Prvi
podatak se dodatno opisuje pripadnim vrijednostima u drugom podatku. Veza 1:M se
prepoznaje tako to su vrijednosti u drugom podatku jednakog tipa i objanjavaju
jednaku osobinu (svojstvo). Ako postoji takva veza meu podacima tada se takvi
podaci grupiraju u cjelinu i ine tip entiteta koji je s prvim podatkom (obino tipom
entiteta) povezan vezom M:1.
Tip veze vie prema vie (M:M) prikazuje mogunost povezivanja vie
vrijednosti prvog tipa podataka s vie vrijednosti drugog tipa podataka. Ako postoje
takve ovisnosti meu podacima, tada se sve vrijednosti prvog podatka grupiraju i ine
entitete u tipu entiteta. Isto tako se vrijednosti drugog podatka grupiraju i ine entitete
u drugom tipu entiteta. Tada su tipovi entiteta povezani specijalnim tipom veze M:M.
25
hijerarhijski
mreni
relacijski
objektni
26
Mrenim modelom mogue je povezati bilo koji tip podataka s bilo kojim
drugim, no ne znai da uistinu postoji prava logika veza meu povezanim
elementima. Moda nije korektno da su svi elementi u prikazanom modelu na takav
nain povezani.
27
28
tipovi podataka
metode
klase.
Klase prikazuju odreenu vrstu grupiranja objekata modela nad kojima djeluju
jednake metode koje pospjeuju dinamiku. Razliiti objekti mogu pripadati klasama.
Klase posjeduju metode i svojstva kojima se upravlja promjenama nad podacima i
osigurava integritet i konzistentnost podataka. Objekti tada nasljeuju (inheritance)
metode i svojstva i obogauju ih svojim specifinim metodama i svojstvima
(podacima).
8. XML
XML (Extensible Markup Language) je jezik za oznaavanje podataka. XML
predstavlja nain spremanja podataka koji bi bio jednostavan za itanje i ljudima i
raunalu. Sintaksa XML-a vrlo je slina HTML sintaksi. Podaci se u XML datoteku
zapisuju hijerarhijskom strukturom i vezama. Svi podaci u XML datoteci vidljivi su bilo
kakvim programom koji moe itati tekstualne datoteke. Meutim strukturu XML
datoteke i koliinu sadraja zapisanih u XML datoteci mogue je itati pomou za to
namijenjenih programa.
Ciljevi koji su se htjeli postii uvoenjem XML-a su:
1. mora biti izravno primjenjiv preko interneta
2. mora podravati irok spektar primjena
3. mora biti kompatibilan sa SGML-om
4. treba osigurati lakou pisanja programa koji procesuiraju XML
dokumente
5. broj opcionalnih svojstava u XML dokumentu mora biti minimalan ili
jednak nuli
6. dokumenti trebaju biti itljivi ljudima, te u razumnoj mjeri jednostavni
7. dizajn mora biti brz i jednostavan
8. dizajn mora biti formalan i precizan
9. kreiranje dokumenta mora biti jednostavno
10. oznake u dokumentu se ne smiju izostavljati
Primjer:
<?xml version="1.0" encoding="UTF-8"?>
<poruka>
<za>Ivo</za>
30
<od>Jure</od>
<naslov>Podsjetnik</naslov>
<tijelo>Napii zadau</tijelo>
</poruka>
Atributi dodatno opisuju pojedini element, daju elementu dodatna svojstva koja nisu
definirana njegovom vrijednou. Postoje dva temeljna pristupa, odnosno odnosa
prema XML atributima:
1. Pozitivan stav o XML atributima smatra se da se XML atributima moe
dodatno opisati XML element, a time i sprijeiti takav dodatni opis elementa
njegovim podelementima, ime se znatno moe smanjiti nepotrebno
poveavanje hijerarhijske strukture XML dokumenta.
2. Negativan stav o XML atributima smatra se da XML dokument treba biti
ist i ne treba sadravati nikakve XML atribute, ve se svi opisi mogu i
moraju definirati podelementima XML elementa.
31
jednostavan za itanje
u potpunosti transparentan
XML kao standard komunikacije danas ima sve veu primjenu i zasigurno e tako
i ostati. Veina dananjih DBMS sustava posjeduje podrku za stvaranje i itanje
XML dokumenata. Oekuje se jo vea integracija XML-a u DBMS sustave
omoguavanjem klasinih SQL naredbi na XML dokumentima, to danas posjeduju
neki DBMS sustavi.
32
Slika prikazuje faze ivotnog ciklusa baze podataka. Iz prikazane slike vidi se
da razvoj i rast baze podataka nikada ne staje. Razvoj se vrti u zaaranom krugu.
Kada su svi elementi baze podataka gotovi i uspjeno se koriste, posao nije gotov.
Neto e novo biti potrebno dograditi na postojei sustav. Razvoj nikada nije zavren.
I kad sve izgleda tako da je posao zavren, pojavit e se zahtjev koji e traiti
dodatnu funkcionalnost koja nije podrana postojeom bazom.
U nastavku e biti pojedinano objanjena svaka faza razvoja baze podataka.
1. Planiranje
U procesu planiranja definiraju se potrebe i mogunosti za sustavom
baze podataka (SBP). Pristupa se objektivnoj analizi tehnoloke i
ekonomske izvedivosti. Definiraju se ciljevi koji se trebaju postii
izgradnjom SBP-a.
33
2. Analiza potreba
Identifikacija potreba krajnjeg korisnika. Definiranje podruja vanosti
novog SBP-a. Definiranje osnovnih potreba za strojnom i programskom
osnovicom. Odabir odgovarajueg DBMS sustava koji e podrati
potrebe.
3. Dizajniranje
Definiranje strukture i koncepata izrade baze podataka. Provodi se kroz
konceptualni dizajn i fiziki dizajn.
Konceptualni dizajn apstrakcija podataka u modelu podataka,
grupiranje podataka i stvaranje objekata, povezivanje elemenata u
modelu podataka.
Fiziki dizajn detaljno modeliranje baze podataka, stvaranje
relacijskog modela podataka, provoenje normalizacije, detaljno
specificiranje strojne i programske opreme za uspjeno funkcioniranje
baze podataka.
4. Izgradnja
Prevoenje sheme baze podataka (relacijskog modela) u stvarnu
strukturu u odabranom DBMS-u, izgradnja tablica baze podataka na
temelju relacijskog modela, podeavanje ogranienja: primarni klju (PK
primary key), eventualni sekundarni kljuevi (UI unique indeks),
vanjski kljuevi (FK foreign key), ogranienja atributa na listu
vrijednosti.
5. Implementacija
Testiranje rada novog SBP-a, upisivanje ili generiranje testnih
podataka, eventualna migracija postojeih podataka iz stare baze
podataka ili iz datoteka, izobrazba i obuka korisnika za rad i koritenje
novog SBP-a.
6. Koritenje i odravanje
Nadzor rada novog SBP-a, fina regulacija baze podataka, dodatna
customizacija baze podataka, izrada sustavno voenih sigurnosnih
kopija (backup).
Sustav nikada nije gotov, uvijek e postojati neke nove potrebe i
funkcionalnosti. Razmiljanje o novim zahtjevima za nadogradnju SBPa prelazak ponovo u fazu 1.
34
35
1. Predstavljanje informacije
eng. the information rule
Sve informacije u bazi podataka logiki
su
predstavljene
iskljuivo
Ogranienja integriteta
Autorizaciju
6. Auriranje pogleda
eng. view updating rule
Svi pogledi koji se teoretski mogu aurirati, moraju se moi aurirati na
sustavnoj razini. Ako relacijska baza podataka dozvoljava stvaranje i koritenje
pogleda na podatke, tada se rezultati koje pokazuje pogled moraju automatizmom na
sustavnoj razini obnavljati ovisno o promjenama koje su se dogodile na bazinim
podacima. Obnavljanje rezultata pogleda ne smije provoditi manualno korisnik ili
administrator.
7. Visoka razina unosa, izmjene i brisanja
eng. high-level insert, update and delete
Manipulacija relacijom kao operandom mora biti mogua ne samo prilikom
pretraivanja podataka, nego i prilikom unosa izmjene ili brisanja.
8. Fizika neovisnost podataka
eng. physical data independence
Aplikacije ili aktivnosti kojima se korisnik koristi za pristup podacima u
potpunosti su neovisni o metodi pristupa podacima i o strukturi i nainu spremanja
podataka na medije.
9. Logika neovisnost podataka
eng. logical data independence
Promjene na relacijama koje su po teoriji doputene ne smiju utjecati na nain
pristupa podacima od strane aplikacija i korisnika.
37
38
SHEMA RELACIJE
Shema relacije je konaan neprazan skup atributa. Sastoji se od imena i
popisa atributa. Shema relacije (pojavnost) definira tipove podataka smjetene tako
da tvore logiku cjelinu koja e moi jednoznano opisivati odreenu pojavu. Shema
relacije treba biti dovoljno dobra da moe razlikovati stvarne pojave opisane pomou
atributa sheme.
Matematiki prikaz: R={A1, , Ak,} gdje je:
R naziv sheme relacije
A1, A2, A3, , Ak svaki pojedini atribut sheme
Primjer: Partner (Matini broj, Naziv, Adresa, Grad, Telefon)
39
SLOG
Slog predstavlja maksimalno jednu definiranu vrijednost po svakom atributu
sheme. Slog je pojava iz objektivne stvarnosti zapisana u bazi pomou vrijednosti
svakog pojedinog atributa koji nosi odreeni semantiki tip vrijednosti.
Primjer: (123, Veleuilite, Vukovarska 1, Rijeka, 051/123-456)
RELACIJA
Skup slogova koji pripadaju istoj shemi relacije. Skup zapisanih pojava koje
sve zajedno pripadaju jednoj pojavnosti. Relacija je uvijek definirana nad nekom
shemom relacije. Relacija se moe prikazati tabelarno tada se moe rei da je
relacija = tablica.
Relacija sadri uvijek konaan broj slogova. U teoriji relacija moe primiti
beskonano () slogova. Praksa je limitirana kapacitetima na mediju/ima. U svakom
trenutku poznato je koliko slogova se nalazi u relaciji.
Prazna relacija je ona relacija koja nema niti jedan slog. Nije prazna relacija
ona koja nema niti jedan atribut, jer time ne bi bilo zadovoljeno pravilo da je relacija
definirana nad nekom shemom relacije.
40
11.2.1.
Svi naslijeeni relacijski operatori su binarni i djeluju nad dvije razliite relacije
jednakih shema. Naslijeeni operatori su preuzeti iz algebre nad skupovima i
obogaeni relacijskim definicijama. Tako su preuzeta pravila operiranja nad jednom
dimenzijom i to slogovima (redovima) koji ine relaciju. Shema relacije nad kojom
djeluje naslijeeni relacijski operator jednaka je za obije relacije. Naslijeeni relacijski
operator ne moe se izvoditi nad razliitim relacijama razliitih shema.
Unija ()
Postoje dvije relacije jednakih shema r(R) i s(R).
Rezultat provoenja:
-
stupci - svi atributi preuzeti iz bilo koje relacije jer su im sheme jednake
Kupci
Dobavljai
M. br.
Naziv
Adresa
Grad
Telefon
M. br.
Naziv
Adresa
Grad
Telefon
12345
Veleuilite
Vukovarsk
a1
Rijeka
051/111-222
77564
Hrvatske
ume
umska
15
Zagreb
01/11-22-334
33215
3. maj
Rijeka 17
Rijeka
33-22-11
99115
Filozofski
fakultet
Uenika
15/IV
Dubrov
nik
+385 21 337891
77564
Hrvatske
ume
umska
15
Zagreb
01/11-22-334
38912
P.E.R.O.
d.o.o.
Neka ulica
11
Pula
052/11-44-78
Kupci Dobavljai
Partneri
MB
Naziv
Adresa
Grad
Telefon
12345
Veleuilite
Vukovarska 1
Rijeka
051/111-222
33215
3. maj
Rijeka 17
Rijeka
33-22-11
77564
Hrvatske ume
umska 15
Zagreb
01/11-22-334
99115
Filozofski fakultet
Uenika 15/IV
Dubrovnik
+385 21 337-891
38912
P.E.R.O. d.o.o.
Neka ulica 11
Pula
052/11-44-78
41
Presjek ()
Postoje dvije relacije jednakih shema r(R) i s(R).
Rezultat provoenja:
-
stupci - svi atributi preuzeti iz bilo koje relacije jer su im sheme jednake
Kupci
Dobavljai
MB
Naziv
Adresa
Grad
Telefon
MB
Naziv
Adresa
Grad
Telefon
123456
Veleuilite
Vukovarsk
a1
Rijeka
051/111-222
775642
Hrvatske
ume
umska
15
Zagreb
01/11-22-334
332156
3. maj
Rijeka 17
Rijeka
33-22-11
991155
Filozofski
fakultet
Uenika
15/IV
Dubrov
nik
+385 21 337891
775642
Hrvatske
ume
umska
15
Zagreb
01/11-22-334
389125
P.E.R.O.
d.o.o.
Neka ulica
11
Pula
052/11-44-78
Kupci Dobavljai
Partneri samo oni koji su i kupci i dobavljai
MB
Naziv
Adresa
Grad
Telefon
775642
Hrvatske ume
umska 15
Zagreb
01/11-22-334
Razlika (-)
Postoje dvije relacije jednakih shema r(R) i s(R).
Rezultat provoenja:
-
stupci - svi atributi preuzeti iz bilo koje relacije jer su im sheme jednake
42
Kupci
Dobavljai
MB
Naziv
Adresa
Grad
Telefon
MB
Naziv
Adresa
Grad
Telefon
123456
Veleuilite
Vukovarsk
a1
Rijeka
051/111-222
775642
Hrvatske
ume
umska
15
Zagreb
01/11-22-334
332156
3. maj
Rijeka 17
Rijeka
33-22-11
991155
Filozofski
fakultet
Uenika
15/IV
Dubrov
nik
+385 21 337891
775642
Hrvatske
ume
umska
15
Zagreb
01/11-22-334
389125
P.E.R.O.
d.o.o.
Neka ulica
11
Pula
052/11-44-78
Kupci - Dobavljai
Kupci samo oni koji nisu dobavljai
MB
Naziv
Adresa
Grad
Telefon
123456
Veleuilite
Vukovarska 1
Rijeka
051/111-222
332156
3. maj
Rijeka 17
Rijeka
33-22-11
43
11.2.2.
stupci odabrani atributi iz sheme osnovne relacije, atributi mogu biti samo iz
osnovne relacije
Partneri
MB
Naziv
Adresa
Grad
Telefon
123456
Veleuilite
Vukovarska 1
Rijeka
051/111-222
332156
3. maj
Rijeka 17
Rijeka
33-22-11
775642
Hrvatske ume
umska 15
Zagreb
01/11-22-334
991155
Filozofski
Uenika
Dubrovnik
+385 21 337-891
389125
P.E.R.O. d.o.o.
Neka ulica 11
Pula
052/11-44-78
Grad
Veleuilite
Rijeka
3. maj
Rijeka
Hrvatske ume
Zagreb
Filozofski fakultet
Dubrovnik
P.E.R.O. d.o.o.
Pula
44
Selekcija ()
Izvodi se nad jednom relacijom i njenom pripadnom shemom. Prikazuje
slogove iz osnovne relacije, s time da postoji formula F koja treba biti zadovoljena
kako bi slog bio pokazan.
Rezultat provoenja:
-
redovi slogovi osnovne relacije kojima je formula istina. Oni slogovi koji su
zadovoljili uvjet zadan u formuli.
Partneri
MB
Naziv
Adresa
Grad
Telefon
123456
Veleuilite
Vukovarska 1
Rijeka
051/111-222
332156
3. maj
Rijeka 17
Rijeka
33-22-11
775642
Hrvatske ume
umska 15
Zagreb
01/11-22-334
991155
Filozofski
Uenika 15/IV
Dubrovnik
+385 21 337-891
389125
P.E.R.O. d.o.o.
Neka ulica 11
Pula
052/11-44-78
Naziv
Adresa
Grad
Telefon
123456
Veleuilite
Vukovarska 1
Rijeka
051/111-222
332156
3. maj
Rijeka 17
Rijeka
33-22-11
45
Prirodni spoj ()
Prirodni spoj je binarni operator i djeluje nad dvije relacije s dvije razliite
sheme. Moe se rei da je to pridruivanje s izjednaavanjem. Svi zajedniki atributi,
dakle oni atributi koji ine presjek shema, izjednaavaju se po vrijednostima u
slogovima. Svaki slog u prvoj relaciji pokuava se izjednaiti preko zajednikih
atributa sa svakim slogom iz druge relacije. Ako je to mogue, tada slogovi stvaraju
slog nove relacije.
Rezultat provoenja:
-
Ako se spojenoj relaciji promatra projekcija na skup atributa prve relacije, tada svi
dobiveni slogovi jesu iz prve relacije. Isto vrijedi i za drugu relaciju.
Artikli centrale
ifra
Artikli maloprodaje
Naziv
Jedinica
artikla
Dob. ifra
mjere
Plan.
ifra
cijena
artikla
Naziv
Barcode
Plan.
Stanje
cijena
001
Coca Cola
KOM
CC1L-005
15,00
002
Prut
38635687
190,15
150,01
005
Rakija
LIT
007
33,50
001
Coca Cola
38566833
4112
15,00
200
002
Prut
KG
Pr-Slav-15
190,15
005
Rakija
876432
33,50
8,5
Naziv
Jedinica
Dobavljaeva ifra
mjere
Planska
Barcode
cijena
001
Coca Cola
KOM
CC1L-005
005
Rakija
LIT
007
002
Prut
KG
Pr-Slav-15
stanje
15,00
385668334112
33,50
876432
190,15
Trenutno
38635687
200
8,5
150,01
46
Preimenovanje ()
Koristi se za preimenovanje atributa. Operator preimenovanja je unaran, izvodi
se nad jednom relacijom i njenom pripadnom shemom. Stvara se nova relacija s
novom shemom koja sadri preimenovane atribute.
Rezultat provoenja:
-
Partneri
Matini broj
Naziv
Adresa
Grad
Telefon
123456
Veleuilite
Vukovarska 1
Rijeka
051/111-222
332156
3. maj
Rijeka 17
Rijeka
33-22-11
775642
Hrvatske ume
umska 15
Zagreb
01/11-22-334
991155
Filozofski fakultet
Uenika 15/IV
Dubrovnik
+385 21 337-891
389125
P.E.R.O. d.o.o.
Neka ulica 11
Pula
052/11-44-78
Preimenovati atribute Matini broj, Grad i Telefon u redom Porezni broj, Sjedite, Kontakt
Partneri novi
Porezni Broj
Naziv
Adresa
Sjedite
Kontakt
123456
Veleuilite
Vukovarska 1
Rijeka
051/111-222
332156
3. maj
Rijeka 17
Rijeka
33-22-11
775642
Hrvatske ume
umska 15
Zagreb
01/11-22-334
991155
Filozofski fakultet
Uenika 15/IV
Dubrovnik
+385 21 337-891
389125
P.E.R.O. d.o.o.
Neka ulica 11
Pula
052/11-44-78
47
11.2.3.
ako prva i druga shema relacije nisu u potpunosti disjunktne (imaju barem
jedan zajedniki atribut), tada u jednoj treba izvriti preimenovanje atributa
kako bi se postigla disjunktnost R S =
Rezultat provoenja
-
redovi svaki slog prve relacije spojen je sa svakim slogom druge relacije,
ukupno ima: broj slogova r * broj slogova s.
Kvocijent ()
Operator kvocijent je binaran, djeluje nad dvije relacije i s razliitim shemama.
Prikazuje prvu relaciju podijeljenu s drugom, odnosno prikazuje sve slogove iz prve
relacije koji su povezani preko zajednikog atributa sa svim (ne samo nekim)
slogovima iz druge.
Definicija:
-
r s (T), gdje je T = R - S
Rezultat provoenja:
-
redovi svi oni slogovi iz prve relacije koji su se mogli spojiti strogo sa svakim
slogom iz druge relacije na zajednikim atributima koji nisu pokazani u novoj
relaciji.
49
11.2.4.
VANJSKO SPAJANJE
50
51
Primjer:
Rauni
Br. ra
Kupac
Adresa
Sjedite
Pota
Iznos rauna
15
Veleuilite
Vukovarska 1
Rijeka
51000
5.000,00
25
3. maj
Rijeka 17
Rijeka
51000
158,32
17
Veleuilite
Vukovarska 1
Rijeka
51000
356,15
18
Filozofski fakultet
Uenika 15/IV
Dubrovnik
21000
1.298,22
50
P.E.R.O. d.o.o.
Neka ulica 11
Pula
52000
15.862,34
11.4. KLJU
Svaka funkcijska zavisnost ima dva elementa: atribut koji odreuje i atribut koji
je odreen. Podatak zapisan u atributu koji odreuje predstavlja i nain dohvaanja
podatka spremljenog u atributu koji je odreen. To znai da atribut koji odreuje
predstavlja klju za atribut koji je odreen.
U shemi relacije vrijede neke funkcijske zavisnosti. Treba popisati sve
funkcijske zavisnosti i takav popis sortirati tako da se lako moe uoiti koji atribut
odreuje najvie ostalih. Onaj atribut koji odreuje najvie ostalih postaje kandidat za
primarni klju. Na temelju kandidata za primarni klju stvara se i naziv sheme relacije.
Primarni klju u relaciji je jedan atribut ili skup atributa. Prema broju atributa
koji ga ine moe biti jednostavan (jedan atribut) ili sloen (vie atributa).
52
53
12.1. REDUNDANCIJA
Redundancija je nepotrebno ponavljanje podataka u bazi. Ostvaruje se
memoriranjem vie kopija iste informacije u bazi podataka. Redundancija poveava
brzinu obrade jer se kopije informacija nalaze u slogovima koji e se obraivati. Do
informacija koje su kopirane u slogove koji e se obraivati moe se doi
jednostavno i brzo. Nije potrebno izvravati povezivanja relacija za izvlaenje
informacije.
Ako se, primjerice, u logikom slogu radnika memoriraju sve informacije
relevantne za obraun osobnog dohotka tog radnika (informacije o radnim zadacima
na kojima je radnik radio u proteklom periodu, informacije o satima bolovanja, mjestu
boravita, osnovici osobnog dohotka, itd.), tada e za obraun osobnog dohotka
radnika biti dovoljno da se uita jedan slog iz baze podataka. Kako su ulazno-izlazne
operacije najsporije operacije u raunalnoj obradi podataka, takvim nainom
spremanja informacije znatno se ubrzava proces obrade.
Meutim ovakav nain memoriranja informacije nosi itav niz problema. Jedan
je redundancija. Nepotrebno multipliciranje podataka o informaciji ima za posljedicu
probleme u odravanju konzistentnosti podataka.
Svako ponavljanje podataka nije redundantno. Ako ponavljanje podataka
slijedi iz prethodnih podataka u relaciji, tada je ponavljanje redundantno.
54
12.2. ANOMALIJE
Redundancija se prepoznaje prisutnim anomalijama u odravanju podataka:
anomalija unosa
anomalija izmjene
anomalija brisanja.
Kupci
Naziv kupca
Sjedite
Broj pote
Veleuilite
Rijeka
51000
3. maj
Rijeka
51000
Filozofski fakultet
Zagreb
10000
P.E.R.O. d.o.o.
Pula
52000
Telekom
Zagreb
10001
Najprije valja pokazati koje funkcijske zavisnosti djeluju nad shemom prikazane
relacije:
55
Primjer anomalija:
Anomalija unosa u relaciju treba upisati informaciju da grad Split ima potanski
broj 21000. U tablicu nije mogue zapisati takvu pojedinanu informaciju jer je
zahtijevani atribut i Kupac. Drugim rijeima, informaciju da je grad Split na
potanskom broju 21000 nije mogue zapisati, osim ako se u danom trenutku ne
stvori kupac koji e biti u navedenom gradu.
Anomalija izmjene dobivena je nova informacija da na potanskom broju 51000
vie nije grad Rijeka nego grad Fiume. Svi slogovi u kojima se na atributu Grad
nalazi vrijednost Rijeka trebaju promijeniti vrijednost u Fiume. Time se informacija ne
mijenja na jednom mjestu nego na onoliko mjesta (slogova) na koliko ih se ona
nalazi.
Anomalija brisanja brisanjem slogova u relaciji postoji mogunost za kaskadnim
gubitkom informacije. Ako se iz relacije obriu dva sloga Veleuilite i 3. maj, tada
nestaje informacija da se Rijeka nalazi na potanskom broju 51000. Ili ako se obrie
slog (P.E.R.O. d.o.o., Pula, 52000) gubi se informacija 52000 Pula (potanskom
broju 52000 pripada grad Pula).
Jednu informaciju treba biti mogue zapisati u bazu podataka samo jednom, na
jednom mjestu. Ako to nije sluaj, tada nastupaju navedene anomalije. Iz pokazanog
primjera vidi se da je jedan atribut (Sjedite) odreen duplo. Dva ga razliita atributa
(Naziv kupca i Broj pote) definiraju odreuju. Informacija je zapisana odnosom
izmeu dva atributa. Ako se neki atribut moe definirati na temelju vie drugih
atributa, tada je i informacija viestruko zapisana, dakle, stvorena je kopija
informacije.
56
12.3. NORMALIZACIJA
Normalizacija je postupak kojim se proizvoljna nenormalizirana shema relacije
transformira uvoenjem novih ogranienja. U procesu normalizacije ne smije doi do
nepovratnog gubitka informacija sadranih u relacijama zadanih na shemama koje se
transformiraju. U svakom momentu normalizacije mora biti mogue reverzibilno
rekonstruirati polazno stanje.
Postoje dvije osnovne tehnike normalizacije:
vertikalna normalizacija
horizontalna normalizacija.
normalizacija dekompozicijom
normalizacija sintezom.
57
12.4. DEKOMPOZICIJA
BEZ
GUBITKA
INFORMACIJA
FUNKCIJSKIH ZAVISNOSTI
Tijekom normalizacije ne smije doi do gubitka informacije. Smatra se da je
dekompozicija sheme relacije izvedena bez gubitka informacije ako vrijedi: bilo koja
relacija stvorena nad shemom R rezultat je prirodnog spajanja svih njezinih projekcija
koje su nastale dekompozicijom.
Reverzibilnost sheme relacije dokazuje se reverzibilnou dekompozicije
relacija zadanih na toj shemi. Operatori projekcija i prirodni spoj osnova su vertikalne
normalizacije. Projekcija relacije odgovara dekompoziciji sheme relacije, a unija
dekomponiranih
shema
odgovara
prirodnom
pridruivanju
dekomponiranjem
dobivenih relacija.
Dekompozicija sheme relacije je reverzibilna ako:
58
1. NORMALNA FORMA
Definicija 1: Shema relacije je u 1NF ako su svi nekljuni atributi funkcijski zavisni od
kljua sheme relacije.
Primjer:
Partner
Naziv partnera
Telefon
Osoba za
kontakt
GSM osobe
Veleuilite
111-222
Pero
091-223-4321
3. maj
224-567
Jure
098-213-6781
Filozofski fakultet
111-222
Pero
098-225-111
INA
224-567
Ante
098-145-666
Veleuilite
111-222
Ivica
091-134-6547
Partner
Naziv partnera
Telefon
Veleuilite
111-222
3. maj
Filozofski fakultet
Naziv partnera
Osoba za
kontakt
GSM osobe
224-567
INA
Ante
098-145-666
111-222
3. maj
Jure
098-213-6781
Filozofski fakultet
Pero
098-225-111
Veleuilite
Ivica
091-134-6547
Veleuilite
Pero
091-223-4321
Poetna shema relacije nije u prvoj normalnoj formi. Prije nego to se vri
transformacija sheme u prvu normalnu formu, valja potraiti mogue kandidate za
klju.
Kandidati za klju definiraju se na temelju skupa funkcijskih zavisnosti. Onaj atribut
koji funkcijski odreuje najvie ostalih je najpogodniji za klju.
59
za kontakt postaje kandidat za klju. U prikazanoj relaciji nije sluaj, ali se moe
dogoditi da u relaciji za odreenog partnera nema osobe za kontakt. Partner je
zapisan jer postoji informacija o njegovom broju telefona, ali jo uvijek ne postoji
informacija o osobi za kontakt. Prema tome, atribut Osoba za kontakt mogao bi
primiti null vrijednost. Klju ne smije primiti null vrijednost, pa tako niti atribut Osoba
za kontakt ne moe biti klju prikazane sheme.
U prvom sluaju, kada je Naziv partnera bio predloen za klju, prikazana tablica
mogla se pokazati bez multipliciranih vrijednosti za atribute Naziv partnera i Telefon,
konkretno u posljednjem slogu relacije. Kada bi se navedene kopije atributa u dijelu
posljednjeg sloga uklonile, relacija ne bi bila prikazana u obliku potpune
dvodimenzionalne tabele, a kopirajue grupe atributa inile bi tzv. grupe koje se
ponavljaju.
Drugi sluaj kada je atribut Osoba za kontakt bio predloen za klju, ne moe se
ostvariti zbog toga to atribut Osoba za kontakt ne postoji nuno za odreenog
partnera.
Prema svemu navedenom moe se pokazati i druga definicija 1. normalne forme.
Definicija 2: Shema relacije je u 1NF ako svaka relacija (skup slogova) koji je zadan
nad shemom moe biti prikazan u obliku dvodimenzionalne tabele.
Kada se razmatrala mogunost postavljanja atributa Naziv partnera za klju sheme
relacije, tada se moglo rei da je atribut Naziv partnera dobar kandidat jer odreuje
60
najvie ostalih atributa. Neka atribut Naziv partnera bude klju sheme relacije.
Postoje oni partneri koji imaju vie osoba za kontakt. Prema definiciji 2 shema e biti
u 1NF ako se relacija moe prikazati u obliku dvodimenzionalne tabele. Ovdje
nastaje zahtjev za treom dimenzijom jer se jedino pomou tree dimenzije moe
jednom partneru dodijeliti vie osoba za kontakt, ako se potuje pravilo tabele. Ali
time se ne potuje pravilo dvodimenzionalnosti.
Prema navedenom moe se pokazati i trea definicija 1. normalne forme.
Definicija 3: Shema relacije je u 1NF ako za svaki atribut u shemi vrijedi da su
vrijednosti domene na kojoj je atribut zadan pojedinani podaci.
61
12.5.2.
2. NORMALNA FORMA
Definicija: Shema relacije je u 2NF ako je u 1NF i ako su svi nekljuni atributi
potpuno funkcijski zavisni od kljua, tj. ako ne postoji parcijalna zavisnost nekljunog
atributa o kljuu preko dijela kljua.
Primjer:
Prodana roba
Broj rauna
Artikal
15
Mahune
15,5
kg
17
Jabuke
3,75
kg
16
Mahune
14,23
kg
17
Jamnica
15
15
Jabuke
74
kg
Prodana roba
Koliina
Jedinica
mjere
Artikli
Broj rauna
Artikal
Koliina
15
Jabuke
15
Mahune
15,5
16
Mahune
14,23
17
Jabuke
3,75
17
Jamnica
74
Artikal
Jedinica
mjere
Mahune
kg
Jamnica
Jabuke
kg
15
62
12.5.3.
3. NORMALNA FORMA
Definicija: Shema relacije je u 3NF ako je u 1NF i ako niti jedan nekljuni atribut nije
tranzitivno zavisan od kljua sheme relacije.
Primjer:
Rauni
Br. ra.
Kupac
Datum
Adresa kupca
15
Veleuilite
15.06.2005
Vukovarska 1
16
P.E.R.O. d.o.o.
16.06.2005
Rijeka 17
17
Veleuilite
16.06.2005
Vukovarska 1
18
Filozofski fakultet
17.06.2005
Uenika 15/IV
19
P.E.R.O. d.o.o.
17.06.2005
Rijeka 17
Rauni
Iznos
15.000,00
1.450,80
18.200,20
350,35
3.682,40
Kupci
Br. ra.
Kupac
Datum
15
Veleuilite
15.06.2005
15.000,00
16
P.E.R.O. d.o.o.
16.06.2005
1.450,80
17
Veleuilite
16.06.2005
18.200,20
18
Filozofski fakultet
17.06.2005
350,35
19
P.E.R.O. d.o.o.
17.06.2005
3.682,40
Iznos
Kupac
Adresa kupca
Veleuilite
Vukovarska 1
Filozofski fakultet
Uenika 15/IV
P.E.R.O. d.o.o.
Rijeka 17
63
funkcijska zavisnost atributa Adresa kupca preko drugog nekljunog atributa Kupac o
kljuu sheme relacije.
Postupak se provodi tako da se redundantni atribut izbacuje iz sheme, ime u shemi
ostaju atributi Br. ra., Kupac, Datum i Iznos. Od izbaenog atributa Adresa kupca
stvara se nova shema relacije. Kako Adresa kupca ne moe samostalno egzistirati, a
i zbog pravila o uvanju informacija i funkcijskih zavisnosti, zajedno s Adresom kupca
u novostvorenu shemu kopira se i atribut koji je odreivao prethodnog, dakle Kupac
se kopira u drugu shemu. Kupac koji se sada nalazi u obje dekomponirane sheme
nije redundantan jer on nosi funkcijsku zavisnost.
12.5.4.
Shema relacije ima sloeni klju sastavljen od atributa K1 i K2. Takoer vrijedi
da je nekljuni atribut A funkcijski odreen atributom npr. K1. Kako vrijedi
pravilo trivijalnosti koje kae da sloeni skup atributa funkcijski odreuje svaku
pojedinu njegovu komponentu, moe se zakljuiti da je atribut A dvostruko
funkcijski odreen. Atribut A zavisi od kljua i preko dijela kljua (atribut K1)
ponovo od kljua. Takav tip zavisnosti zove se parcijalna funkcijska zavisnost.
Ovakva vrsta tranzitivnosti rijeena je 2NF-om.
3. Tranzitivna zavisnost kljunog atributa preko podskupa nekljunih
atributa
Shema relacije ima sloeni klju K sastavljen od atributa K1 i K2. Takoer
vrijedi da nekljuni atribut A funkcijski odreuje dio kljua npr. K1. Trivijalna
zavisnost KK1 kojom K pojedinano funkcijski odreuje svaku svoju
komponentu je tranzitivna jer se moe izvesti aksiomom tranzitivnosti na
zavisnosti K A i A K1.
4. Tranzitivna zavisnost kljunog atributa preko podskupa kljunih atributa
Shema relacije ima dva sloena kljua K(K1K2) i X(C1C2). Ako postoji
funkcijska zavisnost C1 K1, tada je trivijalna funkcijska zavisnost KK1
tranzitivna jer se moe izvesti aksiomom tranzitivnosti K C1 i C1 K1.
Zadnje dvije vrste tranzitivnosti rjeavaju se pomou BCNF. Na temelju posljednjih
dviju vrsta tranzitivnosti u kojima sheme relacije trebaju imati barem jedan sloeni
klju, moe se zakljuiti da sve sheme relacija koje su u 3NF i imaju jednostavan
klju sigurno jesu u BCNF. Samo sheme koje su u 2NF i 3NF i imaju sloeni klju ne
moraju biti u BCNF. Takve sheme se ispituju BCNF-om.
65
Definirana
statina
ogranienja
podacima
(domena
atributa,
sljedea
aktivnost
poznata
rijeena
automatizmima
66
67
trigger action DML akcija nad slogom u tablici na koju e biti pridodan okida
- insert, update, delete
69
13.2.1.
TRANSAKCIJSKI PRISTUP
jednaka ili razliita mjesta pristupaju bazi, stvaraju se dvije razliite sesije pristupa.
Transakcija je vezana za sesiju, te je zato vidljiva samo onom korisniku koji ju je i
pokrenuo. Sva auriranja koja se dogaaju na relacijama baze podataka spremaju se
u tzv. privremene tablice jer ne smiju biti vidljiva drugim korisnicima. Nakon zavrenih
svih potrebitih auriranja potrebno je zavriti transakciju. Postoje dva mogua
zavretka transakcije i za njih postoje odgovarajue naredbe na DBMS-u:
- COMMIT potrebno je pokrenuti ovu naredbu kada su sva auriranja
uspjeno zavrena i korisnik je postigao cilj zavrio je poslovnu aktivnost. Nakon
pokretanja naredbe commit sva auriranja koja su se dogodila na relacijama baze bit
e prihvaena i spremljena u bazinim relacijama i time vidljiva ostalim korisnicima.
- ROLLBACK naredba koja se pokree prije zavretka svih auriranja koja
predstavljaju transakciju. Pokree se onda kada odreeno auriranje nije uspjelo,
odnosno kada se dogodila odreena pogreka u procesu auriranja. Tada je upitna
korektnost drugih auriranja koja semantiki slijede ono neuspjelo auriranje. U tom
sluaju obino se pokree naredba rollback koja e stanje baze vratiti u ono stanje
koje je bilo u trenutku pokretanja transakcije.
Gore navedenim nisu rijeeni svi transakcijski problemi. Moe se dogoditi sluaj da je
jedan korisnik pokrenuo jednu transakciju, a drugi korisnik je prije zavretka one prve
transakcije pokrenuo istu ve pokrenutu transakciju. Ako transakcija posjeduje
naredbe kojima e se vriti upisivanje slogova u relaciju, s time da se klju treba
automatski uveavati za jedan, tada druga transakcija moe za vrijednost kljua u
procesu upisivanja dati jednaku vrijednost inkrementiranog kljunog atributa, kao i
prva transakcija, i to zato to je druga transakcija bila pokrenuta prije zavretka prve.
Ili, ako se transakcija sastoji od poslova, najprije prebrojavanje koliko prodanih
artikala ima, i dodavanje novog artikla s rednim brojem koji je uvean za broj
prebrojanih. Ako prvi korisnik pokrene takvu transakciju, i ako drugi ili isti korisnik
pokrene drugu takvu transakciju prije zavretka one prve, tada e prva transakcija
koja bude zavrena biti korektno izvrena. Ona transakcija koja naknadno zavrava
nee uspjeno zavriti svoju aktivnost, jer je prvozavrena transakcija uzrokovala
stanje podataka koje nee dozvoliti uspjean zavretak nove transakcije. U takvim
sluajevima pristupa se tzv. privremenom zakljuavanju relacija. Zakljuavanje
relacija odnosi se na auriranje. Korisnik, odnosno sesija koja izvri zakljuavanje
relacije, ne dozvoljava ostalim korisnicima (sesijama) bilo kakvo auriranje na
71
zakljuanoj tablici. Zakljuanost traje toliko dugo dok onaj korisnik (sesija) koji je
zakljuao relaciju ne izvri njezino otkljuavanje. Onaj korisnik koji je izvrio
zakljuavanje relacije smije vriti auriranja na zakljuanoj relaciji. Navedeni
postupak provodi se naredbama LOCK TABLE i UNLOCK TABLE.
13.2.2.
72
73
74
75
14. LITERATURA
[1] Tkalac, S., Relacijski model podataka, Drutvo za razvoj informacijske
pismenosti, Zagreb, 1993.
[2] Radovan, M., Baze podataka: relacijski pristup i SQL, Informator, Zagreb, 1993.
[3] Alagi, S., Relacione baze podataka, Svjetlost, Sarajevo, 1985.
[4] Malekovi, M., Skripta - Baze podataka I, Poslijediplomski znanstveni studij
Informacijske znanosti, Varadin, 1999.
[5] Tkalac, S., Skripta - Oblikovanje baze podataka, Poslijediplomski znanstveni
studij Informacijske znanosti, Varadin, 1999.
[6] Novak, N., Prezentacija za predavanja iz kolegija Baze podataka, Veleuilite u
Rijeci, Rijeka, 2005.
[7] Kalua, M., Prezentacija za predavanja iz kolegija Sustavi baza podataka,
Veleuilite u Rijeci, Rijeka, 2005.
[8] Pavli, M., Razvoj informacijskih sustava, Znak, Zagreb, 1996.
76