bp1-uvod u baze podataka

43
Baze podataka i SQL Dr Samim Konjicija, dipl. ing. el. Kiseljak, 28.3.2010. Uvod u baze podataka

Upload: amir-karacic

Post on 12-Aug-2015

117 views

Category:

Documents


1 download

DESCRIPTION

Rad sa bazama podataka

TRANSCRIPT

Page 1: BP1-Uvod u Baze Podataka

Baze podataka i SQL

Dr Samim Konjicija, dipl. ing. el.

Kiseljak, 28.3.2010.

Uvod u baze podataka

Page 2: BP1-Uvod u Baze Podataka

Informacije o predmetu

Predmetni nastavnik:

Dr Samim Konjicija

Asistent:

Denis Čolović

Predavanja: 15 časova u 4 termina (4+4+4+3)

Vježbe: 30 časova

Page 3: BP1-Uvod u Baze Podataka

Informacije o predmetu

• Ciljevi predmeta:

Dati studentima osnovna znanja o bazama podataka

Predstaviti koncepte organiziranja, dizajniranja, korištenja i upravljanja bazama podataka

Naučiti studente osnove korištenja savremenih sistema za upravljanje bazama podataka.

• Kroz ovaj kurs studenti trebaju steći početna teorijska i praktična znanja iz oblasti savremenih sistema za upravljanje bazama podataka i njihovog korištenja

Page 4: BP1-Uvod u Baze Podataka

Informacije o predmetu

Broj Datum Časova Naziv Sadržaj

1. 4 Uvod u baze podataka

Primjena baza podataka. Poređenje baza podataka i fajl sistema. Nivoi apstrakcije podataka. Modeli podataka. Jezici baza podataka. Korisnici baza podataka. Struktura sistema za upravljanje bazama podataka. Historijski razvoj.

2. 3 Modeli podataka

Osnovni koncepti. Ograničenja. Ključevi. ER dijagrami. Dizajn baze podataka.

3. 4 Relacione baze podataka

Osnovna struktura. Jezik za definiranje podataka (DDL). Tipovi. Definiranje šeme. Ugrađeni upiti. Dinamički upiti. ODBC. JDBC.

4. 4 SQL Jezik za manipuliranje podacima (DML). INSERT. UPDATE. DELETE. SELECT. Transakcije. Pohranjene procedure. Okidači.

Page 5: BP1-Uvod u Baze Podataka

Informacije o predmetu

Broj Datum Časova Naziv Sadržaj

1. 3 Primjer dizajna baze podataka Predstavljanje primjera baze podataka.

2. 4 Upoznavanje sa PostgreSQL i pgAdmin III

Osnove korištenja pgAdmin III. Ostvarivanje veze sa serverom baze podataka. Korisnici i uloge. Šeme. Tipovi podataka.

3. 4 Modeliranje baze podataka i njena implementacija

Implementacija baze podataka korištenjem pgAdmin III. Kreiranje i uređivanje šema. Kreiranje ključeva.

4. 4 Modeliranje baze podataka i njena implementacija

Implementacija baze podataka korištenjem pgAdmin III. Manipuliranje podacima.

5. 4 Implementacija baze podataka korištenjem jezika za definiranje podataka

Korištenje SQL za implementaciju baze podataka. Kreiranje i uređivanje šema.

6. 4 Korištenje baze podataka i upiti

Korištenje SQL za manipuliranje podacima.

7. 4 Pohranjene procedure i okidači

Definiranje pohranjenih procedura. Definiranje okidača.

8. 3 Korištenje baze podataka iz aplikativnog okruženja

Korištenje baze podataka iz office aplikacija.

Page 6: BP1-Uvod u Baze Podataka

Informacije o predmetu

• Literatura:

Materijali sa predavanja (dostupni na web stranici predmeta)

Silberschatz, Korth, Sudarshan: “Database System Concepts”, McGraw-Hill, 2001

Dragica Radosav: “Uvod u baze podataka”, Fakultet infomracijskih tehnologija, Mostar, 2004.

