60
VEŽBE BAZE PODATAKA

Erwin veºbe

Embed Size (px)

Citation preview

Page 1: Erwin veºbe

VEŽBEBAZE PODATAKA

Page 2: Erwin veºbe

CASE (Computer Aided Software Design) alat ERWIN (Entity Relationship for Windows)

Ovaj alat je razvio LogicWorks i ekipa sa University Princeton.

Mogućnosti ovog alata su: 1. modelovanje podataka kao fundamentalni korak u

projektovanju informacionog sistema, 2. modeli iz ERWINA se mogu eksportovati u gotovo sve

postojeće baze podataka, 3. ERWIN može učitati bazu podataka i automatski kreirati

dokumentaciju vezanu za bazu podataka

Page 3: Erwin veºbe

ERWIN je kao i većina modernih CASE alata prihvatio koncepciju projektovanja informacionog sistema i modelovanja podataka na osnovu grafičkih predstava koje su vizuelno jasnije, jednostavnije za pretraživanje i pregled i uklanjaju redudanciju (ponavljanje) koja je bila neophodna u tekstualno-kreiranom modelu informacionog sistema.

Page 4: Erwin veºbe

Po IDEF1X metodilogiji na najvišem nivou kreira se Entity Relationship Diagram (ERD) koji identifikuje glavne poslovne entitete i njihove veze i Key-Based model koji postavlja neophodne informacije potrebne za identifikaciju pojedinih entiteta.

Na nižim nivoima imamo takođe dva modela Fully Attributed (FA) i Transformation Model (TM). Fully Attributed sadrži sve detalje potrebne za implementaciju. Transformation Model (TM) predstavlja transformaciju relacionog modela baze podataka u strukturu koja pogodna za realizaciju u odgovarajuću bazu podataka (DBMS Model). Od opisanih modela ERD, KB i FA su logički modeli dok su TM i DBMS fizički modeli koji su bliski sa realizacijom konkretne baze podataka.

Page 5: Erwin veºbe

Osnovni fundamentalni element baze je tabela. Tabela se koristi da organizuje i smešta podatke. Svaka tabela je organizovana u redove i vrste podataka. Svaki red se naziva instancom tabele. Svaka ćelija tabele sadrži samo jednu činjenicu. Jedan primer tabele je u poslovanju hotelskog preduzeća tabela sa podacima o gostima. Neka to bude tabela gost. Instance (odnosno redovi) bi u tom slučaju bili pojedinačni gosti, dok su kolone podaci o tom gostu (broj sobe, ime i prezime, itd). U logičkom modelu informacionog sistema tabela se naziva entitet dok je kolona atribut.

Page 6: Erwin veºbe
Page 7: Erwin veºbe
Page 8: Erwin veºbe

Nakon startovanja ERWIN-a pojavljuje se radno okruženje kao na slici.

Pored standardnog Windows okruženja (naslovna linija, prozor, meni, toolbar) vidi se radna površ koja je namenjena pozicioniranju, specificiranju i povezivanju entiteta. Osnovne operacije se mogu zadavati pomoću ERWin toolbox-a koji je označen sa 1. Prozor za preciziranje atributa je označen sa 2.

Page 9: Erwin veºbe

Prvo polje desno predstavlja polje za unos entiteta. Entitet se pozicionira kada je izabrano ovo polje jednostavnim klikom na radnu površ. Entiteti se mogu unositi sve dok je selektovano ovo polje. Entiteti se istovremeno i imenuju automatskim imenima E/n gdje je n redni broj entiteta. Entiteti se mogu prevlačiti i pozicionirati po radnoj površi dok je selektovana prva alatka u prvom redu (u ERWIN-u se naziva Select). Entiteti se brišu na načine uobičajene u Windows operativnom sistemu.

Page 10: Erwin veºbe
Page 11: Erwin veºbe

Opcije vezane za entitet se podešavaju desnim klikom na ikonicu entiteta i izborom Entity Editor. Najvažniji elemenat dialog box-a koji se pojavljuje izborom ove opcije tiče se imenovanja entiteta koje mora biti u skladu sa elementima realnog sistema koji se modeluju (Npr. Osoba, Radnik, Gost, Sluzbenik, itd).

Page 12: Erwin veºbe
Page 13: Erwin veºbe

Mogući tipovi entiteta su:1. Blob Binary large objects (obično se odnosi na atribute u obliku velikih skupova binarnih podataka, npr. slika radnika itd);2. Datatime vreme i datum; 3. Number broj; 4. String niz alfanumeričkih karaktera.

Page 14: Erwin veºbe

