Osnovne karakteristike Sve se predstavlja relacijama tabelama Zasniva
�Osnovne karakteristike: › Sve se predstavlja relacijama (tabelama) › Zasniva se na strogoj matematičkoj teoriji › Minimalna redudansa podataka › Jednostavno ažuriranje podataka › Izbegnute su anomalije ažuriranja › Redosled kolona i redova ne utiče na informacioni sadržaj tabele › Ne mogu da egzistiraju dva identična reda (rekorda) u jednoj tabeli › Svaki red se može jednoznačno odrediti (postoji primarni ključ) � 2
Student Knjiga Br. Ind Ime Sif. K Naziv 75/01 Marko 001 Računovodstvo 22/02 Petar 002 Baze podataka 156/03 Milan 003 Osnove finansija 112/02 Dragan 004 Poslovna informatika 005 Marketing Tabela, sa svojim atributima, je osnovni objekat relacione baze podataka � 3
�Suština relacionog modela je da se i klase objekata i klase veza između objekata predstavljaju na jedinstven način, tj. preko tabela. �Nije od značaja gde i kako su smeštene tabele �RBP se sastoji iz više tabela. Tabele su povezane ključevima �Informacija iz RBP se dobija postavljanjem upita � 4
�Svaka tabela mora da ima: › Ime ili naziv tabele, › Spisak atributa i › Vrednosti atributa (podaci upisani u polja) STUDENT Br. Ind Ime Prezime Fakultet Smer Adresa 123/03 Marković FPI PP Požeška 2 224/02 Jovanović FPI GD Danijelova 22 III 5/04 Ivana Ivanović FPI GD Kumodrašk a 145 ----- ------� 5
kolone Naziv tabele Atribut 1 Atribut 2 Atribut 3 Atribut 4 Atribut 5 slogovi Podatak u polju. . . . . Slog ili zapis ili n-torka � 6
�Imenovana vrsta svojstva (osobina entiteta) �Prost atribut (simple) - ne može se rastavljati na delove bez gubitka svakog značenja - atomska vrednost. �Složen atribut (composite) se sastoji od više prostih atributa. Može se rastaviti na jednostavnije. Adresa Ulica Broj Poštanski broj Grad � 8
�Pri projektovanju IS, treba pažljivo birati atribute, u skladu sa potrebama �Primer: STUDENT (Br. Ind, Ime, Prezime, Dat. Rodjenja, Adresa, Telefon, . . . ) �Datum. Rodjenja - sa namerom posedovanja podatka o starosti svakog studenta - dobar izbor atributa (informacija se može izračunati) �Godine. Starosti – loš izbor atributa – zahtevalo bi se svakodnevno ažuriranje BP � 9
�Skup svih mogućih vrednosti nekog atributa Ai naziva se domenom tog atributa i označava se sa Di ili Dom(A i ) �Domen - tip podataka u programiranju �Jedan domen za više atributa. Obrnuto ne. �Primeri: › Atribut: Visina (cm) D 1: skup celih pozitivnih brojeva › Atribut: Naziv. Knjige D 2: skup svih različitih naslova knjiga › Atribut: Boja D 3: {“žut”, ”crven”, ”zelen”, ”plav”} � 10
�Šema relacije R je konačan skup atributa {Ai} i konačan skup {O} ograničenja nad vrednostima tih atributa. �Ograničenja: atributi ne mogu uzimati bilo koje vrednosti �Podrazumeva se da kada su zadati atributi, zadati su i njihovi domeni �Bitne osobine šeme relacije: › Nazivi atributa moraju biti različiti - unikatnost › Redosled atributa nije bitan › Šema relacije mora da sadrži bar jedan atribut � 11
Šema relacije se zapisuje: R(D, K) � R - ime relacije D - skup obelezja D={A 1 A 2, A 3 } Ai - atribut K - skup ograničenja relacije �Šemom relacije se predstavljaju svojstva klase objekata ili veza nekog sistema �Šema relacije može da se tumači i kao definicija strukture neke datoteke. � 12
�Primer: Šema relacije koja predstavlja jednu klasu (klasa studenata): STUDENT ({Br. Ind, Ime, Prezime, Br. Pol. Ispita}, {B 1, B 2}) › B 1 - Svaki student ima br indeksa i ne postoje 2 studenta sa istim brojem indeksa › B 2 - Broj položenih ispita je između 1 i 30 � 13
�Relaciji u praksi odgovara jedna datoteka �Svakoj n-torki odgovara jedan slog te datoteke �Slogovi u datoteci su zapisani u određenom redosledu, najčešće po redosledu unošenja �Primer: STUDENT (Br. Ind, Ime) student ( Br. Ind 123/02 11/03 151/02 III-15/04 Ime ) J. Jankovic P. Petrovic J. Jovanovic M. Markovic šema relacije relacija � 14
Terminologija - RBP Terminologija - tabele Relaciona BP Skup tabela Relacija Pojedinačna tabela Atribut Naziv kolone u tabeli Instanca (n-torka) Red podataka u tabeli Kardinalnost relacije Broj redova u tabeli Stepen relacije Broj kolona u tabeli Domen Skup dozvoljenih vrednosti za podatke u kolonama � 15
�Vrednost NULL - univerzalnog tipa, primenjiva za atribute bilo kakvih domena �U praksi postoje situacije kada u relacije unosimo n-torke za koje su vrednosti nekih atributa nepoznate u tom trenutku. Postoje dva slučaja: 1. Vrednost postoji, ali nije poznata u trenutku unosa ntorke. Npr. kod upisa studenata unosimo sve podatke izuzev podataka o telefonu, koji se može i naknadno uneti. �Posledica trenutnog nepoznavanja vrednosti nekog atributa, i naknadno se može uneti STUDENT (Br. Ind, Ime, Prezime, Telefon) � 16
2. Ta vrednost je nedefinisana, nema smisla. Npr. Ako je zadata šema relacije: STUDENT (Br. Ind, Ime, Prezime, Telefon, Smer) Ne može se uneti smer za studente 1. i 2. godine, jer se naknadno opredeljuju za nega. � Navedeni problem je posledica odabrane strukture šeme relacije � 17
�Pri projektovanju IS pažljivo birati šeme relacija - da bi se izbegao unos prevelikog broja vrednosti NULL (racionalnost) �Primer: Šema relacije Službenik i uvođenje atributa medalja Službenik (JMBG, Ime, . . . , Medalja, . . . ) �Za većinu službenika na tom mestu bi ostalo prazno mesto sa vrednošþu NULL • • Rešenje problema: kreiranje nove šeme relacije Odlikovanja (JMBG, Medalja) Nova relacija bi bila potpuno popunjena, a preko atributa JMBG bila bi “povezana” sa šemom relacije Službenik � 18
�Ključ K relacije je podskupa obeležja (atributa) te relacije koji ima sledeća svojstva: 1. Vrednosti atributa iz K jednoznačno određuju pojavu šeme relacije(ne mogu postojati dve n-torke date relacije sa istim vrednostima atributa iz K) jedinstvenost ključa 2. Ako izbacimo iz K bilo koji atribut, tada se narušava svojstvo 1 - minimalnost ključa � 19
�Relacija može da ima više “kandidata” za ključ �Zovemo ih ekvivalentni ključevi i uvek se jedan od njih bira za primarni ključ �Primer: › Student({Br. Ind, Ime, Prez, Br. PIsp, JMBG}, {Br. Ind, JMBG}) � 20
�Student(Br. Ind, Ime) �Drzi(Sif. K, Br. Ind, Datum) �Knjiga(Sif. K, Sif. N) �Autor(Sif. A, Ime) �Naslov(Sif. N, Naziv) �Je_autor(Sif. A, Sif. N, Koji) � 21
�Za strani ključ neophodne su dve relacije �Povezivanje dve tabele �Primer: STUDENT (Br. Ind, Ime) KNJIGA (Sif. K, Naziv) DRŽI (Br. Ind, Sif. K, Datum) Strani ključ relacije Drži koji pokazuje na primarni ključ relacije Student Strani ključ relacije Drži koji pokazuje na primarni ključ relacije Knjiga � 22
Student (Br. Ind, Ime) � Knjiga(Sif. K, Sif. N) � Naslov(Sif. N, Naziv, Sif. O) � Oblast(Sif. O, Naziv) � Autor(Sif. A, Ime) � Pozajmica(Sif. P, Br. Ind, Dana) � Rezervacija(Sif. N, Br. Ind, Datum) � Drzi(Sif. K, Br. Ind, Datum) � Je_autor(Sif. A, Sif. N, Koji) � �Jedna šema relacije može da sadrži više stranih ključeva �Strani ključ može biti u sastavu primarnog ključa �Strani ključ može istovremeno biti i primarni ključ u celini � 23
Primer 1: �Radnik(Sif. R, Ime, Adresa, Sif. Nad) �Pretpostavka: svaki radnik ima samo jednog nadređenog �Sve se dešava unutar jedne šeme relacije koja sadrži oba učesnika u vezi “strani ključ - primarni ključ” Primer 2: Osoba(JMBG, Ime, Adresa, . . . ) Brak(JMBG 1, JMBG 2, Datum_venčanja) � 24
� Šema relacije predstavlja definiciju relacije. Po analogiji, šema relacione BP predstavlja definiciju relacione BP. � Primer: sistem Biblioteka ima sledeću strukturnu komponentu šeme relacione BP (svakoj klasi odgovara jedna šema relacije): Objekti: Student(Br. Ind, Ime) Knjiga(Sif. K) Naslov(Sif. N, Naziv) Autor(Sif. A, Ime) Veze: Drzi(Sif. K, Br. Ind, Datum) Sadrzi(Sif. K, Sif. N) Je_autor(Sif. A, Sif. N, Koji) � 26
- Slides: 24