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



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

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

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

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokannan suunnittelusta Harri Laine 1

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2004 Tietokannan suunnittelusta. Harri Laine 1

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, k 2006 relaatioalgebra. Harri Laine 1

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

Tietokannan rakenteen suunnittelu

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

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

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

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

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

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

Relaatiomalli ja -tietokanta

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

2. Käsiteanalyysi ja relaatiomalli

Tietokannan suunnittelu

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Käsitteellinen mallintaminen

Matematiikan tukikurssi

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

CSE-A1200 Tietokannat

Matematiikan tukikurssi

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

Näkymät ja hakemistot

Johdatus diskreettiin matematiikkaan Harjoitus 7,

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

Discgolf scorekeeper - Fisbeegolf pistetilasto. Ville-Veikko Saari 12. tammikuuta 2016

Induktio kaavan pituuden suhteen

3. Käsiteanalyysi ja käsitekaavio

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Yhdiste, leikkaus, erotus ym.

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

YHTEYSSUHDE (assosiation)

Nimi: Henkilötunnus: {id} {+id}

Veto-visualisointityökalu

Opintopiiritehtävä 3: Verkkohuutokauppa

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Hae Opiskelija käyttöohje

monissa laskimissa luvun x käänteisluku saadaan näyttöön painamalla x - näppäintä.

HELIA 1 (20) Outi Virkki Tiedonhallinta

Relaatioalgebra. Kyselyt:

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

Tietokannat II -kurssin harjoitustyö

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

Kuntosaliharjoittelun kesto tunteina Kokonaishyöty Rajahyöty

CSE-A1200 Tietokannat

Matematiikan tukikurssi 3.4.

Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c.

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Normalisointi. Jouni Huotari & Ari Hovi. kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luku 5

SVOLI / MTV. Miesten telinevoimistelun tuomarikurssi. 2. taso, luokkapakollisten info

Lukion. Calculus. Polynomifunktiot. Paavo Jäppinen Alpo Kupiainen Matti Räsänen Otava PIKATESTIN JA KERTAUSKOKEIDEN TEHTÄVÄT RATKAISUINEEN

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

JOENSUUN SEUDUN HANKINTATOIMI KOMISSIOMALLI

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

Valokuituliittymä Pälkäneellä Huippunopea valokuituverkko nyt tulossa Pälkäneelle!

Moodle HOPS-työskentelyn tukena

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

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

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

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Taloustieteen perusteet 31A Mallivastaukset 3, viikko 4

Dynaaminen optimointi

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

2. Kirjoita sähköpostiosoitteesi sille varattuun kenttään ja paina Lähetä varmistusviesti -painiketta.

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Tietokannan suunnittelu

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

HAAGA-HELIA Heti-09 1 (27) ICT05 Tiedonhallinta ja Tietokannat O.Virkki

Luento 3 Tietokannan tietosisällön suunnittelu

MS-A Matriisilaskenta Laskuharjoitus 3

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

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

Tietokantakurssit / TKTL

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

HE 226/2008 vp. Esityksessä ehdotetaan muutettavaksi työttömyysturvalakia

Liitokset - haut useaan tauluun

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

5.1 Normalisoinnin tarkoitus 5.2 Funktionaalinen riippuvuus 5.3 Normaalimuodot. Luku 5. Normalisointi. ITKA204 kevät

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Transkriptio:

Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla voi olla odottamattomia sivuvaikutuksia.

Tietokantasuunnittelusta Esimerkki taulusta, joka ei käyttäydy hyvin: EMP_DEPT: E_no E_name E_bdate D_no D_name D_location 1 M.Seppä 1.3.59 3 Myynti Helsinki 2 D.Leivo 4.10.40 3 Myynti Helsinki 3 K.Koivu 30.1.66 4 Hallinto Lahti 4 B.Oja 2.5.65 4 Hallinto Lahti 5 O.Itä 10.2.55 6 Tuotanto Helsinki Avain: E_no Jos O.Itä poistetaan, häviää tieto tuotantoosastosta Toistettava jokaisen osaston tt:n kohdalla Jos Hallinto muuttaa Espooseen om muutettava useita rivejä

