1 Objektorienterte databaser - 6 Arne Maus. 2 Problemstillinger, hvorfor OO- databaser ?  dagens relasjonsdatabaser (RDB) passer ikke for alle anvendelser.

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

14 okt. 2003, Arne Maus Inst. for informatikk, UiO
Del 3 : Patterns (Kap 16 – kap 20, Craig Larman) Arne Maus Inst. for informatikk, UiO.
GoOnline publisering Hvordan komme i gang med GoOnline. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline Proffesional.
Ncg | group om |navigator™ xlforecast™
Programvare for nisje SMS
Mange til mange sammenhengen
Programmering i ActionScript - hva er det, og hvordan undervise?
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
LC238D Datamodellering og databaser Introduksjon til fagfeltet Else Lervik, august 2012Forelesning 1, uke 34 Datafilerside.
Avansert SQL og problemløsning
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Objektorientert programmering Objektorientert systemutvikling
ObjektOrientert Systemutvikling del I
MS kap 61 Nye trender  Vi skal se på  Virtualisering  ”Cloud computing”
Tips og triks Strukturering av større applikasjoner Automatiserte tester. Kristian Johannessen
IS-102 Klassedefinisjoner
2003 IT-konferansen 2003 UNIVERSITETET I OSLO Vortex: Skrivbar web for UiO Oddmund Møgedal USIT/UiO.
Databasehåndtering med MySQL
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Systemmodeller In 140 Sommerville kap. 7. Mål Forstå hensikten med kontekstmodell Forstå ideene bak –oppførselsmodellering –datamodellering –objektmodellering.
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
In 135 Datamodellering og databaser Introduksjon, Enkeltentiteten, Informasjon Ola Bø.
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
Objekt Orientert Programmering (OOP). Objektorientering (OO)1/6 Objektorientering er en grunnleggende måte å organisere komplekse fenomener på.
Design Patterns Iterator & Mediator. Gruppe 8 Presentasjonsgruppe:Resten av gruppen: Marianne AtesAndrè Johansen Tom Vidar LundeHege-Kristin Johansen.
Software Requirements Elicitation
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Flash og ActionScript - Nye muligheter Jostein Nordengen.
Programmering i ActionScript - hva er det, og hvordan undervise?
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
Structured Query Language Kræsj-kurs
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
Introduksjon I126 Databaser og datamodellering Høsten 2000 Institutt for informatikk Universitet i Bergen.
Hvordan kan foreldre bruke de vangligste funksjonene i Itslearning.com
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
1 INF5110 – 23. april, 2013 Svar på noen oppgaver til kap. 8 Beklager noe trykkfeil og rot på forelesningene Håper dette er bedre (lagt ut 24/4) Nå fredag.
Kontinuerlig kvalitetskontroll. Hvordan komme helt i mål.
Michael F. AtiyahIsadore M. Singer Om Atiyah-Singer Indeks-teoremet Professor John Rognes Universitetet i Oslo.
Presentasjon av masteroppgave
PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Termbaser Lars Nygaard. Termbaser Database over begreper Innhold –Definisjoner –Oversettelser –Leksikalske relasjoner –Eksempler.
1 INF5110 – 23. april, 2013 Noen oppgaver til kap. 8 Dette er en bedre utgave av oppgavene, lagt ut 24. april Nå fredag (26/4): Det blir ikke undervisning.
Se ellers læreboka, kap , side
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Objektorientert utforming In 140 Sommerville kap. 12.
SMS – System for Byggmakker Lade Gruppe 31E Av Olaf R.A. Nykrem & Audun Håberg.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
1 Kap. 57 – Cloud Computing How Information Technology Is Conquering the World: Workplace, Private Life, and Society Professor Kai A. Olsen, Universitetet.
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Inf1000 (Uke 5) Arrayer, filer og tekst
© USIT/SAPP/GT, Bård Jakobsen UNIVERSITETET I OSLO USIT :34 Side 1 FEIDE – BAS – Cerebrum v/Bård H.M. Jakobsen GT/SAPP/USIT, UiO.
Objektorientert design In 140 Sommerville kap 12 – del 1.
ABC Enterprise og Cerebrum ● Hva er ABC Enterprise? ● Modularisert utvikling ● ABC kontra IMS Enterprise.
Iterator i Java boolean hasNext() E next() void remove()
INF5110 – 23. april, 2013 Svar på noen oppgaver til kap
Nye trender Vi skal se på Virtualisering ”Cloud computing”
Finn fram på finn.no Søk på finn.no på internett
Sensorveiledninger på MN
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

1 Objektorienterte databaser - 6 Arne Maus

2 Problemstillinger, hvorfor OO- databaser ?  dagens relasjonsdatabaser (RDB) passer ikke for alle anvendelser - ønsker rikere semantikk (modellere mer i databaseskjema av systemets krav)  samme OO modell og begreper for hele prosessen (analyse/design, program, database,..)  ønsker bare ett språk - ikke to (SQL + applikasjonsprogrammets språk, f.eks C++, Java) (+ ønsker å prøve OO på "alt", også databaser)

3 Dagens Objektorienterte databaser- To retninger  Utbygging av SQL (Sybase, Oracle 8 og 9)  Utbygging av prog.språk som C++, Smalltalk og Java (GemStone, ObjectStore,O 2 og Objectivity)  Data og pekere lagres, men ikke (like bra) program  ONTOS, O2 (Ardent) og GemStone minner noe om nettverks (CODASYL) databaser.  ODMG har standardisert :  ODL – for å definere databasen (database skjema)  OQL – spørrespråk mot databasen  Ulemper og fordeler med begge tilnærmingsmåtene.

