1. Datamodellering. 1.1. Kommentarer til læreboka



Like dokumenter
1. Normalisering Kommentarer til læreboka

Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller

1. Relasjonsmodellen Kommentarer til læreboka

1. Designe ER-modeller med MS Visio

Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen

1. SQL datadefinisjon og manipulering

1. SQL spørringer mot flere tabeller

Del 1: ER-modellering og databaseteori

2 of :19 1 of :19 [Kurssidene] [ ABI - fagsider bibin ]

HØGSKOLEN I SØR-TRØNDELAG

Oppgaver Oppgave a: Sett opp mulige relasjoner

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

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

Datamodellering 101 En tenkt høgskoledatabase

Hvordan designe en ER-modell med MS-VISIO

Databaser: Relasjonsmodellen, del I

Datamodellering med E/R

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

Oppgave 3 - normalisering

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

1. Introduksjon og bakgrunn

HØGSKOLEN I SØR-TRØNDELAG

INF130: Datahåndtering og analyse

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

>>21 Datamodellering i MySQL Workbench

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Det matematisk-naturvitenskapelige fakultet. Kontroller at oppgavesettet er komplett før du begynner å besvare det.

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

Kunnskapsorganisasjon og gjenfinning sider (inklusive forside og vedlegg)

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

Last ned Innføring i makroøkonomi - Leiv Opstad. Last ned

2. Beskrivelse av mulige prosjektoppgaver

UML 1. Use case drevet analyse og design Kirsten Ribu

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

Modeller for design av Web-Applikasjoner

HØGSKOLEN I OSLO Avdeling for journalistikk, bibliotek- og informasjonsfag Bibliotek- og informasjonsstudiene

1. Innføring i bruk av MySQL Query Browser

ITGK - H2010, Matlab. Dagens tema : Teori - Databaser

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

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN DATABASER

Kunnskapsorganisasjon og gjenfinning 1

OPINIONNAIRE TPG4135 Prosessering av petroleum 2009

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

EKSAMENSOPPGAVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Roger Midtstraum

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner

svarforslag SLUTTEKSAMEN IBE211 Databaser, våren 2015

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Datamodellering noen temaer

1. Leksjon 01: Introduksjon til faget Prosjektrettet systemarbeid

SLUTTPRØVE 5602 DATABASER I (inkludert vedlegg og denne forsida) Vedlegg: A: Eksempeldata og B: Svarark til oppgave 4

DEL1 Uten hjelpemidler

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN

FORORD... III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE... VII DEL I SQL OG RELASJONSDATABASER INTRODUKSJON...

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

OM DATABASER DATABASESYSTEMER

SQL Introduksjonskurs. Oversikt

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Kap3: Klassemodellering

Normalisering. Hva er normalisering?

5602 DATABASER Bokmål/nynorsk. 17 (inkludert denne forsiden) Eksamensresultatene blir offentliggjort på Studentweb.

1. Installasjon av supportpack

NIVÅ FORTREFFELIG KOMPETENT UNDERVEIS PÅ BEGYNNER- STADIET KRITERIER. Bruker til sammen minst 4 ulike uttrykk for å hevde egne meninger

INF1050 Klasseromsoppgave Uke 6

INF1300 Introduksjon til databaser

Introduksjon til fagfeltet

HØGSKOLEN I SØR-TRØNDELAG

TENK SOM EN MILLIONÆ ÆR

FORORD...III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE...VII DEL I SQL OG RELASJONSDATABASER INTRODUKSJON...

Læringsplan for 10. trinn uke

Datamodellering med ORM

UKEPLAN 5. trinn Uke mars

Læringsplan for 10. trinn uke

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

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

Aktivitetskart. Fremdriftsplan: denne prosessen: Peder Sundbø. ferdigstilt uke 8. fastslåing av prosjekt. Magnus Eriksen. Uke 8.

HTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS

Svarskjema for kurset 'Databaser' - evalueringsrunde 2 - Antall svar på eval: 13

EKSAMEN 6102 / 6102N DATABASER

Oppgave 1 Datamodellering 22 %

Normalisering. Hva er normalisering?

Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn.

Datamodellering med UML

9. ASP med databasekopling, del II

The Unified Modeling Language - UML

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen

Periodens sosiale læringsmål:

Tanker som kan ende opp med tema for siste samling. Liv og Gunstein

ÅRSPLAN Øyslebø oppvekstsenter. Læreverk: Vale!, Cappelen, 3 uketimer. Spansk Trinn: 8.klasse. Lærer: Unni Benoni Nergaard

Databaser: Introduksjon til databaser og filsystemer

Periodeplan 8D uke 50 og 51

Et variabelt produkt er et produkt med flere størrelser. F.eks. en lue som du har i 3 ulike størrelser.

Kvinne 30, Berit eksempler på globale skårer

Transkript:

