17.03.2015 Views

2. Füüsiline disain

2. Füüsiline disain

2. Füüsiline disain

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

TTÜ: Andmebaasi füüsiline <strong>disain</strong> (2012)<br />

© Erki Eessaar<br />

• Unikaalsuse nõue.<br />

• Välisvõtmed.<br />

• Arendaja poolt kirjutatud kontrollkitsendused.<br />

Vajalik on surrogaatvõtmete väärtuste genereerimine serveris<br />

(andmebaasisüsteemi poolt), sest see garanteerib võtmeväärtuste<br />

genereerimise ka andmete otse andmebaasi sisestamisel ja vähendab võrgu<br />

koormust.<br />

Järgnev näide illustreerib väidet, et ühe andmebaasisüsteemi kasutamisel<br />

omandatud teadmised ei pruugi olla 100% rakenduvad mõne teise<br />

andmebaasisüsteemi juures. NULLide kasutamine kitsendustes erinevates<br />

andmebaasisüsteemides (Gutuluzan & Pelzer, 2003). Võrreldavad<br />

andmebaasisüsteemid.<br />

• IBM DB2 Universal Database 7.2<br />

• IBM Informix Dynamic Server 9.3<br />

• Ingres II <strong>2.</strong>5<br />

• InterBase 6.0<br />

• Microsoft SQL Server 2000<br />

• MySQL 3.23<br />

• Oracle 9i<br />

• Sybase ASE 1<strong>2.</strong>5<br />

Automaatselt<br />

NOT<br />

NULL?<br />

NOT NULL<br />

kitsenduse<br />

kustutamine<br />

on võimalik?<br />

Mitu NULLi<br />

on lubatud<br />

unikaalsuse<br />

kitsendusega<br />

veerus?<br />

Kas NOT<br />

NULL<br />

kitsendus on<br />

vajalik veeru<br />

taseme<br />

primaarvõtme<br />

kitsenduse<br />

juures?<br />

ANSI ei jah mitu ei ei<br />

SQL<br />

IBM DB2 ei ei üks jah jah<br />

Informix ei jah üks ei ei<br />

Ingres ei ei null jah jah<br />

InterBase ei ei null jah jah<br />

MS SQL jah jah üks ei ei<br />

Server<br />

MySQL ei jah mitu ei jah<br />

Oracle ei jah mitu ei ei<br />

Sybase jah jah üks ei jah<br />

Kas NOT<br />

NULL<br />

kitsendus on<br />

vajalik tabeli<br />

taseme<br />

primaarvõtme<br />

kitsenduse<br />

juures?<br />

• Automaatselt NOT NULL.<br />

- jah, kui veerg on vaikimisi kohustuslik<br />

- ei, kui veerg on vaikimisi mittekohustuslik<br />

• NOT NULL kitsenduse kustutamine.<br />

- jah, kui saab kustutada veeruga seotud NOT NULL kitsendust (pole<br />

kooskõlas SQL standardiga)<br />

- ei, kui ei saa kustutada veeruga seotud NOT NULL kitsendust<br />

• Mitu NULLi on lubatud unikaalsuse kitsendusega veerus.<br />

7

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

Saved successfully!

Ooh no, something went wrong!