Elektrotehnička škola Tuzla

Predmet: BAZE PODATAKA 4

PRAKTIKUM
VJEŽBI
Verzija 2.1

Selma Krajinović, MA-dipl.ing.el.

1

Istorija dokumenta
Oznaka
V1.0
V1.1
V1.3
V2.0
V2.1
V3.1

Opis
Vježbe za modul 1
Definisani projektni zadaci za
timski rad
Definisane vjezbe za modul 2
Definisane vjezbe za modul 3
Ispravke i dodaci
Modifikovani projektni zadaci
za grupni rad
Obrisani zadaci za
individualni rad

Datum
11.10.2010
26.10.2010

Autor
Skr
Skr

01.12.2010
11.2.2011
11.12.2011
25.09.2013

Skr
Skr
Skr
Skr

Sadržaj

1.

Uvodne napomene................................................................................................................................ 1

2.

Modul 01: Model objekti veze i relacioni model .................................................................................. 2
Vježba 1 – Izrada modela objekti veze...................................................................................................... 2
Vježba 2 – Izrada relacionog modela ........................................................................................................ 2
Vježba 3 – Izrada modela objekti – veze pomoću alata MySQL Workbench, Data Modeling .............. 2

3.

Modul 02: Analiza i primjena DBMS ..................................................................................................... 3
Vježba 1 – Kreiranje relacione baze podataka alatom MySQL Workbench, Forward, Reverse
Engineering, Synchronize .......................................................................................................................... 3
Vježba 2 – Primjer kreiranje baze podataka ............................................................................................. 4
Vježba 3 – Import/export podataka iz relacione baze podataka ............................................................ 17
Vježba 4 – Sigurnost podataka ................................................................................................................ 17
A) Naredba GRANT .............................................................................................................................. 17
B) Naredba REVOKE ............................................................................................................................ 19
C) Naredba CREATE USER, GRANT, REVOKE ....................................................................................... 21
Vježba 5 – implementacija sigurnosti podataka u projektnom zadatku................................................. 21

MODUL 3: Analiza i primjena SQL-a ............................................................................................................ 22
Vježba 1 – DDL, DML ............................................................................................................................... 22
Vježba 2: Jednostavni Select upiti .......................................................................................................... 25
Vježba 3: A)Složeni Select upiti (spajanje tabela) ,B) Pogledi ................................................................. 27
Vježba 4: SQL funkcije ............................................................................................................................. 29
4.

PRILOG 1 – PRIMJER DIZAJNA BAZE PODATAKA ................................................................................. 30
Analiza potreba ....................................................................................................................................... 30
Modeliranje podataka............................................................................................................................. 31
2

ER model ............................................................................................................................................. 31
Relacioni model................................................................................................................................... 33
Prevođenje modela objekti veze u relacioni model............................................................................ 33
Relaciona šema ................................................................................................................................... 37
5.

PRILOG 2 – PROJEKTNI ZADACI ZA TIMSKI RAD (modul 1) ................................................................. 39
Projektni zadatak 1 – VIDEOTEKA Dreams&Lies ..................................................................................... 39
Projektni zadatak 2 - KUĆNI BUDŽET Up&Down .................................................................................... 40
Projektni zadatak 3 – Rent-a-wreck ........................................................................................................ 41
Projektni zadatak 4 – Stolarija Tojsici-Wood .......................................................................................... 42
Projektni zadatak 5 – Advokatska kancelarija SHL .................................................................................. 43
Projektni zadatak 6 – Baza tehničkih podataka o objektima u elektrodistributivnoj mreži ................... 44
Projektni zadatak 7 - Kupovina električne energije putem Interneta .................................................... 46
Projektni zadatak 8 – Sistem prodaje elektricne energije ...................................................................... 48

6.

Prilog 3 – Projektna dokumentacija .................................................................................................... 50

3

1. Uvodne napomene
Prve tri vježbe modula 1 izvode se u grupama od po maksimalno 3 člana. Ocjenjivanje je individualno.
Četvrta vježba izvodi se individualno.
Timski rad: Svaka grupa ima zadatak da dizajnira bazu podataka za koju su zahtjevi navedeni u prilogu 1
ovog dokumenta – projektni zadaci za timski rad.
Za svaki projekat izrađuje se projektna dokumentacija. Projektni zadatak dokumentuje se u Microsoft
Word document čiji sadržaj je naveden u prilogu 2 – izgled i sadržaj projektnog zadatka.
U toku izrade projekta koristiti zadaćnice – svaki tim jedna zadaćnica 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 nauči gradivo korištenjem skripte i drugih izvora koje samostalno pronađu, te da svojim
riječima, onako kako je naučio, opiše određenu materiju.
Sve vježbe iz modula 2 i 3 izvode se individualno. Uputstva za izradu vježbi data su u okviru istih.

1

2. Modul 01: Model objekti veze i relacioni model
Vježba 1 – Izrada modela objekti veze
U okviru grupe zajednički razmotriti definisane zahtjeve. Sve nejasnoće u vezi sa dijelom realnosti za koji
se izrađuje model razjasniti prije početka izrade modela.
Zajednički nacrtati dijagram modela objekti-veze, najprije na papiru (zadržati papir sa skicom modela).
Svaki učenik treba znati objasniti sve ucrtane objekte i veze.
Zajednički nacrtati i popuniti tabele sa atributima tabela i veza. Tabele najprije nacrtati na papiru, koja
zajedno sa er dijagramom treba da bude dostupna, bez obzira da li su svi članovi tima na času ili ne.
Zadužiti jednog od učenika da nacrta model (slobodan izbor alata) koji će kasnije biti u ubačen u
dokument sa projektnom dokumentacijom. Druga dva učenika ravnopravno učestvuju u izradi tabela sa
atributima. Ovaj dio vježbe prema potrebi može biti izvršen kuće.
Za upisivanje poglavlja teoretske osnove zadužiti 1. člana tima.

Vježba 2 – Izrada relacionog modela
Zajednički uraditi slijedeće:
-

analizirati proces prevođenje modela iz praktikuma u skripti.
ponoviti pravila za prevođenje.
sastaviti listu objekata i veza iz predmetnog modela.
Prevesti objekte u tabele
Prevesti veze tipa 1:1 (ako ih ima)
Prevesti veze tipa 1:N
Prevesti veze tipa 1:M
Kompletirati relacionu šemu

U dokumentaciji svakom koraku u prevođenju prethodi navođenje pravila po kome je urađeno
prevođenje.
Za upisivanje poglavlja teoretske osnove zadužiti 2. člana tima.
Vježba 3 – Izrada modela objekti – veze pomoću alata MySQL Workbench, Data Modeling
Svaki učenik samostalno se upoznaje sa alatom. Naučiti snimati i otvarati model. Samostalno naučiti
kreirati objekte i definisati veze među njima.
Timski, na bazi dokumentacije kreiranje u prethodne dvije vježbe, kreirati EER diagram za predmetni
model. Ubaciti screenshot modela. Snimiti i sačuvati mwb file.
Za upisivanje poglavlja teoretske osnove zadužiti 3. člana tima. Opisati kako se koristi alat Data Modeling
za kreiranje modela objekti veze, ubaciti screenshots i objašnjenja.

2

