Løsningsforslag er ikke laget ennå.
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:
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:
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.
XML Schema for studieomtalene.
Her er to validatorer du kan prøve:
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).
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>
Bilutleie
Løsningsforslag er ikke laget ennå.
Det er ikke laget løsningsforslag til KI-oppgavene (oppgaveteksten beskriver hva man skal gjøre).