Download ppt - Wp predavanje rbp

Transcript
Page 1: Wp predavanje rbp

Web programiranje i primjene

Relacijske baze podataka

deseto predavanje11. svibnja 2010.

Page 2: Wp predavanje rbp

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

Page 3: Wp predavanje rbp

Relacijske baze podataka

Page 4: Wp predavanje rbp

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

Page 5: Wp predavanje rbp

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

Page 6: Wp predavanje rbp

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

Page 7: Wp predavanje rbp

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č

Page 8: Wp predavanje rbp

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

Page 9: Wp predavanje rbp

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)

Page 10: Wp predavanje rbp

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)

Page 11: Wp predavanje rbp

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

Page 12: Wp predavanje rbp

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

Page 13: Wp predavanje rbp

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

Page 14: Wp predavanje rbp

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

Page 15: Wp predavanje rbp

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

Page 16: Wp predavanje rbp

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

Page 17: Wp predavanje rbp

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

Page 18: Wp predavanje rbp

• 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