3 . dodati poglavlje: “4. Podesiti parametre sinhronizacije tako da nakon sinhronizacije u relacionom modelu više nema novog polja. Ponoviti sinhronizaciju.1 Kreiranje relacionog modela pomoću MySQL Workbench alata” Kratko opisati kako se alat koristi i čemu služi. Objasniti kako se koristi Forward Engineer. Reverse Engineering.) Objasniti kako se koristi Synchronize alat. Synchronize Svaki učenik treba zasebno uraditi slijedeće: - Napraviti model korištenjem MySQL Workbench. Foreign Keys). Pomoću ovog alata napraviti novi ER model (ne zaboravite zatvoriti onaj kojeg ste koristili u postupku Forward Engineer. Svaki korak dokumentovati (objasniti i postaviti screenshot). ali sada podesiti da se polje dodano u relacionom modelu pojavi i u ER modelu. tj. Modul 02: Analiza i primjena DBMS Vježba 1 – Kreiranje relacione baze podataka alatom MySQL Workbench. Uraditi Synhronize. Objasniti kako se koristi Reverse Engineer. Ponovno dodati polje u relacioni model. Napraviti screenshot koji prikazuje detalje o nekoliko tabela (Fields. Ubaciti screenshot koji potvrđuje da su u tvojoj šemi u procesu “Forward Engineer” kreirane sve tabele baze podataka. Forward.3. Objasniti ukratko interface alata. Ubaciti exportovani ER model. U novom modelu (napravljenom prilikom objašnjavanja funkcije Forward Engineer) obrisati polje koje ste dodali u relacionom modelu prije Forward Engineer. Konektovati se na bazu pomoću MySQL Development alata. Kreiranje relacionog modela 4. Dodati jedno polje nekoj od tabela. Data modeling alata Snimiti model i exportovati ER dijagram Kreirati relacionu šemu baze podataka pomoću Forward Engineer alata Napraviti novi data model na bazi modela iz relacione baze podataka korištenjem alata Reverse Engineer Ilustrovati korištenje alata Synchronize Svaki korak dokumentovati u projektnoj dokumentaciji.

Korištenjem naredbe LOAD učitati podatke u tabele iz tekstualnih datoteka. Umjesto „orders“. kopirati folder „data“ na root diska c. 2. 4. Nakon kreiranja baze u svojoj šemi treba da imate slijedeće tabele 3. Otvoriti alat „Data Modeling“ . „Create new model“. izmjeniti naredbu koja slijedi. Uraditi „Reverse Engineering“ baze formirane u prethodnim koracima. Izvršavanje skripte Upoznati korištenje SQL naredbi za kreiranje Model i šema: Reverse /forward engineer. Synchronize upoznati se sa importom i export podataka upoznati korištenje SQL naredbi za izmjenu i brisanje tabela upoznati naredbe za manipulisanje podacima u tabelama ZADACI 1. 5. 6. kako bi bio omogućen pristup podacima. Prije izvršavanja skripte. Učitajte samo tabele napravljene u ovoj vježbi – izostavite tabele iz vašeg projektnog zadatka!!! 4 .sql“. S ciljem kreiranja testne baze podataka. postaviti ime šeme baze podataka nad kojom imate prava pristupa USE orders. Koristiti skriptu „load_classicmodels. izvršiti skriptu „create_model. Pogledati sintaksu nardbe LOAD u dodatku. 4.sql“. Konektovati se na školsku bazu korištenjem vlastitih pristupnih podataka. 2. 3.Vježba 2 – Primjer kreiranje baze podataka Cilj vježbe je : 1. Prije pokretanja skripte.

productLines“). kreirati novi strani ključ (Foreign Key Name = FK_products_productLines) i odbrati tabelu s kojom se uspostavlja veza („orders. povezan sa primarnim ključem productLines.Nakon učitavanje modela iz baze.productLine. Uspostaviti veze između relacija. Zatim 5 . imamo model bez uspostavljenih veza.productCode strani ključ. gdje je products. tako da šema u konačnici izgleda kao na dijagramu Npr. kao na slici 5. Da bismo uspostavili ovu vezu potrebno je uraditi slijedeće: U okviru tab stranice Foreign Key. Između tabela productLine i products postoji veza 1:n.

treba povezati polja pomoću interface-a na desnoj strani: selektovati kolonu „productLine“ iz tabele „products“ i povezati je sa poljem „productLine“ iz tabele „productLines“. 6 . Na sličan način povezati i ostale tabele.

Model treba da izgleda ovako: 7 .

6. slijedi korak u kome se učitavaju informacije iz baze o postojećim objektima: 8 . Promjene koje smo uradili nad modelom implemetiramo u bazu pomoću funkcije „Synchronize Model“. kako slijedi: Nakon konektovanja na bazu.

određujemo izmjenu modela Ignore. Na slici je određeno da se promjene iz modela implementiraju nad šemom baze podataka. koja određuje smjer sinhronizacije. Sve uočene razlike su naznačene pomoću zelene strelice. određujemo izmjenu šeme Update Model. vrši se poređenje modela i šeme (source).Zatim biramo šemu sa kojom se model sinhronizuje: Nakon konektovanja i učitavanja informacija o šemi. određujemo da se odabrana razlika u strukturi tabele ignoriše Nakon podešavanja cilja sinhronizacije prelazimo na slijedeći korak. 9 . Smjer sinhronizacije realizujemo pomoću dugmadi: - Update Source.

`t_orders` ADD CONSTRAINT `FK_Orders_customers` FOREIGN KEY (`customerNumber` ) REFERENCES `torders`.`t_customers` (`customerNumber` ) 10 . Za dodavanje stranog ključa koristimo ključne riječi ADD CONSTRAINT iza kojih navodimo ime ograničenja baze podataka. u prethodnoj naredbi imamo REFERENCES `torders`. navodimo ime kolone tabele koja je strani ključ. Npr. Zatim slijede ključne riječi FOREIGN KEY iza kojih. ALTER TABLE `torders`. Prethodnom SQL naredbom tabeli „t_orders“ dodajemo strani ključ i index. Koristimo ALTER TABLE.`t_customers` (`customerNumber` ) ON DELETE NO ACTION ON UPDATE NO ACTION .U narednom koraku možemo vidjeti SQL kod kojim se vrši izmjena strukture tabela. Zatim navodimo ime tabele i kolonu sa kojom je tabela povezana. ADD INDEX `FK_Orders_customers` (`customerNumber` ASC) . u zagradama. Npr.

7.Ovim određujemo da je kolona customerNumber iz tabele t_orders povezana sa kolonom customerNumber iz tabele t_customers. što znači da se podaci u tabeli orders ne brišu/mijenjaju. Nakon uspješne sinhronizacije dobijemo poruku Ovim smo u šemu dodali strane ključeve. ili CASCADE. Provjerite tabelu tcustomers: Na tab stranici Foreign Key treba da vidite strani ključ: 11 . što bi značilo da se brisanjem/izmjenom podataka u tabeli customers brišu/mijenjaju podaci u tabeli orders. Npr. Možemo birati: - No action. Najprije provjerite da li je šema sinhronizovana sa modelom. 8. Pomoću opcija ON DELETE i ON UPDATE određujemo šta će se desiti sa podacima iz tabele orders ako korisnik obriše odnosno izmjeni relevantne podatke u tabeli customers. Aktivirajet SQL editor.

Npr.9. Koristite SQL editor kako biste pregledali podatke u tabelama: Najprije uradite „Refresh“ kako biste aktivirali promjene nad šemom: Otvorite Edit mode. 12 .

Svaku od ikona Toolbar-a u Edit modu analizirajte. Uradite export podataka pomoću ikone . i upišiteu tabelu čemu služi: Prvi slog 11. separated) kako bi se podaci odvojili znakom .. Biramo CSV (. Najprije odredimo kako će podaci biti zapisani u datoteku file sistema. 13 . CSV je skraćenica od Comma Separated Values.10.

1504.NV. Exportujte sve tabele testnog modela.210500 125.".Schmitt.addressLine2."Signal Gift Stores". u datoteci možemo vidjeti sadržaj customerNumber.21000 112."Australian Collectors.3004.4110.Melbourne..32...Susan.01-012.0 Kombinovanjem ove funkcionalnost SQL Worksheet alata i nadedbe LOAD možete razmjenjivati podatke iz jedne u drugu bazu.USA."San Rafael"."5677 Strong St."67."Erling Skakkes gate 78"."8489 Strong St.Peter.Poland.contactLastName."Havel & Zbyszek Co"..83030."Zbyszek "."03 9520 4555".country.8555.Australia.salesRepEmployeeN umber.Nantes."Janine "."Baane Mini Imports".40."Atelier graphique"..40.1370.Warszawa."Las Vegas".Jean."07-98 9555"."."54. 12. rue Royale".1370.King.Nelson.1611.USA.71800 114..Bergulfsen. Co.creditLimit 103.CA.81700 124.France.Labrune.".Ferguson."(26) 6427555".Piestrzeniewicz.Nantes."Carine ".customerName.44000.2555.4155551450."ul..Norway. rue des Cinquante Otages".contactFirstName.France.add ressLine1. a onda ih učitajte u bazu vašeg računara."La Rochelle Gifts".".state. Filtrowa 68".117300 119.city.67. Npr.Zatim određujemo lokaciju izlazne datoteke. Analizirajte ćemu služe naredbe podmenija „Send to SQL Editor“ 14 . Nakon exporta podataka..7025551838."636 St Kilda Road".phone.1165.118200 121.1166.Victoria."Mini Gifts Distributors Ltd.97562."Jonas "..postalCode...44000.Stavern."Level 3".

Upišite u tabelu šta omogućavaju pojedine opcije: Name (short) Name (long) 15 .

ta linija koda izgleda ovako: SET FOREIGN_KEY_CHECKS = 0.(ovaj dio označava 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. I posle load-a podataka koristite: SET FOREIGN_KEY_CHECKS = 1.DODACI LOAD FROM LOAD DATA local INFILE 'putanja do file-a. U vježbi koristiti slijedeće sql skripte i txt source datoteke: 16 . txt. potrebno je da isključite provjeru stranih ključeva unutar tabele. odnosno da ne provjerava dali taj ključ postoji u drugoj tabeli.ekstenzija' INTO TABLE ime_tabele FIELDS TERMINATED BY '.' (može se koristiti bilo koji znak koji služi kako bi odvojili polja koja popunjavamo unutar tabele) LINES TERMINATED BY '\n'.

Vježba 3 – Import/export podataka iz relacione baze podataka Cilj vježbe: Ilustrovati mogućnost exporta i importa podataka Upisati podatke u sve tabele svog modela pomoću alata MySQL Development (najmanje po 5 slogova u svaku tabelu). Svaki korak dokumentovati u dokumentaciju projektnog zadatka. kako slijedi: “4.2 Export-import podataka A) Export podataka iz SQL development alata B) Import podataka iz tekstualne datoteke u relacionu bazu C) Import podataka iz tekstualne datoteke u Microsoft Excel i Microsoft Access” Vježba 4 – Sigurnost podataka A) Naredba GRANT 1. Po uzoru na vježbu 2. Objasni efekat ovih naredbi 17 . Koristeći eksportovane podatke. Obrisati podatke u bazi. Zadate su GRANT naredbe. uraditi export podataka u cvs datoteku. učitati ih u Microsoft Excel i Microsoft Access. a zatim ih importovati iz tekstualnih datoteka napravljenih u prvom koraku.

