Upload
zana-korac
View
233
Download
5
Embed Size (px)
DESCRIPTION
baze podataka
Citation preview
Baze podataka
2014./2015.
Sveuilite u MostaruFilozofski fakultet
Informacijske znanosti
Info
Profesor: prof. dr. sc. Vladimir Mateljan
Asistent: Andrea Miljko
Baza podataka
Baza podataka je skup meusobno povezanih podataka,pohranjenih zajedno, s ciljem da ih koriste razliite aplikacije. Podacisu pohranjeni u obliku neovisnom od programa koji ih koriste. Unos,
izmjena i dohvat podataka obavlja se ISKLJUIVO kroz zajedniko ikontrolirano suelje.
Sustav za upravljanje bazom podataka
Programski sustav koji
omoguava upravljanjebazom podataka je sustav
za upravljanje bazama
podataka,
SUBP (DBMS-Database
Management System).
Korisnik ili korisniki program postavlja zahtjev za obavljanjem neke operacije s podacima, a SUBP ga analizira, provjerava, optimizira, transformira u niz
operacija koje je potrebno obaviti na fizikoj razini, obavlja operacije i vraa rezultat.
Sustav za upravljanje bazama podataka
Danas postoji nekoliko DBMS-a:
- DB2: proizvod tvrtke IBM, namijenjen velikim mainframe-
raunalima.
- Oracle: proizvod istoimene tvrtke, pokriva gotovo sve
raunalne platforme, npr. UNIX, Linux i MS Windows.
- MS SQL Server: Microsoftov proizvod, namijenjen
posluiteljskim raunalima s operacijskim sustavima MSWindows.
- MySQL: Besplatan proizvod tvrtke MySQLAB, popularan
na raznim platformama, prije svega kao podrka web-aplikacijama.
Definiranje E-R modela
Skup koncepata i grafikih simbola koji se mogu koristitiza kreiranje konceptualne sheme baze podataka
Osnovne vrste E-R modela
Chenov model (original E-R model)
Proireni (Extended) E-R model s verzijama:
James Martinov IE (Information Engineering) model
IDEF1X (Integrated Definition 1, Extended)
UML (Unified Modeling Language)
ER modeliranje:
je sastavljeno iz entiteta, veza i atributa
je slikovni prikaz sustava baze podataka
je neovisno o DBMS i hardveru
predstavlja konceptualni model visokog nivoa
podrava korisnikovu percepciju podataka
je alat za projektiranje
Modeliranje podataka zahtjeva da svijet promatramo preko:
- entiteta: stvari, bia, pojave ili dogaaji koji su nam od interesa
- atributa: svojstva entiteta ili veza koja su nam od interesa
Definicija ENTITETA
Entitet je stvar, objekt, od znaaja, realan ili imaginaranza koji je potrebno poznavati i uvati odreeneinformacije
Postupkom klasifikacije moe se ustanoviti skup srodnihentiteta (npr.osobe) to se moe predstaviti TIPOMENTITETA (npr. OSOBA), to znai da se tip entitetasastoji od pojava entiteta koji imaju zajednike atribute.
Definicija ENTITETA
bilo to, to ima sutinu ili bit
posjeduje znaajke s pomou kojih se moe razluiti od svoje okoline
osoba (student, djelatnik, stanovnik, student )
objekt iz stvarnog svijeta (mjesto, stroj, zgrada - npr. Zgrada
FFMO-a)
apstraktni pojam (boja, iskustvo, predmet Uvod u baze podataka)
dogaaj - situacija u kojoj se neto deava, desilo se ili se planira
da e se desiti (prijavljivanje ispita, polaganje ispita)
povezanost meu objektima, osobama, pojmovima, dogaajima
(student poloio ispit iz predmeta Ivan Horvat poloio Uvod u baze podataka)
Naziv entiteta se pie velikim slovima u jednini
sifra
naziv
adresa
mjesto
KUPAC ENTITET
Definicija ENTITETA
Primjer: Entitet KUCA ima atribute ULICA, KUCNI BROJ, BROJ KATOVA, BOJA
FASADE Primjer: Entitet STUDENT ima atribute JMBG, PREZIME, IME, GODINA
STUDIJA
Definicija atributa
Atribut je svaki detalj koji slui da poblie odredi,identificira, klasificira, kvantificira ili izrazi stanje
entiteta.
Predstavlja opis entiteta
sifra
naziv
adresa
mjesto
KUPAC
ATRIBUTI
Primjer: Entitet KUCA ima atribute ULICA, KUCNI BROJ, BROJ KATOVA,
BOJA FASADE Primjer: Entitet STUDENT ima atribute JMBG, PREZIME, IME, GODINA
STUDIJA
Entitet i atributiprema vrstama modela
Definicija VEZE
Entiteti se mogu povezivati jedan s drugim u veze
(relacije).
Veza je agregacija/povezivanje dvaju ili vie entiteta u novi entitet vezu koji moe imati i svoje atribute.
Broj entiteta u vezi predstavlja STUPANJ VEZE.
Svaki ENTITET-A mora biti kraj_1 jedan i samo jedan ENTITET -B
Svaki ENTITET-B moe biti kraj_2 jedan ili vie ENTITETA-B.
Veze
Binarna veza
veza 2 entiteta
Ternarna veza
veza 3 entiteta
Unarna veza
isti entitet vie puta
egzistira u razliitim
ulogama
Kardinalnost veze
Odnos omjera meu povezanim entitetima nazivamo kardinalnost veze
Jedan na jedan (1:1)
Jedan na vie (1:m)
Vie na jedan (m:1)
Vie na vie (m:n)
Razbijanje M:N veza
Veza m:n u ER modelu se moe razbiti uvoenjem novog posrednikog entiteta.
Primjer
Vezu vie na vie moemo razbiti uvoenjem entiteta najam,koji sadri atribut datum_najma
Primjeri
M:N (Many-to-Many)
Djelatnik Projektradi
Svaki djelatnik moe raditi na vie projekataSvaki projekt moe imati vie djelatnika
(*) Djelatnik radi na (*) Projekata
0..* 0..*Djelatnik Projekt
radi
Grafiki prikaz veze
1 : 1 - primjer
Veza izmeu entiteta STUDENT i KORISNIKO IME
Svaki STUDENT moe imati samo jedno KORISNIKOIME, dok KORISNIKO IME moe pripadati samojednom STUDENTU
1 : N - primjer
Veza izmeu entiteta DRAVA i GRAD
Svaka DRAVA moe imati vie gradova dok svakiGRAD pripada samo jednoj dravi
M : N - primjer
Veza izmeu entiteta STUDENT i PREDMET
Svaki STUDENT moe biti upisan na viePREDMETA, dok svaki predmet moe sluati viestudenata
Odredite veze za entitete:
STUDENT I INDEKS
STUDENT I PREDMET
STUDENT I TEST
Kljuevi
Klju (key)
skup atributa koji (svojim vrijednostima) jednoznanoidentificira svaki od entiteta u nekom skupu entiteta
klju mora zadovoljavati
uvjet jednoznanosti (u skupu entiteta ne smiju postojatidvije pojave s istim vrijednostima svih kljunih atributa)
uvjet minimalnosti (ne postoji podskup atributa kljua koji
takoer zadovoljava uvjet jednoznanosti)
Kljuevi
entitet moe imati jedan ili vie kljueva
entitet mora imati barem jedan klju
entitet moe imati vie moguih kljueva, tj. kandidata za primarni klju (candidate key), koji ne moraju biti meusobno disjunktni, tj. mogu imati atribute presjeka
jedan od kljueva odabire se za primarni klju (primary key), npr.
Osoba.IdOsobe, Mjesto.ifraMjesta
nakon odabira primarnog kljua, ostali mogui kljuevi postaju alternativni kljuevi (alternate key), npr. Mjesto.PostBr
Kljuevi
Strani klju (foreign key)
skup atributa koji se odnosi na klju drugog skupa entiteta, tj. skup atributa ije se vrijednosti odnose na vrijednosti kljua drugog entiteta (Osoba.SifMjesta odnosi se na Mjesto.SifMjesta)
Preslikavanje ER modela u relacije
VEZA JEDAN:VIE
Primarni klju entiteta sa strane veze JEDAN doda se kaostrani klju u entitet sa strane veze VIE.
VEZA VIE:VIE
Doda se novi entitet, koji sadri primarne kljueve obajurubnih entiteta.
Ti atributi zajedno tvore sloeni primarni kljunovonastalog entiteta.
Primjer br.1 - PRIJAVNICA
Primjer br.2 VOENJE TEAJA
kola za obrazovanje ima nekoliko tipova teajeva o kojima vodi slijedee podatke:
- kratica i naziv teaja
- opis i trajanje teaja
Jedan tip teaja moe se odrati vie puta, s razliitim datumom poetka, lokacijom odravanja i maksimalnim brojem polaznika.
O polazniku teaja se vode slijedei podaci:
- matini broj
- ime, prezime
Polaznik moe polaziti vie teajeva.
Primjer br. 3 URAENI PROGRAMI
Profesionalni programer Marko Markovi odluio je napravitiprogram za evidentiranje svih programa koje je uradio, korisnika
kod kojih ti programi rade, kao i ostvarene zarade po svakom
programu.
Za svaki program se evidentira vrijeme utroeno za njegovuizradu, kao i vrijeme utroeno kod korisnika za prilagodbuprograma korisnikim zahtjevima, kad je program puten u radkod korisnika, kao i koliko je od korisnika naplaeno za tajprogram. Takoer se evidentira da li je program u uporabi tj.aktivan ili ne.
Rjeenje
PRODAJA
KORISNIK
PROGRAM
# sifra
datum_prodaje
vrijeme_prilagodbe
naplaceni_iznos
aktivnost
#sifra_programa
naziv
vrijeme_izrade
cijena
# korisnikID
ime
prezime
adresa
telefon
Rjeenje - ( ER model )
Rjeenje-Relacijski model
Primjer br. 4 - Izdavanje knjiga u knjinici
Studentska knjinica nastoji voditi raunalnu evidenciju o izdavanju knjiga. Za to je potrebno imati podatke o
lanovima knjinice (ime, prezime, adresa, telefon, lanski broj, datum ulanjenja),
knjigama (naziv, anr, broj primjeraka, godina izdanja),
autorima i
izdavaima knjiga (izdavaka kua, godina osnivanja, sjedite izdavake kue).
Rjeenje
IZDAVANJE
KNJIGA
CLAN
PK sifra_izdavanja
datum_izdavanja
datum_vracanja
PK clanski_broj
ime
prezime
adresa
telefon
datum_uclanjenja
PK sifra_knjige
naziv
zanr
broj_primjeraka
godina_izdanja
IZDAVAC
PK sifra_izdavaca
izdavacka_kuca
sjediste
godina_osnivanja
AUTOR
PK sifra_autora
ime
prezime
adresa
Primjer br. 5
Faktura je dokument koji se alje kupcu kako bi mogaoizvriti plaanje kupljene robe. Da bi se napravila fakturamoraju postojati osnovni podaci o kupcu (naziv, adresa,telefon i sl.), podaci o fakturi (broj fakture, datumizdavanja, broj narudbe prema kojoj je raena, rokplaanja, iznos za plaanje i sl.), kao i podaci o kupljenimartiklima (naziv, jedinica mjere, kupljena koliina, cijena isl.).
Faktura se sastoji od: zaglavlje fakture koje sadrizajednike, ope podatke teod stavke fakture s pojedinanim artiklima, koliinama icijenama.
Definirati sve entitete, atribute i veze za procesFakturiranja kupcima.
Rjeenje
Primjer br. 6
Izdavaka kua Profil d.o.o. izdaje znanstvene knjiges razliitih podruja. Knjige piu autori, koji suspecijalizirani u tono jednom odreenom podruju.Izdaja d.o.o. zapoljava i recenzente, koji nisu nunospecijalizirani u nekom podruju njihov je zadatakda samostalno recenziraju jednu ili vie knjiga.Svaka knjiga pokriva jedno od podruja i uvijek jepie samo jedan autor. Za svaku knjigu koju pie,svaki autor surauje s recenzentom za razliiteknjige to mogu biti razliiti recenzenti. Politika Profilad.o.o. je da zapoljava vie autora specijalista zasvako pojedino podruje.
PODRUCJE
KNJIGA
PK id_podrucje
naziv
opis
RECEZENT
AUTOR
PK id_knjiga
naziv
br_stranica
FK id_autor
FK id_podrucje
FK id_recezent
PK id_recezent
ime
prezime
adresa
PK id_autor
ime
prezime
adresa
FK id_podrucjeAUTOR_RECEZ
PODRUCJE
KNJIGA
PK id_podrucje
naziv
opis
RECEZENT
AUTOR
PK id_knjiga
naziv
br_stranica
FK id_autor
FK id_podrucje
FK id_recezent
PK id_recezent
ime
prezime
adresa
PK id_autor
ime
prezime
adresa
FK id_podrucje
AUTOR_RECEZ
id_autor
id_recezent
Primjer br.7 KREDITNA KARTICA
Kreirajte model baze podataka za evidentiranje svih
kreditnih kartica koje ukljuuju i praenje trokova,odnosno utroka novca po osnovi plaanja karticom.Praenje kreditnih kartica ukljuuje popis svih karticakoje se koriste to podrazumijeva evidentiranje nazivakartice,
banke koja je izdala karticu, roka do kojega kartica
vrijedi, limita po karticama, zatim kategoriziranje po
vrstama. Za svako plaanje (transakciju) se evidentiraiznos plaanja, datum, datum ispilate i opis.
Primjer br.7 KREDITNA KARTICA
BANKA
sifra_k
naziv
mjesto_izdava
nja
rok_trajanja
limit
sifra_v
sifra_b
KARTICA TRANSAKCIJA
VRSTA
sifra_b
naziv_b
sjediste
bankar
sifra_t
datum_uplata
datum_isplata
iznos
opis
sifra_k
sifra_v
naziv_v
opis_v
0..*
1..1
0..*
1..1
1..1 0..*
PKPK
PK PK
FKFK
FK
Zadatak
Poduzee Globtur d.o.o. sa sjeditem u Mostaru posjeduje vie autobusa. Svakiautobus vozi na odreenoj liniji na nekim linijama vozi vie autobusa. Svakalinija prolazi kroz neki broj gradova. Jedan ili vie vozaa vozi na svakoj oddionica neke linije. Dionica linije znai prolaz kroz dio ili sve gradove naprometnoj liniji. Neki gradovi imaju garau gdje su autobusi smjeteni. Svakiautobus je odreen svojim registracijskim brojem i moe primiti razliit brojputnika, jer autobusi variraju u veliini izmeu normalnih i na kat (double-decked). Svaka prometna linija odreena je brojem linije i sadri informaciju oprosjenom broju prevezenih putnika po danu. Vozai imaju svoj brojzaposlenika, ime, adresu boravita i ponekad telefonski broj.
Primjer 8U bazi podataka se evidentiraju podaci o filmovima i osobama koje su radile na filmu i njihovim funkcijama.
Za film se evidentira ifra filma, naslov i originalni naslov, godina izdavanja, distributer, anr, porijeklo i proizvoa.
Za anr se evidentira ifra anra, ime anra i kratica anra, a podrazumjeva se da film moe imati samo jedan anr.
Za distrubutera se evidentira ifra distributera i ime distributera, a film moe imati samo jednog distributera.
Za proizvoae se evidentira ifra proizvoaa i ime proizvoaa, a film moe imati vie proizvoaa.
Za svaku osobu koja je radila na filmu evidentira se ifra, ime i prezime osobe, ifra i funkcija koju je ona obavljala.
Jedna osoba moe imati vie funkcija u filmu, a vie osoba moe obavaljati istu funkciju na filmu. Na jednom filmu moe raditi vie osoba.
Za funkcije se evidentira ifra i naziv funkcije.
Primjer br.9
Studenti svake akademske godine upisuju godinu
studija. Pritom biraju neke od ponuenih izbornihpredmeta tako da zbroj njihovih ECTS-bodova u
svakom semestru bude 30. Predmeti moraju biti
izabrani najkasnije do 15. rujan. Fakultet je organiziran
u zavode. Svaki nastavnik lan je tono jednogzavoda. Svake akademske godine zavod nudi nekoliko
izbornih predmeta za studente i osigurava nastavnike
koji e predavat te predmete. Pritom svaki predmetima smo jednog nastavnika.
ZAVOD
sifra_zavoda
opis_djelatnosti
naziv
PREDMET
sifra_pred
semestar
ecst_bod
datum_upisa
ocjena
sifra_zavoda
sifra_nast
jmbg
ime
ecst_bod_stud
prezime
ime
god_studija
sifra_pred
STUDENT
NASTAVNIK
sifra_nast
ime
prezime
titula
sifra_zavoda
PK PK PK
PK
FK
FK
FK
FK
Primjer br. 10
Agencija za iznajmljivanje limuzina "Limko"
posjeduje vie marki limuzina. Za svaku limuzinubiljei i njenog proizvoaa da bi se znalo koje svelimuzine je proizveo koji proizvoa. Da bi klijentiznajmio limuzinu dovoljno da doe u predstavnitvoi sve se definira potpisivanjem ugovora o
iznajmljivanju. Njime se vri rezervacija limuzina zaodreeni datum. Nakon odlaska klijenta voditeljposlovnice odreuje vozaa za taj dan koristei sepostojeim rasporedom vonji. Za sve vozaeagencija biljei kad je polagao vozaki ispit tepodatke o auto koli koja ga je obuavala.
Primjer br. 11
Na Filozofskom fakultetu u Mostaru evidentirani su podaci o kandidatima koji su se prijavili na razradbeni ispit i njihovim rezultatima.
Evidentiraju se podaci o:kandidatu: JMBG, ime, prezime, mjesto roenja, zavrena srednja kola (ifra, naziv, adresa, potanski broj mjesta, mjesto, ifra opine i naziv opine u kojoj se kola nalazi)za svakog kandidata ocjena iz pojedinih predmeta iz srednje kole ifra i naziv predmeta, razred i ocjena. ifra odreuje predmet u nekom razredu (godini), npr. Informatika u 1.razredu i Informatika u 2.razredu maju razliite ifre. Isti predmeti u razliitim kolama imaju istu ifru npr. Informatika iz 1.razreda ima istu ifru za sve kolepodaci o zadacima na razradbenom ispitu redni broj zadatka, tekst zadatka, toan odgovor (A, B, C, D ili E)za svakog kandidata odgovori koje je dao na zadatke (odgovor za svaki pojedini zadatak mogu biti A, B, C, D, E ili nita)
Uvod u SQL
SQL
SQL= Structured Query Language
SQL je upitni jezik temeljen na relacijskoj algebri i
predikatnom raunu.
SQL se koristi kao programski jezik i interaktivni
upitni jezik. Kao programski jezik moe seugraivati u jezike tree i etvrte generacije.
Zadaa SQL-a je omoguiti definiciju podataka,upravljanje podacima i provoenje kontrole nadpodacima u relacijskoj bazi podataka.
SQL
DDL (Data Definition Language)
= izrazi za definiranje podataka
CREATE, ALTER, DROP, GRANT, REVOKE ...
DML (Data Manipulation Language)
= izrazi za upravljanje podacima
SELECT, INSERT, UPDATE, DELETE ...
SQL
Primjer SQL naredbe iz DDL dijela jezika (kreiranje tablice mjesto):
CREATE TABLE mjesto
( pbr_mjesta VARCHAR2(5) NOT NULL ,
naziv_mjesta VARCHAR2(30) NOT NULL ,
sifra_opcine NUMBER(4)
);
Primjer SQL naredbe iz DML dijela jezika (iz tablice mjesto dohvaa sve n-torke kojima je vrijednost atributa potanski broj jednaka 88000):SELECT *
FROM mjesto
WHERE pbr = 88000;
DDL naredbeKreiranje tablica
SQL Kreiranje i brisanje tablica
Kreiranje tablice:
CREATE TABLE ime_tablice
(ime_stupca tip (veliina) (ogranienje),
ime_stupca tip (veliina) (ogranienje),
ime_stupca tip (veliina) (ogranienje),
...);
Brisanje tablice:
DROP TABLE ime_tablice;
Ogranienja nad stupcima tablice i nad tablicama ...
NULL/NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
Kreiranje tablice
CREATE TABLE MJESTO
( PBR NUMBER(10) NOT NULL,
NAZIV VARCHAR2(40) NOT NULL,
CONSTRAINT mjesto_pk PRIMARY KEY (PBR)
);
DML naredbeSELECT, INSERT, UPDATE, DELETE
Najee koriteni DML izrazi
SELECT- Pretraivanje podataka
INSERT- Upisivanje novih podataka
UPDATE- Promjena vrijednosti podataka
DELETE- Brisanje postojeih podataka
INSERT Unos podataka u tablicu
INSERT INTO ime_tablice (stupac, stupac,)
VALUES (vrijednost, vrijednost, );
Primjer:
INSERT INTO osoba (mbr, ime, prezime, email)
VALUES (1, 'Ivo', 'Ivic', '[email protected]');
SELECT Odabir podataka iz tablice
SELECT stupci [alias]
FROM ime_tablice [alias]
[WHERE uvjeti za redak]
[GROUP BY stupci]
[HAVING uvjeti za grupu redaka]
[ORDER BY stupci];
Operatori usporedbe, Logiki i SQL operatori
Primjeri
Primjeri
Primjeri
Primjeri
Primjeri
Napiite SQL naredbu koja e izdvojiti sve mobitele u bazi koji su laki od 100 grama.
Rjeenje:
SELECT proizvodi, model, tezina
FROM mobitel
WHERE tezina
Primjer
SELECT *
FROM student
WHERE ime_studenta = Marko;
STUDENT
sifra
ime_studenta
prezime_studenta
Iz tablice student dohvatiti sve n-torke kojima
je ime Marko.
Naredba distinct
DISTINCTeliminira duple vrijednosti
Primjeri
Ispis matinih brojeva studenata (mbrstud) iz tablice ispit koji su barem jednom ocijenjeni negativnom ocjenom na ispitu iz predmeta sa ifrom FF1202 (sifpred). Svaki se matini broj takvih studenata u listi treba pojaviti samo jednom.
Rjeenje:SELECT DISTINCT mbrstud, sifpred, ocjena
FROM ispit
WHERE ocjena = 1
AND sifpred = FF1202
Rezultat:
mbrstud
1312
1406
1441
Primjeri
Ispis brojeva indeksa (brind) iz tablice Ispit studenata koji
su POLOILI ispit iz predmeta sa ifrom 146 (sifpred).
Rjeenje:SELECT brind, ocjena, sifpred
FROM ispit
WHERE ocjena > 1
AND sifpred = 146
Primjeri
Iz tablice Mobitel nai mobitel teine izmeu 90 i 100 grama.
Rjeenje:SELECT proizvodi, model, tezina
FROM mobitel
WHERE tezina>90
AND tezina
Pimjeri
Napiite SQL naredbu koja e ispisati matine brojeve (MbrStud), imena (ImeStud) i prezime
(PrezStud) studenata iz tablice studenti (Stud)
SELECT MbrStud, ImeStud, PrezStud
FROM Stud