INLÄMNINGSUPPGIFT

1. KONCEPTUELL MODELLERING

Betrakta nedanstående konceptuella schema. De båda konsistensreglerna under grafen uttrycker att TURTLER och SNOOZER är disjunkta och uttömmande med avseende på HOBBIT.

inconsistent :- hobbit(X), not(turtler(X)), not(snoozer(X)).

inconsistent :- turtler(X), snoozer(X).

Informationsbas:

hobbit(p1).

hobbit(p2).

hobbit(p3).

turtler(p3).

fiddler(f1).

joins(p1,f1).

UPPGIFT K1

Utvidga informationsbasen ovan så att den inte längre strider mot någon konsistensregel.

UPPGIFT K2

Låt CS vara ett konceptuellt schema utan några härledningsregler. Låt A och B vara två informationsbaser, sådana att A [[sterling]] B. Avgör om följande påståenden är sanna:

a) Om A inte bryter mot någon konsistensregel i CS, så bryter inte B mot någon konsistensregel i CS.

b) Om B inte bryter mot någon konsistensregel i CS, så bryter inte A mot någon konsistensregel i CS.

Bevis eller motexempel!

UPPGIFT K3

Låt C1 och C2 vara två konceptuella scheman som är likadana bortsett från att C1 innehåller fler härledningsregler än C2. Låt A vara en informationsbas. Avgör för vart och ett av följande påståenden om det är sant:

a) Om A bryter mot någon konsistensregel i C1, så bryter A också mot någon konsistensregel i C2.

b) Om A bryter mot någon konsistensregel i C2, så bryter A också mot någon konsistensregel i C1.

Bevis eller motexempel!

UPPGIFT K4

I en verksamhet förekommer alltid vissa regler (konsistensregler), t.ex. att en anställd inte får tjäna mer än sin chef eller att en personbil inte får väga mer än 2000 kg. Sådana regler deklareras i ett informationssystems konceptuella schema och man kräver sedan vanligtvis av informationsprocessorn att den inte accepterar uppdateringar, som skulle göra systemets informationsbas inkonsistent, d.v.s. stridande mot någon konsistensregel. I MOLOC kan regler av typen ovan i det konceptuella schemat ofta deklareras på två alternativa sätt:

a) Man skriver en regel av typen inconsistent : -....

b) Man anger vissa kontroller i inträffandevillkoret (precondition-delen) i en händelsedeklaration.

Finns det några generella argument för att föredra det ena sättet framför det andra? Motivera Ditt svar.

UPPGIFT K5

En händelsetyp E kan betraktas som en funktion:

E: IB [[daggerdbl]] T1 [[daggerdbl]] ... [[daggerdbl]] Tn [[section]] IB. Här är IB mängden av alla informationsbaser och T1,...,Tn är typer. (Se också avsnitt 3.2.2 i kompendiet 'Conceptual Modelling'.)

Händelsetypen F är en invers till händelsetypen E om för varje informationsbas ib och varje h, F(E(ib,h),h) = ib. Här är h = (h1,...,hn), dår hi är en instans av Ti. Intuitivt så är F en invers till E om F omintetgör de förändringar som E orsakar. Nedan ges ett exempel på en händelsetyp och dess invers:

event(hire,[Pnr],[personnr]):-

new(person,P),

insert(pnr(P,Pnr)).

event(fire,[Pnr],[personnr]):-

precondition(pnr(P,Pnr)),

delete(P,Pnr),

remove(P).

Är det så att varje händelsetyp har en invers? Om Du svarar ja, så motivera Ditt svar utförligt. Om Du svarar nej, så ge ett motexempel och förklara varför detta är ett motexempel. Observera att uppgiften handlar om formella egenskaper hos händelsetyper och inte om verklighetens beskaffenhet (t.ex. termodynamikens andra lag).

2. RELATIONSDATABASTEORI

I avsnitt 13.2.2 i Elmasri-Navathe (12.2.2 för Second Edition) introduceras ett antal härledningsregler för funktionella beroenden (IR1 - IR6).

UPPGIFT R1

Visa enbart med hjälp av definitionen för funktionellt beroende att reglerna IR4 - IR6 är giltiga. Du får alltså inte använda reglerna IR1 - IR3 i bevisen.

UPPGIFT R2

Lös uppgift 13.17 i Elmasri-Navathe (12.17 i Second Edition).

UPPGIFT R3

Låt U vara en mängd av attribut och D en mängd av funktionella beroenden över attributen i U. Låt SAT(D) beteckna mängden av de relationer över U som uppfyller beroendena i D.

a) Låt U = {a,b,c,d} och D = {a -> b, bc -> d}. Ge ett exempel på en relation som tillhör SAT(D) och en relation ssom inte tillhör SAT(D).

b) Avgör för vart och ett av påståendena nedan om det är sant eller falskt.

i) SAT(D1 [[union]] D2) = SAT(D1) [[union]] SAT(D2)

ii) SAT(D1 [[union]] D2) = SAT(D1) [[intersection]] SAT(D2)

iii) SAT(D1 [[intersection]] D2) = SAT(D1) [[union]] SAT(D2)

iv) SAT(D1 [[intersection]] D2) = SAT(D1) [[intersection]] SAT(D2)

Bevis eller motexempel!

UPPGIFT R4

Visa att det finns ett funktionellt beroende som inte är ekvivalent med någon mängd av funktionella beroenden {A1 -> B1, ..., An -> Bn }, där samtliga Ai och Bi är enkla attribut (ett attribut är enkelt om det inte är sammansatt av flera attribut).

3. FRÅGEOPTIMERING

UPPGIFT F1

För var och en av frågorna Q1, Q4, Q8 och Q27 i kapitel 7 i Elmasri-Navathe, utför följande:

a) Konstruera det initiala frågeträdet.

b) Optimera frågeträdet med hjälp av algoritmen i avsnitt 18.2.1 i Elmasri-Navathe (16.2.1 i Second Edition).

FORTSÄTTNING NÄSTA SIDA

4. TRANSAKTIONSHANTERING

UPPGIFT T1

Betrakta de tre transaktionerna i fig. 19.8 i Elmasri-Navathe (17.8 i Second Edition). Nedan ges två scheman (eng. schedules) för dessa transaktioner. Avgör för vart och ett av schemana om det är serialiserbart och ange i så fall vilka seriella scheman det är ekvivalent med.

Transaktion T1 Transaktion T2  Transaktion T3

read_item(X)

read_item(Z)

read_item(Y)

write_item(X)

read_item(Y)

read_item(Y)

read_item(Z)

write_item(Y)

write_item(Y)

read_item(X)

write_item(X)

write_item(Y)

write_item(Z)

Transaktion T1 Transaktion T2  Transaktion T3

read_item(X)

read_item(Z)

read_item(Y)

write_item(Y)

read_item(X)

write_item(X)

read_item(Y)

read_item(Z)

read_item(Y)

write_item(Y)

write_item(X)

write_item(Y)

write_item(Z)