Databasteknik
för D1, SDU1 m fl
tisdag 15 januari 2013
Gäller som tentamen för:
DT1026 Datateknik A, Databasteknik, provkod 0100
DT1030 Datateknik A, Tillämpad datavetenskap, provkod 0310
DT1012 Datateknik A, Databasteknik, provkod 0100
DT1007 Datateknik A, Tillämpad datavetenskap, provkod 0310
Hjälpmedel: | Inga hjälpmedel. |
Poängkrav: |
Maximal poäng är 34.
För betyget 3 respektive G krävs 21 poäng. För den som följt kursen hösten 2012 ger varje i tid inlämnad inlämningsuppgift en extra poäng. Den som inte gått kursen hösten 2012 får dessa (fem) extrapoäng ändå. |
Resultat: | Meddelas på kursens hemsida eller via e-post senast tisdag 5 februari 2013. |
Återlämning av tentor: | Efter att resultatet meddelats kan tentorna hämtas på universitetets centrala tentamensutlämning. |
Examinator och jourhavande: | Thomas Padron-McCarthy, telefon 070 - 73 47 013. |
ER- och EER-diagram kan ritas på flera olika sätt. Om du använder en annan notation än kursboken, måste du förklara den notation som du använder.
Du behöver inte skriva create table-kommandon i SQL, men du ska ange vilka relationer som finns och vilka attribut varje relation innehåller. Ange också alla kandidatnycklar, vilken av dessa som är primärnyckel, samt vilka referensattribut som finns och vad de refererar till.
Implementationen ska vara bra.
a) Det finns bara en mask som heter Max. Vad har han för ID-nummer och längd?
b) Hur långa är maskarna som heter Bengt och Kurt?
c) Vilka maskar bor i röda äpplen? Vi vill veta dessa maskars ID-nummer och namn.
d) Hur många maskar bor i äpplen som växer på träd som sköts om av en trädgårdsmästare som heter Göran Grön?
e) Vilket äpple bor det flest maskar i? Vi vill veta det äpplets ID-nummer och färg.
b) Ge två olika exempel på integritetsvillkor som databasen kan behöva.
ID | Anställd | Timmar | Månad |
---|---|---|---|
1 | 7 | 160 | september |
2 | 8 | 48 | oktober |
3 | 6 | 144 | november |
4 | 9 | 160 | augusti |
5 | 9 | 100 | oktober |
6 | 1 | 80 | september |
7 | 8 | 140 | augusti |
8 | 9 | 184 | november |
9 | 3 | 48 | augusti |
10 | 2 | 184 | november |
11 | 1 | 100 | november |
ID är primärnyckel i tabellen. Anställd och Månad bildar ytterligare en kandidatnyckel.
Ett möjligt utseende på resultatet:
ID | Anställd | Timmar | Månad |
---|---|---|---|
8 | 9 | 184 | november |
10 | 2 | 184 | november |
start transaction; insert into Tidrapport values (12, 7, 101, 'oktober'); insert into Tidrapport values (13, 7, 122, 'november'); insert into Tidrapport values (14, 7, 200, 'december'); commit;
a)
Antag att strömmen går precis efter att det första insert-kommandot körts, och databasservern stannar. Hur kommer Tidrapport-tabellen att se ut när systemet har startats om?
b)
Antag att strömmen går precis efter att commit-kommandot körts, och databasservern stannar. Hur kommer Tidrapport-tabellen att se ut när systemet har startats om?
c)
Vad händer om man i stället för commit ger kommandot rollback? Hur kommer Tidrapport-tabellen att se ut?
d)
Antag att precis innan vi skriver commit så är det någon annan som loggar in i databasen och skriver det här kommandot:
insert into Tidrapport values (12, 8, 34, 'november');
b) Vad är XML, och vad kan man ha det till?
c) Ange tre olika databashanterare. Skriv för var och en åtminstone någon egenskap som skiljer den från de andra.