ksamen 2013 Uden hjælpemidler - normeret til 60 minutter 1
er-diagram 1 /R iagram til relationelle model xported at: Mon May 13 2013 22:43:32 GMT+0200 (ST) Untitled etragt Page figur 1. Hvordan oversættes den bedst fra /R modellen til den relationelle model. Siden PR nummerplade Navn Person jer il Farve Telefon Mærke Figure 1: /R diagram Person(cpr, navn, telefon) il( nummerplade, farve, mærke) jer( cpr, nummerplade, siden) Person(cpr, navn, telefon, siden, nummerplade) il( nummerplade, farve, mærke) Person(cpr, navn, telefon) il( nummerplade, farve, mærke, cpr, siden) jer( cpr, navn, telefon, nummerplade, farve, mærke, siden) Person(cpr, navn, telefon) il( nummerplade, farve, mærke) jer( cpr, nummerplade, siden) er det rigtige svar. Her har en bil 0 eller 1 ejer. Ingen af de andre løsninger respekterer dette. 2
2 Relationel algebra ( point) etragt figur 2. Hvilket af nedenstående udtryk er træet en direkte representation for? π.w.v=.z σ.u 42.x=.y Figure 2: Relationel algebra træ π.w (σ.u 42 (.x=.y.v=.z )) π.w ((σ.u 42 (.x=.y )).v=.z ) π.w (.v=.z (σ.u 42 (.x=.y ))) π.w ((σ.u 42 ().x=.y ).v=.z ) π.w (σ.u 42 (.v=.z ).x=.y ) er det rigtige svar. 3
3 Relationel algebra ( point) ntag at relationerne R og S har henholdsvis n og m tupler. et maksimale antal tupler der kan være i resultatet af: R S er : n : m : n m : n + m e: n m F: MX( n, m) G: MIN( n, m) er det rigtige svar, og sker hvis der ikke er ens tupler i R og S, således at der ikke fjernes tupler fra R 4
SQL: rug nedenstående data i de følgende opgaver etragt følgende to relationer: Fodboldhold(licens_nummer, holdnavn, hjemby, bødekasse ) Fodboldkamp(kamp_id, hjemmehold_licens, udehold_licens, hjemmehold_mål, udehold_mål) Her er et udsnit af data der ønskes gemt i relationerne: licens_nummer holdnavn hjemby bødekassen 452415 ndeby IF ndeby 20,50 875412 Svaneholm oldklub Svaneholm 240,75 241527 F Gåserød Gåserød 1983,00 541326 rumleby K Svaneholm NULL Figure 3: Instans af Fodboldhold kamp_id hjemmehold_licens udehold_licens hjemmehold_mål udehold_mål 4258 452415 875412 0 0 4259 875412 241527 2 1 4260 875412 452415 1 1 Figure 4: Instans af Fodboldkamp 5
4 SQL Join Hvilke af nedenstående forespørgsler vil give dette output, når de afvikles på instanserne i figur 4 og 3 licens_nummer holdnavn kamp_id hjemmehold_mål ---------------+--------------------+---------+---------------- 452415 ndeby IF 4258 0 875412 Svaneholm oldklub 4259 2 875412 Svaneholm oldklub 4260 1 541326 rumleby K NULL NULL 241527 F Gåserød NULL NULL SLT H.licens_nummer, H.holdnavn, K.kamp_id, K.hjemmehold_mål FROM Fodboldhold H INNR JOIN Fodboldkamp K ON H.licens_nummer = K.hjemmehold_licens; SLT H.licens_nummer, H.holdnavn, K.kamp_id, K.hjemmehold_mål FROM Fodboldhold H LFT JOIN Fodboldkamp K ON H.licens_nummer = K.hjemmehold_licens; SLT H.licens_nummer, H.holdnavn, K.kamp_id, K.hjemmehold_mål FROM Fodboldhold H RIGHT JOIN Fodboldkamp K ON H.licens_nummer = K.hjemmehold_licens; SLT H.licens_nummer, H.holdnavn, K.kamp_id, K.hjemmehold_mål FROM Fodboldhold H FULL OUTR JOIN Fodboldkamp K ON H.licens_nummer = K.hjemmehold_licens; SLT H.licens_nummer, H.holdnavn, K.kamp_id, K.hjemmehold_mål FROM Fodboldhold H NTURL JOIN Fodboldkamp K; og er dem der gør 6
5 SQL - RT TL ( point) etragt instansen for Fodboldhold i figur 3, og vurder hvilke af nedenstående RT TL statements der kunne have oprettet tabellen, så den kan indeholde det angivne data. RT TL Fodboldhold( licens_nummer INTGR, holdnavn VRHR(18), hjemby VRHR(18) UNIQU, bødekassen RL ); RT TL Fodboldhold( licens_nummer INTGR PRIMRY KY, holdnavn VRHR(18) UNIQU, hjemby VRHR(18), bødekassen RL HK(bødekassen > 0) ); RT TL Fodboldhold( licens_nummer INTGR, holdnavn VRHR(18), hjemby VRHR(18), bødekassen RL ); RT TL Fodboldhold( licens_nummer INTGR, holdnavn VRHR(16), hjemby VRHR(18), bødekassen RL ); RT TL Fodboldhold( licens_nummer INTGR, holdnavn VRHR(18) NOT NULL, hjemby VRHR(18), bødekassen RL NOT NULL ); 7
og er rigtige, fejler med hjemby, der ikke er unique, fejler med holdnavn der er for langt, og fejler da bødekassen skal kunne være NULL 8
6 SQL ( point) Hvis Fodboldkamp er oprettet på denne måde: RT TL Fodboldkamp( kamp_id INTGR PRIMRY KY, hjemmehold_licens INTGR NOT NULL, udehold_licens INTGR NOT NULL, hjemmehold_mål INTGR FULT 0, udehold_mål INTGR FULT 0, FORIGN KY (hjemmehold_licens) RFRNS Fodboldhold(licens_nummer), FORIGN KY (udehold_licens) RFRNS Fodboldhold(licens_nummer) ); fgør om følgende udsagn er sande eller falske: et er ikke muligt at indsætte NULL værdier nogen steder i tabellen INSRT INTO Fodboldkamp VLUS (4262, 452415, 875412); er en gyldig indsættelse. INSRT INTO Fodboldkamp(kamp_id, hjemmehold_mål, udehold_mål) VLUS (4263, 1, 2); er en gyldig indsættelse. INSRT INTO Fodboldkamp VLUS (4262, 452415, 875412, -1, 2); er en gyldig indsættelse. LT FROM Fodboldkamp WHR kamp_id IS NOT NULL; vil altid slette alt i tabellen. er falsk, man kan eksplicit indsætte NULL som mål. er sand, den indsætter en 0-0 kamp da alle ikke udfyldte værdier har defaults. er ikke gyldig, da holdene ikke har en værdi og ikke må være NULL. og er sandt. 9
7 Normalisering ( point) etragt relationen R ( ) med følgende functional dependencies: F := {,, ). Hvad er closure af, dvs {, } + er det rigtige svar 10
8 Normalisering ( point) etragt igen relationen R ( ) med følgende functional dependencies: F := {,, ). ngiv hvilke af nedenstående der er keys (ikke superkeys) F er det rigtige svar. I eksamen var dette ikke registreret korrekt, men skal korrigeres. 11
9 Normalisering ( point) etragt relationen R ( ) med følgende functional dependencies: F := {,, }. Hvilket af nedenstående udsagn er rigtigt Relationen er på oyce-odd Normal Form (NF) Kun overtræder NF Kun overtræder NF Kun overtræder NF lle tre angivne funktional dependencies overtræder NF er den rigtige, da, og ikke er keys i relationen. 12
10 Transaktioner ( point) Match --I- til de rigtige beskrivelser 1 Når transaktionen er gennemført er den gemt og kan ikke længere rulles tilbage. 2 Transaktionen ses som foregående alene, afskåret fra omverdenen, så udefrakommende kan ikke se at en transaktion er i gang, inden den er afsluttet. 3 nten udføres transaktionen eller også udføres den ikke. 4 Systemet er altid i en konsistent tilstand, da transaktionens parter er synkroniserede. I : tomicity: nten udføres transaktionen eller også udføres den ikke. : onsistency: Systemet er altid i en konsistent tilstand, da transaktionens parter er synkroniserede. I: Isolation: Transaktionen ses som foregående alene, afskåret fra omverdenen, så udefrakommende kan ikke se at en transaktion er i gang, inden den er afsluttet. : urability: Når transaktionen er gennemført er den gemt og kan ikke længere rulles tilbage. 13
11 + træ ( point) +tree +tree 11 24 11 24 1 3 8 9 11 20 21 23 24 29 33 34 b-trees 1 3 11 19 25 24 29 +tree (a) xported at: Thu May 16 2013 00:31:28 GMT+0200 (ST) +tree (b) 17 11 24 5 6 17 19 1 3 11 20 24 29 +tree (c) (d) 11 24 2 11 19 24 29 (e) Figure 5: Forskellige + træer ngiv hvilke af + træerne i figur 5 der er gyldige, c og er gyldige. overholder ikke rækkefølgen i bladene og har et blad der er mindre end halvt fyldt. 14
extensible-hashing xported at: Thu May 16 2013 00:44:40 GMT+0200 (ST) xtensible Hashing 12 xtensible Hashing ( point) 00 i = 2 0000 0100 1 01 10 1011 2 11 1110 1111 2 Figure 6: xtensible hashing struktur, med hashfunktionen h(x) = x Hvilke af nedenstående værdier vil kunne indsættes i hash strukturen i figur 6, uden at du vil skulle fordoble pointer arrayet? 0011 0101 1000 1100 0110,, og kan. vil ramme i spand 11, og den får en fordobling til at ske. 15
13 Linear Hashing ( point) etragt figur 7 Original og vurder hvilken af de følgende figurer der fremkommer, når værdien 1011 er indsat i = 2 n = 3 r = 4 em: f = 2 pmax = 0.8 0 0000 1 1001 1111 2 1010 Linear Hashing Figure 7: Linear hashing struktur, med hashfunktionen h(x) = x Linear Hashing Linear Hashing i = 2 n = 3 r = 5 em: f = 2 pmax = 0.8 0 0000 1011 1 1001 1111 2 1010 (a) Linear Hashing i = 2 n = 3 r = 5 em: f = 2 pmax = 0.8 0 0000 1 1001 1111 2 1010 (b) 1011 i = 3 n = 4 r = 5 em: f = 2 pmax = 0.8 0 0000 1 1001 1111 2 1010 3 1011 Linear Hashing i = 3 n = 4 r = 5 em: f = 2 pmax = 0.8 0 0000 1 1001 2 1010 3 1011 1111 (c) (d) i = 2 n = 3 r = 4 em: f = 2 pmax = 0.8 0 0000 1 1001 1111 2 1010 1011 (e) Figure 8: Forskellige linear hashing strukturer et er figur der er den der fremkommer når der er indsat. 16
14 Sandt falsk ( point) Hvilke af nedenstående udsagn er sande: SUM(salary)/OUNT(*) vil give samme resultat samme som VG(salary), for en tabel med mindst 3 rækker. losure af attributterne i en superkey er alle attributterne i en relation t index kan få indsættelser til at gå langsommere t +træ kan godt bestå af et enkelt blad, som så også er roden. er falsk, da OUNT(*) tæller NULL værdier med. Herved er det ikke sikkert at det giver det same resultat., og er alle sande. 17