GRANT SELECT(chore_name) ON chores TO dopey. Korisniku možemo jednom GRANT naredbom dodjeliti određena prava nad svim tabelama neke baze podataka ako navedemo database_name. 6.* GRANT SELECT ON woodland_cottage. 18 . dopey. GRANT SELECT. doc. UPDATE. on ovo pravo može dati drugima Dodjelite sva prava svima na tabelu chores. GRANT naredbom možemo dodjeliti pravo nad odabranom kolonom tabele.2. Napiši odgovarajuću GRANT naredbu.) Napiši naredbu kojom se korisniku doc dodjeljuje pravo SELECT nad svim tabelama baze podataka woodland_cottage (GRANT SELECT ON wwwwww TO xxxx) U prethodnoj vježbi vidjeli smo različite oblike naredbe GRANT. Samo navedemo listu prava razdvojenih zarezom. Jednom GRANT naredbom možemo dodjeliti vise različitih prava nad jednom tabelom. (GRANT ALL…. 2. INSERT ON talking_animals TO dopey: 5. Možemo zaključiti kako slijedi: 1. 4. Korisnik doc treba pravo pristupa podacima u tabeli chores. Korisniku sleepy treba omogučiti brisanje iz tabele talking_animals. happz.* TO doc. DELETE i INSERT nad odabranom tabelom GRANT ALL ON chores TO doc. GRANT ALL dodjeljuje prava SELECT. U okviru iste GRANT naredbe možemo izvršiti dodjelu prava za vise korisnika GRANT ALL ON chores TO bashful.WITH GRANT OPTION daje pravo korisinku da drugima dodjeli ono pravo koje mu datom naredbom dodjeljujemo GRANT DELETE ON chores TO doc WITH GRANT OPTION. 3. Takožer.

Zadajte odgovarajuće naredbe REVOKE nakon kojih će elsie samo moći čitati podatke.B) Naredba REVOKE Korisniku elsie date su privilegije koje joj više ne trebaju. 19 .

i to upravo onu koju navodim u GRANT naredbi. Q: Ima li još sličnih. Q: Šta ako zadamo REVOKE za privilegiju koju korisnik uopšte nije imao? A: Poruka o grešci će to jasno obznaniti – bićete obaviješteni da privilegija nije dodjeljena. Jedino ima smisla dodjeljivati SELECT privilegiju nad kolonom. I UPDATE….* TO elsie. u MySQLu. 20 . Q: CASCADE je podrazumijevana vrijednost u REVOKE naredbi. Tačno? A: Tačno. ali. besmislenih GRANT naredbi? A: Gotovo sve GRANT naredbe nad kolonom su besmislene.Nema glupih pitanja Q: Možemo li privilegije dodjeljivati na nivou kolone tabele? Npr. Q: Pretpostavimo da smo kreirali korisnika koji bi trebao imati sva prava nad svim tabelama u svim šemama baze podataka. opet. To je naredba GRANT SELECT ON *. Ima li neki jednostavan način da ovo uradimo ? A: U MySQL-u da. možemo li dodjeliti INSERT nad samo jednom kolonom? A: To bi zapravo bilo potpuno beskorisno – omogućiti da se upiše vrijednost u samo jednu kolonu tabele! Ovo bi imalo smisla samo ako tabela ima samo jednu kolonu. ovisi o DBMS kojeg koristimo.

jer baza mi ne dozvoljava da za pol upišem xxx. Joe: Greg me upravo zaposlio da radim na promanaženju poslova za zainteresovane klijente. ali Greg mi ne dozvoljava. ja i mijenjam podatke. Pored unosa. Vježba 5 – implementacija sigurnosti podataka u projektnom zadatku U svom projektnom zadatku definisati koncept sigurnosti podataka.. Nikada ništa ne upisujem u bazu.. Napišti naredbu kojom bi korisniku root promjenili lozinku. Stvarno to dobro radim. ali ponekad brišem podatke kada je otvorena pozicija (posao) popunjena. Jim: Ja unosim sve podakte u bazu. Napiši potrebne GRANT naredbe kako bi svaki od ova tri korisnika mogao obavljati svoj posao. mogu upisati samo M ili Z (kako. INSERT baš i ne. Napiši 3 naredbe kojima bi kreirali tri korisnika za Gregovu bazu. 1. REVOKE Zadatak je da budete Greg i da zaštite bazu tako da je korisnici ne mogu upropastiti. GREG Frank: Ja sam odgovoram za pronalaženje interesantnih poslova. U projektnu dokumentaciju dodati slijedeći sadržaj: “4.C) Naredba CREATE USER. razmišljaj). Prošitajte opise poslova pojedinih korisnika i napišite sve potrebne GRANT naredbe koje će im omogučiti pristup podacima koji im usitinu trebaju a onemogučiti pristup ostalim. Kreirati barem 3 korisnika i dodjeliti im odgovarajuća prava pristupa. Ja sam više web developer nego SQL guy. 2. Ponekad pogledam podatke u my_contacts. Svakako SELECT mogu uraditi.3 Koncept sigurnosti podataka A) Kreiranje korisnika B) Definisanje prava pristupa objektima baze podataka 21 . Pogledaj bazu koju je Greg napravio i napiši naredbe kako slijedi. GRANT. ali jednostavne poslove mogu uraditi. Učim brisati podatke. Želi intergrisati podatke o kontaktima sa zaposlenim u web stranicu. 3.

napraviti tabele T_land i T_city sa kolonama kao na slici: 3. DML Cilj vježbe je :   upoznati korištenje SQL naredbi za kreiranje... U bazi treba da postoje kreirane tabele kao na slici 2. u fontu kako slijedi: CREATE TABLE. izmjenu i brisanje tabela upoznati naredbe za manipulisanje podacima u tabelama Sve naredbe pisati pomoću DDL/DML. Zadati naredbe INSERT koje upisuju slijedeće podatke u tabele LAND Name Belgium Bosnia and Herzegovina Phone_prefix 032 387 code BEL BIH 22 currency EUR BAM . Konektovati se na školsku bazu korištenjem vlastitih pristupnih podataka. ZADACI 1. nakon svakog zadatka. Korištenjem DDL naredbe CREATE TABLE.MODUL 3: Analiza i primjena SQL-a Vježba 1 – DDL. Svaku naredbu kopirati u isti dokument...

id“. tako da postoje veze kao na slici: 23 .t_city. zadatku korisiti sadržaj ove kolone kako bi se upisao id odgovarajuće države. 4.Brazil Bulgaria United States of America France Japan Australia United Kingdom 055 359 001 033 081 061 044 BRA BGR USA FRA JPN AUS GBR CITY Name Brussels Sarajewo Zip 56xxx 33xxx Phone_prefix 056 033 Sao Paolo Sofia San Francisco Boston New York Paris Tokyo Sydney London 76xxx 100xx 415xx 617xx 718xx 250xx 392xx 36xxx 826xx 076 100 415 617 718 250 392 036 826 BRL BGL USD EUR JPY AUD GBP Land* Belgium Bosnia and Herzegovina Brazil Bulgaria USA USA USA France Japan Australia United Kingdom *NAPOMENA Kolonu „Land“ ostaviti praznu. U 5.city_id --. Postaviti strani ključ „t_office. Dodati kolonu „city_id“ (int) pomoču naredbe ALTER TABLE b. Modifikovati tabelu t_offices: a.