Tietokantasuunnittelusta Tietokannan suunnittelun vaiheita ovat tietosisällön kartoitus luokkakaaviona (Johdatus sovellussuunnitteluun) kartoittamalla attribuutit ja niiden väliset riippuvuudet loogisten rakenteiden suunnittelu ja teknisten rakenteiden suunnittelu. Loogisen rakenteen suunnittelun tavoite on sijoittaa yhteenkuuluvat tiedot samaan tauluun

Muunnos luokkakaaviosta relaatiokaavioon Järjestelmän määrittelyn yhteydessä järjestelmän tietosisältö voidaan määrittellä luokkakaavion avulla Luokkakaavio kuvaa tällöin kuvaa järjestelmän pysyväisluonteisia (persistent) tietoja - tietojen on säilyttävä ohjelman suorituskertojen välillä Luonteva paikka säilyttää olioiden tila on tietokanta: oliorakenteinen tietokanta (oliotietokanta) relaatiotietokanta

Muunnos luokkakaaviosta relaatiokaavioon relaatiotietokanta standardoitu SQL ja liittymät perinteisiin ohjelmointikieliin ei suoraa tukea olioiden välisille yhteyksille ei luokkahierarkiaa eikä periytymistä vain data ei toimintoja uusimmissa tkhj:ssä mukana oliopiirteitä edellyttää muunnosta oliorakenteista relaatiorakenteiksi

Muunnos luokkakaaviosta relaatiokaavioon Lähtökohtana normalisoitu luokkakaavio = tiettyjä sääntöjä noudattava kaavio Yhteydet näkyviä, ei attribuuteiksi piilotettuja Kukin asia esitetään vain kertaalleen Ei johdettavissa / pääteltävissä olevaa tietoja Yhteydet määritelty oikeiden osapuolten välillä

Yhteydet piilotettu Olioiden välinen kytkentä esitetään aina yhteytenä, sitä ei piiloteta ominaisuudeksi (attribuutiksi) Kurssi Opettajan_nimi Opettaja Nimi Kytkentä on piilotettuna kurssin attribuuttiin opettajan_nimi

Yhteyden piilotus Olioiden välinen kytkentä esitetään aina yhteytenä, sitä ei piiloteta ominaisuudeksi (attribuutiksi) Kurssi Opettajan_nimi Opettaja Nimi opetus Kurssi

Asiat esitetään vain kertaalleen Samaa asiaa ei pidä esittää sekä yhteytenä että ominaisuutena Tilaus Tilaajan_nimi 0..n tilaaja 1 Asiakas Nimi

Ei esitetä johdettavissa olevaa tietoa tulisi selvittää mitkä tiedot ovat perustietoja ja mitkä voidaan päätellä (laskea) muiden tietojen perusteella attribuutin arvo tai yhteyden olemassaolo voi olla pääteltävissä Kurssi nimi ilmoittautuneiden_lkm ilmoittautunut 0..n 0..n Opiskelija nimi. laskettavissa

Ei esitetä johdettavissa olevaa tietoa Kurssi 1..n Harjoitusryhmä 0..n kurssilla 1..n Opiskelija 0..n ryhmässä 1..n Kurssilla-yhteys on pääteltävissä, jos jokaisen kurssillaolijan on oltava jossain ryhmässä

Muunnoksen perussäännöt: Kutakin olioluokkaa vastaa samanniminen taulu Kullakin luokan yksiarvoisella attribuutilla on samanniminen vastinsarake luokkaa vastaavassa taulussa Luokan tunnistavia attribuutteja vastaavat sarakkeet kuuluvat luokkaa vastaavan taulun avaimeen

Luokkakaavio: Vippi oy 1 asiakas hetu {id} nimi osoite virkailija nro {id} nimi 0..* pantti kuittinro{id} tyyppi ikä arvo 1..* erä eräpvm {id} maksupvm summa 0..* 1..* arvioija 0..* 1 hyväksyjä 1 laina lainanro {id} summa 1..* maksusuunnitelma nro {+id} korko {id} 1..* {id}

