hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Sisältö i 1 Johdanto 1 2 Avainrajoitteet 1 3 Viite-eheysrajoitteet 1 4 Arvojoukkoeheysrajoitteet 1 5 Eheysrajoitteiden teoreettiset perusteet 2 6 Eheysrajoitteiden historia 2 7 Yhteenveto 2 Lähteet 3
1 Johdanto 1 Johdantona aiheeseen esitetään eheyden määritelmä ( tietovaraston tietojen sisäinen ristiriidattomuus ) ja eheysrajoitteiden osuus osana relaatiomallia [Cod70]. Motivaatioksi tuodaan esiin tietokantatasoisen eheydestä huolehtimisen edut verrattuna sovellustasoiseen. Kerrotaan lyhyesti, mitä tekstissä aiotaan käsitellä (sisällön strukturoinnin esittely). 2 Avainrajoitteet Kappaleen sisältönä avainrajoitteet (key constraint), joista esitellään sekä perusavainrajoitteet (primary key constraint) monikoiden yksilöijinä että yksilöivyysrajoitteet (unique constraint) ehdokasavainten määrittelytapana. Hakemistot (index)? Esitetään avainrajoitteiden perusidea (relaatiossa ei saa olla kahta tai useampaa samanlaista monikkoa; pääavaimeksi määritellään pienin mahdollinen joukko attribuutteja, jotka riittävät yksilöimään relaation kunkin monikon.) ja tapa määritellä ne SQL-kielellä. 3 Viite-eheysrajoitteet Viite-eheysrajoitteet (referential integrity constraint), joilla tässä tarkoitetaan SQL:n viiteavainrajoitteita (foreign key). Esitetään viite-eheysrajoitteiden perusidea (viiteavaimen arvon on löydyttävä viitatun taulun pääavaimen arvosta.), esimerkkejä ja tapa määritellä ne SQL-kielellä. Lisäksi viiteavaimiin liittyvät toimintaohjeet: Vyörytys- (cascade), nollaus- (nullify) ja estosäännöt (resctrict tai no action) toiminnallisine eroineen sekä niiden määrittely SQL-kielellä. 4 Arvojoukkoeheysrajoitteet Arvojoukkoeheysrajoitteiden (domain constraint) idea kaikkine attribuutin arvojoukkoon liittyvine rajoituksineen. Mainitaan tietotyyppi, pituus, oletusarvo, salli-
2 tut arvot, pakollisuus, erilaisuus ym. attribuuttiin liittyvät ominaisuudet. Esitellään SQL:n yksilöintimääreet (unique), tarkistusmääreet (check), pakollisuusvaatimukset (not null) ja oletusmääreet (default) esimerkkeineen.. Voitaneen mainita myös herättimet tilasiirtymiin kohdistuvine rajoitteineen ja esitellä proseduraalista eheysvalvontaa. 5 Eheysrajoitteiden teoreettiset perusteet Funktionaaliset ja sisältyvyysriippuvuudet. 6 Eheysrajoitteiden historia Kappaleessa esitellään lyhyesti eheysrajoitteiden historiaa osana SQL-standardia. Tuodaan esiin, että SQL on kehittynyt vuosien varrella, ja että ensimmäisessä versiossa ei ollut mahdollista määritellä edes avainrajoitteita. Esihistoria: eheysrajoitteet System-R:ssä ja SEQUEL-kielessä. SQL1 -standardi (SQL86) vuonna 1986. Viite-eheyden tarkistuksen lisääminen standardiin vuonna 1989. SQL2 -standardi (SQL92) vuonna 1992. Vyörytys- ym. toiminnot. SQL3-standardi (SQL99) vuonna 1999, jolloin myös herättimet proseduraaliseen eheysvalvontaan. Selvitettävää: Onko vuosien 2003, 2006 ja 2008 SQL-standardeissa tullut jotain mainittavia muutoksia eheysrajoitteisiin liittyen (esim. vuonna 2008 INSTEAD OF -herättimet). 7 Yhteenveto Tekstiä.
Lähteet 3 Ast76 BMP01 Cha81 Cod70 CPM96 MaR92 SKS06 Sto75 Astrahan, M. M. et al., System R: relational approach to database management. ACM Trans. Database Syst., 1,2(1976), sivut 97 137. Behrend, A., Manthey, R. ja Pieper, B., An amateur s introduction to constraints and integrity checking in SQL3. Datenbanksysteme in Büro, Technik und Wissenschaft (BTW). Springer, 2001, sivut 405 423. Chamberlin, D. D. et al., A history and evaluation of System R. Commun. ACM, 24,10(1981), sivut 632 646. Codd, E. F., A relational model of data for large shared data banks. Commun. ACM, 13,6(1970), sivut 377 387. Cochrane, R., Pirahesh, H. ja Mattos, N., Integrating triggers and declarative constraints in SQL database systems. Conference on Very Large Data Bases (VLDB), 1996, sivut 567 578. Mannila, H. ja Räihä, K., The Design of Relational Databases. Addison- Wesley Publishing Company, Wokingham, 1992. Silberschatz, A., Korth, H. F. ja Sudarshan, S., Database System Concepts. Fifth Edition. McGraw-Hill, New York, 2006. Stonebraker, M., Implementation of integrity constraints and views by query modification. SIGMOD 75: Proceedings of the 1975 ACM SIGMOD international conference on Management of data, New York, 1975, ACM, sivut 65 78.