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

Samankaltaiset tiedostot
FYYSINEN SUUNNITTELU

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

A TIETOKANNAT, 3 op Syksy TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

Fyysinen suunnittelu

FYYSINEN SUUNNITTELU

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

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

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

A TIETOKANNAT, 4 op Kevät TI09

Käsiteanalyysi prosessina ja tarveanalyysi

11/20: Konepelti auki

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Oracle 11g tietokannan päivityksen tarjoamat hyödyt ja kustannussäästöt

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

6 XML-työkalut 1. 6 XML-työkalut

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

TIETOKANNAT JOHDANTO

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Java-kielen perusteet

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

4. Olio-ohjelmoinista lyhyesti 4.1

4. Luokan testaus ja käyttö olion kautta 4.1

IIO10200 Tietokantaohjelmointi (4 op)

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

Relaatiomalli ja -tietokanta

ITKA204 Tietokannat ja tiedonhallinnan perusteet

Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

1. Olio-ohjelmointi 1.1

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Tietokanta (database)

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

2. Olio-ohjelmoinista lyhyesti 2.1

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Koka. Ryhmä 11. Juuso Tapaninen, Akseli Karvinen. 1. Taustoja 2. Kielen filosofia ja paradigmat 3. Kielen syntaksia ja vertailua JavaScriptiin Lähteet

Johdatus ohjelmointiin

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

MySQL ja PostgreSQL Seminaarityö

2. Olio-ohjelmoinnin perusteita 2.1

TermBase NET versio (Beta)

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

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

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Uudelleenkäytön jako kahteen

Ohjelmoinnin peruskurssien laaja oppimäärä

Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen

ECDL Tietokannat. Copyright 2015 ECDL Foundation ECDL Tietokannat Sivu 1 / 7

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

Sukupuu -ohjelma. Ossi Väre ( ) Joni Virtanen ( )

Navistools Standard. Navistools

7/20: Paketti kasassa ensimmäistä kertaa

Tiedonsiirto- ja rajapintastandardit

Johdatus rakenteisiin dokumentteihin

19/20: Ikkuna olio-ohjelmoinnin maailmaan

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

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

Teollisuusautomaation standardit Osio 9

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Luento 3 Tietokannan tietosisällön suunnittelu

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

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

AS Automaatio ja systeemitekniikan projektityöt Projektisuunnitelma Syksy 2009 A09 05 OSGi IRC Bot For Coffee Maker

Muutamia peruskäsitteitä

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Koodimalli Code Model

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

HELIA 1 (14) Outi Virkki Tiedonhallinta

Mikä yhteyssuhde on?

Metropolia ammattikorkeakoulu TU00BS : ICT-teknologiaosaaminen Tuntitehtävät 7 Pasi Ranne

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa

DXL Library ja DXL-kielen olemus. Pekka Mäkinen SoftQA Oy http/

Visual Basic -sovelluskehitin Juha Vitikka

Testidatan generointi

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely

HELIA 1 (14) Outi Virkki Tiedonhallinta

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Tuotevastuun mukaiset varoitukset

Transkriptio:

Oliotietokannat Nääsvillen Oliopäivät 2004 15.12.2004 Pekka Kähkipuro Kehitysjohtaja, FT pekka.kahkipuro@sysopen.fi

Oliotietokanta Idea: pysyvän tiedon tallentaminen suoraan oliomuodossa Tietosisältö ja viitteet tallentuvat sellaisenaan Otettavissa käyttöön luokka kerrallaan perinnän, attribuutin tms. kautta Lisäksi taustalla skeema, jonka pohjalta luodaan indeksejä jne. Käyttö on helppoa Persistentin olion käyttö tapahtuu kuin minkä tahansa muun olion käyttö Tyypillisesti myös käsittelylogiikka tallentuu ja sitoo toteutukset johonkin/joihinkin ohjelmointikieliin Parhaimmillaan Täysin tuntumaton ympäristöön (kieli + kehikko) uppoava malli Mukaan voi upottaa mm. transaktioiden toteutuksen, hajautuksen, välimuistit jne. Pahimmillaan Ohjelmointityylin tiukasti rajaava kehikko, jonka sivuvaikutuksena saadaan pysyväistiedon tallennuskyky 15.12.2004 Copyright SysOpen 2