Relaatiorakenteen ydin - jokaista luokkaa vastaa taulu asiakas hetu nimi osoite virkailija nro nimi pantti kuittinro tyyppi ikä arvo erä eräpvm maksupvm summa laina lainanro summa maksusuunnitema nro korko

Kokoelma-attribuutit Kutakin kokoelma-attribuuttia (moniarvoista) vastaa taulu, jonka sarakkeina ovat viiteavain kokoelmatyyppisen attribuutin sisältävää luokkaa vastaavaan tauluun, sarake attribuutin arvoa varten. Taulun kaikki sarakkeet kuuluvat avaimeen

Kokoelma-attribuutit Vippi oy:n esimerkissä ei ole kokoelmaattribuutteja esim: henkilö hetu (id) oppiarvo [ ] moniarvoinen henkilö hetu viiteavain oppiarvo hetu oppiarvo

Monen suhde moneen yhteydet Kutakin monen suhde moneen yhteyttä vastaa taulu Taulun nimi = yhteyden nimi Taulun sarakkeina ovat yhteyden osapuoliin osoittavat viiteavaimet. Taulun kaikki sarakkeet kuuluvat taulun pääavaimeen monen suhde moneen yhteys on yhteys, jossa kummankin osapuolen maksimiosallistumisrajoite on suurempi kuin 1.

Monen suhde moneen yhteydet virkailija nro (id) nimi 0..* 1..* arvioija pantti kuittinro (id) tyyppi ikä arvo

Monen suhde moneen yhteydet asiakas hetu nimi osoite virkailija nro nimi pantti kuittinro tyyppi ikä arvo arvioija kuittinro virkailija_nro laina lainanro summa maksusuunnitema nro korko erä eräpvm maksupvm summa

Yhden suhde moneen yhteydet Vaihtoehto 1: Lisää yhteyskumppaniin osoittava viiteavain sitä osapuolta vastaavaan tauluun, jolla on korkeintaan yksi kumppani Jos kookoonpanoyhteydessä kokoonpanon osien tunnistamiseen tarvitaan tieto kokonaisuudesta, niin lisätty viiteavain kuuluu taulun avaimeen. Tällaisessa tilanteessa ei ole muita vaihtoehtoja.

Yhden suhde moneen yhteydet Vaihtoehto 2: Toimi kuten monen suhde moneen yhteyksien kohdalla ja tee yhteyttä varten erillinen taulu Taulujen määrän minimoimiseksi vaihtoehtoa 1 tulisi suosia, ellei siitä seuraa epäedullisia viittaussyklejä taulujen välille.

Yhden suhde moneen yhteydet asiakas hetu (id) nimi osoite 1 virkailija nro (id) nimi 1..n 1 0..n arvioija pantti kuittinro (id) tyyppi ikä arvo hyväksyjä 1..n erä eräpvm (id*) maksupvm summa 0..n 0..n 1 1..n laina lainanro (id) summa 1..n maksusuunnitelma nro (id*) korko

asiakas hetu nimi osoite virkailija nro nimi pantti kuittinro tyyppi ikä arvo lainanro arvioija kuittinro virkailija_nro laina lainanro summa asiakas maksusuunnitelma lainanro nro korko hyväksyjä erä lainanro nro eräpvm maksupvm summa

Yhden suhde yhteen yhteydet Vaihtoehtoja: Lisää yhteyskumppaniin osoittava viiteavain yhteyden toista osapuolta vastaavaan tauluun ensisijaisesti sille, jolle yhteys on pakollinen jos yhteys on pakollinen molemmille, valitse kumpi tahansa Tee erillinen taulu, kuten monen suhde moneen tapauksessa. jos yhteys on molemmille osapuolille valinnainen

Yhden suhde yhteen yhteydet henkilö hetu (id) nimi 1 vaimo 0..1 naimisissa 0..1 aviomies 0..1 ajokortti ajokorttinro (id)... naimisissa vaimo aviomies henkilö hetu nimi ajokortti ajokorttinro hetu...

