Praktikum Vjezbi Baze Podataka

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,

    [email protected]

    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