17.03.2015 Views

2. Füüsiline disain

2. Füüsiline disain

2. Füüsiline disain

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!