Dragica Radosav: “SQL kroz riješene primjere”, Fakultet informacijskih tehnologija, Mostar, 2003.

Stephens, Plew: “Naučite SQL za 21 dan”, SAMS Publishing, Znak Kompjuter biblioteka, 2001.

Page 7: BP1-Uvod u Baze Podataka

Informacije o predmetu

• Način polaganja ispita:

Dva parcijalna ispita koji pokrivaju predavanja i vježbe (2x15 poena)

Prisustvo predavanjima i vježbama (10 poena)

Seminarski rad (10 poena)

1

Završni ispit (50 poena)

Student koji prikupi 50 i više poena je uspješno položio

Student koji ne skupi 10 poena iz ostalih elemenata nema pravo pristupa završnom ispitu

Aktivnost u toku nastave (korektivni faktor)

Page 8: BP1-Uvod u Baze Podataka

Sadržaj predavanja

• Klasična organizacija datoteka i pojam fizičke strukture podataka

• Nedostaci korištenja datoteka

• Koncept baze podataka

• Pogled na podatke sa različitih nivoa

• Model podataka

• Sistemi za upravljanje bazama podataka

• Jezik za definiranje podataka

• Jezik za manipuliranje podacima

• Upravljanje transakcijama

• Upravljanje pohranom podataka

• Korisničke uloge

• Uloga baze podataka u okviru informacionog sistema

Page 9: BP1-Uvod u Baze Podataka

Osnovni pojmovi

• Podatak (Data) – niz činjenica obično prikupljenih kao rezultat posmatranja, iskustva, eksperimenta ili procesiranja u računarskom sistemu

• Podaci se mogu sastojati od brojeva, riječi, slika i sl.

• Baza podataka (Database) – strukturirana kolekcija podataka pohranjena u računarskom sistemu

• Baza podataka je strukturirana organiziranjem podataka prema nekom modelu

• Sistem za upravljanje bazom podataka (Database Management System) – skup aplikacija koje omogućavaju definiranje, kreiranje i održavanje baze podataka

• Koriste se kratice DBMS ili SUBP

• Sistemi za upravljanje bazama podataka osiguravaju kontrolirani pristup podacima iz baze

Page 10: BP1-Uvod u Baze Podataka

Primjena baza podataka

• DBMS obezbjeđuje okruženje za upravljanje podacima na pogodan i efikasan način

• Primjeri primjene baza podataka:

• Bankarstvo: cjelokupno poslovanje i sve transakcije

• Zračni prevoz: rezervacije, rasporedi letova, logistika

• Univerziteti: evidencije studenata, proces ocjenjivanja

• Trgovina: evidencije komitenata, proizvoda, kupovina, prodaja, računovodstvo

• Proizvodnja: proizvodni proces, skladište, narudžbe, dobavljači

• Ljudski resursi: evidencije zaposlenih, obračun plaća, obračun poreza

• ...

• Baze podataka se susreću u svim aspektima života savremenog čovjeka

Page 11: BP1-Uvod u Baze Podataka

Razlozi korištenja DBMS

• Prvobitno su se u aplikacijama baza podataka za pohranu podataka koristili fajl sistemi

• Nedostaci korištenja fajl sistema za pohranu podataka:

• Redundantnost i nekonzistentnost

– Različiti formati fajlova i dupliciranje informacija u različitim fajlovima

• Otežan pristup podacima

– Za svaki novi zadatak se razvija nova aplikacija

• Izolacija podataka

– Više fajlova i formata

• Problemi integriteta

– Ograničenja za očuvanje integriteta su dio programskog koda korisničke aplikacije

– Teško dodavanje i modificiranje ograničenja

Page 12: BP1-Uvod u Baze Podataka

Razlozi korištenja DBMS

• Nedostaci korištenja fajl sistema za pohranu podataka (nastavak):

• Atomičnost izmjena u bazi

– Greške mogu dovesti bazu podataka u nekonzistentno stanje

• Istovremen (konkurentan) pristup podacima je otežan

– Konkurentan pristup podacima je neophodan za efikasno korištenje podataka

