Datamodellering i det virkelige liv. Jan-Thore Bjørnemyr

Like dokumenter
Datamodellering i det virkelige liv. Jan-Thore Bjørnemyr

Datamodellering i det virkelige liv. Jan- Thore Bjørnemyr

Datamodellering i det virkelige liv. Jan- Thore Bjørnemyr IQumulus LLC Aus?n, TX

Ekvivalente stier (Equivalence of Path, EOP) i storm

INF1300 Introduksjon til databaser

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

Repetisjon: Normalformer og SQL

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Informasjonssystemer, DBMSer og databaser

INF1300 Introduksjon til databaser

Datamodellering med ORM

Dataorientert modellering

MATOPPSKRIFTER Obligatorisk oppgave nr. 2 i INF1300 høsten 2010

IN2090 Introduksjon til databaser

INF1300 Introduksjon til databaser

Ekvivalente stier (Equivalence of Path, EOP) i storm

1. SQL datadefinisjon og manipulering

INF1300 Introduksjon til databaser

Alle attributter har NULL som mulig verdi. mulige verdier for integer: NULL, 0, 1, 2, 3...

VÆRSTASJONER Obligatorisk oppgave nr. 2 i INF1300 høsten 2011

INF212 - Databaseteori. Kursinnhold

2. Beskrivelse av mulige prosjektoppgaver

INF1300 Introduksjon til databaser

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

Metaspråket for å beskrive grammatikk

Applikasjonsutvikling med databaser

Utvikling fra kjernen og ut

LocalBank Prosjektbeskrivelse

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Kenneth Torstveit, løsningsarkitekt EVRY P7 - Browser for HR

INF3100 Databasesystemer

Produktrapport. Produktrapport. Hjelpemiddel portal for Parkinsonforbundet

En lett innføring i foreninger (JOINs) i SQL

Kontakt oss i Egroup for mer informasjon!

Eksamen IN1010/INF1010 våren 2018

