TIETOKANTOJEN PERUSTEITA MARKKU SUNI
TIETOKANTOJEN SUUNNITTELU MARKKU SUNI
Tarkastellaan taulujen suhteita toisiinsa tietokantojen suunnittelun alkeita
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 Tilauslista: enimi snimi katuos postios tuotenro nimike kpl yhthinta yhdistävinä tekijöinä: id ja tuotenro
Malliksi tietokanta videovuokraamon taulut Maanlaajuisessa videovuokraamossa on käynnistetty tietokannan suunnitteluprojekti, jota seuraa tietokannan käyttöönottoprojekti. Toimistoja on useita, kussakin henkilökuntaa Videoista täytyisi pitää kirjaa Videovuokraamon jäsenistä (kanta-asiakkaista) samoin Näyttelijöistä ja filmeistä myös, koska niiden perusteella kysytään Vuokrauksista tietenkin
Malliksi tietokanta videovuokraamon taulut Toimistoja on useita, kussakin henkilökuntaa. Talletettavia tietoja: Videoista täytyisi pitää kirjaa Videovuokraamon jäsenistä (kanta-asiakkaista) samoin Näyttelijöistä ja filmeistä myös, koska niiden perusteella kysytään Vuokrauksista tietenkin Toimistoista ja niiden henkilökunnasta Videoiden saatavuudesta
Malliksi tietokanta videovuokraamon taulut Toimistoista: osoitetiedot, johtajan tiedot,... Henkilökunnasta: nimi, asema, palkka, tieto toimistosta,... Toimistojen johtajista: tieto toimistosta
Malliksi tietokanta videovuokraamon taulut Videoista: nimi, luokittelu,hinta, luettelonumero, näyttelijä, ohjaaja, onko vuokralla, milloin, kuka vuokrasopimus Nämä vaatinevat lisää tarkennusta
Malliksi tietokanta videovuokraamon taulut Videoista: nimi, luokittelu,hinta, luettelonumero yksi taulu näyttelijä, ohjaaja - toinen taulu onko lainassa, milloin, kuka - kolmas taulu vuokrasopimus - neljäs taulu
Malliksi tietokanta videovuokraamon taulut Vuokraajista: kerhon jäsen kanta-asiakas milloin liittyi milloin vuokrasi ja mitä vuokrasi
Malliksi tietokanta videovuokraamon taulut Branch (branchno, street, city, state, zipcode, mgrstaffno) Staff (staffno, name, position, salary, branchno) Video (catalogno, title, category, dailyrental, price, directorno) Director (directorno, directorname) Actor (actorno, actorname) Role (actorno, catalogno, character) Member (memberno, fname, lname, address) Registration (branchno, dateout, datereturn, memberno, videono) RentalAgreement (rentalno, dateout, datereturn, memberno, videono) VideoForRent (videono, available, catalogno, branchno)
Toimistotaulu branchno, street, city, state, zipcode, mgrstaffno B001 8 Jefferson Way Portland OR 97201 S1500 B002 City Center Plaza Seattle WA 98122 S0010 B003 14 8th Avenue New York NY 10012 S0415 B004 16 14th Avenue Seattle WA 98128 S2250
Henkilöstötaulu staffno, name, position, salary, branchno S1500 Tom Daniels Manager 46000 B001 S0003 Sally Adams Assistant 30000 B001 S0010 Mary Martinez Manager 50000 B002 S3250 Robert Chin Supervisor 32000 B002 S2250 Sally Stern Manager 48000 B004 S0415 Art Peters Manager 41000 B003
Videotaulu catalogno, title, category, dailyrental, price, directorno 207132 Tomorrow Never Dies Action 5.00 21.99 D1001 902355 Primary Colors Comedy 4.50 14.50 D7834 330553 Face/Off Thriller 5.00 31.99 D4576 782231 101 Dalmatians Children 4.00 18.50 D0078 445624 The Rock Action 4.00 29.99 D5743 634817 independence Day Sci-Fi 4.50 32.99 D3765
Ohjaajataulu - Näyttelijätaulu directorno, directorname actorno, actorname D1001 Roger Spottiswoode D7824 Mike Nichols D4576 John Woo D0078 Stephen Herek D5743 Michael Bay D3765 Roland Emmerick A1001 Pierce Brosnan A3006 John Travolta A2019 Nicolas Cage A7525 Will Smith A4343 Glenn Close
Roolitaulu actorno, catalogno, character A1001 207231 James Bond A3006 330553 Sean Archer A3006 902355 Jack Stranton A2019 330553 Castor Troy A2019 445624 Stanley Goodspeed A7525 634817 Captain Steve Hiller A4343 781132 Cruella De Vil
Jäsentaulu memberno, fname, lname, address M250178 Bob Adams 57 11th Avenue, Seattle, WA, 98105 M166884 Art Peters 89 Redmond Rd, Portland,OR, 97117 M115656 Serena Parker 23 W.Capital Way, Portland,OR, 97201
Liittymistaulu - Registering Branch No Member Registering Staff Date Joined B001 M115656 S0003 1999-05-12 B001 M166884 S0003 1999-09-04 B002 M250178 S3250 1999-07-01 B002 M284354 S3250 1998-10-09
Vuokrasopimustaulu Rental No Date Out Date Return Member No Video No R488895 1999-11-11 1999-11-12 M115656 199004 R488896 1999-11-11 1999-11-13 M115656 245456 R488897 1999-11-14 1999-11-16 M115656 178643 R488898 1999-11-11 1999-11-13 M115656 243431 R488899 1999-11-12 1999-11-14 M115656 245457 R668189 2000-02-05 2000-02-07 M284354 178643 R668256 2000-02-05 2000-02-07 M284354 199004 R753461 2000-02-04 2000-02-06 M284354 245456 R753462 2000-02-04 2000-02-06 M284354 243431
Vuokravideotaulu Video No Available Catalog No Branch No 178643 Ei 634817 B001 199004 Kyllä 207132 B001 200900 Kyllä 330553 B002 210087 Kyllä 902355 B002 243431 Kyllä 634817 B002 245456 Kyllä 207132 B002 245457 Kyllä 207132 B002 317411 Kyllä 781132 B003
Tietokannan suunnittelussa On olemassa järjestelmällisiä suunnittelutapoja ja malleja Eivät aina käytössä Mahdollisia seurauksia: tietokantaprojektin vaatima aika ja resurssit aliarvioidaan tietokannat huonosti suunniteltuja eivät täytä sovellusten vaatimuksia dokumentointi on heikkoa ylläpito on vaikeaa
Tietomalli Malli on kuvaus todellisen maailman jostakin kohteesta Keskitytään olennaisiin piirteisiin ja ohitetaan epäolennaiset kyseisen tilanteen kannalta Tietomalli (data model) esittää kohteenaan olevaa organisaatiota tai sen osaa tiedon suhteen
Tietomalli Rakenneosa (structural part) säännöt, jotka määrittävät tietokannan rakenteen käsittelyosa (manipulative part) tiedolle sallitut operaatiot (saanti, päivitys, tietokannan rakenteen muutos) eheyssäännöt (integrity rules) Tietomallin tarkoitus on kuvata tiedot ja tehdä ne ymmärrettäviksi. Jos tämä onnistuu, sitä voidaan käyttää tietokannan suunnittelun pohjana
Eheys Yksikön eheys (entity integrity) Koska pääavain tunnistaa rivin yksikäsitteisesti, ei sillä saa olla arvoa NULL Viite-eheys (referential integrity) Jos taulussa on toiseen tauluun viittaava avain (foreign key) sille ei saa antaa arvoa, ellei toisessa taulussa ole vastaavaa pääavainta sille voi antaa arvon NULL esim. tulee uusi henkilö, jota ei ole vielä sijoitettu toimistoon
Eheys Liiketoiminnalliset säännöt (business rules) Muita sääntöjä, joita liiketoiminta asettaa esim. velan tai tilisaldon kokorajoitus jäsen voi vuokrata korkeintaan 10 videota kerralla
Informaatiosysteemi resurssit, jotka mahdollistavat tiedon / informaation keruun hallinnan valvonnan jakamisen koko organisaatiossa. Informaatiosysteemi on laaja ja hiukan abstrakti kokonaisuus. Se koostuu kaikenlaisesta tiedosta.
Välihuomautus: suomentajan vaikeuksia To plan - suunnitella A plan - suunnitelma Planning - suunnittelu To Design - suunnitella (myös muotoilla) A Design - suunnittelu, suunnitelma Designing - suunnittelu, muotoilu Miten siis erotetaan Database Planning Database Design
Database planning System definition Requirements collection and analysis DBMS Selection Logical Design Application Physical Design Design Prototyping Implementation Data Conversion and Loading Testing Operational Maintenance
Tietokannan suunnittelu Systeemin määrittely Vaatimusten keruu ja analyysi DBMS Valinta Looginen suunnittelu Sovellusten Fyysinen suunnittelu suunnittelu Protoilu Implementointi Datan konversio ja Lataaminen Testaus Operatiivinen ylläpito
Database Planning tietokannan suunnittelu ne johdon toiminnat, joiden seurauksena tietokantasovelluksen toteuttaminen tapahtuu tehokkaasti Tietokantaprojektin alkuna on sovelluksen tavoitteiden asettaminen (mission statement, mission objectives) Määritellään uuden tietokantasovelluksen tai järjestelmän tavoitteet, toiminnot, joita se tukee
Database Planning tietokannan suunnittelu Tietokantaprojektin aluksi määritellään sovelluksen tavoitteet Yleensä tietokanta muodostaa osan yrityksen informaatiosysteemistä ja siksi sen täytyy sopia yrityksen informaatiostrategiaan
Database Planning tietokannan suunnittelu Tässä vaiheessa voidaan myös kehittää standardeja tiedon keruuseen muodon määrittelyyn dokumentointiin (mitä ja miten) suunnittelutapoihin ja menetelmiin tiedon suojaukseen Siinä on aikamoinen työ, mutta yleensä se kannattaa
Database Planning tietokannan suunnittelu Standardit ovat työläitä suunnitella laatia kehittää dokumentoida ylläpitää. Niiden käyttöönotto ja käyttö on kovan työn takana
System Definition systeemin määrittely Ennen varsinaista järjestelmän suunnittelua on syytä tarkastella luotavan systeemin laajuutta ja rajoja mikä kuuluu tähän järjestelmään mikä ei kuulu tähän järjestelmään miten uusi systeemi suhtautuu jo olemassa oleviin mihin ja millaiset liittymät tarvitaan
System Definition systeemin määrittely esimerkki:
System Definition systeemin määrittely käyttäjien näkymät (User Views) Eri käyttäjillä on erilaisia tarpeita ja näkymiä tietokantaan Käyttäjä tarkoittaa henkilöä tai toimintoa työtehtävä tai liiketoiminnallinen alue näkymä voisi myös olla näkökulma Käyttäjien näkymien avulla voidaan helpottaa monimutkaisen tietokannan suunnittelua purkamalla se hallittaviin osiin
System Definition systeemin määrittely käyttäjien näkymät (User Views) Käyttäjän näkymä määrittää mitä tietoa tietokannan on pidettävä tallessa millaisia tapahtumia (toimintoja) pitää käsitellä Toisin sanoen: mitä käyttäjä tiedolle tekee ja mille tiedolle
System Definition systeemin määrittely käyttäjien näkymät (User Views) Tietokanta ja näkymät 1 2 6 3 4 5
Requirements Collection and Analysis vaatimusten keruu ja analyysi Kerätään tietoa joka käyttäjänäkymästä työtehtävä tai liiketoiminnallinen alue: kuvaus käytetystä tai muodostetusta tiedosta miten käyttö tai muodostaminen tapahtuu muut toimintaan ja tietoon kohdistuvat vaatimukset Analysoidaan näitä vaatimusten selvittämiseksi eli sovellukselle tarvittavien ominaisuuksien selvittämiseksi
Requirements Collection and Analysis vaatimusten keruu ja analyysi Miten ongelma tai tarve ilmaistaan ei aina kerro kaikkia: Kun eres joskus joku jotta, mukku ei ikän kukka mittä ku kaik aiv vaa. Mikä siis onkaan ongelma?
Requirements Collection and Analysis vaatimusten keruu ja analyysi Monen käyttäjänäkymän kyseen ollen on niitä jotenkin yhdistettävä, että saadaan yhteiset vaatimukset. keskitetty lähestymistapa näkymien yhdistäminen näiden yhdistelmä
Requirements Collection and Analysis vaatimusten keruu ja analyysi Keskitetty lähestymistapa Kerätään erilaiset käyttäjänäkemykset yhteen näkymään Muodostetaan tästä globaali looginen tietomalli esittää kokonaisuutta - koko organisaatiota Usein suosittu tapa milloin käyttäjänäkymissä on paljon päällekkäisyyttä tietokantasovellus ei ole kovin monimutkainen
Keskitetty lähestymis tapa
Requirements Collection and Analysis vaatimusten keruu ja analyysi Näkymien yhdistäminen Kunkin näkymän vaatimukset jätetään erilleen Luodaan kutakin näkymää vastaava tietomalli lokaalinen looginen tietomalli (paikallinen) Liitetään nämä tietomallit myöhemmin yhteen Suosittu tapa milloin käyttäjänäkymät ovat hyvin erilaisia tietokantasovellus on monimutkainen saadaan työ jaettua käsiteltäviin osiin
Database Design tietokannan suunnittelu Näkymien yhdistäminen Kunkin näkymän vaatimukset jätetään erilleen Luodaan kutakin näkymää vastaava tietomalli lokaalinen looginen tietomalli (paikallinen) Liitetään nämä tietomallit myöhemmin yhteen Suosittu tapa milloin käyttäjänäkymät ovat hyvin erilaisia tietokantasovellus on monimutkainen saadaan työ jaettua käsiteltäviin osiin
Informaatiosysteemin elinkaari Database Design tietokannan suunnittelu
Database Design tietokannan suunnittelu Kaksi pääosaa Looginen suunnittelu Yritetään tunnistaa ja määritellä (objects) kohteet, oliot, alkiot, tietoalkiot, joita tietokannassa tarvitaan Määritellään näiden väliset suhteet Fyysinen suunnittelu Päätetään, miten looginen suunnitelma toteutetaan tauluina
Application Design sovellusten suunnittelu Sovellusten suunnittelua ei voi saada valmiiksi ennen kuin tietokanta on suunniteltu Tietokannan täytyy tukea sovelluksia Näiden kahden suunnittelun lajin välillä täytyy kulkea informaatiota. Kaiken vaatimusten yhteydessä esiintyneen toiminnallisuuden tulee esiintyä sovelluksissa.
Application Design sovellusten suunnittelu Toiminnallisuus on tapahtumissa (transaction) Että käyttäjät voisivat toimia joustavasti ja tehokkaasti, on käyttöliittymän (user interface) oltava hyvä, selkeä ja toimiva Suunnitellaan siis näitä osin yhtä aikaa.
Transaction Design tapahtumien suunnittelu Tapahtumat esittävät tosimaailman tilanteita esim. uuden jäsenen rekisteröinti Näiden seurauksena tietokannan tila muuttuu tietosisältö yleensä muuttuu: lisäys poisto päivitys
Transaction Design tapahtumien suunnittelu Tapahtumien suunnittelun yhteydessä dokumentoidaan tiedot, joita tapahtuma käsittelee toiminnalliset ominaisuudet (mitä se tekee) tapahtuman tulostus tärkeys käyttäjille oletettu käyttötaajuus muut vaatimukset tehokkuus (vasteaika, muistitarve tms) tietoturvavaatimukset
User Interface Design käyttöliittymän suunnittelu Käyttöliittymän tulee olla selkeä, ymmärrettävä ja looginen Järkevä otsikko ymmärrettävät ohjeet Looginen kenttien ryhmittely ja järjestys visuaalisesti miellyttävä lomakkeen ulkoasu tutut otsakkeet kentillä konsistentti (yhtäläinen) ulkoasua terminologia: nimityskäytäntö ja lyhenteet värien käyttö lomakkeen osien koristeet
User Interface Design käyttöliittymän suunnittelu Käyttöliittymän tulee olla selkeä, ymmärrettävä ja looginen Tiedon syöttökenttien selkeä merkintä: rajat ja tilaa miellyttävät kursorin liikkeet virheen korjausmahdollisuudet kentissä kirjaimille/numeroille ja koko kentälle Kelpaamattomille arvoille selkeät virheilmoitukset Valinnaiset kentät merkitty selvästi Selittävät tekstit kentille Päätössignaali (milloin tuli valmista)
Prototyping protoilu Prototyyppi on toimiva malli, jolla ei ole lopullisen systeemin täyttä toiminnallisuutta. Prototyyppi on melko halpa ja nopea rakentaa. Sen avulla voidaan kokeilla systeemin ulkoasua, loogisuutta, toimintojen jaksottelua jne. Näin saadaan vaatimukset tarkennettua ennen lopullisen rakenteen toteutusta
Prototyping protoilu Requirements prototyping vaatimusten prototyyppi prototyypin käyttö vaatimusten tarkentamiseen kun vaatimukset ovat selvät, proto hylätään Evolutionary prototyping kehittävä protoilu kuin yllä, mutta prototyyppiä kehitetään koko ajan ei hävitetä protosta vähitellen muodostuu lopullinen toimiva systeemi
Data conversion and loading tiedon konversio ja lataus Tätä tarvitaan milloin uusi tietokanta kokonaan syrjäyttää entisen tai entistä ei ole Yleensä hoidetaan apuohjelmilla Joskus voidaan konvertoida vanhan systeemin ohjelmat käyttämään uutta tietokantaa
Testing testaus Ennen käyttöönottoa uusi tietokantasovellus on testattava perusteellisesti Käyttäjä on paras testaaja käyttö on paras testi Tämä on totta. Käyttö on myös kallein ja turmiollisin testi
Testing testaus Testaus on huolella suunniteltava mukaan. Sitä tehdään koko kehitysprosessin aikana. Tarvitaan testausstrategia Testaus osoittaa virheiden mukanaolon ei niiden poissaoloa Virheiden löytyminen hävittää luottamuksen systeemiin Paras tapa luoda luottamus systeemiin on yrittää hävittää se
Testing testaus Mitä aikaisemmin virheet löydetään, sitä helpompaa nopeampaa halvempaa niiden korjaus on. Testauksen aikana kerätyt tiedot systeemin toiminnasta on talletettava. Ne osoittavat systeemin laatua. Tulevien käyttäjien tulisi olla mukana testauksessa alusta asti.
Testing testaus Mitä testataan määritykset vaatimukset dokumentit mallit ohjelmat käyttöliittymät Siis: kaikki, mitä tässä projektissa on ihminen käsitellyt.
Operational Maintenance operatiivinen ylläpito Tämä täytyy suunnitella ennen systeemin käyttöönottoa Tietokannan toiminnan ja suorituskyvyn valvonta suorituskyvyn laskiessa alle rajan uudelleen organisoidaan viritetään Sovellusten ylläpito ja kehitys virheiden korjaus uusien piirteiden lisääminen
He asked me how many Jobs I had before He nearly had a heart-attack When I answered: Four. Four jobs in twenty years, oh this we can t agree. We only take men Who work for us until they die. Donovan