– Nekontrolirani konkurentni pristup može poruzrokovati inkonzistentnost podataka

• Pitanja sigurnosti se ne mogu riješiti na odgovarajući način

• DBMS je rješenje svih pomenutih problema

Page 13: BP1-Uvod u Baze Podataka

Razlozi korištenja DBMS

• Redundantnost – isti podaci se pohranjuju više puta (npr. fajl sa podacima o studentima)

• Nekonzistentnost – različite kopije istih podataka se razlikuju (npr. broj indeksa studenta je u jednom fajlu zapisan, a u drugom nije)

• Aplikacije su obično razvijali različiti programeri u različitim programskim jezicima

• Da bi se dobili podaci na način koji nije predviđen u aplikaciji (npr. lista studenata koji su položili predmet IT i primjena), potrebno je razviti novu aplikaciju

• Korištenje različitih formata fajlova otežava razvoj novih aplikacija za pristup podacima

• Podaci pohranjeni u bazi moraju zadovoljiti određena ograničenja (npr. ocjena studenta ne može biti veća od 10)

• Kada se podaci pohranjuju u fajlovima, programer u aplikaciji vodi računa o ovim ograničenjima

Page 14: BP1-Uvod u Baze Podataka

Razlozi korištenja DBMS

• Dodavanje bilo kakvog novog ograničenja (npr. preduslov za pristup polaganju predmeta Baze podataka i SQL je položen ispit iz predmeta IT i primjena) je otežano i traži modifikaciju postojeće aplikacije ili razvijanje nove

• Unošenje ili izmjena podataka u bazi podrazumijeva niz koraka koji se moraju provesti da bi transakcija bila potpuna (npr. unošenje nove ocjene studenta podrazumijeva da se odgovarajuće izmjene naprave i u svim drugim dijelovima baze podataka)

• Svaka transakcija se mora ili u potpunosti provesti, ili nikako

• Pri konkurentnom pristupu istim podacima se mora voditi računa da sve izmjene budu ispravno provedene

• Različiti korisnici mogu imati različite uloge i privilegije u pogledu aktivnosti koje mogu obavljati sa podacima

Page 15: BP1-Uvod u Baze Podataka

Klasična organizacija datoteka

• Fajl sistem (File system) – logička struktura i softverske rutine koje se koriste za kontrolu pristupa informacijama pohranjenim na perifernim uređajima za masovnu pohranu podataka

• Fajl sistem pruža usluge krajnjim korisnicima, odnosno programima

• Svaka aplikacija definira svoj format zapisa podataka i manipulira svojim podacima

Page 16: BP1-Uvod u Baze Podataka

Primjer upotrebe fajl sistema

• Agencija za nekretnine se sastoji od: Odjela za iznajmljivanje Odjela za ugovore Računovodstva Kadrovske službe ...

• Odjel za iznajmljivanje komunicira sa vlasnicima nekretnina putem formulara, u kome se navode bitni podaci o vlasniku i nekretnini za izdavanje

• Odjel za iznajmljivanje komunicira sa klijentima koji žele unajmiti nekretninu putem formulara, kome se navode bitni podaci o klijentu i njegovim željama

Page 17: BP1-Uvod u Baze Podataka

Primjer upotrebe file sistema

• Za manipulaciju ovim podacima se koristi informacioni sistem, koji podatke čuva u tri datoteke: NEKRETNINE, VLASNIK i KLIJENT

• Datoteka NEKRETNINE čuva informacije o svakoj od nekretnina

• Informacija o nekretnini se sastoji od niza podataka koji su bitni za opis nekretnine, te podataka koji omogućavaju da se informacije o nekretninama povežu sa drugim (npr. vlasnikom)

Page 18: BP1-Uvod u Baze Podataka

Primjer upotrebe file sistema

• Datoteka VLASNIK čuva podatke o vlasnicima nekretnina, te podatke koji omogućavaju da se vlasnik nekretnine poveže sa nekretninom

Page 19: BP1-Uvod u Baze Podataka

Primjer upotrebe file sistema

