Løsningsforslag eksamen i IN

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

Oppgaver Oppgave a: Sett opp mulige relasjoner

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

Integritetsregler i SQL

Databaser: Relasjonsmodellen, del I

Repetisjon: Normalformer og SQL

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering?

Integritetsregler i SQL. Primærnøkler

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

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

SQL Structured Query Language

Integritetsregler i SQL

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

Normalisering. Hva er normalisering?

SQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks.

EKSAMEN DATABASER

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

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

EKSAMEN 6102 / 6102N DATABASER

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet. Løsningsforslag

SELECT DISTINCT Fornavn, Etternavn, Programtittel FROM Program P, Medvirkende M, Deltagelse D. SELECT Tilgjengelighet FROM Program

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

INF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

INF1300 Introduksjon til databaser

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

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

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

INF1300 Introduksjon til databaser

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

SQL 3: Opprette tabeller, datainnsetting og utsnitt

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

INFO122 Innføring i databaser. Oblig 2. av Frode H. Pedersen, Kjartan B. Michalsen og Kristin Breivik

INF1300 Introduksjon til databaser

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

SQL Structured Query Language

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Ekvivalente stier (Equivalence of Path, EOP) i storm

Dagens tema: Oppdateringsanomalier Normalformer

Skisse til løsning av eksamensoppgave i TDT4145 Datamodellering og databasesystemer

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning onsdag 22.

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning mandag 14.

UNIVERSITETET I OSLO

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

Normalisering. Partielle avhengigheter Transitive avhengigheter Normalformer: 1NF, 2NF, 3NF, BCNF Normaliseringsstegene Denormalisering

Metaspråket for å beskrive grammatikk

Spørsmålskompilering del 1

Løsningsforslag til eksamen i INF1000 våren 2006

Relasjoner terminologi

Relasjonsdatabasedesign

Kravspesifikasjon eksamen - personlig

Oppdateringsanomalier Normalformer

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

UNIVERSITETET I OSLO

Join. Intuitivt: Skjøte sammen to relasjoner. Intuitivt: 1. Beregn R S 2. Velg ut de tuplene som tilfredsstiller joinbetingelsen C

INF1300 Relasjonsalgebra og SQL, mengder og bager. Lysark for forelesning v. 2.1

Skolekorpset. Løsningsforslag til oppgave gitt i forelesning om normalisering LC238D Datamodellering og databaser: Normalisering

MAT1030 Plenumsregning 1

Datamodellering og databaser SQL, del 2

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

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

Datamodellering og databaser SQL, del 2

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

1. Innføring i bruk av MySQL Query Browser

INF1300 Introduksjon til databaser

1. Normalisering Kommentarer til læreboka

Normalformer or Normalisering 1NF, 2NF, 3NF, BCNF

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

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

MAT1030 Diskret Matematikk

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

UNIVERSITETET I OSLO. Oppskriftsbok. FDer og MVDer Relasjonsalgebra. Institutt for Informatikk. INF3100 Ellen Munthe-Kaas 1

INF1300 Relasjonsalgebra. Et matematisk fundament for å forstå SQL-setninger

Datamodellering og databaser SQL, del 2

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

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

INF1300 Introduksjon til databaser: SQL Structured Query Language

Oppgave 1 Datamodellering 25 %

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

UNIVERSITETET. Relasjonsdatabasedesign

For alle ikke-trivielle FDer X A i R: eller A er et nøkkelattributt i R eller X K for noen kandidatnøkkel K i R

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

UNIVERSITETET I OSLO

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Oppskriftsbok. FDer og MVDer - oversikt: se s. 3 Relasjonsalgebra - oversikt: se s. 45

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

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

Løsningsforslag matoppskrifter modellering

UNIVERSITETET. triggere og views. Institutt for Informatikk. INF Arne Maus 1

Transkript:

