You are on page 1of 40

Predavanje 01 Baze podataka

Definicija i osnovni pojmovi baza podataka Entitet, svojstvo Relacijski model baza podataka Programi za upravljanje s bazama podataka Veze meu entitetima Modeliranje podataka

Predavanje 01 - Baze podataka

Baza podataka
Baza podataka je meusobno povezani skup podataka. Razlikujemo bazu podataka od programa za upravljanje bazom podataka! Program za upravljanje bazom podataka (Database Management System, DBMS) podrazumijeva da su podaci na neki organizirani nain pohranjeni u obliku dostupnom programu.

Predavanje 01 - Baze podataka 2

Naini organizacije podataka


Relacijski model podaci su spremljeni u tablicama, koje su meusobno povezane. Za nas najvaniji model. Hijerarhijski model Mreni model Objektni model

Predavanje 01 - Baze podataka

Model podataka (Data Model)

Model podataka je prikaz


Stvari (objekata, dogaaja) vanih za opis poslovnih procesa Kako su stvari meusobno povezane

Model podataka se stvara i mijenja sve dok ne predstavlja poslovne procese dovoljno dobro da se na osnovu modela moe napraviti baza podataka
Predavanje 01 - Baze podataka 4

Relacijski model

Podaci su organizirani u tablicama. Svaka tablica predstavlja (najee) neki objekt (proizvod, tvrtku, zaposlenika) ili dogaaj (transakciju, raun). Objekt/dogaaj koji je predstavljen u tablici zovemo entitet. Entitet ima svoja svojstva (atribute). Svako svojstvo treba biti nekog tipa podataka. Objekt opisuje neku pojavu, stvar, osobu. Dogaaj naelno opisuje vezu izmeu dva 01 - Baze podataka ili vie entiteta (uglavnom Predavanje objekata).

Primjer 1.

Za slijedee entitete odredite vrstu (objekt/dogaaj)


Student Prijava ispita Predmet Profesor Odsjek
Predavanje 01 - Baze podataka 6

Primjer 2.
Za slijedee entitete odredite vrstu (objekt/dogaaj) Igrai Stadioni Utakmice Klub Treneri

Tipovi podataka u Accessu


Text niz bilo kakvih znakova, duine do 255 znakova. Memo isto kao Text, samo duina do 65535 znakova Number prikaz brojanih vrijednosti potrebnih za razna raunanja. Zbog naina prikaza broja na raunaru, ponekad su potrebna dodatna podeavanja. Date/Time slui za prikaz vremena i datuma Currency slui za raunanje i prikaz novanih vrijednosti. Novane vrijednosti se mogu raunati tano do na 4 decimalna mjesta. AutoNumber Access sam generira vrijednosti u polju ovog tipa i time osigurava da se te vrijednosti ne ponavljaju. Idealan tip za polje koje predstavlja primarni klju. Yes/No dvije vrijednosti, Da ili Ne (0 ili 1) OLE object binarni objekt kojeg umeemo u nau bazu. Moe biti neki Office dokument, slika ili neto 8 Predavanje 01 - Baze podataka

Primjer 3.
U prethodnom zadatku je spomenut entitet Uenik. Navedite neka svojstva tog entiteta i odredite im tip podataka! Naziv uenika (T) Ime roditelja (T)

Datum roenja (D/T) Matini broj(T) JMBG (T)

Adresa (T) Broj telefona (T) Koju kolu pohaa (T)

Predavanje 01 - Baze podataka

Primjer 4.
elimo napraviti bazu podataka u kojoj e meu ostalim entitetima biti i entitet Grad koji e sadravati podatke o gradovima u Europi. Navedite neka svojstva tog entiteta i odredite im tip podataka! Naziv (T) Luki grad (Y/N)

Broj stanovnika (N) Proraun (C) Drava (T) Pokrajina/upanija/oblast (T) Broj automobila (N) Broj mostova (N) itd.
Predavanje 01 - Baze podataka 10

Primjer 4.

