Baze podataka slajdovi – teorija
Download
Report
Transcript Baze podataka slajdovi – teorija
Sistem baza podataka
◦ Sistem baza podataka sadrži 4 osnovne
komponente:
korisnici,
aplikacija nad bazom podataka,
sistem za upravljanje bazama podataka (Database
Management System - DBMS), i
baza podataka.
Komponente sistema baza podataka
Šta je baza podataka?
Baza podataka predstavlja kolekciju međusobno
povezanih podataka koji su organizovani u tabele i
druge strukture podataka, a koriste za jednu ili više
aplikacija.
Osnovna namena baze podataka je da bude
skladište za podatke.
Podaci mogu biti različitog tipa, tekstualni,
numerički, slike, audio i video zapisi i sl.
Iz „definicije" baze podataka vidi se da je ona
kolekcija međusobno povezanih podataka
organizovanih u tabele.
Podaci u bazama podataka su organizovani u
dvodimenzionalne tabele.
Tabela može da ima više kolona, gde svaka
kolona predstavlja neku osobinu ili atribut.
Vrste tabele čine konkretni podaci, odnosno
konkrente vrednosti osobina/atributa nekog
objekta.
Koje će tabele da sadrži baza podataka zavisi
od problema za koji treba realizovati bazu
podataka.
Postupak izbora i definisanja tabela za bazu
podataka je deo procesa modeliranja
odnosno izgradnje modela podataka.
Model podataka je detaljno objašnjen u
sekciji nakon sekcije o DBMSu.
Međusobna povezanost podataka je ono po
čemu se baza podataka razlikuje u odnosu na
fajl sisteme (datoteke) i programe za unakrsna
izračunavanja ko što je Excel.
Baza podataka sadrži i tzv. metapodatke,
odnosno podatke o samoj strukturi baze
podataka.
Sistem za upravljanje bazama podataka (DBMS)
DBMS obično nudi:
◦ Jezik za opis podataka (eng. Data Definition
Language - DDL), koji omogućava korisnicima
definisanje tipa i strukture podataka, kao i
ograničenja nad podacima memorisanim u bazi
podataka (CREATE TABLE naredba).
◦ Jezik za manipulaciju podacima (eng. Data
Manipulation Language - DML), koji omogućava
korisnicima umetanje, ažuriranje, brisanje i
pretraživanje podataka iz baze podataka (SELECT,
INSERT INTO, UPDATE naredbe).
◦ Jezik za definisanje načina memorisanja podataka
(eng. Storage Definition Language - SDL), koji se
koristi za specificiranje interne šeme baze
podataka.
◦ Kontrolisani pristup bazi podataka, što uključuje
različite funkcije i mehanizme za pristup podacima
u bazi podataka
Funkcije DBMS-a
DBMS treba da obezbedi sledeće funkcije za
kontrolisani pristup podacima u bazi
podataka:
◦ Sigurnosni sistem, koji onemogućava pristup bazi
podataka neautorizovanim korisnicima (sigurnosni
servisi), odnosno samo autorizovani korisnici mogu
da koriste podatke u skladu sa definisanim
privilegijama (autorizacioni servisi)
◦ Integritetni sistem, koji održava konzistentnost
podataka u bazi podataka, odnosno da se sve
promene dešavaju u skladu sa definisanim
pravilima.
◦ Sistem za kontrolu konkurencije, koji dopušta
deljivi pristup podacima iz baze podataka, tj da se
obezbedi korektno ažuriranje podataka kada više
korisnika pokušava istovremeno da vrši ažuriranja.
◦ Sistem za kontrolu oporavka baze podataka, koji
omogućava rekonstrukciju prethodnog
konzistentnog stanja u slučaju neke hardverske ili
softverske neispravnosti.
◦ Katalog kome korisnici mogu pristupati, koji sadrži
opis podataka koji su memorisani u bazi podataka.
◦ Podrška za transakcije, koja obezbeđuje korektno
izvršavanje niza transakcija koje mogu biti
međusobno zavisne; transakcija je skup operacija
upisa i čitanja iz baze podataka koji se tretira kao
celina tj ima svoj početak i kraj.
◦ Razne korisničke funkcije, kao što su import,
eksport podataka, statističke analize, funkcije za
nadgledanje,...
Izbor DBMS-a
Postoji veliki broj proizvođača DBMS-a
različitih performansi, namenjeni različitim
segmentima tržišta.
Tipovi sistema baza podataka:
◦ Knjigovodstvene aplikacije (sistemi za upravljanje
dokumentima, sistemi za banke, i sl)
◦ Modere Web aplikacie koje obezbeđuju složenu
funkcionalnost u distribuiranom okruženju (on-line
kupovine, raze socijalne mreže i sl.)
◦ personalni sistemi baza podataka (npr. aplikacija za
evidenciju kucnih troskova gde BP koristi jedan
samo korisnik
Personalni sistem baza podataka
◦ enterprise sistemi baza podataka (npr. velika
kompanija, ima sistem baza podataka sa velikim
količinama informacija.
Enterprise sistem baza podataka
Modeli podataka
U procesu razvoja baze podataka formira se
model realnog sistema.
Postoji mnogo različitih mogućnosti da se
modelira sistem.
Deo modela sistema koji se odnosi na podatke
naziva se model podataka.
Relacioni model podataka
Najpopularniji i najrasprostranjeniji model
podataka danas
Relacija, kao osnovni koncept relacionog
modela je zapravo matematička relacija, i ima
jednostavnu reprezentaciju u obliku
dvodimenzionalne tabele sa podacima.
Ovaj model daje osnovu za jezik visokog
nivoa za pristup podacima
U fazi projektovanja baze podataka treba
najpre prepoznati objekte realnog sveta
(entiteti) za koje treba čuvati podatke i
prepoznati njihove atribute.
Izabrani entiteti će u bazi podataka biti
predstavljeni tabelama. Zbog toga pogledajte
pažljivo navedene objekte pošto mogu da
vam budu dobar vodič kod izbora entiteta!
Svaki objekat, odnosno entitet, poseduje neka
svojstva.
Svojstva ili atributi objekta će biti
predstavljena kolonama u odgovarakućoj
tabeli.
Objekti međusobno mogu biti povezani
različitim odnosima odnosno relacijama.
Izborom objekata, definisanjem njihovih
svojstava i prepoznavanjem veza između
objekata, izvršili smo modeliranje dela
realnog sveta koji predstavlja naš problem!
Atributi su zajedničke osobine koje poseduju
svi entiteti jednog skupa entiteta.
Pošto se entiteti odnosno objekti realnog sveta
predstavljaju relacijom, atributi predstavljaju
svojstva te relacije.
Svaka relacija predstavlja skup torki, gde se
svaka torka odnosi na konkretan entitet iz
skupa entiteta.
U tabelarnom prikazu relacije, vrste tabele su
podaci o konkretnim entitetima, odnosno torke
Domen atributa je skup vrednosti koje neki
atribut može uzimati.
Svaki domen atributa se definiše: tipom
podataka, dužinom podataka i opsegom
vrednosti.
Relacija se u bazi podataka predstavlja
dvodimenzionalnom tabelom, gde vrste odgovaraju
pojedinim slogovima, a kolone atributima. Atributi
se mogu pojavljivati u bilo kom redosledu u tabeli.
Redosled vrsta tabele takođe nije bitan. Svaka tabela,
kao i svaka kolona u tabeli imaju ime.
NULL Vrednosti atributa
DBMS dozvoljava da atribut nema dodeljenu
vrednostm što podrazumeva korišćenje tzv
NULL vrednosti.
NULL vrednost može da ima dva značenja:
◦ Vrednost atributa za posmatrani entitet ne postoji
ili još uvek nije poznata.
◦ Vrednost atributa za posmatrani nije primenjiva.
Relacioni model
Baza podataka
Relacija
Tabela
Torka
Vrsta
Atribut
Kolona
Domen atributa
Tip podatka kolone
Šema relacije
Opis tabele
Ekvivalentni skup pojmova
Svojstva relacije
Relacija ima sledeća svojstva:
◦ Svaka relacija ima ime koje se razlikuje od imena
svih ostalih relacija u šemi relacione baze podataka,
◦ Svaka ćelija tabele (određena vrstom i kolonom)
kojom je relacija predstavljena sadrži samo jednu
atomičnu (prostu) vrednost,
◦ Svi atributi jedne relacije imaju različito ime,
◦ Sve vrednosti jednog atributa su iz istog domena,
◦ Sve torke relacije su različite, tj. u relaciji ne postoje
duple torke,
◦ Redosled atributa u relaciji nema značaja, i
◦ Redosled torki u relaciji teoretski nema značaja, ali
praktično redosled torki u relaciji može uticati na
efikasnost pristupa torkama!
Primer:
RADNIK predstavlja skup radnika nekog preduzeća
(entiteta, tj objekata iz realnog sveta).
Zadatak 1
Izbor relacija
◦ Ako je neophodno projektovati bazu podataka koja
se odnosi na preduzeće, prepoznati entitete i
njihova svojstva, koje ćete predstaviti relacijama u
relacionom modelu, odnosno tabelama u bazi
podataka.
RADNIK
LIME
SSL PREZIME
MBR
DATRODJ
POL
PLATA
ADRESA
Ivana
S
Gocić
123456
15-10-87
Ž
17000
Niška 4
Milan
I
Savić
234567
01-03-57
M
32000
Humska 2
Ana
P
Rodić
666777
03-12-50
Ž
27000
Savska 34
Pera
K
Kostić
555333
31-12-53
M
43000
Čairska 3
SEKTOR
NAZIV
SBROJ
Projektovanje
40
Razvoj
Proizvodnja
50
60
Zadatak 2
Domeni atributa
◦ Identifikovati domene atributa relacije RADNIK iz
prethodnog primera.
POL
Značenje
Skup mogućih imena osoba
Skup mogućih prezimena osoba
Skup mogućnih matičnih brojeva
Maticni Broj
radnika
Moguće vrednosti za datume
Datum Rodjenja
rođenja zaposlenih u preduzeću
Pol
Pol radnika
PLATA
PlataRadnika
ADRESA
AdresaRadnika
Atribut
LIME
PREZIME
MBR
DATRODJ
Domen
Imena Osoba
Prezime Osoba
Definicija domena
Niz karaktera, dužine do 15.
Niz karaktera, dužine do 15.
Celi brojevi, napr. opsega 0-9
Datum, opseg, od 01-JAN-44 nadalje
Karakter (1), vrednost M i Ž
Broj, opseg od minLD do 40000.00, gde je
Moguće vrednosti plata radnika
minLD minimalni republički lični dohodak
Moguće adrese radnika preduzeća Niz karaktera (30)
Ključevi relacije
U relacionom modelu podataka atribut ili skup
atributa čije vrednosti predstavljaju identifikator
entiteta (torke u relaciji) nazivamo ključem relacije.
Takvi atributi se nazivaju ključni atributi.
Ako relacija ne poseduje atribut ili skup atributa koji
je identifikuju, tada se uvodi specijalni identifikacioni
atribut - ključ surogat, koji se obično označava sa
ID.
Terminologija
Ključ
◦ Pošto su sve torke relacije različite, u relaciji mora
postojati atribut ili skup atributa (tzv kompozitni
ključ – ključ od više atributa), nazvani relacioni
ključevi ili ključevi relacije, koji na jedinstven način
identifikuje svaku torku relacije.
Primarni ključ
◦ Ključ kandidat koji je odabran da na jedinstven
način identifikuje torke unutar relacije.
Ključ surogat
◦ Identifikator koji je dodat relaciji kao primarni ključ,
zato što relacija nema odgovarajući atribut ili skup
atributa koji može biti primarni ključ relacije.
Spoljni ključ / Strani ključ
◦ Atribut ili skup atributa jedne relacije koji se
uparuje sa ključem kandidatom neke druge ili iste
relacije. Važan za ostvarivanje međusobnih veza
između tabela!!!
Zadatak:
Ključ relacije
◦ Identifikovati primarne ključeve relacija RADNIK i
SEKTOR iz prethodnog primera.
Rešenje:
◦ Primarni ključ u relaciji SEKTOR je broj sektora,
odnosno atribut SBROJ, zato što na jedinstven način
identifikuje svaki sektor u preduzeću
◦ U relaciji RADNIK primarni ključ je očigledno
matični broj radnika.
◦ U relaciji RADNIK atributi BRSEK i MATBRS su spoljni
ključevi. Prvi je primarni ključ u matičnoj relaciji
SEKTOR, a drugi je primarni ključ u relaciji RADNIK.
Relacija SEKTOR ima spoljni ključ MATBRR koji je
primarni ključ u relaciji RADNIK. U relaciji SEKTOR
atribut NAZIV je ključ kandidat (ako važi pravilo da u
preduzeću ne postoje dva ili više sektora sa istim imenima)
Relacioni integritet
Već smo ukazali da se za svaki atribut u
relaciji vezuje određeni domen.
Radi se o domenskim ograničenjima (eng.
domain constraints), kojima se ograničava
skup dozvoljenih vrednosti atributa relacije.
Postoje još dva pravila integriteta, poznata kao
integritet entiteta (eng. entity integrity) i
referencijalni integritet (eng. referential integrity),
koja ograničavaju ili zabranjuju pojave određenih
torki u relaciji.
Ograničenja
Integritet entiteta
◦ Nijedan atribut primarnog ključa bazne relacije ne
sme imati NULL vrednost.
Referencijalni integritet
◦ Ako postoji neki spoljni ključ u relaciji, njegova
vrednost mora biti jednaka vrednosti ključa
kandidata neke torke u matičnoj relaciji ili njegova
vrednost mora biti NULL.
◦ Referencijalni integritet je važan kod definisanja
međusobnih veza između tabela.
Na primer, pomenuta veza između relacija RADNIK
i SEKTOR (odnosi se na radnike koji rade u nekom
sektoru):
RADNIK : SEKTOR
X:Y
Najpre posmatramo jednog radnika i određujemo
sa koliko sektora je on u vezi. Pošto jedan radnik
može da radi samo u jednom sektoru, kardinalnost
sa strane sektora je 1:
RADNIK : SEKTOR
X:1
Nakon toga posmatramo jedan sektor i određujemo
sa koliko radnika je u pomenutoj vezi. Jedan sektor
može da ima više radnika, pa je kardinalnost sa
strane radnika u ovoj vezi N:
RADNIK : SEKTOR
N:1
Veze tipa 1:1 i 1:N se jednostavno definišu
dodavanje stranog ključa.
Komplikovanija situacija je ako je veza između dve
relacije više-na-više, odnosno M:N.
Predstavljanje šema relacione
baze podataka
Uobičajena konvencija za predstavljanje relacione
šeme je dijagram relacije.
Svaka relacija se predstavlja jednim izduženim
pravougaonikom koji ima onoliko ćelija koliko je
atributa u relaciji.
Ime relacije se ispisuje iznad pravougaonika, a
imena atributa u ćelijama, pri čemu ostaje pravilo
da se primarni ključ podvlači, a da se spoljni
ključevi pišu italikom.
1. PODACI I INFORMACIJE
· Informaciona tehnologija omogućava kvalitetnu
informacija bez obzira na njihovu količinu i strukturu.
obradu
i
prenos
· INFORMATIO (latinski)- pojam, poruka, skup spoznaja, predstava.
· INFORMACIJA je apstraktni pojam, da bi mogli praktično da je
upotrebimo mora biti prikazana preko realnih elemenata ( brojevi,
slova, vrednosti fizičkih veličina).
· Fizičko predstavljanje informacije naziva se podatak.
· Informacija je značenje koje čovek pripisuje podacima u skladu sa opštim
dogovorima.
- Informacije predstavljaju činjenice o pojmovima kao što su ljudi, predmeti,
pojave itd.
STRUKTURA INFORMACIJA
PRIMER: Informacija o pojmu UČENIK
Petar Petrović je ime i prezime učenika, IV-2 je odeljenje, Gimnazija u Pirotu
je naziv škole koju učenik pohađa, a ulica Srpskih vladara je adresa gde
učenik stanuje.
- Informacija se sastoji iz najmanje dva dela podatka i konteksta.
- - Važno je znati i na koji način su predstavljeni podaci
- - Informacija o nekom pojmu ( prilagodjena za automatsku obradu )
1 Kontekst
2 Podaci
3 Način predstavljanja podataka
- Kontekst informacije - lista veličina čije vrednosti opisuju dati pojam.Takva
lista veličina naziva se opis logičkog zapisa ili logičkog sloga.
- U klasičnoj obradi podaci se čuvaju odvojeno od konteksta, kontekst u
programima, a podaci u datotekama ( diskete, trake, diskovi )
Kod fizičkog zapisa podataka razlikujemo tri nivoa logičkih jedinica
1 Polje ( najmanja logička jedinica podatka. Ima svoje ime, svoju vrednost
i način predstavljanja)
2 Logički zapis ili slog ( skup polja koja se odnose na isti pojam)
3 Logička datoteka ( skup logičkih zapisa )
- Ovo je najočiglednije kod organizacije podataka u tabele.
2. POJAM BAZE PODATAKA
Pod organizacijom podataka podrazumeva se logičko
predstavljanje i povezivanje podataka
1.
Konvencionalan ili klasičan nažin organizacije - organizacija
podataka u datoteke
2.
Baze podataka - organizacija u vidu integrisanih podataka
Glavni nedostaci klasičnog organizovanja (zbog dupliranja podataka)
1.
Raste broj grešaka u procesu obradade
2.
Zbog nepouzdanih podataka, nepouzdane su i odluke zasnovane na njima
3.
Rastu troškovi obrade podataka
4.
Raste vreme odgovora računarskog sistema.
Baza podataka predstavlja osnovu za dobijanje informacija
Baza podataka je veći skup međusobno povezanih datoteka
Softver pomoću koga se upravlja podacima i obezbe|uje pristup do njih naziva se
Sistem za upravljanje bazom podataka DBMS ( Data Base Management
System)
Aplikacioni programi pišu se korišćenjem jezika za manipulaciju podacima (DMLData Manipulation Language)
Veze između podataka , relacije
Veze između dve vrste atributa naziva se asocijacija
Binarna relacija R B1x B2 definiše dve asocijacije izmedju
skupova B1 i B2 i to :
1. Direktnu Ad : B1 B2
2. Inverznu Ai : B2 B1
Preslikavanje je par asocijacija (Ad i Ai)
1. Preslikavanje tipa 1:1
2. Preslikavanje tipa 1:n
3. Preslikavanje tipa n:n
Da bi baza podataka mogla efikasno da se koristi, mora se
sprovesti postupak stvaranja stabilnih struktura podataka koji
se naziva NORMALIZACIJA.
Stepen u kome su podaci grupisani u stabilne strukture naziva
se NORMALNA FORMA
Kod projektovanja baze podataka vrlo su bitna prva tri koraka
normalizacije, odnosno dovo|enje relacija u prvu, drugu i treću
normalnu formu.
Relacija se nalazi u prvoj normalnoj formi ako ne sadrži grupe podataka koje se
ponavljaju.
Relacija se nalazi u drugoj normalnoj formi ako svi njeni atributi, koji nisu kandidati
za primarni ključ, potpuno zavise od primarnog ključa, pod uslovom da se relacija
već nalazi u prvoj normalnoj formi.
Relacija se nalazi u trećoj normalnoj formi ako se nalazi u drugoj normalnoj formi i
ako ni jedan od atributa koji nisu kandidati za primarni ključ nije prenosno zavisan
od primarnog ključa.
3. VRSTE BAZE PODATAKA
Definisani odnosi izme|u podataka u bazi odre|uju globalnu
logičku strukturu baze.
Postoje četiri logičke strukture baze podataka:
1. Hijerarhijska,
2. Mrežna,
3. Relaciona, i
4. Objektna.
3.1. HIJERARHIJSKE BAZE PODATAKA
Hijerarhijske baze podataka zasnivaju se na hijerarhijskim strukturama podataka
koje imaju oblik stabla.
Primer kao na slici:
1
2
7
3
8
4
9
5
10
6
11
12
13
Od ključa nadre|enog segmenta može da zavisi jedan, nijedan ili više podre|enih
segmenata, a podre|eni segmenat može da ima samo jedan nadre|eni segment.
Hijerarhijskom strukturom dobro se može prikazati odnos tipa (1:n)
3.2. MREŽNE BAZE PODATAKA
Mrežne baze podataka zasnivaju se na mreži podataka povezanih tako da ne
postoje ni osnovni ni podre|eni segmenti.
Primer mrežne strukture dat je na sledećoj slici:
PREDMET
STUDENT
PREDMET
Student 1
Student 2
PREDMET
Student 3
PREDMET
Student 4
Student 5
U mrežnoj strukturi ne postoje nedostaci koje ima hijerarhijska struktura i odnos
(n:n) može se uspešno predstaviti.
Mrežna struktura može se dobiti kombinacijom hijerarhijskih struktura.
Mrežna struktura znatno smanjuje dupliranje podataka.
3.3. RELACIONE BAZE PODATAKA
U slučaju složenih veza izme|u podataka, predstavljanje mrežnom ili hijerarhijskom
strukturom postaje znatno otežano.
Sve veze koje se prikazuju hijerarhijskom ili mrežnom strukturom mogu se prikazati i
tabelama.
Tabele imaju sledeće osobine:
1. Ne postoje grupe koje se ponavljaju i svaka rubrika tabele predstavlja
jedan podatak.
2. U jednoj koloni postoji samo jedna vrsta podataka.
3. Redovi se razlikuju me|u sobom,
4. Kolone imaju svoj naziv.
Ime relacije
Domeni
LIČNI
BROJ
Redovi
IME
ODELJENJE
1021/04 Petar Perić
III/1
1019/04 Marko Marić
III/5
1134/04
Mile Ilić
III/2
1138/04
Maja Perić
III/5
Relaciona baza podataka sastoji se od relacija.Relacioni pristup zasnovan je na
relacionoj matematici.
Primer sa slike mogao bi se prikazati kao:
UČENIK (lični broj, ime, odeljenje),
pri čemu je Učenik-naziv relacije, podaci u zagradi-nazivi domena a podvučeni
podaci su ključevi
Predpostavimo da je potrebno obraditi podatke o učenicima
koji su polagali maturski ispit u jednoj školi.
Prvo treba utvrditi zavisnost izmedju polja u tabeli,
odnosno da ustanovimo koja polja su zavisna od kojih
polja.
Ako možemo da odredimo vrednost nekog
polja na osnovu vrednosti nekog drugog polja,
onda za takvo polje kažemo da je zavisno od
onog drugog polja.
Kreiramo sledeće tabele:
Maturanti ( id_broj, prezime, ime, adresa,
odeljenje)
Predmet (predmet, ispitivač)
Ocene (id_broj, predmet, ocena)