Løsningsslag eksamen i IN112 14.12.1992 1 A Symbolene σ, π og betegn henholdsvis seleksjon, projeksjon og naturlig join. Akt-utlån σ ER-NULL(Returdato) IDAG - Lånedato > 28 (Utlån) Svar1 Lån Akt-utlån Bok Avdeling Svar π Navn, Adresse, Forfatt, Tittel (Svar1) SELECT Navn, Adresse, Forfatt, Tittel FROM Avdeling A, Lån L, Bok B, Utlån U WHERE ER-NULL(Returdato) IDAG - L.Lånedato > 28 A.Avdelingskode = L.Avdelingskode L.Lån-nr = U.Lånnr U.ISBN = B.ISBN U.Eksemplar = B.Eksemplar 1 B Mk: 4NF og 5NF ikke elest, så vi godtar svarene BCNF og 5NF (=PJNF) om hvandre. Avdeling: Lån: Bok: Utlån: Ingen avhengighet ut ov de som komm fra primærnøkkelen. Svar: BCNF BCNF (en ekstra kandidatnøkkel ødelegg ikke normalmen). At ISBN (Forfatt, Tittel, Utgivelsesår), strid mot 2NF siden ISBN bare en del av primærnøkkelen. Svar: 1NF. Siden (ISBN, Lån-nr, Lånedato) Eksemplar, vil (ISBN, Lån-nr, Lånedato) (ISBN, Eksemplar, Lånedato) som primærnøkkelen. Følgelig (ISBN, Lån-nr, Lånedato) en kandidatnøkkel og Utlån BCNF. (Dette en felle. Vi vent at mange gode student vil svare 3NF. Ikke godta svaret BCNF hvis det ikke begrunnet.) For å få BCNF, må Bok splittes i to: Bok (ISBN, Forfatt, Tittel, Utgivelsesår) og Eksemplar (ISBN, Eksemplar, Kjøpsår) henholdsvis ISBN og (ISBN, Eksemplar) som primærnøkl. 1 C Avd π Avdelingskode (Avdeling) Lån π ISBN, Eksemplar, Avdelingskode (Utlån Lån Avdeling) Svar π Forfatt, Tittel (Bok Lån div Avd)

1 D Dette spørsmålet fra den kursoriske delen av pensum. Spørsmålet kan puffes, det vil si at alle strykkarakt dette punktet rettes til 4,0. Hv av tabellene i relasjonsmodellen blir til en posttype i nettvksmodellen. H kan/bør følgende attributt fjnes da de finnes implisitt i CODASYL-settene: Avdelingskode i Lån ISBN, Eksemplar og Lån-nr i Utlån Dessuten vi følgende CODASYL-sett: Settnavn Avdeling Ei System Medlem Avdeling Settnavn Bøk Ei System Medlem BOK Settnavn Avd-låne Ei Avdeling Medlem Lån Settnavn Låns-utlån Ei Lån Medlem Utlån Settnavn Bøks-utlån Ei BOK Medlem Utlån De to siste bør muligens spesifises "Retention is mandatory" og "Instion is automatic", men det krev vi ikke at studentene kan. H en skisse: AVDELING LÅNER UTLÅN BOK Avdlåne Lånsutlån Bøksutlån Programmet: Les første lem Bok i Bøk; while DB-STATUS = 0 do begin Les første lem Utlån i Bøks-utlån; while DB-STATUS = 0 do begin if ER-NULL(Returdato) IDAG - L.Lånedato > 28 then begin Les ei Lån i Låns-utlån; Les ei Avdeling i Avd-låne; SkrivLinje(Navn, Adresse, Forfatt, Tittel); end; Les neste lem UTLÅN i Bøks-utlån; end; Les neste lem BOK i Bøk; end;