elimo napraviti bazu podataka u kojoj e meu ostalim entitetima biti i entitet Raun, koji e sadravati podatke o raunima koje neka tvrtka izdaje Pretpostavite da se raun izdaje samo za jednu vrstu proizvoda!
PDV (C) Broj rauna (T ili N) Datum izdavanja rauna (D/T) Tko izdaje raun (osoba) (T) Nain plaanja (T) Raun plaen (Y/N)
Predavanje 01 - Baze podataka 11

Naziv robe (T) Naziv kupca (T) Koliina (N) Jedinina cijena (C) Ukupna cijena (C)

Relacijski model (nastavak)

U jednom retku tablice drimo sve podatke o konkretnoj realizaciji jedne instance (primjerka) entiteta. Kolona u tablici sadri podatke o nekom svojstvu za sve entitete. Redak tablice zovemo zapis (record). Kolonu tablice zovemo polje (field) Meu poljima treba postojati jedno polje koje na jedinstven nain odreuje zapis. To polje zovemo primarni klju
Predavanje 01 - Baze podataka 12

Primjer tablica Grad

Redak koji opisuje Zagreb Kolona u kojem su navedni nazivi gradova (polje Naziv)

Koliko instanci entiteta Grad je predstavljeno u tablici?


Predavanje 01 - Baze podataka 13

Veze izmeu entiteta

Izmeu entiteta mogu postojati tri vrste veza


Veza 1:1 (jedan-jedan) Veza 1:N (jedan-vie, pie se i 1:) Veza M:N (vie-vie, pie se i :)

Ovisno o tipu veze, vezu realiziramo


ili uklapanjem entiteta u drugi entitet ili umetanjem primarnog kljua jednog entiteta meu svojstva drugog entiteta ili stvaranjem posebne tablice (entiteta)
Predavanje 01 - Baze podataka 14

Zadatak:

Kreirati entitete grad i adresa i povezati ih!

Kako otkriti vrstu veze?


Promatramo entitete za koje znamo da su povezani (u stvarnom svijetu). Nazovimo ih A i B Pitamo se s koliko zapisa iz B moemo povezati neki zapis iz A. Odgovor je 1 ili vie. Pitamo se s koliko zapisa iz A moemo povezati neki zapis iz B. Odgovor je ponovo 1 ili vie. Spojimo odgovore i dobijemo vezu.

Predavanje 01 - Baze podataka 16

Primjer
Zadani su entiteti Uenik, Predmet, Profesor, kola. Utvrdite veze izmeu onih entiteta izmeu kojih postoji direktna veza!

Uenik Uenik Uenik Predmet

- Predmet - Profesor - kola - Profesor

vie-vie ne postoji vie-vie vie-vie vie-vie

Predmet Profesor

- kola - kola

jedan - vie
Predavanje 01 - Baze podataka 17

Primjer
Zadani su entiteti
Drava drave u Europi Grad svi gradovi sa vie od 100000 stanovnika u Europi Glavni grad glavni gradovi europskih drava Jezik svi slubeni jezici u europskim dravama

Odredite veze meu entitetima.


Predavanje 01 - Baze podataka 18

Vrste veze
Drava Drava Drava Grad - Grad - Glavni grad - Jezik - Jezik jedan-vie jedan-jedan vie-vie ne postoji ne postoji

Grad Glavni grad

- Glavni grad - Jezik

ne postoji

Izmeu entiteta Jezik i Grad, te Jezik i Glavni grad ne postoji direktna veza ve se ona realizira preko Drave!
Predavanje 01 - Baze podataka 19

Veza 1-1
Izmeu entitet Drava i Glavni grad Drava ima tano jedan glavni grad, a glavni grad pripada tano jednoj dravi Realizacija veze: sva tri naina su mogua, ovisi o konkretnoj situaciji u bazi Prikazat emo realizaciju uklapanjem.

Predavanje 01 - Baze podataka

20

Drava

Drava i Glavni grad (uklapanje)

Drava
Naziv drave Stanovnika Veliina Ureenje Naziv Ggrada Broj stanovnika

Naziv drave Stanovnika Veliina Ureenje

Glavni grad
Naziv Ggrada Broj stanovnika