Ime atributu dodeljujete tako što kliknete na opciju New nakon čega vam se otvara prozor New Attribute. U Attribute Name upisujete željeno ime atributa. U prozorčiću Domain određujete koju vrednost će vaš atribut da ima tj. da li će biti: datetime, number, string ili blob. Pritisnite OK i vratićete se na predhodni prozor sa rezultatom kao na.

Page 15: Erwin veºbe
Page 16: Erwin veºbe

Ključ se dodeljuje jednom atributu koji će biti predstavnik entiteta. Ključ dodeljujete atributu na sledeći način: Kliknite desnim tasterom na vaš entitet. Pojaviće se dodatni meni sa opcijama, odaberite Attribute Editor. U prozoru Attribute odaberite vaš atribut i čekirajte u donjem desnom uglu opociju Primary Key. Pritisnite na OK.

Page 17: Erwin veºbe

Načini prikaza entiteta:

a) Prikaz samo naziva entiteta (Entity);

b) Prikaz naziva entiteta i primarnog ključa (Primary Key);

c) Prikaz entiteta i atributa (Attribute)

Page 18: Erwin veºbe

Objekti (entiteti) na logičkom odnosno tabele na fizičkom nivou ne stoje u modelu sami za sebe. Postoje tri osnovna tipa veza između objekata u ERWIN-u.

To su identifikujuća relacija (Identifying relationship - druga ikona u drugom redu Tool-a),

veza više na više (Many-to-many relationship - treća u drugom redu toola) i

neindentifikujuća veza (Non-identifying relationship).

Veze između objekata se uspostavljaju tako što se klikne na željeni tip veze, klikne na jedan entitet pa zatim na drugi entitet.

Page 19: Erwin veºbe
Page 20: Erwin veºbe

Da bi se naziv relacije video, negde na radnoj površi treba napraviti desni klik, u padajućem meniju treba izabrati Display Options/Relationship. Naziv relacije se sada može menjati na uobičajeni način. Detaljnije podešavanje relacija se postiže desnim klikom na relaciju i izborom opcije Relatinship Editor.

Page 21: Erwin veºbe

Neidentifikujuća veza Igrač-Klub U klubovima igraju igrači koji imaju svoj

primarni ključ koji ih na jedinstven način određuje. U timu igra više igrača. Jedan igrač ne može istovremeno igrati za više klubova. Dakle, entitet Klub je iznad entiteta Igrač ali kako igrač već ima svoj ključ koji ga određuje veza između kluba i igrača je neindetifikujuća. Vidimo da naziv kluba ne određuje igrača već postaje samo dodatni atribut igrača. Dodatne spoljne atribute (Foreign Key) prati oznaka FK.

Page 22: Erwin veºbe
Page 23: Erwin veºbe

Studenti jednog fakulteta (entitet Student) u okviru svog fakulteta su u potpunosti određeni svojim brojem indeksa. Ako bi se pravio informacioni sistem fakulteta studenti bi bili određeni samo na osnovu broja indeksa.

Ali na Univerzitetu postoji više fakulteta tako da više studenata mogu da imaju isti broj indeksa ali tada oni pripadaju različitim fakultetima.

Dakle, da bi student na univerzitetu bio u potpunosti određen neophodno je da mu se ključ sastoji od naziva fakulteta i broja indeksa unutar fakulteta. Veza između entiteta Fakultet i entiteta Student mora biti identifikujuća. U tom slučaju se entitet Student naziva slabim entitetom ili djetetom, dok se entitet Fakultet naziva jakim entitetom ili roditeljem.

Page 24: Erwin veºbe
Page 25: Erwin veºbe

U zavisnosti od fizičkih ograničenja moguće je implementirati vezu između studenta i fakulteta kao neidentifikujuću kao u sledećem primeru. Ovde student poseduje ključ (Social Security Number) koji ga u potpunosti identifikuje tako da mu identifikator od strane fakulteta ne treba.

Page 26: Erwin veºbe

Na fakultetu postoji više nastavnika i više studenata. Nastavnik ima više studenata, studenti imaju više nastavnika. Logičan izbor veze između entiteta Nastavnik i entiteta Student je više na više.

Page 27: Erwin veºbe

Ako sada pređemo fizički model (sve do sada smo radili u logičkom nivou) vidimo da se veza između ovakva dva entiteta obavlja preko dve veze 1 na više (identifikujuće). Ovaj dodatni entitet na fizičkom nivou može predstavljati posebnu tabelu u bazi podataka i mi ćemo ga u ovom slučaju zvati Predmet.

Page 28: Erwin veºbe

Fizički model (veza više na više)

Page 29: Erwin veºbe

