27
BAZE PODATAKA prof. dr Predrag Stanišić Prirodno-matematički fakultet

Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

BAZE PODATAKA

prof. dr Predrag Stanišić

Prirodno-matematički fakultet

Page 2: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

DIO I

UVOD I OSNOVNI POJMOVI

Page 3: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Nastanak i cilj DBMS

• Baza podataka (database) je kolekcija logički povezanih podataka, uključujući i podatke o tim podacima, koja je dizajnirana da zadovolji informacione potrebe neke organizacije.

• Pojam nastao šezdesetih godina kao posljedica velikih problema koji su postojali u tradicionalnom pristupu razvoju softverskih sistema za čuvanje podataka i njihovu obradu.

• Tradicionalni pristup se zasnivao na tome da se napravi jedan ili više fajlova koji služe za čuvanje podataka a zatim pišu aplikacije koje rade sa tim fajlovima.

Page 4: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Nedostaci tradicionalnog pristupa

• Definicija podataka se u suštini nalazi u samim programima

• Podaci nemaju jasnu strukturu

• Ne postoji nikakva kontrola nad pristupom i manipulacijom podacima, izuzev one koja se nalazi u samim programima.

Page 5: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Nedostaci tradicionalnog pristupa

• Ponavljanje i nekonzistentnost podataka.

• Teškoće u pristupu podacima.

• Izolacija podataka.

• Slaba mogućnost oporavka od kvara.

• Problemi pri višekorisničkom radu.

• Loša bezbjednost od neovlašćenog pristupa.

• Teško je održavati integritet podataka.

Page 6: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Nedostaci tradicionalnog pristupa

• Rezultat je potencijalna ogromna složenost i loša struktura sistema, velika složenost ili nemogućnost izmjena u sistemu, moguća nekonzistentnost podataka, problemi u višekorisničkom radu, teškoće u dobijanju potrebne informacije, itd.

Page 7: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Kako riješiti ove probleme?

• Došlo se do zaključka da se podaci moraju razdvojiti od programa koji rade sa njima, da im se mora obezbijediti jasna struktura koja se može dopunjavati, sa minimalnim mogućim ponavljanjem podataka.

• Takoñe, postalo je jasno da mora postojati uniforman način pristupa tim podacima, koji neće izazivati probleme u radu i koji će čuvati konzistentnost podataka.

Page 8: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

DBMS

• Za efikasno ispunjenje ovih zadataka, kao i mnogih drugih, mora se koristiti poseban softverski sistem. Takav skup programa je

SISTEM ZA UPRAVLJANJE BAZAMA PODATAKA

ili DATABASE MANAGEMENT SYSTEM

(DBMS).

Page 9: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Klijent/Server arhitektura

Baza podataka

Sistem za upravljanje bazama podataka

Klijent Klijent Klijent

Page 10: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Nivoi apstrakcije

• Bazu podataka možemo posmatrati na tri nivoa apstrakcije (tzv. ANSI\SPARC arhitektura):

– FIZIČKI NIVO

– LOGIČKI NIVO

– NIVO POGLEDA

Page 11: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Nivoi apstrakcije

Fizički nivo

Logički nivo

Nivo pogleda

Pogled 1 Pogled 2 Pogled n...

Page 12: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Instanca i shema

• Ukupna informacija uskladištena u bazi podataka u odreñenom vremenskom trenutku je INSTANCA baze podataka.

• Dizajn, tj. opšta struktura baze podataka naziva se SHEMOM (ili šemom) baze podataka.

• Baza podataka tipično ima:• JEDNU FIZIČKU SHEMU;

• JEDNU LOGIČKU SHEMU;

• NEKOLIKO PODSHEMA.

Page 13: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Nezavisnost podataka

• Mogućnost promjene sheme na jednom nivou, bez mijenjanja sheme na sledećem višem nivou.

– FIZIČKA NEZAVISNOST (promjena fizičke sheme ne odražava se na logičku)

– LOGIČKA NEZAVISNOST (promjena logičke sheme ne odražava se na podsheme niti na korisničke programe) – teže je ostvariti.

Page 14: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Modeli podataka

• Model podataka je skup konceptualnih alata za definisanje podataka, veza meñu podacima, značenja podataka i ograničenja na podacima.

• Postoje razni modeli podataka:– Hijerarhijski model– Mrežni model– Model entiteti/veze– Relacioni model– Objektno-orijentisani modeli mnogi drugi

Page 15: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Vrste modela

• LOGIČKI MODELI ZASNOVANI NA OBJEKTIMA

• LOGIČKI MODELI ZASNOVANI NA REKORDIMA (ZAPISIMA, SLOGOVIMA)

• FIZIČKI MODELI

Page 16: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Jezici baza podataka• DBMS sadrži

