[ Sportster @ 13.11.2005. 23:02 ] @
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. |