Baza podataka
-
Upload
darko-marjanovic -
Category
Business
-
view
1.286 -
download
4
description
Transcript of 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
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
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
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
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
Za slijedeće entitete odredite vrstu (objekt/događaj)
Predavanje 01 - Baze podataka 6
Učenik
Prijava ispita
Predmet
Profesor
Škola
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
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)
Ž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.
Ž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)
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
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?
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
kreirati entitete grad i adresa i povezati ih!
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
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
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
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
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
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)
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
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
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
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
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
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
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
Mana: dosta praznog prostora u tablici Zaposlenik
Predavanje 01 - Baze podataka 28
Predavanje 01 - Baze podataka 29
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
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
Ž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
Č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
Č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!
Ž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
Č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)
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
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)
Č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