Baze Podataka - Skripta

Embed Size (px)

DESCRIPTION

baze podataka

Citation preview

  • I DIO

    UVODNE TEME

  • 2

  • 3

    1. UVOD Teoretske osnove relacijskog modela podataka postavio je Codd (1970). U

    razdoblju od 1970., pored Codda, mnogi su istraivai sudjelovali u daljnjem razvoju modela. Danas je relacijski model podataka solidan teoretski aparat i jedan od kljunih elemenata teorije baza podataka. Matematike osnove ovog modela omoguavaju nam da elegantno i precizno definiramo pojmove i izvodimo dedukciju. Upravo su te karakteristike jedan od osnovnih razloga vanosti relacijskog modela za teoriju baza podataka kao i uspjenu primjenu ovog modela u praksi.

    Osnovne komponente od kojih se sastoji relacijski model podataka su: - skup objekata koje koristimo kao osnovne elemente kod izgradnje modela

    baze podataka, - skup operacija koje moemo izvoditi nad objektima modela, - skup pravila integriteta baze podataka. U okviru relacijskog modela razvijene su i neke, manje ili vie nezavisne

    teorije kao to su, na primjer, teorija relacijskih jezika, teorija oblikovanja baza podataka i s njom usko povezana teorija zavisnosti.

    Mogunosti primjene ovog modela izuzetno su velike. Izmeu ostalog, model se koristi kao alat za razvoj relacijskog softvera (upravljaki sistemi relacijskih baza podataka i pratei relacijski softver), razvoj programskih jezika za rad s relacijskim bazama podataka (SQL, QUEL, itd.), razvoj teorije oblikovanja baza podataka (postupak normalizacije), istraivanja svojstva podataka (teorija nezavisnosti), itd.

    Jedan od osnovni ciljeva relacijskog modela podataka jest da ivot krajnjeg korisnika relacijske baze uini to jednostavnijim i udobnijim. Ono to krajnji korisnik treba znati o relacijskom modelu, da bi mogao koristi relacijsku bazu, jednostavno je i, rekao bih, samo po sebi razumljivo. Relacijske baze su omoguile da strunjaci razliitih profila mogu koristiti podatke u bazi.

    Za razliku od krajnjih korisnika relacijske baze, informatiari se nalaze u neto manje udobnom poloaju. Njihov zadatak je da osiguraju uvjete za optimalan rad relacijskog softvera, razvoj i, eventualno, istraivaki rad. Da bi se mogao uspjeno obaviti bilo koji od ovih zadataka neophodno je dobro poznavanje relacijskog modela podataka. Teorija oblikovanja baze podataka, zajedno s teorijom zavisnosti, moda su najsloeniji elementi relacijskog modela podataka. Ujedno, to su elementi s kojima e se informatiar koji radi s bazama podataka, posebno esto susretati. Ova knjiga trebala bi mu pomoi u razumijevanju i savladavanju potrebne materije.

    U prvom dijelu knjige definirani su i obraeni neki osnovni pojmovi kao to su model, entitet, svojstvo, informacija, podatak itd. Osnovne komponente relacijskog modela obraene su u drugom dijelu. U treem dijelu obraena je teorija oblikovanja baze podataka i oni elementi teorije zavisnosti koji su potrebni za njeno razumijevanje.

    Nastojao sam da ovu, dosta apstraktnu materiju, semantikim primjerima to vie pribliim itaocu. Znajui da neki itaoci ne poznaju logiku prvog reda trudio sam se da odgovarajuu materiju izloim na to jednostavniji i pristupaniji nain. Ako se ipak jave problemi, vjerujem da e korisno posluiti monografija (ubrilo, 1988).

  • 4

  • 5

    2. MODELI Direktnim promatranjem okoline, ili uenjem na neki drugi nain, ovjek

    cijelog ivota prikuplja informacije o okolini u kojoj ivi i djeluje, kao i o sebi samom. Ukupan broj informacija koje ovjek na taj nain uspije prikupiti je velik. Da bi prikupljene informacije mogle biti korisno upotrijebljene, ovjek ih mora sistematizirati i rasporediti u elemente odgovarajue strukture. Ovako strukturirane informacije moemo smatrati modelom odreenog segmenta realnog svijeta.

    Modeli se koriste na razliitim podrujima i na razliite naine. Dvije letjelice iste serije proizvodnje mogu se meusobno koristiti kao modeli. Globus, izraen od papira, metala i drva koristi se kao model zemaljske kugle. Teorija koja opisuje neki proces, model je tog procesa. Opis nekog dogaaja moemo smatrati modelom tog dogaaja. Prije nego to prijeem na modele koji se koriste u teoriji baza podataka, ini se da e biti korisno rei nekoliko rijei o modelima openito.

    Original i model tog originala moraju biti meusobno analogni, odnosno moraju imati meusobno jednake strukture. Pri tome pod strukturom nekog sustava podrazumijevamo odabrani skup odnosa meu dijelovima na koje smo sustav podijelili. Obratimo panju na injenicu da su podjela sustava na dijelove, kao i izbor odnosa meu tim dijelovima proizvoljni, odnosno odreeni razlogom zbog kojeg definiramo strukturu. Zahvaljujui tome, na istom sustavu moemo definirati vie razliitih struktura i u skladu s tim napraviti vie, meusobno potpuno razliitih modela istog sustava. Strukture, definirane na istom objektu u pravilu ne e biti jednake i u skladu s tim modeli istog objekta u pravilu nisu meusobno analogni.

    Uvjet da jedan sustav bude model drugog sustava jest da su ta dva sustava meusobno analogna. S obzirom na to da je analogija simetrina, ako neki sustav B moe biti model sustava A, onda i sustav A moe biti model sustava B. Tako e na primjer teorija nekog procesa za inenjera koji se tim procesom bavi biti model procesa. Istovremeno e za teoretiara svaki proces koji se odvija u skladu s tom teorijom biti model teorije. Koji emo od dva analogna sustava smatrati originalom a koji modelom, ovisit e o nama. Modele openito koristimo da bi na njima izveli operacije koje bi bilo teko, skupo ili nemogue izvesti na originalu. Od dvije letjelice iz iste serije, letjelicu koja je havarirana smatrat emo originalom, a letjelicu koja nije doivjela havariju modelom na kojem emo pokuati ustanoviti uzrok havarije. Takva ispitivanja nije mogue izvesti na havariranoj letjelici koja je padom, eksplozijom i poarom unitena. Razlog za koritenje modela ne mora uvijek biti ovako dramatian. Ponekad to moe biti injenica da nam je neku operaciju jednostavnije ili prijatnije izvoditi na modelu umjesto na originalu.

    Model se sastoji od nekog skupa elemenata koji prikazuju odgovarajue dijelove originala. Svaki dio originala mora biti mogue preslikati na odgovarajui element modela. S obzirom na simetrinost analogije, obino se kae da izmeu originala i modela mora postojati korespondencija. Dosad smo polazili od pretpostavke da model kao takav postoji (treba ga eventualno odabrati izmeu nekog veeg broja objekata). U stvari, za nas je interesantniji problem gradnje modela. Pri tome polazimo od nekog skupa elemenata od kojih, prema odgovarajuim pravilima, sastavljamo na model. Jasno je da niti skup elemenata od kojih model sastavljamo, niti skup pravila prema kojima ga sastavljamo, ne mogu biti proizvoljni. Da bismo mogli izgraditi model nekog segmenta realnog svijeta, skup elemenata i skup pravila moraju biti u skladu s pojavama i zakonitostima koje vrijede u tom segmentu. Skup pravila i skup elemenata koje koristimo za izgradnju modela, zajedno tvore model naeg segmenta realnog svijeta na vioj razini apstrakcije. U ovakve modele spadaju na primjer matematika, kartografija, slikarstvo, prirodni jezici itd.

  • 6

    Meu ovakvim modelima najpoznatiji su i, bez sumnje se najvie koriste prirodni jezici. Izmeu okoline u kojoj ivi i naina na koji ivi jedna ljudska zajednica, te jezika koji ta zajednica koristi mora postojati korespondencija. Ta korespondencija se moe najlake uoiti na rjeniku. Tehnoloki razvijene zajednice koristit e niz rijei koje nekoj, u tom pogledu manje razvijenoj zajednici, nisu potrebne. Na primjer, Eskimi koriste nekoliko desetaka izraza da bi oznaili razliite vrste snijega. U tehnoloki razvijenoj zajednici kvaliteta snijega nije toliko vana i odgovarajue rijei ne postoje. U naem jeziku postoji ogroman broj izraza i rijei pomou kojih je mogue vrlo precizno i ekonomino odrediti stupanj i vrstu rodbinskog odnosa. Nema sumnje da je precizno odreivanje vrste rodbinskog odnosa izuzetno vano za zajednicu iju stabilnost osigurava (ili je to do juer inila) krvna osveta. U jezicima nekih naroda ti izrazi ne postoje jer oigledno tim zajednicama ve due vremena nisu potrebni. Na slian nain i pravila, od kojih se jezik sastoji, odraavaju okolinu i nain ivota zajednice koja se tim jezikom koristi. Jezik je model svih moguih dogaaja i situacija s kojima se zajednica, koja jezik koristi, moe susresti.

    Posebnu grupu modela tvore formalni, odnosno aksiomatski sustavi. Pod formalnim sustavom podrazumijevamo skup definicija kojima su precizno odreeni elementi (obino se nazivaju objektima) i pravila kojima su odreeni dozvoljeni odnosi meu objektima ili operacije nad objektima sustava. Definicije, od kojih se sastoji formalni sustav, moraju biti meusobno nekontradiktorne. Bez obzira na nau interpretaciju objekata nekog formalnog sustava, operacije nad tim objektima mogu se izvoditi iskljuivo u skladu s pravilima ije definicije su dio sustava. Ako nam te operacije ne odgovaraju, moemo promijeniti formalni sustav.

    Izmeu originala i modela mora postojati korespondencija. Ona predstavlja osnovu za preslikavanje dijelova jednog objekta na dijelove drugog. Pogledajmo kako stoji s korespondencijom izmeu formalnog i nekog drugog sustava. Ako je taj drugi sustav formalan (ili ga je mogue definirati kao formalan sustav), onda je mogue formalno definirati korespondenciju. U suprotnom to nee biti mogue pa e preslikavanje izmeu dva sustava e biti neformalno (odnosno priblino). Kao to emo odmah vidjeti, to je za nas dosta tuno. Naime, modeli realnog svijeta, koji se koriste u teoriji baza podataka, jesu formalni sustavi. S druge strane, realni svijet nije formalni sustav. Zbog kompleksnosti nije, mogue (a vjerojatno nikad i nee biti) opisati realni svijet skupom meusobno nekontradiktornih definicija. Kao to kae Date (1986b), trik kod definiranja formalnog sustava koji emo koristiti kao model realnog svijeta, sastoji se u tome da naemo takav formalni sustav koji e nam omoguiti da na zadovoljavajui nain prikaemo one segmente realnog svijeta koji su za nas znaajni.

    2.1. BAZA PODATAKA I MODELI Sve teorije koje se bave programiranjem polaze od pretpostavke da je

    algoritam po kojem e se obrada izvoditi dobro definiran i poznat. Specifinost obli-kovanja baze podataka jest da se polazi od pretpostavke da je u trenutku definiranja modela samo priblino poznat segment realnog svijeta koji e ona obuhvaati. Osim u nekim posebnim sluajevima, nitko ne moe znati koje obrade e naknadno biti dodane na bazu podataka i koji podaci e tim obradama biti potrebni. Pri tome dodavanje novih podataka u bazu, kao i novih elemenata u model, ne smije izazvati zastoj u tekuoj obradi. Zbog toga je osnovni zahtjev kod oblikovanja baze podataka da bude osigurano neometano irenje baze podataka.

    Uz pojam baze podataka vee se cijeli niz razliitih modela. Da bi lake odredili ulogu i znaenje relacijskog modela, ukratko emo se osvrnuti na neke tipove modela i njihov meusobni odnos.

    Studijska grupa ANSI/X3/SPARC (1975), predloila je model baze podataka koji je danas poznat kao ANSI/X3/SPARC model. Na osnovu tog modela razvijeni su

  • 7

    upravljaki sustavi baze podataka s arhitekturom na tri razine (slika 2.1.). Evo o emu se, zapravo, radi.

    ANSI/X3/SPARC model povezuje u cjelinu tri podmodela baze podataka: - eksterni, - konceptualni, - interni.

    Eksterni model Konceptualni model Interni model

    model A

    A model B B C

    model C

    Slika 2.1 Odnos podmodela u ANSI/X3/SPARC modelu

    Svaki od ta tri podmodela prikazuje odreeni aspekt baze podataka. Svaki od njih predstavlja sliku iste baze podataka, odnosno istog segmenta realnog svijeta. Eksterni i konceptualni model spadaju u tzv. logike modele u okviru kojih je definiran sadraj baze podataka. Interni model spada u tzv. fizike modele kojima je definiran nain i mjesto na koje je odreeni sadraj pohranjen u memoriji.

    Konceptualni model zauzima sredinje mjesto u ANSI/X3/SPARC modelu i predstavlja vezu izmeu eksternog i internog modela. U okviru konceptualnog modela sadraj itave baze podataka definiran je pomou shema.

    Grubo reeno, eksterni model moemo zamisliti kao skup konceptualnih modela krajnjih korisnika baze podataka. Pomou takvog, korisnikog, modela definiran je dio sadraja baze podataka kojim raspolae odreeni tip korisnika.

    Interni model, kao i konceptualni, obuhvaa sadraj itave baze podataka, ali za razliku od konceptualnog modela, interni sadri parametre relevantne za pohranjivanje podataka na memoriju (formati zapisa na memoriji, organizacija, nain prikazivanja pojedinih vrsta semantikih odnosa itd.).

    ANSI/X3/SPARC model dobro je definirao proces projektiranja baze podataka. Proces projektiranja poinje snimanjem potreba pojedinih tipova korisnika i definiranjem njihovih modela. Ujedinjavanjem modela pojedinih tipova korisnika definira se model integrirane baze podataka. Model integrirane baze odgovara priblino konceptualnom modelu. Konano, na osnovi ovog modela te karakteristika i mogunosti upravljakog sustava baze podataka, definira se interni model.

    Kao to je spomenuto, na osnovi modela ANSI/X3/SPARC razvijeni su upravljaki sustavi baze podataka na tri razine. Veina upravljakih sustava baze podataka, koji se danas koriste, imaju arhitekturu na tri razine ili neku varijantu te arhitekture. Prednost ovakvih sustava je da koristei podmodele osiguravaju relativno visok stupanj nezavisnosti izmeu aplikativnih programa i podataka u bazi. Aplikativni programi komuniciraju s bazom podataka preko odgovarajueg eksternog modela. Zahtjev za uitavanje odreenih podataka aplikativni program upuuje na eksterni model, odnosno odgovarajui korisniki model. Upravljaki sustav baze preslikava eksterni model na konceptualni i konceptualni na interni model. Ovim postupkom upravljaki sustav odreuje adresu na kojoj su pohranjeni traeni podaci (slika 2.2). Pretpostavimo da je aplikativni program modificiran tako da su potrebni neki podaci koji se ne nalaze u odgovarajuem korisnikom modelu. Korisniki model, zbog toga, mora biti proiren. Ove izmjene nee utjecati na interni model, odnosno raspored podataka na memoriji. Isto tako, preraspodjela podataka u bazi, te odgovarajua

  • 8

    modifikacija internog modela nee utjecati na eksterni model i logiku aplikativnih programa koji koriste bazu.

    Podmodeli sadrani u ANSI/X3/SPARC modelu nalaze se na istoj razini apstrakcije, a razlikuju se meusobno prema aspektu promatranja sadraja baze. Modeli istog segmenta realnog svijeta mogu se meusobno razlikovati i po razini apstrakcije na kojoj se nalaze. Upravo su u takvom meusobnom odnosu:

    - baza podataka, - model baze podataka, - model podataka.

    model A model B Eksterni model

    model C

    Konceptualni model

    Interni model

    Slika 2.2 Raspored polja u ANSI/X3/SPARC modelu

    Baza podataka je model odreenog segmenta realnog svijeta na najnioj razini apstrakcije. Svaki objekt u segmentu realnog svijeta prikazan je u bazi podataka odgovarajuim skupom podataka kojima su opisana svojstva objekta. Zasad emo za ovakav skup podataka koristiti termin opis objekta. Skup opisa istovrsnih objekata povezan je u bazi podataka u cjelinu za koju, ovisno o tipu baze, koristimo termine datoteka ili relacija.

    Model baze podataka nalazi se na vioj razini apstrakcije. U modelu baze ne postoji nita to bi odgovaralo pojedinom objektu u segmentu realnog svijeta. Za svaki skup istovrsnih objekata (klasa ili tip) u modelu postoji shema. U okviru sheme definirane su vrste svojstava, koje ulaze u opis objekta.

    Koncept modela podataka prvi je definirao Codd (Date, 1986b) u kontekstu relacijskog modela. Model podataka nalazi se na najvioj razini apstrakcije. Prema Coddu, model podataka je formalni sustav koji se sastoji od slijedee tri komponente:

    - skup objekata koji su osnovni elementi baze podataka, - skup operacija koje moemo izvoditi nad objektima, - skup pravila integriteta baze podataka. Model podataka koristi se, izmeu ostalog, kao alat kod izrade modela baze

    podataka.

    2.2. RELACIJSKI MODEL PODATAKA Relacijski model podataka bio je prvi model podataka koji je definiran kao

    formalni sustav. Modeli podataka kao to su hijerarhijski i mreni, postojali su i

  • 9

    koristili se znatno prije nego to je definiran relacijski model. Meutim, kao formalni sustavi, ovi modeli definirani su tek naknadno.

    Relacijski model bavi se iskljuivo logikim aspektima baze podataka. U ANSI/X3/SPARC modelu, relacijski model moemo koristiti kod definiranja eksternog i konceptualnog modela baze. Relacijski model se ne bavi problemima rasporeda podataka i tehnikama njihovog memoriranja, kao ni tehnikama pretraivanja baze.

    Danas postoji, i u praksi je provjeren, itav niz upravljakih sustava relacijskih baza podataka (krae relacijska baza). Prvi takvi sustavi bili su nepotpuni i dosta spori. Vei dio tih nedostataka uklonjen je. Jedan dio starijih baza podataka, zasnovanih na mrenom modelu podataka, prilagoen je zahtjevima relacijskog modela i danas se na tritu nudi kao relacijska baza. Rezultat ovakve situacije je da se u jednom trenutku na tritu pod nazivom relacijska baza pojavio vrlo velik broj proizvoda, koji su se po svojim mogunostima znaajno razlikovali. Kao ilustraciju interesa za relacijske baze, kako kod kupaca, tako i kod proizvoaa softvera, spomenimo da je Codd u tri navrata (1982. 1985a, 1985b) definirao kriterije za ocjenjivanje relacijskog upravljakog sustava, kako bi omoguio neometan razvoj relacijskog softvera.

  • 10

  • 11

    3. REALNI SVIJET Da bi mogli preslikati neki segment realnog svijeta na neki od formalnih

    sustava, moramo znati od ega se sastoji taj segment. Prije nego to kaemo neto vie o relacijskom modelu, morat emo definirati osnovne elemente realnog svijeta. Kao to smo rekli, realni svijet nije formalni sustav. Skup definicija s kojima emo ga pokuati opisati bit e nepotpun i meusobno kontradiktoran. Zbog toga e se, kod preslikavanja na formalni sustav pojaviti problemi.

    Ope je prihvaena ideja da se realni svijet sastoji od "objekata", koje nazivamo entitetima, i koji mogu biti realni ili apstraktni. Svaki entitet ima neka svojstva. Meusobno, dva ili vie entiteta mogu stajati u razliitim odnosima. Svaki takav odnos posjeduje vlastita svojstva i poseban je entitet. Za ovaj tip entiteta ponekad se koristi termin izvedeni entitet.

    3.1. ENTITET Pojam entiteta teko je precizno definirati. S druge strane, sama ideja moe

    se objasniti dosta jednostavno. U literaturi se moe nai vei broj razliitih definicija ovog pojma. Prema Hallu i drugima (l976):

    Entitet je bilo to o emu je mogue razmiljati Pored ove definicije navest u jo dvije:

    Entitet je bilo to o emu moemo prikupljati informacije Entitet je element koji moemo jednoznano odrediti i na taj nain ga izdvojiti (odnosno prepoznati) u skupu

    Ove tri definicije nisu meusobno u kontradikciji. Mogunost jednoznanog odreivanja nekog objekta uvjet je koji mora biti ispunjen da bi se o tom objektu mogle prikupljati informacije, a prikupljanje informacija je uvjet za mogunost razmiljanja.

    Objekti s kojima svakodnevno dolazimo u kontakt i koje zamjeujemo, u pravilu, mogu biti jednoznano odreeni i prema tome jesu entiteti. Za razumijevanje pojma entiteta bit e korisnije da pokuamo zamisliti objekt koji taj uvjet ne ispunjava, kao na primjer zrno pijeska na plai. Zbog malih dimenzija zapaamo mali broj svojstava, pa su nam sva zrna slina. Kako je rije o ogromnom broju zrna, teko da moemo jednoznano odrediti neko odreeno zrno. Slina je situacija s mravima u mravinjaku. Oni jesu neto vei, ali se vrlo brzo kreu. U neto manjoj mjeri ovo vrijedi i za goveda u stadu ili ljude u masi. Openito, ako neki objekt nismo jednoznano odredili, ne moemo o njemu prikupljati informacije i ne moemo o njemu razmiljati. Takav objekt za nas nije entitet.

    Iz primjera koje smo naveli oito je da ne postoji neki objektivan kriterij na osnovi kojeg bi mogli zakljuiti da li je neki objekt entitet. To prvenstveno zavisi o naem interesu. Za pastira koji moe prepoznati svako govedo u stadu, goveda jesu entiteti. Za osobu pored koje stado sluajno prolazi ona to nisu. Slino je u krajnjoj liniji i s mravima i zrnima pijeska. I ne samo to. S vremenom se mijenjaju okolnosti, a s njima i na interes. Neto to je u jednom momentu bio jedan entitet moe se u slijedeem pretvoriti u skup entiteta i obratno. Da bi ovo ilustrirali posluit emo se jednim primjerom koji navodi Kent (1978): Dogodilo se ubojstvo i istraga treba otkriti ubojicu. Jedan od svjedoka koji treba pomoi u istrazi je i sobar. U naem modelu na poetku istrage sobar, koji je svjedok, i ubojica, koji je poinio ubojstvo, dva su razliita entiteta. Kao to je ope poznato, sobari u takvim priama su krajnje sumnjivi tipovi. U skladu s tim, istraga otkriva da je sobar ubojica. U modelu na kraju

  • 12

    istrage sobar i ubojica postaju jedan entitet. Kao to emo vidjeti nije ovo jedina misterija entiteta, ali o tome emo kasnije.

    3.2. SVOJSTVO Entiteti posjeduju svojstva. Opis jednog svojstva sastoji se od atributa i

    vrijednosti atributa. Atribut (na primjer: VISINA, TEINA, BOJA, itd.) je element kojim je jednoznano odreena vrsta svojstva. Vrijednosti atributa (na primjer: 175 cm, 78 kg, zelena itd.) je drugi element opisa svojstva. Zajedno, atribut i vrijednost atributa sainjavaju opis odreenog svojstva. O elementima od kojih se sastoji opis svojstva rei emo neto vie kad budemo govorili o informacijama.

    Svojstva koja entitet posjeduje mogu se mijenjati zavisno o vremenu ili o nekom drugom parametru. Svaki put kad se vrijednost atributa takvog svojstva promijeni, potrebno je aurirati odgovarajui podatak u bazi. Ako su promjene vrijednosti atributa este, mogu postati ozbiljan problem. Posebno je neugodna direktna zavisnost svojstva o vremenu. Zbog toga nastojimo da takva svojstva ne memoriramo u bazi. Umjesto starosti entiteta, u pravilu, memoriramo godinu roenja (odnosno godinu proizvodnje), a starost izraunamo iz godine roenja (godine proizvodnje) i tekueg datuma.

    Na osnovi svojstava koja posjeduju, odnosno vrijednosti atributa tih svojstava, entitete moemo razvrstati u skupove. Izbor svojstava, ili kombinacije svojstava, na osnovi kojih emo takav skup definirati, proizvoljan je. Tako na primjer, skup entiteta mogu initi sve osobe koje stanuju u istoj zgradi, svi radnici jedne radne organizacije, svi predmeti koji se nalaze na istoj lokaciji ili se koriste u iste svrhe itd. Svi entiteti koji posjeduju svojstvo, odnosno vrijednost atributa svojstva, pomou kojeg je skup definiran, bit e elementi skupa.

    Neka od svojstava entiteta (ili kombinacija od nekoliko svojstava) su takva da vrijednosti njihovih atributa jednoznano odreuju entitet u promatranom skupu. To znai da unutar takvog skupa nee postojati dva razliita entiteta sa istom vrijednou atributa takvog svojstva. Unutar porodice svaki lan je u pravilu jednoznano odreen vrijednou atributa IME. U radnoj organizaciji za jednoznano odreivanje radnika koristimo kombinaciju atributa IME i PREZIME ili atribut IFRA-RADNIKA itd. Ovakva svojstva nazivamo karakteristinim svojstvima. Vrijednost atributa karakteristinog svojstva je identifikator entiteta unutar skupa.

    3.3. ODNOS MEU ENTITETIMA Entiteti koji su elementi istog skupa, kao i entiteti iz razliitih skupova, mogu

    meusobno biti u odreenom odnosu. Kao primjer moemo uzeti odnos radnika i radnog zadatka, odnos radnika i radne organizacije itd. Svaki odnos izmeu dva ili vie entiteta posjeduje vlastita svojstva. Uzmimo na primjer odnos izmeu radnika i radnog zadatka. Broj sati koje radnik provede na odreenom radnom zadatku nije svojstvo niti radnika, niti radnog zadatka, nego odnosa izmeu ta dva entiteta. Zahvaljujui injenici da posjeduju svojstva, odnosi mogu biti jednoznano odreeni, pa prema tome predstavljaju entitete. Ponekad se za ovu vrstu entiteta koristi izraz izvedeni entiteti. U nekim modelima podataka nema razlike izmeu izvedenih i osnovnih entiteta. I jedna i druga vrsta entiteta preslikavaju se na istu vrstu objekata u modelu, a korisniku modela se preputa da takav objekt interpretira kao osnovni ili kao izvedeni entitet. Ovo obiljeje modela naziva se semantiki relativizam.

    Za uspostavljanje modela (kao i za implementaciju baze podataka), posebno je vana klasifikacija odnosa s obzirom na broj entiteta u odnosu. Zbog jednostavnosti, uzet emo da entiteti u odnosu potjeu iz dva razliita skupa (skup A i skup B). Odnos meu istovrsnim entitetima (elementi istog skupa), kao i odnos meu vie od dvije razliite vrste entiteta, mogu biti svedeni na ovaj sluaj.

    U prvu grupu svrstat emo odnose koji odgovaraju preslikavanju 1:1. Kod te vrste odnosa, svaki element skupa A (prvog skupa) moe biti preslikan na najvie

  • 13

    jedan element skupa B. Istovremeno svaki element skupa B moe biti pridruen najvie jednom elementu skupa A. Kao primjer ovakvog odnosa moemo uzeti odnos izmeu mua i ene u monogamnim drutvima, odnos izmeu naziva i himne drave, ifre radnika i samog radnika, itd.

    U drugu grupu svrstavaju se odnosi koji odgovaraju preslikavanju N:1. Svaki pojedini element skupa A moe biti preslikan najvie na jedan element skupa B. Istovremeno, svaki element skupa B moe biti pridruen veem broju elemenata skupa A. U ovakvom odnosu openito stoje podreeni prema nadreenim elementima hijerarhijske strukture. Na primjer, radnici prema radnoj organizaciji, opine prema republici itd.

    Kod odnosa, koji odgovaraju preslikavanjima 1:1 i N:1, svaki element prvog skupa moe biti preslikan najvie na jedan element drugog skupa i na taj nain jednoznano odreuje taj element drugog skupa. Kaemo da elementi prvog skupa funkcijski odreuju elemente drugog, odnosno da elementi drugog skupa funkcijski zavise o elementima prvog.

    Treu grupu ine odnosi koji odgovaraju preslikavanju 1:N. Svaki element skupa A moe biti preslikan na proizvoljan broj elemenata skupa B, a svaki pojedini element skupa B moe biti pridruen najvie jednom elementu skupa A. Openito, u ovakvom odnosu stoje nadreeni prema podreenim elementima u hijerarhijskoj strukturi. Kao primjer moemo uzeti odnos radne organizacije prema radnicima, odnos republike prema opinama itd.

    Na kraju, etvrtu grupu odnosa ine odnosi koji odgovaraju preslikavanju M:N. Svaki element prvog skupa moe biti preslikan na po volji mnogo elemenata drugog, a istovremeno, svaki element drugog skupa moe biti pridruen proizvoljnom broju elemenata prvog. Kao primjer ove vrste odnosa moe biti odnos radnika prema radnim zadacima, lijenika-specijaliste prema pacijentima, itd.

    Spomenimo da je etvrta grupa odnosa najkompleksnija. Odnosi 1:N i N:1 posebni su sluajevi odnosa M:N. Na slian nain, odnosi 1:1 su poseban sluaj odnosa 1:N, odnosno N:1, a preko njih i odnosa M:N.

  • 14

  • 15

    4. INFORMACIJA Informacija je sloen pojam ija definicija moe znaajno varirati zavisno o

    nainu i podruju na kojem se koristi. Ulogom i definicijom informacije u kompjuterskoj obradi podataka bavio se vei broj autora (Engles, 1970; Bachman, 1973; Langefors, 1976; itd.). Ne ulazei u analizu drugih definicija ovog pojma, smatram da e biti dovoljno navesti definiciju informacije koju emo koristiti:

    Elementarna informacija je opis jednog svojstva kojeg posjeduje odreeni entitet.

    S nekoliko primjera ilustrirat emo sastav informacije i ulogu koju pojedini elementi informacije imaju. Pogledajmo slijedeu informaciju:

    MARKO JE VISOK 175 CM Identifikator entiteta, koji svojstvo posjeduje, je vrijednost atributa IME

    (MARKO). Svojstvo, iji opis je sadran u informaciji je VISINA 175 CM. Prije nego to kaemo neto vie o elementima od kojih se sastoji opis svojstva, recimo neto o tome to elimo postii s opisom svojstva.

    Korisnik informacije ne mora imati predodbu svojstva iji opis se nalazi u informaciji. Opis svojstva mora biti takav da se na osnovu njega moe stvoriti predodba o, do tada, nepoznatom svojstvu. Predodba o nepoznatom svojstvu svodi se na predodbu o nepoznatoj vrijednosti atributa. Openito, predodbu o nepoznatom svojstvu moemo stvoriti na osnovi usporedbe s nekim poznatim svojstvom iste vrste. Da bi se omoguila takva usporedba, opis svojstva mora sadravati tri elementa:

    - oznaku vrste svojstva (atribut), - poznatu vrijednost atributa, - relaciju izmeu poznate i nepoznate vrijednosti atributa. U naem primjeru:

    VISINA 175 CM moe se rastaviti na: - atribut (VISINA), - oznaku vrijednosti tog atribut (CM), koja je korisniku informacije poznata, - relaciju u kojoj stoji nepoznata prema poznatoj vrijednosti atributa (175). Prvi od ova tri elementa je atribut i njime je odreena vrsta svojstva. Preostala

    dva elementa zajedno ine vrijednost atributa. U kompjuterskoj obradi podataka prihvaen je neto drugaiji raspored

    elemenata od kojih se sastoji opis svojstva. Naime, atribut je izjednaen s poljem u koje se kao sadraj upisuje vrijednost atributa. To praktino znai da su varijabilni elementi opisa svojstva predstavljaju vrijednost atributa, a svi ostali elementi atribut svojstva. U sluaju da se vrijednost atributa u naem primjeru uvijek navodi u centimetrima, atribut bi bio VISINA-U-CM:

    175 Visina 175 cm VISINA-U-CM

    Ukoliko visinu moemo izraavati u cm, colima, itd. onda je atribut VISINA, a preostali elementi ine vrijednost atributa (tj. vrijednost atributa VISINA bi bila 175 cm).

    Opis svojstva je kljuni element informacije. Vidjeli smo da, pored opisa svojstva, informacija mora sadravati i identifikator entiteta koji posjeduje opisano

  • 16

    svojstvo. I za identifikator entiteta kao i za elemente opisa svojstva vrijedi da u informaciji mogu biti navedeni eksplicitno ili implicitno. Na primjer, ZELENO je vrijednost atributa BOJA, i u naelu ne moe biti vrijednost nekog drugog atributa. Dovoljno je da kaemo da je neto zeleno i nije potrebno posebno naglaavati da je rije o atributu BOJA. Slino tome u primjeru:

    MARKO IMA CRNU KOSU, VISOK JE 175 CM I ROEN JE U PULI

    navedena su tri opisa svojstva, a identifikator entiteta koji svojstva posjeduje je samo jedan (MARKO).

    Kao to je spomenuto, identifikator entiteta koji svojstvo posjeduje je vrijednost karakteristinog atributa. Zapis na memoriji sadri niz opisa svojstava jednog entiteta. Meu njima mora postojati bar jedno karakteristino svojstvo. U zapisu na memoriji identifikator entiteta tretiramo kao bilo koju vrijednost atributa. Za svako svojstvo mora postojati atribut i vrijednost atributa. Atribut svojstva odgovara polju, a vrijednost atributa sadraju koji u to polje upisujemo. Zahvaljujui injenici da jedan opis svojstva prikazujemo u zapisu s jednim podatkom koji upisujemo u odreeno polje, te da jedan identifikator entiteta dolazi na vie opisa svojstava, priblino jedan podatak na memoriji odgovara jednoj informaciji.

    4.1. OPERACIJE S INFORMACIJAMA Realni svijet spoznajemo preko informacija. Za njihovo strukturiranje koristimo

    skup operacija koje su poznate pod zajednikim nazivom apstrakcije. Pomou operacija apstrakcije izdvajaju se bitne informacije, odnosno zanemaruju nebitne. Pojedine operacije iz ovog skupa definirane su u okviru tzv. konceptualnog modela (Smith i Smith, 1977; Brodie, 1981). Ukratko emo se osvrnuti na te operacije.

    Polazei od nekog skupa objekata u realnom svijetu operacijom klasifikacije definira se klasa. Klasa je skup objekata, i posjeduje svojstva koja posjeduje svaki pojedini element skupa (slika 4.1).

    Zahvaljujui tome, zajednika svojstva nije potrebno memorirati za svaki element zasebno. Dovoljno je da budu memorirana samo jednom, kao svojstva klase. U odnosu na skup objekata realnog svijeta, klasa je entitet na vioj razini apstrakcije. Svaki element klase je tzv. instanca. Svojstva klase prenose se na pojedine elemente klase operacijom instantacije. Instantacija je operacija inverzna klasifikaciji.

    OSOBA Generalizacija - Specijalizacija

    STUDENT RADNIK PISAC

    VOZA STOLAR ZIDAR Klasifikacija - Instantacija

    Marko Darko arko

    Slika 4.1 Generika struktura

    Operacija generalizacije u biti je vrlo slina operaciji klasifikacije. Pomou generalizacije, kao i pomou klasifikacije, definira se klasa. Bitna razlika je da se kod

  • 17

    generalizacije ne polazi od skupa objekata u realnom svijetu nego od skupa klasa. Razlika je u razini apstrakcije na kojoj se operacija primjenjuje. Kao i kod klasifikacije, i kod generalizacije postoji inverzna operacija, specijalizacija, kojom se prenose svojstva s vieg nivoa apstrakcije na nii.

    U modelima realnog svijeta pojam klase ima znaajnu ulogu. Napomenimo da ne postoji neki prirodni skup klasa. Klase se definiraju prema potrebama informacijskog sustava. Kao posljedica toga javlja se cijeli niz problema. Pojedini entiteti mogu biti svrstani u dvije ili vie razliitih klasa. Ista osoba, na primjer, moe biti i lijenik i pacijent, i potomak i roditelj itd. Pored toga, u nekim sluajevima nije jasno da li neki entitet treba svrstati u odreenu klasu. Uzmimo kao primjer relativno dobro definiranu klasu RADNIK. Pitanja da li su elementi ove klase i honorarni radnici, umirovljeni radnici, radnici na specijalizaciji, radnici na neplaenom odmoru itd. u pravilu nisu rijeena definicijom klase i rjeavaju se naknadnom modifikacijom te definicije. Takve modifikacije, koje se rade pod pritiskom i na nekoliko razliitih mjesta, mogu dovesti do zbrke i na kraju imaju za posljedicu inkonzistenciju baze podataka.

    Operacije klasifikacije, instantacije, generalizacije i specijalizacije osnova su nasljeivanja svojstva i tzv. generikih struktura.

    Generike strukture i nasljeivanje svojstava. Kao to je spomenuto, klase su osnova za generiku strukturu. Generika struktura je u naelu hijerarhijska struktura u koju su kao elementi povezane klase (osim na najnioj razini strukture na kojoj se nalaze entiteti). Postupkom specijalizacije i instantacije pojedini elementi strukture nasljeuju svojstva od hijerahijski nadreenih elemenata (slika 4.2). Recimo da smo definirali klasu PTICA sa svojstvima:

    - ima perje, - leti. Neka su specijalizacije klase PTICA, klase VRABAC, RODA i LASTAVICA i

    neka je instanca klase VRABAC, vrabac Zvonko (slika 4.2.). Specijalizacijom klasa VRABAC nasljeuje svojstva od klase PTICA. Instantacijom, instanca Zvonko, nasljeuje svojstva od klase VRABAC. I tako znamo da Zvonko ima perje i leti.

    Problem s nasljeivanjem svojstava su iznimke. Recimo da je Zvonko slomio krilo. On neko vrijeme, a moda i nikad vie nee moi letjeti. Da li je on i dalje instanca klase VRABAC? I, ako jest, na koji nain registrirati injenicu da Zvonko ne leti za razliku od svih ostalih vrabaca. to je s pingvinima? Oni, kao i nojevi i kiviji, ne mogu letjeti ali se po nizu drugih svojstava ubrajaju u ptice.

    PTICA (- Ima perje - Leti )

    VRABAC RODA LASTAVICA

    Zvonko Slika 4.2 Za svaki element generike strukture moe se zabraniti nasljeivanje

    odreenog svojstva, tako da se eksplicitno navede da taj element odreeno svojstvo nema. Ova zabrana nasljeivanja vrijedila bi za taj element i za sve njemu podreene elemente generike strukture (slika 4.3.).

    Operacija asocijacije koristi se, slino kao i operacija klasifikacije odnosno generalizacije, da bi se definirao skup (tzv. asocijacija). Elementi tog skupa mogu biti objekti realnog svijeta ili klase. Skup, meutim, ne posjeduje svojstva koja posjeduje svaki element skupa. Naprotiv, asocijacija moe posjedovati samo ona svojstva koja

  • 18

    ne posjeduje niti jedan element skupa. Kao primjer posluit emo se skupom automobila. Datum konstruiranja prvog automobila, ime konstruktora prvog automobila, ukupan broj automobila u jednoj dravi, sve su to svojstva koja moe imati asocijacija automobila, a koja ne pripadaju niti jednom konkretnom automobilu posebno. Asocijacija se koristi upravo za memoriranje takvih svojstava.

    PTICA (- Ima perje - Leti )

    PINGVIN RODA LASTAVICA (- Ne leti )

    Albert Slika 4.3 Posljednja operacija je agregacija. Agregat koji se dobije kao rezultat ove

    operacije, je skup elemenata od kojih se sastoji neki sloeni sustav. Elementi tog skupa mogu biti jednostavni ili sloeni, odnosno mogu i sami biti agregati. U o-bradi podataka, agregacijom se koristimo da bi definirali shemu logikog sloga sastavljenu od pojedinih atributa. Pomou agregacije definiramo vrste svojstava (atribute) koja su relevantna za odreeni tip zapisa. Inverzna operacija je operacija dekompozicije.

    4.2. PODATAK Informaciju, u pravilu, smatramo nematerijalnim entitetom. To je tono utoliko

    to je sadraj informacije za nas daleko bitniji od naina na koji je taj sadraj pri-kazan. injenica je, meutim, da informacija, bilo da je uklesana u kamen, za-pisana na papiru, ili da je pohranjena u naoj memoriji, uvijek ima materijalnu podlogu. Informacije koje su pohranjene na trajnoj ili polutrajnoj memoriji kao to je kamen, papir, ili magnetski zapis za obradu podataka imaju posebnu vanost. Ovakve informacije smatramo podacima. Termin podatak definirat emo na slijedei nain:

    Podatak je skup znakova, na trajnoj ili polutrajnoj memoriji, kojima je prikazan jedan ili vie elemenata informacije.

    Svojstva podataka moemo podijeliti u dvije grupe. Sva ona svojstva koja proizlaze iz znaenja nekog podatka smatramo semantikim svojstvima podatka. Sva ostala svojstva podatka svrstavamo u nesemantika svojstva podatka. Povezivanjem pojedinih podataka na memoriji, s obzirom na njihova semantika svojstva, u smislene cjeline, prikazujemo pojedine informacije.

    Podaci su sirovina koju unosimo u kompjuter, odnosno u svaku obradu podataka. Rezultat obrade podataka su podaci. U emu se, dakle, sastoji sama obrada? Slino pitanje moglo bi se postaviti u sluaju automobilske industrije: sirovina s kojom se ulazi u proizvodnju je metal, proizvod je metal. Proces proizvodnje sastoji se u transformaciji sirovine u proizvod. U sluaju obrade podataka operacije, koje izvodimo nad podacima, transformiraju nesemantika svojstva podataka. Kao posljedica transformacije nesemantikih svojstava mijenjaju se i semantika svojstva podataka. Upravo ta transformacija semantikih svojstava u veini sluajeva predstavlja cilj obrade podataka.

  • 19

    II. DIO

    RELACIJSKI MODEL PODATAKA

  • 20

  • 21

    5. OBJEKTI RELACIJSKOG MODELA Svaki entitet u segmentu realnog svijeta mora biti preslikan na odgovarajui

    objekt u modelu tog segmenta. U ovom poglavlju definirat emo objekte koji su u relacijskom modelu na raspolaganju za prikaz entiteta.

    5.1. POJEDINANI PODATAK Pojedinani podatak (Atomic data value) je najmanji objekt relacijskog

    modela. U okviru relacijskog modela pojedinani podatak ne moemo dalje rastavljati na dijelove. Naime, relacijski model je, u biti, logiki model. Objekti u relacijskom modelu podataka prikazuju odgovarajue objekte realnog svijeta. Zbog toga, objekti u relacijskom modelu posjeduju odreena semantika svojstva, a pojedinani podatak je najmanji element koji jo posjeduje takva svojstva. Znakovi, od kojih se pojedinani podatak sastoji, ne posjeduju takva semantika svojstva. Uzmimo da je pojedinani podatak MARKO ime lana obitelji. Pojedinani podatak MARKO stoji u odreenim relacijama s drugim pojedinanim podacima, kao to je ime branog druga tog lana obitelji, mjesto i datum roenja itd. Znakovi, od kojih se podatak MARKO sastoji (A, K, M, O, R) nemaju takva svojstva.

    5.2. ATRIBUT Atribut je element informacije kojim je jednoznano odreena vrsta svojstva.

    Relacijski model razlikuje jednostavne i sastavljene atribute. Vrijednost jednostavnog atributa je pojedinani podatak, dok je vrijednost sastavljenog atributa ureena n-torka pojedinanih podataka. U skladu s tim, vrijednost sastavljenog atributa moemo rastaviti na pojedinane podatke od kojih je sastavljena. Atributi kao to je IME-RADNIKA, MJESTO-ROENJA, i IFRA-OPINE su jednostavni atributi. Primjer sastavljenog atributa moe biti atribut DATUM. Vrijednost atributa DATUM sastavljena je od vrijednosti jednostavnih atributa DAN, MJESEC i GODINA. Vrijednosti ta tri atributa su pojedinani podaci. Izraz atribut koristit emo, u pravilu, kao oznaku jednostavnog atributa.

    5.3. DOMENA Domena je skup svih vrijednosti koje odreeni atribut moe poprimiti. Neka je

    A atribut i neka je D njemu pridruena domena. Kaemo da je A zadan na D i oznaavamo to s D = DOM(A). Atribut mora imati domenu i moe imati samo jednu domenu. Vie razliitih atributa moe biti zadano na istoj domeni. Na primjer, atributi MJESTO-ROENJA i MJESTO-BORAVKA bit e, u pravilu, zadani na istoj domeni.

    S obzirom na to da je domena skup svih vrijednosti koje atribut (ili atributi) zadan na njoj moe poprimiti, sadraj domene ne ovisi o vremenu. Aktivna domena je podskup domene i sastoji se od svih vrijednosti koje, za dani atribut, jedan ili vie entiteta u danom momentu posjeduju. Naravno, sadraj aktivne do-mene se mijenja tokom vremena.

    Kao i atributi, i domene mogu biti jednostavne ili sastavljene. Elementi jednostavnih domena su pojedinani podaci. Sastavljena domena je, u najjednostavnijem sluaju, Kartezijev produkt dvije ili vie jednostavnih domena. Elementi sastavljene domene su ureene n-torke pojedinanih podataka. Kao i u sluaju atributa, pod izrazom domena podrazumijevat emo jednostavnu domenu.

    5.4. RELACIJA Relacija je jedan od osnovnih pojmova relacijskog modela podataka. Izmeu

    relacije u matematici i relacije u relacijskom modelu postoji odreena razlika. Da

  • 22

    bismo sprijeili nesporazume definirat emo i jedan i drugi pojam i ukazati na razlike meu njima.

    Relaciju u matematici definiramo preko Kartezijevog produkta: Relacija, zadana na domenama D1, D2,..., Dn, podskup je Kartezijevog produkta skupova D1, D2,..., Dn

    Kartezijev produkt skupova D1, D2,..., Dn (oznaavamo ga kao X(D1, D2,..., Dn)) definiramo kao skup ureenih n-torki za koje vrijedi da je i-ti lan n-torke element i-tog skupa tj.:

    X(D1, D2,..., Dn) = {( d1, d2,..., dn): di Di za 1 i 1} Pod relacijom u matematici, prema tome, podrazumijevamo skup ureenih n-

    torki. Broj lanova od kojih se n-torka sastoji, odreen je brojem domena na kojima je relacija zadana i konstantan je za danu relaciju. Tu konstantu nazivamo stupanj relacije. Svaki lan n-torke potjee iz odreene domene, a redoslijed kojim su lanovi navedeni u n-torki odreen je redoslijedom kojim je nad do-me-nama izvoena operacija Kartezijev produkt i ne moe se mijenjati.

    U relacijskom modelu, relacija odgovara dvodimenzionalnoj tabeli (Slika 5.1) u kojoj svaki red sadri n-torku, a svaki stupac elemente jedne domene (odnosno vrijednosti atributa zadanog na toj domeni). Ako svakom stupcu pridruimo naziv atributa, dobit emo zaglavlje, odnosno shemu relacije.

    Zaglavlje tabele ili shema relacije ( IME IF MJESTO_RO ) Darko 517 Ljubljana tijelo tabele Marko 632 Varadin ili relacija Petar 727 Varadin

    arko 814 Zagreb

    redak tabele ili n-torka stupac tabele ili aktivna domena Slika 5.1

    Svaki stupac relacije jednoznano je odreen nazivom atributa u shemi relacije. Redoslijed stupaca u relaciji postaje, zahvaljujui tome, nebitan. Drugim rijeima, relacija ostaje ista bez obzira na to kojim smo redoslijedom stupce ispisali na memoriji. Naravno zbog toga postaje nebitan i redoslijed lanova u n-torci relacije. Obratimo panju na injenicu da ovo svojstvo nije u skladu s definicijom relacije preko Kartezijevog produkta. Da bi se taj problem rijeio, relaciju u relacijskom modelu definiramo pomou sheme relacije:

    Relacijska shema R je konaan skup naziva atributa {A1, A2, ...,An}zajedno sa skupom ogranienja koja su zadana na tom skupu atributa (Cadiou (1975)).

    Primijetimo da je redoslijed atributa u ovako definiranoj shemi relacije nebitan. Naime, elementi skupa, ukoliko to nije posebno navedeno, nisu povezani ni u kakvu strukturu. Umjesto izraza naziv atributa, zbog jednostavnosti, koristit emo izraz atribut. Za trenutak moemo zanemariti ogranienja. O njima emo govoriti kasnije a zasada nam nisu prijeko potrebna da bi definirali pojmove n-torke i relacije. Definicija n-torke glasi:

    Neka je R(A1, A2, ...,An) relacijska shema i neka je svaki

  • 23

    atribut Ai R zadan na odgovarajuoj domeni Di. Neka je D unija svih domena Di (1 i 1). N-torka je preslikavanje iz R na D uz ogranienje da vrijednost na koju je preslikan atribut Ai mora biti element domene Di .(tj. t(Ai) Di za 1 i 1).

    Da bi relacija mogla biti prikazana u obliku dvodimenzionalne tabele, sve n-torke relacije moraju biti jednake duine (tj. ukupan broj vrijednosti atributa mora biti jednak u svim n-torkama). Taj uvjet e biti ispunjen ako svaki atribut iz sheme moe biti preslikan samo na jednu vrijednost atributa. Naravno, s obzirom na to da vie razliitih atributa moe biti zadano na istoj domeni, postoji mogunost da vie razliitih atributa bude preslikano na isti element domene. Radi se dakle o preslikavanju N:1, odnosno n-torka je funkcija iz R na D.

    Definicija relacije, koja se koristi u relacijskom modelu podataka, glasi: Relacija r na relacijskoj shemi R je konaan skup n-torki.

    Redoslijed stupaca u relaciji, odnosno redoslijed vrijednosti atributa u n-torki, odreen je redoslijedom atributa u relacijskoj shemi. Kako je relacijska shema definirana kao skup atributa, taj redoslijed nije bitan. To je osnovna razlika izmeu pojma relacije u relacijskom modelu i relacije u matematici. Pogledajmo to to, zapravo, znai, tj. zbog ega je bilo potrebno inzistirati na ovoj karakteristici relacije. Kad relaciju ispiemo na neki medij, bilo da se radi o ekranu monitora, papiru ili magnetskom disku, redoslijed stupaca je definiran. Taj redoslijed moe biti i te kako vaan za preglednost i razumljivost podataka sadranih u relaciji. Ono to mislimo kad kaemo da redoslijed stupaca nije bitan, jest slijedee: dvije tabele koje se meusobno razlikuju samo po redoslijedu stupaca predstavljaju, u relacijskom modelu, dva prikaza iste relacije. Prema definiciji relacije preko Kartezijevog produkta to bi bile dvije razliite relacije. Pogledajmo to na jednom primjeru: ( IME IF MJESTO-RO )

    Darko 517 Ljubljana ( IF IME MJESTO-RO ) Marko 632 Varadin 517 Darko Ljubljana Petar 727 Varadin 632 Marko Varadin arko 814 Zagreb 727 Petar Varadin 814 arko Zagreb Ove dvije tabele meusobno se razlikuju samo po redoslijedu stupaca. Ako

    redoslijed stupaca, kao to je to u relacijskom modelu, nije bitan za relaciju, onda su tabele dva prikaza iste relacije. Ukoliko bi koristili definiciju relacije preko Kartezijevog produkta (dakle definiciju relacije u matematici), redoslijed stupaca bi bio bitan i ove dvije tabele prikazivale bi dvije razliite relacije. To oigledno ne bi bilo u skladu s praksom u obradi podataka i moglo bi dovesti do niza komplikacija i nesporazuma.

    5.4.1. Svojstva relacije Za relacijski model od posebnog su znaaja etiri osnovna svojstva relacije i

    relacijske sheme: - shema relacije ne sadri dva jednaka naziva atributa, - redoslijed stupaca u relaciji nije bitan, - relacija ne sadri dvije jednake n-torke i - redoslijed n-torki u relaciji nije bitan. Prva dva svojstva proizlaze iz definicije relacijske sheme. Shemu relacije

    definirali smo kao ...skup naziva atributa... Skup, openito, ne moe sadravati dva jednaka elementa (u naem sluaju dva jednaka naziva atributa ). Pored toga, elementi skupa nisu povezani u strukturu, pa je redoslijed naziva atributa u re-

  • 24

    lacijskoj shemi proizvoljan. S obzirom na to da je redoslijed stupaca u relaciji odreen redoslijedom naziva atributa u relacijskoj shemi, proizvoljan je i redoslijed stupaca u relaciji. Zbog promjene redoslijeda stupaca ne smije doi do gubitka informacija sadranih u relaciji.

    Druga dva svojstva proizlaze iz definicije relacije. Relaciju smo definirali kao ...skup n-torki... Prema tome relacija ne moe sadravati dvije jednake n-torke, i redoslijed n-torki u relaciji nije bitan. Zbog promjene redoslijeda n-torki ne smije doi do gubitka informacija sadranih u relaciji.

    Zadrimo se malo na problemu gubitka informacija sadranih u relaciji. Rekli smo da niti redoslijed stupaca, niti redoslijed n-torki u relaciji nisu bitni. Da bi to zaista bilo tako, njihova promjena ne smije imati za posljedicu gubitak informacija. Pogledajmo u kojem sluaju moe doi do gubitka informacija. Ako u neki redoslijed stupaca, ili redova tabele pohranimo odreene informacije, promjena redoslijeda stupaca, odnosno redova, dovest e do gubitka tih informacija. Pretpostavimo da smo n-torke upisivali u relaciju redom kojim su dolazili odgovarajui podaci s terena i da nam je taj redoslijed zbog neega vaan. Promjenom redoslijeda n-torki izgubit e se informacija o redoslijedu stizanja podataka i na nikakav nain ne moe biti ponovo rekonstruirana. Podsjetimo se da do promjene redoslijeda moe doi iz niza razloga. Ako su nam te informacije vane, bilo bi, openito, korisno memorirati ih u obliku vrijednosti odgovarajuih atributa. Ako se radi o relacijskoj bazi podataka, onda smo na to prisiljeni.

    Klju Zahvaljujui injenici da u relaciji ne postoje dvije potpuno jednake n-torke,

    svaku n-torku u relaciji mogue je jednoznano odrediti vrijednou nekog podskupa atributa. Podskup atributa, ije vrijednosti jednoznano odreuju n-torku u relaciji, nazivamo klju relacije. Definicija kljua glasi:

    Klju relacije r zadane na relacijskoj shemi R je podskup atributa K= {A1, A2, ...,Am} od R koji zadovoljava slijedee uvjete:

    1) Jednoznanost. Za bilo koje dvije n-torke t1 i t2 u relaciji r postoji A1 K za 1 i m, takav da vrijedi t1[Ai] t2[Ai], drugim rijeima, ne postoje dvije n-torke s jednakim vrijednostima svih atri-buta u podskupu K. Taj uvjet moemo napisati kao t1[K] t2[K] i 2) Minimalnost. Niti jedan pravi podskup K' od K nema svojstvo jednoznanosti.

    Uvjet minimalnosti potreban nam je da bi broj atributa u kljuu sveli na minimum. Naime, svaki skup atributa koji u sebi sadri minimalni klju jednoznano odreuje n-torku u relaciji. Podskup atributa u relacijskoj shemi koji zadovoljava uvjet jednoznanosti, a ne zadovoljava uvjet minimalnosti naziva se i superklju relacije zadane na relacijskoj shemi R. Pod kljuem relacije podrazumijevamo minimalni klju.

    Kao to je spomenuto, u relaciji uvijek postoji klju. U najgorem sluaju svi atributi relacijske sheme, na kojoj je relacija zadana, zajedno tvore klju relacije. Relacija moe imati i vie razliitih kljueva. Podskupovi atributa, od kojih se ti kljuevi sastoje, ne moraju biti meusobno disjunktni.

    Da bi lake razumjeli osnovne pojmove, promatrali smo relaciju kao statiki objekt. Iako su zakljuci do kojih smo doli tim putem valjani, sama pretpostavka nije tona. Relacija odgovara skupu istovrsnih entiteta u segmentu realnog svijeta i s promjenom tog skupa, odnosno svojstva pojedinih elemenata tog skupa, mi-jenja se i relacija. Stanje relacije u odreenom trenutku je odraz stanja u odgovarajuem segmentu realnog svijeta. Za bilo koje stanje relacije mogue je nai jedan, a

  • 25

    ponekad i vie kljueva. Problem je u tome to se u razliitim stanjima kao kljuevi relacije mogu javiti razliiti podskupovi atributa.

    Za razliku od relacije, relacijska shema na kojoj je relacija zadana, ne mijenja se u zavisnosti o vremenu. Zbog toga emo klju definirati na relacijskoj shemi. Takav klju vrijedit e na svim relacijama zadanim na toj relacijskoj shemi i u svim stanjima tih relacija. Nezgodno je to pri izboru kljua relacijske sheme moramo uzeti u obzir sva stanja u koja mogu doi relacije zadane na toj shemi. Inae, kao i relacija, i relacijska shema uvijek ima klju (u najnepovoljnijem sluaju svi atributi relacijske sheme sainjavaju klju). Kao i relacija, i relacijska shema moe imati vie kljueva koji ne moraju biti meusobno disjunktni. Kao oznaku ovih kljueva koristit emo termin mogui kljuevi (candidate key). Jedan od moguih kljueva odabrat emo za primarni klju relacijske sheme.

    Obratimo panju na razliku izmeu moguih i primarnog kljua relacijske sheme. Teoretski, vrijednost bilo kojeg od moguih kljueva jednoznano odreuje n-torku u bilo kojoj relaciji zadanoj na toj relacijskoj shemi. U praksi, tokom vremena moe doi do promjena i neki od moguih kljueva mogu izgubiti svojstvo jednoznanosti. Budui da nam je klju izuzetno vaan, mi to u sluaju primarnog kljua neemo dozvoliti. Zbog toga su pravila odravanja atributa od kojih se sastoji primarni klju znatno rigoroznija nego za ostale atribute relacijske sheme.

    Da bi izbjegli nesporazume spomenimo i termin primarni atribut. Bilo koji atribut koji ulazi u sastav nekog od moguih kljueva, naziva se primarni atribut. Primarni atributi i primarni klju nisu direktno povezani. Naravno i atributi primarnog kljua su primarni atributi. Pojam primarnog atributa koristi se u definicijama nekih normalnih formi relacijske sheme.

    Adresibilnost Adresibilnost je jo jedno svojstvo relacijske baze koje proizlazi iz osnovnih

    svojstava relacije. Svaki stupac relacije jednoznano je odreen odgovarajuim nazivom atributa. Svaki red relacije jednoznano je odreen vrijednou kljua n-torke. Zahvaljujui tome, svaki pojedinani podatak u relaciji moemo jednoznano odrediti pomou:

    - vrijednosti kljua n-torke, - naziva atributa.

    radnik ( IME IF MJESTO-RO ) Darko 517 Ljubljana Marko 632 Varadin Petar 727 Varadin arko 814 Zagreb

    Slika 5.2 radnik, 727, MJESTO-RO

    Kao to emo vidjeti, svaka relacija u relacijskoj bazi podataka jednoznano je odreena nazivom relacije. Bez obzira na koliinu podataka u relacijskoj bazi, svaki pojedinani podatak u bazi moemo jednoznano odreena s tri elementa:

    - nazivom relacije, - vrijednou kljua n-torke, - nazivom atributa.

    Neka je radnik relacija zadana na relacijskoj shemi RADNIK(IME IF MJESTO-RO), i neka je atribut IF primarni klju. Pomou naziva relacije (radnik),

  • 26

    vrijednosti primarnog kljua (vrijednost atributa IF n-torke u kojoj se podatak nalazi) i naziva atributa moemo jednoznano odrediti svaki pojedini podatak u toj relaciji.

    Strani klju Strani klju koristimo u relacijskom modelu za povezivanje n-torki u

    semantiku strukturu. Prije nego to kaemo neto vie o stranom kljuu, pogledajmo kako to povezivanje izgleda na jednom primjeru.

    Primjer Neka je relacija radnik zadana na relacijskoj shemi RADNIK(IF-R IME-R

    IF-ODJ IF-RUKOV...). Primarni klju relacijske sheme je podcrtan. U naem primjeru primarni klju je atribut IF-R. Vrijednost atributa IF-RUKOV, u n-torci nekog radnika A, je ifra njemu neposredno nadreenog radnika B (tj. primarni klju u n-torci radnika B). U n-torci radnika A taj atribut je strani klju.

    radnik ( IF-R IME-R IF-ODJ IF-RUKOV )

    :

    517 Darko 21 ?

    :

    632 Marko 21 517

    Slika 5.3

    Radniku Marku neposredno je nadreeni rukovodilac radnik sa ifrom 517 (tj. radnik Darko). U n-torku radnika Marka kao vrijednost atributa IF-RUKOV upi-sana je vrijednost primarnog kljua radnika Darka. Kad jednom raspolaemo s n-torkom radnika Marka moemo, na osnovi vrijednosti atributa IF-RUKOV, pro-nai n-torku Marku nadreenog rukovodioca. N-torka radnika Marka je, u ovom primjeru, pozivajua, n-torka radnika Darka ciljna n-torka, a atribut IF-RUKOV strani klju.

    Pozivajua i ciljna n-torka ne moraju uvijek biti u istoj relaciji. Da bi jednoznano odredili n-torku u danoj relaciji dovoljna je vrijednost kljua te n-torke. Ako pozivajua i ciljna n-torka nisu u istoj relaciji, pored vrijednosti kljua potreban je i naziv relacije u kojoj se nalazi ciljna n-torka. Ovaj problem rjeava se tako da u opisu relacijske baze podataka postoje opisi stranih kljueva. Zahvaljujui tome, dovoljno je da upravljakom sustavu baze podataka damo vrijednost stranog kljua. Sustav zna u kojoj relaciji se nalazi ciljna n-torka.

    Primjer

    radnik ( IF-R IME-R IF-ODJ... )

    :

    517 Darko 21

    : odjel ( IF-ODJ NAZIV-ODJ ...)

    21 Odravanje

    Slika 5.4

    Neka su relacije radnik i odjel zadane na relacijskim shemama RADNIK, odnosno ODJEL. U relacijskoj shemi ODJEL atribut IF-ODJ je primarni klju, a u relacijskoj shemi RADNIK taj atribut je strani klju:

  • 27

    Ulogu stranog kljua u relaciji moe imati bilo koji atribut (ili podskup atributa) u relacijskoj shemi, ukljuivo i primarne atribute. Pogledajmo relacijske sheme LIJENIK, DIJAGNOZA i PACIJENT:

    LIJENIK (IF-L IME-L ...) DIJAGNOZA (IF-L IF-P... ) PACIJENT (IF-P IME-P ...) Primarni klju relacijske sheme LIJENIK je atribut IF-L, primarni klju rela-

    cijske sheme PACIJENT je atribut IF-P, a primarni klju relacijske sheme DIJAGNOZA sastavljen je od ova dva atributa. Svaki za sebe ova dva atributa u shemi DIJAGNOZA predstavljaju strani klju.

    Strani klju moemo definirati na slijedei nain: Neka je r relacija zadana na relacijskoj shemi R, a s relacija zadana na relacijskoj shemi S. Strani klju relacije r je atribut (ili neki podskup atributa) relacijske sheme R, koji mogu poprimiti nul-vrijednost, ili vrijednost primarnog kljua relacije s. Atributi koji ulaze u sastav primarnog kljua relacije s i atributi koji tvore strani klju u relaciji r moraju biti zadani na istim domenama. Relacijske sheme R i S ne moraju biti razliite. Isto tako relacije r i s ne moraju biti razliite relacije.

    Pojam nul-vrijednosti detaljnije emo obraditi kasnije. Zasad recimo samo da je to oznaka, da stvarnu vrijednost atributa ne znamo, ili je iz nekog drugog razloga ne moemo upisati u n-torku.

    Uvjeti postavljeni u definiciji stranog kljua trivijalno su zadovoljeni za skup atributa koji tvore primarni klju relacije. Svaka vrijednost stranog kljua bilo koje relacije jednaka je samoj sebi.

    Ogranienja Ogranienja vrijednosti pojedinih atributa u relaciji koristimo da bi sprijeili

    unos pogrenih podataka u bazu podataka. Ogranienja zadana u relacijskoj shemi su odraz zakonitosti koje vrijede u segmentu realnog svijeta. U monogamnom drutvu svaka osoba moe imati najvie jednog branog druga. Svaki ovjek ima samo jedan datum roenja. Ogranienja nam omoguavaju da opiemo segment realnog svijeta. Ukratko emo se osvrnuti na neke osnovne tipove ogranienja.

    Vrijednost atributa GODINA-ROENJA ne moe biti "2573", vrijednost atributa RADNI-STA ne moe biti "120", itd. Mogue vrijednosti pojedinih atributa n-torke u relaciji ograniili smo na elemente odgovarajuih domena. Pored ovakvog ogranienja vrijednosti koje pojedini atribut moe poprimiti postoje i niz drugih. Na primjer, radnik star 20 godina ne moe imati 30 godina radnog staa. Openito, ogranienja s kojima emo se sretati mogu se podijeliti u dvije grupe:

    - Ogranienja vrijednosti koje pojedini atributi mogu poprimiti nezavisno o vrijednostima drugih atributa u n-torci. U ovu grupu ogranienja spadaju i ogranienja vrijednosti atributa na elemente domene na kojoj je atribut zadan.

    - U drugu grupu ubrajamo ogranienja vrijednosti danog atributa u zavisnosti o vrijednostima drugih atributa u n-torci. U ovu grupu spada ogranienje duine radnog staa u zavisnosti o starosti radnika ili zahtjev da svakoj ifri radnika (kojom je radnik jednoznano odreen) moe biti pridrueno samo jedno ime i prezime, jedan datum roenja, jedno mjesto roenja, najvie jed-no ime branog druga, itd. Za ovu grupu ogranienja koristi se termin zavisnosti i ona imaju izuzetnu ulogu u modeliranju baze podataka.

  • 28

    Interesantno je spomenuti da su ogranienja posljedica semantike interpretacije naziva atributa u shemi relacije. Spomenuli smo da vrijednost atributa RADNI-STA ne moe biti 30, ako je starost radnika 20 godina. Pretpostavimo sad da netko, tko ne poznaje dobro jezik niz znakova RADNI-STA interpretira kao kuni broj. U toj interpretaciji gornje ogranienje bi glasilo da radnik koji je star 20 godina ne moe stanovati na kunom broju 30 i bilo bi potpuno besmisleno. U biti, promjenom semantike interpretacije naziva atributa RADNI-STA ogranienje je nestalo.

    Spomenuli smo da su ogranienja odraz zakonitosti koje vrijede u segmentu realnog svijeta. Nae poznavanje tog segmenta i zakonitosti koje u njemu vrijede osnova je za definiranje ogranienja u relacijskoj shemi. Ispitivanjem relacijske sheme ili relacija zadanih na toj relacijskoj shemi ne moemo pronai ogra-nienja. tovie ispitivanjem relacija mi ne moemo dokazati da neka zakonitost, odnosno ogranienje vrijedi. injenica da niti jedan lan u nekom kolektivu nema 15-ero djece nije dokaz da nitko u tom kolektivu ne moe imati 15-ero djece. U odreenom trenutku moe se desiti da svaki lan kolektiva koji promatramo ima najvie jedno dijete (recimo da je kolektiv mali i da su lanovi kolektiva mladi ljudi). To nije nikakav dokaz da postoji ogranienje po kojem svaki lan moe imati najvie jedno dijete. U naelu, ispitivanjem baze podataka moe se dokazati da neko ogranienje ne vrijedi. Uz pretpostavku da su svi podaci u bazi aurni i istiniti, pronalaenje n-torke lana kolektiva koji ima vie od jednog djeteta dokaz je da ne postoji ogranienje na najvie jedno dijete. Meutim, i takav dokaz u nekim sluajevima ne mora biti pouzdan. Pronalaenje osobe koja ima dva ili vie branih drugova nije dokaz da ne postoji ogranienje prema kojem svaka osoba moe imati najvie jednog branog druga. Takvo ogranienje postoji, a bigamisti su to ogranienje prekrili. Polazei od relacijske sheme, ili relacija zadanih na njoj, ogranienja su a priori znanje o sustavu realnog svijeta koji modeliramo.

    Pogledajmo kakva je uloga ogranienja u relaciji. N-torka, u kojoj je neko od ogranienja zadanih na relacijskoj shemi prekreno bit e, po svoj prilici, neispravna, odnosno informacije koje nisu u skladu s ogranienjima najvjerojatnije nisu istinite. ak i u sluaju bigamiste takve informacije ne bi trebale biti u bazi. Obrat, meutim, ne vrijedi. U n-torci radnika starog 20 godina moe stajati da on ima 2 godine radnog staa (dakle, u skladu s ogranienjem) i da to ne bude istina.

    Ogranienja, a posebno neke vrste zavisnosti (funkcijska, vieznana i join zavisnost), imaju vanu ulogu u relacijskom modelu podataka. Ona su alat za oblikovanje modela baze podataka. S pojedinim tipovima zavisnosti detaljno emo se upoznati kasnije.

    Kad smo govorili o odnosima meu entitetima spomenuli smo pojam funkcijske zavisnosti. Kod preslikavanja 1:1 i N:1, jedan element domene preslikava se na najvie jedan element kodomene. U takvim sluajevima kaemo da element domene jednoznano (ili funkcijski) odreuje element kodomene na koji se preslikava, odnosno da kodomena funkcijski zavisi o domeni. Kao primjere funkcijske zavisnosti, uzet emo odnos meu vrijednosti atributa IF-RAD, MJESTO-RO i IME-BRANOG DRUGA, odnosno, odnose meu domenama na kojima su ti atributi zadani.

    Vrijednosti atributa IF-RAD i IME-RAD mogu, u odreenim uvjetima, jednoznano odreivati radnika, odnosno mogu biti identifikatori radnika. Svaki radnik mora imati tono jednu ifru i jedno ime, i ne moe imati vie od jedne ifre i jednog imena. Vrijednosti ovih atributa stoje meusobno u odnosu 1:1. Kad kaemo ifra radnika Darka, mislimo na jednu tono odreenu ifru i kad kaemo ime radnika sa ifrom "517", mislimo na jedno tono odreeno ime.

    Svaki radnik ime jedno mjesto roenja, ali vie radnika moe biti roeno u istom mjestu. Zbog toga ifra radnika jednoznano odreuje mjesto roenja radnika, ali mjesto roenja ne odreuje jednoznano ifru radnika. Ovo je primjer

  • 29

    preslikavanja N:1 kod kojeg vrijednost atributa IF-RAD funkcijski odreuje vrijednost atributa MJESTO-RO.

    U prethodna dva primjera za svaku postojeu ifru radnika postojalo je odgovarajue ime radnika i mjesto roenja na koje je ifra bila preslikana. To ne mora uvijek biti sluaj. Svaki radnik moe imati najvie jednog branog druga. Preslikavanje domene na kojoj je zadan atribut IF-RAD na domenu atributa IME-BRANOG-DRUGA bit e 1:1, ali vjerovatno nee sve ifre radnika biti preslikane (tj. nee svi radnici imati branog druga).

    5.5. PRAVILA ZA OBLIKOVANJE NAZIVA Kod oblikovanja naziva u relacijskom modelu podataka pridravamo se

    odreenih pravila. Zahvaljujui njima, nazivi su krai i sadre neke dodatne informacije. U dosadanjim primjerima (iako to nije spomenuto) nazivi su oblikovani prema tim pravilima. Kako bi izbjegli nesporazume, rei emo neto o tome.

    Nazive domena piemo velikim slovima (MJESTO, IF-RAD, itd.). U skupu domena jedne baze podataka, naziv domene jednoznano odreuje domenu. Drugim rijeima, u jednoj bazi podataka ne smiju postojati dvije domene s jednakim nazivom.

    Kao i naziv domene, i naziv atributa piemo velikim slovima (IF-RAD, MJESTO-RO, MJESTO-BOR itd.). U skupu atributa jedne baze podataka, naziv atributa jednoznano odreuje atribut. Naziv atributa i naziv domene na kojoj je atribut zadan mogu biti jednaki. Ako su ova dva naziva jednaka, iz naziva atributa moe se odrediti domena na kojoj je atribut zadan. Meutim, ako su dva ili vie atributa zadana na istoj domeni, onda takvo rjeenje nije mogue. U takvim sluajevima naziv atributa sastavljen je od naziva domene i naziva uloge koju domena ima u relacijskoj shemi (na primjer, MJESTO-BOR, i MJESTO-RO su dva atributa zadana na istoj domeni).

    Isti atribut moe biti element dviju ili vie relacijskih shema. Da bi jednoznano odredili atribut u takvom sluaju koristimo tzv. kvalificirani naziv. Kvalificirani naziv atributa sastoji se od naziva relacijske sheme, u kojoj se atribut nalazi, i naziva atributa. Ova dva naziva odijeljeni su tokom (RADNIK.MJESTO-BOR). Umjesto naziva relacijske sheme u kvalificiranom nazivu koristi se u nekim sluajevima naziv relacije (radnik.MJESTO-BOR).

    Naziv relacijske sheme piemo velikim slovima (RADNIK). Naziv relacijske sheme jednoznano odreuje relacijsku shemu u skupu relacijskih shema jedne baze podataka. Skup atributa, od kojih se relacijska shema sastoji, navodi se, ako je to potrebno, u zagradama iza naziva relacijske sheme (RADNIK(IF-RAD IME-RAD...)). Kao to je spomenuto, primarni klju relacijske sheme oznaava se podcrtavanjem naziva atributa koji ulaze u sastav primarnog kljua (RADNIK(IF-RAD IME-RAD...)).

    Spomenimo da skup ogranienja, koja su zadana na relacijskoj shemi, moe biti naveden kao posljednji element niza u zagradama iza naziva sheme. Elementi skupa ogranienja zatvaraju se u vitiaste zagrade. Neka je F= {O1, O2, O3} skup ogranienja zadanih na relacijskoj shemi RADNIK. To moemo napisati kao RADNIK(IF-RAD IME-RAD... {O1, O2, O3} )

    Naziv relacije piemo malim slovima i kurzivom (radnik). Naziv relacije jednoznano odreuje relaciju unutar skupa relacije jedne baze podataka. Naziv relacijske sheme na kojoj je relacija zadana moe biti naveden u zagradama iza naziva relacije (radnik (RADNIK)). Umjesto naziva relacijske sheme ponekad se u zagradama, iza naziva relacije, navodi niz atributa od koji se sastoji relacijska shema. Ovo je posebno zgodno kod tabelarnog prikaza relacije, pri emu popis atributa slui kao zaglavlje tabele.

    Recimo sad neto o pravilima kojih emo se pridravati kod oznaavanja u ovoj knjizi, a koja nisu dio relacijskog modela. Zbog vee preglednosti u tekstu emo, kad god to bude mogue, kao naziv domene koristit slovo D s indeksom (na primjer:

  • 30

    D1, D2, ...Dn)). Na slian nain, kao nazive atributa koristit emo velika slova s poetka abecede (A, B, C, D,...), odnosno ta slova s indeksom (na primjer: A1, A2, A3,...). Indeks, ukoliko se koristi, slui za jednoznano odreivanje atributa, a ne za odreivanje redoslijeda atributa u relacijskoj shemi. Kao oznaku podskupa atributa u relacijskoj shemi koristit emo velika slova s kraja abecede (X, Y, Z, W).

    Kao oznaku za odreenu vrijednost atributa koristit emo mala slova s poetka abecede, sa ili bez indeksa (na primjer: a, b, c, d, ili a1, a2, a3). Vrijednost sastavljenih atributa oznaavat emo malim slovima na kraju abecede, sa ili bez indeksa (na primjer: x, y, z, w, ili x1, x2, x3). Kvalificirane nazive atributa emo, zbog njihove duine, izbjegavati, osim u sluaju kada to moe dovesti do nesporazuma. Kao nazive relacijskih shema koristit emo velika slova iz sredine abecede (R, P, Q, S), a kao nazive relacija odgovarajua mala slova pisana kurzivom. N-torku relacije oznaavat emo malim slovom "t", a vrijednost atributa Ai u n-torci s t[Ai], odnosno vrijednosti nekog podskupa atributa X u n-torci s t[Xi].

    Spomenimo na kraju da emo, kad god to bude mogue, zbog jednostavnosti, uniju dvaju skupova X i Y pisati kao XY umjesto X Y, odnosno (X, Y).

  • 31

    6. RELACIJSKI PODJEZICI BAZE PODATAKA Prema Coddu (1972b), pod pojmom podjezika baze podataka podrazumijeva

    se jezik za pretraivanje i auriranje baze podataka iz kojeg su odstranjene komponente potrebne za njegovo izvoenje na kompjuteru. Iako je definiran preko jezika baze podataka, podjezik je u biti teoretska podloga za definiranje jezika baze podataka.

    Svi postojei jezici za relacijske baze podataka razvijeni su na osnovi dva razliita podjezika relacijskog modela:

    - relacijske algebre, - relacijskog rauna. Relacijska algebra je proceduralni jezik i sastoji se od skupa operatora za rad

    s relacijama, odnosno skupa odgovarajuih operacija definiranih tim operatorima. Kombiniranjem tih operacija mogue je izvesti pretraivanje, odnosno auriranje baze podataka. Relacijski raun zasnovan je na raunu predikata i spada u neproceduralne jezike. Pomou relacijskog rauna definira se traeni rezultat, a sustavu za upravljanje bazom podataka se preputa da odabere kombi-naciju operacija potrebnih da se doe do rezultata. Codd (1972b) je pokazao da su ova dva podjezika meusobno ekvivalentna tj. da bilo koji izraz u relacijskom raunu moe biti transformiran u semantiki ekvivalentan niz operacija relacijske algebre.

    6.1. RELACIJSKA ALGEBRA Codd (1972b) je definirao skup od osam operacija relacijske algebre. U me-

    uvremenu definirano je nekoliko dodatnih operacija (Date (l986b), Yang (1986)). Naa razmatranja ograniit emo na osnovne operacije relacijske algebre, koje je definirao Codd, s tim da emo se naknadno osvrnuti na njihovu primjenu u sluaju prisutnosti tzv. nul-vrijednosti u bazi podataka.

    Osam Coddovih operacija moemo podijeliti na dvije grupe: - operacije nad skupovima koje su za potrebe rada s relacijama neto

    modificirane. - posebne operacije relacijske algebre. Od tradicionalnih operacija nad skupovima u relacijskoj algebri se koriste: - unija, - presjek, - razlika, - Kartezijev produkt. Grupa posebnih operacija sastoji se od: - selekcije, - projekcije, - pridruivanja, - dijeljenja. Kako bi se izbjegli mogui nesporazumi, elio bih upozoriti da se nazivi

    operacija, tj. postupaka koji se izvode nad operandima, koriste i kao nazivi rezultata tih operacija. Tako je, na primjer Kartezijev produkt postupak, ali i skup elemenata dobiven tim postupkom.

    Veinu pojmova potrebnih za definiranje osnovnih operacija relacijske algebre, definirali smo do sada. treba jo definirati jednu operaciju nad n-torkama (spoj) i jedan pojam (unijska kompatibilnost).

  • 32

    Spoj Spoj je operacija nad n-torkama koja se javlja kao element nekoliko razliitih

    operacija relacijske algebre. Neka su a i b n-torke: a=(a1, a2, ... an) i b=(b1, b2, ... bm). Operaciju spoj nad n-torkama a i b oznaavamo pomou operatora ^ (tj. a^b). Operaciju definiramo pomou izraza:

    a^b = (a1, a2, ... an, b1, b2, ... bm) Kao to vidimo, rezultat ove operacije je n-torka u iji sastav ulaze svi

    elementi sadrani u n-torkama nad kojima je operacija izvedena. Ukupan broj elemenata u rezultirajuoj n-torki jednak je sumi broja elemenata n-torki a i b tj. (n + m).

    Unijska kompatibilnost Binarne operacije unija, presjek i razlika mogu se izvoditi samo nad

    relacijama koje su meusobno usporedive. Semantiki nema smisla izvoditi operaciju unije nad dvije meusobno neusporedive relacije, kao to su na primjer, relacije radnik (u kojoj svaka n-torka odgovara jednom radniku) i stroj (u kojoj svaka n-torka odgovara jednom stroju). Usporedivost dviju relacija je uvjet za iz-voenje operacija unije, presjeka ili razlike nad tim relacijama, i naziva se unijska kompatibilnost.

    Unijska kompatibilnost relacija definira se preko unijske kompatibilnosti domena. U svom radu Codd (1972b) definira unijsku kompatibilnost domena na slijedei nain:

    Jednostavna domena je skup iji elementi su meusobno istovrsni. Elementi jedne jednostavne domene mogu naprimjer biti cijeli brojevi ili nizovi znakova odreene duine itd. Prema Coddu, dvije jednostavne domene su unijski kompatibilne ako sadre istu vrstu elemenata.

    Dakle, dvije domene, iji su elementi cijeli brojevi, unijski su kompatibilne, a domene od kojih jedna sadri cijele brojeve, a druga nizove znakova odreene duine to nisu. Obratimo panju na jednu neloginost. Prema Coddu unijski bi bile kompatibilne domene od kojih jedna sadri kune brojeve, a druga ifre radnika uz uvjet da su definirane kao skupovi cijelih brojeva. Istina je da se elementi ove dvije domene mogu meusobno usporeivati. Rezultat te usporedbe semantiki e najee biti besmislen.

    Sastavljena domena je podskup Kartezijevog produkta konanog broja (recimo n) jednostavnih domena. Broj n je stupanj sastavljene domene. Prema Coddu:

    Dvije sastavljene domene unijski su kompatibilne ako ispunjavaju slijedee uvjete:

    - imaju isti stupanj, - za i-tu jednostavnu domenu (0 i n) prve sastavljene domene

    vrijedi da je unijski kompatibilna s i-tom jednostavnom domenom druge sastavljene domene.

    Relacija je podskup sastavljene domene n-tog stupnja, s tim da redoslijed stupaca u relaciji nije bitan. Po analogiji:

    Dvije relacije su unijski kompatibilne ako ispunjavaju slijedee uvjete: - imaju isti stupanj, - izmeu dva skupa jednostavnih domena na kojima su zadane

    relacije, postoji preslikavanje 1:1 kojim se svaka domena jedne relacije preslikava na unijski kompatibilnu domenu druge.

  • 33

    Ovakva definicija unijske kompatibilnosti formalno omoguuje izvoenje operacije unije, razlike i presjeka relacija. Naalost, ovako definirana unijska kompatibilnost omoguava semantiki besmislene operacije. Da bi se ovaj problem rjeio unijska kompatibilnost je definirana na neto drukiji nain.

    Smatramo da su dva atributa meusobno unijski kompatibilna ako su zadana na istoj domeni. Dvije relacijske sheme su unijski kompatibilne ako zadovoljavaju slijedee uvjete: - imaju isti stupanj, - izmeu dva skupa atributa, od kojih se relacijske sheme sastoje,

    postoji preslikavanje 1:1 kojim se svaki atribut jedne relacijske sheme preslikava na unijski kompatibilan atribut druge.

    Konano, Dvije relacije su meusobno unijski kompatibilne ako su zadane na unijski kompatibilnim relacijskim shemama.

    Na nekoliko primjera ilustrirat emo razliku izmeu ove dvije definicije unijske kompatibilnosti. Neka su zadane relacije osnovna-sredstva, nabava, radnik-1 i radnik-2. Ako pretpostavimo da su elementi domena na kojima su zadani atributi ODJEL i PROIZVOA istovrsni (niz znakova jednake duine), onda e se relacije osnovna-sredstva i nabava moi, prema Coddovoj definiciji, smatrati unijski kompatibilnim. Iako odjel radne organizacije ne moe biti proizvoa proizvoda, niti je proizvoa odjel radne organizacije. Ustvari, prema Coddu, sve etiri relacije mogle bi biti meusobno unijski kompatibilne. Prema drugoj definiciji, samo bi relacije radnik-1 i radnik-2 bile unijski kompatibilne s obzirom na to da su atributi MJESTO- RO i MJESTO-BOR zadani na istoj domeni.

    osnovna-sredstva(ODJEL STAVKA) ERC TERMINAL ERC PRINTER ERC MIKRORAUNALO FOTO KAMERA VIDEO VIDEO KAMERA

    nabava (STAVKA PROIZVOA) TERMINAL IBM PRINTER IBM PC EPSON TV PHILIPS FILM KODAK radnik-1 ( IME MJESTO-RO ) DARKO ZAGREB MARKO VARADIN ARKO ZAGREB

    radnik-2 ( MJESTO-BOR IME ) LJUBLJANA DARKO VARADIN MARKO ZAGREB ARKO

  • 34

    6.1.1. Unija Operaciju unije, dviju unijski kompatibilnih relacija, r (R) i s (S) oznaavamo s

    rs. Rezultat ove operacije je skup n-torki sadranih u relaciji r, relaciji s ili u obadvije. Simboliki to moemo izraziti na slijedei nain:

    r s = {t: tr s } U izvoenju operacije mogu se javiti neki problemi. Ako su relacije r i s

    zadane na istoj relacijskoj shemi (tj. R = S), redoslijed stupaca se moe razlikovati. Da bi definirali redoslijed koji elimo u rezultatu, morat emo uskladiti ova dva redoslijeda

    U sluaju da su relacije r i s zadane na razliitim, unijski kompatibilnim relacijskim shemama (tj. R S), pored usklaivanja redoslijeda stupaca bit e potrebno uskladiti i nazive unijski kompatibilnih atributa.

    Primjer Na dvije unijski kompatibilne relcije r (R) i s(S) ilustrirat emo operaciju unije i

    probleme koji se mogu javiti. a) Vrijedi R = S i redoslijed atributa je usklaen: r (A B C ) s(A B C) g h 1 g h 1 k l 2 g l 4 k h 3

    r s = (A B C) g h 1 k l 2 k h 3 g l 4 Vrijedi R = S, ali redoslijed atributa nije usklaen: r (A B C ) s (C A B) g h 1 1 g h k l 2 4 g l k h 3

    Prije izvoenja operacije potrebno je uskladiti redoslijed atributa u relaciji s s redoslijedom u relaciji r.

    s(A B C) g h 1 g l 4 Rezultat operacije, koja se nakon toga izvodi, jednak je rezultatu u

    prethodnom sluaju. b) Vrijedi R S, DOM(A)=DOM(D), DOM(B)=DOM(E), i DOM(C)=DOM(F): r (A B C ) s (D E F) g h 1 g h 1 k l 2 g l 4 k h 3

    Prije izvoenja operacije potrebno je uskladiti nazive atributa u relaciji s s na-zivima u relaciji r. Rezultat operacije jednak je rezultatu dobivenom u prethodna dva sluaja.

  • 35

    Operacija unije ima dva svojstva na koja emo se osvrnuti s nekoliko rijei. Prvo od tih svojstava je komutativnost, operandi mogu zamijeniti mjesta a rezultat operacije e ostati isti:

    r s = s r

    Pored toga, unija je asocijativna. Neka su relacije p, r i s meusobno unijski kompatibilne. Redoslijed kojim emo izvesti operacije unije, nee utjecati na rezultat:

    (p r) s = p (r s ) Zahvaljujui asocijativnosti, izostavljanje zagrada nee dovesti do

    nesporazuma:

    (p r) s = p r s Pored toga, binarnu operaciju unije moemo proiriti na n-arnu kod koje

    operator operacije piemo kao prefiks, a operande navodimo u zagradi koja slijedi: p r s = (p, r , s ) 6.1.2. Razlika Kao i u sluaju unije relacija, i kod operacije razlike relacija postavlja se uvjet

    da operandi budu unijski kompatibilni. Razlika izmeu dvije unijski kompatibilne relacije r(R) i s(S) oznaava se kao r-s.

    Rezultat operacije je relacija zadana na relacijskoj shemi R, odnosno na relacijskoj shemi prvog operanda i obuhvaa sve n-torke sadrane u relaciji r, koje nisu sadrane u relaciji s, tj.:

    r s = { t: t r t s } Primjer Neka su r(R) i s(S) dvije unijski kompatibilne relacije i neka vrijedi R = S: r ( A B C ) s ( A B C ) g h 1 g h 1 k l 2 g l 4 k h 3

    r s = ( A B C) s r = ( A B C ) k l 2 g l 4 k h 3

    Kao i u sluaju operacije unije, bit e korisno da se prije izvoenja operacije razlike usklade redoslijedi i nazivi kompatibilnih atributa.

    Razlika relacija je binarna operacija, a rezultat operacije je relacija koja je podskup prvog operanda. Kao to iz primjera vidimo, razlika nije komutativna, tj. vrijedi:

    r s s r

    Isto tako, razlika nije asocijativna operacija. Za tri meusobno unijski kompatibilne relacije p, r, i s vrijedi:

    (p r ) s p ( r s )

    to proizlazi iz injenica: (p r ) s = p ( r s ) i r s r s

  • 36

    6.1.3. Kartezijev produkt Kartezijev produkt dviju relacija r (R) i s (S) oznaavamo ovako: r X s.

    Rezultat ove operacije je skup n-torki koje su nastale kao rezultat operacije spajanja svake pojedine n-torke sadrane u relaciji r sa svakom pojedinom n-torkom relacije s, tj.:

    r X s = { (tr ^^^^ ts): tr r ts s Rezultat ove operacije moe, ali ne mora biti relacija. Ako je presjek skupa

    atributa relacijskih shema R i S prazan skup, Kartezijev produkt je relacija. Relacijska shema na kojoj je ta relacija zadana unija je skupova atributa relacijskih shema R i S. U sluaju da presjek skupova atributa relacijskih shema R i S nije prazan skup, rezultat operacije Kartezijev produkt nije relacija. Relacijska shema na kojoj bi ta relacija bila zadana sadravala bi po dvije kopije svih atributa koji se nalaze u presjeku relacijskih shema R i S. S obzirom na to da je relacijska shema definirana kao skup atributa, a skup po definiciji ne sadri kopije, takva shema nije dozvoljena. Rezultat, prema tome, nije relacija.

    Primjer Neka su r (R) i s(S) relacije na relacijskim shemama R i S.

    a) Neka vrijedi R S = . Kartezijev produkt r X s je relacija: r( A B ) s( C D ) d 1 g h e 2 k c f 1

    r X s = ( A B C D ) d 1 g h d 1 k c e 2 g h e 2 k c f 1 g h f 1 k c

    b) Neka vrijedi R S . Kartezijev produkt r X s nije relacija. r( A B ) s( B C ) d 1 3 g e 2 4 h f 1

    r X s = ( A B C D ) d 1 3 g d 1 4 h e 2 3 g e 2 4 h f 1 3 g f 1 4 h

    Kartezijev produkt relacija, kao uostalom i prethodne dvije operacije, neto je modificiran u odnosu na Kartezijev produkt skupova. Elementi Kartezijevog produkta skupova su ureene n-torke. Elementi Kartezijevog produkta relacija su n-torke. S obzirom na to da redoslijed stupaca u relaciji nije bitan, redoslijed vrijednosti atributa

  • 37

    u n-torkama Kartezijevog produkta relacija se moe mijenjati, za razliku od redoslijeda lanova u ureenoj n-torki.

    Iz ovoga dalje slijede razlike izmeu Kartezijevog produkta relacija i Kartezijevog produkta skupova. Za razliku od Kartezijevog produkta skupova, Kartezijev produkt relacija je komutativan. Kao to je spomenuto, elementi Kartezijevog produkta skupova su ureene n-torke u kojima je redoslijed lanova bitan. Budui da je taj redoslijed odreen redoslijedom operanada nad kojima se oprecija izvodi, oigledno Kartezijev produkt skupova ne moe biti komutativan.

    Kartezijev produkt relacija je asocijativan. Zahvaljujui asocijativnosti, mogue je binarnu operaciju definirati kao n-arnu. Neka su p, r, i s relacije. Njihov Kartezijev produkt oznaavamo ovako:

    X( p, r, s ) tj. operator piemo kao prefiks, a operande nad kojima se operacija izvodi zatvaramo u zagrade koje slijede iza operatora.

    6.1.4. Projekcija Projekcija je unarna operacija kojom se iz dane relacije izdvajaju pojedini

    stupci. Neka su X i Y skupovi atributa i neka vrijedi YX. Neka je r(X) relacija zadana na skupu atributa X. Projekciju relacije r na skup atributa Y oznaavamo s piY(r). Rezultat te operacije je relacija zadana na skupu atributa Y, tj.:

    pipipipiy(r) = { t[Y]: YX t r } Primjer Neka je r(R) relacija na relacijskoj shemi R i neka relacijska shema sadri

    atribute A, B, i C. Projekcija relacije r na atribute A i B bit e: r( A B C ) a 2 f ( A B ) b 1 g a 2 piAB(r) = ( A B ) a 2 g b 1 a 2 c 3 f a 2 b 1 c 3 c 3

    Pogledajmo jo nekoliko, od vie moguih, projekcija relacije r : piA(r) = ( A ) piBC(r) = ( B C ) piABB(r) = ( A B B ) a 2 f a 2 2 b 1 g b 1 1 c 3 f c 3 3

    Kao to iz primjera vidimo, projekcija moe sadravati dvije ili vie kopija istog stupca pa, moe, ali ne mora biti relacija.

    6.1.5. Selekcija Selekcija ili restrikcija, kako se ponekad naziva, unarna je operacija kojom se

    iz relacije izdvaja odreeni podskup n-torki. U okviru naredbe selekcije mora biti definiran uvjet, ili kriterij na osnovi kojeg se izvodi izdvajanje n-torki. Neka je r(R) relacija na kojoj treba izvesti selekciju. Neka je F uvjet selekcije. Svaka n-torka sadrana u r, koja zadovoljava F, bit e ukljuena u skup koji je rezultat operacije. Operator selekcije oznaavamo sa . Selekciju na relaciji r, prema uvjetu F, piemo kao F(r). Selekciju moemo definirati pomou izraza:

    F(r) = { t : t r t zadovoljava F )

  • 38

    Kriterij selekcije moe biti jednostavan ili sastavljen. Jednostavan kriterij ima oblik tvrdnje i sastoji se od dva operanda i (theta) operatora. operator moe biti bilo koji od operatora za usporedbu skalara (=, , , ). Operandi, ije vrijednosti se usporeuju, mogu biti atributi relacije nad kojom se selekcija izvodi ili atribut i konstanta. Konstanta se navodi s desne strane operatora i zadana je vrijednost atributa navedenog s desne strane.

    Primjer Neka je r(R) relacija, neka su A i B atributi u R i neka je aDOM(A) i

    bDOM(B). operator moe, kao to smo rekli, kao operande imati atribute relacijske sheme R:

    A B

    ili atribut i konstantu:

    A a B b

    Sastavljeni kriterij sastoji se od dva ili vie jednostavnih kriterija koji su meusobno povezani logikim operatorima (, , ). Povezivanjem jednostavnih kriterija oblikuje se sastavljeni kriterij:

    A B A a B b

    Pogledajmo sada nekoliko primjera selekcije. Prim