TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI



Samankaltaiset tiedostot
TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (12) Outi Virkki Tiedonhallinta

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI

3. Taulujen määrittely ja muuttaminen

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

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Tietokantojen suunnittelu, relaatiokantojen perusteita

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

HELIA 1 (17) Outi Virkki Tiedonhallinta

SQL - STRUCTURED QUERY LANGUAGE

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

CSE-A1200 Tietokannat

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

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

2. Käsiteanalyysi ja relaatiomalli

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

Relaatiomalli ja -tietokanta

Tietokantakurssit / TKTL

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

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

HELIA 1 (14) Outi Virkki Tiedonhallinta

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

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

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Tietokannat II -kurssin harjoitustyö

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

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

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

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

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

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

TIETOKANTOJEN PERUSTEITA MARKKU SUNI

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

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

SELECT-lauseen perusmuoto

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

Visual Case 2. Miika Kasnio (C9767)

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

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

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

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

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

Lohdutus - tietokantadokumentti

HELIA 1 (15) Outi Virkki Tiedonhallinta

3. Käsiteanalyysi ja käsitekaavio

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

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

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

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

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

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

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

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

Pikaohje formaatin valmistamiseen

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

Muuttujien määrittely

Access-kyselyt. Luetteloinnin kehittämispäivä Mia Kujala

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Transkriptio:

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi

Id enimi snimi muuta 1 Aki Joki xxx 2 Esa Elo yyy Id katuos postios maa 1 Alikatu 20100 FI 2 Ylikatu 20880 FI Id tuotenro pvm kpl 1 11 010101 10 1 13 010101 12 2 11 010201 15 Tuotenro hinta nimike 11 100 metla 12 10 pesti 13 20 sevakko Muuan tietokanta - mahdollinen, mutta varoittava esimerkki - Huitaisten tehty ilman suunnitelmaa

Missä on se ero? Looginen tietokannan suunnittelu tuloksena looginen tietomalli ja sen kuvaukset taulujen kuvaukset riippumaton toteutuksen yksityiskohdista DBMS:n toiminnoista, sovellusohjelmista, ohjelmointikielistä pääkysymyksenä mitä (esitetään, kuvataan, talletetaan,... ) Fyysinen tietokannan suunnittelu pääkysymyksenä miten (talletus, organisointi, toimii,... ) toimitaan laitteiston ja ohjelmiston ehdoilla

Fyysisen tietokannan suunnittelun vaiheet 4. Käännä looginen tietomalli DBMS:lle sopivaksi 1. Suunnittele taulut 2. Suunnittele liiketoiminnalliset säännöt 5. Suunnittele fyysinen esitysmuoto 1. Analysoi tapahtumia 2. Valitse tiedostojen organisaatio 3. Valitse indeksit 6. Arvioi kontrolloidun redundanssin lisäämistä 1. Arvioi johdettua tietoa 2. Arvioi sarakkeiden kahdennusta tai taulujen liittämistä 7. Suunnittele turvallisuusmekanismit 1. Suunnittele käyttäjille näkymät 2. Suunnittele saantisäännöt 8. Valvo ja viritä toimivaa järjestelmää

Fyysisen tietokannan suunnittelun vaiheet - eli 4. Käännä looginen tietomalli DBMS:lle sopivaksi Suunnittelemme perustaulut ja niihin liittyvät eheyssäännöt valitun tietokantajärjestelmän mukaan 5. Suunnittele fyysinen esitysmuoto Valitsemme sopivan tiedosto-organisaation ja indeksit perustauluille 6. Arvioi kontrolloidun redundanssin lisäämistä Arvioimme mahdollisuuksia joustaa normalisointisäännöistä yleisen suorituskyvyn lisäämiseksi 7. Suunnittele turvallisuusmekanismit Suunnittelemme tietokannan turvalliseksi käyttää: tieto säilyy ja on vain niiden käytettävissä, joiden sitä kuuluukin käyttää 8. Valvo ja viritä toimivaa järjestelmää Jatkuvaa toimintaa tästä eteenpäin

4.1 Suunnittele taulut tietokantajärjestelmälle Tavoite: päättää miten loogisessa tietomallissa tunnistetut taulut esitetään valitussa tietokantajärjestelmässä