Yleistyshierarkia Vaihtoehto 1: Taulu sekä ala- että yläluokalle. Alaluokan tauluun sijoitetaan yläluokan tauluun osoittava viiteavain. Jos yläluokalla on käyttäjän määrittelemiä tunnistavia attribuutteja otetaan viiteavain alaluokan taulun avaimeksi. Jos yläluokan taululla ei ole käyttäjän määrittämää tunnistavaa attribuuttia, joudutaan sille luomaan keinotekoinen avain. Tätä ei oteta alaluokan taulun avaimeksi, jos alaluokalle on määritelty tunnistavia attribuutteja.

Yleistyshierarkia oik_henkilö omist. osake nippu (id) 0..* henkilö hetu (id) yritys rekno (id) pienyritys

Yleistyshierarkia käytetty keinotekoista avainta oik_henkilö oh_nro omist. osake rekno nippu henkilö hetu oh_nro yritys rekno oh_nro upotettu yläluokan avain pienyritys rekno

Yleistyshierarkia Vaihtoehto 2: Alaluokalle ei tehdä omaa taulua, vaan alaluokan tauluun loogisti kuuluvat sarakkeet upotetaan yläluokan tauluun. työntekijä hetu (id) nimi työntekijä hetu nimi alaisten_lukumäärä johtaja alaisten lukumäärä

Tietokantasuunnittelusta Relaatiomalliin liittyvässä suunnitteluteoriassa yhteenkuuluvuus määritellään riippuvuuksien avulla Keskeinen riippuvuus: funktionaalinen riippuvuus Attribuutti B on funktionaalisesti riippuva attribuutista A (A määrää funktionaalisesti B:n), jos ja vain jos kaikissa relaatiokaavion R ilmentymissä kuvaus A:n arvojoukolta B:n arvojoukolle on funktionaalinen.

Tietokantasuunnittelusta Kuvaus f:v(a)->v(b) on funktionaalinen, jos kaikissa relaatiokaavion R ilmentymissä jokainen A:n arvo kuvautuu yhdelle B:n arvolle eli, jos riveillä r ja s attribuutilla A on sama arvo (r.a=s.a), niin näillä riveillä täytyy myös B-attribuuteilla olla keskenään sama arvo (r.b=s.b). Funktionaalinen riippuvuus tarkoittaa sitä, että attribuutin B arvo on yksikäsitteisesti selvitettävissä kun tiedetään attribuutin A arvo. Selvittäminen voisi tapahtua kyselyllä select distinct B from R where A=a; (tuloksena olisi enintään yksi rivi)

Tietokantasuunnittelusta Funktionaalista riippuvuutta, jossa A määrää B:n merkitään A B. Attribuuttia A kutsutaan määrääjäksi. Yksittäisen attribuutin A tilalla voi olla myös attribuuttiyhdistelmä. Tavoitteena on kuitenkin löytää yhdistelmät, joissa on minimaalinen määrä attribuutteja, Jos A B, voidaan määrääjään lisätä mikä tahansa attribuutti x ja pätee Ax B.

Tietokantasuunnittelusta Tarkastellaan relaatiokaaviota Kurssilainen( Kurssikoodi, Hetu, OpiskelijaNimi, KurssiNimi, TehtavaLkm). Oletetaan että relaatio sisältää tietoja useista opiskelijoista ja useista kursseista ja kuvaa opiskelijoiden osallistumista kursseille.

Tietokantasuunnittelusta Hetu-->OpiskelijaNimi Yhtä henkilötunnusta kohden on vain yksi Opiskelijanimi Kurssikoodi KurssiNimi Yhtä kurssikoodia kohti on vain yksi kurssinimi Hetu, Kurssikoodi --> TehtäväLkm Yhtä henkilötunnus kurssikoodi yhdistelmää kohti on vain yksi tehtävälukumäärä = Henkilöllä on kurssikohtainen tehtävämäärä Yhtä henkilötunnusta kohti voi olla useita tehtävämääriä (opiskelija on monella kurssilla) Yhtä kurssikoodia kohti voi olla monta tehtävämäärää (kurssilla on monta opiskelijaa)

