HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008



Samankaltaiset tiedostot
HELIA 1 (17) Outi Virkki Tiedonhallinta

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

HELIA 1 (12) Outi Virkki Tiedonhallinta

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

2. Käsiteanalyysi ja relaatiomalli

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Relaatiomalli ja -tietokanta

Tietokantojen suunnittelu, relaatiokantojen perusteita

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

HELIA 1 (14) Outi Virkki Tiedonhallinta

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

Tietokannan suunnittelu

CSE-A1200 Tietokannat

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

Relaatioalgebra. Kyselyt:

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

SQL - STRUCTURED QUERY LANGUAGE

Helsingin yliopisto/tktl Tietokantojen perusteet, k 2003 Relaatiomallin peruskäsitteet Harri Laine 1. Tietomallit. Näkökulmat tietoon

millainen on se kohde, jota tiedoilla pitäisi kuvata asiat, joita pitäisi esittää Mitä tietoelementtien arvot tarkoittavat

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tietokannan rakenteen suunnittelu

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

HELIA 1 (20) Outi Virkki Tiedonhallinta

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Tietokannan suunnittelu

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

HELIA 1 (11) Outi Virkki Tiedonhallinta

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

SQL-kielen perusteet. Tietokantojen perusteet

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Luento 3 Tietokannan tietosisällön suunnittelu

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Tietokannat II -kurssin harjoitustyö

OpenOffice.org Base 3.1.0

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

TIETOKANNAT JOHDANTO

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

Tietokantakurssit / TKTL

3. Käsiteanalyysi ja käsitekaavio

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Lohdutus - tietokantadokumentti

Luento 2: Tiedostot ja tiedon varastointi

HELIA 1 (17) Outi Virkki Tiedonhallinta

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

HELIA TIKO-05 1 (20) ICT03D Tieto ja tiedon varastointi O.Virkki

