osnove informatike svlado/mtst2013/oi_2013_5_baze_podataka...8 sustav upravljanja bazom podataka (2)...
TRANSCRIPT
-
Osnove informatike s
primjenom računala
5. Baze podataka
Adam Stančić
-
2
Vrste podataka
• Podatak – izraz u nekom jeziku koji odražava stanje nečega;
• Poruka – podatak koji se razmjenjuje između dva subjekta u procesu komunikacije;
• Signal – fizički nositelj poruke pri komunikaciji;
• Informacija – novost ili vijest, čovjekov spoznajni doživljaj poruke;
-
3
Baze podataka (1)
• Baza podataka (Database) je skup podataka koji se
odnose na određene objekte (entitete);
• Entitet – „bilo što o čemu možemo prikupljati podatke“;
• Bilježe se svojstva entiteta – atributi i njegove vrijednosti;
ŽupanijaGrad
Grad ZagrebZagreb
Splitsko-dalmatinskaSplit
Primorsko-goranskaRijeka
Osječko-baranjskaOsijek
KarlovačkaKarlovac
Tablica: Gradovi
Pošt. broj
10 000
21 000
51 000
31 000
47 000
Autooznaka
ZG
ST
RI
OS
KA
Broj stanovnika
779.145
188.694
128 735
114.616
59.395
- Entitet
- Atributi
- Vrijednosti
atributa
-
4
Baze podataka (2)
Objekt promatranja
Alienware M17xR3
Procesor:
Intel Core i7 2630QM 2GHz 6MB
cache
Zaslon:
17,3 LED 1920x1080 3D Ready
Grafika:
nVidia Geforce GTX 580M 2GB
Memorija:
6 GB DDR3 1333MHz
Tvrdi disk:
2 x 750 GB SATA
Optički uređaj:
DVD+/-RW Dual Layer
Mreža:
LAN, WLAN, Bluetooth
Priključci:
• 2 x USB 2.0
• 2 x USB 3.0
• 1 x eSata/USB
• 1 x RJ-45
• 1 x VGA
• 1 x čitač kartica
• 1 x Mini Display port
• 1 x SPDIF out
• 2 x HDMI
Operativni sustav:
Windows 7 Home Premium 64 bit
Entitet
Atribut
Vrijednosti
atributa
-
5
Baze podataka (3)
• Svojstva entiteta (objekta) sastoje se od atributa i vrijednosti
atributa;
• Atribut: element kojim je jednoznačno određeno svojstvo
entiteta – npr. JMBG, ime, prezime, adresa, broj telefona...
• Vrijednost atributa: vrijednosti koje može poprimiti atribut:
2808972340027, Pero; Perić, Ulica brijestova 3, 096 606 99
44...
Student
Prezime Ime Matični broj
Perić Pero 123456
Objekt -
entitet
Atribut
Vrijednost
atributa
-
6
Vrste baza podataka
• Flat (ravne, plošne) baze podataka – baze podataka koje
se sastoje od jedne tablice;
• Hijerarhijske baze podataka – podaci su posloženi u
strukturu sličnu stablu gdje je jedan podataka „nadređen“
drugima;
• Relacijske baze podataka – baze podataka koje se
sastoje od najmanje dvije tablice
Dan: 1
Dan: 2
Dan: 3
Brzina Put
100
220
180
10200
7230
5800
Komponenta
Sklop A Sklop B
Element 1 Element 2 Element 3
OIB Ime Prezime
... ... ...
OIB Banka Račun
... ... ...
Ime Prezime
... ...
Banka Račun
... ...
Flat baza podataka Hijerarhijska baza podataka Relacijska baza podataka
-
7
Sustav upravljanja bazom podataka (1)
• Sustav upravljanja bazom podataka – Database
Management System DBMS;
• Sustav upravljanja relacijskom bazom podataka –
Relational Database Management System RDBMS;
• Sustav upravljanja, čitanja podataka i sustav koji vrši
pohranu podataka u bazi podataka;
• Populatni RDBMS sustavi: MySQL, Microsoft SQL
Server, SQLite, IBM DB2, Informix, PostgreSQL,
Oracle…
-
8
Sustav upravljanja bazom podataka (2)
• SQL (Structured Query Language) – osnova većine RDBMS sustava;
• SQL je programski jezik za upravljanje podacima unutar relacijske baze podataka;
Pomoću naredbi napisanih u SQL-u moguće je:
• vršiti upite prema tablicama prema nekom kriteriju;
• manipulirati (dodavanje, korigiranje i brisanje) podacima;
• vršiti nadzor transakcija;
• definirati tip podataka;
• definirati dozvolu ili ograničenje prava korisnika na pristup
i manipulaciju podacima;
-
9
Dijelovi baze podataka
Dijelovi baze podataka su:
• Tablice (Tables);
• Upiti (Querys);
• Maske (Forms);
• Izvještaji (Reports);
• Stranice (Pages);
• Makro naredbe (Macros);
• Moduli (Modules);
-
10
Tablica (Table)
• Skup podataka o pojedinom entitetu;
Sastoji se od:
• Polja (Fields);
• stupac, kolona (column) – sadrži istovrsne podatke
(atribut);
• Zapis ili slog (Record);
• Redak (Rows) – sadrže podatke o pojedinom entitetu
(vrijednost atributa);
• Veze između tablica, relacije (Relationships);
-
11
Struktura tablice
Tablica: CPU
Procesor Br. jezgri Takt [min - max] FSB [Mhz]
Core 2 Duo 2 2530 - 3066 1066
Atom 1, 2 1600 - 1666 533
Xeon 4 2500 - 3333 667
Redak (Record)
Vrijednost atributa
Stupac (Field)
AtributAtribut Broj jezgri ima vrijednost atributa 2, 1 i 2, 4...
Relacija
Tablica: Račun korisnika
Ime Prezime
... ...
Banka Račun
... ...
OIB
...
Tablica: Račun
OIB Banka Račun
... ... ...
OIB Ime Prezime
... ... ...
Tablica: Korisnik
-
12
Upiti (Query) • Upiti koji postavljaju korisnici o podacima u tablici;
• Upiti služe za selekciju, sortiranje, grupiranje, kombinaciu
postojećih podataka o bazi podataka te stvaranje nove grupe
podataka;
• Vrste upita: Select, Parametar i Crosstab;
• Standardizirani jezik upita (SQL - Structured Query
Language);
• Odgovor je u obliku: grupe slogova (tablice) ili kao maska
(forma);
Procesor ProizvođačPentiumIntel
AthlonAMD
XeonIntel
OpteronAMD
SempronAMD
AtomIntel
Tablica: CPU
SELECT PROCESOR FROM CPU
WHERE PROIZVOĐAČ = «INTEL»
UpitProcesor
Pentium
Xeon
Atom
Rezultat upita
-
13
Maska (Forms)
• Formulari za unos, promjenu i pregled podataka (slog po
slog);
• Prikaz jednog sloga (ili zapisa) na masci (ili formi) iz
jednog izvora podataka (tablice ili upita) ili više izvora
podataka (upotrebom pod-maski);
BA DC
...... ......
1.
2.
n.
A:B:C:D:
1 / n
A:B:C:D:
1 / n
BA DC
...... ......
1.
2.
n.
YX QP
...... ......
1.
2.
n.
YX
QP
Jedan izvor podataka Višestruki izvor podataka
-
14
Izvještaji (Report)
• Oblikovanje preglednog ispisa podataka;
• Način izrade izvještaja gotovo je istovjetan izradi maske
– u izvještaje nije moguće upisivati podatke;
• Podaci se mogu prikazivati, grupirati, sortirati i
izračunavati;
BA DC
...... ......
1.
2.
n.
Jedan izvor podataka
D:C:B:A:
1 / n
BA DC
...... ......
1.
2.
n.
YX QP
...... ......
1.
2.
n.
Višestruki izvor podataka
D:C:B:A:
1 / n
X Y P Q
-
15
Makro naredbe (Macro) i moduli (Modules)
• Makro naredbe se koriste za automatizaciju različitih
procesa unutar baze podataka;
• Dodjeljuju se različitim objektima (maske, izvještaji,
komandne tipke...)
• Modul – automatizacija i programiranje procedura u MS
Visual Basic for Applications (VBA) jeziku;
Makro
naredba
Otvori tablicu
Pronađi podatak
Izmjeni podatak
Pohrani izmjene
Kreiraj izvještaj
Tiskanje izvještaja
1.
2.
3.
4.
5.
6.
A:B:C:D:
1 / n Ok
Modul
-
16
Relacijski model baze podataka (1)
Prednosti korištenja relacijskih baza podataka;
• fleksibilna struktura podataka;
• minimalna (nužna) zalihost (normalizacija podataka);
• standardizirani jezik upita (SQL);
• centralizirana kontrola i upravljanje podacima;
Nedostaci relacijskog pristupa pohrani podataka;
• Zalihost (redundancija) podataka;
• Neažurnost i netočnost;
• Relacijski model baze podataka – predstavlja podatke u
obliku dvodimenzionalnih tablica;
-
17
Relacijski model baze podataka (2)
• Cilj – izbjegavanje čestih i po podatke opasnih
reorganizacija baze podataka;
• Normalizacija – postupak otklanjanja anomalija
održavanja podataka i zalihosti;
• Nenormalizirana tablica transformira se u više manjih,
normaliziranih tablica bez gubitaka informacija;
Ime
Marko
Slavko
Ivica
Goran
Tomislav
Matija
Tablica: Imenik
Grad
Zagreb
Karlovac
Zagreb
Zagreb
Karlovac
Rijeka
Telefon
355 - 568
277 - 775
475 - 565
109 - 333
579 - 025
648 - 369
Šifra
152
153
154
Tablica: Grad
Grad
Zagreb
Karlovac
Rijeka
Ime
Marko
Slavko
Ivica
Goran
Tomislav
Matija
Tablica: Imenik
Grad
152
153
152
152
153
154
Telefon
355 - 568
277 - 775
475 - 565
109 - 333
579 - 025
648 - 369
-
18
Planiranje baze podataka (1)
• Prije svega, potrebno je odrediti što se želi evidentirati;
• Podaci koji se žele evidentirati smještaju se u tablice -
logičke cjeline podataka;
• Određivanje naziva polja (field) baze podataka;
• Definiranje tipa podataka koji se mogu unijeti u polje
(numerički, datum, vrijeme, tekst...);
• Definiranje ključeva baze podataka;
-
19
Planiranje baze podataka (2)
ImeMatični broj
Marko65889
Slavko65890
Ivica65891
Goran65892
Tomislav65893
Matija65894
Tablica: Student
Smjer
Strojarstvo
Mehatronika
Strojarstvo
Strojarstvo
Mehatronika
Mehatronika
Primarni ključ
Jednoznačan
podatak koji se
nikada ne ponavlja
Tip podataka:
Automatski brojač
(AutoNumber,
AutoIncrement)
• Primarni ključ – jednoznačan skup podataka koji se nikada
ne ponavlja u tablici. Ne opušta pojavu dva identična
zapisa u jednoj tablici;
• sastoji se od jednog ili više polja;
-
20
Planiranje baze podataka (3)
Procesor Br. jezgri Takt [min - max] FSB [MHz]
Core 2 Duo 2 2530 - 3066 1066
Atom 2 1600 - 1666 533
Xeon 4 2500 - 3333 667
Naziv tablice: CPU
Opis: Karakteristike centralnog mikroprocesora
Naziv polja: fld_processor
Naslov: Procesor
Tip podataka: Tekst
Duljina zapisa: 25
Opis: Unos naziva procesora
Naziv polja: fld_no_core
Naslov: Br. jezgri
Tip podataka: Broj
Broj decimala: 0
Opis: Broj jezgri procesora
Naziv polja: fld_speed
Naslov: Takt [min-max]
Tip podataka: Tekst
Duljina zapisa: 30
Opis: Min i maks. takt procesora
Naziv polja: fld_fsb_speed
Naslov: FSB [MHz]
Tip podataka: Broj
Broj decimala: 0
Opis: Brzina sabirnice
Šifra
108
109
110
Naziv polja: id_processor
Naslov: Šifra
Tip podataka: AutoNumber
Opis: Primarni ključ [PK]
• Entitet: Svojstva i karakteristike centralnih mikroprocesora;
• Atributi: Naziv procesora, broj jezgri, maks. i min, radni takt, brzina
sabirnice;
• Vrijednosti atributa: Core 2 Duo, Atom, Xeon, 2, 4, 2530 – 3066...
-
21
Veze između tablica (1)
• Veza 1:1 – svakom slogu tablice s jedne strane odgovara točno jedan slog tablice s druge strane zavisnosti. Primjer: Student ↔ Broj indeksa;
• Veza 1:više – jednom slogu tablice odgovara više slogova tablice s druge strane zavisnosti. Primjer: Student ↔ Broj posuđenih knjiga;
• Veza više:1 – više slogova s jedne strane , spaja se sa slogom tablice s druge strane zavisnosti. Primjer: kolegij ↔ Profesor;
• Veza više : više - više slogova s jedne strane , spaja se sa više slogova tablice s druge strane zavisnosti. Primjer: Studenti ↔ Kolegij;
-
22
Veze između tablica (2)
Student Broj indeksa
A
B
C
1
2
3
Odnos 1 : 1
Student Kolegij
A 1
2
3
Odnos više : više
B
C
Student Posuđene knjige
A 1
23
Odnos 1 : više
4
B
5
C
• MS Access baza podataka ne podržava odnos više : više;
-
23
Pristup podacima na Internetu
ASP.net PHP
ColdFusion
Java EE
Ruby on Rails
Ime
Marko
Slavko
Ivica
Goran
Tomislav
Matija
Tablica: Imenik
Grad
Zagreb
Karlovac
Zagreb
Zagreb
Karlovac
Rijeka
Telefon
355 - 568
277 - 775
475 - 565
109 - 333
579 - 025
648 - 369
SELECT * FROM IMENIK
WHERE GRAD= ZAGREB'' ''
2.
Upit (Query)
Ime Marko
Ivica
Goran
Grad ZagrebTelefon 355 - 568
475 - 565
109 - 333
Ime Telefon Grad Zagreb
Ime Telefon Grad Zagreb
Rezultati upita
3.
4.
Ime
Marko
Ivica
Goran
Grad
Zagreb
Zagreb
Zagreb
Telefon
355 - 568
475 - 565
109 - 333
5.
Prikaži podatke za
osobe iz Zagreba
1.Dinamički generirana
web stranica
Prezentacijski sloj
Obrada korisničkog
zahjeva
Aplikacijski sloj
Generiranje upita i
pristup podacima u
bazi podataka
Podatkovni sloj
Formatirani rezultati upita
Višeslojna arhitektura: Klijent – poslužitelj (Client - Server)
arhitektura kod koje su prezentacija, aplikativna obrada i obrada
podataka odvojeni logički procesi;