2. Füüsiline disain
2. Füüsiline disain
2. Füüsiline disain
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
TTÜ: Andmebaasi füüsiline <strong>disain</strong> (2012)<br />
© Erki Eessaar<br />
DELETE AINE FROM deleted, AINE WHERE deleted.oppejoud_id =<br />
AINE.kinnitaja;<br />
Nagu näete on trigeri kirjutamine töömahukam ja tülikam (erinevates<br />
andmebaasisüsteemides on erinev trigeri kehandis oleva protseduuri<br />
kirjutamiseks mõeldud keel) võrreldes selle kompenseeriva tegevuse<br />
deklareerimisega välisvõtme kitsenduse loomisel.<br />
Näide. MS Accessis on Text, Memo ja Hüperlink andmetüübiga veergude<br />
väärtustamiseks võimalik kasutada ka nullpikkusega stringi e. tühja stringi<br />
(ingl. k. zero lenght string). See võimaldab tähistada väärtuse puudumist<br />
kahel erineval viisil (ja selle kaudu eristada põhjuseid, miks väärtus puudub):<br />
• NULL,<br />
• nullpikkusega string.<br />
Näiteks NULL tähistab olukorda, kus ei teata seda, kas väärtus on olemas või<br />
mitte. Kui väärtuse puudumine on kindlalt teada, kasutatakse nullpikkusega<br />
stringi.<br />
MS Accessis saab tabeli <strong>disain</strong>ivaates määrata, kas lubada mingis veerus<br />
NULLe ja nullpikkusega stringe. Veerul on omadused.<br />
• Required – kas välja täitmine on kohustuslik? (yes – on kohustuslik; no<br />
– ei ole kohustuslik). Kohustuslik veerg ei tohi sisaldada NULLe,<br />
mittekohustuslik tohib.<br />
• Allow Zero Length – kas lubada nullpikkusega stringe (yes – lubada; no<br />
– mitte lubada);<br />
Väärtuse puudumise kindlakstegemiseks tuleb kasutada IS NULL predikaati.<br />
Nullpikkusega stringi otsimiseks tuleb WHERE klauslis kasutada literaali ''<br />
(kaks järjestikus ülakoma mille vahel ei tohi olla tühikut).<br />
Seega, kui kontseptuaalses andmemudelis on mingi atribuudi<br />
spetsifikatsioonis öeldud, et selle väärtus ei tohi olla tühi string, siis vastava<br />
veeru spetsifitseerimisel MS Accessi andmebaasis tuleb määrata Allow Zero<br />
Length=no.<br />
10