39
Predavanje 01 - Baze podataka 1 Definicija i osnovni pojmovi baza podataka Entitet, svojstvo Relacijski model baza podataka Programi za upravljanje s bazama podataka Veze među entitetima Modeliranje podataka

Baza podataka

Embed Size (px)

DESCRIPTION

dvfasdcsdcs

Citation preview

Page 1: Baza podataka

Predavanje 01 - Baze podataka 1

Definicija i osnovni pojmovi baza podataka Entitet, svojstvo

Relacijski model baza podataka Programi za upravljanje s bazama podataka

Veze među entitetima Modeliranje podataka

Page 2: Baza podataka

Baza podataka je organizirana zbirka 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 način pohranjeni u obliku dostupnom programu.

Predavanje 01 - Baze podataka 2

Ivo Beroš, 09/28/2006
Baza podataka je npr. telefonski imenik, podaci o zaposlenicima koji se vode u obliku raznih kartoteka i sličnoOvdje treba istaknuti mane papirnatih baza podataka (sortiranje po jednom kriteriju, glomaznost) i naglasiti prednosti elektroničkih baza podataka. Primjer: telefonski imenikU programe za rad s bazama podataka u prvom redu ubrajamo Access (zbog toga jer je relativno jednostavno dostupan), FoxPro, Oracle, Informix, DB2 ...
Page 3: Baza podataka

Relacijski model – podaci su spremljeni u tablicama, koje su međusobno povezane. Za nas najvažniji model.

Hijerarhijski model Mrežni model Objektni model

Predavanje 01 - Baze podataka 3

Ivo Beroš, 09/28/2006
Ova tri modela samo spomenuti.Može se još nadodati i hipertekstualni model (literatura koju sam konzultirao nije jednistvena u tome da li je riječ o modelu ili nije)
Page 4: Baza podataka

Model podataka je prikaz Stvari (objekata, događaja) važnih za opis poslovnih

procesa Kako su stvari međusobno povezane

Model podataka se stvara i mijenja sve dok ne predstavlja poslovne procese dovoljno dobro da se na osnovu modela može napraviti baza podataka

Predavanje 01 - Baze podataka 4

Page 5: Baza podataka

Podaci su organizirani u tablicama. Svaka tablica predstavlja (najčešće) neki

objekt (proizvod, tvrtku, zaposlenika) ili događaj (transakciju, račun).

Objekt/događaj 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. Događaj načelno opisuje vezu između

dva ili više entiteta (uglavnom objekata).Predavanje 01 - Baze podataka 5

Page 6: Baza podataka

Za slijedeće entitete odredite vrstu (objekt/događaj)

Predavanje 01 - Baze podataka 6

Učenik

Prijava ispita

Predmet

Profesor

Škola

Page 7: Baza podataka

Text – niz bilo kakvih znakova, duljine do 255 znakova. Memo – isto kao Text, samo duljina do 65535 znakova Number – prikaz brojčanih vrijednosti potrebnih za razna

računanja. Zbog načina prikaza broja u računalu, ponekad su potrebna dodatna podešavanja.

Date/Time – služi za prikaz vremena i datuma Currency – služi za računanje i prikaz novčanih

vrijednosti. Novčane vrijednosti se mogu računati točno 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 umećemo u našu bazu.

Može biti neki Office dokument, slika ili nešto drugo. Hyperlink – veza prema nekom drugom dokumentu bilo

na disku bilo na InternetuPredavanje 01 - Baze podataka 7

Page 8: Baza podataka

U prethodnom zadatku je spomenut entitet Učenik. Navedite neka svojstva tog entiteta i odredite im tip podataka!

Predavanje 01 - Baze podataka 8

• Naziv učenika (T)• Datum rođenja (D/T)• Matični broj(T)• JMBG (T)• OIB (T)

• Ime roditelja (T)• Adresa (T)• Broj telefona (T)• Koju školu pohađa

(T)

Page 9: Baza podataka

Želimo napraviti bazu podataka u kojoj će među ostalim entitetima biti i entitet Grad koji će sadržavati podatke o gradovima u Europi. Navedite neka svojstva tog entiteta i odredite im tip podataka!

Predavanje 01 - Baze podataka 9

• Naziv (T)• Broj stanovnika (N)• Država (T)• Broj automobila (N)

• Lučki grad (Y/N)• Proračun (C)• Pokrajina/županija/oblast (T)• Broj mostova (N)• itd.

Page 10: Baza podataka

Želimo napraviti bazu podataka u kojoj će među ostalim entitetima biti i entitet Račun, koji će sadržavati podatke o računima koje neka tvrtka izdaje Pretpostavite da se račun izdaje samo za jednu vrstu proizvoda!

Predavanje 01 - Baze podataka 10

• Naziv robe (T)• Naziv kupca (T)• Količina (N)• Jedinična cijena (C)• Ukupna cijena (C)

• PDV (C)• Broj računa (T ili N)• Datum izdavanja računa (D/T)• Tko izdaje račun (osoba) (T)• Način plaćanja (T)• Račun plaćen (Y/N)

Page 11: Baza podataka