2 A Lagstatus (Lag-stat) {Lag,Ind} Øvelse (Ø#) {Landevei,Gate,Velodrom} Øvelsestype (Ø-type) Kjønn (Sex) {K,M} deltar i Påmelding meldt Lengde (m) {A,P} Amatørstatus (Am-stat) Land (Nasjkode) av meldt Antall (#) H kan kanskje den øvste 5-are kombinte entydigheten fjnes. Dessuten kan (selvfølgelig) Påmelding også uttrykkes som en kombint entydighet mellom Land og Øvelse. 2 B Etappe Øvelse Gateløp i runden Etappenr Antall rund i rund start /mål start i {N,Ø,S,V} Gate (Gatenavn) går i Retning (Retning) Lengde (m) Etappe kan (selvfølgelig) også uttrykkes som en kombint entydighet mellom Gateløp og Etappenr. Dessuten altså Gate og Gateløp sammen entydige Etappe. Det å objekte setningen Etappe ekvivalent å si at (Gateløp, Etappenr i runden ) preft refanse Etappe.

2 C utfør Funksjon (F-kode) Hjelp Pson (P#) het Navn lagled lagled tilhør Deltak Start Land Amatørstatus Kjønn Påmelding H legen (og lagleden) tatt blant hjelpne. Det OK å ha egne subtyp dem. Mk dobbeltrollestriksjonen som si at lagleden i den troppen han/hun led. Mk at vi får vi tre "Equivalence of path"-restriksjon fra Start til henholdsvis Kjønn, Amatørstatus og Land. 2 D kaptein Tid (hh:mm:ss) resultat resultat Startnr Bruddstatus (B-stat) Øvelse Start Den unære setningen " kaptein" ekvivalent en binær setning til en Boolsk variabel. Subset-restriksjonen si at bare kaptein kan få registrt tid. Følgelig må alle deltagne være kaptein i de individuelle øvelsene.

2 E Refanseklass kodekontroll : Amatørstatus, Kjønn, Øvelsestype, Lagstatus, Retning, Bruddstatus. Alle andre refanseklass undtrykkes. I de øvrige klassene primærnøklene fete og kandidatnøklene undstreket: Øvelse: Påmelding: Ø#, Øvelsestype, Lagstatus, Kjønn, Amatørstatus, Lengde Ø#, Land, Antall-meldt Gateløp: Ø#, Antall-rund-i, Start/mål Etappe: Pson: Hjelp: Deltag: Land: Start: Etappenr, Ø#, Gatenavn, Retning, Lengde P#, Navn, Land P#, Funksjon P#, Kjønn, Amatør-status Nasj-kode, P#--lagled Start-nr, Ø#, P#, Er-kaptein, Tid, Bruddstatus I oppgaveteksten det bedt om at tabellbeskrivelsene skal gjøres SQL. Det bør legges større vekt riktig grupping enn riktig SQL-syntaks. Som eksempel følg en SQL-definisjon i (tilnærmet) Ingres syntaks av relasjonen Start: CREATE TABLE Start ( Start-nr INT (4) NOT NULL, Ø# INT (4) NOT NULL, P# INT (4) NOT NULL, Er-kaptein INT (4) NOT NULL, Tid DATE, Brudd-status CHAR (1) ) CREATE UNIQUE INDEX StartIndeks-1 ON Start (Start-nr, Ø#) CREATE UNIQUE INDEX StartIndeks-2 ON Start (Ø#, P#) Den eneste restriksjonen som må/bør kommentes dobbeltrollestriksjonen som si at lagedne må komme fra det landet de laglede. Riktig uttrykt i relasjonsalgebra restriksjonen: r(land) r(π Nasjon,P# (Pson))

2 F SELECTStart.Ø#, Start-nr, Navn, Tid, Nasjon FROM Start, Pson, Øvelse WHERE Øvelsestype = 'Gateløp' Øvelse.Ø# = Start.Ø# Pson.P# = Start.P# ORDER BY Start.Ø#, Tid 2 G SELECTNavn, Nasjon, Lengde, Øvelsestype FROM Start, Pson, Øvelse WHERE Øvelse.Ø# = Start.Ø# Start.P# = Pson.P# Øvelse.Kjønn = 'K' Øvelse.Amatør-status = 'P' Start.tid IN [SELECT MIN(Tid) FROM Start S WHERE S.Ø# = Start.Ø# OR [ Start.Tid = NULL EXISTS ( SELECT * FROM Start S1, Pson P WHERE S1.P# = P.P# P.Nasjon = Pson.Nasjon S1.Er-kaptein S1.Tid IN ( SELECT MIN(Tid) FROM Start S2 WHERE S2.Ø# = S1.Ø# ) ) ] ] ORDER BY Nasjon Den innste hakeparentesen finn lagsyklist samme lag som kapteinen beste tid.