– jezik koji služi za definisanje baze podataka (data definition language DDL)

– jezik za manipulaciju podacima (data manipulation language DML)

– jezik za kontrolu sistema (data control language DCL)

– često i viši programski jezik, integrisan sa DML i DDL.

– Ponekad se izdvajaju djelovi, npr. DSL, VDL.

Page 17: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Manipulacija podacima

• Skladištenje podataka

• Brisanje podataka

• Mijenjanje podataka

• Izvlačenje podataka (upit, engl. query).

Page 18: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Upitni jezik

• Nekorektno, čitav DML a ponekad i DDL i DCL nazivaju se UPITNIM JEZIKOM (query language).

• Primjeri:– SQL (Structured Query Language)

– QBE (Query By Example)

– QUEL

Page 19: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Upravljanje transakcijama

• Transakcija je kolekcija operacija koja se izvodi kao jedna logička funkcija.

• ACID svojstva– Atomičnost (sve ili ništa)– Konzistentnost (čuva integritet baze)– Izolacija (ostale ne vide njene efekte, do završetka)– Trajnost (nakon završetka i ako se sruši sistem, njene

promjene su trajne)

• Transakcijama upravlja komponenta DBMS UPRAVLJAČ TRANSAKCIJAMA (transaction manager)

Page 20: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Upravljanje skladištenjem• Fizički detalji su zadatak sistema, korisnici rade na

višim nivoima apstrakcije.

• UPRAVLJAČ SKLADIŠTENJEM (storage manager) je komponenta sistema odgovorna za izvršavanje DDL i DML rečenica, tj. za njihovo prevoñenje u niz naredbi fajl sistemu, uz odgovarajuće upravljanje memorijom.

• Mora biti EFIKASAN u pogledu brzine i prostora.

• UPRAVLJANJE FAJLOVIMA (na disku)

• UPRAVLJANJE BAFEROM (prenos disk-memorija)

Page 21: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

DBA

• Database administrator (administrator baze podataka)– Definisanje i modifikovanje sheme

– Definisanje i modifikovanje detalja skladištenja i metoda pristupa podacima

– Definisanje i modifikovanje integriteta

– Davanje prava pristupa bazi

– Arhiviranje podataka, uvoz, izvoz, replikacija.

– Nadgledanje i podešavanje performansi sistema.

Page 22: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Korisnici• Aplikativni programeri (koriste DML u

svojim programima)

• Specijalizovani korisnici (koriste DBMS kao osnovu za razvoj drugih sistema, npr. CAD)

• Sofisticirani korisnici (direktno se obraćaju sistemi sa upitom)

• Naivni (krajnji korisnici)

Page 23: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Data dictionary ili catalogStatistika, indeksi

• Data dictionary (rečnik podataka) ili catalog (sistemski katalog) sadrži metapodatke, tj. podatke o podacima.

• Obično se metapodaci čuvaju na sličan način kao i sami podaci.

• Sistem čuva i– STATISTIKU o podacima, – INDEKSE (strukture podataka koje omogućuju brz

pristup osnovnim podacima)

Page 24: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Izvršavanje upita

• OBRAðIVAČ UPITA (query processor) komponenta koja analizira i izvršava upite.

• IZVŠILAC UPITA (query evaluation engine) - dio za samo izvršavanje upita, komunicira sa upravljačem skladištenjem.

Page 25: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Izvršavanje upita

• DDL INTERPRETER sa drugim komponentama izvršava rečenice DDL-a i smješta metapodatke u katalog.

• DML KOMPAJLER prevodi rečenice DML-a u neku pogodnu unutrašnju formu

• OPTIMIZATOR UPITA analizira upit i traži najbolji način za njegovo izvršavanje, korišćenjem kataloga, indeksa, statistike, ...

Page 26: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Arhitektura DBMSNaivni korisnici korisnici

DBMS

disk

Fajlovi podataka

Indeksi Statistički podaci

Katalog

Obrañivač upita

Upravljanje baferom

Upravljanje fajlovima

Upravljanjetransakcijama

DDL interpreter

DML kompajler

Izvršilac upita

Upravljač skladiš-tenjem

Interfejsi aplikacija

DML prekompajler

Sofisticiranikorisnici

DBAAplikativni programeri

UPITIApl. programi

Page 27: Baze 2008 1-Uvod - ucg.ac.me 1 _ Uvod.pdf · – Konzistentnost (čuva integritet baze) – Izolacija (ostale ne vide njene efekte, do završetka) – Trajnost (nakon završetka i

Komercijalni sistemi

• 'Ozbiljni', 'industrijski' DBMS kao što su– Oracle– SQL Server– Informix– IBM DB2– Sybase

• Postoje i stoni (desktop) DBMS, kao– Microsoft Access– Microsoft Fox Pro– Borland dBase– Interbase