24 . Kopirati ga u ovaj dokument. Napisati ALTER TABLE naredbu kojom se briše kolona „city“ 7. Promjeniti ime kolone „phone_prefix“ u „dialing_code“ u tabelama T_CITY i T_LAND 8. kolona t_city_id upisuje id odgovarajućeg grada. Korisiti postojeće podatke iz kolone city: 6. napisati UPDATE naredbe kojima se u tabeli t_offices. Generisati DDL kod za kreiranje šeme baze podataka sa izmjenama urađenim u ovoj vježbi.5. Na osnovu podataka u tabeli CITY. Kod kopirati u ovaj dokument. 10. Napisati neredbu DELETE FROM kako biste iz tabela t_city i t_land obrisali sve redove koji nisu povezani sa podacima u tabeli t_offices 9. Uraditi „Reverse Engineer“ i napraviti novi ER dijagram.

7. Ispisati sve podatke iz tabele Order koje se odnose na kupca sa brojem 114 (CustomerNumber). 11. Modifikovati naredbu 1 dodavanjem odredbe za sortiranje po koloni contactLastName¸ 5. Vježba sadrži niz zadataka koji definišu kakav upit treba napraviti. 2. Iz tabele Customers selektovati kolone contactLastName i contactFirstName. bold). Sortirati ih po orderDate 10. Iz tabele Employees ispisati samo one slogove kod kojih kolona jobTitle ima vrijednost ‘Sales Rep’. Sortirati po polju ShippedDate. Naredbu 1 modifikovati tako da se ispisu slogovi počevšti od 11-og pa onda 15 narednih 4.docx) ZADACI 1. Iz tabele Orders ispisati orderNumber. Zadatak 1 Napisati naredbu za selectovanje svih kolona i svih redova iz tabele Customers. 25 . Iz tabele Orders izlistati sve narudzbe koje pripadaju kupcu broj 124 (CustomerNumber). Nakon kreiranja zadatog upita kopirati ga u dokument i odrediti font kao u primjeru (crveno. 12. Ispisati sve kolone iz tabele Order samo ako je vrijdnost kolone status =“shipped“ (isporučeno). SELECT * FROM T_customers Sminiti urađen zadatak pod istim imenom i u isti folder u kojem je i bio (c:\bp4\Vjezba 4. Napisati naredbu kojom se iz tabele Orders ispisuju samo jedinstvene vrijednosti u koloni status.Vježba 2: Jednostavni Select upiti Uputstvo za izradu vježbe Svaki učenik konektuje se na svoju šemu iz MySQL Workbench alata. orderDate i customerNumber sortirane po polju orderDate u opadajućem redoslijedu 9. Modifikovati prethodnu naredbu tako da sortiranje bude po koloni contactLastName a zatim i koloni contactFirstName 6. Npr. Ispisati sve redove. orderDate i customerNumber sortirane po polju orderDate u rastućem redoslijedu 8. Iz tabele Orders ispisati orderNumber. Modifkovati prethodnu naredbu tako da se izlista samo 10 prvih slogova 3.

13. Iz tabele Employees izlistati podatke o radnicima kod kojih polje extension završava karakterom „1“. 26 . Modifikovati prethodni upit tako da se ispisuju samo narudzbe navedenog korisnika u statusu ‚Shipped ‘. Iz tabele Orders izlistati sve narudzbe koje u polju comments imaju neki podatak. 17. Iz tabele Employees izlistati podatke o svim radnicima koji u polju JobTitle imaju niz karaktera ‚Sale‘ bilo gdje u polju.3 ili 4. Iz tabele Offices ispisati podatke o kancelarijama koje nisu iz USA (korisiti polje Contry). 16. Iz tabele Employees izlistati podatke o radnicima kod kojih je u polju officeCode 2. 20. Iz tabele Employees izlistati podatke o radnicima kod kojih je u polju extension na drugom mjestu karakter „1“. 15. 19. Iz tabele Employees izlistati podatke o radnicima kod kojih je u polju extension na drugom mjestu karakter „1“ i koje završava karakterom „1“. Uraditi na dva načina. 14. 18.

Npr. Iz tabele products ispisati productName. Povezati tabele products i productLines . a iz tabele ProductLines ispisati textDescription. 23. Vježba sadrži niz zadataka koji definišu kakav upit treba napraviti. Iz tabele Offices ispisati city i phone. Povezati tabele orderDetails.“ 27. bold). 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 polju jobTitle imaju string “Sale”. iz tabele products productName ii z tabele ProductLines polje textDescription. Nakon kreiranja zadatog upita kopirati ga u dokument i odrediti font kao u primjeru (crveno. 24. SELECT * FROM T_customers Sminiti urađen zadatak pod istim imenom i u isti folder u kojem je i bio (c:\bp4\Vjezba 4. Zadatak 1 Napisati naredbu za selectovanje svih kolona i svih redova iz tabele Customers. a iz tabele Employees ispisati kolone lastName i firstName. 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. products i productLines. Napraviti upit koji prikazuje iz tabele orderDetails: orderNumber i quantityOrdered.docx) ZADACI 21.Vježba 3: A)Složeni Select upiti (spajanje tabela) . Sortirati po poljima lastName i firstName. productVendor. Modifikovati prethodni upit tako da se ispisuju podaci o radnicima iz kancelarije koja je iz Tokija (city = Tokyo). 27 . 25. 26. 22. Modifikovati upit iz zadatka 1 tako da prikazuje samo podatke o radnicima koji u polju jobTitle imaju string “Sales”. productDescription i quantityInStock.B) Pogledi Uputstvo za izradu vježbe Svaki učenik konektuje se na svoju šemu iz MySQL Workbench alata.

28. 3 i 4 korištenjem pogleda v_employees. Modifikovati prethodni upit tako da prikazuje samo plaćanja izvršena poslije 1. 40.8. 28 . Modifikovati upit iz prethodnog zadatka tako da prikazuje podatke o narudžbama napravljenim poslije 1. contactFirstname. 35. Sortirati podatke po koloni customerNumber. amount. Napraviti pogled v_products korištenjem upita iz zadatka 5. Napraviti view v_employees baziran na upitu iz zadatka 1.12. Upit iz zadatka 7 proširiti povezivanjem tabele orders. contactLastname. orders i payments. 37. 31. 39. Definisati sortiranje po koloni productName. orders ->orderNumber.status. Prikazati kolone: Customers->customerNumber. 29. Iz liste kolona izbrisati customerNumber. Povezati tabele customers. 30. Iz ove tabele prikazati kolone contactLastName i contactFirstName. Modifikovati prethodni upit tako da pokazuje samo stavke kod kojih je naručena količina (quantityOrdered) veća od 60 a ime proizvoda (productName) sadrži string “Porsche”. orderDate. Iz ove tabele prikazati orderDate. customerNumber i status . a iz preostale 3 iste kolone kao u upitu 7.2003. Sortirati po istim kolonama. Modifikovati upit iz zadatka 12 tako da prikazuje samo narudžbe u statusu 'On Hold'. 38. 34. 32. Uraditi zadatke 2. Korištenjem pogleda v_products uraditi zadatke 6 i 7. a za narudžbe u status “Cancelled” 36. Sortirati poi menu i prezimenu kupca. payment>paymentDate. Modifikovati upit iz zadatka 9 tako što povezujemo i tabelu customers. 33. Napraviti pogled v_orders korištenjem upita iz zadatka 9. Korištenjem pogleda v_orders uraditi zadatke 10 i 11.2004 i ona kod kojih je iznos veći od 50000. 41. Modifikovati upit iz prethodnog zadatka tako da prikazuje podatke samo o kupcu čiji je broj 112.

