Dakle...
Data mi je šema baze podataka, koja je u nekom trenutku dobijena iz modela objekata i odnosa.
posle odrađene redukcije i redundanse šeme (restruktuiranje), treba da uvedem indekse.
e sad, posto sam ja teški početnik, zanima me kojom logikom uvodim indekse, tj. kako biram tabelu nad kojom cu je uvesti.
primer :
Privatna lekarska odrinacija. Pacijenti mogu biti : gradjanstvo, ili radnici te ordinacije (ne lekari). Pacijenti zakazuju termine. Zakazan termin moze biti ostvaren ili neostvaren. U terminu pacijent ima 1 ili vise tretmana prilikom koga mu lekar pruza uslugu. Po okoncanju TERMINA, pacijentu se ispostavlja racun sa STAVKAMA, od kojih svaka stavka odgovara jednom TRETMANU. Racun se placa U CELINI, odmah ili naknadno.
ORIGINAL ŠEMA :
pri cemu je [...] = primarni kljuc
LEKAR([IDLek], Ime)
USLUGA([IDUsl], Naziv, Cena)
PACIJENT([IDPac], Naziv, Adresa)
RADNIK([IDPac], MatBroj)
TERMIN_ZAK([IDTer], Datum, Vreme, IDPac)
TERMIN_OST([IDTer], Trajanje)
TRETMAN([IDTre], MedPod, IDLek, IDUsl, IDTer)
RACUN([IDRac], Datum, IDTer)
STAVKA([IDSta], Iznos, IDTre, IDRac)
UPLATA([IDUpl], DatumUplate, IDRac)
upit nad tabelom : Ukupan prihod po uslugama.
1) Redundansa => USLUGA([IDUsl], Naziv, Cena, UkPrihod)
Potreban je TRIGGER AFTER INSERT ON UPLATA koji radi sledece:
- Iz tabele RACUN se dobija IDTer termina za koji je pacijent platio racun
- Iz tabele TRETMAN se dobija spisak IDTre svih tretmana koji su ostvareni u tom terminu kao i IDUsl usluga koje su tada pruzane
- Iz tabele STAVKA se dobijaju iznosi usluga pruzenih pacijentu za svaki od tertmana u okviru termina za koji je platio racun
- Za svaku od tih usluga se na vrednost polja UkPrihod odgovarajuceg reda tabele USLUGA dodaje dobijeni iznos.
---------------------------(ovo do sada je jasno)-----------------------------
2) Uvodjenje indeksa za gorenavedeni upit
CREATE INDEX ind1 ON TRETMAN (IDUsl) sort
CREATE INDEX ind2 ON STAVKA (IDTre) hash
CREATE INDEX ind3 ON UPLATA (IDRac) hash
PITANjE : kojom logikom se uvode ovi indeksi....i zastto je bas ovako odradjeno, tj za ovakav odabir tabela, jer meni pada na pamet 1000 drugih kombinacija.
+ pocetnik sam u svemu, a ovo je za ispit na etf-u....
unapred zahvalan.