Olioistako relaatiokanta? OUFG 12.5.2004 Ari Hovi Ari Hovi Oy 2004 Ari Hovi Oy, P. 0400 473 458 1
Esittely Ari Hovi, Ari Hovi Oy Ari Hovi Oy vuodesta 1990, erikoistuminen tietokantoihin Konsultointi Tietovarastoarkkitehtuurit, DW-kantojen suunnittelu, tietokantojen suunnittelu, SQL, PL/SQL koodaus, Access-Oracle Koulutus yleiset ja yrityskohtaiset kurssit DW-kannan suunnittelu, DW-tietoiskut Relaatiokannan suunnittelu SQL peruskurssi ja syventävä kurssi Kirjat Tietokantojen suunnittelu ja indeksointi, Hovi, Huotari, Lahdenmäki, 2003 Tietovarastot liiketoiminnan tukena, Hovi, Koistinen, Ylinen, 2001 SQL-ohjelmointi Pro training, Hovi, 1999 Tietovarastotekniikka Data Warehousing, Hovi, 1997 2004 Ari Hovi Oy, P. 0400 473 458 2
Olio vs relaatio? UML UML objekti ajattelevan ihmisen ulkopuolinen olio tai ilmiö. relaatio 1. kertomus, kuvaus, selostus 2. asioiden tila, olosuhde, tilanne 3 2004 Ari Hovi Oy, P. 0400 473 458 3
Lähtökohtia Tietokantojen käyttö lisääntyy yhä kaikkien sovellusten taustalla relaatiokannat uusia sovelluksia, laajempaa käyttöä internet, tekstit, kuvat, tiedostojärjestelmän korvaus, BI ja DW Tietokannat eivät ole in Oliosuunnittelu ja ohjelmointi yhä suositumpaa koulutus, hype Tietokantojen suunnittelutaito? 2004 Ari Hovi Oy, P. 0400 473 458 4
Relaatiokannat E.F.Codd 1970: Relaatiomalli IBM:lta SQL 70-luvulla Oracle 1979 Vallankumous syrjäytti verkkomalliset ja hierarkkiset kannat SQL ainoaksi tietokantakieleksi Tietokantatoimittajien keskittyminen Tuotteet kypsyneet vaativat tap.käs. järj., DW-ominaisuudet, multimedia, 7*24, 2004 Ari Hovi Oy, P. 0400 473 458 5
Oliotietokannat Oliokannat ilmaantuivat n. 1990 haastamaan relaatiokannat Lupauksia liittyvät saumattomasti olio-ohjelmointiin sopivat multimediaan, monimutk. rakenteisiin tehokkaita Eivät ole syrjäyttäneet relaatiokantoja eivät edes isoissa oliototeutuksissa Syitä eivät ole saavuttaneet relaatiokantojen kypsyyttä pieniä toimittajia (tietokanta valitaan suurelta toimittajalta) ei yhteistä standardia vrt relaatiomalli, SQL-kieli Julkaiseeko joku isoista oliotietokannan 2004 Ari Hovi Oy, P. 0400 473 458 6
Oliorelaatiokannat Relaatiokantoihin ilmaantui olio-ominaisuuksia esim Oracle 8 oli object-relational database Ominaisuuksia johdetut tyypit, kokoelmatyypit, rakenteel. tyypit, tyyppien metodit, tyyppipohjaiset taulut, viitetyyppi, tyyppiperiytyminen, olionäkymät, laajennustietotyypit Onko niitä käytetty Sytyke ry:n Rela-kerhon oliorelaatiokantakysely: vain vähän käytännön soveltamista SQL99 ja SQL 2003 sisältävät olio-ominaisuuksia implementointi tuotteisiin? 2004 Ari Hovi Oy, P. 0400 473 458 7
Olio vs. relaatio -maailmat Olio-maailma koetut sov. keh. periaatteet navigoidaan objekteja olio-avaruus; talletus toissijaista UML-suunnittelu Relaatio-maailma koettu matemaattinen pohja (rel.malli) taulujen käs. SQL-kielellä, liitokset painopiste talletuksessa käsiteanalyysi 2004 Ari Hovi Oy, P. 0400 473 458 8
Olio vs- relaatiokehitystä client/server vaihe tiedot ja prosessointi erillään, perinteinen tapa olio-ajattelu ilmaantui osa ohjelmoijista ja suunnittelijoista mukaan: ratkaisee kaiken tietokantaihmiset: ohimenevä ilmiö tai taas yksi ohjelmointitapa olio-ajattelu jäi oliotietokannat eivät tulleetkaan relaatiokannat kehittyvät ongelmia sovittaa olio- ja relaatioajattelu oliosuunnittelu UML-pohjaista tietokannan suunnittelu hyvin vähällä painotuksella olio-koodarit eivät tunne tietokantatekniikkaa tietokantaihmiset vierastavat eivät osaa lukea UML-kuvauksia 2004 Ari Hovi Oy, P. 0400 473 458 9
Tietomallit Tietomalli Mallinnusmenetelmä, jota käytetään reaalimaailman tai tietokannan mallintamisessa. Käsitemalli Oliomalli Relaatiomalli Relaatiotietokanta "Vanha termi" Käsite Luokka Relaatio Taulu Tieto (attribuutti) Attribuutti Attribuutti Sarake Kenttä Esiintymä Ilmentymä, olio Monikko (tuple) Rivi Tietue Yhteys Suhde Viiteavain Viiteavain Perusavain Object ID (OID) Perusavain Perusavain 2004 Ari Hovi Oy, P. 0400 473 458 10
Kannan suunnittelumenetelmistä Chen: ER menetelmä 1976 J. Martin Information Engineering SSADM, IDEFIX Suomessa Soini: Tietoanalyysi 1984 Finnsystems: Käsiteanalyysi TISMA, SUM yms menetelmät Lukuisat Case välineet tukevat Menetelmä kehittynyt, mutta perusidea pitänyt pintansa kaikki nämä vuodet Oliosuunnittelu ja UML noussut vaihtoehdoksi 2004 Ari Hovi Oy, P. 0400 473 458 11
ER-Menetelmä Graafinen, selkeä suunnittelumenetelmä Käsitteet, tiedot, yhteydet Sopii kaikenlaisten tietokantojen suunnitteluun Tuloksena syntyvä käsitemalli on tekijöidensä yhteinen näkemys kohdealueesta sisältää käsitteiden ja tietojen määritykset (metadata) tulevan tietokannan piirustukset Käsitemalli käyttäjien ja it-ihmisten kommunikaation pohjana Myös tietovarastosuunnittelun menetelmä Inmonin CIF Kimballin tähtimalli on osajoukko ER-mallinnuksesta 2004 Ari Hovi Oy, P. 0400 473 458 12
UML Unified Modelling Language Yleisesti käytetty ja hyväksytty syst. suunnittelussa UML:lla voidaan kuvata laajasti järjestelmiä, mm. Käyttötapauskaaviot Luokkakaaviot lähinnä ER-kaaviota Toimintokaavio Tilakaavio Vuorovaikutuskaavio Viestiyhteys- ja yhteistyökaaviot Toteutus- ja komponenttikaaviot 2004 Ari Hovi Oy, P. 0400 473 458 13
UML ja tietokantasuunnittelu Standardi UML:sta puuttuu tärkeitä osia: Primary Key (OID), Null, Uniqueness, domain constraints UML Profile for Database Design UML:sta puuttuu Data Modelling kaavio, siksi tehty UML Profile UML:n laajennus:taulu, sarake, PK, FK, yhteys, useampia vaihtoehtoja Osa CASE-välineistä tukee Toisaalta UML on ilmaisuvoimainen, myös laajennusmahd. UML ei vielä ole saavuttanut jakamatonta suosiota tksunnittelussa 2004 Ari Hovi Oy, P. 0400 473 458 14
Oracle Designer ja UML Frequently Asked Questions Will Oracle9i Designer include support for UML? No. Oracle9i Designer is essentially an Information Engineering (IE) tool while UML is based on the requirements of Object Oriented programming. These two paradigms are sufficiently different to make integration distinctly problematic, not only technically, but from a methodological and usability standpoint. It is extremely unlikely that developers would ever mix these two approaches, or sets of techniques, in a single project. There are also several technical issues that justify reserving Oracle9i Designer for IE modeling and Oracle9i JDeveloper for UML modeling: Oracle9i Designer runs only on Windows while Oracle9i JDeveloper, written in 100% Java, runs on any platform that supports a Java Virtual Machine (JVM). Oracle9i Designer is a meta-data repository-based tool. Recreating the UML model and a metamodel in the Designer repository would be an extremely time-consuming and resource-intensive effort, and could potentially impact the robustness and stability of the current product Source: Oracle Modeling Tools: Statement of Direction - April 2003, www.oracle.com 2004 Ari Hovi Oy, P. 0400 473 458 15
Oliomallinnusesimerkkejä Asiakas nimi osoite Luokan nimi Attribuutit Asiakas nimi osoite Asiakas nimi osoite lisaa() muuta() poista() Operaatiot eli metodit tekee 1 * Assosiaatio 1..1 0..* Lukumääräsuhde Tilaus Tilaus tilausnro tilauspvm tilausnro tilauspvm 2004 Ari Hovi Oy, P. 0400 473 458 16
asiakasid nimi osoite Luokkahierarkia ASIAKAS Asiakas nimi osoite UML YRITYSASIAKAS yhteysnimi luottoluokitus luottoraja HENKILÖASIAKAS luottokortinnro Yritysasiakas yhteysnimi luottoluokitus luottoraja Henkiloasiakas luottokortinnro Käsitemalli (eräs variaatio) Asiakas Yritysasiakas yrasiakasid yhteysnimi luottoluokitus luottoraja asiakasid nimi osoite Henkiloasiakas hloasiakasid luottokortinnro Yritysasiakas AsiakasID nimi osoite yhteysnimi luottoluokitus luottoraja Henkiloasiakas AsiakasID nimi osoite luottokortinnro Asiakas asiakasid nimi osoite asiakasluokka yhteysnimi luottoluokitus luottoraja luottokortinnro 3 taulua 2 taulua 1 taulu 2004 Ari Hovi Oy, P. 0400 473 458 17
Vaihtoehtoiset polut tauluihin Oliomallinnus, UML 1) Käsiteanalyysi, ER-notaatio Oliomallinnus, UML Käsiteanalyysi, ER-notaatio Käsiteanalyysi, UML Relaatiokannant taulut 1) Connolly, T. ja Begg, C. Database Systems a Practical Approach to Design, Implementation, and Management, 3. painos, Addison-Wesley, 2002. 2004 Ari Hovi Oy, P. 0400 473 458 18
Tietokantasuunnittelun sudenkuoppia Tietokannan suunnittelu ei niin tärkeää ajattelu suorituskyky, yhteiskäyttöisyys ja ylläpidettävyys kärsivät Unohdetaan tietokannan yhteiskäyttöisyys eri osa-alueiden tarpeita ja malleja ei selvitetä Ei käytetä tietokantojen ominaisuuksia koodataan olemassa olevia ominaisuuksia ( Javalla kaikki ) Taulu per näyttö ajattelu ylimääräisiä ohjelmia tietojen turhan toistamisen hoitoon Ei osata riittävästi SQL:aa turhaa koodausta ohjelmissa Joskus: edellisten kohtien toinen ääripää 2004 Ari Hovi Oy, P. 0400 473 458 19
DW-suunnitteluvaikutuksia Huonosti suunnitellut operatiiviset kannat laatu heikkenee heikot eheys- ja raja-arvotarkistukset: sisään huonoa dataa sekavat tietorakenteet vaikeuttavat poimintoja DW:hen Oliopohjaista DW-suunnittelua? 2004 Ari Hovi Oy, P. 0400 473 458 20
Olioihmiset ja relaatioihmiset UML UML Olioihmiset suunnittelevat UML-kaavioita, mallintavat toimintaa ja businesta (mm.luokkakaaviot) ei ehkä tiedostetakaan että suunnitellaan samalla tietokantaa kaaviot jäävät puutteelliseksi Relaatioihmiset hoitavat ja suunnittelevat tietokantoja ER-menetelmä ja kantojen virittäminen osataan he eivät enää olekaan mukana suunnittelun alkupäässä Olioihmisten suunnittelemat luokkakaaviot heitetään relaatioihmisille: tehkää tietokanta tehdyt suunnitelmat eivät aukene eivätkä riitä hyvän tietokannan suunnittelemiseksi ja toteuttamiseksi. Olioihmiset generoivat suoraan tietokannan luokkakaaviosta syntyy helposti liikaa tauluja (hidas kanta) ja ei-yhteiskäyttöisyyttä 2004 Ari Hovi Oy, P. 0400 473 458 21
Miten eteenpäin? Olioihmisten tulisi opetella tietokantoja mitkä asiat ovat tärkeitä, jotta syntyy hyvä tietokanta myös tarvittavat UML-laajennokset Relaatioihmisten tulisi opetella UML:aa mm. luokkakaavioiden tekeminen itse tietokantasuunnittelun periaatteet säilyvät Yhteistyötä ja kommunikointia pitäisi lisätä relaatioihmiset aiemmin mukaan suunnitteluun, vaatimaan tietokantojen tarvitsemat määritykset olioihmiset voisivat olla pitemmälle mukana kannan suunnittelussa ja toteutuksessa UML voisi toimia yhdistäjänä ja yhteisenä kielenä Tietoresurssin arvostus saatava takaisin! 2004 Ari Hovi Oy, P. 0400 473 458 22
Barrikaadeille! Ylös tietokannat! 2004 Ari Hovi Oy, P. 0400 473 458 23