Realizacija veze uklapanjem Glavnog grada u Dravu (moe i obrnuto)


Predavanje 01 - Baze podataka 21

Veza 1-
Izmeu entiteta Drava i Grad Drava ima vie gradova, a grad pripada tano jednoj dravi. Realizacija veze: ili umetanjem primarnog kljua ili novom tablicom Umetanje primarnog kljua: imamo entitete A i B. Neka jednom zapisu entiteta A moe odgovarati vie zapisa entiteta B, a jednom zapisu entiteta B odgovara tano jedan zapis entiteta A. Tada meu atribute eniteta B umeemo primarni klju entiteta A!

Predavanje 01 - Baze podataka 22

Drava

Drava i Grad (umetanje prim. kljua)


Entitet Drava se ne mijenja

Naziv drave Stanovnika Veliina Ureenje

Grad
Naziv grada Broj stanovnika Naziv drave
Umetnuti primarni klju entiteta Drava
Predavanje 01 - Baze podataka 23

Grad
Naziv grada Broj stanovnika

Veza -
Izmeu entiteta Drava i Jezik U dravi se moe govoriti vie jezika, a jedan jezik se moe govoriti u vie drava. Realizacija veze: novom tablicom Nova tablica treba imati svoj primarni klju, sadravati primarne kljueve Drave i Jezika, te eventualna dodatna svojstva

Predavanje 01 - Baze podataka

24

Drava i Jezik (nova tablica)


Drava Naziv drave Stanovnika Veliina Ureenje
Drava i Jezik se ne mijenjaju

Primarni klju nove tablice

Jezik Naziv jezika Pismo

Govori_se ID Naziv jezika Naziv drave Broj stanovnika


Dodatno svojstvo

Umetnuti primarni kljuevi entiteta Jezik i Drava

Predavanje 01 - Baze podataka

25

Oblikovanje modela podataka - pripaziti

Tablice trebaju imati znaenje


Svaki redak bi trebao predstavljati jedno pojavljivanje entiteta Jedna tablica ne bi trebala sadravati podatke o nekoliko entiteta
Izbjegava se ponavljanje podataka Olakavaju se izmjene

Razliite kolone za podatke kojima treba neovisno pristupati.


Ako trebate pristupati samo dijelu podataka u nekoj koloni, razdvojite kolone!
Predavanje 01 - Baze podataka 26

Oblikovanje modela pripaziti (2)

Svaka elija sadri tano jednu vrijednost


U prolom primjeru ne bi bilo dobro da smo u entitetu Drava imali svojstvo Jezik koje ima vrijednost talijanski, francuski

Svaka tablica treba imati primarni klju Izbjegavati nepotrebno ponavljanje podataka

Predavanje 01 - Baze podataka

27

Loe ...
Vie podataka u jednoj eliji

Razdvojiti grad od adrese

U tablici imamo podatke o dva entiteta, Zaposlenik i Odjel, tablicu treba razbiti na dvije. Koja je veza izmeu Zaposlenik i Odjel?

to je primarni klju za Zaposlenik ? Treba dodati novo polje: ID ili JMBG


Predavanje 01 - Baze podataka 28

Bolje ...

Mana: dosta praznog prostora u tablici Zaposlenik


Predavanje 01 - Baze podataka 29

Jo bolje ...

Predavanje 01 - Baze podataka

30

Oblikovanje modela podataka

Pri oblikovanju modela podataka treba voditi rauna o slijedeem:


Koji su entiteti potrebni za funkcioniranje baze Koje upite elimo postavljati na bazi Kakve izvjetaje elimo imati u bazi Kakve su veze meu entitetima Koja su svojstva svakog entiteta Trebaju li se neka svojstva entiteta izdvojiti u posebnu tablicu?
Predavanje 01 - Baze podataka 31

Oblikovanje modela jo neka pitanja


Koji su entiteti? Postoje li veze izmeu njih? Kakva je vrsta veze? Postoje li neki dodatni uvjeti? Kakve tablice trebamo za prikaz entiteta? to je primarni klju svake tablice? Koja su ostala polja u tablici? Koja polja/tablice trebamo za prikaz veze? Jesmo li neto zaboravili???