4.1 Suunnittele taulut tietokantajärjestelmälle

4.1 Suunnittele taulut tietokantajärjestelmälle Loogisen tietomallin perusteella tehdyssä tietohakemistossa on: taulun nimi sarakkeiden nimet pääavain, ehkä vierasavaimet ja muut avaimet viite-eheyssäännöt vierasavaimille sarakkeille arvoalue, tietotyyppi, pituus jne. sarakkeille mahdollinen oletusarvo sarakkeille tieto NULL-arvoista onko sarake johdettu ja jos on, miten

4.1 Suunnittele taulut tietokantajärjestelmälle Perustaulujen toteutus Tämä riippuu valitusta tietokantajärjestelmästä Toiset järjestelmät tarjoavat enemmän toimintoja Missä määrin eheyssääntöjä on kirjoitettava itse sovellusohjelmiin ja missä määrin järjestelmä hoitaa ne? Saantioikeudet ja rajoitukset?

4.1 Suunnittele taulut tietokantajärjestelmälle Esimerkkinä Branch-taulun määrittely ja luominen extenddd DBDL (Data Base Definition Language): domain Branch_Numbers fixed length character string length 4 domain Street_Names variable length character string maximum length 30 domain City_Names variabld length character string maximum length 20 domain State_Codes fixed length character string length 2 domain Zip_Codes fixed length character string length 5 domain Staff_Numbers fixed length character string length 5

4.1 Suunnittele taulut tietokantajärjestelmälle Esimerkkinä Branch-taulun määrittely ja luominen: branch( branchno Cranch_Numbers NOT NULL, street Street_Names NOT NULL, city City_Names NOT NULL, state State_Codes NOT NULL, zipcode Zip_Codes NOT NULL, mgrstaffno Staff_Numbers NOT NULL ) Primary Key branchno Alternate Key zipcode Foreign Key mgrstaffno References Staff(staffNo) ON UPDATE CASCADE ON DELETE NO ACTION

4.1 Suunnittele taulut tietokantajärjestelmälle Perustaulujen toteutus Esimerkkinä 1. Vuoden 1992 ISO SQL standardi (SQL2) 2. Microsoft Access

Perustaulujen toteutus ISO SQL standardi SQL2 CREATE DOMAIN Branch_Numbers AS CHAR(4) CREATE DOMAIN Street_Names AS VARCHAR(30) CREATE DOMAIN City_Names AS VARCHAR(20) CREATE DOMAIN State_Codes AS CHAR(2) CREATE DOMAIN Zip_Codes AS CHAR(5) CREATE DOMAIN Staff_Numbers AS CHAR(5) CHECK ( VALUE IN ( SELECT staffno FROM Staff ) CREATE TABLE branch( branchno Branch_Numbers NOT NULL, street Street_Names NOT NULL, city City_Names NOT NULL, state State_Codes NOT NULL, zipcode Zip_Codes NOT NULL, mgrstaffno Staff_Numbers NOT NULL ) PRIMARY KEY (branchno), FOREIGN KEY (mgrstaffno) REFERENCES Staff ON UPDATE CASCADE ON DELETE NO ACTION )

Perustaulujen toteutus ISO SQL standardi SQL2 eli: CREATE DOMAIN Branch_Numbers AS CHAR(4) CREATE DOMAIN Street_Names AS VARCHAR(30) CREATE DOMAIN City_Names AS VARCHAR(20) CREATE DOMAIN State_Codes AS CHAR(2) CREATE DOMAIN Zip_Codes AS CHAR(5) CREATE DOMAIN Staff_Numbers AS CHAR(5) Taulun sarakenimet ja arvoalueet ovat samat kuin edellä On kätevää antaa arvoalueille nimet, jolloin niitä voidaan muutella joustavammin