• Datoteka KLIJENT čuva podatke o korisnicima nekretnina, te podatke koji omogućavaju da se korisnik nekretnine poveže sa nekretninom

Page 20: BP1-Uvod u Baze Podataka

Primjer upotrebe file sistema

• Odjel za ugovore je zadužen za realizaciju ugovora za iznajmljene nekretnine

• Zaposleni popunjava formular u kome se nalaze podaci o klijentu i nekretnini, kao i druge bitne podatke o ugovoru

• Za rukovanje ugovorima se koristi informacioni sistem, koji podatke čuva u tri datoteke: UGOVOR, NEKRETNINE, KLIJENT

• Datoteka UGOVOR čuva informacije o svim ugovorima o iznajmljivanju nekretnina sa bitnim podacima

Page 21: BP1-Uvod u Baze Podataka

Primjer upotrebe file sistema

• U datotekam NEKRETNINE i KLIJENTI se čuvaju podaci o nekretnini i klijentu koji koristi nekretninu

Page 22: BP1-Uvod u Baze Podataka

Primjer upotrebe file sistema

• Računovodstvo na sličan način vodi evidenciju npr. o plaćama uposlenih, uključujući sve podatke koji su bitni za njihovo izračunavanje

• Kadrovska služba ima svoju evidenciju uposlenika i koristi sličan način čuvanja podataka iz te evidencije

• Svaki odjel za manipuliranje datotekama koristi vlastiti skup aplikacija

• Sve aplikacije su međusobno neovisne

• Fizička struktura datoteka i registara je definirana u okviru samih aplikacija

• Očito je da se isti podaci često ponavljaju u više datoteka, bez mehanizma očuvanja njihovog sinhronizma i integriteta

Page 23: BP1-Uvod u Baze Podataka

Koncept baze podataka

• Baza podataka predstavlja skup relevantnih podataka za neku organizaciju, organiziran na takav način da između njih postoji logička veza

• U okviru baze podataka se pohranjuje i opis podataka (metapodaci)

• Metapodaci se pohranjuju u rječniku podataka ili katalogu – logičko-fizička neovisnost podataka

• Umjesto nepovezanih datoteka sa redundantnim podacima se koriste integrirani podaci, na nivou cijele organizacije

• Definicija podataka je odvojena od aplikacija

Page 24: BP1-Uvod u Baze Podataka

Usluge koje pruža DBMS

• DBMS pruža sljedeće usluge: Omogućava definiranje baze podataka

Omogućava unos, modifikaciju i brisanje podataka, te postavljanje upita nad podacima

Omogućava kontrolirani pristup bazi podataka

Page 25: BP1-Uvod u Baze Podataka

DBMS i nivoi apstrakcije podataka

• DBMS omogućava apstrahovanje uvida u podatke od detalja njihove pohrane i održavanja

• Fizički nivo opisuje kako je zapis pohranjen

• Logički nivo opisuje podatke pohranjene u bazi i njihovu vezu sa drugim podacima

• Nivo pogleda – aplikacije sakrivaju detalje o podacima i prikazuju samo ono što je prihvatljivo sa stanovišta sigurnosti

type customer = recordname : string;street : string;city : integer;

end;

Page 26: BP1-Uvod u Baze Podataka

Instance i šeme

• Pojmovi slični tipovima i varijablama u programskim jezicima

• Šema (schema) – logička struktura baze podataka

– Analogna informaciji o tipu varijable u programskim jezicima

– Fizička šema – dizajn baze podataka na fizičkom nivou

– Logička šema – dizajn baze podataka na logičkom nivou

• Instanca (instance) – stvarni sadržaj baze podataka u datom trenutku

– Analogna vrijednosti varijable

• Fizička neovisnost podataka – mogućnost modificiranja fizičke šeme bez promjena logičke šeme

– Korisničke aplikacije ovise o logičkoj šemi

– Interfejs između različitih nivoa i komponenti treba biti dobro definiran, kako promjene u jednom dijelu ne bi značajno utjecale na druge dijelove

Page 27: BP1-Uvod u Baze Podataka

Važnost dizajna baze podataka