Tietokanta projektin alussa: create table kurssin_tila ( NOT NULL VARCHAR2(60) create table kurssin_tyyppi ( create table opintojakson_tyyppi (

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Tietokannat I. c 2007 Olli Luoma olli.luoma@it.utu.fi

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

TIETOKANNAT kevät 2002 Itseopiskeluosio osa 2/3

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Tieto ohjelmassa ja tietokoneella

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi

CSE-A1200 Tietokannat

PALKKA-AINEISTON SIIRTOTIEDOSTO

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

HELIA 1 (14) Outi Virkki Tiedonhallinta

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

SELECT-lauseen perusmuoto

Transkriptio:

HAAGA-HELIA TIKO-05 1 (19) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Yksilön eheyssääntö ja Pääavain... 9 Viite-eheyssääntö ja Viiteavain... 10 Arvojoukkoeheyssääntö ja Tietotyyppi... 14 Sovellusalueen eheyssäännöt... 17 Käsittely... 18 Käsitteitä... 19

HAAGA-HELIA TIKO-05 2 (19) Relaatiomalli Relaatiomalli on eräs tietomalli (muita mm. hierarkkinen malli, verkkomalli) Tietomalli ~ Malli, jonka mukaan tietokannan tiedot organisoidaan. Tietomalli koostuu joukosta peruskäsitteitä, -sääntöjä ja - operaatioita Perusajatuksiltaan yksinkertainen yksiselitteinen selkeä Pohjautuu joukko-opin käsitteisiin Loogisen minimaalisuuden tavoittaminen Erinomainen väline tietokannan rakenteen ja käsittelyn kuvaamiseen Relaatiotietomallissa kaikki tieto tallennetaan taulukkomuotoon - relaatioihin (tauluihin)

HAAGA-HELIA TIKO-05 3 (19) Peruskäsitteet 1. Relaatio (Relation) 2. Attribuutti (Attribute) 3. Monikko (Tuple) Viralliset Käytännölliset Tiedostoista periytyvät Relaatio Taulu / Taulukko (Tiedosto) Attribuutti Sarake Kenttä Monikko Rivi Tietue Relaation nimi Attribuutit OPETTAJA Lyhenne Nimi Huone Vastaanotto BurOt Burman BenAn Benson 3012 Ke 12-13 Monikot VirOu Virkki 3012 VirPe Virkki 3012 Arvo

HAAGA-HELIA TIKO-05 4 (19) Ominaisuuksia: Relaatiot Jokaisella relaatiolla on yksikäsitteinen nimi Rivit Relaatiossa ei saa olla kahta täysin samanlaista riviä! (relaatio on rivien joukko ja tietty alkio voi esiintyä joukossa vain kerran) (-> yksilön eheyssääntö) Rivien järjestyksellä ei ole merkitystä (joukossa ei ole järjestystä) Attribuutit Relaation jokaisella rivillä tulee olla yhtä monta attribuuttia (ns. kiinteämittainen tietue) Tietyssä relaatiossa jokaisella attribuutilla on yksikäsitteinen nimi Kukin attribuutti on homogeeninen, eli sisältää arvoja vain yhdestä arvoalueesta Kukin attribuutti on atominen, eli jakamaton Attribuuttien järjestyksellä ei ole merkitystä (relaation attribuuteilla on yksikäsitteiset nimet)

HAAGA-HELIA TIKO-05 5 (19) Relaatio Määritelmä Olkoon D 1, D 2,, D n arvojoukkoja, joiden ei tarvitse olla erillisiä. Relaatio R on joukko monikkoja, joiden 1. arvo kuuluu joukkoon D 1, 2. arvo joukkoon D 2 jne. Relaatio on siis karteesisen tulon D 1 * D 2 * * D n osajoukko (Codd, 1970) Jokaisella relaatiolla on yksikäsitteinen nimi Relaatiokaava (Relation schema) Määrittelee relaation rakenteen (pysyvät ominaisuudet) R(A1, A2,, An) R = relaation nimi A1, A2,, An = attribuuttilista esim: OPISKELIJA(opno, op_sukunimi, op_etunimi, op_aloitusvuosi)

HAAGA-HELIA TIKO-05 6 (19) Attribuutti ja arvojoukko Tietyssä relaatiossa jokaisella attribuutilla on yksikäsitteinen nimi Jokaisen relaatiokaavan attribuuttiin Ai liittyy arvojoukko / arvoalue dom(ai), joka sisältää attribuutin Ai mahdolliset (atomiset) arvot Tyhjä arvo (NULL) sisältyy jokaiseen arvojoukkoon Relaatiotietomallissa attribuuttien arvojoukot / arvoalueet voidaan määritellä vapaasti attribuuttien merkityksen mukaan esim. sukunimi arvoalue sisältää kaikki olemassaolevat sukunimet Relaatiotietokantatuotteissa arvoaluekäsitettä ei yleensä tunneta eikä tueta Sarakkeet esitellään perustietotyyppien (Char, Int, ) ja niiden maksimipituuksien avulla esim. sukunimi varchar(20)

HAAGA-HELIA TIKO-05 7 (19) Monikko koostuu arvoista ja niihin liittyvistä attribuuteista. monikko on siis tällaisten arvo-attribuutti parien joukko Arvo-attribuutti-pari sisältää merkityksen esim. hinta: 10,99 Tarkan merkityksen selvittäminen vaatii yleensä enemmän tietoa Tyhjä arvo (Null) ~ Arvo puuttuu, koska sitä ei tiedetä ~ Arvo puuttuu, koska sitä ei ole Vertailu null-arvon kanssa mahdotonta Laskutoimitus null-arvon kanssa mahdoton Tietokantatuotteissa on mekanismeja, joilla null-arvoihin voi varautua

HAAGA-HELIA TIKO-05 8 (19) Säännöt ~ määrittelee tietokannan tauluissa yhtä aikaa sallitut rivit eli tietokannan sallitut tilat 1. Yksilön eheyssääntö 2. Viite-eheyssääntö 3. Arvojoukkoeheyssääntö 4. Sovellusaluekohtaiset eheyssäännöt Eheys Yksittäisen tai useamman tietovaraston tietojen sisäinen ristiriidattomuus Eheyden valvonta a) Tiedonhallintajärjestelmä b) Sovellusohjelma c) Käyttäjä Tiedonhallintajärjestelmät tukevat eheyden valvontaa vaihtelevasti Vain osa määriteltävissä Rajoituksia Syntaksit voivat olla erilaisia Luotettavin tapa

HAAGA-HELIA TIKO-05 9 (19) Yksilön eheyssääntö ja Pääavain ~ Primary Key & Entity Integrity ~ Relaation avain tai mikäli niitä on useampia pääavaimeksi valittu avain Pääavaimen arvo (tai sen osa) ei voi olla tyhjä Pääavaimeksi kannattaa valita attribuutti, jonka arvo ei muutu (ainakaan usein) Oliopohjaisessa ohjelmistokehityksessä avaimeksi määritellään mitään merkitsemätön numero Avain ~ Key ~ Tunniste ~ Pienin mahdollinen joukko relaation attribuutteja, jotka riittävät yksilöimään jokaisen relaation rivin Avain voi siis koostua useammasta kentästä (ns. yhdistelmäavain) Avaimen arvo ei voi olla tyhjä Jokaisella relaatiolla on ainakin yksi avain Relaatiolla voi olla myös useampia avaimia (ns. avainehdokkaita / Candidate Key)

