TIETOKANNAT BY KMALINEN
Hallintojärjestelmä DBMS I/O operaatiot Tietokannan looginen rakenne Fyysinen tietokanta Tietomalli Tiedostot I/O operaatiot AmoJp / kmalinen
Tietokannan suunnittelun vaiheet Tietokannan looginen suunnittelu Loogiseen suunnitteluun kuuluu seuraavien määrittely: Taulut ja niiden kentät Pää- ja viite avaimet Taulujen yhteydet Datan eheys
Tietokannan suunnittelun vaiheet.. Looginen rakenne toteutetaan Taulujen luominen Pää- ja viiteavainten luominen Taulujen yhteyksien luominen Datan eheyden varmistaminen AmoJp / kmalinen
Tietokannan suunnittelun vaiheet… Sovellus kehitetään loppukäyttäjiä varten. AmoJp / kmalinen
Koko tietojenkäsittelyjärjestelmän käsitemalli Kohdealueen käsitemalli Kuva Käsitemalli on yksi peruslähtökohta tietojen määrityksessä AmoJp / kmalinen
KÄSITEMALLI TIETOTARVE KÄYTTÄJÄNÄKEMYS Laskun numero Asiakkaan numero TUOTE ASIAKAS KÄSITEMALLI TIETOTARVE 7860,00 LASKU Laskun numero Asiakkaan numero Asiakkaan lähiosoite Asiakkaan postitoimipaikka Asiakkaan postinumero Tuotteen numero Tuotenimi Hinta Alennuskoodi Eräpäivä Alennusprosentti LASKU *Laskun numero *Eräpäivä KÄYTTÄJÄNÄKEMYS PARAMETRI alennus - % ASIAKAS *Asiakasnumero Asiakkaan nimi Asiakkaan … … Alennuskoodi TUOTE *Tuotenumero *Tuotenimi hinta AmoJp / kmalinen
Käsitekaavio AmoJp / kmalinen
Relaatiotietokanta Ensimmäiset tietokantamallit (ennen relaatiotietokantoja) Hierarkkinen tietokantamalli Verkkotietokantamalli Relaatiotietokanta (nykyinen malli) AmoJp / kmalinen
Hierarkkinen tietokantamalli Tietokannan sisältämät suhteet kuvataan isä/lapsi -termeillä. Isätaulu voi liittyä moniin lapsitauluihin, mutta lapsitaululla voi olla vain yksi isätaulu. AmoJp / kmalinen
Hierarkkisen tietokantamallin edut ja haitat Mallin etuja: Tietoja voidaan hakea nopeasti. Viite-eheys on sisäänrakennettuna Mallin haittoja: Käyttäjän pitää tuntea tietokannan rakenne erittäin hyvin. Lapsitauluun ei voida tallentaa tietuetta, mikä ei ole linkitetty mihinkään isätaulun tietueeseen. AmoJp / kmalinen
Verkkotietokantamalli Luotiin korjaamaan eräitä hierarkkisen tietokantamallin ongelmia. Tietokannan sisältämät suhteet kuvataan joukkorakenteen avulla. AmoJp / kmalinen
Relaatiotietokanta (nykyinen malli) Tri Codd esitteli 1970 ensimmäistä kertaa relaatiotietokantamallin. (”Relational Model of Data for Large Shared Databanks” ) Malli auttoi ratkaisemaan monia ongelmia, kuten: ylimääräinen data heikko eheys AmoJp / kmalinen
Käyttötietokannat (sisältävät dynaamista dataa) Dynaaminen data = data muuttuu jatkuvasti Käytetään pääsääntöisesti, kun tietoa tarvitaan ja päivitetään päivittäin esim. inventaariotietokannat ja tilauskannat. AmoJp / kmalinen
Analyyttiset tietokannat (sisältävät staattista dataa) Staattinen data data ei koskaan muutu, tai muuttuu hyvin harvoin Staattista dataa käytetään ajasta riippuvien tietojen tallentamiseen. AmoJp / kmalinen
Terminologia Data Informaatio Tyhjä arvo (null) Taulu Tietokannassa olevat arvot ovat dataa, mutta se ei välttämättä kerro yksinään mitään. Informaatio Informaatio on dataa, joka on ymmärrettävässä muodossa. Tyhjä arvo (null) Arvon puutuessa tai se ollessa tuntematon sitä kutsutaan tyhjäksi arvoksi Taulu Taulu edustaa kohdetta esim. henkilöä ja sillä on monia ominaisuuksia. AmoJp / kmalinen
Terminologia … Tietue Näkymä Avaimet Tietue on erikenttien kokoelma. Näkymällä tarkoitetaan näennäistaulua Avaimet Avaimet ovat erikoiskenttiä, joilla on oma tarkoituksensa. Avaimen tyyppi ratkaisee sen tarkoituksen. AmoJp / kmalinen
Terminologia … Indeksi (ovat fyysisiä rakenteita) Yhteydet Indeksi tarkoittaa hakemistoa, joka parantaa tietojen käsittelyä Yhteydet Kahden taulun välillä olevaa liitosta kutsutaan yhteydeksi. AmoJp / kmalinen
Yhteystyypit (kardinaliteetti) Yhdestä - yhteen 1 1 Ostaa Asiakas Kauppa AmoJp / kmalinen
Yhteystyypit (kardinaliteetti) Yhdestä - moneen 1 m Ostaa Asiakas Kauppa AmoJp / kmalinen
Yhteystyypit (kardinaliteetti) Monesta - moneen Asiakas Kauppa Ostaa m m AmoJp / kmalinen
Datan yheys (database integrity) Datan yheys tarkoittaa datan yhdenmukaisuutta ja paikkansapitävyyttä. Datan yheyden varmistaminen AmoJp / kmalinen
Tietokantojen suunnittelu - mitä ja miksi Huonosti tai huolimattomasti suunnitellun tietokannan käyttäminen voi olla hankalaa. Pahimmassa tapauksessa tietokannasta saadaan virheellisiä tietoja. Tietokanta on yksi monimutkaisimmista ohjelmistoista. AmoJp / kmalinen
Tietokantojen suunnittelu - mitä ja miksi… Tietokantoja ei pidä lähteä toteuttamaan ilman riittävää tietotaitoa Yrityksen tarpeet pitää selvittää huolellisesti heti suunnittelun alussa. AmoJp / kmalinen
Suunnittelun erivaiheet Vaatimuksien Analysointivaihe Tarkastellaan yritystä ja toimintamalleja Haastellaan käyttäjiä ja johtoa nykyisistä ja tulevista järjestelmän tarpeista Selvitetään yrityksen yleiset tietotarpeet. AmoJp / kmalinen
Suunnittelun erivaiheet… Tehtäväselostuksen luominen Hyvä tehtäväselostus on lyhyt ja ytimekäs Nykyiseen tietokantaan tutustuminen Tietokantaa tarkasti analysoimalla saadaan tärkeätä tietoa Alustavan kenttälistan luominen AmoJp / kmalinen
Suunnittelun erivaiheet… Alustavan taululistan luominen Yhteyksien luominen Näkymät Eivät sisällä dataa AmoJp / kmalinen
Huom! muista viite-eheys Huom! yhteyslaji AmoJp / kmalinen Huom! muista viite-eheys
Datan muotoiluvaihe Muotoillaan itse tietokantarakenne. ER-kaaviot Seinätaulutekniikka Määritellään kentät ja liitetään ne oikeisiin tauluihin. AmoJp / kmalinen
AmoJp / kmalinen
Normalisointivaihe Ensimmäinen normaalimuoto (1NM) Relaation saamiseksi ensimmäiseen normaalimuotoon siitä poistetaan toistuvat ryhmät ja luodaan niistä omat relaatiot Toinen normaalimuoto (2NM) Jos jokaisen taulun avain koostuu vain yhdestä attribuutista, tietokanta käytännössä täyttää suoraan toisen normaalimuodon. AmoJp / kmalinen
Normalisointivaihe Kolmas normaalimuoto (3NM) Relaatio R on kolmannessa normaalimuodossa, jos ja vain jos se on toisessa normaalimuodossa ja jokainen relaation R attribuutti, joka ei ole avainattribuutti, on intransitiivisesti riippuvainen relaation R perusavaimesta (eli ei ole transitiivisesti riippuvainen) Transitiivinen riippuvuus määritellään: Jos a→b ja b→ c, niin a → c. AmoJp / kmalinen
Kenttämääritelmät Kentät ovat tietokannan perusta. Huonojen kenttämääritelmien korjaaminen vie tyypillisesti kolme kertaa enemmän aikaa kuin heti alussa kunnon kenttämääritelmien luominen. AmoJp / kmalinen
Kenttämääritelmät Tietotyyppi Aakkosnumeerinen – säilyttää mitä tahansa kirjainten, numeroiden, laajennettujen merkkien tai erikoismerkkien yhdistelmää. Numeerinen – säilyttää vain lukuja; sekä kokonaisluvut että reaaliluvut ovat sallittuja. (luvut joiden alussa on nollia eivät ole sallittu) Päiväys – säilyttää minkä tahansa todellisen päivämäärän. Kellonaika – säilyttää minkä tahansa todellisen kellonajan. AmoJp / kmalinen
Kenttämääritelmät Merkkien tuki Kirjaimet – kaikki aakkosiin kuuluvat kirjat, mukaan lukien kirjaimet, kuten ”é” ja ”ñ” Numerot – 0 … 9. Laajennetut merkit – kaikki merkit, jotka voidaan syöttää näppäimistöllä (paitsi kirjaimet ja numerot). Erikoismerkit – kaikki merkit, jotka pitää syöttää muuten kuin näppäimistön avulla. AmoJp / kmalinen
Kenttämääritelmät Pituus Määritellään kuinka monta merkkiä kenttään saa syöttää. Vaaditaanko arvo Määritellään onko kenttään pakko syöttää arvo AmoJp / kmalinen
Kenttämääritelmät Muokkaussäännöt Syöttö nyt, muokkaukset sallitaan. Syöttö myöhemmin, muokkaukset sallitaan. Syöttö nyt, muokkauksia ei sallita. Syöttö myöhemmin AmoJp / kmalinen
Kenttämääritelmät Sallittu arvoalue Yleinen – Tämä kenttä on kaikkien mahdollisten arvojen kokoelma. Eheydelle ominainen – arvokokoelma, joka perustuu kentän tehtävään tauluyhteyden luomisessa. Yritykselle ominainen – arvokokoelma, joka on tietyn liiketoimintavaatimuksen seuraus. AmoJp / kmalinen
Liikesäännöt Asettavat jonkinlaiset rajoitukset kenttämääritelmällä tai kahden taulun väliselle yhteydelle. tietokantaan suuntautuneet sovelluksiin suuntautuneet AmoJp / kmalinen
Dokumentointi Dokumentointi on tärkeä osa tietokannan suunnittelua ja toteutusta. Se kuitenkin unohdetaan helposti, koska se koetaan monesti turhaksi ja aikaa vieväksi. AmoJp / kmalinen
Toteutus järjestys Taulujen luominen Kenttien luominen Yhteyksien luominen Tietojen syöttö AmoJp / kmalinen