TDDB 48 Database technology

advertisement
2002-06-05
Lena Strömbäck, ankn 2324
Written exam in the course
TDDB 48 Database technology
Date: 2002-08-29
Time: 14-18
Room: GARNISONEN
Equippment: Two books are allowed
1. A language dictionary
2. A databse textbook, (notes in the book are allowed)
No separate papers are permitted
Limits for passing: The exam consists of two parts:
Part one requires 13 points for pass
Part two requires 13 points for pass
Grade 4 requires approx. 35 points
Grade 5 requires approx. 45 points
Results: Will be available within two weeks
Teacher in charge: Lena Strömbäck, 0709-39 6776, 013-16 46 99
Henrik André-Jönsson, 013-31 89 55, 070-354 74 03
A Swedish version of the questions is found at the back of each sheet.
Use one sheet for each question.
Write name and personal number on each sheet.
Part 1: Practical
1. ER- modelling (8 p)
The IT department at a large company is starting to have problems. The company has
grown very rapidly and they are starting to have problems with keeping track of the
company computer hardware. You are hired as a contract worker to help them design a
database that will help them to keep this kind of information. The following information is
kept in a paper based system and has to be included in the new system:
• The IT department builds all their computers from components. Each computer
consists of a number of components like graphic cards, network cards, mother boards,
memory capsules, hard disks, etc. When a components is bought it is given an id
number, and the component is marked with this id number so that it will be possible to
track each individual component.
• Every computer consists of a computer box, a graphic card, one or more hard drives,
etc. The finished computer is placed in a room, and gets a person responsible for that
computer.
• If something brakes the IT department will be able to see who delivered the faulty
component, when it was bought, what kind of warranty the component has and who to
contact in need of service.
Create a ER/EER diagram that the IT department can use as a base for implementing this
system.
2. EER to relations (6p)
Translate the following EER-schema to a relational schema. Explain and motivate how
the mapping is done.
PNum
Person
Name
O
Bonus
Employee
Speciality
n
Manager
n
1
1
contr.
manages
works at
n
Project
Adress
m
Id
Office
Id
Del1: Praktisk
1. ER1 (sv) 8 p
IT avdelningen på Dåtidsfabriken har börjat få problem. Då företaget växt explosionsartat
så börjar det bli svårt att hålla ordning på företagets datorpark. För att komma tillrätta med
situationen så hyr man in dig som konsult för att designa en databas som ska hålla ordning
på all information. Följande information lagras idag, och är sådan information som man
vill få med i det nya systemet.
• IT avdelningen bygger ihop alla sina maskiner själva och man köper in ett stort antal
lösa komponenter. Varje dator består alltså av ett antal komponenter som t.ex.
grafikkort, nätverkskort, moderkort, minneskappslar, hårddiskar m.m. När en
komponent köps in så får den ett nummer och den märks med detta nummer, dels för
att man ska kunna hålla koll på att anställda inte tar hem komponenter och dels för att
man ska kunna se så att anställda inte stoppar egna komponenter i företagets maskiner.
• Varje fysisk dator består sedan av en datorlåda, ett grafikkort, en eller flera hårddiskar
osv. Den färdiga datorn placeras sedan i ett rum, och den får en ansvarig person som
ska ansvara för den under drift.
• I den händelse att något går sönder vill IT avdelningen kunna se vem som har levererat
den trasiga komponenten, när den införskaffades, hur lång garanti tid det är samt
kontaktperson hos leverantören.
Skapa ett ER/EER diagram som IT avdelningen kan använda som underlag för att
implementera systemet.
2. EER till relationer 6 p
Översätt följande EER schema till ett relationsschema. Förklara och motivera hur
mappningen sker.
PNum
Person
Name
O
Bonus
Employee
Speciality
n
Manager
n
1
1
contr.
manages
works at
n
Project
Adress
m
Id
Office
Id
3. Normalization (5p)
Given the following relation:
MYDATABASE(StudentID, CourseID, StudentName, CourseName, StudentEmail,
StudentGradeList)
Example of content in the relation :
(<12, TDDB48, Karl Karlsson, Databasteknik, karka, [Labs: G, Ten1: 4]>,
<12, TDDB55, Karl Karlsson, Medieteknik, karka, [Proj1: G, Proj2: G, Labs: G]>,
<10, TDDB48, Nils, Nilsson, Databasteknik, nilni, [Labs: G]>)
a. What normalform is this relation in? (1p)
b. Transform the relation so that it will be in BCNF, show every step you make and
explain why you do it. (4p)
4. SQL-queries (6p)
Given the following relational schema:
STUDENT(StudPNum, Name)
STUDENTREULT(StudPNum, CourseID, Grade)
a. List all courses that the student with PNumber ‘800101-1122’ has a grade in. (2p)
b. Create a query that returns the name of the students with a grade average higher than 4.
(4p)
3. Normalisering (5p)
Betrakta följande relation:
MYDATABASE(StudentID, CourseID, StudentName, CourseName, StudentEmail,
StudentGradeList)
Exempel på innehåll i relationen:
(<12, TDDB48, Karl Karlsson, Databasteknik, karka, [Labs: G, Ten1: 4]>,
<12, TDDB55, Karl Karlsson, Medieteknik, karka,[Proj1: G, Proj2: G, Labs: G]>,
<10, TDDB48, Nils, Nilsson, Databasteknik, nilni, [Labs: G]>)
a. Vilken normalform har denna relation? (1p)
b. Gör om relationen så att den blir i BCNF, visa varje steg du gör och förklara varför du
gör det. (4p)
4. SQL (6p)
Givet följande relationsschema:
STUDENT(StudPNum, Name)
STUDENTCOURSE(StudPNum, CourseID, Grade)
a. Lista alla kurser som studenten med personnummer ‘800101-1122’ har betyg i. (2p)
b. Skapa en fråga som returnerar namnet på de studenter som har medelbetyg högre än 4.
(4p)
Part 2: Theoretical
5. Normalization (4p)
a. What is a conceptual dependency and how is it related to normal forms? (2p)
b. What does normalization mean and why is it used? (1p)
c. Give an example of a reason why in some cases you choose not to have a high
normalization form. (1p)
6. Data structures (5p)
a. In a table with 10000 rows the following information is stored for each row:
PERSONNAME (char(20)), PERSONNUMBER (char(10)) and JOBCODE (char(2)).
PERSONNUMBER values are unique. Different persons can have the same JOBCODE
value. On average 10 persons have the same JOBCODE values. Assume a block size of
4096 bytes and that we use unspanned records. Assume that the pointer size is 4 bytes.
Show how you can create a secondary index for the table above. You can choose which
field is the index field and whether and how the table is sorted. Describe this! (You
cannot change the information about the table that was given above.) How many block
accesses are needed on average and in worst case (using the index) to find a record with a
given value for the index field? Show how you obtained your results. (3p)
b. Explain the difference between primary- secondary- and clustering indexes. Also explain
if and how these three indexes can be used together on the same file. (2 p)
7. Database recovery (5p)
Suppose that we use the deferred update protocol for the example below. Show how the
log would be different in the case of deferredupdate by removing the unnecessary log
entries; then describe the recovery process, using your modified log. Assume that only
REDO operations are applied and specify which operations in the log are redone and
which are ignored.
[start_transaction, T1]
[read_item, T1, A]
[read_item, T1, D]
[write_item, T1, D, 20]
[commit, T1]
[checkpoint]
[start_transaction, T2]
[read_item, T2, B]
[write_item, T2, B, 12]
[start_transaction, T4]
[read_item, T4, D]
[write_item, T4, D, 15]
[start_transaction, T3]
[write_item, T3, C, 30]
[read_item, T4, A]
[write_item, T4, A, 20]
[commit, T4]
[read_item, T2, D]
[write_item, T2, D, 25]
(system crash)
Del 2: Teoretisk
5. Normalisering (4p)
a. Vad innebär konceptuella beroenden och hur relaterar dessa till normalformer? (2p)
b. Vad innebär normalisering och varför används det? (1p)
c. Ge exempel på en orsak till att man i vissa fall väljer att inte ha så hög
normaliseringsgrad på sina relationer. (1p)
6. Data structurer (5p)
a. I en tabell med 10000 rader är följande information lagrad för varje rad:
PERSONNAME (char(20)), PERSONNUMBER (char(10)) och JOBCODE (char(2)).
PERSONNUMBER-värdena är unika. Olika personer kan ha samma JOBCODEvärde. I genomsnitt har 10 personer samma JOBCODE-värde. Antag en blockstorlek
på 4096 bytes och obrutna (eng. unspanned) lagringsposter. Antag att en pekare är 4
bytes lång.
Visa hur man kan skapa ett sådant index för tabellen ovan. Du får själv välja vilket
fält som är indexfältet och om och hur tabellen är sorterad. Ange detta! (Du får dock
inte ändra uppgifterna om tabellen ovan.) Hur många blockaccesser behövs i
genomsnitt och i värsta fall (med användning av ditt index) för att hitta en post (eng.
record) med givet värde för indexfältet? Visa hur du får fram ditt resultat. (3p)
a. Förklara skillnderna mellan primary-, secondary och clustering- index. Förklara också
om och hur dessa kan användas tillsammans för en fil. (2p)
7. Databasåterställning (recovery) (5p)
Antag att vi använder protokollet för uppskjuten uppdatering (deferred update protocol)
för exemplet nedan. Visa hur loggen skulle förändras om vi i istället använderuppskjuten
uppdatering där vi tar bort onödiga log entries; beskriv sedan recovery processen utifrån
din modifierade log. Antag att bara REDO operationer görs och visa vilka operationer i
loggen som görs om och vilka som ignoreras.
[start_transaction, T1]
[read_item, T1, A]
[read_item, T1, D]
[write_item, T1, D, 20]
[commit, T1]
[checkpoint]
[start_transaction, T2]
[read_item, T2, B]
[write_item, T2, B, 12]
[start_transaction, T4]
[read_item, T4, D]
[write_item, T4, D, 15]
[start_transaction, T3]
[write_item, T3, C, 30]
[read_item, T4, A]
[write_item, T4, A, 20]
[commit, T4]
[read_item, T2, D]
[write_item, T2, D, 25]
(system crash)
8. SQL-queries and relational algebra (5p)
a. Explain the different parts of a ’SELECT’-statement and what they perform with
respect to the operations in relational algebra. (3p)
b. Illustrate your answer in a. by expressing a join query over two relations in SQL and
relational algebra. The query must be your own example. (2p)
9. General database architecture (6p)
a. Give an overview of the architecture of a database management system and give a
brief description of how it supports data independence. (3p)
b. Give an example from databases which illustrates why data independence is important
and relate your example to the architecture in a. (1p)
c. In some situations it is important to understand how the database is stored on the
physical storage. Give an example of this and explain why it is important with this
knowledge. (2p)
8. SQL och relationsalgebra (5p)
a. Förklara de olika delarna i en SQL-fråga och visa hur de relaterar till operationerna i
relationsalgebran. (3p)
b. Illustrera ditt svar i a genom att uttrycka samma joinfråga i SQL och relationsalgebra.
(2p)
9. Generell databsarkitektur (6p)
a. Ge en översikt över arkitekuren för ett databashanteringssystem och förklara hur det
understödjer dataoberoende. (3p)
b. Ge ett konkret exempel på när dataoberoende är viktigt relatera ditt exempel till ditt
svar i a. (1p)
c. I vissa situationer är det viktigt att förstå hur data är lagrad på det fysiska mediet. Ge
ett exempel på detta och förklara varför den fysiska lagringen påverkar databasens
beteende. (2p)
Download