IN2090-ukesoppgaver: Uke 2

Relasjonsmodellen og relasjonsalgebra

Oppgave 1

Gitt f?lgende relasjoner:

Student

Navn F?dselsdato StudentNr 澳门葡京手机版app下载 Studie
Ola 1997-01-01 1234 Sognsveien 1 Informatikk
Kari 1995-10-12 1032 Sognsveien 1 Matematikk
Sara 1991-03-09 2501 Osloveien 4 Informatikk
Per 4510 Sognsveien 1 Informatikk

Gruppel?rer

StudentNr Kurs Semester
1234 IN2090 H18
2501 IN2090 H18
2501 IN1234 V19

hvor vi antar at StudentNr er unikt for hver student og at en gruppel?rer kun kan v?re gruppel?rer i ett kurs én gang per semester. Videre er Gruppel?rer(StudentNr) en fremmedn?kkel til Student(StudentNr).

a)

Hva er begrepene relasjonsnavn, attributt og tuppel i relasjonene over?

L?sningsforslag:

  • Relasjonsnavn: Student og Gruppel?rer
  • Attributter: For Student er Navn, F?dselsdato, StudentNr, 澳门葡京手机版app下载 og Studie og for Gruppel?rer er StudentNr, Kurs og Semester
  • Tuppel: Alle radene, f.eks. (Ola, 1997-01-01, 1234, Sognsveien 1, Informatikk) og (1234, IN2090, H18)

b)

Finn alle supern?kler og kandidatn?kler for relasjonene over.

L?sningsforslag:

Supern?kler:

  • Student: Siden StudentNr er unikt er alle mengder med attributter som inneholder StudentNr en supern?kkel, slik som {StudentNr, Navn} eller {F?dselsdato, Studie, StudieNr}
  • Gruppel?rer: Ingen av attributtene er alene unike. Derimot vet vi at hver student kun kan v?re gruppel?rer i ett kurs hvert semester, alts? m? kombinasjonen av gruppel?rer og semester v?re unik. Dermed blit {StudentNr, Semester} en supern?kkel. Ellers vet vi jo at alle attributtene sammen alltid utgj?r en supern?kkel. Alts? er supern?kkelene for relasjonen {StudentNr, Semester} og {StudentNr, Kurs, Semester}

Kandidatn?kler:

  • Student: Siden StudentNr er unikt vil for alle studenter vil {StudentNr} v?re en minimal supern?kkel, alts? en kandidatn?kkel. Alle andre supern?kler inneholder overfl?dige attributter i tillegg til StudentNr og er dermed ikke minimale
  • Gruppel?rer: For supern?kkelen {StudentNr, Kurs, Semester} kan vi fjerne Kurs og fortsatt sitte igjen med noe som er en supern?kkel ({StudentNr, Semester}), s? det er ikke en kandidatn?kkel. Derimot kan vi ikke fjerne noe fra den andre supern?kkelen, {StudentNr, Semester}, og fortsatt sitte igjen med en supern?kkel, siden ingen av attributtene til relasjonen alene utgj?r en supern?kkel. Alts? er {StudentNr, Semester} eneste kandidatn?kkel for Gruppel?rer.

c)

Forklar hva f?lgende uttrykk i relasjonsalgebra betyr:

πf?dselsdato(σnavn?=?′Sara(Student))

L?sningsforslag:

Uttrykket finner f?dselsdato til alle studenter med navn Sara.

d)

Skriv et uttrykk i relasjonsalgebraen som finner f?lgende:

  1. navn p? de studentene som bor i Sognsveien 1
  2. studentNr p? alle gruppel?rere i IN2090 h?sten 2018
  3. studentNr til alle studenter som studerer informatikk
  4. For alle studenter som bor i Sognsveien 1, finn de som studerer matematikk
  5. Finn adressen til alle studenter som har et studentNr mellom 1000 og 3000
  6. Navn og f?dselsdato p? alle gruppel?rere i IN2090 h?sten 2018

L?sningsforslag:

  1. πnavn(σadresse?=?′Sognsveien1′(Student))
  2. πstudentNr(σkurs?=?′IN2090′?∧?semester?=?′H18′(Gruppel?rer))
  3. πstudentNr(σstudie?=?′Informatikk(Student))
  4. σstudie?=?′Matematikk′?∧?adresse?=?′Sognsveien1′(Student)
  5. πadresse(σstudentNr?<?3000?∧?studentNr?>?1000(Student))
  6. πnavn,?f?dselsdato(σkurs?=?′IN2090′?∧?semester?=?′H18′(Gruppel?rer)???Student)

Oppgave 2

Gikk f?lgende relasjoner:

Foreleser

Id Navn Kontor KursID ?r
344 Per C80 IN2090 2020
453 Brian C81 IN2090 2020
567 Jon C82 IN1010
563 Maria C81 IN3420 2019
564 Kari C80 IN2412 2020
876 Per C83 IN3524 2019
980 Kari C80 IN3020 2018
687 Kari C84 IN3020 2019
345 Brian C85 IN2034 2020

Institutt

InstituttID AnsattID
I1 334
I2 453
I3 567
I1 563
I2 563
I1 876
I2 980
I3 687
I3 345
I3 111

Foreleser beskriver alts? forelesere, deres Id, navn, hvilket kontor de har, IDen til kurset de underviser og ?ret de underviser det kurset. Institutt sier hvilke institutter ulike ansatte er knyttet til.

Ved ? se p? eksempel-dataene, kan AnsattID v?re en fremmedn?kkel til Foreleser(Id)?

L?sningsforslag:

Nei, fordi Institutt(AnsattID) inneholder verdien 111 som ikke er inneholdt i Foreleser(Id).

Oppgave 3

Gitt f?lgende abstrakte signatur: R(A, B, C, D)

Alts?, en relasjon med navn R som har fire attributter (A, B, C og D).

Relasjonen har f?lgende supern?kler:

  • {B}
  • {A, B}
  • {B, C}
  • {B, D}
  • {C, D}
  • {A, B, C}
  • {A, B, D}
  • {A, C, D}
  • {B, C, D}
  • {A, B, C, D}

a)

Finn kandidatn?klene til R.

L?sningsforslag:

En kandidatn?kkel er jo en minimal supern?kkel, alts? skal m? vi finne de supern?klene hvor vi ikke kan fjerne ett attributt og fortsatt ha en supern?kkel:

  • {B}: Har bare ett attributt og er dermed en kandidatn?kkel
  • {A, B}: Vi kan fjerne A og fortsatt sitte igjen med en supern?kkel ({B}), og er dermed ikke en kandidatn?kkel
  • {B, C}: Kan fjerne C, alts? ikke kandidatn?kkel
  • {C, D}: Kan ikke fjerne C siden {D} ikke er en supern?kkel, og det samme gjelder fjerning av D, alts? er {C, D} en kandidatn?kkel
  • {A, B, C}: Kan fjerne (en av) b?de A og C, alts? ikke kandidatn?kkel
  • {A, B, D}: Kan fjerne (en av) b?de A og D, alts? ikke kandidatn?kkel
  • {A, C, D}: Kan fjerne A, alts? ikke kandidatn?kkel
  • {B, C, D}: Kan fjerne (en av) b?de C og D, alts? ikke kandidatn?kkel
  • {A, B, C, D}: Kan fjerne (en av) A, B, C og D, alts? ikke kandidatn?kkel

Alts? har R kandidatn?klene {B} og {C, D}.

b)

Hvilke n?kkel-attributter har R?

L?sningsforslag:

Siden {B} og {C, D} er kandidatn?klene til R er alts? B, C, og D n?kkelattributtene til R.