HAAGA-HELIA TIKO-05 10 (19) Viite-eheyssääntö ja Viiteavain ~ Foreign Key & Referential Integrity ~ Relaation attribuutti, jolla on sama arvoalue kuin toisen relaation pääavaimella ~ Viittaavan relaation viiteavain viittaa viitatun relaation pääavaimeen Relaatioiden väliset yhteydet toteutetaan viiteavaimien avulla Viiteavain sijaitsee aina yhteyden moni (*) -päässä Viiteavaimen arvo voi olla tyhjä, jos yhteys ei ole pakollinen Viite-eheyssääntö: ~ Viiteavaimen arvon on löydyttävä viitatun relaation pääavaimen arvoista (tai viiteavaimen on oltava tyhjä) ~ Ts. ei saa viitata sellaiseen riviin, jota kannasta ei löydy

HAAGA-HELIA TIKO-05 11 (19) Esim: viitattu relaatio Kurssi krs_id krs_nimi krs_laajuus krs_alku_pvm krs_loppu_pvm PK: krs_id 1 viittaava relaatio 0..* Osallistuminen krs_id opi_id krs_arvosana 0..* PK: krs_id, opi_id FK: krs_id FK: opi_id viitattu relaatio 1 Opiskelija opi_id opi_sukunimi opi_etunimi opi_katuosoite opi_postino opi_puhno PK: opi_id

HAAGA-HELIA TIKO-05 12 (19) Viite-eheyden valvonta: Emorelaation päivitys Lisäys - Poisto / Pääavaimen muutos Rajoitettu / Restrict / No Action Poisto / pääavaimen muutos sallitaan joss lapsirelaatiossa ei esiinny viittauksia poistettavaan Vyörytys / Cascade Poisto / pääavaimen muutos sallitaan aina. Jos lapsirelaatioita on, nekin poistetaan / niiden viiteavaimen arvo päivitetään vastaavasti Tyhjä arvo / Set null Poisto / pääavaimen muutos sallitaan aina. Jos lapsirelaatioita on, niiden viiteavaimen arvoksi asetetaan null (huom. null arvojen oltava sallittuja ko. viiteavaimelle!) Oletusarvo / Set default Poisto / pääavaimen muutos sallitaan aina. Jos lapsirelaatioita on, niiden viiteavaimen arvoksi asetetaan oletusarvo (huom. oletusarvo oltava määritelty ko. viiteavaimelle!) Esim.

HAAGA-HELIA TIKO-05 13 (19) Lapsirelaation päivitys Lisäys / Viiteavaimen muutos Riippuvainen / Dependent Lisäys / muutos viiteavaimeen sallitaan joss emorelaatiossa on ko. viiteavainta vastaava pääavain Automaattinen / Automatic Lisäys / muutos viiteavaimeen sallitaan aina. Jos emotaulussa ei ole vastinriviä, se luodaan. (<- miten??) Tyhjä / Set null Lisäys / muutos viiteavaimeen sallitaan aina. Jos emotaulussa ei ole vastinriviä, viiteavaimen arvoksi asetetaan null. Oletusarvo / Set default Lisäys / muutos viiteavaimeen sallitaan aina. Jos emotaulussa ei ole vastinriviä, viiteavaimen arvoksi asetetaan oletusarvo. Poisto - Esim.

HAAGA-HELIA TIKO-05 14 (19) Arvojoukkoeheyssääntö ja Tietotyyppi Domain Integrity Kukin attribuutti on homogeeninen, eli sisältää arvoja vain yhdestä arvoalueesta Kukin attribuutti on atominen, eli jakamaton Toteutetaan määrittelemällä tietotyyppi (sekä mahd. max.pituus, välttämättömyys, oletusarvo, sallitut arvot, erilaisuus, ) Tietokannan hallintajärjestelmä huolehtii viite-eheyssäännön valvonnasta useamman mekanismin avulla: tietotyyppitarkistus oletusarvomääritykset (Default value) eheyssääntömäärittelyt (Check Constraint) (myös pakollisuus / not null -määrittelyt) erilaisuusmäärittelyt (Unique Constraint) herättimet (Trigger) Esim. Asiakkaan_tyyppi Char(10) Not null Default( yritys ) Check(value in yritys, yksityinen ),