• Dizajn baze podataka je od ključnog značaja za njenu konzistentnost, integritet i preciznost podataka

• Nakon završenog logičkog dizajna baze podataka se pristupa fizičkoj implementaciji tog dizajna

• Savremeni DBMS posjeduju alate koji bitno olakšavaju fizičku implementaciju dizajna baze podataka

Page 28: BP1-Uvod u Baze Podataka

Modeli podataka

• Model podataka opisuje:

– Podatke

– Relacije između podataka

– Značenje (semantiku) podataka

– Ograničenja

• Entity-Relationship model (ER model)

• Relacioni model

• Ostali modeli:

– Objektno orjentirani model

– Semistrukturirani model

– Mrežni model

– Hijerarhijski model

Page 29: BP1-Uvod u Baze Podataka

ER model

• Model baziran na percepciji realnog svijeta, koji se sastoji od:

– Entiteta – stvarnih objekata

– Relacija između entiteta

• Logička struktura (šema) baze se može predstaviti ER dijagramom

• ER dijagram se sastoji od:

– Pravougaonika – predstavljaju skup entiteta

– Elipsi – predstavljaju atribute entiteta

– Rombova – predstavljaju relacije između skupova entiteta

– Linija – predstavljaju veze

Page 30: BP1-Uvod u Baze Podataka

Relacioni model

• ER model dizajna baze podataka se najčešće konvertuje u relacioni model

• Relacioni model koristi tabele za predstavljanje podataka i veza među podacima

• Većina DBMS su bazirani na ovom modelu

customer-name

Customer-idcustomer-street

customer-city

account-number

Johnson

Smith

Johnson

Jones

Smith

192-83-7465

019-28-3746

192-83-7465

321-12-3123

019-28-3746

Alma

North

Alma

Main

North

Palo Alto

Rye

Palo Alto

Harrison

Rye

A-101

A-215

A-201

A-217

A-201

Atributi

Page 31: BP1-Uvod u Baze Podataka

Relacioni model

• Primjer relacione baze podataka

Page 32: BP1-Uvod u Baze Podataka

DBMS i model baze podataka

• Za definiranje baze podataka se koristi jezik za definiciju podataka (DDL – data definition language)

• DDL omogućava specifikaciju strukture i tipa podataka, kao i ograničenja nad podacima

• Za manipuliranje podacima se koristi jezik za manipuliranje podacima (DML – data manipulation language)

• Jezik za manipuliranje podacima omogućava postavljanje upita, bez potrebe za izmjenom aplikacije

Page 33: BP1-Uvod u Baze Podataka

Data Definition Language (DDL)

• Specifikacija notacije za definiranje šeme

create table account ( account-number char(10), balance integer)

• DDL kompajler generira tabele koje se pohranjuju u riječnik podataka• DLL omogućava i definiranje ograničenja koja održavaju

konzistentnost baze podataka• DBMS automatski provjerava da li su ova ograničenja zadovoljena

pri svakoj modifikaciji sadržaja baze podataka

Page 34: BP1-Uvod u Baze Podataka

Data Manipulation Language (DML)

• Jezik za pristupanje podacima i manipuliranje podacima koji su organizirani prema nekom modelu podataka– DML se naziva i jezik za upite (query language)

• Dvije osnovne klase jezika:– Proceduralni – korisnik specificira koji su podaci potrebni i

kako se do njih dolazi – Neproceduralni – korisnik specificira koji su podaci potrebni

bez specificiranja kako da se do njih dođe• SQL je danas najrašireniji jezik za upite

Page 35: BP1-Uvod u Baze Podataka

SQL

• SQL: široko rasprostranjeni neproceduralni jezik– Primjer traženja imena korisnika čiji id je 192-83-7465

select customer.customer-namefrom customerwhere customer.customer-id = ‘192-83-7465’

– Primjer traženja salda svih računa koji pripadaju korisniku čiji id je 192-83-7465select account.balancefrom depositor, accountwhere depositor.customer-id = ‘192-83-7465’ and depositor.account-number = account.account-number