Predavanje 01 - Baze podataka

32

Primjer
elimo napraviti model podataka za videoteku. Potrebno je pratiti podatke o lanovima, o filmovima te o posudbama koje lanovi rade. Zbog jednostavnosti pretpostavljamo da lanovi posuuju jedan film. Takoer, treba znati koji je djelatnik posudio film. Za film se treba znati kojeg je anra da bi filmove mogli sloiti na police, te da li je vraen ili ne. Pretpostavljamo da imamo tonu jednu kopiju filma. Napravite model!

Predavanje 01 - Baze podataka 33

Entiteti i veze
Entiteti lan podaci o lanovima Film podaci o filmovima Posudba podaci o posudbi Djelatnik podaci o djelatniku

Veze lan - Posudba 1-

Film

- Posudba

1-
1-
Predavanje 01 - Baze podataka 34

Djelatnik - Posudba

Svojstva
lan

ifra lana (T) Ime i prezime (T) Adresa (T) Broj telefona (T) Napomena (M)

Posudba
ifra posudbe (AN) ifra lana (T) ifra filma (N) Id djelatnika (N) Datum (D/T) Cijena (C) Film vraen (Y/N)

Film
ifra filma (AN) Naziv filma (T) anr (T)

U raznim tablicama povezujemo polja koja imaju isto znaenje. Ta polja trebaju biti istog tipa. Izuzetak je polje tipa Autonumber koji se povezuje s poljem tipa Number u drugoj tablici!

Djelatnik Id djelatnika (AN) Ime i prezime (T) Adresa (T) Broj telefona (T) Napomena (M)

Predavanje 01 - Baze podataka

35

Nove elje

elimo omoguiti lanovima videoteke da mogu dobiti popis filmova u kojima nastupa njihov omiljeni glumac. Koje preinake (dodavanje novih entiteta, dodavanje novih svojstava postojeim entitetima) treba napraviti?

Predavanje 01 - Baze podataka

36

Novi model
lan

ifra lana (T) Ime i prezime (T) Adresa (T) Broj telefona (T) Napomena (M)

Posudba
ifra posudbe (AN) ifra lana (T) ifra filma (N) Id djelatnika (N) Datum (D/T) Cijena (C) Film vraen (Y/N)

Djelatnik Id djelatnika (AN) Ime i prezime (T) Adresa (T) Broj telefona (T) Napomena (M)

Glumac Film
ifra filma (AN) Naziv filma (T) anr (T)

GlumacFilm
Id (AN) ifra filma (N) Id glumca (N)

Id glumca (AN) Ime i prezime (T) Godina ro. (N) Nagrade (M)
37

Predavanje 01 - Baze podataka

Novo proirenje...

Prethodni model je napravljen uz pretpostavku da lan posuuje tano jedan film. Meutim, u praksi lanovi mogu posuditi vie filmova. Prepravite model tako da omogui i taj sluaj!

Predavanje 01 - Baze podataka

38

Novi model

Tablice lan, Djelatnik, Glumac, GlumacFilm ostaju iste kao u prethodnom modelu

Stavka

Posudba
ifra posudbe (AN) ifra lana (T) Id djelatnika (N) Datum (D/T) Cijena (C)

Film
ifra filma (AN) Naziv filma (T) anr (T)

Id stavka (AN) ifra filma (N) ifra posudbe (N) Film vraen (Y/N)

Predavanje 01 - Baze podataka

39

Posljednji model
lan ifra lana Ime i prezime Adresa Broj telefona Napomena Glumac Id glumca Ime i prezime Godina ro. Nagrade

Posudba ifra posudbe ifra lana Id djelatnika Datum Cijena Film ifra filma Naziv filma anr
GlumacFilm Id ifra filma Id glumca

Djelatnik Id djelatnika Ime i prezime Adresa Broj telefona Napomena

Stavka Id Stavka ifra posudbe ifra filma Film vraen

Predavanje 01 - Baze podataka

40

You might also like