U jednom retku tablice držimo sve podatke o konkretnoj realizaciji jedne instance entiteta.

Stupac u tablici sadrži podatke o nekom svojstvu za sve entitete.

Redak tablice zovemo zapis (record). Stupac tablice zovemo polje (field) Među poljima treba postojati jedno polje koje

na jedinstven način određuje zapis. To polje zovemo primarni ključ

Predavanje 01 - Baze podataka 11

Page 12: Baza podataka

Redak koji opisuje “Zagreb”

Predavanje 01 - Baze podataka 12

Stupac u kojem sunavedni nazivi gradova (polje Naziv)

Koliko instanci entiteta Grad je predstavljeno u tablici?

Page 13: Baza podataka

Između entiteta mogu postojati tri vrste veza Veza 1:1 (jedan-jedan) Veza 1:N (jedan-više, piše se i 1:∞) Veza M:N (više-više, piše se i ∞:∞)

Ovisno o tipu veze, vezu realiziramo ili uklapanjem entiteta u drugi entitet ili umetanjem primarnog ključa jednog entiteta

među svojstva drugog entiteta ili stvaranjem posebne tablice (entiteta)

Predavanje 01 - Baze podataka 13

Page 14: Baza podataka

kreirati entitete grad i adresa i povezati ih!

Page 15: Baza podataka

Promatramo entitete za koje znamo da su povezani (u stvarnom svijetu). Nazovimo ih A i B

Pitamo se s koliko zapisa iz B možemo povezati neki zapis iz A. Odgovor je 1 ili više.

Pitamo se s koliko zapisa iz A možemo povezati neki zapis iz B. Odgovor je ponovo 1 ili više.

Spojimo odgovore i dobijemo vezu.

Predavanje 01 - Baze podataka 15

Page 16: Baza podataka

Zadani su entiteti Student, Kolegij, Predavač, Studij

Utvrdite veze između onih entiteta između kojih postoji direktna veza!

Predavanje 01 - Baze podataka 16

Učenik - Predmet

Učenik - Profesor

Učenik - Škola

Predmet - Profesor

Predmet - Škola

Profesor - Škola

više-više

jedan - više

više-više

više-više

više-više

ne postoji

Page 17: Baza podataka

Zadani su entiteti Država – države u Europi Grad – svi gradovi sa više od 100000 stanovnika u

Europi Glavni grad – glavni gradovi europskih država Jezik – svi službeni jezici u europskim državama

Odredite veze među entitetima.

Predavanje 01 - Baze podataka 17

Page 18: Baza podataka

Između entiteta Jezik i Grad, te Jezik i Glavni grad ne postoji direktna veza već se ona realizira preko Države!

Predavanje 01 - Baze podataka 18

Država - Grad

Država - Glavni grad

Država - Jezik

Grad - Jezik

Grad - Glavni grad

Glavni grad - Jezik

više-više

jedan-više

jedan-jedan

ne postoji

ne postoji

ne postoji

Page 19: Baza podataka

Između entitet Država i Glavni grad Država ima točno jedan glavni grad, a glavni

grad pripada točno jednoj državi Realizacija veze: sva tri načina su moguća, ovisi

o konkretnoj situaciji u bazi Prikazat ćemo realizaciju uklapanjem.

Predavanje 01 - Baze podataka 19

Page 20: Baza podataka

Država Naziv države Stanovnika Veličina Uređenje

Predavanje 01 - Baze podataka 20

Glavni grad– Naziv grada– Broj stanovnika

Država– Naziv države– Stanovnika

– Veličina– Uređenje– Naziv grada– Broj stanovnika

Realizacija veze uklapanjem Glavnog grada u Državu (može i obrnuto)

Page 21: Baza podataka

Između entiteta Država i Grad Država ima više gradova, a grad pripada točno

jednoj državi. Realizacija veze: ili umetanjem primarnog

ključa ili novom tablicom Umetanje primarnog ključa: imamo entitete A

i B. Neka jednom zapisu entiteta A može odgovarati više zapisa entiteta B, a jednom zapisu entiteta B odgovara točno jedan zapis entiteta A. Tada među svojstva eniteta B umećemo primarni ključ entiteta A!

Predavanje 01 - Baze podataka 21

Page 22: Baza podataka

Država Naziv države Stanovnika Veličina Uređenje

Predavanje 01 - Baze podataka 22

Grad– Naziv grada– Broj stanovnika

Grad– Naziv grada

– Broj stanovnika– Naziv države

Umetnuti primarni ključ entiteta Država

Entitet Država se ne mijenja

Page 23: Baza podataka

Između entiteta Država i Jezik U državi se može govoriti više jezika, a jedan

jezik se može govoriti u više država. Realizacija veze: novom tablicom Nova tablica treba imati svoj primarni ključ,

sadržavati primarne ključeve Države i Jezika, te eventualna dodatna svojstva

Predavanje 01 - Baze podataka 23

Page 24: Baza podataka

Država– Naziv

države– Stanovnika– Veličina– Uređenje

Predavanje 01 - Baze podataka 24

Jezik– Naziv jezika– Pismo

Govori_se– ID– Naziv jezika– Naziv države– Broj stanovnika

