Adatbázisok/Vizsga feladatok
Ezen az oldalon néhány feladatot találsz témakörönként az új (VITMAB04) Adatbázisokhoz, amik a régi tárgy 1996-2007 közötti ZH feladatsoraiból lettek kiválogatva. Ezek a feladatok az új tárgyban a ZH után kerülnek leadásra, így alapvetően a vizsgán találkozhatsz ezekhez hasonló feladatokat. Az eredeti feladatlapokat megtalálod a régi tárgy oldalán.
Normalizálás
(1996-04-16 4.) Bizonyítsa be, hogy ha az R relációs séma nem BCNF, akkor ∃ A, B (A, B ∈ R), hogy (R \ AB) → A!
Mit jelent az, hogy R nem BCNF? Azt, hogy van egy olyan nemtriviális X → A függőség, amire X nem szuperkulcs. A "nemtriviális" pontosan azt jelenti, hogy A nem részhalmaza X-nek. Ugyanakkor X nem is szuperkulcs, tehát van legalább egy olyan B, amit nem határoz meg. Ebből azt kaptuk, hogy X ⊆ R \ AB, hiszen sem A, sem B nem lehet X része.
R \ AB-ből az összes olyan elemet X-be, ami még nincs benne, és nézzük meg mit kaptunk. Az így kapott függőség éppen az amit keresünk, hiszen a bal oldalt addig tuningoltuk, amíg nem lett R \ AB-vel egyenlő. A függőség pedig ugyanakkor igaz, hiszen X meghatározta A-t, és ezt nem tudjuk elrontani azzal, hogy új elemeket veszünk hozzá (axióma). Örülhetünk.
(2000-04-25 5.) 5. Vizsgálja meg, hogy hányadik legmagasabb normál formában van az R(ISTQ) relációs séma az F = {I → Q, ST → Q, IS → T, QS → I} függéshalmaz esetén!
(2001-11-16 4. módosítva) Mutassa meg, hogy egy 3NF sémára illeszkedő reláció lehet redundáns funkcionális függőség következtében!
(2001-11-16 6. módosítva) Adott az R(ABCDEF) relációs séma és az F = {A → B, AC → DB, C → AD, AF → ECB}, csak funkcionális függőségeket tartalmazó függéshalmaz. A mutatók valamennyi attribútumra mutathatnak. Adja meg a séma egy felbontását 2NF sémákba, törekedve minél kevesebb relációs séma definiálására!
(2002-11-15/A 6.) Bizonyítsa be, hogy az alábbi három szabályból következnek az Armstrong-axiómák! (Azaz pusztán ezen három szabályt használva a levezetés során, az Armstrong axiómák megkaphatók.) Ha X, Y, Z, C egy relációséma attribútumhalmazai, akkor:
- B1.
X → Xmindig igaz. - B2.
X → YZésZ → C-ből következikX → YZC - B3.
X → YZ-ből következikX → Y
- A reflexivitás:
X → Y(X \ Y)igaz B1 miatt, haY ⊆ X, innen pedig B3-mal jön, hogy ekkorX → Yis fennáll. - A kiegészítés: Legyen
A → Bigaz és legyen F egy tetszőleges attribútumhalmaz. B1 miattAF → AFis igaz. Erre a függésre és azA → B-re alkalmazva B2-t (X = AF, Z = A, Y = F, illetve C = B szereposztással) kapjuk, hogyAF → AFBigaz. Innen B3-mal jön, hogyAF → BF. - A tranzitivitás: Tegyük fel, hogy
A → BésB → Digazak. B2-t használva (X = A, Z = B, Y = ∅ és C = D szereposztással), kapjukA → BD-t, ahonnan B3-mal jönA → D.
(2004-11-19 3.) Igazak-e az alábbi szabályok? Ha igen, miért?
a) X → Y, X → W, YW → Z ⊨ X → Z
b) XY → Z, Y → W ⊨ XW → Z
a) Igaz:
X → Yadott.X → Wadott.X → YWegyesítési szabály alapján.YW → Zadott.X → Ztranzitivitás szabály alapján.
A kezdeti függésekből levezethető X → Z az axiómák ismételt alkalmazásával. És ami levezethető, az igaz is.
b) Nem igaz. Ellenpélda: Vegyünk egy R(X, Y, Z, W) sémát, és egy r(R) relációt, aminek két sora van:
- (1, 1, 1, 1)
- (1, 2, 2, 1)
XY → Z teljesül, mert nincsenek olyan sorok, ahol X és Y értéke egyezne, a funkcionális függés definíciója nincs megsértve. Y → W is teljesül hasonló okokból. XW → Z viszont nem teljesül, a két sorban X és W értéke egyező, de Z értékei különböznek. Mivel a funkcionális függésnek bármely r(R) reláción igaznak kell lennie, az ellenpélda bizonyítja, hogy nem lehet igaz az állítás.
(2005-04-19 3.) Igazak-e az alábbi szabályok? (A, B, C, D tetszőleges attribútumhalmazok egy R sémán.) Ha igen, miért?
a) A → B, C → D ⊨ (A ∪ (C \ B)) → BD
a) A → B, C → D ⊨ (C ∪ (D \ A)) → BD
(2005-04-19 4.) Adott egy R(A, B, C) sémára illeszkedő r reláció, melynek 3 sora van. Bizonyítsd be, hogy meg lehet adni olyan nemtriviális funkcionális függést, amit r kielégít!
(2005-04-19 6.a) Adott egy (R, F) séma, ahol R = ABCDE és F = {AB → C, D → A, AE → B, CD → E, BE → D}. BCNF-ben van-e ez a séma?
(2005-05-03 3.) Igaz-e, hogy a következő axiómarendszer teljes. azaz levezethető-e felhasználásukkal minden logikai következmény?
- Ha
X ⊆ R, akkorX → X. - Ha
X, Y ⊆ RésX → Y, akkorXW → YWigaz tetszőlegesW ⊆ R-re. - Ha
X, Y, Z ⊆ R,X → Yés Y → Z, akkorX → Z.
F = ∅-ból X → Y ahol Y ⊆ X. Ugyanis minden felírható lépésben a jobboldal legalább annyi attribútumot tartalmaz, mint a baloldal.
(2005-05-03 4.) Adj egy R(A, B, C) séraára illeszkedő r relációt, melynek 4 sora van és nem teljesül rá semmilyen nemtriviális funkcionális függés!
Legyen r(R) egy olyan reláció, aminek 4 sora van, de mindegyik különböző:
- (a, a, a)
- (a, a, b)
- (a, b, b)
- (b, b, b)
AB → C nem áll fenn az 1. és 2. sor miatt, AC → B nem teljesül a 2. és 3. sor miatt, BC → A pedig a 3. és 4. sor miatt. Az X → Y típusú függőségek nem teljesülnek, pl. A → C-nek logikai következménye AB → C, ami viszont már úgysem teljesül.
(2005-05-03 6.) Adott egy (R, F) séma, ahol R ABCGWXYZ és F = {XZ → BGYZ, AY → CG, C → W, B → G}. Igaz-e, hogy (AXZ → BY) ∈ F+?
XZ → BGYZ-t bővítve A-val kapjuk AXZ → ABGYZ függőséget. Ebből a reflexivitás alapján AXZ → BY is igaz. Mivel a kezdeti függőséghalmazból le tudtuk vezetni a kívánt függőséget is az axiómák ismételt alkalmazásával, az állítás igaz. A függőséghalmaz lezártja pedig mindazon függőségeket tartalmazza, amik levezethetők, így tehát AXZ → BY-t is.
(2006-11-20 5.) Tekintsük az R(A, B, C, D, E, F, G, H) sémát az alábbi funkcionális függőségekkel: F = {A → BCD, AD → E, EFG → H, F → GH}.
a) Mi az egyetlen kulcs a sémában? Hány szuperkulcs van?
b) 3NF-ben van-e a séma?
a) Minden kulcsban benne kell lennie A-nak és F-nek, mert ezek nincsenek sehol sem jobb oldalon, azaz nem jönnek ki semmi másból. AF pedig már kulcs, mert az első függés miatt bejön BCD, a második miatt E, a negyedik miatt pedig GH.
Szuperkulcs az, ami tartalmaz kulcsot, vagyis most AF-et, mert ez az egyetlen kulcs. Annyi szuperkulcs van, ahány részhalmaza a BCDEGH halmaznak van (minden részhalmaz kibővítve AF-fel szuperkulcs lesz). Ebből pedig 26 van (hat elemű halmaznak ennyi részhalmaza van).
b) Minden felsorolt függés sérti a 3NF tulajdonságot, mert egyik baloldal se szuperkulcs és egyik jobboldal se szerepel kulcsban.
(2004-11-30 2.) Legyen r egy R sémára illeszkedő reláció, X pedig R attribútumainak egy részhalmaza. Bizonyítsd be, hogy ha πX(r) és r sorainak száma megegyezik, akkor bármely Y ⊆ R-re fennáll az X → Y funkcionális függés!
(2004-11-30 6.) Adott a következő séma: R(Név, TBszám, Gyereknév, GyerekTBszám, AutóGySzám, AutóTípus). Jelentése: A gyerek az adott személy gyereke, de a relációban mindkét szülő benne lehet. Az autó az adott személy autója, de lehet egy autónak több tulajdonosa is. A többi összefüggést életszerűen kell értelmezni.
a) Milyen funkcionális függőségek állnak fenn ebben a sémában?
b) Melyik normálformában van a séma?
Tranzakciókezelés
(2004-06-02 6.) A következő tranzakció szigorú 2PL? Ha nem, módosítsa! Mit biztosít ez a protokoll?
| Lock A |
| Read A |
| A := A * 2 |
| Write A |
| Commit |
| Unlock A |
(2006-11-20 6.) Tekintsük a t1, t2, t3 tranzakciók írási és olvasási kéréseiből álló r2(A), r3(C), r1(B), w1(B), w3(A), w2(C) sorozaton. Időbélyeges tranzakciókezeléssel akarjuk a sorosítható ütemezést kikényszeríteni, a tranzakciók időbélyegei: TS(t1) = 1, TS(t2) = 2, TS(t3) = 3.
a) Melyik tranzakciót (tranzakciókat) fogja ABORT-ra utasítani az ütemező a fenti sorozat esetén?
b) Változtassuk meg egyetlen kérésben az adatelemet úgy, hogy az így kapott kéréssorozat esetén ne kelljen ABORT-ot elrendelnie az ütemezőnek. Itt több megoldás is van, adjon meg legalább kettőt.
a) Nézzük meg, mi történik az egyes kéréseknél és mi lesz az adatok írási és olvasási ideje.
- r2(A): mehet, r(A) 2 lesz, minden más marad 0
- r3(C) : mehet, r(C) 3 lesz
- r1(B): mehet, r(B) 1 lesz
- w1(B): mehet, mert B-t csak T1 olvasta eddig, w(B) 1 lesz
- w3(A): mehet, mert A-t csak T2 olvasta eddig, w(A) 3 lesz
- w2(C): nem mehet, mert C-t T3 már olvasta (amint ezt r(C) = 3 mu-tatja).
Vagyis csak T2-t fogja ABORT-ra utasítani az ütemező.
b) Ha w2(C) helyett w2(B) lenne, akkor az utolsó előtti utasításig semmi se változik, vagyis addig nem lesz ABORT, de az utolsónál se lesz, mert ekkor r(B) = w(B) = 1, ami nem ütközik a w2(B) kéréssel. Ha r3(C) helyett r3(A) lenne, akkor sem lesz ABORT, mert az A-t érintő kérések r2(A), r3(A), w3(A) sorrendben jönnek, ami pont időbélyeg szerinti sorrend, a C adategységen meg nem is lesz egyáltalán ütközés.