IS DVD kluba. Neka se sastoji od tri entiteta Film (ključ identifikator filma), Mušterija (ključ identifikator mušterije) i Izdate kopije. Izdata kopija može biti jedno od nekoliko kopija istog filma tako da postoji atribut broj kopije ali nasleđuje i identifikator samog filma pa je ova veza identifikujuća. Jedna mušterija može iznajmiti više filmova i veza je više na više.

Page 30: Erwin veºbe
Page 31: Erwin veºbe
Page 32: Erwin veºbe
Page 33: Erwin veºbe

Avionska karta za jednu standardnu avio-liniju može biti sastavljena od više kupona. Jedna linija može da uključi više letova na relaciji između mesta polaska i mesta krajnjeg odredišta. Svaki avion obično ima nekoliko letova u toku dana (let je identifikovan preko datuma i vremena poletanja aviona). Karta sadrži podatke o avionskoj liniji, prezimenu i imenu putnika, mestu polazišta, mestu krajnjeg odredišta, datumu izdavanja, roku važenja i ceni. Kuponi karte sadrže identične podatke i podatke o pojedinačnim letovima između polazišta i krajnjeg odredišta: mesto poletanja, mesto letanja, osnovni podaci o avionu, broj leta, klasa sedišta, datum i vreme poletanja.

Page 34: Erwin veºbe
Page 35: Erwin veºbe
Page 36: Erwin veºbe
Page 37: Erwin veºbe
Page 38: Erwin veºbe
Page 39: Erwin veºbe
Page 40: Erwin veºbe

Procedura za unos podtipova. Unese se glavni enitet i specificiraju mu se atributi. Zatim se unesu podtipovi i njima se specificiraju atributi. Zatim se selektuje polje za povezivanje entiteta sa podentitetom (prvi red, treće polje u tool-u) i klikne na entitet i neki od podentiteta. Zatim se klikne na polje koje predstavlja podentitete u modelu i prevuče do drugog podentiteta. Procedura se dalje ponavlja za svaki podentitet. Važno je zapamtiti da ako se ponovo klikne na glavni entitet pa na podentitet dobijamo podelu po nekom drugom mogućem kriterijumu što je takođe dozvoljeno.

Page 41: Erwin veºbe
Page 42: Erwin veºbe
Page 43: Erwin veºbe

Postoji zahtev da se entiteti opišu i "običnim rečima" a ne samo preko modela. Za to u definiciji atributa mogu da posluže polja definition, note itd. Takođe, ERWIN dozvoljava da se vode i sinonimi entiteta i veza. Konačno na osnovu ovih napomena ERWIN kreira dokumentaciju koja se može priložiti uz projekat što je velika pomoć i veoma važna opcija.

Page 44: Erwin veºbe

Zamislimo da imamo entitet radnik. Ovaj entitet može da ima šefa koji je jedan od atrubuta. Ujedno entitet šef može da ima svog šefa. Naime, šef je element entiteta radnik koji ima sve radnikove atribute, povezan je sa elementima entiteta radnik i može imati svoga šefa.

Rekurzivne relacije se implementiraju na sledeći način: 1. Unese se novi entitet;2. Definiše se primarni ključ i ostali atributi; 3. Izabere se neidentifikujuća veza; 4. Klikne se u entitet pa poslije kratke pauze ponovo se klikne u entitet; 5. Obavi se dvostruki klik na vezu i veza se imenuje; 6. Klikne se na jezičak rolename i unese atribut koji predstavlja

nadređeni entitet istog tipa; 7. Potvrdimo da želimo da taj entitet bude spoljni ključ.

Page 45: Erwin veºbe
Page 46: Erwin veºbe

Kada kreiramo logički model mi ne vodimo računa o stvarnoj implementaciji baze podataka. Odnosno ako kažemo da je atrubut godina staža broj mi ne specificiramo granice tog broja, niti kada kažemo atribut ime radnika ne kažemo koliko se maksimalno slova može nalaziti u imenu tog radnika. To su specifikacije fizičkog modela u koji se prelazi prostim prebacivanjem Logical u Physical. Kada se pređe u fizički model desnim klikom na entitet otvara se padajući meni u kome se mogu precizirati parametri fizičkog modela. Napomenimo još jednom da se entitet u fizičkom modelu naziva tabela, a atribut kolona što odgovara organizaciji baze podataka.

Page 47: Erwin veºbe

Najvažniji deo podešavanja se odnosi na podešavanje kolona (Column Editor) gde se u polju Access može detaljno specificirati format kolone (tip podataka), default vrednost (vrednost koju uzima atribut ukoliko nije specificirana neka druga vrednost) kao i domen vrednosti. Fizički model se može eksportovati u neku bazu podataka što je relativno redak slučaj.

Page 48: Erwin veºbe

