baze podataka - lekcija 01.pdf

Upload: asxov

Post on 04-Jun-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 baze podataka - lekcija 01.pdf

    1/16

    BAZE PODATAKA

    CILJEVI LEKCIJE

    1. Upoznati se sa znaenjem termina "baza podataka".

    2. Upoznati se sa pojmom "sistem za upravljanje bazama podataka" (DBMS), njegovim tipinimfunkcijama.

    3. Upoznati namenu "modela podataka".

    4. Upoznati se sa osnovim konceptima relacionog modela podataka

    Moderne kompanije i institucije poseduju razliite elektronske (raunarske, informacione) sisteme koje koristekao podrku u procesu obrade informacija, koje nastaju kako unutar samog sistema tako i onih koji dolaze

    spolja. Takvi informacioni sistemi obezbeuju kako osoblju tako i spoljnim korisnicima (kupci, dobavljai,agencije i sl) da pristupe informacijama kompanije sa razliitim nivoima prioriteta i prava pristupa. Takvisistemi mogu da budu sistemi za upravljanje dokumenata, sistemi za upravljanje projektima, e-mailing sistemi,intranet, internet stranice i sl. Takvi sistemi imaju jedan neizostavan deo - sistembaza podataka, koja uva sveinformacije koje se obrauju i obezbeuje pristup tim informacijama. Baze podataka su kljuna komponentakod standardnih informacionih sistema, ali i e-komerc i drugih Web zasnovanih aplikacija. Koriste ihoragnizacije i preduzea od onih najmanjih do globalnih korporacija i milioni korisnika.

    Neophodno predznanje

    1. Rad u Windows okruenju

    2. Osnovno znanje o korienju Excel i drugih Office alata

    3. Poznavanje pojmova podatak", tabela", informacioni sistem" i sl.

    TA JE SISTEM BAZA PODATAKA?

    Sistem baza podataka

    Sistem baza podataka sadri 4 osnovne komponente (slika 1):

    (1) korisnici,

    (2) aplikacija nad bazom podataka,

    (3) sistem za upravljanje bazama podataka (Database Management System - DBMS), i(4) baza podataka.

  • 8/14/2019 baze podataka - lekcija 01.pdf

    2/16

    Slika 1. Komponente sistema baza podataka

    TA JE BAZA PODATAKA?

    Baza podatakapredstavlja kolekciju meusobno povezanih podataka koji su organizovani u tabele i druge

    strukture podataka, a koriste za jednu ili vie aplikacija.

    Osnovna namena baze podataka je da bude repozitorijum (skladite) za podatke. Podaci mogu biti razliitogtipa, tekstualni, numeriki, slike, audio i video zapisi i sl.

    Podaci u bazi podataka se uvaju tako da je unos novih podataka, kao i itanje i pretraivanje postojeih, jejednostavno, efikasno i ako je mogue, bez greaka.

    Iz definicije" baze podataka vidi se da je ona kolekcija meusobno povezanih podataka organizovanih utabele. U ovoj definiciji" dve su injenice od znaaja - organizacija podataka u tabele i njihova meusobnapovezanost.

    Podaci u bazama podataka su organizovani u dvodimenzionalnetabele. Tabela moe da ima vie kolona, gdesvaka kolona predstavlja neku osobinu ili atribut. Vrstetabele ine konkretni podaci, odnosno konkrentevrednosti osobina/atributa nekog objekta.

    Na primer, jedna tabela moe da sadri informacije o uenicima. Kolone tabele mogu da definiu ime, prezime,godinu roenja uenika, i sl. Vrste u takvoj tabeli su uenici, tako da se svaka vrsta odnosi na jednog uenika.

    Koje e tabele da sadri baza podataka zavisi od problema za koji treba realizovati bazu podataka. Na primer,baza podataka se moe odnosti na kolu, pa e u tom sluaju tabele biti o uenicima, nastavnicima, odeljenjima,

    i sl. Postupak izbora i definisanja tabela za bazu podataka je deo procesa modeliranja odnosno izgradnjemodela podataka. Model podataka je detaljno objanjen u sekciji nakon sekcije o DBMSu.

    Meusobna povezanost podatakaje ono po emu se baza podataka razlikuje u odnosu na fajl sisteme(datoteke) i programe za unakrsna izraunavanja ko to je Excel. Povezanost podataka obezbeuje znaajneprednosti kod pretraivanja kada korisnik moe da na osnovu veza izvue mnogo vie podataka. Na primer, akopostoji tabela koja uva podatke o uenicima i tabela sa podacima o odeljenjima, veza izmeu uenika iodeljenja moe da obezbedi da odgovarajuim zahtevom (SQL upitom) izvuete sve uenike eljenogodeljenja.

    Baza podataka sadri i tzv. metapodatke, odnosno podatke o samoj strukturi baze podataka. Metapodaci mogu

    da se odnose na imena tabela, imena kolona u svakoj tabeli, na podatke o korisnicima podataka, kao i raznimpomonim strukturama koje obezbeuju brz prstup podacima (indeksi).

  • 8/14/2019 baze podataka - lekcija 01.pdf

    3/16

    TA JE SISTEM ZA UPRAVLJANJE BAZAMA PODATAKA (DBMS)?

    Softverski sistem koji omoguava korisnicima definisanje, auriranje i kontrolu pristupa bazi podataka nazivase sistem za upravljanje bazama podataka(eng.Database Management System-DBMS). DBMS obinonudi:

    Jezik za opis podataka (eng. Data Definition Language - DDL), kojiomoguava korisnicimadefinisanje tipa i strukture podataka, kao i ogranienja nad podacima memorisanim u bazi podataka

    (naredne lekcije - CREATE TABLE naredba). Jezik za manipulaciju podacima(eng. Data Manipulation Language - DML), koji omoguava

    korisnicima umetanje, auriranje, brisanje i pretraivanje podataka iz baze podataka (naredne lekcije -SELECT, INSERT INTO, UPDATE naredbe).

    Jezik za definisanje naina memorisanja podataka (eng. Storage Definition Language - SDL), koji sekoristi za specificiranje interne eme baze podataka.

    Kontrolisani pristup bazi podataka, to ukljuuje razliite funkcije i mehanizme za pristup podacimau bazi podataka

    FUNKCIJE DBMSA

    DBMStreba da obezbedi sledee funkcije za kontrolisani pristup podacima u bazi podataka:

    Sigurnosni sistem, koji onemoguava pristup bazi podataka neautorizovanim korisnicima (sigurnosniservisi), odnosno samo autorizovani korisnici mogu da koriste podatke u skladu sa definisanimprivilegijama (autorizacioni servisi)

    Integritetni sistem, koji odrava konzistentnost podataka u bazi podataka, odnosno da se sve promenedeavaju u skladu sa definisanim pravilima.

    Sistem za kontrolu konkurencije, koji doputa deljivi pristup podacima iz baze podataka, tj da seobezbedi korektno auriranje podataka kada vie korisnika pokuava istovremeno da vri auriranja.

    Sistem za kontrolu oporavka baze podataka, koji omoguava rekonstrukciju prethodnogkonzistentnog stanja u sluaju neke hardverske ili softverske neispravnosti.

    Katalogkome korisnici mogu pristupati, koji sadri opis podataka koji su memorisani u bazi podataka. Podrka za transakcije, koja obezbeuje korektno izvravanje niza transakcija koje mogu biti

    meusobno zavisne; transakcija je skup operacija upisa i itanja iz baze podataka koji se tretira kaocelina tj ima svoj poetak i kraj.

    Razne korisnike funkcije,kao to su import, eksport podataka, statistike analize, funkcije zanadgledanje,...

    Izbor DBMSa

    Danas na tritu postoji veliki broj proizvoaa DBMSa koji nude sistema razliitih performansi i koji sunamenjeni razliitim segmentima trita. Koji DBMS ete izabrati zavisi od tipa i veliine problema koji trebada reite realizacijom aplikacije. U narednoj sekciji dat je kratak prikaz tipova sistema baza podataka.

    TIPOVI SISTEMA BAZA PODATAKA

    Tehnologija baza podataka se moe koristiti za veliki broj aplikacija. Praktino danas skoro i da ne moete darealizujete aplikaciju koja ne koristi neki sistem baza podataka za uvanje podataka - bez obzira da li se radi ostandardnim desktop aplikacijama, kao to su knjigovodstvene aplikacije, sistemi za upravljanje dokumentima,sistemi za banke, i sl, ili se radi o modernim Web aplikacijama koje obezbeuju sloenu funkcionalnost u

  • 8/14/2019 baze podataka - lekcija 01.pdf

    4/16

    distribuiranom okruenju, od on-line kupovine do raznih socijalnih mrea i sl. U zavisnosti od aplikacije,zahtevi prema bazi podataka mogu znaajno da se razlikuju.

    Jedan granini sluaj je da vam treba aplikacija za evidenciju kunih trokova. U tom sluaju ona obino sadrisamo nekoliko tabela, gde svaka tabela moe da ima samo nekoliko stotina vrsti. Aplikaciju, a samim tim i bazupodataka, koristite samo vi, odnosno samo jedan korisnik. Za takve sisteme se obino koristi naziv personalnisistemi baza podataka. Naravno, ovakvi sistemi mogu da se primene i na mnogo sloenije aplikacije odevidencije kunog budeta. Na primer, mogu da pokriju i poslovane manjeg preduzea, ili da podre rad nekog

    Web sajta.

    S druge strane, ako imate veliku kompaniju koja ima vie organizacionih jedinica, gde svaka od njih imasopstvene poslovne procese, neophodna vam je podrka sistema baza podataka koji moe da obezbedi uvanje ipretragu velike koliine informacija na vie distribuiranih lokacija. Takvi sistemi sadre veliki broj tabela, aneke od njih mogu da imaju i nekoliko stotina hiljada vrsta i vie. Podacima moe konkurentno da pristupaveliki broj korisnika. Takvi sistemi obino moraju da rade 24 asa dnevno, 7 dana u nedelju. Takvi sistemi supoznati kao enterprise sistemi baza podataka.

    Komponente personalnog sistema baza podataka su prikazane na slici 2.

    Slika 2. Personalni sistem baza podataka

    Na slici 3. prikazan je enterpise sistem baza podataka. Zanimljivo je da su na slici prikazane aplikacije razvijane u

    razliitim jezicima: Java, C#, H!" i $%.N&. akve aplikacije koriste velike '(!$ sisteme za upravljanje bazom

    podataka. Nem arobnjaka ili slini) alata da pomo*nu u razvoju takvi) sistema. %ro*rameri moraju da napi+u kod koji

    e da obezbedi pristup i pretra-ivanje podataka kori+enjem unkcija '(!$a

    Slika 3.Enterprisesistem baza podataka

  • 8/14/2019 baze podataka - lekcija 01.pdf

    5/16

    MODELI PODATAKA

    U procesu razvoja baze podataka najpre se formira model realnog sistema, tako to se izaberu znaajnekarakteristike sistemakoje se predstavljaju modelom.

    Postoji mnogo razliitih mogunosti da se modelira sistem. U fazi modeliranja zadatak projektanta bazepodataka je da otkrije funkcije koje sistem mora izvravati, podatke koje mora pamtiti i obraivati, informacijekoje mora obezbeivati za potrebe korisnika, sekvence u kojima se funkcije moraju izvravati i u kojima se

    moe pristupati podacima. Deo modela sistema koji se odnosi na podatke naziva se model podataka.

    VANOIzabrani entiteti e kasnije u bazi podataka biti predstavljeni tabelama. Zbog toga pogledajte paljivonaveden objekte poto mogu da vam budu dobar vodikod izbora entiteta!

    Svaki objekat, odnosno entitet, poseduje neka svojstva. Na primer, entitet "vozilo" ima vlasnika, registarski

    broj, datum registracije, godinu proizvodnje, proizvoaa, marku, boju, tip motora, i dodatnu opremu. Svojstvaili atributi objekta e biti predstavljena kolonamau odgovarakuoj tabeli.

    Objekti meusobno mogu biti povezanirazliitim odnosima odnosno relacijama. Svaka takva relacija moe daposeduje posebna svojstva. Relacije se mogu iskoristiti kod pretraivanja meusobno povezanih podataka, naprimer, kod pretraivanja podataka o registrovanim vozilima i njihovim vlasnicima. Vie detalja o nainupovezivanja podataka iz tabela pogledajte u sekciji koja se odnosi na kljueve relacija, konkretno na stranekljueve i ouvanje integriteta.

    VANOIzborom objekata, definisanjem njihovih svojstava i prepoznavanjem veza izmeu objekata, izvrili smomodeliranje dela realnog sveta koji predstavlja na problem!

    RELACIONI MODEL PODATAKA

    ZanimljivostiRelacioni model je svakako najpopularniji i najrasprostranjeniji model podataka danas i

    predstavlja osnovu za relacione baze podataka koje dominiraju na tritu. Relacione bazepodataka dominiraju na tritu veskoro 40 godina!

    Relacioni model je predloio E.F. Codd 1970 godine, dok je radio u IBMu.

    System R je prvi sistem koji je koristio relacioni model, nakon toga IBM je implementirao svojsistem poznat kao DB2. Nakon toga je Oracle realizovao svoj sistem zasnovan na ovommodelu,... i sve ostalo je istorija.

    Relacija, kao osnovni koncept relacionog modela je zapravo matematika relacija, i imajednostavnu reprezentaciju u obliku tabele sa podacima.

    Osnove relacionog modela

  • 8/14/2019 baze podataka - lekcija 01.pdf

    6/16

    Relacioni model ima snanu teorijsku osnovu, koja se zasniva na matematikoj teoriji relacija i na logici prvogreda, i za korisnika vrlo prihvatljivu reprezentaciju u vidu dvodimenzionalne tabele.

    Relacioni model oslobaa korisnika frustracija oko rukovanja podacima na niskom nivou, zalaenja u detaljesmetanja podataka i metodama pristupa iz korisnikog interfejsa. Relacioni model obezbeuje sredstva za opispodataka sa njihovom prirodnom strukturom, bez dodatnih struktura za potrebe mainske reprezentacije. Ovajmodel daje osnovu za jezik visokog nivoa za pristup podacima koji obezbeuje maksimalnu nezavisnostizmeu programa, s jedne strane, i mainske reprezentacije, s druge strane.

    U relacionom modelu podataka relacije se koriste za uvanje informacije o objektima koje treba predstaviti ubazi podataka. U fazi projektovanja baze podataka, za konkretan problem, treba najpre prepoznati objekterealnog sveta (entiteti) za koje treba uvati podatke i prepoznati njihove atribute. Svaki takav objekatpredstavlja se relacijomu relacionom modelu.

    Atributisu zajednike osobine koje poseduju svi entiteti jednog skupa entiteta. Iz skupa atributa entiteta zapotrebe konkretnog informacionog sistema bira se samo odreeni podskup. Poto se entiteti odnosno objektirealnog sveta predstavljaju relacijom, atributi predstavljaju svojstva te relacije. Poto je relacija predstavljenatabelom, atributi predstavljaju kolonete tabele. Svaka relacija predstavlja skup torki, gde se svaka torka odnosina konkretan entitet iz skupa entiteta. U tabelarnom prikazu relacije, vrstetabele su podaci o konkretnim

    entitetima, odnosno torke, tako da atribut za svaki konkretni entitet iz skupa entiteta poseduje odreenuvrednost.

    Skup vrednosti koje neki atribut moe uzimati zovemo domen atributa. Praktino, svaki atributu relaciji jedefinisan nad nekim domenom. Koncept domena je vrlo vaan. Omoguava korisniku da definie na jednomcentralnom mestu znaenje i izvor vrednosti koje atribut moe uzimati. Svaki domen atributa se definie: tipompodataka, duinom podataka i opsegom vrednosti.

    NULL VREDNOSTI ATRIBUTA

    Atributi uzimaju vrednosti iz odgovarajueg domena koji im je dodeljen, to u praksi znai da e vrednosti utabeli za neku kolonu da budu onog tipa podataka koji smo izabrali za tu kolonu.

    Meutim, DBMS dozvoljava da atribut nema dodeljenu vrednostm to podrazumeva korienje tzv NULLvrednosti. Ova specijalna vrednost se mora uvesti zato to u odgovarajuu eliju tabele treba da stoji nekavrednost da bi pretrage i analize radile.

    NULL vrednost moe da ima dva znaenja:

    Vrednost atributa za posmatrani entitet ne postoji ili jo uvek nije poznata. Na primer, za radnika koji jetek treba ili je tek poeo da radi vrednost atributa prethodni radni sta nije poznata.

    Vrednost atributa za posmatrani nije primenjiva. Na primer, ako za relaciju RADNIK imamo atributFAKULTET u kome se uva naziv fakulteta koji je radnik zavrio, svi radnici sa srednjom kolskomspremom e imati NULL vrednost za taj atribut.

  • 8/14/2019 baze podataka - lekcija 01.pdf

    7/16

    PREGLED OSNOVNIH KONCEPATA RELACIONOG MODELA PODATAKA

    VANO

    Relacija se u bazi podataka predstavlja dvodimenzionalnom tabelom, gde vrste odgovaraju pojedinimslogovima, a kolone atributima. Atributi se mogu pojavljivati u bilo kom redosledu u tabeli. Redosled vrstatabele takoe nije bitan. Svaka tabela, kao i svaka kolona u tabeli imaju ime.

    Osnovni koncepti relacionog modela podataka su:

    Relacija

    Relacija odgovara pojmu tabela sa vrstama i kolonama.

    Atribut relacije

    Predstavlja osobinu entiteta predstavljenog relacijom. Atribut je praktino imenovana kolona relacije odnosnotabele, koje se odnose na svojstva objekta predstavljenog relacijom.

    Domen atributa

    Domen je skup dozvoljenih vrednosti za jedan ili vie atributa. Praktino se odnosi na tip podatka za kolonu.

    Torka relacije

    Torka je vrsta relacije i odnosi se na jedan slog podataka.

    Stepen relacije

    Broj atributa relacije (unarna, ako ima jednu kolonu, binarna sa dve kolone i sl)

    Kardinalnost relacije

    Broj vrsta (torki) relacije.

    ema relacije

    ema relacije je opis relacije. Sadri ime relacije, imena atributa i domene atributa.

    Relaciona baza podataka

    Kolekcija normalizovanih relacija.

    ema relacione baze podataka

    Skup ema relacija, pri emu svaka ima razliito ime.

    Oigledno je da je relacija u relacionom modelu, odgovara pojmu tabela u bazi podataka. U svetu bazapodataka, obino se koriste jedni termini kada se govori o relacionom modelu, a drugi kada se govori o bazipodataka, odnosno implementaciji relacionog modela. Uporedni prikaz termina i njihovog znaenja dat je naslici 4.

  • 8/14/2019 baze podataka - lekcija 01.pdf

    8/16

    SVOJSTVA RELACIJE

    Relacija ima sledea svojstva:

    Svaka relacijaima ime koje se razlikuje od imena svih ostalih relacija u emi relacione baze podataka,

    Svaka elija tabele (odreena vrstom i kolonom) kojom je relacija predstavljena sadri samo jednuatominu (prostu) vrednost,

    Svi atributijedne relacije imaju razliito ime,

    Sve vrednostijednog atributasu iz istog domena,

    Sve torkerelacije su razliite, tj. u relaciji ne postoje duple torke,

    Redosled atributa u relaciji nemaznaaja, i

    Redosled torki u relaciji teoretski nema znaaja, ali praktino redosled torki u relaciji moe uticati na

    efikasnost pristupa torkama!

    Primer

    Recimo da RADNIK predstavlja skup radnika nekog preduzea (entiteta, tj objekata iz realnog sveta).RADNIK je relacija u relacionom modelu koju predstavljamo tabelom u koju emo da uvamo sve radnike. Zaradnike treba uvati informacije o imenu, prezimenu, matinom broju, adresi stanovanja i plati sve ovo susvojstva/osobine koje su nam vane i koje smo izabrali da ih predstavimo atributima relacije, odnosno to sunam kolone u tabeli. Svaka vrsta te tabele se odnosi na konkretnog radnika. U reenju narednog zadatka, dat jeizgled tabele koja odgovara relaciji RADNIK.

    ZADATAK 1

    Izbor relacija

    Ako je neophodno projektovati bazu podataka koja se odnosi na preduzee, prepoznati entitete i

    njihova svojstva, koje ete predstaviti relacijama u relacionom modelu, odnosno tabelama u bazipodataka.

  • 8/14/2019 baze podataka - lekcija 01.pdf

    9/16

    Reenje

    Pretpostavimo da preduzee ima vie radnika, i za svakog od njih treba uvati informacije: ime, matinibroj, struna sprema, datum roenja, pol, plata, adresa. Neka je preduzee organizovano u sektore(sektor ima naziv, broj).

    Podaci o radnicima preduzea se mogu predstavljaju relacijom/tabelom RADNIK sa atributima LIME

    (lino ime), SSL (srednje slovo), PREZIME, MBR (matini broj), DATRODJ (datum roenja), POL,PLATA i ADRESA. Nie je prikazana jedna instanca relacije RADNIK (tabela RADNIK) i jednainstanca relacije ODELJENJE (tabela SEKTOR).

    RADNIK

    LIME SSL PREZIME MBR DATRODJ POL PLATA ADRESAIvana S Goci 123456 15-10-87 17000 Nika 4Milan I Savi 234567 01-03-57 M 32000 Humska 2Ana P Rodi 666777 03-12-50 27000 Savska 34Pera K Kosti 555333 31-12-53 M 43000 airska 3

    SEKTORNAZIV $(/0J

    Projektovanje 40

    Razvoj 50

    Proizvodnja 60

    Dodatni zadatakOvo je delimino reenje zadatka. Prepoznati ostale potenijalne relacije i njihove atribute!!

    ZADATAK 2

    Domeni atributa

    Identifikovati domene atributa relacije RADNIK iz prethodnog primera.

    Reenje

  • 8/14/2019 baze podataka - lekcija 01.pdf

    10/16

    Domeni nekih atributa relacije RADNIK su prikazani u sledeoj tabeli:

    Atribut Domen Znaenje Definicija domena

    LIME Imena Osoba$kup mo*ui) imena osoba Niz karaktera, duine do 15.

    PREZIME Prezime Osoba Skup moguih prezimena osoba Niz karaktera, duine do 15.

    MBR Maticni Broj Skup mogunih matinih brojeva radnika Celi brojevi, napr. opsega 111111-999999*

    DATRODJ Datum Rodjenja Mogue vrednosti za datume roenjazaposlenih u preduzeu

    Datum, opseg, od 01-JAN-44 nadalje

    POL Pol Pol radnika Karakter (1), vrednost M i

    PLATA PlataRadnika Mogue vrednosti plata radnika Broj, opseg od minLDdo 40000.00, gde jeminLDminimalni republiki lini dohodak

    ADRESA AdresaRadnika Mogue adrese radnika preduzea Niz karaktera (30)

    Dodatni zadatakIdentifikovati domene atributa relacije SEKTOR!!

    KLJUEVI RELACIJE

    Da bismo jedan entitet jednoznano identifikovali u posmatranom skupu entiteta on mora posedovati nekosvojstvo, ili kombinaciju od nekoliko svojstava, takvu da vrednost tog ili tih svojstava jednoznano odreujusvaku pojavu tog tipa entiteta. Takva svojstva nazivamo karakteristinim, a njihove vrednosti koristimo kaoidentifikator entitetaunutar skupa.

    Na primer, skup entiteta RADNIK predstavljamo relacijom/tabelom gde svaka vrsta odgovara jednom entitetu,odnosno predstavlja jednog konkretnog radnika. U tom sluaju neophodno je prepoznati svojstva (atribute) kojemoemo da koristimo za identifikaciju radnika unutar skupa radnika.

    U relacionom modelu podataka atribut ili skup atributa ije vrednosti predstavljaju identifikator entiteta (torke urelaciji) nazivamo kljuem relacije. Takvi atributi se nazivaju kljuni atributi.

  • 8/14/2019 baze podataka - lekcija 01.pdf

    11/16

    Ako relacija ne poseduje atribut ili skup atributa koji je identifikuju, tada se uvodi specijalni identifikacioniatribut - kljusurogat, koji se obino oznaava sa ID.

    U relacionom modelu podataka postoji vie termina koji se koriste za relacione kljueve, to e nie bitiuvedeno.

    TerminologijaKlju

    Poto su sve torke relacije razliite, u relaciji mora postojati atribut ili skup atributa (tzvkompozitni klju kljuod vie atributa), nazvani relacioni kljuevi ili kljuevi relacije, koji na

    jedinstven nain identifikuje svaku torku relacije.

    Primarni klju

    Kljukandidat koji je odabran da na jedinstven nain identifikuje torke unutar relacije.

    Kljusurogat

    Identifikator koji je dodat relaciji kao primarni klju, zato to relacija nema odgovarajui atributili skup atributa koji moe biti primarni kljurelacije.

    Spoljni klju/ Strani klju

    Atribut ili skup atributa jedne relacije koji se uparuje sa kljuem kandidatom neke druge ili isterelacije. Vaan za ostvarivanje meusobnih veza izmeu tabela!!!

    ZADATAK 3

    Kljurelacije

    Identifikovati primarne kljueve relacija RADNIK i SEKTOR iz prethodnog primera.

    Reenje

    Primarni kljuu relaciji SEKTOR je broj sektora, odnosno atribut SBROJ, zato to na jedinstven nainidentifikuje svaki sektor u preduzeu (ne mogu da postoje dva sektora sa istim brojem). Kljukandidat(i potencijalni primarni klju) u ovoj relaciji moe biti i naziv sektora, uz pretpostavku da sektori nemogu da imaju ista imena. U relaciji RADNIK primarni klju je oigledno matini broj radnika. Kodradnika se moe identifikovati i potencijalni kompozitni klju kandidat, na primer od kombinacijeatributa ime (ime, srednje slovo i prezime zajedno) i datuma roenja. Naravno, ovakav klju se moe

    izabrati ako ne postoji neki oigledniji i jednostavniji kao to je u ovom sluaju matini broj.

    U relaciji RADNIK atributi BRSEK i MATBRS su spoljni kljuevi. Prvi je primarni kljuu matinojrelaciji SEKTOR, a drugi je primarni klju u relaciji RADNIK. Relacija SEKTOR ima spoljni klju

  • 8/14/2019 baze podataka - lekcija 01.pdf

    12/16

    MATBRR koji je primarni klju u relaciji RADNIK. U relaciji SEKTOR atribut NAZIV je kljukandidat, ako vai pravilo da u preduzeu nepostoje dva ili vie sektora sa istim imenima.

    RELACIONI INTEGRITET

    U prethodnim odeljcima smo ukratko prikazali strukturnu komponentu relacionog modela podataka. U ovomodeljku emo se upoznati sa integritetnom komponentom. Ve smo ukazali da se za svaki atribut u relacijivezuje odreeni domen. Ustvari radi se o domenskim ogranienjima (eng. domain constraints), kojima seograniava skup dozvoljenih vrednosti atributa relacije.

    Postoje jo dva pravila integriteta, poznata kao integritet entiteta (eng. entity integrity) i referencijalniintegritet(eng. referential integrity), koja ograniavaju ili zabranjuju pojave odreenih torki u relaciji.

    OgranienjaIntegritet entiteta

    Nijedan atribut primarnog kljua bazne relacije nesme imati NULL vrednost.

    Referencijalni integritet

    Ako postoji neki spoljni kljuu relaciji, njegova vrednost mora biti jednaka vrednosti kljuakandidata neke torke u matinoj relaciji ili njegova vrednost mora biti NULL.

    Referencijalni integritet je vaan kod definisanja meusobnih veza izmeu tabela.

    Ogranienja poslovanja (Business constraints, business logic)

    To su ogranienja koja definie korisnik ili administrator baze podataka, a proistiu iz pravilaposlovanja realnog sistema za koji se baza projektuje. Jedno od pravila poslovanja u preduzeu

    je da rukovodilac mora imati veu platu od svog osoblja. Drugo pravilo moe biti da radnici kojirade na lokaciji X imaju platu uveanu za 10% od radnika na istom poslu na ostalim lokacijamasektora.

    REFERENCIJALNI INTEGRITET I SPOLJNI KLJUEVI

    Jedna od osnovnih osobina relacionih baza podataka je meusobna povezanost podataka. Za ostvarivanje vezaizmeu podataka predstavljenih relacijom koriste se strani (spoljni) kljuevi. Kao to je venavedeno, stranikljupredstavlja atribut koji se uparuje sa kljuem iz neke relacije. ta to znai u praktinoj realizaciji?

    Pretpostavimo da imamo relacije RADNIK i SEKTOR, kako je to navedeno u prvom primeru, i da za radniketreba uvati informacije o sektoru u kome rade. U tom sluaju, dovoljno je da se u relaciju RADNIK dodaatribut ije vrednosti odgovaraju kljuevima u relaciji SEKTOR, tako da za konkretnog radnika ovaj atribut ima

  • 8/14/2019 baze podataka - lekcija 01.pdf

    13/16

    vrednost koja odgovara kljuu sektora u kome radnik radi. Za relaciju RADNIK koju smo imali u primeru 1,treba dodati atribut BRSEK kao spoljni kljurelacije.

    S druge strane, za SEKTOR se moe zahtevati da se uvaju informacije o rukovodiocu sektora. Rukovodioci sutakoe radnici, pa se svi podaci o njima uvaju u tabeli RADNIK. Zbog toga je dovoljno u relaciju SEKTORdodati atribut MATBRS (sa znaenjem matini broj efa) koji odgovara kljuu relacije RADNIK i uvavrednost koja odgovara efu sektora. Uz strani kljukoji predstavlja vezu mogu se uvati i druge vrednostipreko atributa veze. Na primer, uz podatak o efu sektora moe se uvati i informacija o datumu postavljanja

    tako to se doda atribut DATPOST.

    Na primeru relacija koje smo imali u primeru 1, moe se videti sadraj tabela RADNIK sa dodatim stranimkljuevimaBRSEKi MATBRS (prvi je primarni kljuu matinoj relaciji SEKTOR, a drugi je primarni kljuurelaciji RADNIK), i SEKTOR sa stranim kljuemMATBRR koji je primarni kljuu relaciji RADNIK.

    Moe se uoiti da je Ivani Goci ef radnik sa matinim brojem 66777, a to je Ana Rodi, dok je Anin efradnik sa matinim brojem 55333, odnosno Pera Kosti. Radnici Milan i Petar nemaju efove, odnosnovrednost atributa MBRS je NULL.

    Na osnovu vrednosti atributa BRSEK, vidi se da tri radnika rade u sektoru iji je broj 40 (iz tabele SEKTOR to

    je Projektovanje), a samo jedan u sektoru sa brojem 60 (iz tabele SEKTOR to je Proizvodnja).

    RADNIK

    LIME SSL PREZIME MBR DATRODJ POL PLATA ADRESA MBRS BRSEK

    Ivana S Goci 123456 15-10-87 17000 Nika 4 66777 40

    Milan I Savi 234567 01-03-57 M 32000 Humska 2 NULL 60

    Ana P Rodi 666777 03-12-50 27000 Savska 34 55333 40

    Pera K Kosti 555333 31-12-53 M 43000 airska 3 NULL 40

    SEKTOR

    NAZIV SBROJ MATBR DATPOST

    Projektovanje 40 555333 15-01-2000

    Razvoj 50 NULL 01-01-99

    Proizvodnja 60 234567 01-01-97

    Navedeni primeri pokazuju kako se preko stranih kljueva mogu ostvariti veze izmeu podataka u tabelama.

    Meutim, ovakav nain povezivanja omoguava predstavljanje veza 1:1 i 1:N. Pri tome, 1 i N se odnose nakardinalnost (brojnost). Ako posmatrate vezu izmeu dve relacije, gledate najpre odnos izmeu jednog entitetaiz prve relacije i svih ostalih entiteta iz druge. Nakon toga isti postupak ponovite za drugi smer, odnosno odnos

    jednog entiteta iz druge relacije sa svim entitetima iz prve.

  • 8/14/2019 baze podataka - lekcija 01.pdf

    14/16

    Na primer, pomenuta veza izmeu relacija RADNIK i SEKTOR (odnosi se na radnike koji rade u nekomsektoru):

    RADNIK : SEKTOR

    X : Y

    -Najpre posmatramo jednog radnika i odreujemo sa koliko sektora je on u vezi. Poto jedan radnik moe

    da radi samo u jednom sektoru, kardinalnost sa strane sektora je 1:

    RADNIK : SEKTOR

    X : 1

    -Nakon toga posmatramo jedan sektor i odreujemo sa koliko radnika je u pomenutoj vezi. Jedan sektormoe da ima vie radnika, pa je kardinalnost sa strane radnika u ovoj vezi N:

    RADNIK : SEKTOR

    N: 1

    Veze tipa 1:1 i 1:N se jednostavno definiu dodavanje stranog kljua. Kod veza 1:N, strani kljuse dodaje na Nstrani (u primeru, u relaciju RADNIK se doda strani kljuiz relacije SEKTOR). Kod veza 1:1 strani kljusemoe dodati bilo kojoj relaciji, ali se obino bira ona kod koje svi entiteti uestvuju u vezi (ako takva postoji, iliproizvoljno na jednu ili drugu stranu ako ne postoji). Na primer, ako posmatramo vezu RADNIK:SEKTOR, aliu smislu rukovodioca sektora, svaki sektor ima jednog rukovodioca, i jedan radnik rukovodi samo jednimsektorom. Veza je oigledno 1:1. U tom sluaju treba izabrati dodavanje stranog kljua u relaciju SEKTOR zatoto svi entiteti iz ove relacije uestvuju u vezi, dok to nije sluaj za entitete iz relacije RADNIK (svi sektoriimaju efa, ali nisu svi radnici efovi).

    Komplikovanija situacija je ako je veza izmeu dve relacije vie-na-vie, odnosno M:N. Na primer, ako imamorelacije PREDMET koja se odnosi na predmete, i relaciju UENIK, veza izmeu njih (PREDMET:UENIK)koja definie koji uenici pohaaju odgovarajui predmet je M:N. Jedan predmet pohaa vie uenika (x:N), a

    jedan uenik ima vie predmeta (M:N). Kako predstaviti ovakvu vezu?

    Predstavljanje veza tipa M:N je jedino mogue kreiranjem nove relacije koja sadri kljueve iz obe relacije kojeuestvuju u vezi, plus eventualno dodatne atribute veze ako postoje. U primeru veze PREDMET:UENIK trebakreirati novu relaciju POHAA, koja sadri atribute: klju relacije PREDMET, klju relacije UENIK, ieventualno dodatne atribute veze. Kljute nove relacije je kombinacija atributa kljueva obe relacije.

    PREDSTAVLJANJE EMA RELACIONE BAZE PODATAKA

    Uobiajena konvencija za predstavljanje relacione eme je dijagram relacije. Svaka relacija se predstavljajednim izduenim pravougaonikom koji ima onoliko elija koliko je atributa u relaciji. Ime relacije se ispisujeiznad pravougaonika, a imena atributa u elijama, pri emu ostaje pravilo da se primarni kljupodvlai, a da se

    spoljni kljuevi piu italikom. Nie je prikazan dijagram relacione eme baze podataka PREDUZEE:RADNIK

    LIME SSLOVO PREZIME MATBR DATRODJ POL ...

  • 8/14/2019 baze podataka - lekcija 01.pdf

    15/16

    ... PLATA ADRESA MATBROJS BRSEK

    PROJEKAT

    NAZIV LOKPR BROJPR BRS

    SEKTOR

    NAZIV SBROJ MATBRR DATPOST

    CLAN_PORODICE

    MATBRRAD IME POL SRODSTVO DATRODJ

    LOK_SEKTOR RADI_NA

    BRS LOKACIJA MBR BRPR SATI

    PITANJA

    Pokuajte da odgovorite na sledea pitanja. Nakon toga pogledajte ponovo materijal u ovoj lekciji. Za svakitaan odgovor dodelite sebi 2 poena, za delimino taan 1, a za netaan 0. Pogledajte ponovo one delove lekcijeza koje ste imali 0 poena.

    1. Zato je korienje baza podataka vano?

    2. Koja je svrha baze podataka?

    3. ta je sistem baza podataka i koje su 4 osnovne komponente?

    4. ta je baza podataka?

    5. Kako su organizovani podaci u bazi podataka?

    6. ta je Sistem za upravljanje bazama podataka (DBMS)?

    7. Koje su funkcije DBMSa?

    8. Navesti tipove sistema baza podataka.

    9. ta obezbeuju modeli podataka?

  • 8/14/2019 baze podataka - lekcija 01.pdf

    16/16

    10. Na koji nain relacioni model predstavlja entitete (objekte realnog sveta)?

    11. ta je relacija, a ta su atributi relacije?

    12. ta je domen atributa?

    13. Koje znaenje imaju NULL vrednosti atributa?

    14. Navesti osnovne koncepte relacionog modela podataka?

    15. Navesti svojstva relacije.

    16. Koja je uloga primarnog kljua relacije?

    17. Navesti vrste kljueva koji mogu da postoje?

    18. Kada se uvodi kljusurogat ili kolona ID?

    19. Koje je znaenje stranog kljua?

    20. ta podrazumeva relacioni integritet?

    21. Na koji nain se predstavlja relacioni model podataka?