Perustaulujen toteutus ISO SQL standardi SQL2 CHECK ( VALUE IN ( SELECT staffno FROM Staff ) CREATE TABLE branch( branchno Branch_Numbers NOT NULL, street Street_Names NOT NULL, city City_Names NOT NULL, state State_Codes NOT NULL, zipcode Zip_Codes NOT NULL UNIQUE, mgrstaffno Staff_Numbers NOT NULL ) PRIMARY KEY (branchno), FOREIGN KEY (mgrstaffno) REFERENCES Staff ON UPDATE CASCADE ON DELETE NO ACTION ) Pääavain määritellään PRIMARY KEY-osion avulla SQL2 pakottaa automaagisesti tälle sarakkeelle yksikäsitteisyyden

Perustaulujen toteutus ISO SQL standardi SQL2 CHECK ( VALUE IN ( SELECT staffno FROM Staff ) CREATE TABLE branch( branchno Branch_Numbers NOT NULL, street Street_Names NOT NULL, city City_Names NOT NULL, state State_Codes NOT NULL, zipcode Zip_Codes NOT NULL UOIQUE, mgrstagfno Staff_Numbers NOT NULL ) PRIMARY KEY (branchno), FOREIGN KEY (mgrstaffno) REFERENCES Staff ON UPDATE CASCADE ON DELETE NO ACTION ) Vierasavain määritellään FOREIGN KEY-osion avulla, mihin on lisätty viite-eheyssäännöt

Perustaulujen toteutus ISO SQL standardi SQL2 CHECK ( VALUE IN ( SELECT staffno FROM Staff ) CREATE TABLE branch( branchno Branch_Numbers NOT NULL, street Street_Names NOT NULL, city City_Names NOT NULL, state State_Codes NOT NULL, zipcode Zip_Codes NOT NULL UNIQUE, mgrstaffno Staff_Numbers NOT NULL ) PRIMARY KEY (branchno), FOREIGN KEY (mgrstaffno) REFERENCES Staff ON UPDATE CASCADE ON DELETE NO ACTION ) Vaihtoehtoinen avain, zipcode määritellään epäsuorasti: NOT NULL-vaatimus takaa sille aina arvon UNIQUE vaatimus takaa, ettei kahdella rivillä ole samaa arvoa

Perustaulujen toteutus ISO SQL standardi SQL2 CHECK ( VALUE IN ( SELECT staffno FROM Staff ) CREATE TABLE branch( branchno Branch_Numbers NOT NULL, street Street_Names NOT NULL, city City_Names NOT NULL, state State_Codes NOT NULL, zipcode Zip_Codes NOT NULL UNIQUE, mgrstaffno Staff_Numbers NOT NULL ) PRIMARY KEY (branchno), FOREIGN KEY (mgrstaffno) REFERENCES Staff ON UPDATE CASCADE ON DELETE NO ACTION ) Vierasavain on määritelty (FOREIGN KEY) ja viite-eheyssääntö: Päivityksessä CASCADE: kun staffno saa uuden arvon, vastaavat arvot mgrstaffno-sarakkeella Branch-taulussa päivitetään vastaavasti (vyörytys) ON DELETE NO ACTION: riviä ei poisteta Staff-taulusta, jos vastaava henkilö on jonkin toimiston johtaja

Perustaulujen toteutus Microsoft Access 97 Microsoft Access 97:ssä voi määritellä pääavaimet oletusarvot NOT NULL-kentät (nimitys: required, vaadittu) Microsoft käyttää aina sanaa kenttä (field) eikä sarake Microsoftilla ei ole erityistä FOREIGN KEY-lauseketta, mutta vierasavaimia voi määritellä suhteiden avulla Tietotyypit poikkeavat hiukan SQL2-standardista Nämä seikat täytyy pitää mielessä käytettäessä Microsoft Accessia

Perustaulujen toteutus Microsoft Access 97 Microsoft Access tarjoaa neljä tapaa määritellä tyhjä taulu Käyttäen tietokantavelhoa (Database Wizard) luomaan yhtenä operaationa kaikki tietokannan taulut, lomakkeet ja raportit. Velho luo uuden tietokannan, mutta sitä ei voi käyttää lisäämään näitä asioita olemassaolevaan Käyttäen tauluvelhoa (Table Wizard) valitsemaan kentät tauluun valmiiksi määriteltyjen taulujen valikoimasta

