Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
UNIVERZITET U BEOGRADU
GRAĐEVINSKI FAKULTET
Hidroinformatika
Beograd, 2016.
UVOD U BAZE PODATAKA
Miloš Stanić[email protected]
1. BAZE PODATAKA - UVOD
Zadaci SUBP-a
Baza podataka se sastoji od jednog ili više fajlova
koji se nalaze na jednom (centralna) ili više
(distribuirana) računara (server-a).
SUBP je skup programa koji omogućavaju unos,
čuvanje i pristup strukturama podataka u bazi.
VERIFIKACIJA I VREDNOVANJE
CENTRALNISERVER
RUČNI UNOS
MERNISISTEMI
1. Prikupljanje podataka iz raznih
izvora (i verifikacija –
vrednovanje). Akvizicija
podataka: automatska i
manuelna
2. Čuvanje (transfer i arhiviranje)
“velikog broja” podataka u
jasno definisanim strukturama
3. Pristupanje podacima i prava
pristupa:
- pojedinačni korisnici
- specijalizovani softveri (npr.
vizuelizacija, modeliranje kao
deo HIS-a)
1. BAZE PODATAKA - UVOD
Istorijat:
Do 1951 – Klasična organizacija datoteka (bušene kartice)
1951 – 1965 Složenija obrada, pojava računara, magnetne
trake, rad sa više datoteka, rad sa velikim brojem programa
1965 – Čarls Bahman, koncept integrisanih podataka
(standardi iz 1971 i 1978). Po tom konceptu podaci se
predstavljaju preko slogova, a integracija i uspostavljanje
veza medju podacima se ostvaruje ukazateljskim
ulančavanjem slogova u strukture stabla, lista i
mreža.(Formatizovane BP)
1. BAZE PODATAKA - UVOD
Istorijat:
1971 – Edgar Kod formuliše teorijske osnove relacionih
baza podataka (organizacija podataka i formalizam
manipulacije podacima)
1974 – 1979 IBM realizuje prvu relacionu bazu podataka –
Sistem R.
1981 – Pojavljuju se prve komercijalne relacione baze
podataka.
1986- a, zatim kroz standarde iz 1989, 1992, 1995, 2003
Formulisan je jezik za relacione baze podataka - SQL
1. BAZE PODATAKA - UVOD
Istorijat:
Početak razvoja računara je obeležio period razvoja i
primene pojedinačnih programa
Podaci su čuvani u jednom ili više fajlova
Svaka izmena u strukturi fajlova zahteva izmenu i samog
programa koji koristi ove podatke
1. BAZE PODATAKA - UVOD
Istorijat:
Problemi koji su vezani za ovaj pristup:
Potreba za razvojem dodatnih programa koji bi koristili
zajednički set podataka u postojećim fajlovima
I svoje specifične podatke u novim ili izmenjenim
postojećim fajlovima
Problem ažuriranja podataka odnosno
upravljanja podacima
Problem redundantnih podataka
1. BAZE PODATAKA UVOD
Istorijat:
Osnovni nedostatci
Redundantnost podataka – isti podaci se pojavljuju u više
fajlova koji su vezani za različite aplikacije
Nekonzistentnost podataka – zbog ponavljanja podataka,
izmenu jednog podatka treba obaviti u više fajlova
Zavisnost programa od strukture podataka – obično
svaka promena zahteva izmenu i testiranje svih programa
koji te podatke koriste
Problem istovremenog pristupa podacima više korisnika
problem ažuriranja podataka. Pamti se samo poslednja
promena, problem prava pristupa različitih grupa korisnika
1. BAZE PODATAKA - UVOD
Ciljevi – zahtevi za razvojem SUBP:
Nezavisnost strukture podataka od aplikacija
Normiranost - kontrolisana redundantnost podataka
Konkurentnost - mogućnost korišćenja podataka od strane
većeg broja korisnika
Sigurnost – pristup korisnika sa različitim pravima
Integritet – provera konzistentnosti ažuriranih podataka i
oporavak od naglog prekida izmene podataka
Opštost - upravljanje bazom podataka nije vezeno za
konkretan programski jezik
1. BAZE PODATAKA - UVOD
Ciljevi – zahtevi za razvojem SUBP:
SUBP koji se najviše koriste:
– MySQL (Open Source, svi OS)
– PostgreSQL (Open Source)
– Oracle
– DB2 (IBM)
– Access (Microsoft)
– SQL server (Microsoft)
2. RELACIONI MODEL PODATAKA
Definicija
Baza podataka je integrisani skup podataka o nekom sistemu
organizovan prema potrebama korisnika i elementarni skup
postupaka za njihovo održavanje i korišćenje.
Baza podataka se najčešće prikazuje Modelom podataka.
U ranijim fazama razvoja baza podataka bili su zastupljeni
mrežni i hijerarhijski model podataka
Trenutno su Relacioni modeli podataka odnosno relacione
baze podataka ubedljivo najzastupljenije.
U fazi razvoja je i Objektno orijentisani relacioni model
podataka
2. RELACIONI MODEL PODATAKA
!(
!(
!(!(
!( !(!( !(!( !(!(
!(!(
!(!(
!(!( !(!( !(
!( !(
!( !(!(!( !(
!(!(
!(
!(
!(!(!(!( !(
!(!(
!(
!( !(!(!( !( !(!(!( !(!(
!( !(!(!( !(!(
!(!(
!(!(!(
!(
!(!(
!(
!(
!(!(
!(
!(
!(
!(!(!(
!(
Feature
Waterbody
HydroIDHydroCodeFTypeNameAreaSqKmJunctionID
HydroPoint
HydroIDHydroCodeFTypeNameJunctionID
Watershed
HydroIDHydroCodeDrainIDAreaSqKmJunctionIDNextDownID
ComplexEdgeFeature
EdgeType
Flowline
Shoreline
HydroEdge
HydroIDHydroCodeReachCodeNameLengthKmLengthDownFlowDirFTypeEdgeTypeEnabled
SimpleJunctionFeature
1HydroJunction
HydroIDHydroCodeNextDownIDLengthDownDrainAreaFTypeEnabledAncillaryRole
*
1
*
HydroNetwork
*
HydroJunction
HydroIDHydroCodeNextDownIDLengthDownDrainAreaFTypeEnabledAncillaryRole
HydroJunction
HydroIDHydroCodeNextDownIDLengthDownDrainAreaFTypeEnabledAncillaryRole
Primer
Arc Hydro – Model podataka.
2. RELACIONI MODEL PODATAKA
Osnovni pojmovi
Baza podataka se sastoji od skupa Tabela - Relacija (Table,
Relation, Recordset) i skupa veza izmedju tih Tabela
Entitet (Entity, Tuple, Record) se prikazuje kao jedan zapis
u tabeli (red) koji ima unapred definisanu strukturu.
Sruktura zapisa je definisana skupom atributa (polja -
kolone u tabeli).
Svaki atribut ai ima domen iz koga može uzimati vrednosti
(Di) i mora imati jedinstveno ime (Ai) u relaciji (tabeli)
2. RELACIONI MODEL PODATAKA
Osnovni pojmovi
Relacija (Tabela) r je skup entiteta (zapisa) t
Relacija r je podskup skupa R: D1 x D2 x … x Dn
R predstavlja domen relacije
Jedan zapis (entitet) je
n-torka t:(a1, a2, …, an)
koja predstavlja skup atributa
pri čemu ai Di
2. RELACIONI MODEL PODATAKA
Osnovni pojmovi
Relacija r(R) je skup entiteta t:(a1, a2, ... , an).
Da bi r bila bazna relacija moraju biti ispunjeni sledeći
uslovi:
o Ne postoje dva ista zapisa (entiteta)
o Redosled entiteta nije bitan
o Svi atributi zadovoljavaju uslov “atomnosti”
2. RELACIONI MODEL PODATAKA
Osnovni pojmovi
Često se relacije predstavljaju preko takozvane šeme relacije:
STUDENT(BRIND, IME, PREZIME, JMBG)
PRIJAVA(SIFPREDMETA, BRIND, ISPROK, OCENA, DATUM)
Ključ relacije r
U svakoj relaciji postoji jedan atribut (prost ključ) ili više atributa
(složen ključ) čije vrednosti jedinstveno predstavljaju svaki zapis u
relaciji.
2. RELACIONI MODEL PODATAKA
Osnovni pojmovi
Ključ je kolekcija k jednog ili više atributa A takva da ne postoje
dva zapisa sa istim ključem.
Može postojati više kolekcija koje mogu biti ključ u relaciji.
Ključ koji se odabere da na jedinstveni način predstavlja entitet
(zapis) u relaciji (tabeli) naziva se primarni ključ (pk).
STUDENT(BRIND, IME, PREZIME, JMBG)
PREDMET(SIFPREDMETA, SEMESTAR, BRČASOVA)
PRIJAVA(SIFPREDMETA, BRIND, ISPROK, OCENA, DATUM)
2. RELACIONI MODEL PODATAKA
Osnovni pojmovi
Spoljni ključ (sk) je atribut ili grupa atributa u relaciji r1 koji nije
primarni ključ u toj relaciji već je primarni ključ u nekoj drugoj
relaciji r2 i koristi se za povezivanje ove dve relacije.
STUDENT(BRIND, IME, PREZIME, JMBG)
PREDMET(SIFPREDMETA, SEMESTAR, BRČASOVA)
PRIJAVA(SIFPREDMETA, BRIND, ISPROK, OCENA, DATUM)
2. RELACIONI MODEL PODATAKA
Osnovni pojmovi
Nula vrednost (NULL) se koristi da označi (u momentu
unosa) nepoznatu vrednost atributa u jednom zapisu.
Pravila integriteta
Integritet entiteta: Atribut koji je primarni ključ (prost ključ)
ili deo ključa (složen ključ) neke relacije, ne sme uzimati
vrednost NULL.
Referencijalni inegritet: Ako neka relacija relacija r2 ima
spoljni ključ sk2, koja je sa relacijom r1 povezuje preko
njenog primarnog ključa pk1, onda svaka vrednost atributa
koji su spoljni ključ mora biti jednaka nekoj vrednosti iz pk1
ili jednaka „ništa“ vrednosti (NULL).
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Zašto više tabela i zašto veze između istih?
Table1
Vodomer Adresa broj Korisnik Datum1 Ocitavanje1 Datum2 Ocitavanje2
vod001 Bulevar Kralja Aleksandra
73 Gradj. Fakultet
01/01/2008 1250 31/01/2008 1550
vod002 Bulevar Kralja Aleksandra
71 Univerz.bibl. 01/01/2008 1100 31/01/2008 1325
vod003 Bulevar Kralja Aleksandra
69 Hotel Metropol
01/01/2008 1234 31/01/2008 1450
vod001 Bulevar Kralja Aleksandra
73 Gradj. Fakultet
31/01/2008 1550 28/02/2008 1750
vod002 Bulevar Kralja Aleksandra
71 Univerz.bibl. 31/01/2008 1325 28/02/2008 1485
vod003 Bulevar Kralja Aleksandra
69 Hotel Metropol
31/01/2008 1450 28/02/2008 1755
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Faze u razvoju baze podataka
Potrebni podaci:
Intervjuisanje budućih
korisnika baze podataka
Analiza postojeće
dokumentacije
Način rada sistema pre uvođenja
baze podataka
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Faze u razvoju baze podataka
Konceptualna šema objedinjuje
sve zahteve za podacima i tražene
formate podataka. U okviru razvoja
konceptualnog modela se rešava
problem redundantnih podataka.
Ovaj postupak se naziva
normalizacija.
Krajnji rezultat konceptualnog
modeliranja je model objekti-veze
(MOV) (engleski: Entity-
Relationship E-R model)
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Faze u razvoju baze podataka
Konceptualna šema
Krajnji rezultat konceptualnog
modeliranja je model objekti-veze
(MOV) (engleski: Entity-
Relationship E-R model)
(Alati za projektovanje ERD-a:
Visio, VisualStudio Net, …)
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Faze u razvoju baze podataka
Logički nivo: prevodjenje
konceptualnog modela na format
(jezik) koji je prepoznatljiv za SUBP.
CASE alati koji su vezani za određeni
DBMS ili korišćenjem DDL-a
Fizički nivo: faza implementacije.
Razvoj postupaka za efikasan pregled,
izmenu, brisanje i dodavanje podataka
u bazu.
Rešava se problem fizičkog smeštanja
podataka (server) i indeksiranja polja u
tabelama.
Table1
Vodomer Adresa broj Korisnik Datum1 Ocitavanje1 Datum2 Ocitavanje2
vod001 Bulevar Kralja Aleksandra
73 Gradj. Fakultet
01/01/2008 1250 31/01/2008 1550
vod002 Bulevar Kralja Aleksandra
71 Univerz.bibl. 01/01/2008 1100 31/01/2008 1325
vod003 Bulevar Kralja Aleksandra
69 Hotel Metropol
01/01/2008 1234 31/01/2008 1450
vod001 Bulevar Kralja Aleksandra
73 Gradj. Fakultet
31/01/2008 1550 28/02/2008 1750
vod002 Bulevar Kralja Aleksandra
71 Univerz.bibl. 31/01/2008 1325 28/02/2008 1485
vod003 Bulevar Kralja Aleksandra
69 Hotel Metropol
31/01/2008 1450 28/02/2008 1755
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Osnovni elementi Modela Objekti Veze (MOV)
Objekti – stvarni ili apstraktni kojima se opisuje model (Korisnik,
Vodomer, Merenje)
Atributi vezani za objekte
Veze između objekata
o Korisnik priključen na Vodomer
o Merenje očitano na Vodomeru
Neformalno govoreći objekti odgovaraju imenicama a veze su
predstavljene glagolom u rečenici.
Table1
Vodomer Adresa broj Korisnik Datum1 Ocitavanje1 Datum2 Ocitavanje2
vod001 Bulevar Kralja Aleksandra
73 Gradj. Fakultet
01/01/2008 1250 31/01/2008 1550
vod002 Bulevar Kralja Aleksandra
71 Univerz.bibl. 01/01/2008 1100 31/01/2008 1325
vod003 Bulevar Kralja Aleksandra
69 Hotel Metropol
01/01/2008 1234 31/01/2008 1450
vod001 Bulevar Kralja Aleksandra
73 Gradj. Fakultet
31/01/2008 1550 28/02/2008 1750
vod002 Bulevar Kralja Aleksandra
71 Univerz.bibl. 31/01/2008 1325 28/02/2008 1485
vod003 Bulevar Kralja Aleksandra
69 Hotel Metropol
31/01/2008 1450 28/02/2008 1755
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Šta treba da ispuni dobro projektovan model podataka?
1. Rešavanje problema izmene podataka u bazi
Primer: Dodaj novi Vodomer
Promena imena Korisnika
Brisanje Korisnika
2. Problem određivanje
funkcionalnih zavisnosti
između atributa u
relacijama.
Normalizacija je proces u kome se rešava problem redundantnih
podataka u bazi.
Table1
Vodomer Adresa broj Korisnik Datum1 Ocitavanje1 Datum2 Ocitavanje2
vod001 Bulevar Kralja Aleksandra
73 Gradj. Fakultet
01/01/2008 1250 31/01/2008 1550
vod002 Bulevar Kralja Aleksandra
71 Univerz.bibl. 01/01/2008 1100 31/01/2008 1325
vod003 Bulevar Kralja Aleksandra
69 Hotel Metropol
01/01/2008 1234 31/01/2008 1450
vod001 Bulevar Kralja Aleksandra
73 Gradj. Fakultet
31/01/2008 1550 28/02/2008 1750
vod002 Bulevar Kralja Aleksandra
71 Univerz.bibl. 31/01/2008 1325 28/02/2008 1485
vod003 Bulevar Kralja Aleksandra
69 Hotel Metropol
31/01/2008 1450 28/02/2008 1755
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Neformalni koraci u formiranju MOV-a:
Prvi korak je provera ispunjenosti uslova atomnosti
(nedeljivosti) atributa u relaciji
Drugi korak je
funkcionalna dekompozicija
relacije u više manjih
relacija. Jednostavan
postupak je identifikacijom
“funkcionalno zavisnih”
atributa čije se vrednosti
ponavljaju.
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Neformalni koraci u formiranju MOV-a:
Prethodni koraci u primeni
neformalnog postupka
normalizacije dovodi nas do
MOV-a koji je prikazan na
slici.
Primarni ključ
Spoljni ključ
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Neformalni koraci u formiranju MOV-a:
Korak “dalje”
Potencijalni problemi:
• Ne postoji mogućnost da jedan
korisnik ima više vodomera.
• Dodavanje novog korisnika (zbog
“referencijalnog integriteta”, mora
biti poznato na koji će vodomer biti
priključen novi korisnik)
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
Neformalni koraci u formiranju MOV-a:
Korak “dalje”
Dodavanje veze “više na više”
dodavanjem nove tabele
tblVodomerKorisnik sa dva spoljna
ključa: VodomerID i KorisnikID
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
PRIMER:Projektovati bazu podataka u koju
će se smeštati rezultati merenja
nivoa podzemne vode u
pijezometrima. Merenja se
obavljaju ručno i sondama za
merenje apsolutnog ili
manometarskog pritiska. Sonde
imaju sopstvenu memoriju za
čuvanje podataka, koja se
povremeno očitava. Ručna merenja
se u proseku obavljaju jednom
nedeljno. Sonde mogu menjati
mesta merenja (pijezometre) ili biti
neaktivne (usled kvara) ili otpisane.
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
PRIMER:
Pijezometar Sonda Datum Vreme Pritisak (mbar) Komentar
P1 S1(d=15.5m) 05.11.2011 9:05 500 P1 S1(d=15.5m) 05.11.2011 10:05 505 P1 S1(d=15.5m) 05.11.2011 11:05 505 ….
P2 Rucno 6.11.2011 14:00 5.25 dubina do nivoa vode (m)
P3 Rucno 7.11.2011 14:00 4.15 dubina do nivoa vode (m) ….
P2 S2(d=12.5m) 10.11.2011 9:05 1530 Apsolutni pritisak
P2 S2(d=12.5m) 10.11.2011 10:05 1532 Apsolutni pritisak
P2 S2(d=12.5m) 10.11.2011 11:05 1535 Apsolutni pritisak ….
P1 S2(d=15.0m) 12.11.2011 9:05 1480 Apsolutni pritisak
P1 S2(d=15.0m) 12.11.2011 10:05 1482 Apsolutni pritisak
P1 S2(d=15.0m) 12.11.2011 11:05 1482 Apsolutni pritisak
Neorganizovan način čuvanja
podataka merenja bi mogao
izgledati kako je to prikazano u
narednoj tabeli..
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
PRIMER:
Pijezometar Sonda Datum Vreme Pritisak (mbar) Komentar
P1 S1(d=15.5m) 05.11.2011 9:05 500 P1 S1(d=15.5m) 05.11.2011 10:05 505 P1 S1(d=15.5m) 05.11.2011 11:05 505 ….
P2 Rucno 6.11.2011 14:00 5.25 dubina do nivoa vode (m)
P3 Rucno 7.11.2011 14:00 4.15 dubina do nivoa vode (m) ….
P2 S2(d=12.5m) 10.11.2011 9:05 1530 Apsolutni pritisak
P2 S2(d=12.5m) 10.11.2011 10:05 1532 Apsolutni pritisak
P2 S2(d=12.5m) 10.11.2011 11:05 1535 Apsolutni pritisak ….
P1 S2(d=15.0m) 12.11.2011 9:05 1480 Apsolutni pritisak
P1 S2(d=15.0m) 12.11.2011 10:05 1482 Apsolutni pritisak
P1 S2(d=15.0m) 12.11.2011 11:05 1482 Apsolutni pritisak
Jedan pogrešan pokušaj:
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
PRIMER:Osnovni nedostatci pogrešnog
modela: 1. pijezometar je direktno
povezan sa sondom, 2. ne uzima u
obzir da se merenja obavljaju u
kampanjama.
Popravljen model
- u tabeli tblMerenja je dodato polje
PritisakID, kojim se definiše šta se
meri (npr. domen atributa PritisakID
bi mogao biti: "MAN", "APS" ili
"NIV")
- rezultati merenja su smešeteni u
posebnu tabelu tblRezultatMerenja.
- moguć je unos rezultata merenja
koja su obavljena ručno: ili bi se u
tabeli tblMerenja bi se polje
SondaID ostavljalo da bude NUL ili
bi se u tabelu tblSonda unela
fiktivna sonda.
2. RELACIONI MODEL PODATAKA
Projektovanje modela podataka
PRIMER:
Opšteg modela podataka koji bi
odgovarao, čuvanju vremenskih
nizova izmerenih fizičkih
veličina, na različitim
lokacijama i sa različitim
uređajima.
tblJediniceFV
JedinicaMereID FizickaVelicinaID Name ConversionFactor
100 1 m 1
101 1 cm 0.01
102 1 mm 0.001
…
800 8 N/m2 1
801 8 kN/m2 1000
802 8 bar 100000
tblFizickaVelicina
ID Name
0 none
1 duzina
2 vreme
3 protok
…
8 pritisak