a firstname malim slovima 29 .docx) ZADACI 1. Napiši upit koji će ispisati tekući dan 3. city i phone. Zadatak 1 Napisati naredbu za selectovanje svih kolona i svih redova iz tabele Customers. San Francisco. firstname i email. Podatke čitati iz tabele Orders 10. Kolonu nazvati shippedDay. SELECT * FROM T_customers Sminiti urađen zadatak pod istim imenom i u isti folder u kojem je i bio (c:\bp4\Vjezba 4. Novu kolonu nazvati office. Napiši upit koji prikazuje orderNumber i dan kada je roba isporučena (shippedDate).com 7. Novu kolonu nazvati employee. 8. Kolonu nazvati shippedMonth. razdvojene zarezom. Podatke čitati iz tabele Orders 9. Npr. Npr: 1. Napiši upit koji prikazuje orderNumber i mjesec kada je roba isporučena (shippedDate). Nakon kreiranja zadatog upita kopirati ga u dokument i odrediti font kao u primjeru (crveno. Napiši upit koji će prikazati tekući datum 2. ali tako da je lastname ispisano velikim slovima. Kolonu nazvati total_ priceEach. 4.Vježba 4: SQL funkcije Uputstvo za izradu vježbe Svaki učenik konektuje se na svoju šemu iz MySQL Workbench alata. Napiši upit koji će iz tabele orderDetails ispisati sve postojeće kolone i dadati novu koja se računa kao priceEach uvećan za PDV (priceEach *1. 5.17). dmurphy@classicmodelcars. Kolonu nazvati total_amount. Napiši upit koji će iz tabele payments ispisati sve postojeće kolone i dadati novu koja se računa kao amount uvećan za PDV (amount*1. Vježba sadrži niz zadataka koji definišu kakav upit treba napraviti. Napiši upit koji iz tabele employees ispisuje kolone lastname i firstname. Napiši upit koji proširuje prethodni upit kolonom koja prikazuje broj karaktera nove kolone. Napiši upit koji iz tabele offices kreira novu kolonu koju čine kolone officeCode.17). Npr: Murphy. +1 650 219 4782 6. razdvojene zarezom. bold). Diane. Napiši upit koji iz tabele employees kreira novu kolonu koju čine kolone lastname.

u bilo kojem statusu.datum rođenja . Radnik za obradu narudžbi može pregledati narudžbe svih korisnika. Pored pripadajuće grupe i podgrupe. a unutar nje podrgupe: „Mlijeko“. bar kod. koja se dalje obrađuje od strane radnika za obradu narudžbi. korisnik kompletira narudžbu. Prilikom registracije.isporučena Korisnik može pregledati sve svoje narudžbe.fax . podatke o korisniku (kupcu).grad (obavezan unos) . „Mliječni deserti“. Npr. „Puter .kućni broj (obavezan unos) . S tim u vezi. datum kreiranja kao i datum isporuke. 30 . mast“ i slično. za svaki artikal evidentira se: naziv.jmbg (obavezan unos) .narudžba kompletirana . Nakon što završi sa izborom artikala.ulica (obavezan unos) .ime (obavezan unos) .lozinka (obavezan unos) . margarin. sporevest ćemo analizu zahtijeva i napraviti ER model. korisnici upisuju slijedeće podatke: .poštanski broj (obavezan unos) Registrovani korisnik pravi narudžbu izborom artikala organizovanih u grupe i podgrupe artikala.4. koji može biti: . Analiza potreba Korisnici koji žele naručivati robu najprije moraju da se registruju. PRILOG 1 – PRIMJER DIZAJNA BAZE PODATAKA Pretpostavimo da treba kreirati jednostavnu bazu podataka koja će se koristiti za u aplikaciji „Internet prodavnica“.telefon (obavezan unos) . Pored ovih podataka.narudžba u toku .prezime (obavezan unos) . jedinica mjere i cijena.email (obavezan unos) . postoji grupa „Mliječni proizvodi“. Svaka narudžba ima jedinstven broj.mobitel . postoji i status narudžbe.

u fazi izrade modele objekti veze evidentiramo i atribute objekata.Modeliranje podataka ER model ER dijagram GRUPA KORISNIK 1 1 n PODGRUPA n 1 NARUDZBA n 1 ARTIKL 1 n NARUDZBA_STAVKE n Opis objekata i veze Pored identifikovanja objekata i veza. Objekat KORISNIK Naziv atributa Tip podataka id ime prezime datum_rodjenja jmbg email lozinka telefon fax mobitel adresa_ulica adresa_broj INTEGER VARCHAR (30) VARCHAR (30) DATE VARCHAR(13) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) Obavezno polje da da da ne da da da da ne ne da da Primarni kljuc da ne ne ne ne ne ne ne ne ne ne ne 31 Opis Primarni kljuc objekta datum rođenja jedinstven matični broj građana kućni broj . kao i atribute veza. ukoliko ih ima. Za svaki objekat (vezu) pravimo tabele kao u primjerima koji slijede.

vrijednost je obavezna 0 – narudzba u toku 1 – narudžba kompletirana od strane kupca . Ako je status „isporuceno“.2) Primarni kljuc objekta Vrijednosti: komad.VARCHAR(30) VARCHAR(30) da da ne ne Naziv atributa Tip podataka INTEGER VARCHAR (30) Primarni kljuc da ne Opis id naziv Obavezno polje da da Obavezno polje da da Primarni kljuc da ne Opis Obavezno polje da da da da da Primarni kljuc da ne ne ne ne Opis Primarni kljuc da ne Opis adresa_ grad adresa_ptt_broj poštanski broj Objekat GRUPA Primarni kljuc objekta Objekat PODGRUPA Naziv atributa Tip podataka id naziv INTEGER VARCHAR (30) Primarni kljuc objekta Objekat ARTIKL Naziv atributa Tip podataka id naziv bar_code jed_mjere cijena INTEGER VARCHAR (30) VARCHAR(30) pobrojani FLOAT(10. litar. Zavisi od statusa narudžbe. kilogram Objekat NARUDZBA Naziv atributa Tip podataka id datum_narudzbe INTEGER DATE Obavezno polje da da datum_isporuke DATE ne ne status INTEGER da ne 32 Primarni kljuc objekta Datum kada je korisnik kreirao ili kompletirao narudžbu Datum kada je izvršena isporuka robe.

bez obzira dali ima neki drugi kandidat za primarni ključ ili ne.isporučeno Objekat NARUDZBA_STAVKE Naziv atributa Tip podataka id kolicina INTEGER INTEGER Obavezno polje da da Primarni kljuc da ne Opis Primarni kljuc objekta Napomene: Tip podataka atributa određujemo na isti način kao što smo određivali tip promjenljive u programskom jeziku C++. primarni ključ objekta postaje primarni ključ relacione tabele. ali u osnovi svi sadrže: cjelobrojni (integer). Različiti sistemi za updarvljanje bazama podataka podržavaju različite tipove podataka.2 . realni (floar). i to tako da atributi objekta postaju atributi relacione tabele. tekstualni (varchar). datumski (date) i logički (BOOL). bolje performanse baze. Ovakva praksa omogučava jedinstven pristup podacima. Obavezno polje označava dali je dozvoljeno da podatak ne bude upisan za primjerak objekta. Ako je u tabeli navedeno „da“. znači da za svaki primjerak objekta vrijednost atributa mora biti upusana u bazu. kao i unificiran tretman primarnog ključa u modeliranju podataka. Relacioni model Prevođenje modela objekti veze u relacioni model Prevođenje objekata Pravilo za prevođenje veza glasi: Svaki objekat modela objekti veze postaje relaciona tabela. Primjenom ovog pravila dobijemo slijedeće tabele: Tabela KORISNIK Naziv atributa Tip podataka Id Ime prezime datum_rodjenja INTEGER VARCHAR (30) VARCHAR (30) DATE Obavezno polje da da da ne Primarni kljuc da ne ne ne 33 Opis Primarni kljuc datum rođenja . U ovom praktikumu ograničit ćemo se na ove tipove podataka. Primarni ključ „id“ navodimo za svaki objekat.

VARCHAR(13) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) da da da da ne ne da da da da ne ne ne ne ne ne ne ne ne ne jedinstven matični broj građana Naziv atributa Tip podataka INTEGER VARCHAR (30) Primarni kljuc da ne Opis id naziv Obavezno polje da da Obavezno polje da da Primarni kljuc da ne Opis Obavezno polje da da da da da Primarni kljuc da ne ne ne ne Opis Obavezno polje da da Primarni kljuc da ne Opis Jmbg Email Lozinka Telefon Fax mobitel adresa_ulica adresa_broj adresa_ grad adresa_ptt_broj kućni broj poštanski broj Tabela GRUPA Primarni kljuc Tabela PODGRUPA Naziv atributa Tip podataka id naziv INTEGER VARCHAR (30) Primarni kljuc Tabela ARTIKL Naziv atributa Tip podataka Id Naziv bar_code jed_mjere Cijena INTEGER VARCHAR (30) VARCHAR(30) pobrojani FLOAT(10. litar.2) Primarni kljuc Vrijednosti: komad. kilogram Tabela NARUDZBA Naziv atributa Tip podataka Id datum_narudzbe INTEGER DATE 34 Primarni kljuc Datum kada je korisnik kreirao ili kompletirao narudžbu .

koje su totalne sa obje strane.datum_isporuke DATE ne ne Status INTEGER da ne Obavezno polje da da Primarni kljuc da ne Datum kada je izvršena isporuka robe. i to: Korisnik-narudzba Narudzba. Ovaj atribut postaje strani ključ relacione tabele na strani N.Narudzba_stavke Grupa_podgrupa Podgrupa_artikl Artikl-Narudzba_stavke Za ovakve veze primjenjuje se pravilo: Pravilo 2. Ako je status „isporuceno“.prevođenje 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. Veza “Korisnik-Narudzba” U ovoj vezi na strani N je nardžba. Svi eventualni artibuti veze postaju atributi relacije na strani N. Zavisi od statusa narudžbe. mijenja se tabela Narudzba i ona postaje: Tabela NARUDZBA 35 . U modelu zapravo imamo samo takve veze. . te se primarni ključ objekta Korisnik umeće u tabelu Narudzba i postaje strain ključ. vrijednost je obavezna 0 – narudzba u toku 1 – narudžba kompletirana od strane kupca 2 . nego se primarni ključ objekta sa strane 1 umeće kao atribut u relacionu tabelu na strani N. Prevedimo veze kako slijedi. Dakle.isporučeno Tabela NARUDZBA_STAVKE Naziv atributa Tip podataka Id kolicina INTEGER INTEGER Opis Primarni kljuc Prevođenje veza Kod prevođenja veza treba voditi računa o tipu veze (kardinalnost i sveobuhvatnost objekta u vezi). Prevedimo najprije veze tipa 1:N.

