dbsys.info

Løsningsforslag til kapittel 14

Oppgave 1

Løsningsforslag er ikke laget ennå.

Oppgave 2a

Normalisert datamodell for studieomtaler.

Jeg tok utgangspunkt i studieomtalene for (daværende) Høgskolen i Telemark fra 2006, og plukket ut 1 studium og 6 emner: Rådatafil.

Jeg valgte å ta med følgende informasjon:

Studieomtaler

Modellen åpner altså for å lagre flere versjoner av studieomtalene, en for hvert studieår. Hver versjon inneholder beskrivelser av mange studier og emner.

Et studium inneholder mange emner, og et emne kan inngå i mange studier. Attributtet semester er et tall, som for eksempel sier at emne X er lagt til 4. semester i studium Y. Identifikator for Oppbygging er satt sammen av identifikator for Studium (Aar og StudiumKode) og identifikator for Emne (EmneKode).

Attributtene Faginnhold, Opptak, Omfang, Innhold og Evaluering er tekster, som kan lagres med datatype VARCHAR eller CLOB (eller kanskje XML).

Logisk tabellstruktur blir som følger:

Oppgave 2b

XML-representasjon av studieomtalene.

Filene er antatt lagret på katalog https://dbsys.info/Databasesystemer/2_Losninger/kap14xml. For testing bør man laste ned filene og erstatte referanser til denne katalogen med egen webkatalog.

Oppgave 2c

XML Schema for studieomtalene.

Oppgave 2d

Her er to validatorer du kan prøve:

Oppgave 2e

De delene av studieomtalene som er plukket ut følger et såpass strengt mønster at det går greit å lage en normalisert datamodell (tabell-representasjon). Jeg mener at man i slike tilfeller bør velge en ren tabellrepresentasjon fordi jeg synes at en slik struktur er enklere å jobbe med enn tilsvarende XML-representasjon (blant annet ved bruk av SQL). Det finnes nok dem som er uenige i dette!

Hvis man ønsker en friere struktur, for eksempel at de tekstlige beskrivelsene (faginnhold for studier, evaluering for emner med flere) skal kunne bestå av flere "avsnitt" med formatering som lister, fet skrift og så videre, blir en normalisert datamodell for streng. I slike tilfeller kan en hybridmodell være hensiktsmessig. I f.eks. Oracle kan man da definere at visse kolonner innholder XML (datatype XMLType).

Oppgave 3

Logisk datamodell

En logisk tabellstruktur for en relasjonsdatabase kan se ut som følger:

Som vist under kan vi representere denne tabellstrukturen ganske direkte i XML.


<?xml version="1.0" encoding="ISO-8859-1"?>
<prosjektdata>
  <prosjekt prosjektnr="1">
    <budsjett>520000</budsjett>
    <startdato>20.03.2024</startdato>
    <sluttdato>16.02.2025</sluttdato>
  </prosjekt>
  <prosjekt prosjektnr="2">
    <budsjett>675000</budsjett>
    <startdato>19.12.2024</startdato>
  </prosjekt>
  <ansatt ansnr="101">
    <fornavn>Per</fornavn>
    <etternavn>Hansen</etternavn>
  </ansatt>
  <ansatt ansnr="102">
    <fornavn>Kari</fornavn>
    <etternavn>Lie</etternavn>
  </ansatt>
  <prosjektdeltakelse prosjektnr="1" ansnr="101">
    <antalltimer>10</antalltimer>
  </prosjektdeltakelse>
  <prosjektdeltakelse prosjektnr="1" ansnr="102">
    <antalltimer>15</antalltimer>
  </prosjektdeltakelse>
  <prosjektdeltakelse prosjektnr="2" ansnr="102">
    <antalltimer>14</antalltimer>
  </prosjektdeltakelse>
</prosjektdata>

Oppgave 4

Bilutleie

Løsningsforslag er ikke laget ennå.

Oppgave 5

Det er ikke laget løsningsforslag til KI-oppgavene (oppgaveteksten beskriver hva man skal gjøre).