18
Web programiranje i primjene Relacijske baze podataka deseto predavanje 11. svibnja 2010.

Wp predavanje rbp

Embed Size (px)

DESCRIPTION

World Wide Web (Web) je svjetska mreža računala s izvorima (engl. resources) digitalne informacije. S obzirom na raznolikost digitalne informacije: tekst, slika, zvuk, video, program i dr. govorimo općenito o izvoru informacije ili WEB dokumentu. WEB programiranje se oslanja na tri mehanizma koja čine ove izvore dostupnima najširoj svjetskoj javnosti: 1. Jedinstvena shema imena za traženje (lociranje) izvora na mreži. 2. Protokoli za pristup informaciji preko WEB-a, kao što je npr. HTTP protokol. Protokoli su skup standardizirane informacije za prijenos digitalnog sadržaja preko mreže. 3. Hipertekst (engl. Hypertext) za jednostavnu navigaciju između informacijskih izvora, kao što je na primjer HTML (hypertext markup language). Svaki izvor informacije na WEB-u (HTML ili XML dokument, slika, video, program i sl.) ima jednoznačnu adresu koja se dekodira preko URI-a (Universal Resource Identifier). URI se sastoji od tri dijela: 1. Protokola pristupa izvoru (npr. http, ftp, mailto i sl.) 2. Imena stroja na kojem se izvor informacije nalazi (npr. www.fsb.hr). 3. Punog imena izvora zadanog stazom (engl. path). URI ima različite uloge: povezivanje mjesta unutar istog dokumenta, povezivanje različitih dokumenata, dohvaćenje slika, objekat

Citation preview

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