000 lekcija1.2 baze podataka 01 uvod u modeliranje podataka 170 sl

170
10/26/22 Dr Lazo Roljic 1 BAZE PODATAKA BAZE PODATAKA Uvod u modeliranje Uvod u modeliranje podataka podataka Prof. dr Lazo Roljić

Upload: moby22

Post on 23-Jul-2015

113 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic1

BAZE PODATAKABAZE PODATAKA

Uvod u modeliranje podatakaUvod u modeliranje podataka

Prof. dr Lazo Roljić

Page 2: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 3: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 4: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 5: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic5

Page 6: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 7: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 8: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 9: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 10: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 11: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 12: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

U upravljanje podacima spada:U upravljanje podacima spada:

Dizajniranje podataka informacionog sistema

Održavanje podataka informacionog sistema

04/12/2312

Page 13: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 14: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic14

Page 15: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic15

Page 16: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 17: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 18: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 19: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

Podaci su logički organizovani po nekom modelu.

Model čini osnovu za osmišljavanje, definisanje i implementiranje baze podataka.

04/12/23Dr Lazo Roljic19

Page 20: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 21: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 22: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/2322

Relacioni model:

Page 23: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic23

Page 24: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/2324

Hijerarhijski model:Na primjer: Sistem datoteka u Linux-u, DOS-u, UNIX-u itd.

Page 25: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/2325

Hijerarhijski model:

Page 26: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/2326

Mrežni model:Skica podataka o registrovanim autima

Page 27: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 28: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 29: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 30: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 31: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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)

Page 32: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 33: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 34: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 35: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 36: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 37: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 38: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 39: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 40: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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:

Page 41: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

“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“.

Page 42: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

...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.

Page 43: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

...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.

Page 44: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 45: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 46: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 47: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 48: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 49: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 50: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 51: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 52: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 53: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 54: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 55: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 56: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 57: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

Jedan loš primjer polja entiteta.

04/12/23Dr Lazo Roljic57

Page 58: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 59: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 60: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 61: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 62: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 63: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 64: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 65: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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!

Page 66: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 67: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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:

Page 68: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic68

Opis Vrijednost

1990 Nissan Micra K10 2,500 €

Petrof Pianino 1,600 €

Kamacrown TV 300 €

Page 69: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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:

Page 70: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 71: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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?

Page 72: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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!

Page 73: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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:

Page 74: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic74

Ime člana Adresa člana

Andreja 80 Pleasant St., Ljubija, PD

Dragan 7 D St, Novi Grad, NG

Datoteka član

Page 75: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic75

Drugi opšti tip informacija bio je informacije o knjigama. To bi izgledalo ovako:

Page 76: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic76

Naslov knjige Autor knjige

Tenis! Scott Brook

Košarka! Tom Brown

Balet! Susan Thomas

Datoteka knjiga

Page 77: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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:

Page 78: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 79: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic79

Ova datoteka nazvana je presjek (intersection), jer je ona neka vrsta presjeka između datoteke korisnik i datoteke knjiga.

Page 80: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 81: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 82: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 83: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic83

Dakle, softver je započeo da sakuplja podatke iz datoteka član i presjek, slično kao:

Page 84: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 85: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 86: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 87: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 88: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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?

Page 89: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 90: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 91: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 92: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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!"

Page 93: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 94: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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:

Page 95: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 96: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 97: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

… … 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

Page 98: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 99: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 100: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 101: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

Š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

Page 102: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

Jedan od alata za crtanje E-R dijagrama je program Visio sa dodatkom Stencill-a za E-R dijagrame.

04/12/23Dr Lazo Roljic102

Page 103: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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:

Page 104: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

Š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

Page 105: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 106: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 107: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 108: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 109: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 110: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 111: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 112: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 113: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 114: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 115: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

……šš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

Page 116: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 117: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 118: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 119: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 120: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 121: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 122: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 123: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 124: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 125: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 126: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 127: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 128: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 129: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 130: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 131: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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).

Page 132: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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)

Page 133: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 134: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic134

A, da li biste znali konvertovati ovaj E-R dijagram u tabelarnu šemu baze podataka?

Page 135: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 136: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

Kreiranje prve tabele u Access-u izgledalo bi ovako:

04/12/23Dr Lazo Roljic136

Page 137: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic137

Page 138: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 139: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.).

Page 140: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 141: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 142: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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:

Page 143: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic143

STUDENTime studentaadresa studentajmbg studentadatum rođenja studentaitd.

Page 144: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic144

PREDMETnaziv predmetaid_broj predmetaopis predmetaects bodovisala u kojoj se održava predmet

itd.

Page 145: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

04/12/23Dr Lazo Roljic145

PROFESORime profesorajmbg profesoraprofesorova kućna adresalokacija kabineta profesoratelefonski broj profesoraitd.

Page 146: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 147: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 148: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 149: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 150: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 151: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 152: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 153: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 154: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 155: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 156: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 157: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 158: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 159: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 160: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 161: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 162: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 163: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 164: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 165: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 166: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 167: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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.

Page 168: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 169: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

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

Page 170: 000 Lekcija1.2 Baze Podataka 01 Uvod u Modeliranje Podataka 170 Sl

2. lekcija

3. lekcija

04/12/23Dr Lazo Roljic170