Tore Mallaug 20.10.2009 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for fagene LN323D Databaser 1. Datamodellering Resymé: Denne leksjonen viser et par eksempler på ER-modellering inkludert sammenhengen mellom diagram og tabeller. UML brukes som notasjon (diagrammene er tegnet i MS Visio). I tillegg kommenteres lærebokas kap. 6. Innhold 1.1. KOMMENTARER TIL LÆREBOKA... 1 1.2. EKSEMPEL: TIMEAVTALER... 2 1.2.1. Problemstilling... 2 1.2.2. Løsningsforslag (trinær sammenhengstype)... 3 1.3. EKSEMPEL: GAMMEL EKSAMENSOPPGAVE... 3 1.3.1. Problemstilling: Salg av nye biler i Norge... 3 1.3.2. Løsningsforslag:... 5 1.3.3. Kommentarer:... 5 1.1. Kommentarer til læreboka Les igjennom alt i kap. 6.1 6.5. Det er viktig at du forstår forskjellen på en entitetstype og en entitet (eller forekomst). F.eks. LÆRER er entitetstypen, mens Tore Mallaug er en entitet (forekomst) av typen LÆRER. Oversatt til relasjonsmodellen blir LÆRER tabelldefinisjonen (CREATE TABLE i SQL), mens Tore Mallaug blir et tupell i tabellen. Riktignok er det ingen fasit som sier at oversettingen fra ER til tabeller trenger å være slik. Det viktige er at minst mulig av den semantiske informasjonen i ER-diagrammet forsvinner ved oversetting til tabeller. Noe informasjon vil typisk forsvinne rett og slett fordi ER-modellen semantisk sett er rikere (gir større rom til å uttrykke semantikk) enn relasjonsmodellen. Når du skal tegne et ER-diagram må du prøve å finne mulige entitetstyper. Disse er ofte substantiv, f.eks. en lærer, en person, en bil, en kontrakt, en transaksjon... Sammenhengstypene (eng. relationships) er ofte verb, f.eks. arbeide, tilhøre, inneholde, består av, tar, er... Attributt beskriver egenskaper til entiteter og sammenhenger av en gitt type. Prøv og ikke heng deg for mye opp i nøkler når du designer ER-diagram. Personlig mener jeg nøkler er unødvendig å spesifisere i diagrammet (selv om bokas UML-notasjon gjør dette), fornuftige nøkler er noe man må finne når en oversetter til tabeller senere. Om en entitet er sterk eller svak (kap. 6.2.1), synes jeg heller ikke er så interessant. Avhengighetene en

entitetstype har til andre entitetstyper kommer uansett fram ved å se på sammenhengstypene i diagrammet. Det viktige blir altså å finne fornuftige entitetstyper og sammenhengstyper. Videre må du lære deg forskjellen på en-til-en (1:1), en-til-mange (1:*,ofte også kallt1:n) og mange-til-mange (*:* (M:N)). Merk deg alle de ulike sammenhengstypene som er omtalt i kap. 6.4 - dette er viktig stoff. Når du skal finne mulige sammenhengstyper når du tegner ERdiagram, må du tenke entall og på entiteter. F.eks. hvis du har entitetstypen STUDENT, still deg spørsmålet: Hvilke sammenhenger kan én student ha? Hvis du tenker flertall blir det rot (mange studenter har mange sammenhenger, alt blir mange-til-mange). Merk deg at en-til-mange er mest vanlig, deretter mange-til-mange. En-til-en er i praksis ganske sjelden, så hvis du ender opp med mange 1:1 i et diagram, er sikkert de fleste av dem egentlig en-til-mange. Videre følger et par eksempler på ER-diagram og oversatte tabeller. 1.2. Eksempel: timeavtaler 1.2.1. Problemstilling Tabellene fra leksjon 6 er som følger: TIMEBESTILLING (ansattnr*, pasientnr*, dag*, tid) LEGE (ansattnr, legenavn) PASIENT (pasientnr, pasientnavn) LEGE_ROM (ansattnr*, dag, rom*) ROM_BEHANDLING (rom, behandling) Understekne attributter er primærnøkkel. Attributter merket * er fremmednøkler. Dette blir å gå litt i feil retning (ER-diagrammet er ment å komme før tabellene), men her er uansett et forslag til ER. side 2 av 5

1.2.2. Løsningsforslag (trinær sammenhengstype) Denne løsningen representerer en timebestilling som en trinær sammenheng mellom en pasient, lege og lege_rom. Den trinære sammenhengen har også et eget attributt, tid (tilsvarer attributtet i tabellen TIMEBESTILLING). Kardinalitene viser at både pasient, lege og lege_rom kan være involvert i null, en eller mange timebestillinger. Alternativt kunne Timebestilling vært en egen entitetstype med -sammenhengstyper til PASIENT, LEGE og LEGE_ROM. Fordelen med den trinære løsningen her er at vi får vist at en Timebestilling alltid består av en sammenheng mellom pasient, en lege og et lege_rom (denne semantikken kommer ikke fram med tre binære sammenhenger). I tillegg inneholder ER-diagrammet en en-til-mange-sammenheng mellom lege og lege_rom (et lege_rom har alltid en lege, en lege kan være på 0,1 eller flere lege_rom (riktignok ikke på samme tidspunkt, men det får vi ikke vist i diagrammet)). Og en en-til-mange mellom lege_rom og rom_behandling (et lege_rom er alltid på et rom, mens et rom kan brukes av 0, 1 eller flere lege_rom). 1.3. Eksempel: gammel eksamensoppgave Oppgave fra høsten 2002: 1.3.1. Problemstilling: Salg av nye biler i Norge Vi tenker oss at bilbransjen skal etablere en sentral database over alt salg av nye personbiler i Norge og at det er laget følgende situasjonsbeskrivelse/kravspesifikasjon for databasen: Hver bil som blir solgt har et registreringsnummer som entydig identifiserer bilen. For hver bil registreres i tillegg en salgsdato, farge og kjøpesum. side 3 av 5

