Modeliranje podataka Prof Dr Dragan Domazet Informacioni model

  • Slides: 61
Download presentation
Modeliranje podataka Prof. Dr Dragan Domazet

Modeliranje podataka Prof. Dr Dragan Domazet

Informacioni model n n Informacioni model je formalan opis ideja, činjenica i procesa koji

Informacioni model n n Informacioni model je formalan opis ideja, činjenica i procesa koji zajedno formiraju deo modela realnog sveta i obezbeđuju eksplicitan skup pravila za interpretaciju. Informacioni model definiše: n n n tipove objekata sa podacima, njihove atribute, ograničenja usmerena na objekte i atribute, relacije izmedju njih, funkcije i procedure koje upravljaju upotrebom informacije. Informacioni model obezbeđuje: n n Detaljnu specifikaciju definicija i zahteva za aplikacije, koje su konsistentne u svim aplikacijama Zajednički jezik i razumevanje različitih korisnika

Zahtevi za modeliranje podataka n Model mora da bude jasan n n Model treba

Zahtevi za modeliranje podataka n Model mora da bude jasan n n Model treba da ima minimalnu redudantnost n n Ne sme da ima sukobljene (protivurečne) definicije radi izbegavanja nekompatabilnosti između povezanih sistema Bez nepotrebnih dupliranja istih definicija podataka Jezik za modeliranje n n Treba da bude čitljiv i razumevanje za ljude Razumljiv za kompjutere da bi oni mogli da imterpretiraju informacije i da bi softverski alati mogli biti korišćeni za primenu modela

Modeliranje sistema Relacioni model podataka S# Ime Stanje Grad S 1 S 2 S

Modeliranje sistema Relacioni model podataka S# Ime Stanje Grad S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams 20 10 30 20 30 London Paris London Athens

Primer relacionih tabela Snabdevači Delovi S# Ime sn Stanje S 1 S 2 S

Primer relacionih tabela Snabdevači Delovi S# Ime sn Stanje S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams 20 10 30 20 30 London Paris London Athens P# Naziv Boja Težina P 1 P 2 P 3 P 4 P 5 P 6 Nut Bolt Screw Cam Cog Red Green Blue Red Pošiljke Grad 12 17 17 14 12 19 Grad London Paris Rome London Paris London S# P# Qty S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400 S# P# Primarni S#-S# ključevi

Relaciona tabela podataka n n Tabele su osnovna skladišta za smeštaj podataka Tabela ima

Relaciona tabela podataka n n Tabele su osnovna skladišta za smeštaj podataka Tabela ima dve komponente: n n Strukturu tabele podatke Struktura tabele je deo tabele koji definiše koja vrsta podataka će biti smeštana u tabeli i pravila za unos, promenu i brisanje podataka. Struktura tabele uključuje: n Ime tabele n Kolone koje određuju kategorije podataka koje se smeštaju u tabelu n n Svaka kolona ime i tip podataka koji smešta Tabela i kolone ograničavaju posebno definisana ograničenja integriteta definisana za nivo tabele ili kolone. Snabdevači S# S 1 S 2 S 3 S 4 S 5 Ime sn Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens

