000 lekcija1.2 baze podataka 01 uvod u modeliranje podataka 170 sl
TRANSCRIPT
04/12/23Dr Lazo Roljic1
BAZE PODATAKABAZE PODATAKA
Uvod u modeliranje podatakaUvod u modeliranje podataka
Prof. dr Lazo Roljić
Poslovni vs. Informacioni sistemPoslovni vs. Informacioni sistemZa funkcionisanje nekog poslovnog
sistema neophodno je prikupljanje informacija o okolini u kojoj sistem djeluje, kao i informacija o uslovima koji vladaju u samom sistemu, jer se na osnovu njih vrši dokumentovanje i informisanje i donose se upravljačke odluke. Obezbjeđivanje ovih informacija vrši se pomoću drugog sistema (ili podsistema) koji se naziva informacioni sistem.
04/12/23Dr Lazo Roljić2
Da bi mogao da obavlja svoju funkciju svaki
informacioni sistem mora da obezbijedi prikupljanje, obradu, čuvanje, manipulisanje, distribuciju i zaštitu podataka.
Bez obzira da li se radi o klasičnom konceptu (kartoteke) ili računarski podržanom konceptu (PC, mreža računara i koncept relacione baze podataka i SUBP), svaki informacioni sistem mora da sadrži nabrojane funkcije.
04/12/23Dr Lazo Roljic3
Slijedi Tabela 2: Poznati softverski paketi za rad s bazama podataka
Uostalom, to proističe i iz definicije pojma IS , kako ga ja objašnjavam: “IS je kolekcija ljudi, metoda i tehnika koji na organizovani način efikasno i svrsishodno obavljaju (6): prikupljanje, obradu, čuvanje, manipulisanje, zaštitu i izdavanje podataka i informacija.”
Roljić, L., Mikić, Đ.: INFORMACIJE- SISTEMI-UPRAVLJANJE, 2012.
04/12/23Dr Lazo Roljic4
04/12/23Dr Lazo Roljic5
04/12/23Dr Lazo Roljic6
Open Source
Berkeley DB Sleepycat sw
Dataman
DBM
Emdros
Firebird DB Firebird SQL fundation iz InterBase
GigaBase
GT.M
HSQL DB Engine
HyperNetDB
MaxDB iz SAP DB iz Adabas
Metakit
MySQL MySQL AB
Ozone
PostgreSQLPostgreSQL Global Develop.
Group
SQLite public domain
tdbengine
Zope
Closed source
4th Dinemsion 4D SA
ADABAS Software AG
AskSam
Btrieve
DB2 IBM
Cache InterSystems
FileMaker pro. FileMaker iz Apple
FrontBase
IMS IBM
Informix IBM iz Informix
Ingres Computer Associates
InterBase Borland
MS SQL Server Microsoft
MS Access Microsoft
Mimer SQL Mimer AB
Oracle Oracle corp.
Ovrimos
Pervasive SQL
Progress RDBMS Progress SW Corp.
SESAM
Sybase Sybase inc.
Teradata NCR corp.
TimesTen TimesTen inc.
R-SUBP primjeri
7 / 42
Desktop BPDesktop BP Ashton Tate (1979) ponudi na trgu dBase II V 80-ih so najbolj uporabljeni:
– dBase (kupi Borland)
– Paradox (v lasti Borlanda)
– ForPro (kupi Microsoft) Microsoft izdela prvi desktop R-DBMS za okolje Windows 1992 izzide MS Access 1.0 za 99$
Trenutno je MS Access najpopularnejši
1980 do 2001 je število BP naraslo preko 4000x
1.0 win1.0 win 1.11.1 2.02.0 9797
8
Desktop BPDesktop BP Prednosti
– Funkcionišu na personalnim računarima
– Korisnički interfejsi su jednostavni
– Nisu potrebna posebna znanja (možda osnovno o SQL)
– Relacioni model je jednostavan jski , efikasan
– Jeftina
Slabosti
– Obično nizak nivo zaštite, čak iako omogućuju izradu Web sajtova
– Za manji broj korisnika-transakcija
Za uspješnu primjenu Accessa potrebno je izvjesno poznavanje principa projektovanja relacionih baza podataka, što je, vjerovatno, bila kočnica ili uzrok njegovoj sporoj i nedovoljnoj primjeni do sada u praksi.
04/12/23Dr Lazo Roljic9
Prvi korak u projektovanju baze podataka je da utvrdimo koje objekte treba da predstavimo u bazi podataka i koja (svojstva) obilježja da uključimo. Ovaj postupak naziva se modeliranje podataka. Svrha modela podataka je izrada logičkog predstavnika strukture podataka koji se koristi za izradu baze podataka.
04/12/23Dr Lazo Roljic10
Pod modelom podataka podrazumijevamo
reprezentaciju nekih objekata i odnosa između
njih.
Svrha modela podataka je izrada logičkog
predstavnika strukture podataka koji se koristi za
izradu baze podataka.
04/12/2311
U upravljanje podacima spada:U upravljanje podacima spada:
Dizajniranje podataka informacionog sistema
Održavanje podataka informacionog sistema
04/12/2312
Dizajniranje Dizajniranje (projektovanje) podataka(projektovanje) podataka
Rezultat dizajniranja (projektovanja) podataka je model podatakaModel podataka je:
opis podataka na formalan način(jednoznačno čitljiv)
odgovarajuće dostupan svim korisnicima(katalog podataka organizacije)
04/12/23Dr Lazo Roljic13
04/12/23Dr Lazo Roljic14
04/12/23Dr Lazo Roljic15
Pa, šta onda baza podataka?Pa, šta onda baza podataka?
Baza podataka je organizovana i uređena cjelina međusobno povezanih podataka sačuvanih bez nepotrebne redundancije ili ponavljanja.
Jedna od mogućih definicija baze podataka glasi: to je zbirka slogova podataka sačuvanih u računaru na sistemski način, takav da joj se računarski program može obratiti prilikom odgovaranja na problem.
04/12/2316
Baza podataka može biti formirana tako da se
svi podaci smještaju u jednu tabelu (prosta baza podataka, Excel Worksheet-više liči na listu) ili da se izvrši grupisanje srodnih podataka u više različitih tabela (relaciona baza podataka).
Relaciona baza podataka formira se iz više tabela u kojima se smještaju srodni podaci i vrši se uspostavljanje odgovarajućih relacija između tih tabela. Relaciona baza podataka smješta sve podatke u tabele.
04/12/2317
Sve operacije nad podacima se izvode nad samim tabelama (stalne) ili se proizvode nove tabele (privremene).
Redovi tabele analogni su slogu ili zapisu, a kolone polju.
Skladištenje podataka u više različitih tabela ima značajne prednosti ukoliko se želi pratiti veliki broj osoba, širok dijapazon robe, popis inventara i sl.
04/12/2318
Podaci su logički organizovani po nekom modelu.
Model čini osnovu za osmišljavanje, definisanje i implementiranje baze podataka.
04/12/23Dr Lazo Roljic19
Današnji DBMS podržavaju jedan od tri
specifična modela podataka, što opredjeljuje
strukturisanje dizajna i način na koji se mogu
reprezentovati odnosi između entiteta.
04/12/2320
Ta tri modela su: - relacioni model podataka, zasnovan je na
matematičkom pojmu relacije. Podaci i veze među podacima se prikazuju preko dvodimenzionalnih tabela. Većina savremenih baza podataka služi se ovim modelom.
- hijerarhijski model podataka. Čine ga hijerarhijski organizovani podaci (npr. Sistem datoteka na Unixu).
- mrežni model podataka. Može se predstaviti usmjerenim grafom u kojem su čvorovi podaci, a lukovi među čvorovima definišu veze među podacima
04/12/2321
04/12/2322
Relacioni model:
04/12/23Dr Lazo Roljic23
04/12/2324
Hijerarhijski model:Na primjer: Sistem datoteka u Linux-u, DOS-u, UNIX-u itd.
04/12/2325
Hijerarhijski model:
04/12/2326
Mrežni model:Skica podataka o registrovanim autima
Za definisanje relacione baze podataka koristićemo slijedeću definiciju:
“Relaciona baza podataka je skup dvodimenzionalnih tabela međusobno povezanih relacijama (vezama-od engl. Relationship) i jednog niza operacija za izdvajanje pojedinih kolona i redova u cilju formiranja novih tabela”.
Relacije u relacionoj bazi podataka formira i održava SUBP–sistem za upravljanje bazama podataka.
04/12/2327
BAZA se sastoji od objekata koje nazivamo
entitetima (mogu biti realni i apstraktni)
Entitet je objekat (element) koji možemo
jednoznačno odrediti i na taj način izdvojiti iz
okoline (odnosno prepoznati u skupu), te ga
promatrati (prikupljati informacije o njemu).
04/12/2328
Entitet posjeduje svojstva (osobine-engl. properties). Opis jednoga svojstva sastoji se od atributa i vrijednosti atributa.
Dva ili više entiteta mogu biti u različitim međusobnim odnosima
Svaki takav odnos posjeduje vlastita svojstva i poseban je entitet (tzv. izvedeni entitet)
04/12/2329
U relacionoj algebri: skup operatora (unija, presjek, razlika...) i tabela (matrični oblik skupa podataka) naziva se relacija.
U RDBMS relacija (veza) je nešto drugo, a vezano je za prevod riječi:Relation (relacija) i Relationship (veza).
04/12/2330
Entitet: bilo šta o čemu je moguće razmišljati bilo šta o čemu možemo prikupljati
informacije Entitet je ono što možemo jednoznačno
odrediti i na taj način ga izdvojiti (prepoznati) u skupu ili iz okoline u kojoj se nalazi.
04/12/2331
? šta ne možemo; npr. zrno pijeska (ili nemamo interesa)
Entiteti posjeduju osobine (svojstva) Opis jedne osobine sastoji se od atributa
(naziv osobine) i vrijednosti atributa (vrijednosti osobine).
Atribut (npr. visina, težina, boja...) je element kojim je jednoznačno određena vrsta osobine.
Vrijednosti atributa (npr. 175cm, 78kg, zelena...) je drugi element opisa osobine.
04/12/2332
Osobine koje entitet posjeduje mogu se mijenjati zavisno od vremena ili od nekog drugog parametra.
Takve osobine (izračunate veličine) ne memorišemo u bazi podataka (npr. umjesto starosti neke osobe memorišemo godinu rođenja)
Na osnovu osobina koje posjeduju, odnosno vrijednosti atributa tih osobina, entitete možemo svrstati u skupove (npr. svi radnici jedne firme, svi predmeti koji se koriste u iste svrhe...)
04/12/2333
Svi entiteti koji posjeduju osobine odnosno vrijednosti atributa osobina, pomoću koga je skup definisan, biće elementi skupa
Neka od osobina entiteta su takva da vrijednosti njihovog atributa jednoznačno određuju entitet u posmatranom skupu (npr. vrijednost atributa šifra_radnik jednoznačno određuje radnika u firmi) --> karakteristična svojstva entiteta
04/12/23Dr Lazo Roljic34
04/12/23Dr Lazo Roljic35
100998211114
PETAR
PETROVIC
3
GOD_STUDIJASTUDENT
Entitet Atributi Vrijednost atributa
MAT_BROJ
PREZIME
IME
Slika : Grafièki prikaz skupa entiteta tipa STUDENT
Na prethodnoj slici prikazani su:Objekat (student) i (ispod) tabela
StudentSvojstva (atributi) objekta (linije) iVrijednosti atributa (svojstava).
Ovakav način prikazivanja nekog entiteta nazivamo šemom baze podataka.
04/12/23Dr Lazo Roljic36
Atribut (ili naziv atributa) jeimenovana kolona tabele. Naziv vrste svojstva nekog entiteta - element informacije kojim je jednoznačno određena vrsta svojstava - ona svojstva entiteta koja bilježimo o svakom entitetu npr. (VISINA, ŠIRINA, TEŽINA, BOJA).
Definiše se određivanjem tipa i raspona vrijednosti koje smije poprimiti.
04/12/23Dr Lazo Roljic37
Vrijednost atributa Drugi element opisa svojstva, npr. (175 cm,12 cm, 78 kg, ZELENA). Sve vrijednosti atributa moraju biti istog tipa.
Skup dopuštenih (mogućih) instanci atributa nazivamo: domen atributa.
04/12/23Dr Lazo Roljic38
Cas 2-Modeliranje podataka-nastavak Cas 2-Modeliranje podataka-nastavak
Prije nego što nastavimo ovu priču o modeliranju podataka, prvo ćemo sada da definišemo pojam informacije i podatka, onako kako se oni tumače i bolje razumiju u bazama podataka...
04/12/23Dr Lazo Roljic39
Definicija informacije pomoću sloga BP...Definicija informacije pomoću sloga BP...
Na primjer, neki student može biti opisan informacijom na slijedeći način: “Dragana Dragić je student četvrte godine Ekonomskog fakulteta u Banjaluci. Ona stanuje u Zelengorskoj ulici broj 17.
Ovakav opis sadrži posredno informacije koje mi razumijemo na osnovu iskustva, ali one mogu da se iskažu i na drugačiji način:
“Dragana Dragić je ime i prezime studenta, četvrta je godina studija. Ekonomski fakultet Banja Luka je naziv fakulteta koji student pohađa, a Zelengorska ulica broj 17 je adresa stanovanja studenta“.
...definicija informacije pomoću sloga BP...definicija informacije pomoću sloga BP
Iz prednjeg primjera može se uočiti da je informacija o pojmu student sastavljena iz najmanje dva dijela: podataka i konteksta. U informatici je, pored toga, važno da znamo i u kakvom fizičkom obliku su podaci predstavljeni. Prema tome, informaciju (o nekom biću, predmetu ili pojmu) čine:
kontekst, podaci i način i oblik fizičkog predstavljanja podataka.
...definicija informacije pomoću sloga BP...definicija informacije pomoću sloga BP
Kao što iz našeg primjera vidimo, kontekst je definisan pomoću niza veličina i isti je za sve slične pojave. Kontekst informacije određuje se tako što se napravi lista veličina koje ga definišu i čije vrijednosti će biti zapisane podacima.
U našem primjeru, kontekst čine: prezime i ime, godina studija, naziv fakulteta i adresa stanovanja. Takva lista veličina naziva se opis logičkog zapisa ili logičkog sloga.
Podatak je neutralno saopštenje o određenom dejstvu koje
još nije vrednovano ni priređeno za donošenje bilo kakve
poslovne odluke!
U našem primjeru: Dragana Dragić, četvrta, Ekonomski
fakultet Banja Luka i Zelengorska ulica broj 17, su podaci.
Koji tek kada se stave u kontekst postaju informacija.
U informatici i računarstvu potrebno je da još budu i
upisani na neki digitalni medij (disk, CD, USB,...) pa da
onda budu informacija dostupna računarskim resursima.
Ključni faktori za preduzeća u budućnosti će biti
informacije, znanje, inovativnost i kreativnost.
To će biti kada pređemo iz društva kapitala u društvo
znanja - u informacijsko društvo.
Jedna od osnova za njihovu upotrebu je IT u obliku
informacionih sistema zajedno s pravilnim
rukovođenjem pojedinaca.
ELEMENTI BAZE PODATAKAELEMENTI BAZE PODATAKA
Najmanja organizaciona jedinica podataka je bit (engl.binary digit, binarna cifra 0 ili 1). Ne postoji mogućnost adresiranja bita, pa tako ni njegovog samostalnog korištenja.
Bajt predstavlja najmanju adresibilnu jedinicu podataka u računaru. Sastoji se iz 8 bitova (npr. 10010111).
04/12/23Dr Lazo Roljic46
Slogovi u bazi podataka obično predstavljaju jedan red u bazi podataka. Slog (engl. Record) predstavlja jedan zapis u tabeli baz podataka.
Slog u sebi sadrži skup karakteristika konkretnog kupca, dobavljača, radnika i sl., a čiji je broj karakteristika definisan brojem polja u tabeli baze podataka. Svakom zapisu u tabeli baze podataka može se neposredno pristupiti.
04/12/2347
Polje (eng.field) predstavlja određenu karakteristiku koja se odnosi na više zapisa u tabeli baze podataka (npr. šifra kupca, naziv kupca, mjesto i sl. ) i u tabeli baze podataka nalaze se u obliku vertikalnih kolona.
Tabela baze podataka obuhvata sve zapise i sva polja, gdje zapisi (slogovi) predstavljaju redove, a polja kolone baze podataka. Skup svih tabela baze podataka čini bazu podataka.
Na presjeku zapisa i polja nalaze se vrijednosti (eng. values) tj. stvarni podatak.
04/12/2348
RELACIONA BAZA PODATAKARELACIONA BAZA PODATAKA
Baza podataka može biti formirana tako da se svi podaci smještaju u jednu tabelu (prosta baza podataka) ili da se izvrši grupisanje srodnih podataka u više različitih tabela.
Skladištenje podataka u više različitih tabela ima značajne prednosti ukoliko se želi pratiti veliki broj ljudi, širok dijapazon robe, popis inventara i sl.
Baza podataka koja se formira iz više tabela u kojima se smještaju srodni podaci i vrši uspostavljanje odgovarajućih relacija između tih tabela naziva se relaciona baza podataka.
04/12/2349
04/12/23Dr Lazo Roljic50
Ime Prezime Preduzeće Adresa GradVlado Vladić A J evrejska 1 BanjalukaMarko Marković B Krajiška 2 PrijedorMile Milić A Karađorđeva 95 DobojPetar Petrović A J evrejska 1 BanjalukaTomo Tomić B Omladinska 49 Trebinje
Razliku između proste i relacione baze podataka ilustrovaćemo na slijedećem primjeru:
Prosta baza podataka, za razliku od relacione baze podataka, sastoji se samo od jedne velike tabele u kojoj se isti podaci više puta ponavljaju (tabela 1) što je redundantno. Ti isti podaci se svaki puta moraju posebno unositi.
Kao što se vidi iz priložene tabele proste baze podataka, podaci o preduzeću, adresi i podaci o gradu moraju se unositi svaki puta kada se unosi novi zapis iako su ti podaci u više zapisa potpuno isti, dok to nije slučaj kod relacionih baza podataka, kod kojih bi se ti podaci smjestili u jednu posebnu tabelu.
04/12/23Dr Lazo Roljic51
U relacionoj bazi podataka se uspostavljaju relacije između tabela. Veze koje se uspostavljaju između tabela ilustrovaćemo na narednoj slici:
04/12/2352
Polje preko koga se uspostavlja veza između tabela naziva se primarni ključ (to je u gore navedenom primjeru šifra kupca). Primarni ključ čini zapis jedinstvenim. U gore navedenom primjeru pri definisanju narudžbe nije potrebno svaki puta posebno unositi podatke za svakog pojedinog kupca, već je dovoljno da se uspostavi relacija između tabele narudžba i tabele kupci preko primarnog ključa, što omogućava da tabela narudžba uzima podatke iz tabele kupci.
04/12/23Dr Lazo Roljic53
Kod uspostavljanja relacija bitan je odnos između tabela tj. način na koji se podaci u jednoj tabeli odnose prema podacima u drugoj tabeli. Na primjer, na prethodnoj slici tabela kupaca ima odnos jedan-prema-više, jer kupac može imati više narudžbi, dok jedna narudžba pripada samo jednom kupcu.
04/12/23Dr Lazo Roljic54
SISTEM UPRAVLJANJA BAZOM SISTEM UPRAVLJANJA BAZOM PODATAKA (DBMS)PODATAKA (DBMS)
Da bi baza podataka bila efikasna mora da postoji efikasan sistem upravljanja bazom podataka (eng. Database Managment System - DBMS). Efikasan sistem za upravljanje bazom podataka omogućava tri osnovne funkcije , a to su :-definisanje podataka;-rukovanje podacima - odnosi se na odabiranje podataka koji se žele upotrebiti;-nadzor nad podacima - u osnovi se određuje kome će biti dozvoljen pristup podacima, kao i kome će biti dozvoljeno da ažurira postojeće i dodaje nove podatke;
04/12/23Dr Lazo Roljic55
Razlozi koji opravdavaju prelazak na Razlozi koji opravdavaju prelazak na relacionu BPrelacionu BP
Postoje 4 osnovna razloga za prelazak na bazu podataka:1. Postoji previše odvojenih datoteka ili previše podataka u pojedinačnim datotekama, što otežava upravljanje podacima.Takođe podaci mogu nadmašiti postojeća softverska ograničenja.2. Više se puta upotrebljavaju jedni te isti podaci što zahtijeva mogućnost pregledavanja podataka na mnogo različitih načina.3. Postoji potreba da se podaci dijele, tj. mnogobrojni korisnici unose/ažuriraju i analiziraju podatke.4. Potreba za nadzorom nad podacima, tj. mora se osigurati pristup podacima kao i nadziranje vrijednosti podataka.
04/12/2356
Jedan loš primjer polja entiteta.
04/12/23Dr Lazo Roljic57
04/12/23
Tipično loš primjer polja entiteta: Nije dobro unositi podatak o starosti, kada se on može izračunati iz dva datuma, rođenja i trenutnog datuma
58
MAT_BROJ PREZIME IME GOD_STUDIJA STAROST
1212983123456 POPOVIĆ ELVIS 2
242212980645321 ANTIĆ DARIJA 4
263103981998877 MARKOVIĆ MILIJANA 3
260701984100009 POPOVIĆ ELVIS 2
241911980700123 PETROVIĆ PETAR 3
27
Skup entiteta tipa STUDENT predstavljen tabelom (relacijom) ima slijedeći izgled: Tabela STUDENT
Entitet podataka. Jedan objekat, uključujući sva njegova statička obilježja, naziva se entitet podataka (data entity).
Da bi se entiteti međusobno razlikovali jedan od drugog svaki entitet mora biti jedinstven. Na primjer, broj tekućeg računa kupca je jedan entitet podataka, ali stanje novca na računu kupca nije, zbog toga što stanje novca ne može (a i ne treba da bude) jednoobrazno identifikovano -neće valjda uvijek imati stanje na računu, npr. 17,80 KM ili neće on uvijek biti jedini koji na svom računu ima baš to stanje).
04/12/2359
Pošto kupac može da istovremeno ima više
računa, broj njegove lične karte, njegov
matični broj, matični broj firme i slično, ne
mogu da posluže kao jedinstveni
identifikator; zato se mora dodijeliti broj
računa, da bi se obezbijedila jednoobraznost
svakog entiteta podataka kupca.
04/12/2360
Brojevi čekova, međutim, nisu toliko
jednoobrazni da bi bili prepoznatljivi kao
entiteti; ček sa brojem 937, na primjer, može
imati više različitih kupaca.
Kombinovanje broja kupca i broja čeka
takođe nije dovoljno jedinstven identifikator,
zbog toga što banke mogu da koriste isti broj
kupca za identifikovanje različitih klijenata.
04/12/2361
Tek identifikacioni broj banke, broj kupca i
broj čeka zajedno mogu (jedinstveno)
identifikovati stavku zaduženja.
Stoga, svaki ček sadrži ovu informaciju koja
je na čeku odštampana magnetnim tušem.
04/12/23Dr Lazo Roljic62
04/12/2363
Još uvijek smo u poglavlju Modeliranje Još uvijek smo u poglavlju Modeliranje podataka...podataka...
Ovo je lekcija o tome kako se kreiraju datoteke za
sistem relacione baze podataka (za RDBMS).
Možete da naučite kako se kreiraju tabele za RDBS.
Možete da naučiti kako da se kreiraju datoteke (tabele)
koje preciznije predstavljaju skoro svaki poslovni
problem. To se naziva modeliranje podataka.
04/12/2364
Postoje dileme: Poslovni problemi u stvarnom
životu ne mogu se predstaviti jednostavnim
listama informacija (kao npr. u Excel-u).
Relacione baze podataka mogu preciznije
modelirati sve vrste problema.
Ali, njihovo korišćenje nije nimalo instiktivno.
04/12/2365
Ideja o relacionoj bazi podataka nije neka teorija koja je “prolazna moda” ili “hir uvođenja teorija” (engl. passing-fad theory), nego se ona zasniva na relacionoj algebri. Ona se bazira na čvrstom matematičkom konceptu koji čini da naše informacije “rade” za nas na što je moguće efikasniji način.
Ali, bez brige, nećemo se ovdje baviti nikakvom komplikovanom matematikom!
04/12/23Dr Lazo Roljic66
Postoje dva načina na koja ljudi uče (i odlučuju):
(1) pomoću pravila (naučno), ili
(2) pomoću intuicije.
04/12/23Dr Lazo Roljic67
Većina početnika pristupa kreiranju baza podataka tako što su naučili da kucaju liste na komadu papira. U nekim situacijama to može funkcionisati. Za jednostavne probleme za to su dobri radni listovi (Excel spredšitovi).Evo jednog primjera gdje je dovoljan jednostavan fajl: želite da napravite popis svih vrijednih stvari u vašem stanu-kući.To bi moglo izgledati nešto slično slijedećem:
04/12/23Dr Lazo Roljic68
Opis Vrijednost
1990 Nissan Micra K10 2,500 €
Petrof Pianino 1,600 €
Kamacrown TV 300 €
04/12/23Dr Lazo Roljic69
To je dobro i odgovara za tu namjenu.
Ali pogledajmo slijedeću situaciju.Angažovali su vas da rukovodite (upravljate slogovima) novoosnovanom fakultetskom/školskom bibliotekom.
U svrhu bolje ilustracije, recimo da ona ima samo nekoliko korisnika, svaki sa jedinstvenim imenom, i nekoliko knjiga. Tada vi, je li, uzimate vašu vjernu (Excel) unakrsnu tabelu (spredšit) i postavljate jednu datoteku koja izgleda kao slijedeća:
04/12/23Dr Lazo Roljic70
Ime članaAdresa člana
Naslov knjige
Autor knjige
Datum izdavanja knjige
Andreja
80 Pleasant St., Ljubija, PD
Tenis!Scott Brook
3/3/2012
Andreja
80 Pleasant St., Ljubija, PD
Košarka! Tom Brown 3/3/2012
Dragan7 D St, Novi Grad, NG
Balet!Susan Thomas
4/3/2012
04/12/2371
To funkcioniše! Bibliotekar sada može da prati ko je posudio koju knjigu i kada! Ali pogledajmo malo bolje. Andreja je posudila dvije knjige, Tenis! i Košarka!
Primjetite da smo Andrejinu adresu morali kucati dva puta. Pa dobro, nije puno, reči ćete vi!
Ali, kada bi Andreja posudila 20 knjiga, mi bismo njenu punu adresu morali kucati 20 puta!
Redundantno, zar ne? Odšta nam je to?
04/12/23Dr Lazo Roljic72
I, što je još gore, šta kada Andreja promijeni
adresu stanovanja i odseli se iz ulice u kojoj je nekada stanovala? Tada mi moramo da ažuriramo adrese na svih 20 slogova! Još lošija novost, svaki puta kada ukucate knjigu morate da ukucate i ime autora. Na neki način, naš divan sistem jednostavne datoteke izlazi izvan naše kontrole. Mora da postoji neki bolji način.
Uvedimo relacionu bazu podataka. Ona može potpuno da upravlja sa ovako zamršenom situacijom!
04/12/2373
Prvo, relacioni koncept kaže: razdijeli jedan fajl
u tri fajla. Svaki od njih biće namijenjen da
služi jednom od tri tipa informacija sa kojima je
jedinstvena datoteka pokušala da upravlja.
Jedan tip informacija vodio je računa o tome ko
je osoba koja je posudila knjigu, tako da je
cijela datoteka namijenjena samo
informacijama o korisniku (čitaocu). Izgledala bi
kao slijedeća:
04/12/23Dr Lazo Roljic74
Ime člana Adresa člana
Andreja 80 Pleasant St., Ljubija, PD
Dragan 7 D St, Novi Grad, NG
Datoteka član
04/12/23Dr Lazo Roljic75
Drugi opšti tip informacija bio je informacije o knjigama. To bi izgledalo ovako:
04/12/23Dr Lazo Roljic76
Naslov knjige Autor knjige
Tenis! Scott Brook
Košarka! Tom Brown
Balet! Susan Thomas
Datoteka knjiga
04/12/23Dr Lazo Roljic77
I, konačno, imamo dobar koncept, koji upravlja sa činjenicama da je korisnik posudio knjigu.
Kreirajmo i treću datoteku (fajl), koja sadrži sasvim dovoljno informacija da se identifikuje korisnik, knjiga koja je bila posuđena i datum kada je posuđena.
Ova pametna datoteka izgleda kao slijedeća:
04/12/23Dr Lazo Roljic78
Ime člana Naslov knjige Datum izdavanja
Andreja Tenis! 3/3/2003
Andreja Košarka! 3/3/2003
Dragan Balet! 4/3/2003
Datoteka presjek
04/12/23Dr Lazo Roljic79
Ova datoteka nazvana je presjek (intersection), jer je ona neka vrsta presjeka između datoteke korisnik i datoteke knjiga.
04/12/23Dr Lazo Roljic80
Uočite da ste ovaj put Andrejinu adresu morali kucati samo jednom (u datoteci član), i da kada bibliotekari izdaju knjigu oni samo koriste datoteku presjek, gdje moraju ukucati samo ime člana, naslov knjige i datum kada je ona posuđena. Ne morate da kucate Andrejinu adresu više puta.
04/12/23Dr Lazo Roljic81
Da, vrlo interesantno, reči ćete, ali morali
smo kreirati tri datoteke. Kakav je to čudan sistem? Informacije su razbacane unaokolo više nego ranije!
Ma, ne brinite! Tu je softver koji sve ostalo čini za vas! Softer, kao dBase, Paradox, Oracle, MS Access, FoxPro, itd., povezuje sve informacije iz sve tri datoteke i ispisuje ih tako jer su logički povezane.
04/12/23Dr Lazo Roljic82
Evo šta on čini: prvo, on upoređuje sva imena članova iz datoteke presjek sa imenima članova iz datoteke članovi i spaja zajedno informacije o članovima i o presjeku.
04/12/23Dr Lazo Roljic83
Dakle, softver je započeo da sakuplja podatke iz datoteka član i presjek, slično kao:
04/12/2384
Ime člana iz datoteke presjek
Adresa člana iz datoteke
član
Naslov knjige iz datoteke presjek
Datum izdavanja iz
datoteke presjek
Andreja80 Pleasant St., Ljubija, PD
Tenis! 3/3/2003
04/12/23Dr Lazo Roljic85
Softver je “vidio” da je "Andreja" bila u
datoteci presjek, pa je zato uzeo sve podatke iz obje datoteke koji se odnose (u relaciji su sa) na "Andreja" i iskazuje ih skupa, kako je to prikazano u prethodnoj tabeli. Ali, nije sve još završio.
Zatim softver uzima naslove knjiga iz naslovi knjiga iz datoteke presjek i upoređuje to sa nazivi knjiga iz datoteke knjige i informacije odatle dodaje informacijama koje su već prikupljene u prethodnoj tabeli.
Tada informacije izgledaju kao na slijedećem ispisu ekrana kako biste ga vi
vidjeli.
04/12/2386
Ime člana iz
datoteke presjek
Adresa člana iz
datoteke članovi
Naslov knjige iz datoteke presjek
Autor knjige iz datoteke
knjige
Datum posuđiva
nja iz datoteke presjek
Andreja
80 Pleasant St., Ljubija, PD
Tenis!
Scott Brook
3/3/2003
04/12/23Dr Lazo Roljic87
Softver je rekao da je taj "Tenis!" bio u
datoteci presjek i da je taj "Tenis!" bio u
datoteci knjiga, tako da je on uzeo sve
podatke iz obadvije datoteke koje su vezane
(u relaciji su) sa "Tenis" i povezao ih skupa
jedne sa drugim.
04/12/23Dr Lazo Roljic88
Sada, dakle, softver je uradio sva tri posla, uparivanje informacija iz sve tri datoteke i ispisao nam rezultate na neki logičan način. On zatim ponavlja sve odozgo za Andrejine ostale posuđene knjige i Draganove posuđene knjige.
Dobro, reči ćete vi, ali, zar nije, naporno da se drže otvorenim tri datoteke i istovremeno unose podaci u njih?
04/12/23Dr Lazo Roljic89
Softver relacione baze podataka ponovno dolazi kao spasilac olakšavajući unos podataka.
Softver “zna” da vi radite sa više od jedne datoteke u isto vrijeme i da datoteke imaju informacije povezane; Na primjer, on zna da će se svako ime člana u datoteci presjek morati naći i u datoteci članovi.
04/12/23Dr Lazo Roljic90
Zato, softver postavlja naš unos podataka tako da mi moramo da ukucavamo informacije samo jedanput i on automatski kopira informacije koje se kucaju u povezane datoteke. Ali, pošto softver zna koliko ste vi ažurni, on može da čini i neke druge vrlo korisne stvari.
04/12/23Dr Lazo Roljic91
Na primjer, recimo da ste prilikom dodavanja sloga u datoteku presjek pogrešno otkucali Andrejino ime, (možda ste greškom otkucali "Andej") Softver bi “vidio” da u fajlu ne postoji ime člana "Andej" i poslao bi vam upozorenje. Ovo značajno smanjuje pogreške.
04/12/23Dr Lazo Roljic92
Neke stvari dok ih kucate u knjigu članova bivaju provjeravane. Ako pogriješite da ukucate ime knjige, softver će vam poslati poruku “Ta knjiga ne postoji u datoteci knjiga!"
04/12/23Dr Lazo Roljic93
Zapamtite da se Andrejina adresa ili bilo kojeg člana pojavljuje samo jednom, i to u datoteci član. Tako, ako se Andreja preseli, moraju se ažurirati samo informacije o njenoj adresi i tada nije važno koliko je ona knjiga zadužila (posudila), njena će adresa stalno važiti.
04/12/23Dr Lazo Roljic94
Pa, koliko onda datoteka treba da se kreira?
U stvari, svaka situacija zahtijeva različiti broj datoteka. Nekada jednu datoteku, nekada 4, nekada 300 i više.
Evo vam jednog primjera jednostavnog načina kako da kreirate vaše datoteke:
Logičko prikazivanje baze podatakaLogičko prikazivanje baze podataka
Baze podataka možemo logički prikazati na nekoliko načina:
TekstualnoDijagramskim modelima podatakaŠemom baze podataka.
04/12/23Dr Lazo Roljic95
Dijagram objekti-vezeDijagram objekti-veze ( (E-R dijagram)E-R dijagram)
U ovom trenutku nije jasno u koliko tabela treba te podatke spremiti. U jednu, dvije, tri ili više? Kako izbjeći redundanciju podataka, kako podatke organizovati na način da se podaci mogu što lakše obrađivati i, što je najvažnije, da se podaci mogu unositi kadgod je to potrebno?
04/12/23Dr Lazo Roljic96
… … Entity-Relationship DiagramEntity-Relationship Diagram......
Jedna od mnogobrojnih dijagramskih metoda (ali najkorisnija) koja predstavlja modele podataka je dijagram entiteta i relacija (E-R dijagram; Entity-Relationship Diagram).
04/12/23Dr Lazo Roljic97
E-R dijagrami se mogu koristiti kada želimo da predstavimo odnose između objekata i da grafički predstavimo njihovo ponašanje.
04/12/23Dr Lazo Roljic98
ER-model je dovoljno jednostavan da ga
ljudi različitih struka mogu razumjeti, pa zato služi za komunikaciju projektanta baze podataka i budućih korisnika i to u najranijoj fazi razvoja baze.
04/12/23Dr Lazo Roljic99
Sadašnji DBMS ne mogu direktno implementirati ER-šemu, pa je ovu šemu potrebno detaljnije razraditi, te modificirati u skladu s pravilima postojećih relacionih, mrežnih ili hijerarhijskih modela.
Entiteti podataka predstavljeni su pravougaonikom, atributi podataka sa elipsama, a odnosi između entiteta rombom.
Osnovna prednost ovih dijagrama je što se njima na relativno malom prostoru može predstaviti koncept veoma velikog sistema sa višestrukim bazama podataka.
04/12/23Dr Lazo Roljic100
Šema baze podatakaŠema baze podataka
Šema baze podataka je grafički opis nacrta tabela u vidu linija koje sadrže nazive njihovih polja i prikazuju uprošćenu verziju odnosa između njih, može pomoći da se shvati koncept baze podataka. Dijagram koji prikazuje logičko predstavljanje podataka nazivamo šemom.
04/12/23Dr Lazo Roljic101
Jedan od alata za crtanje E-R dijagrama je program Visio sa dodatkom Stencill-a za E-R dijagrame.
04/12/23Dr Lazo Roljic102
04/12/23Dr Lazo Roljic103
Za entitet
Za atribut
Za vezu
Za navedeni primjer možemo se poslužiti Za navedeni primjer možemo se poslužiti dijagramom objekt-veza, koji poznaje slijedeće dijagramom objekt-veza, koji poznaje slijedeće simbole:simbole:
Šta su entiteti za naše podatke? Šta su entiteti za naše podatke? EntitetiEntiteti su ono o čemu su ono o čemu skupljamo podatke. U našem slučaju to su tri entiteta: skupljamo podatke. U našem slučaju to su tri entiteta: studenti, predmeti i ispiti. Oko njih se grupišu pripadni studenti, predmeti i ispiti. Oko njih se grupišu pripadni atributi, pa time nastaje slijedeći dijagram:atributi, pa time nastaje slijedeći dijagram:
04/12/23Dr Lazo Roljic104
Ključ (Key)Ključ (Key)
Potrebno je definisati i ključ. Ključ je atribut ili grupa atributa koji zadovoljava dva svojstva:
Za svaki red u tabeli ključ se mora razlikovati. Svaki red u tabeli mora imati taj podatak.
04/12/23Dr Lazo Roljic105
Oba svojstva za ključ za entitet Student zadovoljava atribut Matični broj studenta (Svakome je, valjda, jasno zašto atribut nije Prezime.)
Koji su atributi ili grupe atributa kandidati za
ključ entiteta Ispiti i Predmeti?
04/12/23Dr Lazo Roljic106
04/12/23Dr Lazo Roljic107
Odgovor glasi: Ključevi su podvučeni. Za entitet Predmeti ključ je šifra predmeta - Šif.predm. Kod entiteta Ispit ključ je složen od tri atributa: matični broj studenta - Mat.broj, šifra predmeta - Šif.predm i datum polaganja - Dat.polag.
Hajde da se malo provjerimo (da se malo razdrmamo), da vidimo da li smo razumjeli prethodno rečeno.
Pretpostavimo da su pred vas postavljene slijedeće tri tabele:
04/12/23Dr Lazo Roljic108
04/12/23109
TRUCK_NUM BASE_CODE TYPE_CODE TRUCK_MILES TRUCK_BUY_DATE TRUCK_SERIAL_NUM
1001 501 1 32123.5 11/8/94 AA-322-12212-W111002 502 1 76984.3 3/23/92 AC-342-22134-Q231003 501 2 12346.6 12/27/95 AC-445-78656-Z991004 1 894.3 2/21/96 WQ-112-23144-T341005 503 2 45673.1 4/15/94 FR-998-32245-W121006 501 2 93245.7 8/30/93 AD-456-00845-R451007 507 3 32012.3 12/1/94 AA-341-96573-Z841008 502 3 44213.6 9/21/94 DR-559-22189-D331009 503 2 10932.9 1/16/96 DE-887-98456-E94
Tabela: VOZILO
BASE_CODE BASE_CITY BASE_STATE BASE_AREA_CODE BASE_PHONE BASE_MANAGER
501 TN 615 123-4567 Andrea D. Gallager
502 KY 568 234-5678 George H. Delarosa
503 MO 456 345-6789 Maria J. Talindo
GA 770 233-3843 John D. Smith
504 GA 901 456-7890 Peter F. McAvee
Tabela: GARAŽA
TYPE_CODE TYPE_DESCRIPTION
1 Single box, double-axle
2 Single box, single-axle
3 Tandem trailer, single-axle
Tabela: TIP
Za svaku tabelu identifikujte primarni ključ i strani ključ(eve). Ako tabela nema strani ključ, u vašem odgovoru upišite “Nema”.
Tabela Primarni ključ Strani ključ VOZILO __________ __________ GARAŽA __________ __________ TIP __________ __________
04/12/23Dr Lazo Roljić110
Rješenje zadatka:Tabela Primarni ključ Strani ključVOZILO Truck_Num Base_Code, Type_CodeGARAŽA Base_Code NemaTIP Type_Code Nema
04/12/23111
04/12/23112
TRUCK_NUM BASE_CODE TYPE_CODE TRUCK_MILES TRUCK_BUY_DATE TRUCK_SERIAL_NUM
1001 501 1 32123.5 11/8/94 AA-322-12212-W111002 502 1 76984.3 3/23/92 AC-342-22134-Q231003 501 2 12346.6 12/27/95 AC-445-78656-Z991004 1 894.3 2/21/96 WQ-112-23144-T341005 503 2 45673.1 4/15/94 FR-998-32245-W121006 501 2 93245.7 8/30/93 AD-456-00845-R451007 507 3 32012.3 12/1/94 AA-341-96573-Z841008 502 3 44213.6 9/21/94 DR-559-22189-D331009 503 2 10932.9 1/16/96 DE-887-98456-E94
Tabela: VOZILO
BASE_CODE BASE_CITY BASE_STATE BASE_AREA_CODE BASE_PHONE BASE_MANAGER
501 TN 615 123-4567 Andrea D. Gallager
502 KY 568 234-5678 George H. Delarosa
503 MO 456 345-6789 Maria J. Talindo
GA 770 233-3843 John D. Smith
504 GA 901 456-7890 Peter F. McAvee
Tabela: GARAŽA
TYPE_CODE TYPE_DESCRIPTION
1 Single box, double-axle
2 Single box, single-axle
3 Tandem trailer, single-axle
Tabela: TIPR
ješe
nje
zada
tka:
Tabe
la
Pr
imar
ni k
ljuč
Stra
ni k
ljuč
VOZI
LO
Truc
k_N
um
Base
_Cod
e, T
ype_
Cod
e
GA
RA
ŽA B
ase_
Cod
e
Nem
a
TIP
Typ
e_C
ode
Nem
a
Relaciona Relaciona ššema ema tabela baze podatakatabela baze podataka
Je drugi način prikazivanja baze podataka:To je konačan skup naziva atributa -zaglavlje tabele, npr. (A1, A2, A3..An ) ili (IME, PREZIME, JMBG, ADRESA ) ,zajedno sa skupom ograničenja koja su zadana na tom skupu atributa.
Redoslijed nije važan, ali se ne smiju pojaviti dva ista atributa (pravilo prve normalne forme).
04/12/23Dr Lazo Roljic113
04/12/23Dr Lazo Roljic114
100998211114
PETAR
PETROVIC
3
GOD_STUDIJASTUDENT
Entitet Atributi Vrijednost atributa
MAT_BROJ
PREZIME
IME
Slika : Grafièki prikaz skupa entiteta tipa STUDENT
Ovakav način prikazivanja nazvali smo šema BP
……ššema ema tabela baze podataka…tabela baze podataka…
pokazuje strukturu tabele
Zapisujemo je u obliku: tabela(lista-atributa).
Značenje proizlazi iz interpretacije relacione šeme.Opisuje građu tabele i ne definiše njeno značenje.
04/12/23Dr Lazo Roljic115
PProblemroblemii (anomalije) (anomalije) održavanja i održavanja i izvještavanjaizvještavanja
Ilustrovaćemo probleme održavanja i izvještavanja na primjeru jedne nenormalizovane tabela (relacija). Nenormalizovana tabela je ranije definisana kao tabela koja posjeduje neke vrijednosti atributa koje nisu "atomske", odnosno tabela koja posjeduje "grupe sa ponavljanjem".
04/12/23Dr Lazo Roljic116
04/12/23Dr Lazo Roljic117
BI IME SEM ŠSMJER IMERUK ŠPRED NAZPRED OCJENA
21 ZORAN 5 01 BATO 121 MATEMAT 7
323 BAZEPOD 8
056 MUNDOLOG 8
77 ANITA 7 01 BATO 056 MUNDOLOG 10
121 MATEMAT 5
36 PERO 4 02 MIŠO 323 BAZEPOD 8
456 STATISTIKA 9
442 FIZIKA 6
056 MUNDOLOG 8
Anomalije u dodavanju: ako je u novom nastavnom planu
definisan novi predmet, ne mogu se ubaciti podaci o tom predmetu dok ga neki student ne položi, ili
ako se otvori neki novi smjer, ne mogu se ubaciti podaci o tom smjeru dok ga neki student ne upiše.
04/12/23Dr Lazo Roljic118
Anomalije u izbacivanju: ako je jedan predmet (FIZIKA) položio
samo jedan student (PERO) i ako se on ispiše sa fakulteta, odnosno izbaci odgovarajuća n-torka, gube se i sve informacije o tom predmetu.
ako je taj student bio i jedini student na nekom smjeru, gube se i sve informacije o tom smjeru.
04/12/23Dr Lazo Roljic119
Anomalije u ažuriranju: Ako se promijeni naziv nekog
predmeta ili rukovodilac nekog smjera, to se mora učiniti na onoliko mjesta koliko je studenata položilo taj predmet, odnosno koliko je studenata upisano na dati smjer.
04/12/23Dr Lazo Roljic120
Normalizacija baze podatakaNormalizacija baze podataka
Postupkom normalizacije logička struktura baze podataka se dovodi u takav oblik (ili, drugim rječima, relacije se dovode u normalne forme) u kojem se izbjegavaju anomalije u održavanju i problemi u izvještavanju.
04/12/23Dr Lazo Roljic121
Tabelu STUDENT možemo normalizovati (svesti na 1NF) ako u svakoj koloni prikazane tabele, za svaki ispit koji je neki student položio, ponovimo i sve ostale njegove podatke (BI, IME, SEM, ŠSMJER, IMERUK).
04/12/23122
BI IME SEM ŠSMJER IMERUK ŠPRED NAZPRED OCJENA
21 ZORAN 5 01 BATO 121 MATEMAT 7
323 BAZEPOD 8
056 MUNDOLOG 8
77 ANITA 7 01 BATO 056 MUNDOLOG 10
121 MATEMAT 5
36 PERO 4 02 MIŠO 323 BAZEPOD 8
456 STATISTIKA 9
442 FIZIKA 6
056 MUNDOLOG 8
Međutim, da bi se smanjila redundansa do koje bi, očigledno, ovakva normalizacija dovela, možemo ovako dobijenu tabelu, operacijom projekcije, dekomponovati na slijedeće dvije:
STUDENT1 (BI, IME, SEM, ŠSMJER, IMERUK) . . . . (1) PRIJAVA (BI, ŠPRED, NAZPRED, OCJENA) . . . . . . (2)
04/12/23123
Prirodno spajanje ove dvije tabele po BI rekonstruisalo bi polaznu normalizovanu tabelu.
Normalizacija i normalne formeNormalizacija i normalne forme
Sad se još pitamo: "Jesu li podaci normalizovani i nalaze li se u trećoj normalnoj formi?"
Definicija prve normalne forme glasi: Podaci su u prvoj normalnoj formi, ako se mogu prikazati pomoću tabele u kojoj se nijedan atribut ili grupa atributa ne ponavljaju u istom redu, niti imamo slučaj da se u neko polje tabele upisuje više od jednog atributa (pojava tabele u tabeli).
04/12/23Dr Lazo Roljic124
Definicija druge normalne forme glasi:
Podaci su u drugoj normalnoj formi, ako su u prvoj normalnoj formi, a osim toga za sve atribute vrijedi pravilo da zavise od cijelog ključa, a ne samo od dijela ključa.
Definicija treće normalne forme glasi: Podaci su u trećoj normalnoj formi, ako su u drugoj normalnoj formi (dakle i u prvoj), a osim toga vrijedi pravilo da nema funkcionalne zavisnosti među atributima.
04/12/23Dr Lazo Roljic125
Dobro uputstvo ili pravilo kako da se kreira relaciona baza podataka kojom se dobiva jednostavna (za primjenu) aplikacija i sistem za njeno lakše održavanje predstavlja skup pravila koji definišu tri normalne forme:
Sve vrijednosti kolona su atomske (nedjeljive, nema grupa koje se ponavljaju)-1NF.
Sve vrijednosti kolona zavise od vrijednosti primarnog ključa-2NF.
Nema ni jedne vrijednosti kolone koja zavisi od vrijednosti bilo koje druge kolone izuzev od primarnog ključa-3NF.
04/12/23Dr Lazo Roljić126
Ako pogledamo naše podatke i upitamo se u kojoj se normalnoj formi nalaze, vidjeće se da se oni nalaze u trećoj normalnoj formi.
Tek nakon te provjere pristupa se izradi tabela.
04/12/23Dr Lazo Roljic127
Provjera rečenog...Provjera rečenog...
U narednoj tabeli nalazi se uzorak podataka za računarske komponente i za dobavljače tih komponenata. U razgovoru sa korisnicima o ovim podacima primijetili smo da brojevi komponenata (ali ne i njihov opis) jedinstveno identifikuju komponente (parts), i da ime dobavljača jedinstveno identifikuje dobavljače (vendors).
04/12/23Dr Lazo Roljic128
04/12/23Dr Lazo Roljic129
Br_Komponente Opis Naziv_Dobav Adresa Jed_cijena
1234 Logic Chip Fast Chips 10.00
1234 Logic Chip Smart Chips 8.00
5678 Memory Chip Fast Chips 3.00
5678 Memory Chip Quality Chips 2.00
5678 Memory Chip Smart Chips 5.00
1. U kojoj normalnoj formi je ova tabela? I, zašto? (5 poena)
2. Razvijte skup tabela (projekcija) da budu u 3NF (15 poena)
3. Koristeći rečeno o E-R dijagramima, nacrtajte ga za ovaj slučaj (10 poena).
04/12/23Dr Lazo Roljic130
04/12/23131
Br_Komponente Opis Naziv_Dobav Adresa Jed_cijena
1234 Logic Chip Fast Chips 10.00
1234 Logic Chip Smart Chips 8.00
5678 Memory Chip Fast Chips 3.00
5678 Memory Chip Quality Chips 2.00
5678 Memory Chip Smart Chips 5.00
Odgovor 1: u prvoj normalnoj formi (nema grupa s ponavljanjem, nema višestrukih vrijednosti, i sva polja su zavisna od primarnog ključa).
04/12/23132
Br_Komponente Opis Naziv_Dobav Adresa Jed_cijena
1234 Logic Chip Fast Chips B_Grad 10.00
1234 Logic Chip Smart Chips M_Grad 8.00
5678 Memory Chip Fast Chips B_Grad 3.00
5678 Memory Chip Quality Chips N_Grad 2.00
5678 Memory Chip Smart Chips M_Grad 5.00
Odgovor 2: Iz prethodne tabele trebalo je razviti tabele koje će da budu u 3NF. (10 poena)Komponenta (Br_Komponente, Opis)Dobavljač (Naziv_Dobav, Adresa)Ponuda (Br_Komponente, Naziv_Dobav, Jed_Cijena)
04/12/23133
3. Koristeći rečeno o E-R dijagramima, trebalo ga je nacrtati za ovaj slučaj.
Odgovor 3 je na slici
04/12/23Dr Lazo Roljic134
A, da li biste znali konvertovati ovaj E-R dijagram u tabelarnu šemu baze podataka?
Konvertovan E-R dijagram u tabelarnu šemu baze Konvertovan E-R dijagram u tabelarnu šemu baze podataka:podataka:
Supplier (Supplier ID, Company Name, Contact Name)Product (Product ID, Product Name, Units in Stock, Supplier IDOrder Detail (Order ID, Product ID, Unit Price, Quantity, Discount)Order (Order ID, Order Date, Ship Name, Ship Address, Customer ID)Customer (Customer ID, Company Name, Address, City)
04/12/23135
Kreiranje prve tabele u Access-u izgledalo bi ovako:
04/12/23Dr Lazo Roljic136
04/12/23Dr Lazo Roljic137
Nakon toga moguće je na isti način kreirati tabele Ispiti i Predmeti, i zatim unijeti podatke u sve tri tabele.
04/12/23Dr Lazo Roljic138
04/12/23Dr Lazo Roljic139
Informacije vezane za vaš projekat.
Recimo, da imate zadatak da vi kreirate informacioni sistem fakulteta. Prikupite informacije o fakultetu (ime fakulteta, adresa lokacije, lokacija učionice, itd. telefonski broj, ime dekana itd.), sve informacije vezane za studente (ne trenutne podatke za svakog studenta, nego opšte tipove podataka o studentu, na primjer, vodite računa da fakultet ima te informacije: ime i prezime studenta, adresa stanovanja studenta, datum rođenja, itd.), informacije o profesorima, informacije o predmetima koje student sluša (naziv predmeta, semestar, ime profesora koji drži taj predmet, itd.).
04/12/23Dr Lazo Roljic140
Prikupite uzorak svakog tipa informacije, na primjer, karton studenta, raspored profesora po predmetima, neke ili sve dokumente koji se vode, postojeće kompjuterske fajlove, itd.
04/12/23Dr Lazo Roljic141
Dobro, sada vi imate ogromnu hrpu o svakoj informaciji vezanoj za fakultet.
Naredni korak je da uočite ko ili šta su tu entiteti. Jedan jednostavan način da se opiše ko su entiteti je da se kaže da oni mogu biti osoba, mjesto ili stvar. Evo šta bi mogao biti neki entitet u našem primjeru IS-a fakulteta: fakultet, studenti, profesori, zgrade, ocjene studenata, predmeti, raspored nastave, itd. Dakle, izdvojite sve što su entiteti.
04/12/23Dr Lazo Roljic142
Naredni korak: otkrijte sve osobine entiteta i napravite listu za svaki entitet i ispišite je ispod entiteta. Na primjer, adresa studenta je osobina entiteta student. Evo nekoliko primjera:
04/12/23Dr Lazo Roljic143
STUDENTime studentaadresa studentajmbg studentadatum rođenja studentaitd.
04/12/23Dr Lazo Roljic144
PREDMETnaziv predmetaid_broj predmetaopis predmetaects bodovisala u kojoj se održava predmet
itd.
04/12/23Dr Lazo Roljic145
PROFESORime profesorajmbg profesoraprofesorova kućna adresalokacija kabineta profesoratelefonski broj profesoraitd.
A, šta je sa rasporedom predavanja? Koje bi osobine on trebao da ima?
Pa, možemo da vidimo da je entitet raspored predavanja datoteka presjek, kao u primjeru biblioteke.
Evo kako bi izgledao raspored predavanja:
04/12/23Dr Lazo Roljic146
RASPORED PREDAVANJAjedinstveni id broj predmeta (poklapa sa id_broj predmeta iz datoteke predmet)semestar (iz datoteke semestar)lokacija učionice (poklapa se sa id iz datoteke učionica)vrijeme nastave (na pr. ponedeljkom od 10h)profesorov jmbg (poklapa se sa jmbg iz datoteke profesor)
04/12/23Dr Lazo Roljic147
Primijetite da, kao u primjeru biblioteke, u primjeru rasporeda časova, u datoteci raspored predavanja ne morate da redundantno kucate mnogo informacija da biste jedinstveno naveli određeni predmet. Na primjer, ne morate da u opisu predmeta stalno ponovno kucate isto, jer će softver to izvući iz datoteke predmet!
04/12/23Dr Lazo Roljic148
Jedinstveni identifikacioni broj predmeta je dovoljan da vam omogući da saznate tačno o kojem predmetu se radi, a softver povezuje dvije datoteke kada hoćete da vidite sve informacije! Isto tako, ne morate da kucate ime profesora uvijek iznova, jer će se ono izvući iz datoteke profesor. Baš profesorov jmbg identifikacioni brojevi su sve što se traži u datoteci raspored predavanja.
04/12/23Dr Lazo Roljic149
Vama će možda trebati mnogo takvih tabela presjeka. Na primjer, datoteka ocjene bila bi drugi primjer datoteke presjeka.
OCJENEjmbg studentajedinstveni id broj predmeta semestarlokacija predavaonevrijeme nastaveocjena (npr. 10, 9, 8, 7, 6,5)
04/12/23Dr Lazo Roljic150
Za datoteku ocjene, uočite da ne morate da uvijek iznova kucate ime studenta ili njegovu adresu. Isto kao i sa predmetom, potreban je samo jedinstveni id broj predmeta tako da ne morate da kucate u opisu predmeta uvijek iznova po hiljadu puta svaki put kada ga student ima.
04/12/23Dr Lazo Roljic151
Treba samo jedanput da ukucate opis predmeta u datoteku predmet. Softver će na ekran izvući opis predmeta i povezati ga sa ocjenama i to ispisati na ekranu kompjutera ili na štampaču kada neko zaželi da to vidi.
04/12/23Dr Lazo Roljic152
Posmatrajući modeliranje podataka kao ovo, moguće je da se razvije izvjestan intuitivni osjećaj za postavljanje vaših datoteka sa ciljem uklanjanja nepotrebne redundancije. To svako može postići!
Samo zapamtite da jedna od osobina za svaku datoteku mora jedinstveno da identifikuje svaku instancu entiteta.
04/12/23Dr Lazo Roljic153
Na primjer, datoteka profesor
apsolutno mora sadržavati neku osobinu (svojstvo) koja jedinstveno identifikuje svakog profesora, na primjer, jmbg profesora. Isto kao i datoteka zgrade, ona apsolutno mora da sadrži osobinu koja jedinstveno identifikuje jednu od svih ostalih zgrada, na fakultetu, na primjer, naziv zgrade.
Ovo se zove dovođenje podataka u treću normalnu formu.
04/12/23Dr Lazo Roljic154
Svaka instanca entiteta zove se “slog” (engl. record).
Na primjer, u datoteci profesor Jovan Doe i njegove osobine čine jedan slog, Sanela Smith i njene osobine čine drugi slog.
Svaka osobina naziva se “polje“ (engl. field) . Na primjer, polje ime, polje adresa, polje datum rodjenja, polje jmbg, itd.
04/12/23Dr Lazo Roljic155
Osobina koja jedinstveno identifikuje svaku instancu naziva se “ključ“ engl. key. Na primjer, ključ za slogove datoteke profesor je jmbg profesora.
Kreiranje datoteke podataka naziva se “modeliranje podataka“ engl. data modeling.
Različiti softverski programi ponekad koriste različiti sistem imenovanja.
04/12/23Dr Lazo Roljic156
Ključ relacije Ključ relacije Atribut ili skup atributa čije vrijednosti
jednoznačno određuju neku n-torku, vrijednost atributa.
Ključ mora imati svojstvo minimalnosti i jednoznačnosti. Minimalni skup atributa čije vrijednosti jednoznačno identifikuju svaku n-torku relacije. Svaka relacija ima najmanje jedan ključ. Ako postoji više ključeva onda se oni nazivaju mogućim ključevima ili kandidatima za ključ.
04/12/23Dr Lazo Roljic157
Relacija općenito može sadržavati više kandidata ključa, jednog od tih kandidata odabiremo za primarni ključ relacije , a ostali su kandidati alternativni ključevi.
POŠTANS BROJ MJESTO n-torka1 n-torka2 JMBG IME PREZIME POŠTANS BROJ n-torka1 n-torka2
04/12/23Dr Lazo Roljic158
Strani ključ (Vanjski ključ) FOREIGN KEY Strani ključ (Vanjski ključ) FOREIGN KEY
Onaj atribut čija je vrijednost primarni ključ u drugoj tabeli (na koju pokazuje).
Primjenjuje se tranzitivna funkcijska zavisnost (referencijalni integritet). Strani ključ u prvoj tabeli mora biti jednak sa primarnim ključem u tabeli na koju pokazuje ili nul vrijednost.
04/12/23Dr Lazo Roljic159
Referencijalni integritet Referencijalni integritet
Ispravnost podataka vezana uz Strani ključ U prvoj tabeli mora biti jednak sa primarnim ključem u tabeli na koju pokazuje ili nul vrijednost. Nijedna vrijednost stranog ključa ne smije biti neuparena (unmached). Strani i primarni ključ mogu se nalaziti i u istoj tabeli!
04/12/23Dr Lazo Roljic160
Entitetski integritet Entitetski integritet
Ispravnost podataka vezana uz Primarni ključ koji mora biti unešen, ne može biti nul vrijednost (ako je složen trebaju biti unešene obje vrijednosti).
04/12/23Dr Lazo Roljic161
Postupak će biti objašnjen na slijedećem Postupak će biti objašnjen na slijedećem primjeru:primjeru:
Potrebno je napraviti bazu koja će nam davati informacije o studentima i ispitima koje su oni položili.
Jedan od problema je odabrati
relevantne podatke za tu obradu.
04/12/23Dr Lazo Roljic162
Relevantan podatak za obradu je onaj podatak koji je za tu obradu važan. Ne postoje apsolutno relevantni podaci, nego su podaci uvijek relevantni s obzirom na neku obradu.
Ovdje bih sada, radi bolje ilustracije, mogao reći jednu definiciju informacije u konceptu baze podataka...
04/12/23Dr Lazo Roljic163
Na primjer, neki student može biti opisan na slijedeći način:
“Dragana Marković je student treće godine Ekonomskog fakulteta u Banjaluci. Ona stanuje u Zelengorskoj ulici broj 17. Ovakav opis sadrži posredno informacije koje mi razumijemo na osnovu iskustva, ali one mogu da se iskažu i na slijedeći način:
“Dragana Marković je ime i prezime studenta, treća je godina studija. Ekonomski fakultet Banja Luka je naziv fakulteta koji student pohađa, a Zelengorska ulica broj 17 je adresa stanovanja studenta.
Iz prednjeg primjera može se uočiti da je informacija o pojmu student sastavljena iz najmanje dva dijela: podataka i konteksta. U informatici je, pored toga, važno da znamo i u kakvom fizičkom obliku su podaci predstavljeni. Prema tome, informaciju (o nekom biću, predmetu ili pojmu) čine:
kontekst, podaci i način fizičkog predstavljanja podataka.
Kao što iz našeg primjera vidimo, kontekst je definisan pomoću niza veličina i isti je za sve slične pojave. Kontekst informacije određuje se tako što se napravi lista veličina koje ga definišu i čije će vrijednosti biti zapisane podacima. U našem primjeru, to su: prezime i ime, godina studija, naziv fakulteta i adresa stanovanja. Takva lista veličina naziva se opis logičkog zapisa ili logičkog sloga.
Upravo osnovna razlika između klasične obrade podataka podržanih datotekama (engl. files) i bazama podataka (eng. data bases) je u tome gdje se lociraju podaci, a gdje kontekst podataka. U klasičnoj obradi podataka (AOP) podaci se čuvaju odvojeno od konteksta i fizički se zapisuju u datotekama podataka, dok se kontekst i način predstavljanja podataka nalaze u programu (programskoj datoteci). Kod obrade podataka podržane bazama podataka i kontekst i podaci se fizički zapisuju u datoteku tipa baze podataka.
Relevantne podatke poznaje korisnik koji i inače radi taj posao. U ovom slučaju to je službenik ili službenica iz studentske službe.
Nakon diskusije s korisnikom definisana su slijedeća polja:
04/12/23Dr Lazo Roljic168
Mbr Predmet Prezime
studenta Ime studenta Datum rodjenja Zenski Šifra predmeta
04/12/23Dr Lazo Roljic169
Naziv predmeta Opis predmeta Sati predavanja Sati vježbi Datum ispita Ocjena ECTS bodovi
2. lekcija
3. lekcija
04/12/23Dr Lazo Roljic170