En bil blir solgt av en bilforhandler i en bestemt uke i et bestemt år. For bilsalget registrerer man hvilken ukedag (mandag, tirsdag, ) salget skjer. En bilforhandler selger ett eller flere bilmerker (SAAB, Volvo, ). Hvert bilmerke tilbyr en mengde bilmodeller (V40, V70, S80, ) som leveres i en del modelltyper (sedan, stasjonsvogn, ulike motorer, osv.). Innen hvert bilmerke er bilmodellnavn entydige. Innen hver bilmodell er biltypebetegnelsene entydige. Hver bilforhandler hører til ett handelsdistrikt som har et entydig navn (Trondheim, Inntrøndelag, Namdalen, ). Hvert handelsdistrikt er på sin side del av en landsdel (Midt-Norge, Nord-Norge, ). Til både handelsdistrikt og landsdeler skal det kunne registreres en beskrivende tekst. For en bilmodell skal man kunne registrere året bilmodellen ble lansert og en kort beskrivelse. For en bilmodelltype skal man kunne registrere type bil (sedan, stasjonsvogn, kombi, flerbruksbil, ), drivstofftypen (bensin, diesel, ), motorvolum, motoreffekt, antall sitteplasser, bagasjeromsvolum, egenvekt og maksimal nyttelast. Alle biler som blir solgt er en av bestemt bilmodelltype. Databasen skal blant annet brukes til å analysere hvordan bilsalget fordeler seg i løpet av året i ulike deler av landet. For det inneværende året er det viktig at brukerne enkelt kan finne ut hvilke uker det er registrert data for. Dersom det er ekstraordinære forhold som påvirker salget i en uke, skal det være mulig å legge inn en forklarende kommentar til denne uken (uke 13 og 14 var for eksempel påskeuker i 1999). a) Lag en konseptuell datamodell (ER-modell) for denne databasen. Du velger selv om du vil bruke kråkefotnotasjonen (Modelator) eller UML-notasjonen (lærebokas notasjon). Gjør kort rede for de forutsetninger og antagelser som du finner det nødvendig å gjøre. b) Du skal oversette den konseptuelle datamodellen (ER-modellen), som du kom fram til i a), til relasjonell form (relasjonsmodellen) uansett hvilken notasjon du brukte til å tegne modellen. Husk å merk primær- og fremmednøkkel. side 4 av 5

1.3.2. Løsningsforslag: a) BIL +reg_nr {PK} +salgs_dato +farge +kjøpesum +selger BILSALG ukedag +selges av BILFORHANDLER +forhandler_navn {PK} HANDELSDISTRIKT +distrikt_navn {PK} +omfatter +blir gjort i +del av UKE +uke_nr {PK} +år +kommentarer LANDSDEL +landsdel_navn {PK} BILMODELLTYPE +type_navn {PK} +drivstoff_type +motor_volum +motor_effekt +ant_sitte_plasser +bagasjeroms_volum +egenvekt +maks_nyttelast BILMODELL +modell_navn {PK} +lanserings_år BILMERKE +merke_navn {PK} b) BILMERKE(merke_navn) BILMODELL(modell_navn, lanserings_år, beskrivelse, merke_navn*) BILMODELLTYPE(type_navn, drivstoff_type, motor_volum, motor_effekt, ant_sitte_plasser, bagasjeroms_volum, egenvekt, maks_nyttelast, modell_navn*) BIL(reg_nr, salgs_dato, farge, kjøpesum, type_navn*) BILFORHANDLER(forhandler_navn, distrikt_navn*) BILSALG(regn_nr*, forhandler_navn*, uke_dag, uke_nr*) UKE(uke_nr, år, kommentarer) HANDELSDISTRIKT(distrikt_navn, beskrivelse, landsdel_navn*) LANDSDEL(landsdel_navn, beskrivelse) 1.3.3. Kommentarer: Legg merke til at BILSALG i ER-diagrammet er representert som en mange-til-mange sammenheng mellom BIL og BILFORHANDLER. Dette er logisk fordi et salg her er noe som skjer mellom en bil og en bilforhandler, og derfor et dårlig eksempel på en selvstendig entitet. Men siden BILSALG har en egen sammenhengstype til UKE kunne den like godt ha vært tegnet inn som en entitetstype (i UML godtas det at en tegner sammenhenger til BILSALG her). Ellers er det bare vanlige en-til-mange i dette diagrammet. side 5 av 5