Relaatiomallin haasteita Todellisuuden, mallin ja säilytystavan ero Viitteet Viite-eheysongelmat Suorituskyky Kannan virittely SQL:n hankaluus Eheysongelmat Triggerit ja skriptit Kuvaus relaatiokannan näkökulmasta Todellisuus on luonnollisesti mallinnettavissa olioina eikä suinkaan kolmannen normaalimuodon relaatioina Relaatiomallissa viitteet eksplisiittisesti näkyvissä ja käsiteltävissä (= myös sotkettavissa) Eksplisiittiset viitteet ja niiden väärinkäyttö tuovat eksplisiittisen viite-eheysongelman Tiedon pilkkominen, vieminen relaatioihin, haku ja kasaaminen johtaa merkittäviin suorituskykyhaasteisiin (autovertaus). Merkittävät suorituskykyhaasteet ovat johtaneet laajoihin virittelyhommiin Todellinen käyttö edellyttää ei-triviaaleja kyselyitä, joiden tekijältä edellytetään jopa kannan optimointimekanismien tuntemusta; Tiettyä kannan kohtaa käytetään usein monesta kohtaa sovellusta, näiden erilainen logiikka johtaa usein loogisiin eheysongelmiin Osa käsittelystä on sittenkin pakko viedä tiedon lähelle, ja käyttöön on otettukin oliomaisia mutta hankalia konsepteja 15.12.2004 Copyright SysOpen 3

OODB:n ratkaisuja Todellisuuden, mallin ja säilytystavan ero Viitteet Viite-eheysongelmat Suorituskyky Kannan virittely SQL:n hankaluus Eheysongelmat Triggerit ja skriptit Kuvaus OODB-teknologian ratkaisusta Työstä jää yksi vaihe pois, kun ohjelmoinnin malli on suoraan myös pysyväistiedon malli Viitteet näkyvät suoraan ohjelmointiviitteinä ja kannan viitteet syntyvät automaattisesti Ongelmat katoava kun koko homma on automatisoitu Merkittävästi tehokkaampi (paitsi ad-hoc-kyselyissä) Miksi viritellä, kun suorituskyky on riittävä? Hankalat kyselyt tehdään kannassa navigoimalla, ja merkittävästi voimallisemmilla välineillä kuin SQL Olion dataa käsittelee pääsääntöisesti vain olio itse, ja eheysongelmat vähenevät merkittävästi Nämä kömpelöt konseptit katoava, tilalle tulee normaalia olio-ohjelmointia 15.12.2004 Copyright SysOpen 4

OODB:n haasteita Nykyiset kannat Relaatiomallin riittävyys Kaupalliset syyt Liika sidonnaisuus ohjelmointikieleen Ohjelmointikielten puutteellisuus Ad-hoc-kyselyt Standardi Relaatiokantojen kehitys Miksi OODB:tä ei voikaan käyttää Pitkä elinkaari, tiedon epäeheys Miksi parantaa kokonaisuutta kohdasta, joka ei sittenkään ole suorituskyvyn tai tuottavuuden pahin pullonkaula? Oracle et Co. Isäntäkieli on usein liian tiukasti sidottu kantaan. Toteutuksia löytyy rajallisesti: C++, Java?, C#???, muille aika vähän. Ei valmiita attribuutteja tai koukkuja, joten OODBframework on usein keinotekoisesti liitetty sovellukseen. Edellyttävät ohjelmointia. Kyselykielet useimmiten puuttuvat. Puuttuu, ODMG on kuollut. Uudet versiot helpottavat oliokäsittelyä (ei varsinaisia oliopiirteitä, mutta oliotallennus binäärimuodossa toimii) 15.12.2004 Copyright SysOpen 5