Upload
faruk-cidic
View
332
Download
7
Embed Size (px)
Citation preview
8/10/2019 Praktikum Vjezbi Baze Podataka
1/53
1
Elektrotehnika kola TuzlaPredmet: BAZE PODATAKA 4
PRAKTIKUM
VJEBIVerzija 2.1
Selma Krajinovi, MA-dipl.ing.el.
8/10/2019 Praktikum Vjezbi Baze Podataka
2/53
2
Istorija dokumenta
Oznaka Opis Datum Autor
V1.0 Vjebeza modul 1 11.10.2010 Skr
V1.1 Definisani projektni zadaci za
timski rad
26.10.2010 Skr
V1.3 Definisane vjezbe za modul 2 01.12.2010 Skr
V2.0 Definisane vjezbe za modul 3 11.2.2011 Skr
V2.1 Ispravke i dodaci 11.12.2011 Skr
V3.1 Modifikovani projektni zadaci
za grupni rad
Obrisani zadaci za
individualni rad
25.09.2013 Skr
Sadraj1. Uvodne napomene................................................................................................................................ 1
2. Modul 01: Model objekti veze i relacioni model .................................................................................. 2
Vjeba 1 Izrada modela objekti veze ...................................................................................................... 2
Vjeba 2 Izrada relacionog modela ........................................................................................................ 2
Vjeba 3 Izrada modela objektiveze pomou alata MySQL Workbench, Data Modeling.............. 2
3. Modul 02: Analiza i primjena DBMS ..................................................................................................... 3
Vjeba 1 Kreiranje relacione baze podataka alatom MySQL Workbench, Forward, Reverse
Engineering, Synchronize .......................................................................................................................... 3
Vjeba 2 Primjer kreiranje baze podataka ............................................................................................. 4
Vjeba 3 Import/export podataka iz relacione baze podataka ............................................................ 17
Vjeba 4 Sigurnost podataka ................................................................................................................ 17
A) Naredba GRANT .............................................................................................................................. 17
B) Naredba REVOKE ............................................................................................................................ 19
C) Naredba CREATE USER, GRANT, REVOKE ....................................................................................... 21
Vjeba 5 implementacija sigurnosti podataka u projektnom zadatku................................................. 21
MODUL 3: Analiza i primjena SQL-a ............................................................................................................ 22
Vjeba 1 DDL, DML ............................................................................................................................... 22
Vjeba 2: Jednostavni Select upiti .......................................................................................................... 25Vjeba 3: A)SloeniSelect upiti (spajanje tabela) ,B) Pogledi ................................................................. 27
Vjeba 4: SQL funkcije ............................................................................................................................. 29
4. PRILOG 1PRIMJER DIZAJNA BAZE PODATAKA ................................................................................. 30
Analiza potreba ....................................................................................................................................... 30
Modeliranje podataka ............................................................................................................................. 31
8/10/2019 Praktikum Vjezbi Baze Podataka
3/53
3
ER model ............................................................................................................................................. 31
Relacioni model ................................................................................................................................... 33
Prevoenje modela objekti veze u relacioni model............................................................................ 33
Relaciona ema ................................................................................................................................... 37
5. PRILOG 2PROJEKTNI ZADACI ZA TIMSKI RAD (modul 1) ................................................................. 39
Projektni zadatak 1VIDEOTEKA Dreams&Lies ..................................................................................... 39
Projektni zadatak 2 - KUNI BUDET Up&Down .................................................................................... 40
Projektni zadatak 3 Rent-a-wreck ........................................................................................................ 41
Projektni zadatak 4 Stolarija Tojsici-Wood .......................................................................................... 42
Projektni zadatak 5Advokatska kancelarija SHL .................................................................................. 43
Projektni zadatak 6Baza tehnikih podataka o objektima u elektrodistributivnoj mrei................... 44
Projektni zadatak 7 - Kupovina elektrine energije putem Interneta .................................................... 46
Projektni zadatak 8Sistem prodaje elektricne energije ...................................................................... 48
6. Prilog 3Projektna dokumentacija .................................................................................................... 50
8/10/2019 Praktikum Vjezbi Baze Podataka
4/53
1
1. Uvodne napomenePrve tri vjebe modula 1 izvode se u grupama od po maksimalno 3 lana. Ocjenjivanje je individualno.
etvrta vjeba izvodi se individualno.
Timski rad: Svaka grupa ima zadatak da dizajnira bazu podataka za koju su zahtjevi navedeni u prilogu 1ovog dokumentaprojektni zadaci za timski rad.
Za svaki projekat izrauje se projektna dokumentacija. Projektni zadatak dokumentuje se u Microsoft
Word document iji sadraj je naveden u prilogu 2 izgled i sadraj projektnog zadatka.
U toku izrade projekta koristiti zadanice svaki tim jedna zadanica koja ostaje u kabinetu. Kopiju
Microsoft Word dokumenta sa projektnom dokumentacijom, sql skripte i ostale datoteke mora imati
svaki lan tima.
U okviru poglavlja teoretske osnove nije dozvoljeno kopiranje izvornog teksta iz skripte. Svaki tim
treba da naui gradivo koritenjem skripte i drugih izvora koje samostalno pronau, te da svojimrijeima, onako kako je nauio, opie odreenu materiju.
Sve vjebe iz modula 2 i 3 izvode se individualno. Uputstva za izradu vjebi data su u okviru istih.
8/10/2019 Praktikum Vjezbi Baze Podataka
5/53
8/10/2019 Praktikum Vjezbi Baze Podataka
6/53
3
3. Modul 02: Analiza i primjena DBMS
Vjeba 1Kreiranje relacione baze podataka alatom MySQL Workbench,Forward, Reverse Engineering, Synchronize
Svaki uenik treba zasebno uraditi slijedee:
- Napraviti model koritenjem MySQL Workbench, Data modeling alata
- Snimiti model i exportovati ER dijagram
- Kreirati relacionu emu baze podataka pomou Forward Engineer alata
- Napraviti novi data model na bazi modela iz relacione baze podataka koritenjem alata Reverse
Engineer
- Ilustrovati koritenje alata Synchronize
Svaki korak dokumentovati u projektnoj dokumentaciji, tj. dodati poglavlje:
4. Kreiranje relacionog modela
4.1 Kreiranje relacionog modela pomou MySQL Workbench alata
Kratko opisati kako se alat koristi i emu slui. Ubaciti exportovani ER model. Napraviti screenshot koji
prikazuje detalje o nekoliko tabela (Fields, Foreign Keys).
Objasniti kako se koristi Forward Engineer.
Konektovati se na bazu pomou MySQL Development alata. Objasniti ukratko interface alata.
Ubaciti screenshot koji potvruje dasu u tvojoj emi u procesu Forward Engineer kreirane sve tabelebaze podataka.
Objasniti kako se koristi Reverse Engineer.
Dodati jedno polje nekoj od tabela. Pomou ovog alata napraviti novi ER model (ne zaboravite
zatvoriti onaj kojeg ste koristili u postupku Forward Engineer.)
Objasniti kako se koristi Synchronize alat.
U novom modelu (napravljenom prilikom objanjavanja funkcije Forward Engineer) obrisati polje
koje ste dodali u relacionom modelu prije Forward Engineer. Uraditi Synhronize. Podesiti parametre
sinhronizacije tako da nakon sinhronizacije u relacionom modelu vie nema novog polja.
Ponovno dodati polje u relacioni model. Ponoviti sinhronizaciju, ali sada podesiti da se polje dodano
u relacionom modelu pojavi i u ER modelu.
Svaki korak dokumentovati (objasniti i postaviti screenshot).
8/10/2019 Praktikum Vjezbi Baze Podataka
7/53
4
Vjeba 2 Primjer kreiranje baze podatakaCilj vjebe je :
1. Izvravanje skripte
2. Upoznati koritenje SQL naredbi za kreiranje
3. Model i ema: Reverse /forward engineer, Synchronize4. upoznati se sa importom i export podataka
5. upoznati koritenje SQL naredbi zaizmjenu i brisanje tabela
6. upoznati naredbe za manipulisanje podacima u tabelama
ZADACI
1. Konektovati se na kolsku bazu koritenjem vlastitih pristupnih podataka.
2. S ciljem kreiranja testne baze podataka,izvriti skriptu create_model.sql.Prije pokretanja skripte, izmjeniti naredbu koja slijedi. Umjesto orders, postaviti ime eme
baze podataka nad kojom imate prava pristupa
USE orders;
Nakon kreiranja baze u svojoj emi treba da imate slijedee tabele
3. Koritenjem naredbe LOAD uitati podatke u tabele iz tekstualnih datoteka.
Koristiti skriptu load_classicmodels.sql. Prije izvravanja skripte, kopirati folder data na root
diska c, kako bi bio omoguen pristup podacima. Pogledati sintaksu nardbe LOAD u dodatku.
4. Otvoriti alat Data Modeling , Create new model. Uraditi Reverse Engineering baze
formirane u prethodnim koracima. Uitajte samo tabele napravljene u ovoj vjebi izostavite
tabele iz vaeg projektnog zadatka!!!
8/10/2019 Praktikum Vjezbi Baze Podataka
8/53
5
Nakon uitavanje modela iz baze, imamo model bez uspostavljenih veza, kao na slici
5. Uspostaviti veze izmeu relacija,tako da ema u konanici izgleda kao na dijagramu
Npr. Izmeu tabela productLine i products postoji veza 1:n, gdje je products.productCode strani klju,
povezan sa primarnim kljuem productLines.productLine. Da bismo uspostavili ovu vezu potrebno je
uraditi slijedee:
U okviru tab stranice Foreign Key, kreirati novi strani klju (Foreign Key Name =
FK_products_productLines) i odbrati tabelu s kojom se uspostavlja veza (orders.productLines). Zatim
8/10/2019 Praktikum Vjezbi Baze Podataka
9/53
6
treba povezati polja pomou interface-a na desnoj strani: selektovati kolonu productLine iz tabele
products i povezati je sa poljem productLine iz tabele productLines.
Na slian nain povezati i ostale tabele.
8/10/2019 Praktikum Vjezbi Baze Podataka
10/53
7
Model treba da izgleda ovako:
8/10/2019 Praktikum Vjezbi Baze Podataka
11/53
8
6. Promjene koje smo uradili nad modelom implemetiramo u bazu pomou funkcije SynchronizeModel, kako slijedi:
Nakon konektovanja na bazu, slijedi korak u kome se uitavaju informacije iz baze o postojeim
objektima:
8/10/2019 Praktikum Vjezbi Baze Podataka
12/53
9
Zatim biramo emu sa kojom se model sinhronizuje:
Nakon konektovanja i uitavanja informacija o emi, vri se poreenje modela i eme (source). Sve
uoene razlike su naznaene pomou zelene strelice, koja odreuje smjer sinhronizacije. Na slici je
odreeno da se promjene iz modela implementiraju nad emom baze podataka. Smjer sinhronizacije
realizujemo pomou dugmadi:
- Update Source, odreujemo izmjenu eme
- Update Model, odreujemo izmjenu modela
- Ignore, odreujemo da se odabrana razlika u strukturi tabele ignorie
Nakon podeavanja cilja sinhronizacije prelazimo na slijedei korak.
8/10/2019 Praktikum Vjezbi Baze Podataka
13/53
10
U narednom koraku moemo vidjeti SQL kod kojim se vri izmjena strukture tabela. Npr.
ALTER TABLE `torders`.`t_orders`
ADD CONSTRAINT `FK_Orders_customers`
FOREIGN KEY (`customerNumber` )
REFERENCES `torders`.`t_customers` (`customerNumber` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
, ADD INDEX `FK_Orders_customers` (`customerNumber` ASC) ;
Prethodnom SQL naredbom tabeli t_orders dodajemo strani klju i index. Koristimo ALTER TABLE. Zadodavanje stranog kljua koristimo kljune rijei ADD CONSTRAINT iza kojih navodimo ime ogranienjabaze podataka. Zatim slijede kljune rijei FOREIGN KEY iza kojih, u zagradama, navodimo ime kolonetabele koja je strani klju. Zatim navodimo ime tabele i kolonu sa kojom je tabela povezana. Npr. uprethodnoj naredbi imamo
REFERENCES `torders`.`t_customers` (`customerNumber` )
8/10/2019 Praktikum Vjezbi Baze Podataka
14/53
11
Ovim odreujemo da je kolona customerNumber iz tabele t_orders povezana sa kolonom
customerNumber iz tabele t_customers.
Pomou opcija ON DELETE i ON UPDATE odreujemo ta e se desiti sa podacima iz tabele orders ako
korisnik obrie odnosno izmjeni relevantne podatke u tabeli customers.
Moemo birati:
- No action, to znai da se podaci u tabeli orders ne briu/mijenjaju, ili
- CASCADE, to bi znailo da se brisanjem/izmjenom podataka u tabeli customers briu/mijenjaju
podaci u tabeli orders.
Nakon uspjene sinhronizacije dobijemo poruku
Ovim smo u emu dodali strane kljueve.
7. Aktivirajet SQL editor.
8. Najprije provjerite da li je ema sinhronizovana sa modelom. Npr. Provjerite tabelu tcustomers:
Na tab stranici Foreign Key treba da vidite strani klju:
8/10/2019 Praktikum Vjezbi Baze Podataka
15/53
12
9. Koristite SQL editor kako biste pregledali podatke u tabelama:
Najprije uradite Refresh kako biste aktivirali promjene nad emom:
Otvorite Edit mode. Npr.
8/10/2019 Praktikum Vjezbi Baze Podataka
16/53
13
10.Svaku od ikona Toolbar-a u Edit modu analizirajte, i upiiteu tabelu emu slui:
Prvi slog
11.Uradite export podataka pomou ikone . Najprije odredimo kako e podaci biti zapisani u
datoteku file sistema. Biramo CSV (; separated) kako bi se podaci odvojili znakom ,. CSV je
skraenica od Comma Separated Values.
8/10/2019 Praktikum Vjezbi Baze Podataka
17/53
14
Zatim odreujemo lokaciju izlazne datoteke. Npr.
Nakon exporta podataka, u datoteci moemo vidjeti sadraj
customerNumber,customerName,contactLastName,contactFirstName,phone,add
ressLine1,addressLine2,city,state,postalCode,country,salesRepEmployeeN
umber,creditLimit
103,"Atelier graphique",Schmitt,"Carine ",40.32.2555,"54, rue
Royale",,Nantes,,44000,France,1370,21000
112,"Signal Gift Stores",King,Jean,7025551838,"8489 Strong St.",,"Las
Vegas",NV,83030,USA,1166,71800114,"Australian Collectors, Co.",Ferguson,Peter,"03 9520 4555","636 St
Kilda Road","Level 3",Melbourne,Victoria,3004,Australia,1611,117300
119,"La Rochelle Gifts",Labrune,"Janine ",40.67.8555,"67, rue des
Cinquante Otages",,Nantes,,44000,France,1370,118200
121,"Baane Mini Imports",Bergulfsen,"Jonas ","07-98 9555","Erling
Skakkes gate 78",,Stavern,,4110,Norway,1504,81700
124,"Mini Gifts Distributors Ltd.",Nelson,Susan,4155551450,"5677
Strong St.",,"San Rafael",CA,97562,USA,1165,210500
125,"Havel & Zbyszek Co",Piestrzeniewicz,"Zbyszek ","(26) 642-
7555","ul. Filtrowa 68",,Warszawa,,01-012,Poland,,0
Kombinovanjem ove funkcionalnost SQL Worksheet alata i nadedbe LOAD moete razmjenjivati podatke
iz jedne u drugu bazu.
Exportujte sve tabele testnog modela, a onda ih uitajte u bazu vaeg raunara.
12.Analizirajte emu slue naredbe podmenija Send to SQL Editor
8/10/2019 Praktikum Vjezbi Baze Podataka
18/53
15
Upiite u tabelu ta omoguavaju pojedine opcije:
Name (short)
Name (long)
8/10/2019 Praktikum Vjezbi Baze Podataka
19/53
16
DODACI
LOAD FROM
LOAD DATA local INFILE 'putanja do file-a.ekstenzija' INTO TABLE
ime_tabele
FIELDS TERMINATED BY ',' (moe se koristiti bilo koji znak koji slui
kako bi odvojili polja koja popunjavamo unutar tabele)
LINES TERMINATED BY '\n';(ovaj dio oznaava da se jedan red u
dokumentu odnosi na jedan red unutar tabele zajedno sa svim podacima)
Da biste ubacili strani klju iz nekog file npr. txt, potrebno je da
iskljuite provjeru stranihkljueva unutar tabele, odnosno da ne
provjerava dali taj klju postoji u drugoj tabeli, ta linija koda
izgleda ovako:
SET FOREIGN_KEY_CHECKS = 0;
I posle load-a podataka koristite:SET FOREIGN_KEY_CHECKS = 1;
U vjebi koristiti slijedee sql skripte i txt source datoteke:
8/10/2019 Praktikum Vjezbi Baze Podataka
20/53
17
Vjeba 3Import/export podataka iz relacione baze podataka
Cilj vjebe: Ilustrovati mogunost exporta i importa podataka
Upisati podatke u sve tabele svog modela pomou alata MySQL Development (najmanje po 5 slogova u
svaku tabelu).
Po uzoru na vjebu 2, uraditi export podataka u cvs datoteku. Obrisati podatke u bazi, a zatim ih
importovati iz tekstualnih datoteka napravljenih u prvom koraku.
Koristei eksportovane podatke, uitati ih u Microsoft Excel i Microsoft Access.
Svaki korak dokumentovati u dokumentaciju projektnog zadatka, kako slijedi:
4.2 Export-import podataka
A)
Export podataka iz SQL development alataB) Import podataka iz tekstualne datoteke u relacionu bazu
C) Import podataka iz tekstualne datoteke u Microsoft Excel i Microsoft Access
Vjeba 4 Sigurnost podataka
A) Naredba GRANT
1. Zadate su GRANT naredbe. Objasni efekat ovih naredbi
8/10/2019 Praktikum Vjezbi Baze Podataka
21/53
18
2. Napii odgovarajuu GRANT naredbu.
Korisnik doctreba pravo pristupa podacima u tabeli chores.
Korisniku sleepy treba omoguiti brisanje iz tabele talking_animals. Takoer, on ovopravo moe dati drugima
Dodjelite sva prava svima na tabelu chores.
(GRANT ALL.)
Napii naredbu kojom se korisniku docdodjeljuje pravo SELECTnad svimtabelama bazepodataka woodland_cottage
(GRANT SELECT ON wwwwww TO xxxx)
U prethodnoj vjebi vidjeli smo razliite oblike naredbe GRANT. Moemo zakljuiti kako slijedi:
1. U okviru iste GRANT naredbe moemo izvriti dodjelu prava za vise korisnika
GRANT ALL ON chores TO bashful, doc, dopey, happz;
2.WITH GRANT OPTION daje pravo korisinku da drugima dodjeli ono pravo koje mu datom naredbomdodjeljujemo
GRANT DELETE ON chores TO doc WITH GRANT OPTION.
3. GRANT naredbom moemo dodjeliti pravo nad odabranom kolonom tabele,
GRANT SELECT(chore_name) ON chores TO dopey;
4. Jednom GRANT naredbom moemo dodjeliti vise razliitih prava nad jednom tabelom. Samo navedemo listuprava razdvojenih zarezom.
GRANT SELECT, INSERT ON talking_animals TO dopey:
5.GRANT ALL dodjeljuje prava SELECT, UPDATE. DELETE i INSERT nad odabranom tabelom
GRANT ALL ON chores TO doc;
6. Korisniku moemo jednom GRANT naredbom dodjeliti odreena prava nad svim tabelama neke bazepodataka ako navedemodatabase_name.*
GRANT SELECT ON woodland_cottage.* TO doc;
8/10/2019 Praktikum Vjezbi Baze Podataka
22/53
19
B) Naredba REVOKE
Korisniku elsiedate su privilegije koje joj vie ne trebaju. Zadajte odgovarajue naredbe REVOKEnakon
kojih e elsie samo moi itati podatke.
8/10/2019 Praktikum Vjezbi Baze Podataka
23/53
20
Nema glupih pitanja
Q:Moemo li privilegije dodjeljivati na nivou kolone tabele? Npr. moemo li dodjelitiINSERT nad samo jednomkolonom?
A:To bi zapravobilo potpuno beskorisnoomoguiti da se upie vrijednost u samo jednu kolonutabele!Ovo bi imalo smisla samo ako tabela ima samo jednu kolonu, i to upravo onu koju navodim u GRANT
naredbi.
Q:Ima li jo slinih, besmislenih GRANT naredbi?
A: Gotovo sve GRANT naredbe nad kolonom su besmislene. Jedino ima smisla dodjeljivati SELECTprivilegiju nad kolonom. I UPDATE.
Q:Pretpostavimo da smo kreirali korisnika koji bi trebao imati sva prava nad s vim tabelama u svim emama bazepodataka. Ima li neki jednostavan nain da ovo uradimo ?
A: U MySQL-u da. To je naredba GRANT SELECT ON *.* TO elsie;
Q:CASCADE je podrazumijevana vrijednost u REVOKE naredbi. Tano?
A: Tano,u MySQLu, ali, opet, ovisi o DBMS kojeg koristimo.
Q:ta ako zadamo REVOKE za privilegiju koju korisnik uopte nije imao?
A: Poruka o greci e to jasno obznaniti biete obavijeteni da privilegija nije dodjeljena.
8/10/2019 Praktikum Vjezbi Baze Podataka
24/53
21
C) Naredba CREATE USER, GRANT, REVOKE
Zadatak je da budete Gregi da zatite bazu tako da je korisnici ne mogu upropastiti.
Proitajte opise poslova pojedinih korisnika i napiite sve potrebne GRANT naredbe koje e im omoguiti
pristup podacima koji im usitinu trebaju a onemoguiti pristup ostalim.
GREG
Frank: Ja sam odgovoram za pronalaenje
interesantnih poslova. Nikada nita ne upisujem u
bazu, ali ponekad briem podatke kada je otvorena
pozicija (posao) popunjena. Ponekad pogledam
podatke u my_contacts.
Jim: Ja unosim sve podakte u bazu. Stvarno to dobro
radim, jer baza mi ne dozvoljava da za pol upiem
xxx, mogu upisati samo M ili Z (kako, razmiljaj).Pored unosa, ja i mijenjam podatke. Uim brisati
podatke, ali Greg mi ne dozvoljava...
Joe: Greg me upravo zaposlio da radim na
promanaenju poslova za zainteresovane klijente.
eli intergrisati podatke o kontaktima sa zaposlenim
u web stranicu. Ja sam vie web developer nego SQL
guy, ali jednostavne poslove mogu uraditi. Svakako
SELECT mogu uraditi, INSERT ba i ne.
Pogledaj bazu koju je Greg napravio i napii naredbe kako slijedi.
1. Napiti naredbu kojom bi korisniku rootpromjenili lozinku.
2. Napii 3 naredbe kojima bi kreirali tri korisnika za Gregovu bazu.
3. Napii potrebne GRANT naredbe kako bi svaki od ova tri korisnika mogao obavljati svoj posao.
Vjeba 5 implementacija sigurnosti podataka u projektnom zadatkuU svom projektnom zadatku definisati koncept sigurnosti podataka. Kreirati barem 3 korisnika i dodjeliti
im odgovarajua prava pristupa.U projektnu dokumentaciju dodati slijedei sadraj:
4.3 Koncept sigurnosti podataka
A) Kreiranje korisnika
B) Definisanje prava pristupa objektima baze podataka
8/10/2019 Praktikum Vjezbi Baze Podataka
25/53
8/10/2019 Praktikum Vjezbi Baze Podataka
26/53
23
Brazil 055 BRA BRL
Bulgaria 359 BGR BGL
United States of America 001 USA USD
France 033 FRA EUR
Japan 081 JPN JPY
Australia 061 AUS AUDUnited Kingdom 044 GBR GBP
CITY
Name Zip Phone_prefix Land*
Brussels 56xxx 056 Belgium
Sarajewo 33xxx 033 Bosnia and
Herzegovina
Sao Paolo 76xxx 076 Brazil
Sofia 100xx 100 Bulgaria
San Francisco 415xx 415 USA
Boston 617xx 617 USANew York 718xx 718 USA
Paris 250xx 250 France
Tokyo 392xx 392 Japan
Sydney 36xxx 036 Australia
London 826xx 826 United Kingdom
*NAPOMENA
Kolonu Land ostaviti praznu. U 5. zadatku korisiti sadraj ove kolone kako bi se upisao id odgovarajue
drave.
4. Modifikovati tabelu t_offices:
a. Dodati kolonu city_id (int) pomou naredbe ALTER TABLE
b. Postaviti strani klju t_office.city_id --- t_city.id, tako da postoje veze kao na slici:
8/10/2019 Praktikum Vjezbi Baze Podataka
27/53
24
5. Na osnovu podataka u tabeli CITY, napisati UPDATE naredbe kojima se u tabeli t_offices,
kolona t_city_id upisuje id odgovarajueg grada. Korisiti postojee podatke iz kolone city:
6. Napisati ALTER TABLE naredbu kojom se brie kolona city
7. Promjeniti ime kolone phone_prefix u dialing_code u tabelama T_CITY i T_LAND
8. Napisati neredbu DELETE FROM kako biste iz tabela t_city i t_land obrisali sve redove kojinisu povezani sa podacima u tabeli t_offices
9. Uraditi Reverse Engineer i napraviti novi ER dijagram. Kopirati ga u ovaj dokument.
10.Generisati DDL kod za kreiranje eme baze podataka sa izmjenama uraenim u ovoj vjebi.
Kod kopirati u ovaj dokument.
8/10/2019 Praktikum Vjezbi Baze Podataka
28/53
25
Vjeba 2: Jednostavni Select upitiUputstvo za izradu vjebe
Svaki uenik konektuje se na svoju emu iz MySQL Workbench alata. Vjeba sadri niz zadataka koji
definiu kakav upit treba napraviti. Nakon kreiranja zadatog upita kopirati ga u dokument i odrediti fontkao u primjeru (crveno, bold). Npr.
Zadatak 1
Napisati naredbu za selectovanje svih kolona i svih redova iz tabele Customers.
SELECT * FROM T_customers
Sminiti uraen zadatak pod istim imenom i u isti folder u kojem je i bio (c:\bp4\Vjezba 4.docx)
ZADACI
1. Iz tabele Customersselektovati kolone contactLastNamei contactFirstName. Ispisati sve
redove.
2. Modifkovati prethodnu naredbu tako da se izlista samo 10 prvih slogova
3. Naredbu 1 modifikovati tako da se ispisu slogovi poevti od 11-og pa onda 15 narednih
4. Modifikovati naredbu 1 dodavanjem odredbe za sortiranje po koloni contactLastName
5. Modifikovati prethodnu naredbu tako da sortiranje bude po koloni contactLastNamea zatim i
koloni contactFirstName
6. Napisati naredbu kojom se iz tabele Ordersispisuju samo jedinstvene vrijednosti u koloni status.
7. Iz tabele Ordersispisati orderNumber, orderDatei customerNumber sortirane po polju
orderDateu rastuem redoslijedu
8. Iz tabele Ordersispisati orderNumber, orderDatei customerNumber sortirane po polju
orderDateu opadajuem redoslijedu
9. Ispisati sve kolone iz tabele Ordersamo ako je vrijdnost kolone status=shipped (isporueno).
Sortirati ih po orderDate
10. Ispisati sve podatke iz tabele Orderkoje se odnose na kupca sa brojem 114 (CustomerNumber).
Sortirati po polju ShippedDate.
11. Iz tabele Employeesispisati samo one slogove kod kojih kolonajobTitleima vrijednost Sales
Rep.
12. Iz tabele Ordersizlistati sve narudzbe koje pripadaju kupcu broj 124 (CustomerNumber).
8/10/2019 Praktikum Vjezbi Baze Podataka
29/53
26
13.Modifikovati prethodni upit tako da se ispisuju samo narudzbe navedenog korisnika u statusu
Shipped.
14. Iz tabele Ordersizlistati sve narudzbe koje u polju commentsimaju neki podatak.
15. Iz tabele Employeesizlistati podatke o svim radnicima koji u polju JobTitle imaju niz karaktera
Sale bilo gdje u polju.
16. Iz tabele Employeesizlistati podatke o radnicima kod kojih je u polju officeCode2,3 ili 4. Uraditi
na dva naina.
17. Iz tabele Employeesizlistati podatke o radnicima kod kojih je u polju extensionna drugom
mjestu karakter 1.
18. Iz tabele Employeesizlistati podatke o radnicima kod kojih polje extensionzavrava karakterom
1.
19. Iz tabele Employeesizlistati podatke o radnicima kod kojih je u polju extensionna drugommjestu karakter 1 i koje zavrava karakterom 1.
20. Iz tabele Officesispisati podatke o kancelarijama koje nisu iz USA (korisiti polje Contry).
8/10/2019 Praktikum Vjezbi Baze Podataka
30/53
27
Vjeba3: A)SloeniSelect upiti (spajanje tabela) ,B) Pogledi
Uputstvo za izradu vjebe
Svaki uenik konektuje se na svoju emu iz MySQL Workbench alata. Vjeba sadri niz zadataka kojidefiniu kakav upit treba napraviti. Nakon kreiranja zadatog upita kopirati ga u dokument i odrediti font
kao u primjeru (crveno, bold). Npr.
Zadatak 1
Napisati naredbu za selectovanje svih kolona i svih redova iz tabele Customers.
SELECT * FROM T_customers
Sminiti uraen zadatak pod istim imenom i u isti folder u kojem je i bio (c:\bp4\Vjezba 4.docx)
ZADACI
21. Iz tabele Officesispisati cityi phone, a iz tabele Employeesispisati kolone lastNamei firstName.
Sortirati po poljima lastNamei firstName.
22.Modifikovati prethodni upit tako da se ispisuju podaci o radnicima iz kancelarije koja je iz Tokija
(city = Tokyo).
23.Modifikovati upit iz zadatka 1 tako da prikazuje samo podatke o radnicima koji u poljujobTitle
imaju string Sales.
24. Modifikovati upit iz zadatka 1 tako da se ispisuju podaci o radnicima iz kancelarije koja je iz
Tokija (city = Tokyo) i da prikazuje samo podatke o radnicima koji u poljujobTitleimaju string
Sale.
25.Povezati tabele products i productLines. Iz tabele products ispisati productName,
productVendor, productDescriptioni quantityInStock, a iz tabele ProductLinesispisati
textDescription.
26.Modifikovati upit iz prethodnog zadatka tako da se selektuju samo proizvodi (products) koji u
polju productDesription imaju string model i proizvodne linije (ProductLines) koje u polju
textDescription imaju rije CAR.
27.Povezati tabele orderDetails, productsi productLines. Napraviti upit koji prikazuje iz tabele
orderDetails: orderNumberi quantityOrdered, iz tabele productsproductNameii z tabele
ProductLines polje textDescription.
8/10/2019 Praktikum Vjezbi Baze Podataka
31/53
28
28.Modifikovati prethodni upit tako da pokazuje samo stavke kod kojih je naruena koliina
(quantityOrdered) vea od 60 a ime proizvoda (productName) sadri string Porsche. Definisati
sortiranje po koloni productName.
29.Upit iz zadatka 7 proiriti povezivanjem tabele orders. Iz ove tabele prikazati orderDate,
customerNumber i status, a iz preostale 3 iste kolone kao u upitu 7. Sortirati podatke po koloni
customerNumber .
30.Modifikovati upit iz prethodnog zadatka tako da prikazuje podatke samo o kupcu iji je broj 112.
Iz liste kolona izbrisati customerNumber.
31.Modifikovati upit iz prethodnog zadatka tako da prikazuje podatke o narudbama napravljenim
poslije 1.8.2003.
32.Modifikovati upit iz zadatka 9 tako to povezujemo i tabelu customers. Iz ove tabele prikazati
kolone contactLastName i contactFirstName.Sortirati po istim kolonama.33.Modifikovati upit iz zadatka 12 tako da prikazuje samo narudbe u statusu 'On Hold'.
34.
Povezati tabele customers, orders i payments. Prikazati kolone: Customers->customerNumber,
contactLastname, contactFirstname, orders ->orderNumber, orderDate,status, payment-
>paymentDate, amount.Sortirati poi menu i prezimenu kupca.
35.
Modifikovati prethodni upit tako da prikazuje samo plaanja izvrena poslije 1.12.2004 i ona kod
kojih je iznos vei od 50000, a za narudbe u status Cancelled
36.Napraviti view v_employeesbaziran na upitu iz zadatka 1.
37.
Uraditi zadatke 2, 3 i 4 koritenjem pogleda v_employees.
38.Napraviti pogled v_productskoritenjem upita iz zadatka 5.
39.
Koritenjem pogleda v_productsuraditi zadatke 6 i 7.
40.Napraviti pogled v_orderskoritenjem upita iz zadatka 9.
41.Koritenjem pogleda v_ordersuraditi zadatke 10 i 11.
8/10/2019 Praktikum Vjezbi Baze Podataka
32/53
29
Vjeba 4: SQL funkcije
Uputstvo za izradu vjebe
Svaki uenik konektuje se na svoju emu iz MySQL Workbench alata. Vjeba sadri niz zadataka kojidefiniu kakav upit treba napraviti. Nakon kreiranja zadatog upita kopirati ga u dokument i odrediti font
kao u primjeru (crveno, bold). Npr.
Zadatak 1
Napisati naredbu za selectovanje svih kolona i svih redova iz tabele Customers.
SELECT * FROM T_customers
Sminiti uraen zadatak pod istim imenom iu isti folder u kojem je i bio (c:\bp4\Vjezba 4.docx)
ZADACI
1. Napii upit koji e prikazati tekui datum
2. Napii upit koji e ispisati tekui dan
3. Napii upit koji e iz tabelepaymentsispisati sve postojee kolone i dadati novu koja se
rauna kao amountuvean za PDV (amount*1.17). Kolonu nazvati total_amount.
4. Napii upit koji e iz tabele orderDetailsispisati sve postojee kolone i dadati novu koja se
rauna kaopriceEachuvean za PDV (priceEach*1.17). Kolonu nazvati total_ priceEach.
5. Napii upit koji iz tabele officeskreira novu kolonu koju ine kolone officeCode, cityiphone,
razdvojene zarezom. Novu kolonu nazvati office. Npr: 1, San Francisco, +1 650 219 4782 6. Napii upit koji iz tabele employeeskreira novu kolonu koju ine kolone lastname,firstname
i email, razdvojene zarezom. Novu kolonu nazvati employee. Npr: Murphy, Diane,
7. Napii upit koji proiruje prethodni upit kolonom koja prikazuje broj karaktera nove kolone.
8. Napii upit koji prikazuje orderNumberi dan kada je roba isporuena (shippedDate). Kolonu
nazvati shippedDay. Podatke itati iz tabele Orders
9. Napii upit koji prikazuje orderNumberi mjesec kada je roba isporuena (shippedDate).
Kolonu nazvati shippedMonth. Podatke itati iz tabele Orders
10.Napii upit koji iz tabele employeesispisuje kolone lastnameifirstname, ali tako da je
lastname ispisanovelikim slovima, a firstname malim slovima
8/10/2019 Praktikum Vjezbi Baze Podataka
33/53
30
4. PRILOG 1 PRIMJER DIZAJNA BAZE PODATAKA
Pretpostavimo da treba kreirati jednostavnu bazu podataka koja e se koristiti za u aplikaciji
Internet prodavnica. S tim u vezi, sporevest emo analizu zahtijeva i napraviti ER model.
Analiza potrebaKorisnici koji ele naruivati robu najprije moraju da se registruju. Prilikom registracije, korisnici
upisuju slijedeepodatke:
- ime (obavezan unos)
- prezime (obavezan unos)
- datum roenja
- jmbg (obavezan unos)
- email (obavezan unos)
- lozinka (obavezan unos)- telefon (obavezan unos)
- fax
- mobitel
- ulica (obavezan unos)
- kuni broj (obavezan unos)
- grad (obavezan unos)
- potanski broj (obavezan unos)
Registrovani korisnik pravi narudbu izborom artikala organizovanih u grupe i podgrupe
artikala. Npr. postoji grupa Mlijeni proizvodi, a unutar nje podrgupe: Mlijeko, Mlijeni
deserti, Puter , margarin, mast i slino.Pored pripadajue grupe i podgrupe, za svaki artikal evidentira se: naziv, bar kod, jedinica mjere
i cijena.
Nakon to zavri sa izborom artikala, korisnik kompletira narudbu, koja se dalje obrauje od
strane radnika za obradu narudbi. Svaka narudba ima jedinstven broj, podatke o korisniku
(kupcu), datum kreiranja kao i datum isporuke. Pored ovih podataka, postoji i status narudbe,
koji moe biti:
- narudba u toku
- narudba kompletirana
- isporuena
Korisnik moe pregledati sve svoje narudbe, u bilo kojem statusu.
Radnik za obradu narudbi moe pregledati narudbe svih korisnika.
8/10/2019 Praktikum Vjezbi Baze Podataka
34/53
31
Modeliranje podataka
ER model
ER dijagram
Opis objekata i veze
Pored identifikovanja objekata i veza, u fazi izrade modele objekti veze evidentiramo i atribute objekata,
kao i atribute veza, ukoliko ih ima. Za svaki objekat (vezu) pravimo tabele kao u primjerima koji slijede.
Objekat KORISNIK
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
id INTEGER da da Primarni kljuc objekta
ime VARCHAR (30) da ne
prezime VARCHAR (30) da ne
datum_rodjenja DATE ne ne datum roenja
jmbg VARCHAR(13) da ne jedinstven matini broj graana
email VARCHAR(30) da ne
lozinka VARCHAR(30) da ne
telefon VARCHAR(30) da ne
fax VARCHAR(30) ne ne
mobitel VARCHAR(30) ne ne
adresa_ulica VARCHAR(30) da ne
adresa_broj VARCHAR(30) da ne kuni broj
KORISNIK GRUPA
PODGRUPA
ARTIKL
NARUDZBA
NARUDZBA_STAVKE
1
n
1
n
1
1
n
1
n
8/10/2019 Praktikum Vjezbi Baze Podataka
35/53
32
adresa_ grad VARCHAR(30) da ne
adresa_ptt_broj VARCHAR(30) da ne potanski broj
Objekat GRUPA
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
id INTEGER da da Primarni kljuc objekta
naziv VARCHAR (30) da ne
Objekat PODGRUPA
Naziv atributa Tip podataka Obaveznopolje Primarnikljuc Opis
id INTEGER da da Primarni kljuc objekta
naziv VARCHAR (30) da ne
Objekat ARTIKL
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
id INTEGER da da Primarni kljuc objekta
naziv VARCHAR (30) da ne
bar_code VARCHAR(30) da ne
jed_mjere pobrojani da ne Vrijednosti: komad, litar, kilogram
cijena FLOAT(10,2) da ne
Objekat NARUDZBA
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
id INTEGER da da Primarni kljuc objekta
datum_narudzbe DATE da ne Datum kada je korisnik kreirao ili
kompletirao narudbu
datum_isporuke DATE ne ne Datum kada je izvrena isporukarobe. Zavisi od statusa narudbe.Ako je status isporuceno,vrijednost je obavezna
status INTEGER da ne 0narudzba u toku1narudba kompletirana od stranekupca
8/10/2019 Praktikum Vjezbi Baze Podataka
36/53
33
2 - isporueno
Objekat NARUDZBA_STAVKE
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
id INTEGER da da Primarni kljuc objekta
kolicina INTEGER da ne
Napomene:
Tip podataka atributa odreujemo na isti nain kao to smo odreivali tip promjenljive u
programskom jeziku C++. Razliiti sistemi za updarvljanje bazama podataka podravaju razliite
tipove podataka, ali u osnovi svi sadre: cjelobrojni (integer), realni (floar), tekstualni (varchar),
datumski (date) i logiki (BOOL). U ovom praktikumu ograniit emo se na ove tipove podataka.
Obavezno poljeoznaava dali je dozvoljeno da podatak ne bude upisan za primjerak objekta. Ako je
u tabeli navedeno da, znai da za svaki primjerak objekta vrijednost atributa mora biti upusana ubazu.
Primarni klju id navodimo za svaki objekat, bez obzira dali ima neki drugi kandidat za primarni
klju ili ne. Ovakva praksa omoguava jedinstven pristup podacima, bolje performanse baze, kao i
unificiran tretman primarnog kljua u modeliranju podataka.
Relacioni model
Prevoenje modela objekti veze u relacioni model
Prevoenje objekata
Pravilo za prevoenje veza glasi:
Svaki objekat modela objekti veze postaje relaciona tabela, i to tako da atributi objekta postaju
atributi relacione tabele, primarni klju objekta postaje primarni klju relacione tabele.
Primjenom ovog pravila dobijemo slijedee tabele:
Tabela KORISNIK
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
Ime VARCHAR (30) da ne
prezime VARCHAR (30) da ne
datum_rodjenja DATE ne ne datum roenja
8/10/2019 Praktikum Vjezbi Baze Podataka
37/53
34
Jmbg VARCHAR(13) da ne jedinstven matini broj graana
Email VARCHAR(30) da ne
Lozinka VARCHAR(30) da ne
Telefon VARCHAR(30) da ne
Fax VARCHAR(30) ne ne
mobitel VARCHAR(30) ne ne
adresa_ulica VARCHAR(30) da ne
adresa_broj VARCHAR(30) da ne kuni broj
adresa_ grad VARCHAR(30) da ne
adresa_ptt_broj VARCHAR(30) da ne potanski broj
Tabela GRUPA
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
id INTEGER da da Primarni kljuc
naziv VARCHAR (30) da ne
Tabela PODGRUPA
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
id INTEGER da da Primarni kljuc
naziv VARCHAR (30) da ne
Tabela ARTIKL
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
Naziv VARCHAR (30) da ne
bar_code VARCHAR(30) da ne
jed_mjere pobrojani da ne Vrijednosti: komad, litar, kilogram
Cijena FLOAT(10,2) da ne
Tabela NARUDZBA
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
datum_narudzbe DATE da ne Datum kada je korisnik kreirao ilikompletirao narudbu
8/10/2019 Praktikum Vjezbi Baze Podataka
38/53
35
datum_isporuke DATE ne ne Datum kada je izvrena isporukarobe. Zavisi od statusa narudbe.Ako je status isporuceno,vrijednost je obavezna
Status INTEGER da ne 0narudzba u toku1narudba kompletirana od stranekupca
2 - isporueno
Tabela NARUDZBA_STAVKE
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
kolicina INTEGER da ne
Prevoenje veza
Kod prevoenja veza treba voditi rauna o tipu veze (kardinalnost i sveobuhvatnost objekta u vezi).
Prevedimo najprije veze tipa 1:N, koje su totalne sa obje strane.
U modelu zapravo imamo samo takve veze, i to:
Korisnik-narudzba
Narudzba- Narudzba_stavke
Grupa_podgrupa
Podgrupa_artikl
Artikl-Narudzba_stavke
Za ovakve veze primjenjuje se pravilo:
Pravilo 2. - prevoenje veze 1:N kod koje je strana N totalna
Svaki 1:N tip veze gdje je strana N totalna (svaki primjerak objekta na strani n je povezan sa jednim
objektom na strani 1) ne prevodi se u novu relaciju, nego se primarni klju objekta sa strane 1 umee
kao atribut u relacionu tabelu na strani N. Ovaj atribut postaje strani klju relacione tabele na strani
N. Svi eventualni artibuti veze postaju atributi relacije na strani N.
Prevedimo veze kako slijedi.
Veza Korisnik-NarudzbaU ovoj vezi na strani N je nardba, te se primarni klju objekta Korisnik umee u tabelu Narudzba ipostaje strain klju. Dakle, mijenja se tabela Narudzba i ona postaje:
Tabela NARUDZBA
8/10/2019 Praktikum Vjezbi Baze Podataka
39/53
36
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
datum_narudzbe DATE da ne Datum kada je korisnik kreirao ilikompletirao narudbu
datum_isporuke DATE ne ne Datum kada je izvrena isporukarobe. Zavisi od statusa narudbe.Ako je status isporuceno,vrijednost je obavezna
Status INTEGER da ne 0narudzba u toku1narudba kompletirana od stranekupca
2 - isporueno
Korisnik_Id INTEGER Da Ne Strani kljuc (iz tabele Korisnik)
S obzirom da u tabeli Narudzba ve postoji polje sa imenom id, to pri umetanju stranog kljua
dodajemo ime tabele kao prefiks, te dobijemo kolonuKorisnik_Id.
Ostale veze prevodimo na isti nain.
Veza Narudzba- Narudzba_stavke
Modifikuje se tabela Narudzba_stavke.
Tabela NARUDZBA_STAVKE
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
kolicina INTEGER da ne
Narudzba_Id INTEGER da da Strani kljuc
Veza Grupa_Podgrupa
Tabela PODGRUPA
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
Naziv VARCHAR (30) da ne
Grupa_id INTEGER da ne Strani klju
Veza Podgrupa_artikl
Tabela ARTIKL
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
8/10/2019 Praktikum Vjezbi Baze Podataka
40/53
8/10/2019 Praktikum Vjezbi Baze Podataka
41/53
38
Email VARCHAR(30) da ne
Lozinka VARCHAR(30) da ne
Telefon VARCHAR(30) da ne
Fax VARCHAR(30) ne ne
mobitel VARCHAR(30) ne ne
adresa_ulica VARCHAR(30) da ne
adresa_broj VARCHAR(30) da ne kuni broj
adresa_ grad VARCHAR(30) da ne
adresa_ptt_broj VARCHAR(30) da ne potanski broj
Tabela GRUPA
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
id INTEGER da da Primarni kljuc
naziv VARCHAR (30) da ne
Tabela PODGRUPA
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
Naziv VARCHAR (30) da ne
Grupa_id INTEGER da ne Strani klju
Tabela ARTIKL
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuc
Naziv VARCHAR (30) da ne
bar_code VARCHAR(30) da ne
jed_mjere pobrojani da ne Vrijednosti: komad, litar, kilogram
Cijena FLOAT(10,2) da ne
Podgrupa_id INTEGER da ne Strani klju
Tabela NARUDZBA_STAVKE
Naziv atributa Tip podataka Obavezno
polje
Primarni
kljuc
Opis
Id INTEGER da da Primarni kljuckolicina INTEGER da ne
Narudzba_Id INTEGER da da Strani kljuc
Artikl_Id INTEGER da da Strani kljuc
8/10/2019 Praktikum Vjezbi Baze Podataka
42/53
39
5. PRILOG 2 PROJEKTNI ZADACI ZA TIMSKI RAD (modul 1)
Projektni zadatak 1 VIDEOTEKA Dreams&LiesProjektujete informacioni system za roaka koji ima videoteku.
Videoteka posjeduje veliki broj filmova na istim ili razliitim medijima, od kojih neki imaju iste naslove.
Za svaki film elimo memorisati naziv, datum kada je film napravljen, osnovni jezik i kategoriju filma (kao
komedija, akcija, triler itd).
Videoteka ima filmove na raznim medijima i razliitim formatima, kao Blu-Ray, DVD, VHS. Isti film
ponekad je u opciji sa razliitim formatima. Svaka kopija identifikuje se jedinstvenim brojem filma.
Za lana videoteke pohranjujemo informacije: jedinstven broj lana, prezime, ime, podaci o adresi i broj
telefona.
U bazi podataka koja uva navedene informacije obezbijediti informacije o iznajmljivanju filmovalanovima videoteke. Evidentirati datum iznajmljivanja i datum vraanja filma.
Podatke organizovati tako da sadre istorijske podatke o iznajmljivanju, to znai da se za svakog
korisnika / film mogu vidjeti aktivnosti iz prolosti, tj.lista iznajmljenih filmova, odnosno lista korisnika
koji su iznajmljivali neki film.
8/10/2019 Praktikum Vjezbi Baze Podataka
43/53
40
Projektni zadatak 2 - KUNI BUDET Up&DownPotrebno je napraviti bp i aplikaciju za evidenciju kunog budeta. Potrebno je evidentirati sve prihode i
rashode.
Pod pojmom prihod podrazumijevamo sva novana sredstva koja su na raspolaganju domainstvu, kao
to su plate, djeiji doplatak, socijalna pomo, i slino. Za prihod evidentiramo:
- Vrstu prihoda
- Datum prispjea
- Iznos
Pod pojmom rashod podrazumijevamo sve trokove koje domainstvo ima, kao to su rauni za reije
(el. Energija, telefon, grijanje...), kupovina namjernica, gardarobe, registracija automobila, osiguranje,
deparac itd. Za rashod evidentiramo:
- Vrstu rashoda
- Datum rashoda- Iznos
U bazi se vodi evidencija i o lanovima domainstva, te njihova veza sa prihodom odnosno rashodom (ko
je obezbijedio/ potroio novac). Za lana domainstva evidentiramo ime, prezime, broj telefona, datum
roenja i jmbg.
Takoer, evidentiramo i vanjske partnere koji su isplatili prihod (npr. Preduzee u kome radi roditelj) ili
su naplatili usluge (npr. Vodovod, Centralno grijanje itd).
Kreirati zasebno objekat u kome se evidentiraju vrste trokova, a koji se povezuje sa prihodima (vrsta
prihoda) i rashodima (vrsta rashoda). Ovaj objekat sadri podatke: vrsta troka (npr. Plata, djeijidodatak, elektrina energija, ljekarske usluge) i tip troka (prihod ili rashod).
Baza treba da omogui unos podataka,kao i pregled rashoda/prihoda po vrsti troka, lanu dominstva i
partneru. Takoer, u svakom trenutku treba biti mogue napraviti uvid u stanje kunog budeta (saldo =
prihodi - rashodi).
8/10/2019 Praktikum Vjezbi Baze Podataka
44/53
41
Projektni zadatak 3 Rent-a-wreckProjektujete bazu podataka za lokalnu firmu rent-a-wreck. Za svako vozilo potrebno je memorisati broj
registarskih tablica, proizvoaa, model, godinu proizvodnje, kilometrau i biljeke (npr. potrebno
ofarbati desna prednja vrata, i sl). Svako vozilo je odreenog tipa, npr. limuzina, kombi, terenca i sl.
Svako vozilo ima evidentiranu dnevnu i sedminu cijenu rentanja.
Za svakog korisnika (ko iznajmljuje vozilo) evidentiramo broj vozake dozvole, kada je i od koga izdana,
adresu stanovanja, prezime i ime, datum roenja, broj lk, broj telefona.
Korisnik popunjava rezervaciju navoenjem tipa vozila kojeg eli iznajmiti, datum i vrijeme kad eli
preuzeti vozilo i datum i vrijeme kad ga planira vratiti.
Vozilo moe biti iznajlmjeno bilo preko ranije napravljene rezervacije ili,jednostavno, dolaskom u
agenciju. Prilikom iznajmljivanja vozila, evidentiramo podatke o osobi koja ga je iznajmila i o
iznajmljenom vozilu. Takoer, evidentira se datum i vrijeme iznajmljivanja i datum i vrijeme kad osoba
planira vratiti vozilo, kilometraa u momentu iznajmljivanja i koliina goriva u rezervoaru. Kada se vozilo
vrati agenciji evidntira se kilometraa, koliina goriva i zabiljeke (npr. vraeno sa oteenim prednjim
lijevim branikom prema zapisniku br....).
8/10/2019 Praktikum Vjezbi Baze Podataka
45/53
42
Projektni zadatak 4 Stolarija Tojsici-WoodDizajnirate bazu podataka za stolarsku firmu kako biste omoguili evidenciju cjenovnika i narudbi
namjetaja koji se proizvodi.
Firma pravi visoko kvalitetne ormare, uglavnom za kuhinju. Trenutno proizvodi 65 razliitih modela pri
emu je svakom modelu dodjeljena jedinstvena oznaka duine 4 do 8 znakova. Npr. P40L4 znai podni,samostojei element irine 40 cm sa 4 ladice. Svaki model ima osnovnu cijenu, opis i dodatne
informacije kao to su informacije za isporuku (teina, tip kartonske ambalae), broj radnih sati
potrebnih za izradu. Za potpuno definisanje modela, kupac mora definisati i slijedee podatke:
- Vrsta drveta. Tojsici -Wood nudi 6 razliitih vrsta drveta, pri emu svaka vrsta ima ime i oznaku
duine 2 karaktera (IV- iverica, HRhrast, BUbukva...). Uz svaki tip drveta evidentira se
procenat za koji se uveava osnovna cijena modela. Npr. za hrast evidentira se 40%, to znai da
e model sa osnovnom cijenom 100 KM izraen od ovog drveta kotati 140 KM.
- Vrsta obrade koja e se primjeniti na drvo. TojsiciWood trenutno nudi 15 razliitih tipova
obrade to, opet, utie na cijenu. Svaka vrsta obrade ima ime, ifru od 3 karaktera, opis iprocenat za koji se uveava osnovna cijena.Npr. NAT prirodno, 0%.
- Stil vrata. Nudi se 31 razliit stil vrata, svaki ima ime, kod duine 4 karaktera, opis i opisi
procenat za koji se uveava osnovna cijena.
- Harware. Oznaava tip rukica i nosaa koje Tojsici-Wood kupuje od drugih dobavljaa. Nudi se
52 razliita stila, svaki se identifikuje imenom, ifrom od 5 karaktera, opisom i jedininom
cijenom.
Kupci su uglavnom poduzetnici koji se bave renoviranjem stanova. Za svakog kupca evidentira se ime
firme, podaci o osobi iz firme za kontakt (prezime, ime, telefon), adresa i telefon firme. Za svakog kupca
Tojsici-Wood ima zaduenog predstavnika (radnik koji komunicira i brine se o kupcu), zaduenog da
pomae kupcu kod dizajniranja i izbora modela. Svaki predstavnik firme ima evidentirano ime, prezime,
datum roenja, telefon.
Kupac kreira narudbe, gdje se na jednoj narudbi obino nalazi vie od jednog modela namjetaja. Npr.
3 samostojea elementa od 60 cm i 2 zidna elementa od 40 cm. Da bi se izbjegle zabune, Tojsici-Wood
zahtijeva da su svi elementi na jednoj narudbi od istog drveta, istog stila obrade i vrata i sa istim
hardware. Za svaku narudu evidentira se datum kreiranja narudbe i datum isporuke.
8/10/2019 Praktikum Vjezbi Baze Podataka
46/53
43
Projektni zadatak 5 Advokatska kancelarija SHLAdvokatska kancelarija Snobi, Hapi i Lafina (SHL) zabiljeila je nagli porast u poslovanju tokom zadnje
decenije i razmatra potrebu za automatizovanim sistemom naplate, tj. pravljenjem rauna za uinjene
usluge kako bi ih naplatili od svojih klijenata. Za svaki sluaj koji advokatska kancelarija zastupa pred
sudom ele evidentirati podatke iji opis slijedi.
Za svakog advokata koji radi u firmi evidentira se 5-cifreni jedinstven broj radnika i cijena koja mu se
plaa za jedan sat rada. Postoji mnogo sluajeva (u advokaturi se bave sluajevima, npr. ako elimo
tuiti prodavnicu koja nam je isporuila pokvaren dvd ureaj, za advokatsku kancelariju to je sluaj).
Na jednom sluaju mogu raditi i drugi advokati iz kancelarije, npr na nekim privremenim poslovima za
koje je struan radi odreen broj sati, ili u sluaju da je odgovorni advokat sprijeen.
Svaki sluaj povezan je za jednog klijenta, a jedan klijent moe imati vie sluajeva. Svaki sluaj moe ima
samo jednog odgovornog advokata, jedan advokat moe biti odgovorni advokat za vie sluajeva.
Za veinu klijenata, SHL uva slijedee podatke: prezime, ime, adresu, telefon. Za neke klijente SHL radi
besplatno pro bono.
Neki od advokata zaposlenih u SHL imaju status partnera. Ostali advokati imaju supervizora koji
nadzire njihov rad. Supervizor za te advokata je takoer jedan od advokata iz iste kancelarije u statusu
partnera. Baza podataka treba da evidentira i ove releacije, kako bi se mogli praviti izvjetaji kao npr:
ispisati sve sluajeve u kojima je odgovorni advokat nadziran od strane supervizora Advokat Nr1.
Ovako bi izgledali podaci o jednom sluaju
Broj sluaja: 001782Klijent: Ime: Metro Real Estate Holding
Adresa: Armije RBiH 18, 75000 TuzlaTelefon: 070 700 700
Osoba za kontakt: Lihvar Najmodavac
Datum otvaranja sluaja: 15.05.2011.Datum zatvaranja sluaja: (u toku)Opis: Klijent tui najmoprimatelja zbog tete nainjene na iznajmljenoj nekretniniAdvokat: Jaza Jazavac (broj zaposlenog #00131)
Sati za naplatu: Jaza Jazavac (#00131) 30.05.2011 2.3 sata
Krempita Lisnat (#00132) 05.07.2011 3.0 sati
Maslanica Sasirom (#00139) 11.09.2011 0.8 sati
8/10/2019 Praktikum Vjezbi Baze Podataka
47/53
44
Projektni zadatak 6 Baza tehnikih podataka o objektima u elektrodistributivnoj mreiBaza tehnikih podataka treba da omogui praenje i analizu stanja i proteklih dogaaja u
elektrodistributivnim objektima i mreama.
Skup zajednikih podataka o svim objektima u elektrodistributivnoj mrei (registar) treba da sadri
minimum osnovnih zajednikih podataka o objektu (do 10 podataka) kao to su:
- Identifikacioni broj objekta
- Vrsta objekta (TS, vod, mjerno mjesto, DG)
- Naziv objekta
- Nazivni napon mree (pogonski napon mree) - za lociranje objekta u energetskoj emi- Mjesto, lokacija objekta (kanton, optina, naselje, adresa ) - za lociranje objekta u prostoru- Godina izgradnje
- Pripadnost elektrodistributvnom dijelu (organizacioni dio u okviru elektroprivredne kompanije)
Objekti koji ine elektrodistributivnu mreu mogu biti:
- Transformatorske stanice
- SN vodovi
- NN vodovi
- Mjerna mjesta
- Distribuirani generatorimale elektrane
Potrebno je modelirati mjerna mjesta kao dio elektrodistributivnog sistema. Kod prikljuenja novog
kupca na distributivnu mreu potrebno je u sistem unijeti novo mjerno mjesto koje moe biti
namijenjeno za domainstvo ili za industrijsku potronju. Zajednike karakteristike svih mjernih mjesta
su :
- ifra MM
- Lokacija MM
- Naponski nivo mjesta mjerenja
- Namjena
- Vlasnik MM
- Tip MM
Ovisno o tome da li se radi o domainstvu ili industrijskoj potronji neophodno je unijeti i pratiti sljedee
podatke:
- Naponski nivo prikljuenja kupca (0,4 kV za domainstvo, 10 kV za industrijsku potronju)
- Nain mjerenja (direktno mjerenje za domainstvo, odnosno indirektno za industriju)
- Vrsta brojila (monofazno ili trofazno za domainstvo, odnosno trofazno za industriju) podaci o
proizvoau, tip brojila i klasa tanosti
- Podaci o ostaloj opremi mjernog mjesta (uklopni sat, osigurai, limitatori za domainstva, a za
8/10/2019 Praktikum Vjezbi Baze Podataka
48/53
45
- industrijsku potronju podaci o mjernim transformatorima npr. proizvona, tip, godina
proizvodnje, klasa tanosti)
Upravljanje bazom tehnikih podataka, nakon njenoguspostavljanja, obuhvata:
- Unos podataka (prvi unos podataka o novom mjernom mjestu)
- Auriranje podataka (kvantitativna promjena postojeeg podatka nakon poduzetih akcija na
- objektu)
- Pristup podacima radi njihovog koritenja
- Mjeseni obraun na osnovu oitanja brojila (koji se sam generie na odredjeni dan u mjesecu,te
omoguciti isti po potrebi)
8/10/2019 Praktikum Vjezbi Baze Podataka
49/53
46
Projektni zadatak 7 - Kupovina elektrine energije putem Interneta
Pretpostavka je da se u BiH desila liberalizacija trita za prodaju elektrine energije i da sv i korisnici
imaju mogunost da biraju od kojeg operatera i pod koji uslovima e da koriste elektrinu energije.
Jedan od prualaca usluga, odnosno prodavaa elektrine energije, eli da razvije sistem prepaid prodaje
(naruivanja i plaanja) putem interneta kako bi imao konkurentsku prednost u odnosu na ostaleoperatera. Sistem prodaje putem Interneta se sastoji od:
- podsistema baze podataka u kojoj se smjetaju podaci o ponudi i narudbama kupaca,
- web aplikacije koja predstavlja interfejs za interakciju sa kupcima (ponuda, formiranje narudbe,
potvrivanje narudbe, unos podataka o kupcu i informacija za plaanje kraticom),
- podsistema za procesiranje plaanja kreditnim/debitnim karticama,
- podsistema za procesiranje narudbe (praenje isporuke naruene elektrine energije)
- aplikacija za administriranje sistema (dodavanje u ponudu novih paketa, izbacivanje, izmjene i
sl.)
Kada kupac putem Interneta doe na stranicu za kupovinu njemu se prezentira ponuda kupovnih paketa
sa mogunou da svaki od ponuenih paketa odabere i time prebaci u zamiljenu koaricu za kupovinu.
Pod paketom se podrazumjevaju npr. paket troenja el. energ. od 23-06 sati, paket troenja subotom,
nedjeljom itd. Nakon odabira paketa kupcu se nudi da unese koliinu koju kupuje unutar odabranog
paketa i prezentira mu se novo stanje koarice. Tu kupac ima mogunost da zavri kupovinu i pre e na
potvrdu narudbe i plaanje ili da se vrati na dalju kupovinu. Ukoliko se odlui da pree na potvr ivanje
onda mu se prezentira pregled svega naruenog sa ukupnim iznosom za plaanje (ra un). Tada kupac
ima mogunostda to potvrdi (prihvati) i pree na unos informacija za plaanje ili da odbije i da se vrati
na koaricu gdje moe da izmijeni koliinu unutar nekog prodajnog paketaili izbaci neki prodajni paket ili
da odatle ode ponovo na ponudu da bi dopunio kupovinu. Kada kupac potvrdi raun za plaanje prelazise na stranicu za unos informacija za plaanje (informacije o kartici, informacije o adresi za plaanje,
informacije o adresi na koju ce se izvriti isporuka, informacije o kupcu, mail za obavjetenja o isporuci i
sl.). Ove informacije preuzima podsistem za procesiranje plaanja koji iz sigurnosnih razloga koristi
enkripciju za zatitu podataka te komunicira sa centrom za procesiranje odredene vrste ka rtice (VISA,
MasterCard i sl.) da bi postavio upit da li kupac sa datim informacijama o kartici i datim informacijama o
sebi moe da plati navedeni iznos? Ako se dobije potvrdan odgovor onda znai da su uneeni podaci
tani i da kupac ima takvo stanje na raunu da moe platiti navedeni iznos, te se izvri skidanje
navedenog iznosa sa rauna kupca i prenos na raun prodavca. Ako se odbijeplaanje to moe biti iz vie
razloga (netani podaci o kartici, adresi plaanja kupca ili nedovoljno novca na raunu) te se kupac
obavijesti prikazom informacija na ekranu ili slanjem informacije na mail kupca koji je unio prilikom
unosa informacija o sebi. Plaena narudba se dalje proslijedi na procesiranje podsistemu za
procesiranje narudbe koji je duan da kupljenu elektrinu energiju kada je korisnik bude zahtjevao
spakuje i adresira na njega i poalje.Administrator sistema ima mogunost da odreene pakete izbaci
ako se vie ne prodaju ili da doda nove ako su se pojavili u ponudi ili da promijeni informacije o
postojeim i sl.
8/10/2019 Praktikum Vjezbi Baze Podataka
50/53
47
8/10/2019 Praktikum Vjezbi Baze Podataka
51/53
48
Projektni zadatak 8 Sistem prodaje elektricne energijeSistem naplate elektrine energije funkcionie na sljedei nain:
PRETPLATNIKI NAIN (PREPAID): Potroac kupi kod svoje distribucije odrenukoliinu elektrine
energije. Plaanje moe obuhvatiti pored iznosa elektrine energije jotekue i stare trokove, koje
odredi distribucija. Kupljeni se iznos pomou potroake kartice unese u brojilo. Kad je kupljeni iznospotroen, otklopnik iskljui potroacu mreu (osim ako aktivira kredit u nudi).
KREDITNI NAIN (OBINI): Brojilo mjeri i registruje elektrinu energiju koju isporuuje distribucija.
Brojilo znai radi kao obino multitarifno jednofazno ili trofazno brojilo.
Ako nema drugih zahtjeva, brojilo kod prvog ukljuenja na mreni napon radi u pretplatnikom nainu.
Svaki se drugi nain rada odreuje pomou servisne kartice. Sistemski softver SPMW je namjenjen za
izvoenje kupovine elektrine energije u sistemu. Softver omogucava kupovanje elektricne energije,
oitavanje i konfigurisanje pretplatnikih brojila i pripremu izvjetaja. Programski paket SPMW je
modularne strukture, gdje svaki modul ima dio funkcije itavog programskog paketa u obliku izvrnog
programa. Programski paket se sastoji iz slijedeih modula:
SPM Database (SPM baza podataka)programski paket za pregled, unoenje, popravljanje i brisanje
podataka definisanih u sistemu,kao i za pregledavanje, listanje i izpis podataka.
SPM POS (Smart card) (SPM POS (Inteligentna kartica))prodajno mjesto za pretplatnika brojila na
inteligentnu karticu,
SPM POS (Keypad) - (SPM POS (Tipkovnica))prodajno mjesto za pretplatnika brojila na tipkovnicu
SPM Service (SPM Opsluivanje) - programski paket za opsluivanje (oitavanje i konfigurisanje)
pretplatnikih brojila.
Rad sa bazom podataka
Baza podataka sadri sve podatke koji su potrebni zaupravljanje sistema pretplatnikih brojila i
kupovinu elektrine energije za pretplatnika brojila. Program SPM Database omoguava rad sa bazom
podataka.
Moguje dostup do podataka o korisnicima sistema (potroacima, serviserima, prodajnimmjestima),
podeenim parametrima (n.pr. tarifni sistem) i dogaajima kao to su kupovina, opsluivanjebrojila, itd.
Program SPM Database omoguava izdavanje inteligentnih kartica za potroae, servisere i prodavce.
KUPOVINA ELEKTRINE ENERGIJE
Kupovina elektrine energije za pretplatnika brojila na inteligentnu karticu vri se pomocu modula SPM
POS (Smart card). Informacija o kupovini se registruje u inteligentnoj kartici, pa ju potroac mora
umetnuti u pretplatniko brojilo.
8/10/2019 Praktikum Vjezbi Baze Podataka
52/53
8/10/2019 Praktikum Vjezbi Baze Podataka
53/53
6. Prilog 3 Projektna dokumentacijaPrva strana treba da sadri slijedee podatke:
Elektrotehnika kola Tuzla
kolska godina:2011/2012
Razred: 4t1
Projektni tim: 1.
2.
3.
Projektni zadatak: Projektovanje baze podataka .....
Sadraj projektne dokumentacije:
1. Analiza potreba
a. kopirati projektni zadatak, prema potrebi dopuniti informacijama identifikovanim
prilikom izrade modela
2. Model objekti-veze
a. Modeliranje podataka, model objekti-veze (teoretske osnove)
b. Dijagram objekti-veze
c. Opis objekata i veza
3. Relacioni modela. Relacioni model (teoretske osnove)
b. Prevoenje modela objekti-veze u relacioni model
c. Relaciona ema
4. Kreiranje relacionog modela pomou CASE alata
a. Kreiranje relacionog modela pomou MySQL Workbench alataData Modeling
b. Forward/Reverse Engineer, Synchronize Model alati
c. Izvravanje SQL Skripta za kreiranje baze