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 />
- null, kui unikaalsuse kitsendusega veerule vastavates ridade väljades<br />
peab alati väärtus olema<br />
- üks, kui unikaalsuse kitsendusega veerule vastavate ridade väljade<br />
seas tohib olla maksimaalselt üks väli, kus väärtust ei ole.<br />
- mitu, kui unikaalsuse kitsendusega veerule vastavate ridade väljade<br />
seas tohib olla mitu välja, kus väärtust ei ole.<br />
• Kas NOT NULL on vajalik veeru taseme primaarvõtme kitsenduse juures.<br />
- jah, kui on nõutud "CREATE TABLE T1 (veerg1 INTEGER NOT NULL<br />
PRIMARY KEY)<br />
- ei, kui piisab "CREATE TABLE T1 (veerg1 INTEGER PRIMARY KEY)<br />
(kooskõlas SQL standardiga)<br />
• Kas NOT NULL on vajalik tabeli taseme primaarvõtme kitsenduse juures.<br />
- jah, kui on nõutud CREATE TABLE T1 (veerg1 INTEGER NOT NULL,<br />
CONSTRAINT T1 PRIMARY KEY)<br />
- ei, kui piisab CREATE TABLE T1 (veerg1 INTEGER, CONSTRAINT<br />
T1 PRIMARY KEY) (kooskõlas SQL standardiga)<br />
<strong>2.</strong>1.3.1 Välisvõtmetega seotud kompenseerivad tegevused<br />
Siin on mõeldud välisvõtmetega seotud tabelites sooritatavaid tegevusi ridade<br />
muutmisel, kustutamisel ühes seotud tabelitest. See tähendab, kas:<br />
1. Kustutatakse (muudetakse sõltuva tabeli välisvõtme veerus olevat<br />
väärtust) vastavad read sõltuvast tabelist, kui kustutatakse (muudetakse<br />
andmeid peremeestabeli primaarvõtme veerus) peremeestabeli rida<br />
(DELETE / UPDATE CASCADE).<br />
<strong>2.</strong> Keelatakse peremeestabeli rea kustutamine (peremeestabeli<br />
primaarvõtme veerus andmete muutmine) seni, kuni eksisteerib seotud<br />
ridu sõltuvas tabelis (DELETE / UPDATE NO ACTION või RESTRICT).<br />
3. Lisaks eespool toodud variantidele võidakse veel kustutada väärtused<br />
sõltuva tabeli vastavatest välisvõtme väljadest (või anda neile mingi muu<br />
väärtus), kui peremeestabeli vastav rida kustutatakse (või muudetakse<br />
väärtust primaarvõtme veerus).<br />
Nimetatud variantide vahel valiku tegemisel võib lähtuda järgmistest<br />
printsiipidest:<br />
• Primaarvõtme veergudes andmete muutmise puhul lähtuda<br />
1. variandist 2, kui primaarvõtme veerg on genereeritud puhtalt ridade<br />
unikaalsuse tagamiseks ning ei oma kasutaja jaoks mingit sisulist<br />
tähendust ja seega puudub ka vajadus väärtuste muutmiseks neis<br />
veergudes,<br />
<strong>2.</strong> variandist 1, kui primaarvõtme veerg omab kasutaja jaoks sisulist<br />
tähendust.<br />
• Ridade kustutamisel kasutada nii variandis 1 kui ka 2 toodud printsiipe.<br />
Igal konkreetsel juhul lähtutakse variandi valikul:.<br />
1. Analüüsi käigus formuleeritud soovitustest.<br />
<strong>2.</strong> Andmete kokkukuuluvuse loogikast (vt. järgnevaid näiteid).<br />
Näited:<br />
• Tugeva olemi andmete kustutamisel kustutatakse sellega seotud nõrkade<br />
olemite andmed (vt. teema 6). Nt. Tellimus koosneb Tellimuse ridadest.<br />
8