*UXSSHULQJ IRU JUDXWVNDOOHU (QYLVXHOOJXLGHJMHQQRPQRHQ DY1,$0JUXSSHULQJHQV XQGHUIXQGLJKHWHU

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

Institutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

INF1300 Introduksjon til databaser

Databasesystemer, oversikt

UNIVERSITETET I OSLO

1. SQL spørringer mot flere tabeller

Forord Dette er testdokumentasjonen skrevet i forbindelse med hovedprosjekt ved Høgskolen i Oslo våren 2010.

Romlig datamanipulering

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1

Flere skranker i ORM Integritetsregler med «CHECK» i SQL

GJENNOMGANG UKESOPPGAVER 9 TESTING

Datamodellering 101 En tenkt høgskoledatabase

En liten rekap. Spørrespråk. I dag SELECT

Oppgave 1 (Opprett en database og en tabell)

Integritetsregler i SQL. Primærnøkler

DBS18 - Strategier for Query-prosessering

MAT1030 Forelesning 10

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram

MAT1030 Diskret Matematikk

INF1300 Introduksjon til databaser

Kapittel 5: Mengdelære

Oppgave: Finn navn og tittel på alle som har arbeidet på prosjektet «Vintersalg»

SQL Structured Query Language. Repetisjon av select spørringer Nestede select spørringer Mengdeoperasjoner Views Flere operatorer

Databaser kort intro. Tom Heine Nätt

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen

Dette er et lite notat der jeg forsøker å beskrive hvordan innblandinger kan implementeres og visualiseres i MUSIT sine databaser og applikasjoner.

INF3100 Databasesystemer

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

OM DATABASER DATABASESYSTEMER

IS Introduksjon til informasjonssystemer

Rekursjon. Binærsøk. Hanois tårn.

Integritetsregler i SQL

Modellering av verk Verk og uttrykk i et brukerperspektiv. Litt om modeller/modellering

Tirsdag 21/11. Onsdag 24/11. Tirsdag 12/12. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Introduksjon til fagfeltet

Nasjonal DNA sekvensdata IT plattform for helsevesenet- genap. Store data møter medisinen 1. september 2015

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

UNIVERSITETET I OSLO

UKE 11 UML modellering og use case. Gruppetime INF1055

INF1300 Introduksjon til databaser

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

Oppsummering. Thomas Lohne Aanes Thomas Amble

TDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case. Professor Alf Inge Wang

Læringsmål og pensum. En større case. Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12.

Utvikling fra kjernen og ut

Det gjenstår nå kun å definere hva som skal være primærnøkkel i rolle rabellen.

Datamodellering og databaser SQL, del 2

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case. Terje Rydland - IDI/NTNU. Lære å lage større og sammensatte programmer

INF1010 MVC i tekstbaserte programmer

Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:

UNIVERSITETET I OSLO

Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp

Kravspesifikasjon Hovedprosjekt ved Høgskolen i Oslo Våren 2008

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

Nytt verktøy for helhetlig dynamisk risikostyring på rigg. Øyvind Rideng

INF1300 Introduksjon til databaser

HØGSKOLEN I SØR-TRØNDELAG

Emnenavn: Ny/utsatt eksamen. Eksamenstid: Faglærer: Edgar Bostrøm. Erik Åsberg. Davide Roverso

Use Case-modellering. INF1050: Gjennomgang, uke 04

Transkript:

Datamodellering i det virkelige liv Jan-Thore Bjørnemyr

Jan-Thore Bjørnemyr Cand. Scient., databehandling 1991 Jobbet for Ericsson, IBM og Control Data Gründer Selvstendig konsulent Canada, USA, Argentina, Mexico, Colombia, Ungarn, Filippinene, England, Danmark

Datamodell Hvorfor lager vi datamodeller? Utgangspunktet er et behov! Vi trenger et system Systemet trenger (kanskje) en database Databasen trenger en beskrivelse Beskrivelsen er datamodellen

Eksempel Informasjonssystem CarDriver V A B C Receptionist CarAssociation 0 2 2 1 3 3 Accounting system Information entities -CarDriver -CarAssociation -Receptionist -TowCarEmployee -AccountingSystem Functions -A::Informational -B::ExternalConnector -C::SendToAccunting -V::Informational -0::Connector::SMS[0] -1::Connector::SMS[1] -2::Connector::SMS[2] -3::Connector::SMS[3] -4::Informational TowCar Employee TowCar Employee 4 TowCar Employee Forms -IncidentRegist ration -FunctionList[1,..] -DispatchPage -FunctionList[1,..] -WorkReporting -FunctionList[C,..]

Informasjonssystem Database Turnusplanlegging Timeregistrering og lønnsberegning Faktureringssystem Regnskapssystem Oppdragsfordelingssystem

Databasen Felles ressurs Felles struktur Felles regelverk MEN alle systemene ser ikke nødvendigvis alt! Databasen må beskrives derfor datamodeller og datamodellering

Litt om ORM og ER ORM er ikke ORM ORM (= Object Relational Mapping) ORM (= Object Role Modelling) NIAM (= Natural Language Information Analysis Method) ER (= Entity Relationship Method)

ORM vs. ER ORM Konseptuell (+) Bottom-up Volumiøs (-) Presis (+) Gir normalisert struktur(+) Lite utberedt (-) ER Tabell modellering (-) Top-down Kompakt (+) Gir god oversikt (+) Ikke normalisert struktur (-) Veldig utberedt (+) Min personlige erfaring er at det er enklere å kommunisere en ORM modell med en kunde enn en ER modell

Datamodelleringsprosessen Kommunikasjon med kunden Verktøy: Munn og ører, spør og lytt Pass på at du gjør deg forstått Avgrensning Finn strukturer, vær kritisk Finn regler, let etter motsigelser Se forskjell på data og presentasjon Test modellen!

Datamodelleringsprosessen Exchange MDF Cab Cab Cab DP DP DP Subscribers

Datamodelleringsprosessen Exchange Exch (id) MDF (id) MDF CAB ID Cab Cab Cab DP Line DP DP DP DP Pair no CAB MD F Subscribers

Noen vanlige problemer

1. Avgrensning CarDriver V A B C Receptionist CarAssociation 0 2 2 1 3 3 Accounting system Information entities -CarDriver -CarAssociation -Receptionist -TowCarEmployee -AccountingSystem Functions -A::Informational -B::ExternalConnector -C::SendToAccunting -V::Informational -0::Connector::SMS[0] -1::Connector::SMS[1] -2::Connector::SMS[2] -3::Connector::SMS[3] -4::Informational TowCar Employee TowCar Employee 4 TowCar Employee Forms -IncidentRegist ration -FunctionList[1,..] -DispatchPage -FunctionList[1,..] -WorkReporting -FunctionList[C,..]

2. Forståelse av struktur Hva i all verden er en adresse? Postadresse, besøksadresse, fakturaadresse, leveringsadresse,,, 2800 Bartons Bluff Ln. Apt #611 Austin, TX, 78746 Grønnegata 11 2317 Hamar En dagsmarsj øst fra den hvite steinen ved elva

3. Data vs. presentasjon Hva er et telefonnummer? Hva er data og hva er presentasjon? 800-MY-APPLE 800-692-7753 Dette er kanskje eksempel på en presentasjon, men det skaper allikevel problemer. Hvordan skal vi hindre noen i å bruke 800-MY-BPPLE??

4. Kart og terreng Exchange Exchange MDF MDF Cab Cab Cab Cab Cab Cab DP DP DP DP DP DP Subscribers Subscribers

Hvorfor beskrive regler i en modell? Det er rimelig å anta at samme regel gjelder for alle applikasjonssystemene Regler bør ha: En beskrivelse En implementasjon Implementert ett sted

Når er datamodellen ferdig? Testing av modellens påstander? Er modellen vår egnet? Databasen er populert med testdata? Databasen har reelle data? Hva gjør vi med eksisterende data? Hva med historiske data?

Utviklingsfasen Skranker er noe HERK! Mandatory Foreign keys Check constraints Andre constraints Slås på etter hvert!

Datamodell, eksempel

Alt er en prosess Datamodellen: utvikles i parallell med spesifikasjon utvikles videre under programmeringen får sin egentlige test når reelle data legges inn Datamodellen er et levende dokument!

Equivalence-of-path

Equivalence-of-path Equivalence-of-path er et sett regler som vies liten oppmerksomhet, men som finnes i nesten alle modeller Dette er noe som oppstår når det er to forskjellige stier (eller paths ) mellom to objekter i modellen Disse to stiene er sjeldent uavhengige Man ble først klar over problemet da man begynte å lage store billettbestillingssystemer Flyselskaper har gjerne mange fly av forskjellige typer, og disse flys i forhold til en gitt turnus og en ruteplan Utforingen er å sikre at dataene i databasen faktisk henger sammen (at det faktisk flyr et fly med sete 48H på den datoen som er angitt i billetten)

Fly Flyvning Sete Billett

Varianter av eop Eksempler Klassekontakt skal ha barn i den klassen vedkommende er klassekontakt for Pilot skal være sertifisert for flytypen han skal fly En fotballdommer kan ikke dømme kamper med lag fra egen krets Noen eop skranker løses strukturelt, noen gjennom subset-skranker og noen må rett og slett programmeres Generelt skal eop implementeres i databasen

To interessante temaer (som dessverre må håndteres) Brukere og brukerrettigheter Tilgang til skjermbilder Tilgang til funksjonalitet i skjermbildene Tilgang til data i skjermbildene Språk og språkuavhengighet Oversettelse av brukergrensesnitt Oversettelse av data

Eksamenstips - ORM Lesbarhet Det må være mulig å faktisk lese det som er skrevet Syntax Objekter, relasjoner Begrepsdannelse Riktige objekter Avanserte beskrankninger Delmengde, exclude, total etc. Forståelige relasjoner Fyll på med tekst

Eksamenstips - SQL Lesbarhet Syntax Husk select.. from.. where Ofte er det slik at en gitt oppgave skal testedere i én bestemtferdighet (group by, having, union, outer join etc) Ikke gjør svarene unødig kompliserte Bruk gjerne view for å komme fram til svaret dersom dere trenger flere trinn

Det er ikke alt som er like enkelt å forstå (for sensor)

Det er ikke alt som er like enkelt å forstå (for sensor)

Takk for oppmerksomheten!