Id datum_narudzbe INTEGER DATE Obavezno polje da da Ostale veze prevodimo na isti način.Narudzba_stavke Modifikuje se tabela Narudzba_stavke.isporučeno INTEGER Da Ne Strani kljuc (iz tabele Korisnik) Korisnik_Id S obzirom da u tabeli Narudzba već postoji polje sa imenom „id“. te dobijemo kolonu Korisnik_Id. to pri umetanju stranog ključa dodajemo ime tabele kao prefiks. Tabela NARUDZBA_STAVKE Naziv atributa Tip podataka Id kolicina Narudzba_Id INTEGER INTEGER INTEGER Primarni kljuc Strani kljuc Veza Grupa_Podgrupa Tabela PODGRUPA Naziv atributa Tip podataka Id Naziv Grupa_id INTEGER VARCHAR (30) INTEGER Primarni kljuc Strani ključ Veza Podgrupa_artikl Tabela ARTIKL Naziv atributa Tip podataka Id INTEGER 36 Primarni kljuc . vrijednost je obavezna INTEGER da ne 0 – narudzba u toku Status 1 – narudžba kompletirana od strane kupca 2 . Veza Narudzba. Ako je status „isporuceno“.Naziv atributa Tip podataka Primarni kljuc da ne Opis Obavezno polje da da da Primarni kljuc da ne da Opis Obavezno polje da da da Primarni kljuc da ne ne Opis Obavezno polje da Primarni kljuc da Opis Primarni kljuc Datum kada je korisnik kreirao ili kompletirao narudžbu ne ne Datum kada je izvršena isporuka datum_isporuke DATE robe. Zavisi od statusa narudžbe.

litar.VARCHAR (30) VARCHAR(30) pobrojani FLOAT(10. U ovom primjeru tabela je već dobila strani ključ prethodnim prevođenjem relacije. Sada dodajemo strani ključ na tu izmjenjenu tabelu. OPREZ! Uzimamo zadnje verzije tabela Tabela KORISNIK Naziv atributa Tip podataka Id Ime prezime datum_rodjenja Jmbg INTEGER VARCHAR (30) VARCHAR (30) DATE VARCHAR(13) Obavezno polje da da da ne da Primarni kljuc da ne ne ne ne 37 Opis Primarni kljuc datum rođenja jedinstven matični broj građana . koja se direktno koristi u narednoj fazi razvoja baze podataka (implementacija). Relaciona šema je skup svih tabela koje su nastale tokom prevođenja modela objekti veze u relacioni model. Relaciona šema Cilj modeliranja podataka jeste relaciona šema. kilogram Strani ključ Veza Artikl-Narudzba_stavke Tabela NARUDZBA_STAVKE Naziv atributa Tip podataka Id kolicina Narudzba_Id Artikl_Id INTEGER INTEGER INTEGER INTEGER Opis Primarni kljuc Strani kljuc Strani kljuc Oprez! Uzima se poslednja verzija tabele.2) INTEGER Naziv bar_code jed_mjere Cijena Podgrupa_id da da da da da ne ne ne ne ne Obavezno polje da da da da Primarni kljuc da ne da da Vrijednosti: komad.

VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) VARCHAR(30) da da da ne ne da da da da ne ne ne ne ne ne ne ne ne Naziv atributa Tip podataka INTEGER VARCHAR (30) Primarni kljuc da ne Opis id naziv Obavezno polje da da Obavezno polje da da da Primarni kljuc da ne ne Opis Obavezno polje da da da da da da Primarni kljuc da ne ne ne ne ne Opis Obavezno polje da da da da Primarni kljuc da ne da da Opis Email Lozinka Telefon Fax mobitel adresa_ulica adresa_broj adresa_ grad adresa_ptt_broj kućni broj poštanski broj Tabela GRUPA Primarni kljuc Tabela PODGRUPA Naziv atributa Tip podataka Id Naziv Grupa_id INTEGER VARCHAR (30) INTEGER Primarni kljuc Strani ključ Tabela ARTIKL Naziv atributa Tip podataka INTEGER VARCHAR (30) VARCHAR(30) pobrojani FLOAT(10. kilogram Strani ključ Primarni kljuc Strani kljuc Strani kljuc . litar.2) INTEGER Tabela NARUDZBA_STAVKE Id Naziv bar_code jed_mjere Cijena Podgrupa_id Naziv atributa Tip podataka Id kolicina Narudzba_Id Artikl_Id INTEGER INTEGER INTEGER INTEGER 38 Primarni kljuc Vrijednosti: komad.