Tietokantasuunnittelusta Mitkä sarakkeet samaan relaatiokaavioon? Erilaisia kriteerejä Yhteenkuuluvuussääntönä, ns. Boyce-Codd normaalimuodon sääntö: relaatiokaavion R attribuutit kuuluvat yhteen, jos ja vain jos relaatiokaavioon R ei liity yhtään sellaista funktionaalista riippuvuutta, jossa määrääjä ei sisältäisi relaation avainta. Kurssilainen relaation avain on pari Kurssikoodi, Hetu => Kaikki attribuutit eivät BC-säännön mukaan kuulu yhteen koska Hetu-->OpiskelijaNimi ja Kurssikoodi KurssiNimi rikkovat BC-sääntöä

Tietokantasuunnittelusta Uudelleenjärjesteltävä relaatiokaavioiksi, joissa yhteenkuuluvuussäännöt ovat voimassa. päädytään relaatiokaavioihin Opiskelija(Hetu, OpiskelijaNimi) Kurssi(Kurssikoodi, KurssiNimi) Osallistuminen(Hetu, Kurssikoodi, TehtäväLkm).

Jako Boyce-Codd normaalimuotoon Miten jaetaan: Karsi riippuvuusjoukko minimaaliseksi poista johdettavissa olevat riippuvuudet Ryhmitä riippuvuudet yhteisen määrääjän (vasen puoli) perusteella. Muodosta jokaista ryhmää kohti oma relaatio Jos alkuperäisen kaavion yksikään avain ei sisälly muodostuneisiin relaatiokaavioihin tee sille oma kaavio Anna relaatiokaavioille nimet

Tietokantasuunnittelusta Tilauslomaketta analysoitaessa löydettiin seuraavat attribuutit: lomakenumero, tilaajan tunnus, tilaajan nimi, tilaajan osoite, tilaajan puhelinnumero, toimitusosoite, rivinumero, tavaran koodi, tavaran nimi, tilattu määrä, ja tilauspäivä.

Tietokantasuunnittelusta lomakenumero tilaajan tunnus (lomakkeella voidaan ilmoittaa vain yksi tilaaja) tilaajan tunnus tilaajan nimi (tunnus identifioi tilaajan, joten sen perusteella saamme selville kaikki tilaajaan liittyvät tiedot) tilaajan tunnus tilaajan osoite, tilaajan tunnus tilaajan puhelinnumero, lomakenumero toimitusosoite (lomakkeella voidaan tilata tavaroita vain yhteen paikkaan ja sama tilaaja voi tilata eri paikkoihin)

Tietokantasuunnittelusta tavaran koodi tavaran nimi (tavaran koodi on tavaran tunniste, jonka kautta päästään kaikkiin tavaran tietoihin) lomakenumero, rivinumero tavaran koodi (lomakkeen rivillä voi ilmoittaa yhden tilattavan tavaran koodin) lomakenumero, rivinumero tilattu määrä (lomakkeen rivillä voi ilmoittaa yhden tilattavan tavaran määrän) lomakenumero tilauspäivä

Tietokantasuunnittelusta Jako relaatioihin yhteisen määrääjän perusteella: X(tilaajan tunnus, tilaajan nimi, tilaajan osoite, tilaajan puhelinumero) Y(tavaran koodi, tavaran nimi) Z(lomakenumero,tilauspäivä,tilaajan_tunnus) T(lomakenumero, rivinumero, tavaran koodi, tilattu määrä)

Tietokantasuunnittelusta Jos kaavioille löytyy kuvaava nimi jako on onnistunut: tilaaja(tilaajan tunnus, tilaajan nimi, tilaajan osoite, tilaajan puhelinumero) tavara(tavaran koodi, tavaran nimi) tilaus(lomakenumero,tilauspäivä,tilaajan_tunnus) tilausrivi(lomakenumero, rivinumero, tavaran koodi, tilattu määrä)

Tietokantasuunnittelusta tilaaja tilaajan tunnus tilaajan nimi tilaajan osoite tilaajan puhelinumero tavara tavaran koodi tavaran nimi tilaus lomakenumero tilauspäivä tilaajan_tunnus tilausrivi lomakenumero rivinumero tavaran koodi tilattu määrä