Transcript Document

Tema 3: Skladištenje podataka
i inteligentni agenti (VEŽBE)
SISTEMI ZA PODRŠKU ODLUČIVANJU
doc dr Vladislav Miškovic
Fakultet za informatiku i menadžment
2009/2010
Tema 3: Skladištenje podataka
i inteligentni agenti
1. Uvod: Pregled jezika SQL
2. Vežba 1: Primer baze podataka (MS
Access)
3. Vežba 2: Alati za izgradnju skladišta
podataka (SQL Server)
4. Vežba 3: Primer inteligentnog agenta
(Web)
Uvod: Pregled jezika SQL
• SQL je strukturisani upitni jezik za relacione baze
podataka, koji je prvobitno razvila kompanija IBM
• Danas je SQL ugrađen u sve vodeće SUBP i predstavlja
ANSI standard
• Razvoj SQL-a traje i danas
– Objekti manipulacije su relacije
– Rezultati manipulacija su relacije
• SQL se zasniva na relacionom računu n-torki
– relacija  tabela
– n-torka  red (vrsta)
– Vrednosti u n-torkama za jedan atribut  kolona
Sadržaj jezika SQL
•
Jezik SQL podržava 3 osnovne funkcije BP:
1. definisanje objekata (kreiranje/uklanjanje)
2. manipulacije objektima (unos, izmena, brisanje) i
3. kontrolu (prava pristupa - ko, kakav pristup, kojim podacima)
•
sadrži naredbe za:
–
–
–
–
–
–
–
–
definisanje relacija (shema)
ažuriranje podataka (unos, izmena, brisanje)
postavljanje upita
sortiranje i formatiranje ispisa
aritmetičke operacije nad podacima
definisanje pogleda (view)
kontrolu sigurnosti
itd....
Naredbe za definisanje baze
• Definisanje BP
– struktura, koje tabele, koji atributi, koji tipovi, koja
ograničenja, pomoćni indeksi za direktan pristup
(DDL – Data Definition Language)
•
•
•
•
•
•
•
CREATE TABLE – kreiranje tabele u BP
DROP TABLE – uklanjanje tabele iz BP
ALTER TABLE – izmena definicije tabele
CREATE INDEX – kreiranje indeksa
DROP INDEX – uklanjanje indeksa
CREATE VIEW – kreiranje pogleda
DROP VIEW – uklanjanje pogleda
Primer
• Definisanje tabele
CREATE TABLE Student (BrInd CHR(10) PRIMARY
KEY, Ime CHR(20), Prezime CHR(20));
• Lepše je koristiti strukturisani tekst, npr.:
CREATE TABLE Student (
BrInd CHR(10) PRIMARY KEY,
Ime CHR(20),
Prezime CHR(20));
Naredbe za manipulaciju
• Manipulacija BP:
– upit nad bazom podataka (izveštavanje),
– ažuriranje (unos, izmena, brisanje)
(DML – Data manipulation Language)
•
•
•
•
SELECT – prikaz željenog sadržaja RBP
UPDATE – izmena vrednosti kolona tabele
DELETE – izbacivanje redova tabele
INSERT – dodavanje redova u tabelu
Primeri manipulisanja
podacima za jednu tabelu
•
•
•
•
•
•
•
•
•
Pristup podacima
SELECT * FROM Student;
SELECT * FROM Student WHERE BrInd>100;
SELECT Ime, Prezime FROM Student
WHERE Prezime = 'Petrović';
SELECT * FROM Student
WHERE Prezime Like 'A*' ORDER BY Ime;
Izmene podataka
UPDATE Student SET Ime='Petar'
WHERE BrInd=103;
Brisanje podataka
DELETE FROM Student WHERE BrInd=103
Sintaksa naredbe SELECT
SELECT * {[ALLDISTINCT] R-Lista} • R_Predikat je uslov
FROM ImeTabele
prikazivanja rezultata, logički
[WHERE R-Predikat]
izraz izračunljiv nad svakim
[ORDER BY ImeKolone [DESC]
pojedinim redom tabele.
{, ImeKolone [DESC]} …];
– Rezultat upita se dobija
samo za one vrednosti
• * - u rezultatu su sve kolone tabele
R_Predikata koje daju
• ALL – iz rezultata ne uklanja
istinitu vrednost.
istovetne redove (podrazumeva se)
– Najčešće je to relacioni izraz
• DISTINCT – iz rezultata uklanja
(>,<,=,…) sa kolonama, a sa
istovetne redove
desne strane može se javiti i
konstanta
• R-Lista - jedan ili više R-Izraza
• ORDER BY – željeni
(nazivi kolona, konstante)
redosled prikaza rezultata
• Nakon FROM (“odakle”) obavezno je
(rastući ASC ili opadajući
ImeTabele
DESC uz odgovarajuću
kolonu)
Primeri manipulisanja
podacima iz više tabela
• Upit koji daje sve šifre knjiga koje su
pozajmljene ili su ranije pozajmljivane:
SELECT SifraKnjige FROM Drzi_knjigu
UNION
SELECT DISTINCT SifraKnjige FROM Pozajmice;
• Upit koji daje sve naslove knjiga koje su kod
članova, a ranije nisu pozajmljivane:
SELECT DISTINCT Naziv FROM Naslov N, Knjiga K
WHERE N.SifN=K.SifN AND
SifK IN (SELECT Sif K FROM Drzi_knjigu EXCEPT
SELECT DISTINCT SifK FROM Pozajmica);
Naredbe za kontrolu pristupa
• Kontrola pristupa podacima:
– koji korisnici imaju pristup,
– kojim podacima,
– šta mogu da rade sa tim podacima
(DCL – Data Control Language)
• GRANT (dodeljivanje ovlašćenja nad objektima
baze drugim korisnicima od strane vlasnika)
• REVOKE (ukidanje ovalašćenja dodeljenih
pomoću GRANT)
Primer
• Kreiranje korisnika
GRANT CONNECT TO Korisnik IDENTIFIED BY
LozinkaKorisnika;
• Davanje prava postavljanja upita
GRANT SELECT ON Predmet TO PUBLIC;
GRANT SELECT ON Student TO Korisnik;
• Davanje prava ažuriranja
GRANT INSERT, UPDATE, DELETE ON Predmet,
Student TO Korisnik;
Izveštavanje
• Naredba TRANSFORM
TRANSFORM aggfunction
selectstatement
PIVOT pivotfield [IN (value1[, value2[, ...]])]
• gde su
– aggfunction - funkcija za sumiranje (agregaciju): Sum,
Avg, Count
– selectstatement - osnovni upit
– pivotfield - polje/izraz koji se koristi za kreiranje
zaglavlja kolona
– value1, ... - fiksne vrednosti koji se koriste za
kreiranje zaglavlja kolona
Vežba 1: Primer baze podataka
(MS Access)
• Primer baze podataka male firme Northwind
Traders
– Prikazan je mali poslovni sistem, sa transakcionom
bazom podataka
– Tabele, upiti i relacije
Vežba 2: Alati za izgradnju
skladišta podataka (SQL Server)
• Za izgradnu skladišta podataka u Microsoft
tehnologijama koristi se SSIS (SQL Server
Integration Services) - sistemski program za
ekstrakciju, transformaciju i integraciju podataka
• Primer izgradnje će se realizovati kroz jedan
projektni zadatak
Vežba 3:
Primer inteligentnog agenta (Web)
• Inteligentni agenti za preporučivanje knjiga
www.amazon.com i www.bn.com .
–
–
Izvršiti poređenje rezultata upita (5 upita za
određene knjige)
Pregledati prvi ekran odgovora i dati mišljenje o
kvalitetu
• Pregled područja www.botspot.com
• Inteligentni intefejsi www.alicebot.com
Literatura
1. M.Veinović, G.Šimić, Uvod u baze podataka,
Univerzitet Singidunum, Beograd, 2007
2. Rainardi V., Building a Data Warehouse: With
Examples in SQL Server, Apress, 2008
SISTEMI ZA PODRŠKU ODLUČIVANJU
Tema 3: Skladištenje podataka i inteligentni agenti (VEŽBE)
KRAJ