TIETOKANTOJEN PERUSTEET MARKKU SUNI
Tarkastellaan tietokantojen kuvaustapoja taulujen suhteita toisiinsa tietokantojen suunnittelun alkeita tietokantojen kuvaustapoja
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
Kysymys kuuluu: Onko tietokannan kuvauksessa standardeja? Kyllä, niistä riittää jokaiselle omansa. Entity-Relationship-malli (ER), on erilaisia notaatioita Chen notaatio: suorakaiteet kuvaavat yksiköitä, vinoneliöt suhteita, viivat yhdistävät näitä Crow s Feet notaatio suorakaiteet ja viivat, variksen jalka viivan päässä kuvaa suhteita UML-kieli: Unified Modeling Language oliosuuntautunut kuvaustapa
Kysymys kuuluu: Onko tietokannan kuvauksessa standardeja? UML-kieli: Unified Modeling Language oliosuuntautunut kuvaustapa yhdistää kolme oliosuuntautuneen ohjelmoinnin elementtiä Rumbaughin OMT mallinnus Boochin Object Oriented Analysis and Design Jacobson sobjectory
Tietokantaympäristö: SOVELLUS NÄKYMÄ
Näkymistä (View) Lisää turvallisuutta: voidaan jättää pois rivejä tai sarakkeita kullekin käyttäjälle tai sovellukselle omansa Tarjoaa mahdollisuuden mukailla tietokantaa yhdelle käyttäjälle/sovellukselle sarakkeet toisennimiset kuin toiselle
Näkymistä (View) Tarjoaa muuttumattoman tietokannan vaikka tietokantaa muutetaankin sarakkeita lisätään/poistetaan suhteita muutetaan tauluja ositetaan, uudelleen nimetään Ei välttämättä muutu, vaikka taulut muuttuisivatkin elleivät näkymän nimeämät sarakkeet poistu Lisää tiedon riippumattomuutta
Relaatiomalli Malli on kuvaus reaalimaailman kohteista ja ilmiöistä ja niiden suhteista. Tietomalli kuvaa tietojen tasolla jotain organisaatiota. Relaatiomallin keskeinen käsite on relaatio, jota fyysisesti vastaa taulu. Terminologia on otettu matematiikasta lähinnä joukko-opista ja predikaattilogiikasta
Relaatioista Relaatiot säilyttävät tietokannassa talletettavan informaation. Relaatiota esittää taulu rivit vastaavat tietueita (tiedoston) sarakkeet vastaavat attribuutteja attribuuttien järjestyksellä ei ole vaikutusta relaatioon Jokainen attribuutti kuuluu arvoalueeseen (domain) Arvoalue sisältää arvot, joita attribuutti voi saada Näin voidaan määritellä, mitä arvoja sarakkeella voi olla Relaatiotietokanta koostuu normalisoiduista tauluista
Relaatiotauluista Taululla on tietokannassa yksikäsitteinen nimi Kullakin taulun solulla on tasan yksi arvo Tämäon ensimmäinen normaalimuoto Jokaisella sarakkeella on yksikäsitteinen nimi Sarakkeen kaikki arvot kuuluvat samaan arvoalueeseen Sarakkeiden järjestyksellä ei ole merkitystä Kukin rivi on yksikäsitteinen ei ole kaksoisrivejä Rivien järjestyksellä ei ole merkitystä Teoriassa, käytännössä haku voi nopeutua
Relaatioavaimista Taulun kukin rivi on yksikäsitteinen ei ole kaksoisrivejä Rivit voidaan tunnistaa sarakkeen tai sarakkeiden yhdistelmän arvojen perusteella relaatioavain (relational key) Superkey = yksikäsitteisesti rivit tunnistava sarakejoukko Saattaa sisältää lisäsarakkeita
Relaatioavaimista Taulun kukin rivi on yksikäsitteinen ei ole kaksoisrivejä Rivit voidaan tunnistaa sarakkeen tai sarakkeiden yhdistelmän arvojen perusteella relaatioavain (relational key) Superkey = yksikäsitteisesti rivit tunnistava sarakejoukko Saattaa sisältää lisäsarakkeita Haetaan minimaalinen tällainen avain Ehdokasavain (candidate key) täyttää ominaisuudet Yksikäsitteisyys (uniqueness) ehdokasavaimen arvot tunnistavat kunkin rivin Irreducibility: ehdokasavaimen mikään alijoukko ei täytä yo. vaatimusta
Relaatioavaimista Taulun kukin rivi on yksikäsitteinen ei ole kaksoisrivejä Lewis, C.S. Paholaisen kirjeopisto xxxx Linna, Väinö Tuntematon sotilas xxyy Linna, Väinö Tuntematon sotilas xxyy
Relaatioavaimista Taulun kukin rivi on yksikäsitteinen ei ole kaksoisrivejä Lewis, C.S. Paholaisen kirjeopisto xxxx Linna, Väinö Tuntematon sotilas xxyy Linna, Väinö Tuntematon sotilas xxyy Ei näin, vaan Lewis, C.S. Paholaisen kirjeopisto 1 xxxx Linna, Väinö Tuntematon sotilas 2 xxyy
Relaatioavaimista Taulussa voi olla useita ehdokasavaimia Avain, johon kuuluu useita sarakkeita on yhdistetty avain, yhdistelmäavain (composite key) Asiakastunnus Yritys Toimipaikka ALFKI Alfreds Futterkiste Berliini ANATR Ana Trujillo Emparedados México D.F. ANTON Antonio Moreno Taquería México D.F. AROUT Around the Horn Lontoo BERGS Berglunds snabbköp Luleå BLAUS Blauer See Delikatessen Mannheim BLONP Blondel père et fils Strasbourg...
Yhdistetty avain Vakuutussopimus sopimusnumero Vakuutusturva (kasko, liikenne, tms) sopimusnumero, turvanumero Vakuutuskausi (tietty vuosi, tms.) sopimusnumero, turvanumero, kauden nro Erä sopimusnro, turvanro, kauden nro, erän nro
Relaatioavaimista Taulussa voi olla useita ehdokasavaimia Avain, johon kuuluu useita sarakkeita on yhdistetty avain, yhdistelmäavain (composite key) Avain voi olla itse tieto (esim. nimi) siitä johdettu (esim. SOTU) täysin tiedosta riippumaton (esim. numero 1,2,3,...) Avaimen kullakin muodostustavalla on etunsa ja haittansa
Havaimista Hierarkinen tunnus on hyvä luokitteluun esim. kirjojen luokittelukoodi (Dewey, Decimal, LC) Tällöin ei yksikäsitteisyyttä tarvita Vaikeudet tulevat yksikäsitteisyyden kohdalla Kompromissi: hierarkiaa ja yksikäsitteisyys
Avaimista: Autojen valmistusnumerot 80-luvun alussa: Pitkä jono numeroita ja kirjaimia: <maa><yhtiö><tunniste><numero> Jos Yhdysvaltoihin perustetaan uusi autotehdas, toimii Jos Daimler (Saksa) ostaa Chryslerin (USA), mitä sitten?
Avaimista: Kirjojen tiedot talletetaan tietokantaan. Avaimena kirjailijan nimen alku ja julkaisuvuosi SUNI02 Mitäs, kun SUNI kirjoittaa toisen kirjan samana vuonna? Mitäs, kun julkaistaan kirja kova- ja pehmeäkantisena? SUNI02K, SUNI02P?? Mitäs, kun tehdään myös lyhennetty/kuvitettu painos Mitäs kun käännetään ruotsiksi/saksaksi,...
Relaatioavaimista Esimerkki: asiakastaulu: Asiakastunnus Yritys Toimipaikka ALFKI Alfreds Futterkiste Berliini ANATR Ana Trujillo Emparedados México D.F. ANTON Antonio Moreno Taquería México D.F. AROUT Around the Horn Lontoo BERGS Berglunds snabbköp Luleå BLAUS Blauer See Delikatessen Mannheim BLONP Blondel père et fils Strasbourg...
Avaimia ja taas avaimia Videovuokraamon tietokannasta: Näyttelijä luettelonro henkilö A1002 207132 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 Mikäs otetaan avaimeksi?
Avaimia ja taas avaimia Videovuokraamon tietokannasta: Toimisto Tstonro kaupunki valtio ZIP johtaja B001 Portland OR 97201 S1500 B002 Seattle WA 98122 S0010 B003 New York NY 10012 S0415 B004 Seattle WA 98128 S2250 Henkilösto Henknro Nimi asema toimisto S1500 Tom Daniels Manager B001 S0003 Sally Adams Assistant B001 S0010 Mary Martinez Manager B002 S2250 Sally Stern Manager B004 S0415 Art Peters Manager B003
Avaimista: Äskeinen videovuokraamo antoi juoksevan numeron ja yhden kirjaimen alkuun A = Actor B = Branch S = Staff Tarvitaanko kyseistä kirjainta? Onko tarve vain mielipidekysymys? Näin saadaan avain alkamaan kirjaimella Näin kerrotaan, mistä numerosta on kysymys
Nyrkkisääntö avaimista: Paras avain ei sisällä mitään informaatiota on vain tunniste Jos on tarpeen, voidaan lisätä jotain informaatiota tämä informaatio ei saa muuttua avaimen elinaikana informaatio avuksi vain karkeassa luokittelussa Esim. vakuutussopimus: xxxnnnnnnn xxx = vakuutuslaji nnnnnnn = juokseva numero
OSIO 2: NORMALISOINTIA
Tietokannan taulut voivat olla eri tasoilla Sopimus kohde vakuutus turva kausi erä versio Vakuutussopimus Moottoriajoneuvo Vakuutuslaji turva (hirvi, hinaus, ) vakuutuskausi maksuerä versio
Tietokannan taulut voivat olla eri tasoilla Sopimus kohde vakuutus turva kausi erä versio Meklari Vakuutussopimus sopimusnumero Moottoriajoneuvo sopno,rekno Vakuutuslaji sopno,rekno,vaklaji turva (hirvi, hinaus, ) sopno,rekno,vaklji,turva vakuutuskausi s,r,v,t,kausi maksuerä s,r,v,t,kausi versio
Life goes on day after day Hearts torn in every way So ferry cross the Aura will allways take me there And here I ll stay. People around every corner They seem to smile and say: We don t carewhatyournameis, boy We ll never turn you away So I ll continue to say Here I allways will stay The Pacemakers