Svaka kopija identifikuje se jedinstvenim brojem filma. Isti film ponekad je u opciji sa različitim formatima. Videoteka ima filmove na raznim medijima i različitim formatima. PRILOG 2 – PROJEKTNI ZADACI ZA TIMSKI RAD (modul 1) Projektni zadatak 1 – VIDEOTEKA Dreams&Lies Projektujete informacioni system za rođaka koji ima videoteku. kao Blu-Ray. triler itd). prezime. Videoteka posjeduje veliki broj filmova na istim ili različitim medijima. Podatke organizovati tako da sadrže istorijske podatke o iznajmljivanju. odnosno lista korisnika koji su iznajmljivali neki film. VHS. Za svaki film želimo memorisati naziv. što znači da se za svakog korisnika / film mogu vidjeti aktivnosti iz prošlosti.5. tj. Evidentirati datum iznajmljivanja i datum vraćanja filma.lista iznajmljenih filmova. U bazi podataka koja čuva navedene informacije obezbijediti informacije o iznajmljivanju filmova članovima videoteke. akcija. datum kada je film napravljen. ime. od kojih neki imaju iste naslove. osnovni jezik i kategoriju filma (kao komedija. DVD. Za člana videoteke pohranjujemo informacije: jedinstven broj člana. podaci o adresi i broj telefona. 39 .

a koji se povezuje sa prihodima (vrsta prihoda) i rashodima (vrsta rashoda).rashodi). Plata. grijanje. osiguranje. ljekarske usluge) i tip troška (prihod ili rashod). u svakom trenutku treba biti moguće napraviti uvid u stanje kućnog budžeta (saldo = prihodi .Projektni zadatak 2 . kao što su računi za režije (el. Također. električna energija. evidentiramo i vanjske partnere koji su isplatili prihod (npr. Vodovod. kupovina namjernica. broj telefona. telefon. Potrebno je evidentirati sve prihode i rashode. Za prihod evidentiramo: - Vrstu prihoda Datum prispjeća Iznos Pod pojmom rashod podrazumijevamo sve troškove koje domaćinstvo ima. i slično. Energija. kao što su plate.KUĆNI BUDŽET Up&Down Potrebno je napraviti bp i aplikaciju za evidenciju kućnog budžeta. te njihova veza sa prihodom odnosno rashodom (ko je obezbijedio/ potrošio novac).. kao i pregled rashoda/prihoda po vrsti troška. Za člana domaćinstva evidentiramo ime. 40 . članu domćinstva i partneru. Preduzeće u kome radi roditelj) ili su naplatili usluge (npr. džeparac itd. Za rashod evidentiramo: - Vrstu rashoda Datum rashoda Iznos U bazi se vodi evidencija i o članovima domaćinstva.. Pod pojmom prihod podrazumijevamo sva novčana sredstva koja su na raspolaganju domaćinstvu. Centralno grijanje itd). Također.). registracija automobila. datum rođenja i jmbg. Baza treba da omogući unos podataka. Kreirati zasebno objekat u kome se evidentiraju vrste troškova. gardarobe. Ovaj objekat sadrži podatke: vrsta troška (npr. socijalna pomoć. dječiji doplatak. dječiji dodatak. prezime.

kilometražu i bilješke (npr. evidentira se datum i vrijeme iznajmljivanja i datum i vrijeme kad osoba planira vratiti vozilo. datum i vrijeme kad želi preuzeti vozilo i datum i vrijeme kad ga planira vratiti. dolaskom u agenciju. Kada se vozilo vrati agenciji evidntira se kilometraža. npr. Korisnik popunjava rezervaciju navođenjem tipa vozila kojeg želi iznajmiti.. Za svakog korisnika (ko iznajmljuje vozilo) evidentiramo broj vozačke dozvole. Vozilo može biti iznajlmjeno bilo preko ranije napravljene rezervacije ili. broj lk. adresu stanovanja. 41 . Također. datum rođenja. kilometraža u momentu iznajmljivanja i količina goriva u rezervoaru.. terenca i sl. broj telefona. količina goriva i zabilješke (npr. godinu proizvodnje. model.Projektni zadatak 3 – Rent-a-wreck Projektujete bazu podataka za lokalnu firmu „rent-a-wreck“. proizvođača. i sl). potrebno ofarbati desna prednja vrata. limuzina. evidentiramo podatke o osobi koja ga je iznajmila i o iznajmljenom vozilu.. Za svako vozilo potrebno je memorisati broj registarskih tablica. Prilikom iznajmljivanja vozila. vraćeno sa oštećenim prednjim lijevim branikom prema zapisniku br.). Svako vozilo je određenog tipa. Svako vozilo ima evidentiranu dnevnu i sedmičnu cijenu rentanja. kada je i od koga izdana. kombi. prezime i ime. jednostavno.

kod dužine 4 karaktera. gdje se na jednoj narudžbi obično nalazi više od jednog modela namještaja. prezime. Firma pravi visoko kvalitetne ormare. opisom i jediničnom cijenom. podaci o osobi iz firme za kontakt (prezime. Trenutno proizvodi 65 različitih modela pri čemu je svakom modelu dodjeljena jedinstvena oznaka dužine 4 do 8 znakova. šifrom od 5 karaktera. Da bi se izbjegle zabune. uglavnom za kuhinju. BU – bukva. utiče na cijenu. Kupci su uglavnom poduzetnici koji se bave renoviranjem stanova. Nudi se 31 različit stil vrata. Vrsta obrade koja će se primjeniti na drvo. Tojsici –Wood trenutno nudi 15 različitih tipova obrade što. Stil vrata. opis i dodatne informacije kao što su informacije za isporuku (težina. Tojsici -Wood nudi 6 različitih vrsta drveta.iverica. opis i procenat za koji se uvečava osnovna cijena. Npr. što znači da će model sa osnovnom cijenom 100 KM izrađen od ovog drveta koštati 140 KM. Za svakog kupca Tojsici-Wood ima zaduženog predstavnika (radnik koji komunicira i brine se o kupcu). opet. HR – hrast. svaki ima ime. opis i opis i procenat za koji se uvečava osnovna cijena. telefon). Npr.Projektni zadatak 4 – Stolarija Tojsici-Wood Dizajnirate bazu podataka za stolarsku firmu kako biste omogučili evidenciju cjenovnika i narudžbi namještaja koji se proizvodi. 3 samostojeća elementa od 60 cm i 2 zidna elementa od 40 cm. Kupac kreira narudžbe. šifru od 3 karaktera. Svaki predstavnik firme ima evidentirano ime. Npr. „P40L4“ znači podni. zaduženog da pomaže kupcu kod dizajniranja i izbora modela. za hrast evidentira se 40%.. Označava tip ručkica i nosača koje Tojsici-Wood kupuje od drugih dobavljača. Tojsici-Wood zahtijeva da su svi elementi na jednoj narudžbi od istog drveta. istog stila obrade i vrata i sa istim hardware. samostojeći element širine 40 cm sa 4 ladice. Za svakog kupca evidentira se ime firme. telefon. Uz svaki tip drveta evidentira se procenat za koji se uvečava osnovna cijena modela. ime.. adresa i telefon firme.). 0%. Harware. pri čemu svaka vrsta ima ime i oznaku dužine 2 karaktera (IV. Za svaku narudžu evidentira se datum kreiranja narudžbe i datum isporuke. Svaka vrsta obrade ima ime. Npr. tip kartonske ambalaže). svaki se identifikuje imenom. 42 . kupac mora definisati i slijedeće podatke: - - - Vrsta drveta. Nudi se 52 različita stila. Svaki model ima osnovnu cijenu. broj radnih sati potrebnih za izradu. Za potpuno definisanje modela. NAT prirodno. datum rođenja.

2011 3. ili u slučaju da je odgovorni advokat spriječen. kako bi se mogli praviti izvještaji kao npr: ispisati sve slučajeve u kojima je odgovorni advokat nadziran od strane supervizora Advokat Nr1. Na jednom slučaju mogu raditi i drugi advokati iz kancelarije.05. Za većinu klijenata. ako želimo tužiti prodavnicu koja nam je isporučila pokvaren dvd uređaj.Projektni zadatak 5 – Advokatska kancelarija SHL Advokatska kancelarija Snobić. telefon. 75000 Tuzla Telefon: 070 700 700 Osoba za kontakt: Lihvar Najmodavac Datum otvaranja slučaja: 15.0 sati Maslanica Sasirom (#00139) 11. Svaki slučaj može ima samo jednog odgovornog advokata.05.3 sata Krempita Lisnat (#00132) 05.2011 0.09. npr na nekim privremenim poslovima za koje je stručan radi određen broj sati. Za svaki slučaj koji advokatska kancelarija zastupa pred sudom žele evidentirati podatke čiji opis slijedi.07. npr. Za neke klijente SHL radi besplatno „pro bono“. Ovako bi izgledali podaci o jednom slučaju Broj slučaja: Klijent: 001782 Ime: Metro Real Estate Holding Adresa: Armije RBiH 18. adresu. pravljenjem računa za učinjene usluge kako bi ih naplatili od svojih klijenata. Ostali advokati imaju supervizora koji nadzire njihov rad. ime. Supervizor za te advokata je također jedan od advokata iz iste kancelarije u statusu partnera. za advokatsku kancelariju to je „slučaj“). tj.2011.2011 2. Za svakog advokata koji radi u firmi evidentira se 5-cifreni jedinstven broj radnika i cijena koja mu se plača za jedan sat rada. jedan advokat može biti odgovorni advokat za više slučajeva. Neki od advokata zaposlenih u SHL imaju status „partnera“. a jedan klijent može imati više slučajeva. Svaki slučaj povezan je za jednog klijenta.8 sati 43 . Postoji mnogo slučajeva (u advokaturi se bave „slučajevima“. Baza podataka treba da evidentira i ove releacije. Datum zatvaranja slučaja: (u toku) Opis: Klijent tuži najmoprimatelja zbog štete načinjene na iznajmljenoj nekretnini Advokat: Jaza Jazavac (broj zaposlenog #00131) Sati za naplatu: Jaza Jazavac (#00131) 30. Hapić i Lafinaš (SHL) zabilježila je nagli porast u poslovanju tokom zadnje decenije i razmatra potrebu za automatizovanim sistemom naplate. SHL čuva slijedeće podatke: prezime.

Kod priključenja novog kupca na distributivnu mrežu potrebno je u sistem unijeti novo mjerno mjesto koje može biti namijenjeno za domaćinstvo ili za industrijsku potrošnju. vod. opština. lokacija objekta (kanton. osigurači. odnosno indirektno za industriju) Vrsta brojila (monofazno ili trofazno za domaćinstvo. Skup zajedničkih podataka o svim objektima u elektrodistributivnoj mreži („registar“) treba da sadrži minimum osnovnih zajedničkih podataka o objektu (do 10 podataka) kao što su: - Identifikacioni broj objekta Vrsta objekta (TS. DG) Naziv objekta Nazivni napon mreže (pogonski napon mreže) .Projektni zadatak 6 – Baza tehničkih podataka o objektima u elektrodistributivnoj mreži Baza tehničkih podataka treba da omogući praćenje i analizu stanja i proteklih događaja u elektrodistributivnim objektima i mrežama. mjerno mjesto. odnosno trofazno za industriju) – podaci o proizvođaču. tip brojila i klasa tačnosti Podaci o ostaloj opremi mjernog mjesta (uklopni sat.4 kV za domaćinstvo.za lociranje objekta u prostoru Godina izgradnje Pripadnost elektrodistributvnom dijelu (organizacioni dio u okviru elektroprivredne kompanije) Objekti koji čine elektrodistributivnu mrežu mogu biti: - Transformatorske stanice SN vodovi NN vodovi Mjerna mjesta Distribuirani generatori – male elektrane Potrebno je modelirati mjerna mjesta kao dio elektrodistributivnog sistema. 10 kV za industrijsku potrošnju) Način mjerenja (direktno mjerenje za domaćinstvo. limitatori – za domaćinstva. adresa ) . naselje. Zajedničke 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 domaćinstvu ili industrijskoj potrošnji neophodno je unijeti i pratiti sljedeće podatke: - Naponski nivo priključenja kupca (0. a za 44 .za lociranje objekta u energetskoj šemi Mjesto.

obuhvata: - Unos podataka (prvi unos podataka o novom mjernom mjestu) Ažuriranje podataka (kvantitativna promjena postojećeg podatka nakon poduzetih akcija na objektu) Pristup podacima radi njihovog korištenja Mjesečni obračun na osnovu očitanja brojila (koji se sam generiše na odredjeni dan u mjesecu. proizvonač. godina proizvodnje.- industrijsku potrošnju – podaci o mjernim transformatorima npr.te omoguciti isti po potrebi) 45 . tip. nakon njenog uspostavljanja. klasa tačnosti) Upravljanje bazom tehničkih podataka.

Tada kupac ima mogućnost da to potvrdi (prihvati) i pređe na unos informacija za plaćanje ili da odbije i da se vrati na košaricu gdje može da izmijeni količinu unutar nekog prodajnog paketa ili izbaci neki prodajni paket ili da odatle ode ponovo na ponudu da bi dopunio kupovinu. adresi plačanja kupca ili nedovoljno novca na računu) te se kupac obavijesti prikazom informacija na ekranu ili slanjem informacije na mail kupca koji je unio prilikom unosa informacija o sebi. odnosno prodavača električne energije. Pod paketom se podrazumjevaju npr. web aplikacije koja predstavlja interfejs za interakciju sa kupcima (ponuda. 46 . Sistem prodaje putem Interneta se sastoji od: - podsistema baze podataka u kojoj se smještaju podaci o ponudi i narudžbama kupaca. formiranje narudžbe. nedjeljom itd. informacije o kupcu. MasterCard i sl. Tu kupac ima mogućnost da završi kupovinu i pređe na potvrdu narudžbe i plaćanje ili da se vrati na dalju kupovinu. mail za obavještenja o isporuci i sl.Projektni zadatak 7 . potvrđivanje narudžbe. izmjene i sl. unos podataka o kupcu i informacija za plaćanje kraticom). informacije o adresi na koju ce se izvršiti isporuka. podsistema za procesiranje narudžbe (praćenje isporuke naručene električne energije) aplikacija za administriranje sistema (dodavanje u ponudu novih paketa.) Kada kupac putem Interneta dođe na stranicu za kupovinu njemu se prezentira ponuda kupovnih paketa sa mogućnošću da svaki od ponuđenih paketa odabere i time prebaci u zamišljenu košaricu za kupovinu. od 23-06 sati. podsistema za procesiranje plaćanja kreditnim/debitnim karticama.). Plaćena narudžba se dalje proslijedi na procesiranje podsistemu za procesiranje narudžbe koji je dužan da kupljenu električnu energiju kada je korisnik bude zahtjevao „spakuje“ i adresira na njega i pošalje. Kada kupac potvrdi račun za plaćanje prelazi se na stranicu za unos informacija za plaćanje (informacije o kartici. Ako se odbije plaćanje to može biti iz više razloga (netačni podaci o kartici. paket trošenja subotom.) da bi postavio upit da li kupac sa datim informacijama o kartici i datim informacijama o sebi može da plati navedeni iznos? Ako se dobije potvrdan odgovor onda znači da su unešeni podaci tačni i da kupac ima takvo stanje na računu da može platiti navedeni iznos. paket trošenja el. želi da razvije sistem prepaid prodaje (naručivanja i plaćanja) putem interneta kako bi imao konkurentsku prednost u odnosu na ostale operatera.Kupovina električne energije putem Interneta Pretpostavka je da se u BiH desila liberalizacija tržišta za prodaju električne energije i da svi korisnici imaju mogućnost da biraju od kojeg operatera i pod koji uslovima će da koriste električnu energije. Ove informacije preuzima podsistem za procesiranje plaćanja koji iz sigurnosnih razloga koristi enkripciju za zaštitu podataka te komunicira sa centrom za procesiranje odredene vrste kartice (VISA. Ukoliko se odluči da pređe na potvrđivanje onda mu se prezentira pregled svega naručenog sa ukupnim iznosom za plaćanje (račun). Jedan od pružalaca usluga. Administrator sistema ima mogućnost da određene pakete izbaci ako se više ne prodaju ili da doda nove ako su se pojavili u ponudi ili da promijeni informacije o postojećim i sl. izbacivanje. informacije o adresi za plaćanje. energ. te se izvrši skidanje navedenog iznosa sa računa kupca i prenos na račun prodavca. Nakon odabira paketa kupcu se nudi da unese količinu koju kupuje unutar odabranog paketa i prezentira mu se novo stanje košarice.

47 .

gdje svaki modul ima dio funkcije čitavog programskog paketa u obliku izvršnog programa. očitavanje i konfigurisanje pretplatničkih brojila i pripremu izvještaja. Svaki se drugi način rada određuje pomoću servisne kartice. Softver omogucava kupovanje elektricne energije. prodajnim mjestima).kao i za pregledavanje.programski paket za opsluživanje (očitavanje i konfigurisanje) pretplatničkih brojila.pr. Programski paket SPMW je modularne strukture. KREDITNI NAČIN (OBIČNI): Brojilo mjeri i registruje električnu energiju koju isporučuje distribucija. Sistemski softver SPMW je namjenjen za izvođenje kupovine električne energije u sistemu. Rad sa bazom podataka Baza podataka sadrži sve podatke koji su potrebni za upravljanje sistema pretplatničkih brojila i kupovinu električne energije za pretplatnička brojila. unošenje. Programski paket se sastoji iz slijedećih modula: SPM Database (SPM baza podataka) – programski paket za pregled. Brojilo znači radi kao obično multitarifno jednofazno ili trofazno brojilo. pa ju potrošac mora umetnuti u pretplatničko brojilo. servisere i prodavce. SPM POS (Keypad) .(SPM POS (Tipkovnica)) – prodajno mjesto za pretplatnička brojila na tipkovnicu SPM Service (SPM Opsluživanje) .Projektni zadatak 8 – Sistem prodaje elektricne energije Sistem naplate električne energije funkcioniše na sljedeći način: PRETPLATNIČKI NAĆIN (PREPAID): Potrošac kupi kod svoje distribucije odrđenu količinu električne energije. itd. brojilo kod prvog uključenja na mrežni napon radi u pretplatničkom načinu. listanje i izpis podataka. Ako nema drugih zahtjeva. Informacija o kupovini se registruje u inteligentnoj kartici. podešenim parametrima (n. Moguć je dostup do podataka o korisnicima sistema (potrošacima. Plaćanje može obuhvatiti pored iznosa električne energije još tekuće i stare troškove. koje odredi distribucija. serviserima. Program SPM Database omogućava rad sa bazom podataka. 48 . Kupljeni se iznos pomoću potrošačke kartice unese u brojilo. Program SPM Database omogućava izdavanje inteligentnih kartica za potrošaće. KUPOVINA ELEKTRIČNE ENERGIJE Kupovina električne energije za pretplatnička brojila na inteligentnu karticu vrši se pomocu modula SPM POS (Smart card). Kad je kupljeni iznos potrošen. opsluživanje brojila. popravljanje i brisanje podataka definisanih u sistemu. otklopnik isključi potrošacu mrežu (osim ako aktivira kredit u nuždi). tarifni sistem) i događajima kao što su kupovina. SPM POS (Smart card) (SPM POS (Inteligentna kartica)) – prodajno mjesto za pretplatnička brojila na inteligentnu karticu.

ispisati i memorisati na disku u XML formatu. pa ju potrošac mora utipkati u pretplatničko brojilo. Izvještaji se mogu pregledati na ekranu. 49 . Program SPM Database omogućava ispisivanje pripremljenih izvještaja i kreiranje novih.Kupovina električne energije za pretplatnička brojila na tipkovnicu vrši se pomocu modula SPM POS (Keypad). IZVJEŠTAJI Svi podaci iz baze podataka se mogu prikazati u obliku izvještaja. Informacija o kupovini (20 cifri) ispiše se na računu.

. Forward/Reverse Engineer. Opis objekata i veza 3. Izvršavanje SQL Skripta za kreiranje baze 50 . prema potrebi dopuniti informacijama identifikovanim prilikom izrade modela 2. Kreiranje relacionog modela pomoću CASE alata a. Dijagram objekti-veze c. Prevođenje modela objekti-veze u relacioni model c. Projektni zadatak: Projektovanje baze podataka . Modeliranje podataka. 2..6. 3. Relacioni model (teoretske osnove) b. Model objekti-veze a. model objekti-veze (teoretske osnove) b. Analiza potreba a.. Prilog 3 – Projektna dokumentacija Prva strana treba da sadrži slijedeće podatke: Elektrotehnička škola Tuzla Školska godina:2011/2012 Razred: 4t1 Projektni tim: 1. Relaciona šema 4. kopirati projektni zadatak.. Sadržaj projektne dokumentacije: 1. Synchronize Model alati c. Relacioni model a. Kreiranje relacionog modela pomoću MySQL Workbench alata Data Modeling b.

Related Interests