• Korisničke aplikaciji bazi podataka pristupaju:– Korištenjem ekstenzija programskog jezika, koje omogućavaju da se

SQL ugradi u korisničku aplikaciju– Korištenjem posebnih biblioteka funkcija (ODBC/JDBC) koje

omogućavaju slanje SLQ upita sistemu za upravljanje bazom podataka

Page 36: BP1-Uvod u Baze Podataka

Korisnici baze podataka

• Korisnici se razlikuju po načinu interakcije sa sistemom• Programeri – komuniciraju sa sistemom korištenjem DDL i DML• Napredni korisnici – koriste jezik za upite podataka• Specijalizirani korisnici – razvijaju specijalizirane alikacije• Obični korisnici – koriste prethodno razvijenu aplikaciju i bazi

podataka pristupaju isključivo preko aplikacije– Primjer: korisnik web-aplikacije za elektronsko bankarstvo,

korisnik bankomata, službenik banke

Page 37: BP1-Uvod u Baze Podataka

Administator baze podataka

• Koordinira sve aktivnosti sistema za upravljanje bazom podataka• Administrator baze podataka dobro poznaje informacijske resurse i

potrebe organizacije kojoj pripada baza podataka• Zaduženja administratora baze podataka su:

– Definiranje šema– Definiranje strukture za pohranu podataka i metoda pristupa– Modificiranje šema i fizičke organizacije– Dozvoljavanje korisnicima pristupa bazi podataka i dodjeljivanje

odgovarajućih privilegija– Specificiranje ograničenja radi očuvanja integriteta podataka– Saradnja sa korisnicima– Nadziranje performanse i reakcija na promjene

Page 38: BP1-Uvod u Baze Podataka

Upravljanje transakcijama

• Transakcija predstavlja niz operacija koje predstavljaju jednu logičku funkciju u aplikaciji koja koristi bazu podataka

• Npr. kada korisnik u banci preda nalog za plaćanje na neki račun:– Nalog se unosi u odgovarajuću tabelu naloga

– Iznos plaćanja se oduzima od salda računa korisnika

– Dodaje se informacija o uplati u transakcije korisnika

– Iznos se dodaje saldu računa primaoca

– Dodaje se informacija o uplati u transakcije primaoca

• Upravljanje transakcijama obezbjeđuje da baza podataka ostane u konzistentnom (ispravnom) stanju bez obzira na kvarove koji se mogu desiti na sistemu ili greške prilikom izvođenja transakcije (npr. ispad napajanja, rušenje operativnog sistema i sl.)

• Upravljanje konkurentnim korištenjem omogućava da se transakcije izvršavaju istovremeno, pri čemu se uspješno održava konzistentnost baze podataka

Page 39: BP1-Uvod u Baze Podataka

Upravljanje pohranom podataka

• Upravljanje pohranom podataka vrši modul koji predstavlja interfejs između pohrane podataka na niskom nivou i korisničkih aplikacija i upita nad bazom podataka

• Modul za upravljanje pohranom podataka je zadužen:– Za interakciju sa upravljanjem fajlovima– Efikasnu pohranu, modifikaciju i korištenje podataka

Page 40: BP1-Uvod u Baze Podataka

Cjelovita struktura sistema

Page 41: BP1-Uvod u Baze Podataka

Životni ciklus informacijskog sistema

• Informacijski sistem je skup sistemskih resursa koji prikupljaju, pohranjuju, manipuliraju, kontroliraju i prenose informacije neke organizacije

• Informacijski sistem se sastoji od: baza podataka sistema za upravljanje bazama podataka aplikacija hardverskih resursa ljudskih resursa

Page 42: BP1-Uvod u Baze Podataka

Životni ciklus informacijskog sistema

• Životni ciklus IS je usko vezan uz životni ciklus baze podataka koja mu pruža podršku

• Životni ciklus jednog IS obuhvata: planiranje specifikaciju i analizu zahtjeva dizajn (uključujući i dizajn baze podataka) kreiranje prototipa implementaciju testiranje uvođenje u upotrebu održavanje

Page 43: BP1-Uvod u Baze Podataka

?