4 Problemer / utfordringer for OODB  Vi ønsker at (noen av) de objekter vi har i programmet skal kunne overleve fra en programkjøring til neste = persistente objekter  De andre kalles transiente objekter(disse behøver ikke overleve i databasen)  Ikke bare lage data, men også pekere og metoder (i praksis lagres signatruren til metoder– dvs. navnet på metoden og typen(e) på parametre) – en såkalt ADT eller interface i Java-forstand)

5 a) Objekt-identitet:  I relasjonsdatabaser identifiseres tupler/entiteter ved deres innhold (primary key).  I OO systemer har alle objekter et 'navn’ – oid, en identitet. (To objekter med samme datainnhold er forskjellige !)

6 b) Lagring av relasjoner mellom objekter (=pekerverdier)  Pekere i et program er (ofte) hukommelseadresser. Neste gang programmet skal brukes, er disse adressene ikke riktige. Hvordan få med omgivelsene til et objekt: i) Få med alle persistente objekter som pekes på av et objekt. ii) Få med alle persistente objekter som peker på et objekt.  Ofte (O 2 & ObjectStore) må brukeren selv navngi og lagre i egne set (mengder) de objektene som være 'persistente' og som skal lagres.

7 c) Spørrespråk  Problem: Fundamentale forskjeller på spørrespråk i SQL og C++ (transformasjoner til/fra problematisk) 'Løsning:’ i) "Sømløs" tilpassing av et programmeringsspråk med database - funksjonalitet -dvs. lage et SQL-lignende spørrespråk (men med pekere) – ny standard: OQL. ii) Utvidelser av SQL for å gjøre dette OO (=SQL3 = SQL99) OQL

Eksempel på ODL – database-def class Emne ( extent emnene key emnekode) { attribute String emnekode; attribute Stringnavn; attribute Integervekttall; relationship Set arrangerte_kurs inverse Kurs:emnet; } class Kurs {attribute Charssemester; attribute Integerårstall; relationship Emneemnet; inverse Emne:arrangerte_kurs; relationship List deltagere inverse Student:emner order_by navn; void registrer_sensur(); } class Student ( extent studentene ) { attribute String navn attribute Date f_dato; attribute String e_mail; relationship Set emner inverse Kurs:deltagere; Boolean oppmelding (in String emnekode) raises (Ikke_noe_slikt_emne); }

9 OQL - eksempel select s.navn, s.fdato from studentene s group by immatrikulert: s.immatrikulert_aar select * from studentene s group by borteboer?: s.hjemmekommune != ”Oslo” evig_student?: s.immatrikulert_aar < 1990 having (s.studentstatus = ”Aktiv” and not (s.hjemmekommune =”Ski” or s.hjemmekommune =”Nesodden”)) Svarene på spørsmålene blir hver et objekt som inneholder et Set (mengde)

10 d) Navigasjon i basen  i) Fra objekt til objekt (som nettverksdatabaser)  ii) Fra (objekt) mengde til mengde. Vanskeligere å optimalisere C++uttrykk enn SQL I ekte OO databser kan nå både navigere i basen og søke i mengder som SQL

11 e) Versjoner av objektene  Ofte hendig å kunne få adgang til eldre versjoner av objekter (tekstbehandling, DAK, programutvikling)  Versjonshåndtering av:  Databasesystemet (DAMOKLES),  eget program (Encore)  applikasjonen (GemStone)

12 f) Skjema-utvidelser (utvidet definisjon av basen)  Gamle data i basen:  i) Endres (autom.) til nye objekt-def (ORION)  ii) Binde opp alle data til versjoner av skjema

13 g) Transaksjoner i OO- anvendelser  Ofte meget lange transaksjoner (kan være "uendelige")  eks. DAK, pasientjournaler  Flerbrukerproblematikken:  - tradisjonelt låsing av alt som aksesseres  - Lange transaksjoner, "umulig å låse alt”  Løsninger:  i) sende melding om mulig konflikt  ii) hver ny skriving = ny versjon av objektet (kan gi problemer)  iii) låsing på objekt-nivå  iv) type- spesifikk låsing (eks. kø)

14 A) Ulemper med SQL-metoden  Har fortsatt to språk, problemer mellom program og database (ulike modeller).  Relasjonsmodellen (kanskje) lite egnet ved lange transaksjoner  SQL99 prøver å legge objekter til relasjonsmodellen.

15 B) Noen få ulemper med OO-prog.språk baserte databaser  Noe vanskelig å forstå for sluttbruker, vanskeligere å programmere.  Vanskeligere med ad hoc (’på sparket’) spørsmål mot basen.  ODL og OQL er nytt – ikke fullt implementert

16 SQL 3 / 99  En ny SQL-standard (SQL 3) har kommet  Denne utvider SQL med objekter.  Bl.a vil innholdet i en tabellposisjon kunne være et helt objekt.  Vil gradvis komme i produktene.Objektorienterte databaser med utgangspunkt i et programmeringsspråk, synes nå å konkludere at selve programmeringsspråket (f.eks. C++) ikke kan nyttes direkte mot databasen, men at det må defineres et eget database-manipulering-språk.  Det er på det nåværende utviklingstrinnet ikke sikkert at rene OO-databaser også er en god ide for administrativ databehandling.

17 Fordeler med OO - databaser  Modellerer komplekse datastrukturer bra  Objektene (fra verden) blir ikke 'normalisert bort' i en rekke tabeller  Raskere enn Relasjonsdatabaser  Ofte 'samme språk' i program og database (C++, Java)  Konklusjon:  For visse typer anvendelser (eks. DAK, GIS) hvor det er komplisert datastruktur og lange transaksjoner, vil det være fornuftig å bruke OO databaser. Mange OODB-applikasjoner finnes allerede i dag. Neppe like aktuelt for ordinære administrative systemer.