Pred-BAZE6-2011-12

Download Report

Transcript Pred-BAZE6-2011-12

PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Mnogi su koncepti modela entiteti-veze i relacijskog modela jednaki ili
slični, što je prikazano u tablici.
Model entiteti-veze
Relacijski model
tip entiteta
relacijska shema
skup entiteta
relacija
pojava entiteta
n-torka (redak)
atribut
atribut
domena
domena
(primarni) ključ
primarni ključ
veza 1:1 i 1:M
strani ključ u postojećoj relaciji
veza M:M, veze agregacije
strani ključevi u novoj relaciji
Napomena: Glavna literatura za ovo područje je: Mladen Varga, Baze podataka: konceptualno, logičko
1
i fizičko modeliranje podataka, DRIP, Zagreb, 1994.
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba konceptualnog modela podataka razvijenog po pravilima
modela entiteti-veze u relacijsku shemu baze podataka obavlja se u
sljedećim koracima:
• Pretvorba entiteta u relacije (entitet  relacija),
• Pretvorba atributa (atribut = atribut),
• Pretvorba veza (veza  strani ključ u postojećoj ili novoj relaciji),
• Provjera normaliziranosti dobivene relacijske sheme.
2
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba entiteta u relacije
Svaki entitet tvori jednu relacijsku shemu. Ključ entiteta postaje
primarnim ključem relacije.
E1) Jaki entiteti tvore samostalne relacije. Primarni ključ
relacije jednak je ključu entiteta.
E2) Identifikacijski slabi entiteti tvore zavisne relacije.
Primarni ključ relacije slabog entiteta sastoji se od primarnog
ključa relacije nadređenog jakog entitteta (ima i funkciju
stranog ključa) i diskriminatora slabog entiteta. Budući dio
primarnog ključa ima funkciju stranog ključa, za održavanje
integriteta ovog stranog ključa određuje se pravilo kaskadnog
obavljanja operacija promjene i brisanja.
3
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba entiteta u relacije
E3) Entiteti podtipovi tvore podrelaciju. Kod ekskluzivne
specijalizacije u relaciju entiteta nadtipa može se uvesti
atribut po kojem je napravljena specijalizacija.
Primjer: BROD se specijalizira na PUTNIČKI_BROD i
TERETNI_BROD -> uvodi se atribut VRSTA_BRODA.
Primarni ključ relacije entiteta podtipa (podrelacije), jednak je
ključu relacije entiteta nadtipa. Generalizacija/specijalizacija
prikazuje se vezom Jest (Is_a) u kojoj entitet podtip "jest"
entitet nadtip. Stoga primarni ključ podrelacije ima
istovremeno funkciju stranog ključa. Za održavanje integriteta
ovog stranog ključa prikladno je kaskadno obavljanje
operacija promjene i brisanja.
4
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba atributa
• Atributi entieta postaju atributi relacije. Posebni slučajevi:
A1)Atribut koji ima više vrijednosti (tzv. ponavljajuća grupa)
tvori novu zavisnu relaciju. U "dobrom" modeliranju
izbjegava se atribut s više vrijednosti, a uvodi se slabi entitet
u kojem se nalazi atribut. Primarni ključ tako uvedenog
slabog entiteta izabire se po pravilu E2 za izbor ključa zavisne
relacije.
A2)Obavezne
atribute
opisati
ograničenjem
"ne nul-vrijednosti". Ograničenje se opisuje naznakom NOT
NULL u većini SUBP-ova.
A3)Atribute
s
jedinstvenim
vrijednostima
opisati
ograničenjem "jedinstvenosti vrijednosti". Ograničenje se
opisuje naznakom UNIQUE u većini SUBP-ova.
5
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba atributa
A4)Atribute
strane
ključeve
opisati
ograničenjem
referencijalnog integriteta.
A5)Atribute s ograničenom domenom vrijednosti opisati
ograničenjem uz kontrolu odnosno navođenjem domene u
kojoj je ograničenje već opisano.
A6)Atributi veze koja se rješava uvođenjem stranog ključa
idu u relaciju zajedno sa stranim ključem - kao opisni
(neključni) atributi relacije.
A7)Atributi veze koja se rješava uvođenjem nove agregacijske
relacije postaju atributi nove relacije - kao opisni
(neključni) atributi relacije.
6
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Moguća odstupanja od pravila pretvorbe
Zanimljiv je poseban tip atributa s više vrijednosti, tzv. vektor.
To je atribut koji ima točno određen broj vrijednosti. Npr. podatak
o prihodu poduzeća po mjesecima ima 12 vrijednosti.
Već tijekom konceptualnog modeliranja moguća su dva rješenja:
- odrediti 12 različitih atributa (npr. SIJEČANJ, VELJAČA,
OŽUJAK itd.)
- utvrditi jedan atribut (npr. MJESEC) i pridijeliti ga novom
identifikacijski slabom entitetu.
7
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Moguća odstupanja od pravila pretvorbe
Dva rješenja vektorskog atributa
NAZIV
SIJEČANJ
VELJAČA
.
PROSINAC
10520
9870
.
13665
Nova
fizički kompaktnije, bliskije korisniku i rabi manje n-torki
NAZIV
MJESEC
IZNOS
Nova
1
10520
Nova
2
9870
.
.
.
Nova
12
13665
primjerenije "relacijskom"
poimanju podataka
lako se dodaje novi član vektora, a
naredbe poput AVG, MIN, MAX i
sl. lako se koriste.
8
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Moguća odstupanja od pravila pretvorbe
Za entitete nadtip i podtipove postoji osim pravila E3 i drugi
način pretvorbe. Umjesto da svaki entitet nadtip i podtip tvori
vlastitu relaciju, može se napraviti jedna relacija s atributima
entiteta nadtipa i atributima svih podtipova. U toj relaciji svi
specifični atributi podtipova mogu imati nul-vrijednosti.
Ako ima razmjerno malo nul-vrijednosti, a njih je manje kod
neekskluzivne specijalizacije nego kod ekskluzivne, i ako se traže
dobre karakteristike pretraživanja, ovo je rješenje vrlo
prihvatljivo.
9
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Moguća odstupanja od pravila pretvorbe
Ponekad je teško pronaći dobar primarni ključ, posebice ako se u
praksi ne zahtijeva jednoznačna identifikacija entiteta. U takvim
slučajevima ključ je često sastavljen od skupa atributa, a u
krajnjem slučaju i od svih atributa relacije. Kad ovakav ključ
postane i strani ključ, njegova uporaba postaje složena.
Stoga valja razmotriti uporabu umjetnog ključa (surogata) koji će
biti jednostavan (redovito ima vrijednosti prirodnih brojeva),
jedinstven i lak za korištenje. Neki SUBP-ovi mogu ga sami
generirati.
10
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba binarnih veza
• Veza se rješava prenošenjem primarnog ključa u (drugu)
relaciju gdje on postaje strani ključ.
V1) U vezi 1:1 uvesti strani ključ u relaciju s manje n-torki ili
zadržati prirodnu vezu "roditelj-dijete". Na taj način bit će
manje nul-vrijednosti. Moguća su i druga rješenja, ovisno o
kardinalnosti veze:
a) Veza 1,1:1,1 može se riješiti i uvođenjem svih atributa jednog
entiteta u relaciju drugog entiteta, jer je broj pojava oba entiteta
jednak. Za primarni ključ se izabire ključ jednog od entiteta što
sudjeluju u vezi.
b) U vezi 0,1:1,1 uvodi se strani ključ u relaciju entiteta koji
obavezno sudjeluje u vezi.
c)Veza 0,1:0,1 može se riješiti i uvođenjem nove relacije kao u vezi
M:M (pravilo V3), ali s razlikom da se za primarni ključ izabire
ključ jednog od entiteta.
11
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba binarnih veza
V2)U vezi 1:M uvesti strani ključ u relaciju na strani M.
Ovo sigurno vrijedi za vezu 1,1:0,M. Za vezu 0,1:0,M drugo
rješenje je uvođenje nove relacije kao u vezi M:M (pravilo V3),
ali s razlikom da se za primarni ključ uzima ključ entiteta na
strani M.
V3)U vezi M:M otvoriti novu relaciju. Vrijedi za sve
kombinacije kardinalnosti veze M:M. Nova relacija zove se
agregacijskom, asocijativnom ili veznom. Primarni ključ
agregacijske relacije uvijek je sastavljen od primarnih ključeva
relacija što čine agregaciju. Dijelovi primarnog ključa
agregacijske relacije koji odgovaraju primarnim ključevima
relacija u agregaciji imaju funkciju stranih ključeva prema tim
relacijama. Za održavanje integriteta ovih stranih ključeva ne
smije se rabiti nuliranje u operacijama promjene i brisanja.
12
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba veza višeg stupnja
V4) Otvoriti novu relaciju (slično vezi M:M).
Nova relacija ima toliko stranih ključeva koliki je stupanj veze.
Npr., u ternarnoj vezi tri su strana ključa i od njih se formira
primarni ključ.
Sudjeluju li u ternarnoj vezi entiteti A, B i C (tim redoslijedom je
opisana kardinalnost veze), primarni ključ nove relacije je jedan od
mogućih ključeva:
• 1:1:1 - mogući ključevi: ključA, ključB
ključA, ključC
ključB, ključC
• 1:1:M - mogući ključevi: ključA, ključC
ključB, ključC
• 1:M:M – primarni ključ: ključB, ključC
• M:M:M - primarni ključ: ključA, ključB, ključC
13
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba veza
• Višestruke binarne veze dvaju entiteta:
• veze 1:1 i 1:M mogu se realizirati u istoj relaciji
(stranim ključevima)
• veze M:M ne smiju se realizirati istom relacijom, nego zasebnim
agregacijskim relacijama.
14
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba veza
Primarni ključ lako je utvrditi pronađu li se primarne funkcijske
zavisnosti, prikazane na slici na sljedećem slajdu, koje proizlaze iz
ključeva entiteta koji sudjeluju u vezi. Sve agregacijske relacije
dobivene pretvorbom binarnih veza tipa M:M i svih veza višeg
stupnja proizlaze iz takvih funkcijskih zavisnosti. Vidi se da npr.
ternarna veza tipa 1:M:M ima primarni ključ sastavljen od ključeva
entiteta B i C.
• Primarne (međuentitetske) funkcijske zavisnosti:
• Za veze u kojima sudjeluju entiteti A, B (binarna) i C (ternarna veza)
• Kod veza nastalih specijalizacijom/agregacijom ne formiraju se
primarne funkcijske zavisnosti
• Sekundarne (unutarentitetske) zavisnosti
15
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba veza
Primarne funkcijske zavisnosti
A:B:C
Funkcijske zavisnosti
1:1
KljučA → KljučB
KljučB → KljučA
1:M
KljučB → KljučA
M:M
KljučA, KljučB (sastavljen ključ) → Ø
1:1:1
KljučA, KljučB → KljučC
KljučA, KljučC → KljučB
KljučB, KljučC → KljučA
1:1:M
KljučA, KljučC → KljučB
KljučB, KljučC → KljučA
1:M:M
KljučB, KljučC → KljučA
M:M:M
KljučA, KljučB, KljučC → Ø
16
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Pretvorba veza
Slika na sljedećem slajdu pokazuje pravila pretvorbe osnovnih
tipova veze u relacijsku shemu. Na lijevoj se strani nalazi dijagram
entiteti-veze. Tamo gdje kardinalnost može poprimiti bilo koju
dozvoljenu vrijednost stavljena je oznaka x. Na desnoj strani
dobivena je relacijska shema u kojoj je primarni ključ potcrtan. Za
ternarnu vezu prikazan je opći slučaj s kardinalnošću M:M:M u
kojem je primarni ključ agregacijske relacije sastavljen od sva tri
ključa entiteta u vezi. Ako je kardinalnost veze drugačija
(1:1:1, 1:1:M ili 1:M:M), ključ se lako određuje prema pravilu V4
za ternarne veze.
Višestruke veze dvaju entiteta su nezavisne. Binarne veze 1:1 i 1:M
mogu se realizirati u istoj relaciji uvođenjem dvaju stranih ključeva.
Ali to ne vrijedi za dvije veze M:M. One se ne smiju realizirati istom
relacijom, nego s dvije agregacijske relacije.
17
A
x,1
x,x
B
A(ključA,…,ključB,atribut)
B(ključB,…)
B
A(ključA,…,)
B(ključB,…,)
A_B(ključA,ključB,atribut)
atribut
A
x,M
x,M
atribut
A(ključA,…,)
B(ključB,…,)
C(ključC,…,)
A_B_C(ključA,ključB,ključC,atribut)
A
x,M
B
x,M
x,M
C
Pravila pretvorbe veza u relacijsku shemu
atribut
18
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Primjeri pretvorbe veza:
ODJEL
0,1
zapošljava
(radno mjesto)
Zaposlenje
1,M
radi
(radnik)
OSOBA
ODJEL(ODJEL_KLJUČ,…)
OSOBA(OSOBA_KLJUČ,…,ODJEL_KLJUČ )
U dijagramu nisu ucrtani atributi, pa je
ODJEL_KLJUČ uzet za ključ, podcrtan je i ima
funkciju primarnog ključa.
Točkama su naznačeni opisni, neključni atributi.
Strani ključ uveden pravilom V2 pisan je
kurzivom.
19
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Primjeri pretvorbe veza:
STUDENT
1,M sluša
NASTAVNIK
1,1
predaje
Klasa_
predavanja
0,M
okuplja
PREDMET
STUDENT(STUDENT_KLJUČ,...)
NASTAVNIK(NASTAVNIK_KLJUČ,...)
PREDMET(PREDMET_KLJUČ,...)
KLASA_PREDAVANJA(STUDENT_KLJUČ,PREDMET_KLJUČ,
NASTAVNIK_KLJUČ)
Nova relacija KLASA_PREDAVANJA uvedena je po pravilu V4.
20
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Primjeri pretvorbe veza:
Šifra
0,M
Naziv
PROIZVOD
sastoji se od
0,M
u sastavu
SASTAV_
PROIZVODA
Količina
Nova relacija
SASTAV_PROIZVODA
uvedena je pravilom V3.
ŠIFRA_NAD predstavlja
šifru
nadproizvoda,
a
ŠIFRA_POD šifru podproizvoda.
Obje odgovaraju ŠIFRI
proizvoda,
ali
su
preimenovane jer relacija
ne smije imati dva atributa
jednakog naziva.
PROIZVOD(ŠIFRA, NAZIV)
SASTAV_PROIZVODA(ŠIFRA_NAD, ŠIFRA_POD, KOLIČINA)
21
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Izvor: Robert Manger, predavanja iz kolegija Baze podataka, PMF, Zagreb, 2008/09.
22
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Provjera jesu li relacije u normalnoj formi
Dobar model entiteti-veze pretvorbom daje relacijsku shemu baze
podataka koja se nalazi barem u 3NF. Naime, "normalizirani"
entiteti pretvaraju se u normalizirane relacije, a uvedeni strani
ključevi ne unose smetajuće funkcijske zavisnosti u relacije.
Provjera normaliziranosti relacija temelji se na uočavanju
primarnih i sekundarnih funkcijskih zavisnosti. Primarne
funkcijske zavisnosti međuentitetne su zavisnosti koje vrijede
među ključevima različitih entiteta odnosno relacija, a sekundarne
funkcijske zavisnosti unutarentitetne su zavisnosti koje vrijede
unutar jednog entiteta odnosno relacije.
23
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Koraci pri provjeri jesu li relacije u normalnoj formi
1. Izvođenje primarnih funkcijskih zavisnosti: Za veze u kojima
sudjeluju entiteti A, B (u binarnoj) i C (u ternarnoj) primarne
funkcijske zavisnosti izvode se kao na slici na slajdu 16 kod
pretvorbe veza. Kod veza nastalih specijalizacijom/
generalizacijom ne formiraju se primarne funkcijske zavisnosti.
2. Ispitivanje relacija na sekundarne (unutarentitetske) funkcijske i
ostale zavisnosti (npr. višeznačne).
3. Normalizacija nenormaliziranih relacija: Ako sve funkcijske
zavisnosti (primarne i sekundarne) u relaciji proizlaze samo iz
primarnog ključa, relacija je normalizirana (barem u 3NF). Ako
se utvrdi da relacije nisu dovoljno normalizirane, potrebno ih je
normalizirati uobičajenim postupkom normalizacije.
24
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Koraci pri provjeri jesu li relacije u normalnoj formi
Projektant konceptualnog modela treba znati teoriju normalizacije
i što je "normalizirani" entitet.
Osnovno pravilo modeliranja "normaliziranih" entiteta odnosno
intuitivne normalizacije:
Svaki "normalizirani" entitet:
a) mora biti definiran skupom (vlastitih) atributa koji
opisuju samo vlastita, entitetu prirođena (inherentna)
obilježja odnosno svojstva,
b) mora imati podskup atributa (ključ) koji omogućuju
jednoznačno identificiranje svake pojave entiteta.
25
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Koraci pri provjeri jesu li relacije u normalnoj formi
Svaki atribut koji se ne može pripisati samo promatranom entitetu
nije vlastiti atribut. On ukazuje na povezanost s drugim entitetom
koji ima isti takav atribut. Tijekom konceptualnog modeliranja
takav atribut treba izbaciti iz entiteta, te utvrditi vezu prema
drugom entitetu. U relacijskoj teoriji nevlastiti atribut ima
funkciju stranog ključa. Budući se u modelu entiteti-veze
povezivanje entiteta obavlja vezom, a ne stranim ključem, takav
atribut (strani ključ) nije potreban.
Studijski primjer – knjiga Mladen Varga, Baze podataka: konceptualno, logičkoi
fizičko modeliranje podataka, DRIP, Zagreb, 1994.
26
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Primjer pretvorbe veze M:M modela entiteti-veze u
dvije veze 1:M (relacijski model)
Zadana su dva pojednostavljena entiteta iz baze podataka
KNJIŽNICA (npr. u Martinovom prikazu):
ima
KNJIGA
AUTOR
napisati
ISBN
Naslov
Godina
Stranica
VrstaID
IzdavacID
AutorID
Ime
Prezime
Info
27
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Primjer pretvorbe veze M:M modela entiteti-veze u
dvije veze 1:M (relacijski model)
Veza M:M ne može postojati u relacijskom modelu podataka i ne
može se ostvariti u MS Accessu. Dakle, potrebno je takvu vezu
riješiti dodavanjem još jednog entiteta (relacije, tablice). Takav
entitet naziva se još i međuentitet ili agregacijski entitet. Uvodimo
relaciju (tablicu) KNJIGA_AUTOR između tablica KNJIGA i
AUTOR. Između tablica KNJIGA i KNJIGA_AUTOR
uspostavlja se jedna veza 1:M, a između tablica AUTOR i
KNJIGA_AUTOR uspostavlja se druga veza 1:M.
Važno je istaknuti da se primarni ključ tablice KNJIGA_AUTOR
sastoji od primarnog ključa tablice KNJIGA (ISBN) i primarnog
ključa tablice AUTOR (AutorID).
28
PRETVORBA MODELA ENTITETI-VEZE U
RELACIJSKI MODEL PODATAKA
Primjer pretvorbe veze M:M modela entiteti-veze u
dvije veze 1:M (relacijski model)
Objašnjenje potkrepljujemo prikazom veza kao u prozoru
Relationships u MS Accessu.
29
FIZIČKO MODELIRANJE PODATAKA
Fizičko
modeliranje
polazi
od
logičkog
odnosno
implementacijskog modela, a rezultira izrađenim fizičkim
modelom. Fizički model je opis stvarne fizičke organizacije
podataka, točnije baze podataka realizirane na medijima za
memoriranje podataka.
Fizički zapis je skup povezanih jedinica podataka, koji čini
osnovnu fizičku jedinicu podataka. On je fizička realizacija
logičkog zapisa. Odnos fizičkog i logičkog zapisa je proizvoljan,
ali se najčešće jedan logički zapis realizira jednim fizičkim
zapisom. Osim "čistih" podataka fizički zapis sadrži i druge
pomoćne podatke potrebne za prikaz i postupanje sa zapisima u
računalu (pokazivače, kontrolne podatke i sl.).
Ti podaci se nazivaju meta-podaci.
30
FIZIČKO MODELIRANJE PODATAKA
Skup fizičkih zapisa čini fizičku datoteku, a skup međusobno
povezanih fizičkih zapisa raznih tipova čini fizičku bazu
podataka.
31
ODLUKE FIZIČKOG MODELIRANJA
Promjene logičkog modeliranja
Potrebno je napraviti izmjene logičkog modeliranja tako da baza
podataka odgovara specifičnoj situaciji jer nema točno određenog
recepta ni pravila koja se mogu dosljedno provoditi za svaku bazu
podataka.
U ove promjene spadaju:
1. Denormalizacija i
2. Particija
32
ODLUKE FIZIČKOG MODELIRANJA
Promjene logičkog modeliranja
Denormalizacija:
Denormalizacija je obrnuti proces od normalizacije. Kod
normalizacije se tablice razdvajaju, a ovdje se prema potrebi
ponovno spajaju.
Zašto?
Ako su veze složene (komplicirane)
Ako se tablice često ne mijenjaju, a dobivaju složene upite
Ako se gubi smisao veze (funkcijska zavisnost)
Particija:
• Horizontalna – Redovi se dijele u više datotetka
• Vertikalna – Stupci se dijele u više datotetka
33
ODLUKE FIZIČKOG MODELIRANJA
Promjene logičkog modeliranja
Logičko <-> Fizičko
Npr. baza podataka u MS Accessu "Biblioteka.mdb"
• Fizičko: To je fizička datoteka koja sadrži MS Access bazu
podataka
• Logičko: "Biblioteka" se sastoji
AUTORI,… (logička datoteka)
od
tablica
KNJIGE,
Određivanje tipova podataka atributa
Određivanje kojeg tipa podatak će biti određeni atribut. Npr.
"Ime" će biti tekstualnog tipa (točan naziv tipa ovisi o tome koji
sustav za upravljanje bazom podataka se koristi; za MS Access je
to TEXT).
34
ODLUKE FIZIČKOG MODELIRANJA
Određivanje fizičke organizacije datoteka
Određuje se kako će biti organizirane datoteke na vanjskoj
memoriji (disku).
METODE PRISTUPA ZAPISIMA:
Ne postoji metoda pristupa zapisima (slogovima) koja je najbolja
u obavljanju svih operacija. U izboru metode pristupa zapisima
mogu pomoći dvije mjere: omjer čitanja zapisa (CR), koji
pokazuje odnos broja pročitanih prema ukupnom broju zapisa u
datoteci, te omjer promijenjenih zapisa (UF), koji pokazuje odnos
broja promijenjenih prema ukupnom broju zapisa.
35
ODLUKE FIZIČKOG MODELIRANJA
METODE PRISTUPA ZAPISIMA:
U sekvencijalnom (serijskom) pristupu zapisima se pristupa
jedan za drugim, od prvog u datoteci prema posljednjem.
Sekvencijalni pristup pogodan je za obrade u kojima je CR ili
CR+UF blizu ili jednako 1, dakle za grupnu obradu zapisa.
U izravnom (direktnom) pristupu zapisu se pristupa preko
njegovog ključa. Pristup zapisu je najviše u nekoliko koraka, a
idealno u jednom koraku. Ovaj pristup pogodan je za obrade u
kojima je CR ili CR+UF malen ili blizu 0, dakle za pojedinačnu
(transakcijsku) obradu zapisa.
36
ODLUKE FIZIČKOG MODELIRANJA
METODE PRISTUPA ZAPISIMA:
Karakteristike glavnih metoda
Karakteristika
Sekvencijalna
Direktna
Indeksna
Pristup
sekvencijalan
izravan
(direktan)
neizravan
Broj koraka
prosječno N/2
1(2)
2(3)
Iskorištenost
prostora
potpuna
slaba
srednja
Obrada zapisa
grupna
pojedinačna
pojedinačna,
grupna
37
ODLUKE FIZIČKOG MODELIRANJA
Metode pristupa zapisima - Indeksni pristup:
Procesom indeksiranja se stvara pomoćna datoteka koja sadrži
pokazivače na zapise sortirane po određenom kriteriju. (Ako se
često sortira prema prezimenu onda je dobro indeksirati prezime.)
Indeksi ubrzavaju pristup podacima, a time i pretraživanje
baze, ali usporavaju promjene. Prevelik broj indeksa usporava
rad baze podataka tako da se gubi prednost indeksiranja.
Indeksiranje je beskorisno ako u indeksiranom stupcu ima puno
istih podataka (u tom slučaju je porebno preispitati normalizaciju).
38
ODLUKE FIZIČKOG MODELIRANJA
Indeksni pristup:
Upit: "Berlin"
Sekvencijalna lista
1 McCarthy
2 Levstein
3 Allen
4 Williams
Indeksirana lista
Allen
3
Berlin
8
Brown
6
Dailey
9
5
6
7
Thacker
Brown
Hinzman
Gray
Hinzman
Levstein
10
7
2
8
Berlin
McCarthy
1
Thacker
Williams
5
4
9 Dailey
10 Gray
39
ODLUKE FIZIČKOG MODELIRANJA
Indeksni pristup:
Kliknite za početak
Sekvencijalna lista
1 McCarthy
2 Levstein
3 Allen
4 Williams
Upit: "Berlin"
Sekvencijalno
pretraživanje
počinje na prvom
redu i pretražuje
zapise do
pronalaženja
traženog.
5
6
7
8 ciklusa
Thacker
Brown
Hinzman
8 Berlin
9 Dailey
10 Gray
40
ODLUKE FIZIČKOG MODELIRANJA
Indeksni pristup:
Kliknite za početak
Upit: "Berlin"
Indeksno
pretraživanje ide na
sredinu i miče se
gore ili dolje za
pola preostalih
zapisa
3 ciklusa
Indeksirana lista
Allen
3
Berlin
8
Brown
6
Dailey
9
Gray
Hinzman
Levstein
10
7
2
McCarthy
1
Thacker
Williams
5
4
41
ODLUKE FIZIČKOG MODELIRANJA
Pravila za korištenje indeksa:
1.
2.
3.
4.
5.
6.
7.
8.
Koristite indekse za veće tablice
Indeksirajte primarni ključ
Indeksirajte polja za pretraživanje
Koristite indekse za broj zapisa >100, ali ne <30
Provjerite koja ograničenja za broj indeksa ima SUBP
Ne koristiti indekse ako će u poljima biti NULL vrijednosti
Koristiti indekse za postojane podatke
Koristiti indekse za polja iz uvjeta pretraživanja
Odabir indeksa:
Stvara se tablica indeksa da bi se odredile lokacije redova (zapisa) u
datoteci koji zadovoljavaju određeni uvjet.
42