Posebno dobra osobina ERWIN-a je što može da kreira logički model bilo koje baze podataka. Opcija za ovo je Tasks/Reverse Engineering. Nakon nekoliko upita kojim se specificira tip baze podataka vrši se njeno učitavanja i dobija se logički model ove baze. Veoma je značajno da se za ovakvu bazu podatak može kreirati automatski dokumentacija ekvivalentna rečniku podataka, a u nekim segmentima i preciznija. Kreiranje izveštaje se postiže sa opcijom Tasks/Generate reports.

Page 49: Erwin veºbe

Proces normalizacije modela je uklanjanje svih struktura koje stvaraju redundansu podataka.

Slogan normalizacije je :Jedna činjenica na jednom mestu.

Postupak normalizacije podataka ima za cilj pravilno dizajniranje baze podataka koja ima strukturu, kojom osigurava da u radu sa njom neće biti neželjenih anomalija, kao što su npr., uništavanje određenih podataka ili neusklađenost između memorisanih podataka kao posledica ažuriranja baze podataka.

Page 50: Erwin veºbe

Posmatrajmo entitet OSOBA sa slike. Da li postoji greška?

Page 51: Erwin veºbe

Problem je u atributu "Imena dece”Dakle, ovakva tabela krši prvu

normalnu formu. Da bi popravili prethodnu tabelu moramo na neki način ukloniti listu dece OSOBA.

Relacija je u 1NF ako je vrednost svakog atributa jednostruka i nedeljiva

Page 52: Erwin veºbe

Otkrili smo grupu podataka koji se ponavljaju i od njih smo stvorili entitet time smo učinili prvi korak prema normalizovanom modelu.

Page 53: Erwin veºbe

Takođe, 1NF nastaje i kod višeznačne upotrebe istog atributa kao što je pokazano na slici

Page 54: Erwin veºbe

Problem je u atributu početak ili kraj rada koji predstavlja jednu od dve činjenice, početak rada u firmi i prestanak rada u firmi. Nismo u mogućnosti da otkrijemo šta taj datum predstavlja kao što nismo u mogućnosti da zapamtimo oba datuma iako su nam možda oba poznata. Rešenje nije u tome da atribut može da sadrži dve činjenice već da imamo dva atributa koji govore o početku i završetku rada. Potrebno je da ugradimo dva atributa koji nose dve različite informacije.

Page 55: Erwin veºbe

Menjajući strukturu možemo biti sigurni da se jedan atribut pojavljuje samo jednom u entitetu i da nosi samo jednu činjenicu. Dakle, prva normalna forma je ako svaki od njegovih atributa ima jedno značenje i ne više od jedne vrednosti za svaki primerak. Drugim rečima entitet zadovoljava prvu normalnu formu ako svi domeni sadrže samo atomaske vrednosti.

Page 56: Erwin veºbe

Entitet A zadovoljava drugu normalnu formu ako zadovoljava prvu i ako svaki atribut koji nije ključ potpuno zavistan od primarnog ključa.

Ako bismo u entitet DETE stavili atribut 'Adresa' uočili bi da ovaj atribut zavisi od dela ključa entiteta DETE(Sifra Osobe) a ne od celog ključ entiteta DETE. Da bi smo zadovoljili drugu normalnu formu potrebno je prebaciti atribut 'Adresa' u entitet OSOBA. Dakle, entitet krši drugu normalnu formu ako podatak može biti pronađen znajući samo deo ključa entiteta.

Student(ŠifraFakulteta, BrInd, Ime, Prezime, AdresaFakulteta) Polje AdresaFakulteta zavisi od dela složenog

primarnog ključa kojeg čine polja ŠifraFakulteta i BrInd

Page 57: Erwin veºbe
Page 58: Erwin veºbe

Entitet A zadovoljava treću normalnu formu, ako zadovoljava drugu normalnu formu, i ako atribut koji nije ključ ne zavisi od drugog atributa koji nije ključ.

Ako činjenica može biti pronađena znajući neku vrednost entiteta koja nije ključ narušena je treća normalna forma. Dakle, definicija treće normalne forme je:

Entitet zadovoljava treću normalnu formu ako svaki aribut koji nije ključ zavisi o ključu, čitavom ključu i ničemu drugom osim ključa.

Page 59: Erwin veºbe

Na primer, bila bi povređena treća normalna forma ako u entitetu dete ugradimo atribute starosti i datum rođenja kao atribute koji nisu ključevi. Starost je zavisna od datuma rođenja i možemo je izračunati na osnovu današnjeg datuma i datuma rođenja.

Pored ovih formi postoje i četvrta peta i Boyce-Codd-ova forma.

Page 60: Erwin veºbe