Umetnuti primarni ključevi entiteta Jezik iDržava

Država i Jezik se ne mijenjaju

Primarni ključ nove tablice

Dodatno svojstvo

Page 25: Baza podataka

Tablice trebaju imati značenje Svaki redak bi trebao predstavljati jedno

pojavljivanje entiteta Jedna tablica ne bi trebala sadržavati podatke o

nekoliko entiteta Izbjegava se ponavljanje podataka Olakšavaju se izmjene

Različiti stupci za podatke kojima treba neovisno pristupati. Ako trebate pristupati samo dijelu podataka u

nekom stupcu, razdvojite stupac!

Predavanje 01 - Baze podataka 25

Page 26: Baza podataka

Svaka ćelija sadrži točno jednu vrijednost U prošlom primjeru ne bi bilo dobro da smo u

entitetu Država imali svojstvo Jezik koje ima vrijednost talijanski, francuski

Svaka tablica treba imati primarni ključ Izbjegavati nepotrebno ponavljanje podataka

Predavanje 01 - Baze podataka 26

Page 27: Baza podataka

U tablici imamo podatke o dva entiteta, Zaposlenik i Odjel, tablicu treba razbiti na dvije.

Koja je veza između Zaposlenik i Odjel?

Predavanje 01 - Baze podataka 27

Više podataka u jednoj ćelijiRazdvojiti grad od adrese

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

Page 28: Baza podataka

Mana: dosta praznog prostora u tablici Zaposlenik

Predavanje 01 - Baze podataka 28

Page 29: Baza podataka

Predavanje 01 - Baze podataka 29

Page 30: Baza podataka

Pri oblikovanju modela podataka treba voditi računa o slijedećem:◦ Koji su entiteti potrebni za funkcioniranje baze◦ Koje upite želimo postavljati na bazi◦ Kakva izvješća želimo imati u bazi◦ Kakve su veze među entitetima◦ Koja su svojstva svakog entiteta◦ Trebaju li se neka svojstva entiteta izdvojiti u posebnu

tablicu?

Predavanje 01 - Baze podataka 30

Page 31: Baza podataka

Koji su entiteti? Postoje li veze između 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 nešto zaboravili???

Predavanje 01 - Baze podataka 31

Page 32: Baza podataka

Ž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 posuđuju jedan film. Također, treba znati koji je djelatnik posudio film. Za film se treba znati kojeg je žanra da bi filmove mogli složiti na police, te da li je vraćen ili ne. Pretpostavljamo da imamo točnu jednu kopiju filma.

Napravite model!

Predavanje 01 - Baze podataka 32

Page 33: Baza podataka

Član – podaci o članovima Film – podaci o filmovima Posudba – podaci o posudbi Djelatnik – podaci o djelatniku

Predavanje 01 - Baze podataka 33

Član - Posudba 1 - ∞

Film - Posudba 1 - ∞

Djelatnik - Posudba 1 - ∞

Veze

Entiteti

Page 34: Baza podataka

Član Šifra člana (T) Ime i prezime

(T) Adresa (T) Broj telefona

(T) Napomena (M)

Predavanje 01 - Baze podataka 34

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

Posudba Šifra posudbe (AN) Šifra člana (T) Šifra filma (N) Id djelatnika (N) Datum (D/T) Cijena (C) Film vraćen (Y/N)

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

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

Page 35: Baza podataka

Želimo omogućiti članovima videoteke da mogu dobiti popis filmova u kojima nastupa njihov omiljeni glumac. Koje preinake (dodavanje novih entiteta, dodavanje novih svojstava postojećim entitetima) treba napraviti?

Predavanje 01 - Baze podataka 35

Page 36: Baza podataka

Član Šifra člana (T) Ime i prezime

(T) Adresa (T) Broj telefona

(T) Napomena (M)

Predavanje 01 - Baze podataka 36

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

Posudba Šifra posudbe (AN) Šifra člana (T) Šifra filma (N) Id djelatnika (N) Datum (D/T) Cijena (C) Film vraćen (Y/N)

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

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

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

Page 37: Baza podataka

Prethodni model je napravljen uz pretpostavku da član posuđuje točno jedan film. Međutim, u praksi članovi mogu posuditi više filmova.Prepravite model tako da omogući i taj slučaj!

Predavanje 01 - Baze podataka 37

Page 38: Baza podataka

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

Predavanje 01 - Baze podataka 38

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

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

Stavka Id stavka (AN) Šifra filma (N) Šifra posudbe (N) Film vraćen (Y/N)

Page 39: Baza podataka

Član Šifra člana Ime i prezime Adresa Broj telefona Napomena

Predavanje 01 - Baze podataka 39

Stavka Id Stavka Šifra posudbe Šifra filma Film vraćen

Film Šifra filma Naziv filma Žanr

Posudba Šifra posudbe Šifra člana Id djelatnika Datum Cijena

Djelatnik Id djelatnika Ime i prezime Adresa Broj telefona Napomena

Glumac Id glumca Ime i prezime Godina rođ. Nagrade

GlumacFilm Id Šifra filma Id glumca