Šema podataka n n Šema je imenovana kolekcija objekata podataka (tabele, pogledi, indeksi. .

Šema podataka n n Šema je imenovana kolekcija objekata podataka (tabele, pogledi, indeksi. . . ) u bazi podataka Svaki objekt u bazi pripada nekoj šemi Povezani objekti mogu se postaviti zajedno (unutar ledne šeme), dok se nepovezani objekti mogu smeštati u posebnim šemama. Šema obezbeđuje sigurnost podataka: n Korisnici nemaju pristup objektima koji nisu smešteni u njihovim šemama, ukoliko ne dobiju posebna prava pristupa (za čitanje, za promenu) Snabdevači Delovi S# Ime sn. P# Naziv Stanje Boja Grad Težina Pošiljke Grad S# P# Količina

Relacioni model n n n Podatak u tabeli je informacija koja je smeštena u

Relacioni model n n n Podatak u tabeli je informacija koja je smeštena u tabeli. Svaki element u tabeli može imati samo jednu vrednost. Podaci u tabeli su ekslicitne vrednosti, a ne pokazivači ka drugim tabelama. Unutrašnja organizacija podataka i njihov fizički smeštaj u bazi podataka se realizuje na druge načine i nije vidljiv korisniku baze podataka. Relacione baze podataka se oslanjaju na skup teorijskih postavki koje čine osnov relacionog modela (ovde se ta teorija ne izlaže)

Relacioni model n n Predstavljena tabelom Skup vrednosti iz koga jedan ili više atributa

Relacioni model n n Predstavljena tabelom Skup vrednosti iz koga jedan ili više atributa (kolona) uzimaju vrednosti Primarni ključ: n n London Paris Athens Domen: n n Domeni Relacija: jedinstveni indentifikator tabele Slog: n S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Stepen Jedan red tabele Atributi Grad London Paris London Athens Kardinalnost n

Domeni n Domeni su skupovi vrednosti iz kojih se formiraju stvarne vrednosti atributa CREATE

Domeni n Domeni su skupovi vrednosti iz kojih se formiraju stvarne vrednosti atributa CREATE TABLE Snabdevači ( S# DOMAIN ( S# ) Ime sn DOMAIN ( Ime ) Stanje DOMAIN ( Stanje ) Grad DOMAIN ( Grad ) PRIMARY KEY ( S# ) ) ; NOT NULL,

Relacije n n Relacija primeljena na skupu domena D 1, D 2, . .

Relacije n n Relacija primeljena na skupu domena D 1, D 2, . . . Dn sastoji se iz dva dela, zaglavlja i tela Zaglavlje čini fiksirani skup atributa: { (A 1: D 1), (A 2: D 2), …. , (An: Dn) } n n Telo čini vremenski promenljevi slogovi, pri čemu svaki slog čini skup parova atribut-vrednost: { (A 1: vi 1), (A 2: vi 2), …. , (An: vin) } (i=1, …m) m – kardinalnsot (broj slogova/redova) n - stepen (broj atributa/kolona) Svojstva relacije: n n Nema duplih slogova SLogovi se ne ređaju po redosledu Atributi se ređaju po redosledu Sve vrednosti atributa su “atomske”, tj. ne razlažu se dalje

Strani i primarni ključevi n Primarni ključ: n n Alternativni ključevi: n n Jedinstveni

Strani i primarni ključevi n Primarni ključ: n n Alternativni ključevi: n n Jedinstveni indetifikator jedne relacije Mogući ključevi koji nisu označeni kaoprimarni Strani ključ: n Atribut jedne relacije čije vrednosti treba da odgovaraju vrednostima primarnog ključa u nekoj relaciji R 1 Delovi P# Ime d Boja P 1 P 2 P 3 P 4 P 5 P 6 Red Green Blue Red Nut Bolt Screw Cam Cog Težina 12 17 17 14 12 19 Grad London Paris Rome London Paris London Pošiljke S# P# Kol S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400

Relacione baze podataka SQL Definisanje podataka

Relacione baze podataka SQL Definisanje podataka

Definisanje podataka n SQL: Structural Query Language: n n Upotrebljava se za formulaciju relacionih

Definisanje podataka n SQL: Structural Query Language: n n Upotrebljava se za formulaciju relacionih operacija koje definišu i manipulišu podatke u relaciji Data definition language (DDL) – definiše podatke Data manipulation language (DML) – manipuliše podacima Osnovni DDL izrazi: n n n CREATE TABLE ALTER TABLE DROP TABLE Osnovna tabela Zaglavlje kolona Vrednosti podataka CREATE VIEW CREATE INDEX DROP VIEW • • DROP INDEX samo jedna skalarna vrednost za svaku od kolona sve vrednosti u koloni su podaci istog tipa redosled redova nije bitan kolone moraju bitu u redosledu, od leva u desno

Tipovi podataka n Numerički podataka n INTEGER SMALLINT DECIMAL(p, q) n FLOAT (p) n

Tipovi podataka n Numerički podataka n INTEGER SMALLINT DECIMAL(p, q) n FLOAT (p) n n n Niz znakova (String): n n - binarni ceo broj (jedna rač. reč) - binarni ceo broj (pola rač. reči) - decimalni broj, p brojnih mesta i znak, q brojnih mesta iz decimalne tačke - opšti broj, p brojnih mesta CHARACTER(n) VARCHAR(n) GRAPHIC(n) - n 8 -bit slova - do n 8 -bit slova - n 16 -bit slova Date/time data: n n n DATE TIMESTAMP - datum (ggggmmdd) - vreme (ččmmss) - datum & vreme

SQL jezik: Definicija podataka n SQL izrazi za definisanje podataka: Snabdevači CREATE TABLE Snabdevači

SQL jezik: Definicija podataka n SQL izrazi za definisanje podataka: Snabdevači CREATE TABLE Snabdevači ( S# char(5) not null, Ime sn char(20) not null, Stanje smallint not null, Grad char(15) not null, PRIMARY KEY (S#)); S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens

SQL jezik: Definicija podataka Delovi CREATE TABLE Delovi ( P# char(6) not null, Naziv

SQL jezik: Definicija podataka Delovi CREATE TABLE Delovi ( P# char(6) not null, Naziv char(20) not null, Boja char(6) not null, Težina smallint not null, Grad char(15) not null, PRIMARY KEY (P#)); P# Naziv Boja Težina P 1 P 2 P 3 P 4 P 5 P 6 Red Green Blue Red 12 17 17 14 12 19 Nut Bolt Screw Cam Cog Grad London Paris Rome London Paris London

SQL jezik: Definicija podataka Pošiljke CREATE TABLE Pošljke ( S# char(5) not null, P#

SQL jezik: Definicija podataka Pošiljke CREATE TABLE Pošljke ( S# char(5) not null, P# char(6) not null, Kol integer not null, PRIMARY KEY (S#, P#), FOREIGN KEY (S#) references Snabdevači FOREIGN KEY (P#) references Delovi); S# P# Kol S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400

Drugi DDL izrazi ALTER TABLE Snabdevači ADD Popust SMALLINT - dodavanje nove kolone Popust

Drugi DDL izrazi ALTER TABLE Snabdevači ADD Popust SMALLINT - dodavanje nove kolone Popust Snabdevači S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad Popust London Paris London Athens DROP TABLE Snabdevači - Uništavanje postojeće tabele Snabdevači CREATE INDEX X ON T ( P , Q DESC, R ) CLUSTER ; • kreira index X u tavele T • slogovi se ređaju po rastućoj vrednosti u koloni R unutar opadajućih vrednosti u koloni Q, a rastućih vrednosti u koloni P • P, Q, i R su kolone u tabeli TT

Sistemi relacionih baza podataka SQL Manipulacija podataka

Sistemi relacionih baza podataka SQL Manipulacija podataka

SQL jezik: Manipulacija podataka n n n Služe za pretraživanje podataka SQL ima dva

SQL jezik: Manipulacija podataka n n n Služe za pretraživanje podataka SQL ima dva načina korišćenja: interaktivan i preko API (pozivi SQL izraza u okviru nekog programskog jezika) SQL je i interaktivni jezik za programiranje baza podataka IInteraktivno: SELECT Grad FROM Snabdevači WHERE S# = ‘S 4’ ; Ugrađen SQL u PL/I EXEC SQL SELECT Grad INTO FROM WHERE London : Xgrad Snabdevaći S# = “S 4” ; London

Osnovne tabele i pogledi n DVe vrste tabela: n n n Virtualno SQL aplikacija

Osnovne tabele i pogledi n DVe vrste tabela: n n n Virtualno SQL aplikacija Osnovna tabela: n n Osnovne tabele pogledi Pogled: n Pogled 1 Stvarna tabela sa podacima Virtualna tabela (ne smešta fizički podatke) Stvarno Osnovna tabela 1 Osnovna tabela 2 Osnovna Tabela 3 Skladišćeno Skup podataka 1 Skup podataka 2

SQL, osnovne tabele i pogledi n Osnovna tabela = “koncepirani tip sloga” n n

SQL, osnovne tabele i pogledi n Osnovna tabela = “koncepirani tip sloga” n n Fizički postoji, ali skladišćenje podataka može biti različito Pogled je tabela koja je izvedena iz jedne ili više osnovnih tabela Osnovne tabele se skladište u obliku datoteka Base tables are stored as files n n Nekoliko osnovnih tabela mogu da koriste ist datoteku sa podacima Jedna osnovna tabela može biti uskladišćena u nekoliko datoteka

SQL Manipulacija sa podacima n n Glavne funkcije za manipulaciju podataka: SELECT, UPDATE, DELETE,

SQL Manipulacija sa podacima n n Glavne funkcije za manipulaciju podataka: SELECT, UPDATE, DELETE, INSERT SQL izrazi za manipulaciju podataka rade na celim skupovima slogova, a ne na jednom slogu u odredjenom trenutku vremena. n n n SQL je jezik za rad sa skupovima, nije proceduralni jezik Pristup željenom podatku se vrši automatski SQL je jezik višek nivoa apstrakcije nego COBOL ili C++ SELECT S# FROM Pošiljke WHERE P# = ‘P 2’ ; UPGRADE SET WHERE S 1, S 2, S 3, S 4 S# Stanje = 2 * Stanje Grad = ‘London” S 1, S 4 duplirano

Prosta pretraživanja podataka Snabdevači SELECT S#, Stanje FROM Snabdevači WHERE Grad = ‘Paris’ S#

Prosta pretraživanja podataka Snabdevači SELECT S#, Stanje FROM Snabdevači WHERE Grad = ‘Paris’ S# S 2 S 3 Stanje 10 30 • izvedena tabela S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens

Prosta pretraživanja podataka SELECT P# FROM Pošiljke ; P# P 1 P 2 P

Prosta pretraživanja podataka SELECT P# FROM Pošiljke ; P# P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 3 P 4 P 5 SELECT DISTINCT P# FROM Pošiljke ; P# P 1 P 2 P 3 P 4 P 5 P 6 • No duplicate rows Pošiljke S# P# Kol S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400

Prosti upiti • Pretraživanje složenih vrednosti: SELECT Delovi. P#, ‘Težina u gramima = ‘,

Prosti upiti • Pretraživanje složenih vrednosti: SELECT Delovi. P#, ‘Težina u gramima = ‘, Delovi. Težina * 454 FROM Delovi ; Delovi P# Naziv P 1 P 2 P 3 P 4 P 5 P 6 Nut Bolt Screw Cam Cog Boja Red Green Blue Red Težina 12 17 17 14 12 19 Grad P# London Paris Rome London Paris London P 1 Težina u gramima = P 2 Težina u gramima = P 3 Težina u gramima = P 4 Težina u gramima = P 5 Težina u gramima = P 6 Težina u gramima = 5448 7718 6356 5448 8626

Prosti upit • Kvalifikovani upit: SELECT FROM WHERE AND S# Snabdevači Grad = ‘Paris’

Prosti upit • Kvalifikovani upit: SELECT FROM WHERE AND S# Snabdevači Grad = ‘Paris’ Stanje > 20 ; Snabdevači S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens S# S 3 Mogući operatori za upoređenja: = , < >, > , >= , <= , AND, OR, NOT

Prosti upit • Upit sa promenom redosleda Snabdevači SELECT S#, Stanje FROM Snabdevači WHERE

Prosti upit • Upit sa promenom redosleda Snabdevači SELECT S#, Stanje FROM Snabdevači WHERE Grad = ‘Paris’ ORDER BY Stanje DESC ; S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens S# Status S 3 S 2 30 10 • opcije: ASC (podrazumeva se) or DESC

Upiti sa spajanjem n Operacija spajanja: n n Može da spoje dve ili više

Upiti sa spajanjem n Operacija spajanja: n n Može da spoje dve ili više tabela To je upit koji prikuplja podatka se dve ili više tabele SELECT Snabdevači. * , Delovi. * FROM Snabdevači, Delovi WHERE Snabdevači. Grad = Delovi. Grad ; Snabdevači S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Delovi Stanje 20 10 30 20 30 Grad London Paris London Athens P# Naziv d Boja P 1 P 2 P 3 P 4 P 5 P 6 Red Green Blue Red Nut Bolt Screw Cam Cog Težina Grad 12 17 17 14 12 19 London Paris Rome London Paris London

Dobijeni rezultat Spoj tabela Snabdevači i Delovi S# Ime sn S 1 S 1

Dobijeni rezultat Spoj tabela Snabdevači i Delovi S# Ime sn S 1 S 1 S 4 S 4 S 2 S 3 Smith Clark Jones Blake Stanje 20 20 20 10 10 30 30 Grad London London Paris P# Naziv d Boja P 1 P 4 P 6 P 2 P 5 Red Red Red Green Blue Nut Screw Cog Bolt Cam Težina 12 14 19 17 12 Grad London London Paris

Upit spajanja Snabdevači • Pretraživanje određenog polja u spoju SELECT Snabdevači. S#, Delovi. P#

Upit spajanja Snabdevači • Pretraživanje određenog polja u spoju SELECT Snabdevači. S#, Delovi. P# FROM Snabdevači, Delovi WHERE Snabdevači. Grad = Delovi. Grad S# P# S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 4 P 6 P 2 P 5 P 1 P 4 P 6 S# S 1 S 2 S 3 S 4 S 5 Ime sn Stanje Smith Jones Blake Clark Adams 20 10 30 20 30 Grad London Paris London Athens Delovi P# Naziv d Boja P 1 P 2 P 3 P 4 P 5 P 6 Red Green Blue Red Nut Bolt Screw Cam Cog Težina 12 17 17 14 12 19 Grad London Paris Rome London Paris London

Upit spajanja • Spoj tri tabele : Upari imena gradova tako da je prvi

Upit spajanja • Spoj tri tabele : Upari imena gradova tako da je prvi grad snabdevača, a drugi – stovarišta delova Pošiljke S# P# Kol S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400 SELECT DISTINCT Snabdevači. Grad, Delovi. Grad FROM Snabdevači, Pošiljke, Delovi WHERE Snabdevači. S# = Pošiljke. S# Pošiljke. P# = Delovi. P# London Paris London Paris Rome London Paris Snabdevači Delovi P# Naziv d Boja P 1 P 2 P 3 P 4 P 5 P 6 Red Green Blue Red Nut Bolt Screw Cam Cog Snabdevači. Grad Delovi. Grad Težina Grad 12 17 17 14 12 19 London Paris Rome London Paris London S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens

Agregatne funkcija n SQL obezbeđuje specijalne agregatne funkcije koje deluju na kolekcijama vrednosti u

Agregatne funkcija n SQL obezbeđuje specijalne agregatne funkcije koje deluju na kolekcijama vrednosti u jednoj koloni jedne tabele i proizvodne jednu vrednost n n n COUNT SUM AVG MAX MIN - broj vreddnosti u koloni sabira vrednosti u koloni daje srednju vrednosti u koloni daje maksimalnu vrednost u koloni daje minimalnu vrednost u koloni

Agregatne funkcije u SELECT • Traži ukupan broj snabdevača SELECT COUNT(*) FROM Snabdevači ;

Agregatne funkcije u SELECT • Traži ukupan broj snabdevača SELECT COUNT(*) FROM Snabdevači ; 5 S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams SELECT COUNT (DISTICT S#) FROM Pošiljke 4 Pošiljke Suppliers S# Sname • Traži ukupan broj snabdevača koji snabdevaju delovima Status 20 10 30 20 30 City London Paris London Athens • Traži broj pošiljka sa delom P 2 SELECT COUNT (*) FROM Pošiljke WHERE P# = ‘P 2 ; 4 • Traži broj poslatih delova P 2: SELECT SUM (Kol) FROM Pošiljke WHERE P# = ‘P 2’ ; 1000 S# P# Qty S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400

Operacija promene stanja tabela • Promena jednog sloga: Promeni boju dela P 2 u

Operacija promene stanja tabela • Promena jednog sloga: Promeni boju dela P 2 u žuto, povećaj težinu za 5 i stavi neodefinisani naziv grada Delovi UPDATE Delovi P# Nazov d Boja Težina Grad SET Boja = ‘Yellow’, Težina = Težina + 5, P 1 Nut Red 12 London Grad = null P 2 Bolt Green 17 Paris WHERE P# = ‘P 2’ P 3 Screw Blue 17 Rome Delovi P 4 Screw Red 14 London P 5 Cam Blue 12 Paris P# Naziv d Boja Težina Grad P 6 Cog Red 19 London P 1 Nut Red 12 London P 2 Bolt Yellow 22 P 3 Screw Blue 17 Rome P 4 Screw Red 14 London P 5 Cam Blue 12 Paris P 6 Cog Red 19 London

Operacije menjanja tabela • Promena više slogova: Udvostruči stanje kod svih snabdevača u Londonu

Operacije menjanja tabela • Promena više slogova: Udvostruči stanje kod svih snabdevača u Londonu Snabdevači UPDATE Snabdevači SET Stanje = 2 * Stanje WHERE Grad = ‘London’ ; Snabdevači S# Ima sn Stanje S 1 S 2 S 3 S 4 S 5 40 10 30 40 30 Smith Jones Blake Clark Adams Grad London Paris London Athens S# Ima sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens

Operacije promena tabela • Promena sa podupitom: Unesi količinu isporuke na 0 za sve

Operacije promena tabela • Promena sa podupitom: Unesi količinu isporuke na 0 za sve snabdevače u Londonu. Pošiljke S# P# Kol S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400 UPDATE SET WHERE ( Snabdevači Qty = 0 ‘London = SELECT Grad FROM Snabdevači WHERE Snabdevači. S# - Pošiljke. S# ); Snabdevači S# Sname Status S 1 S 2 S 3 S 4 S 5 20 10 30 20 30 Smith Jones Blake Clark Adams City London Paris London Athens S# P# Qty S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 0 0 0 300 400 200 0 0 400

Operacije brisanja • Single-record delete: Obriši snabdevača S 5 Snabdevači DELETE FROM Snabdevači WHERE

Operacije brisanja • Single-record delete: Obriši snabdevača S 5 Snabdevači DELETE FROM Snabdevači WHERE S# = ‘S 5’ ; S# Ime sn Snabdevači S# Ime sn Stanje S 1 S 2 S 3 S 4 20 10 30 20 Smith Jones Blake Clark Grad London Paris London S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens

Operacije brisanja • Brisanje više slogova: Obriši sve pošiljke sa količinom većom od 300

Operacije brisanja • Brisanje više slogova: Obriši sve pošiljke sa količinom većom od 300 Pošiljke S# P# Kol S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400 DELETE FROM Pošiljke WHERE Kol > 300 ; S# P# Kol S 1 S 1 S 1 S 2 S 3 S 4 P 1 P 2 P 4 P 5 P 6 P 1 P 2 P 4 300 200 100 300 200 300

Oberacije brisanja • Brisanje sa podupitom: Obriši sve isporuke snabdevača iz Londona Isporuke S#

Oberacije brisanja • Brisanje sa podupitom: Obriši sve isporuke snabdevača iz Londona Isporuke S# P# Kol S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400 DELETE FROM Snabdevači WHERE ‘London’ = ( SELECT Grad FROM Snabdevači WHERE Snabdevači. S# = Pošiljke. S# ) ; Snabdevači S# Ime sn Stanje S 1 S 2 S 3 S 4 S 5 20 10 30 20 30 Smith Jones Blake Clark Adams Grad London Paris London Athens Isporuke S# P# Kol S 2 S 3 P 1 P 2 300 400 200

Operacije ubacivanja • Ubacivanje jednog sloga: Dodaj deo P 7 (Grad= Athens, Težina= 24,

Operacije ubacivanja • Ubacivanje jednog sloga: Dodaj deo P 7 (Grad= Athens, Težina= 24, Naziv i Boja nepoznati) INSERT INTO Delovi ( P#, Grad, Težina ) VALUES ( ‘P 7’ , ‘Athens’ , 24 ) ; Delovi P# Naziv P 1 P 2 P 3 P 4 P 5 P 6 Nut Bolt Screw Cam Cog Delovi Boja Red Green Blue Red Težina 12 17 17 14 12 19 Grad London Paris Rome London Paris London P# Naziv P 1 P 2 P 3 P 4 P 5 P 6 P 7 Nut Bolt Screw Cam Cog Boja Red Green Blue Red Težina Grad 12 17 17 14 12 19 24 London Paris Rome London Paris London Athens

Relacione baze podataka Pogledi

Relacione baze podataka Pogledi

Šta su pogledi? n Pogleda je kao “memorisani upit” n n Jer je definisan

Šta su pogledi? n Pogleda je kao “memorisani upit” n n Jer je definisan kao upit koji pristupa podacima u jednoj ili više tabela ili u drugim pogledima Pogled ne sadrži podatke, jer je “virtualna tabela” n n View Može se pretraživati i menjati, kao i tabela Pogledi se kroste zbog sledećih osobina: n n n Skrivaju složenost baze Vrše obračune sa podacima iz tabela Obezbeđuju sigurnost jer dozvoljavaju pristup samo određenim redovima i kolonoma u tabelama SQL Query

Pogledi n SQL pogled = Označen imenom, izvedena voirtualna tabela n n Obično je

Pogledi n SQL pogled = Označen imenom, izvedena voirtualna tabela n n Obično je kolekcija izvedenih i osnovnih tabela Pogledi: n Wihove definicije formiranja se nalaze u katalogu CREATE VIEW AS SELECT FROM WHERE Dobri_snabdevači S#, Stanje, Grad Snabdevači Stanje> 15 ; Snabdevači S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams • ne izvršava se, već se memoriše u katalogu • izgleda kao da se nalazi u bazi pod nazivom Dobri_snabdevači Stanje 20 10 30 20 30 Grad London Paris London Athens S# Ime sn S 1 S 3 S 4 S 5 Stanje Grad Smith 20 London Blake 30 Paris Clark 20 London Adams 30 Athens Virtualna tabela

Pogledi SELECT * FROM Dobri_snabdevači WHERE Grad <> ‘London’ ; S# Stanje Grad S

Pogledi SELECT * FROM Dobri_snabdevači WHERE Grad <> ‘London’ ; S# Stanje Grad S 3 S% 30 30 Paris Athens Memorisan u katalogu: CREATE VIEW AS SELECT FROM WHERE Dobri_Snabdevači S#, Stanje, Grad Snabdevači Stanje > 15 ; Dobri_snabdevači S# Ime sn S 1 S 3 S 4 S 5 Grad Smith Blake Clark Adams 20 30 London Paris London Athens U stvarnosti, sistem radi sa stvarnom Bazom Snabdevači (Memorisana u bazi) S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens

Definicija pogleda Sintaksa: Primer: CREATE VIEW Naziv [ ( kolona [, kolona ] …)

Definicija pogleda Sintaksa: Primer: CREATE VIEW Naziv [ ( kolona [, kolona ] …) ‘ AS podupit [ WITH CHECK OPTION ] ; CREATE VIEW AS SELECT FROM WHERE Crveni delovi ( P# , Naziv , Tež. , Grad ) P# , Naziv , Težina , Grad Delovi Boja = ‘Red’ ; Delovi Crveni delovi P# Naziv Boja Težina Grad P 1 P 2 P 3 P 4 P 5 P 6 Nut Bolt Screw Cam Cog Red Green Blue Red 12 17 17 14 12 19 London Paris Rome London Paris London P# Naziv P 1 P 4 P 6 Nut Screw Cog Tež. 12 14 19 Grad London

Logička nezavisnost podataka n n n Korisnici i korisnički programi su nezavisni od logičke

Logička nezavisnost podataka n n n Korisnici i korisnički programi su nezavisni od logičke strukture baze podataka Sa novim podacima, proširuje se definicija tabela u bazi (proširenjem postojećih ili dodavanjem novih) Restruktuisanje baze: Sadržaj ostaje isti, ali se raspored podataka menja. Pogled Početna tabela Podela tabela Kreiranje pogleda virtualna tabela

Prednost korišćenja pogleda n n Obezbeđuju određen nivo logičke nezavisnosti podataka kod rekonstrukcija baza

Prednost korišćenja pogleda n n Obezbeđuju određen nivo logičke nezavisnosti podataka kod rekonstrukcija baza Dozvoljavaju da se isti podatak vidi na različite načine od strane različitih programa Uprošćeno je razumevanje baze od strane korisnika. Obezbeđuje se automatska sigurnost za skrivene podatke Snabdevači (memorisano u bazi) S# Ime sn S 1 S 2 S 3 S 4 S 5 Smith Jones Blake Clark Adams Stanje 20 10 30 20 30 Grad London Paris London Athens Dobri_snabdevači (virtualna tabela) S# Ime sn S 1 S 3 S 4 S 5 Smith Blake Clark Adams Stanje 20 30 Grad London Paris London Athens

Relational Database Systems Semantičko modeliranje i ER dijagrami

Relational Database Systems Semantičko modeliranje i ER dijagrami

Semantičko modeliranje n n n Motiv: Da se objasni značenje podataka u bazi Sinonimi:

Semantičko modeliranje n n n Motiv: Da se objasni značenje podataka u bazi Sinonimi: modeliranje podataka, modeliranje entiteta i relacija, modeliranje entiteta, . . . Četri koraka u semantičnom modeliranju: n Semantički koncepti: n n n Simbolički (formalni) objekti: n n Upotrebljavaju se radi predstavljanja semantičkih koncepata Pravila integriteta n n Entiteti (svet je sastavljen od entiteta) Tipovi entiteta (svi entiteti istog tipa imaju neka zajednička svojstva) Identiteta Relacije između entiteta Skup formalnih pravila integriteta koja se primenjuju nad formalnim objektima Operatori n Za manipulaciju sa objektima

Semantičko modeliranje n Prošireni model podataka: n n Sadrži simboličke objekte, pravila integriteta i

Semantičko modeliranje n Prošireni model podataka: n n Sadrži simboličke objekte, pravila integriteta i operatore Definicije koncepata osnovnog modela: n Entitet n n Svojstvo: n n Oderđeni podatak koji opisuje jedan identitet Relacija n n Jedan poseban objekt Entitet koji povezuje dva ili više drugih entiteta Podtip n Entitet tipa Y je podtip entiteta tipa X samo ako je svako Y predstavlja i X.

Model entiteta i relacija (E-R model) n Entitet: n n n Stvar koja se

Model entiteta i relacija (E-R model) n Entitet: n n n Stvar koja se može posebno identifikovati Uobičajeni i slabi entiteti (zavise od drugih entiteta) Svojstvo: n n Svako svojstvo dobija vrednost iz odgovarajućeg skupa vrednosti (tj. domena u relacionom modelu) Može biti: n n n Prosto ili složeno Ključ Sa jednom ili višestrukom vrednošću Da nedostaje (“nepoznata vrednost”) Osnovna ili izvedena

E-R model n Relacija je asocija među entiteta n n n Postoje tipovi relacija

E-R model n Relacija je asocija među entiteta n n n Postoje tipovi relacija i primeri (instance) relacija Učesnici: entiteti koji učestvuju u nekoj relaciji Stepen relacije: broj učesnika u relaciji Totalna participacija: Svaka instanca entiteta učestvuje u najmanje jednoj instanci relacije E/R relacija može da bude: n n n Jedan-prema-jedan Jedan-prema-više Više-prema-više

E-R model n Podtip Zaposleni Programer aplikacija Programer sistema

E-R model n Podtip Zaposleni Programer aplikacija Programer sistema

E-R dijagrami n Grafički predstavljaju logičku strukturu baze podtaka Entitet: Slab entitet Svojstva: Relacije:

E-R dijagrami n Grafički predstavljaju logičku strukturu baze podtaka Entitet: Slab entitet Svojstva: Relacije: Izvedeno svojstvo Tip relacije Svojstvo sa višestrukom vrednosti Relacija sa Slabim entitetom SLoženo svojstvo Linije Totalna povezivanja participacija

E-R dijagrami n Kupac 1 n n n iznamljuje n M Kutija n Dve

E-R dijagrami n Kupac 1 n n n iznamljuje n M Kutija n Dve konstrukcije: entiteti i relacijue Ostalo: tipovi entiteta, atributi i ograničenja Tip entiteta: Grupa sličnih objekata ili događaja Atribut: Jedno određeno svojstvo dodeljeno jednom tipu entiteta. Relacija: Jedna asocija (veza) između tipva entiteta, objekata i drugih podataka Ograničenja: Granica postavljena tipu entiteta oli wegovim atributima.

E-R dijagram za naplatu usluga pacijentima Dodeljen doktor Pacijent Pac. broj 14 19 81

E-R dijagram za naplatu usluga pacijentima Dodeljen doktor Pacijent Pac. broj 14 19 81 Pac. ime ostali podaci Morgan …… Parker …. Paul …. Pac. broj 14 19 19 Doktor Ime Datum Suma doktora posete Jones Abel Park 151298 020499 230700 25. 00 30. 00 50. 00 Broj Ime Ostali doktora podaci 104 109 110 Abel …… Jones …. Park ….

The Primer Snabdevač Pošiljka S# Ime sn S 1 S 2 S 3 S

The Primer Snabdevač Pošiljka S# Ime sn S 1 S 2 S 3 S 4 S 5 Deo P# naziv P 1 P 2 P 3 P 4 P 5 P 6 Nut Bolt Screw Cam Cog Smith Jones Blake Clark Adams Boja Red Green Blue Red Stanje 20 10 30 20 30 Težina 12 17 17 14 12 19 Grad London Paris London Athens Grad London Paris Rome London Paris London S# P# Kol. S 1 S 1 S 1 S 2 S 3 S 4 S 4 P 1 P 2 P 3 P 4 P 5 P 6 P 1 P 2 P 2 P 4 P 5 300 200 400 200 100 300 400 200 300 400

E-R dijagram i objektni model snabdevač S# Ime sn Stanje Snabdevač M Kol. Boja

E-R dijagram i objektni model snabdevač S# Ime sn Stanje Snabdevač M Kol. Boja : String Ime : String Stanje : Integer Grad : String Kol. : Integer part Deo Naziv S# Pošiljke Pošiljka M P# Snabdevač Grad Težina Grad Deo P# : String Naziv : String Boja : String Težina : Integer Grad : String

E/R dijagrami Odelenje S# SNAME STATUS CITY 1 Zaposlen Član-tima Snabdevač Broj M Plata

E/R dijagrami Odelenje S# SNAME STATUS CITY 1 Zaposlen Član-tima Snabdevač Broj M Plata 1 Zavisnost Sr. slovo M Radnik Ime M Prezime M Projekt 1 Rukprojekta M M Sn-deo-projekt M Sn-deo Kol. Deo M Ukučani M EXP IMP M Struktura -dela M