HAAGA-HELIA TIKO-05 15 (19) SQL:n tietotyypit (tavallisimmat) Merkkijonot CHAR (n) VARCHAR(n) n välillä 1..255 Tarkat luvut DECIMAL [pituus [,desim:n pituus]] n:n mittainen merkkijono (kiinteämittainen) korkeintaan n:n mittainen merkkijono (vaihtuvamittainen) Esim. hloid CHAR (5) titteli VARCHAR (30) desimaaliluku Palkka DECIMAL (7,2) ==> ylin arvo 99 999.99 INTEGER kokonaisluku [-2 147 483648, 2 147 483647] SMALLINTEGER kokonaisluku NUMERIC Liukuluvut FLOAT [-32 768, 32 767] Liukuluku välillä [ 5,4*1079 7,2*1075] Hloid SMALLINT REAL DOUBLE PRECISION Aika DATE Päivämäärä tentti_pvm DATE TIME [time_precision] [WITH TIME ZONE] TIMESTAMP [time_precision] [WITH TIME ZONE] INTERVAL time_precision Kellonaika: tunti minuutti ja sekunti Kalenteriaika +kellonaika sekuntien tarkkuus, oletus 0 eli kokonaiset sekunnit aloitus_aika TIME

HAAGA-HELIA TIKO-05 16 (19) Null-arvoista Puuttuva arvo Tuntematon arvo 0 sisältyy kaikkiin arvojoukkoihin esitystavat ja käyttäytyminen eri operaatioissa vaihtelevat eri tiedonhallintajärjestelmissä lajittelu vertailut funktiot liitokset... toiminta testattava, jos haluaa välttää ennalta arvaamattomia tuloksia / seurauksia vältä mahdollisuuksien mukaan! jos et voi välttää, varaudu mahdollisuuksien mukaan

HAAGA-HELIA TIKO-05 17 (19) Sovellusalueen eheyssäännöt Lisäksi on mahdollista määritellä sovellusalueen sisäisiä eheyssääntöjä Esim. Asiakkaasta tulee VIP-asiakas kun hänen kuukausittaisten ostojensa yhteismäärä on 3 kk:n aikana ylittänyt 2000 Tietokantatuotteiden tuki sovellusalueen eheyssääntöjen määrittelylle vaihtelee Vaatii yleensä ohjelmointimahdollisuuden esim. Herätetoiminto (trigger), Proseduuri tms.

HAAGA-HELIA TIKO-05 18 (19) Käsittely Relaatiotietokannan käsittely perustuu relaatioalgebraan Perusoperaatiot tiedon hakuun: alkuperäinen suomennos arkiselitys Selection, Restriction Valinta, rajoitus Rivien valinta Projection Projektio Sarakkeiden valinta Union Unioni Useammasta taulusta tietoja omille riveilleen Intersection Leikkaus Useammasta taulusta yhteiset tiedot Set Difference Erotus Ensimmäisestä taulusta tiedot joita ei löydy toisesta taulusta Join Liitos Useammasta taulusta tietoja samoille riveille Cartesian product Karteesinen tulo, ristitulo Useammasta taulusta tietoja siten että tiedot yhdistetään kaikin mahdollisin tavoin Eksaktit kuvaukset operaatiosta löytyvät Connolly, Begg. Luku 4 Relaatiosanastosta www.cs.helsinki.fi/relaatiosanasto/ SQL-kielessä ko. toiminnot on toteutettu englannin kieltä muistuttavalla syntaksilla

HAAGA-HELIA TIKO-05 19 (19) Käsitteitä Avain (Key) Tietueen yksilöivä tieto, yksilön (tietojen) tunniste Relaatiotietokannassa attribuutti / pienin attribuuttijoukko, joka yksilöi relaation rivin Relaatiokaavio Tietokannan tietosisällön kuvaus (kaavio), jossa kohdetta kuvataan relaatioina ja niiden välisinä yhteyksinä relaatiotietomallin mukaisesti. Kuvaus on riippumaton toteutusratkaisusta. Relaatiokaava (Relation schema) Formaali tapa kuvata relaation rakenne R(a1, a2, an) Yksilön eheyssääntö Relaatiossa on oltava pääavain joka yksilöi jokaisen relaation rivin. Pääavain tai sen osa ei saa olla tyhjä Viite-eheyssääntö Viittaavan relaation viiteavaimen arvon on löydyttävä viitatun relaation pääavaimen arvojen joukosta Arvojoukkoeheyssääntö Attribuutin kaikkien arvojen on kuuluttava samaan arvojoukkoon