Perustaulujen toteutus Microsoft Access 97 Microsoft Access tarjoaa neljä tapaa määritellä tyhjä taulu Syöttäen tietoja suoraan tyhjään tauluun (datasheet) kun tämä talletetaan, Access analysoi datan ja automaagisesti asettaa sopivan tietotyypin ja muodon joka kentälle Käyttäen suunnittelunäkymää (Design View) määritellä kaikki taulujen yksityiskohdata tyhjästä

Perustaulujen toteutus MS Access Suhteiden määrittely kahden taulun välillä Suhteet määritellään Relationships-ikkunassa Suhteen määrittelemiseksi esitetään ikkunassa taulut, joiden välille suhde määritellään ja sitten raahataan (drag) hiirellä vanhempi-taulun pääavain lapsitaulun vierasavain-attribuutin päälle/ drag and drop it s a drag

Perustaulujen toteutus MS Access Suhteiden määrittely kahden taulun välillä Yhdestä moneen suhde (1 : * ) luodaan vain, jos yksi kentistä on pääavain tai sille on yksikäsitteinen indeksi. Yhdestä yhteen suhde ( 1:1 ) luodaan vain, jos molemmat kentät ovat pääavaimia tai niillä on yksikäsitteinen indeksi. Suhdetta Manages ( 1:1 ) luotaessa täytyy varmistaa, että staffno-kenttä taulussa Staff on määritelty pääavaimeksi ja mgsstaffno-kentällä Branch-taulussa on ominaisuus indexed asetettu arvoon Yes (No Duplicates)

Perustaulujen toteutus MS Access Suhteiden määrittely kahden taulun välillä Access tarjoaa vain kaksi viite-eheystoimintoa päivityksille ja poistoille: NO ACTION ja CASCADE. Jos aikaisemmin on määritelty tarpeellisiksi muita toimintoja, on mietittävä, pitäisikö näitä määritelmiä muuttaa vai pitäisikö kyseiset toiminnot hoitaa sovellusohjelmissa.

Perustaulujen toteutus - kaikki välineet Dokumentoi perustaulujen rakenne Taulujen rakenne on syytä dokumentoida huolella. Sen lisäksi dokumentoidaan perustelut valitun suunnitelman valinnoille. Erityisesti tilanteissa, joissa on valittu yksi monista vaihtoehdoista miksi tähän päädyttiin

4.2. Suunnittele liiketoiminnalliset säännöt tietokantajärjestelmälle sopiviksi Tavoite Suunnitella tunnetut liiketoiminnalliset säännöt valitun tietokantajärjestelmän puitteiden mukaan

4.2. Suunnittele liiketoiminnalliset säännöt tietokantajärjestelmälle sopiviksi Taulujen päivityksiin saattaa liittyä liiketoiminnallisia rajoituksia reaalimaailman tilanteiden mukaan. Sellaisten sääntöjen suunnittelu siippuu valitusta tietokantajärjestelmästä, koska jotkut toteuttavat asioita, joita toiset eivät. Jos järjestelmä toteuttaa SQL2-standardia, ovat monet asiat varsin helppoja.

4.2. Suunnittele liiketoiminnalliset säännöt tietokantajärjestelmälle sopiviksi Esimerkki. StayHome videovuokraamo noudattaa liiketoiminnallista sääntöä, jonka mukaan jäsenellä saa kerralla olla vuokralla korkeintaan 10 videota. SQL2-järjestelmässä tämä toteutetaan Create Table-lauseen yhteydessä (taululle RentalAgreement) seuraavasti:

4.2. Suunnittele liiketoiminnalliset säännöt tietokantajärjestelmälle sopiviksi Esimerkki. CONSTRAINT member_not_renting_too_many CHECK ( NOT EXISTS (SELECT memcerno FROM rentalagreement GROUP BY memberno HAVING COUNT(*) >= 10 )) Joissakin järjestelmissä voidaan käyttää liipaisinta (trigger) vastaavien rajoitusten toteuttamiseen. Tämä liipaisin virittyy ennen kuin rivi lisätään tauluun ja jos se laukeaa, estyy päivitysoperaatio

She said she ll come, she didn t I mthe onein love, sheisn t There s no girl standing there And there s no-one to care And the trees are so bare On the Boulevard de la Madeleine The Moody Blues