Wp predavanje rbp
-
Upload
dejan-marinkovic -
Category
Education
-
view
118 -
download
12
description
Transcript of Wp predavanje rbp
Web programiranje i primjene
Relacijske baze podataka
deseto predavanje11. svibnja 2010.
Relacijske baze podatakaDefinicija
• baza podataka • skup podataka koji je organiziran tako da se podacima može brzo i
jednostavno pristupiti, uređivati ih i ažurirati• relacijska baza podataka
• skup relacija koje nazivamo tablicama čijem se sadržaju (tj. podacima) pristupa kreiranjem preciznih upita temeljenih na zajedničkim obilježjima podataka
• prednost - rezultirajući skup podataka je organiziran, jasan i jednostavan za daljnje korištenje
• primjer - podaci o studentima u referadi; podaci o prodaju u tregovačkom centru...
• RDBMS• software za upravljanje i manipuliranje relacijskim bazama podataka• za rad s relacijskim bazama podataka mi ćemo koristiti MySQL
Relacijske baze podataka
Relacijske baze podatakaPredosti
• prednosti relacijskih baza podataka
– omogućuju brz i jednostavan pristup podacima– omogućuju jednostavno kreiranje upita i pristupanje skupu podataka
koji zadovoljavaju određeni kriterij– imaju ugrađen mehanizam za rješavanje problema istovremenog
pristupa– imaju ugrađen sustav ovlaštenja
Relacijske baze podatakaStruktura
• tablica – osnovna jedinica relacijske baze podataka– sadrži podatke organizirane u stupce (eng. columns, fields ili
attributes) i redove (eng. rows)– u relacijskoj bazi podataka karakterizirana je jedinstvenim imenom te
pripadnim brojem stupaca i redova
Osoba
ID JMBG Osoba Adresa
1 1009981304532 Ivić, Ivan Istarska 7, 31000 Osijek
2 1203980123456 Antić, Ante Sljemenska 5, 31000 Osijek
3 1507982342876 Marić, Marija Kornatska 10, 31000 Osijek
Relacijske baze podatakaStruktura
• elementi tablice
– stupci – svaki stupac u tablici ima jedinsveno ime i sadrži podatke određenog tipa (ID – podaci su tipa integer; Osoba i Adresa – podaci su tipa string)
– redovi – sadrže sve podatke (koji su pohranjeni u tablici) o jednoj instanci tablice
– vrijednosti – svaki red sastoji se od skupa vrijednosti od kojih svaka pripada drugom stupcu i pripada tipu podataka karakterističnom za taj stupac
Relacijske baze podatakaStruktura• elementi tablice
– ključ – jedinstvena i nedvosmislena identifikacija instance u tablici– primjer:
• Osoba kao ključ – loš odabir jer ne mora biti jedinstveno, tj. više osoba može imati jednako ime i prezime
• Adresa kao ključ – loš odabir jer ne mora biti jedinstvena, npr. više osoba može imati istu adresu
• ID ili JMBG kao ključ – odličan odabir jer predstavlja jedinstvenu idetifikaciju svake osobe u tablici
– primarni ključ (eng. primary key) - identifikacijski stupac/stupci u tablici • može se sastojati od jednog stupca (npr. samo stupca ID ili stupca JMBG)• može se sastojati od više stupaca (npr. cjeline stupaca Osoba i Adresa)
– sekundarni ključ (eng. foreign key) - stupac u tablici relacijeske baze podataka koji služi za povezivanje te tablice s tablicom u kojoj je stupac istog sadržaja i tipa podataka primarni ključ
Relacijske baze podatakaStruktura
Osoba (JMBG – primarni ključ)
Premija (PID – primarni ključ JMBG – sekundarni ključ)
ID JMBG Osoba Adresa
1 1009981304532 Ivić, Ivan Istarska 7, 31000 Osijek
2 1203980123456 Antić, Ante Sljemenska 5, 31000 Osijek
3 1507982342876 Marić, Marija Kornatska 10, 31000 Osijek
PID JMBG Tvrtka RadnoMjesto
1 1009981304532 Hotel Osijek kuhar
2 1203980123456 Podravka d.d. manager
3 1507982342876 Našicecement d.d. referent
4 1009981304532 Hotel Central konobar
Relacijske baze podatakaShema
• struktura tablice – jednostavno i jasno opisana na sljedeći način: ImeTablice(ImeStupca1, ImeStupca2, ...)
• shema relacijske baze podataka– skup struktura svih tablica sadržanih u toj relacijskoj bazi podataka– nacrt relacijske baze podataka– ne sadrži nikakve podatke– mora sadržavati informacije o imenu tablice, svim stupcima tablice,
primarnom ključu te svim sekundarnim ključevima• način prikazivanja sheme – neformalni dijagram– dijagram relacija i entiteta– tekstualna forma: Osoba(ID, JMBG, Ime, Adresa)
Premija(PID, JMBG, Tvrtka, RadnoMjesto)
Relacijske baze podatakaRelacije
• sekundarni ključ– poveznica podataka u dvjema tablicama– npr. stupac JMBG uspostavlja vezu među redovima tablica Osoba (gdje je
JMBG primarni ključ) i Premija (gdje je JMBG sekundarni ključ)• tri tipa relacija u relacijskim bazama podataka
– jedan prema jedan (eng. one-to-one): • svaki red prve tablice povezan je s točno jednim redom druge tablice
– jedan prema više (eng. one-to-many): • svaki red prve tablice povezan je s više redova druge tablice (npr.
jedna osoba može imati više radnih mjesta)• druga tablica je sekundarnim ključem povezana s prvom tablicom
(npr. JMBG je sekundarni ključ tablice Premija)– više prema više (eng. many-to-many):
• više redova prve tablice povezano je s više redova druge tablice (npr. jedna osoba može imati više tipova osiguranja, ali i jedan tip osiguranja može koristiti više ljudi)
Projektiranje relacijske baze podataka
• problem – pri projektiranju relacijske baze podataka treba predvidjeti skupove podataka iz baze koji bi nam mogli zatrebati u budućnosti te treba voditi računa o pravilnom odabiru primarnih ključeva
• model – u bazu podataka najčešće upisujemo stvarne podatke, tj. pravimo
svojevrstan model koji uključuje objekte i pripadne odnose iz stvarnog svijeta
– svakom objektu treba pripadati jedna tablica u relacijskoj bazi• primjer
– ako želimo napraviti relacijsku bazu podataka koja sadrži podatke o tipovima i premijama osiguranja koje nudi neka osiguravajuća tvrtka te podatke o osobama, njihovim adresama i radnim mjestima, tada uz tablice Osoba i Premija relacijska baza podataka mora sadržavati još jednu tablicu – nazvat ćemo ju Osiguranje
Projektiranje relacijske baze podatakaPrimjer
Osoba
Premija Osiguranje
ID JMBG Osoba Adresa
1 1009981304532 Ivić, Ivan Istarska 7, 31000 Osijek
2 1203980123456 Antić, Ante Sljemenska 5, 31000 Osijek
3 1507982342876 Marić, Marija Kornatska 10, 31000 Osijek
PID JMBG Tvrtka RadnoMjesto
1 1009981304532 Hotel Osijek kuhar
2 1203980123456 Podravka d.d. manager
3 1507982342876 Našicecement d.d. referent
4 1009981304532 Hotel Central konobar
OID Tip PrPemija
A auto os. 1500
N os. Nekretnine 2000
Z životno os. 1000
Projektiranje relacijske baze podatakaSuvišnost podataka• zašto npr. ne spremiti adresu osobe u tablicu Premija?
• zato što na taj način adrese osoba koje imaju više zaposlenje spremamo više puta u bazu podataka– nepotrebno trošenje prostora – neusklađenost pri ažuriranju i narušavanje integriteta podataka
• pri izmjenama – npr. pri promjeni adrese moramo ju mijenjati na više mjesta u bazi podataka
• pri unosu – npr. pri unosu svakog novog radnog mjesta iste osobe moramo unijeti i adresu
• pri brisanju – npr. pri brisanju jednog od radnih mjesta neke osobe moramo brisati i adresu
PID JMBG Adresa Tvrtka RadnoMjesto
1 1009981304532 Istarska 7, 31000 Osijek Hotel Osijek kuhar
2 1203980123456 Sljemenska 5, 31000 Osijek Podravka d.d. manager
3 1507982342876 Kornatska 10, 31000 Osijek Našicecement d.d. referent
4 1009981304532 Istarska 7, 31000 Osijek Hotel Central konobar
5 1009981304532 Istarska 7, 31000 Osijek Caffe bar vikend-konobar
Projektiranje relacijske baze podatakakorisni savjeti
• polja tablice trebaju sadržavati atomarne (jednostavne) vrijednosti – podaci u poljima se ne mogu razložiti na jednostavnije podatke, a to je moguće postići na nekoliko načina (od kojih su neki efikasniji od drugih)
• primjer 1:
– ovim pristupom zapravo cijelu tablicu Osiguranje smještamo u stupac TipOsiguranja tablice Posao čime otežavamo odgovore na pitanja tipa “Koliko polica osiguranja tipa A je prodano?”
PID JMBG Tvrtka RadnoMjesto TipOsiguranja
1 1009981304532 Hotel Osijek kuhar auto os.
2 1203980123456 Podravka d.d. manager auto os.
3 1507982342876 Našicecement d.d. referent životno os.
4 1009981304532 Hotel Central konobar os. nekretnine
Projektiranje relacijske baze podatakakorisni savjeti
• primjer 2 (efikasnije rješenje problema iz primjera 1):– efikasnije je napraviti potpuno novu tablicu u relacijskoj bazi podataka
– iz ove tablice vidljivo je koje osobe imaju koju premiju osiguranja te također koja premija osiguranja pripada kojim osobama
– primjer many-to-many relacije
OID JMBG Količina
A 1009981304532 1
A 1203980123456 1
Z 1507982342876 1
N 1009981304532 1
Projektiranje relacijske baze podatakakorisni savjeti
• odabir ključa - jedinstvenost treba biti osnovno pravilo kod odabira primarnog ključa
• ključevi u našem primjeru:– JMBG – (prirodni) ključ za identifikaciju osobe– ID – (kreirani) ključ za identifikaciju osobe– PID – (kreirani) ključ za identifikaciju sklapanja premije osiguranja– OID – (kreirani) ključ za identifikaciju tipa osiguranja– cjelina OID i JMBG – (kreirani) ključ za identifikaciju količine osiguranja
određenog tipa po osobi• predikcija informativnih skupova podataka iz baze - pri kreiranju
relacijske baze podataka treba razmišljati o tome što bi nas moglo zanimati, tj. koje bismo skupove podataka pomoću upita željeli dobiti iz baze
• treba izbjegavati kreiranje stupaca u kojima se može naći puno praznih polja
Projektiranje relacijske baze podatakatipovi tablica
dvije vrste tablica u relacijskoj bazi podataka:
• osnovne tablice– tablice koje sadrže podatke o stvarnim objektima, a s drugim
tablicama u bazi nalaze se u one-to-one ili one-to many relacijama– npr. jedna osoba može biti korisnik više polica osiguranja, ali jedna
polica osiguranja pripada samo jednoj osobi
• spojene tablice– služe za uspostavljanje many-to-many relacije između dviju osnovnih
tablica– takva bi bila tablica koja uspostavlja vezu između npr. tablica Premija i
Osiguranje
• klijent – server komunikacija (obrađena na prvom predavanju) • isporuka statičkih web stranica
• isporuka dinamičkih web stranica
• izrada MySQL baze podataka za web, XAMP – vježbe• SQL i njegove naredbe - predavanja
Relacijske baze podatakaWeb arhitektura