bp1-uvod u baze podataka
DESCRIPTION
Rad sa bazama podatakaTRANSCRIPT
Baze podataka i SQL
Dr Samim Konjicija, dipl. ing. el.
Kiseljak, 28.3.2010.
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
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
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.
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.
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.
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)
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
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
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
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
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
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
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
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
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
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)
Primjer upotrebe file sistema
• Datoteka VLASNIK čuva podatke o vlasnicima nekretnina, te podatke koji omogućavaju da se vlasnik nekretnine poveže sa nekretninom
Primjer upotrebe file sistema
• Datoteka KLIJENT čuva podatke o korisnicima nekretnina, te podatke koji omogućavaju da se korisnik nekretnine poveže sa nekretninom
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
Primjer upotrebe file sistema
• U datotekam NEKRETNINE i KLIJENTI se čuvaju podaci o nekretnini i klijentu koji koristi nekretninu
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
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
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
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;
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
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
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
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
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
Relacioni model
• Primjer relacione 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
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
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
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
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
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
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
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
Cjelovita struktura sistema
Ž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
Ž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
?