„Adatbázisok/ZH feladatok” változatai közötti eltérés

Nagy Marcell (vitalap | szerkesztései)
aNincs szerkesztési összefoglaló
Nagy Marcell (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
 
1. sor: 1. sor:
<!--
<!--
{{Rejtett|mutatott='''Megoldás'''|szöveg=
 
TODO.
 
}}
 
 
A listát ne bővítsd új évek feladatsoraival. Lásd az Adatbázisok lapra írtakat. Ha hibát vagy hiányosságot találsz, azt javíthatod.
 
 
 
 
 
 
 
 
-->Ezen az oldalon néhány feladatot találsz témakörönként az új (VITMAB04) [[Adatbázisok|Adatbázisokhoz]], amik a régi tárgy 1996-2007 közötti ZH feladatsoraiból lettek kiválogatva. Ehhez hasonló jellegű feladatok lehetnek az új tárgyban is. Az eredeti feladatlapokat megtalálod a [[Adatbázisok_(régi)#Zh|régi tárgy]] oldalán.
-->Ezen az oldalon néhány feladatot találsz témakörönként az új (VITMAB04) [[Adatbázisok|Adatbázisokhoz]], amik a régi tárgy 1996-2007 közötti ZH feladatsoraiból lettek kiválogatva. Ehhez hasonló jellegű feladatok lehetnek az új tárgyban is. Az eredeti feladatlapokat megtalálod a [[Adatbázisok_(régi)#Zh|régi tárgy]] oldalán.


61. sor: 71. sor:


[[Fájl:Adatb zh 2004-11-19 feladat-1 ER-diagram.png|600px]]
[[Fájl:Adatb zh 2004-11-19 feladat-1 ER-diagram.png|600px]]
{{Rejtett|mutatott='''Megoldás'''|szöveg=
Reláció minden egyedhalmazhoz: Repjárat(<ins>Szám</ins>), Reptér(<ins>ID</ins>, Város), Alkalmazott(<ins>TBSzám</ins>, Név), EgyRepülés(<ins>Dátum</ins>, Ár, <ins>Szám</ins>). EgyRepülés gyenge egyedhalmaz, ezért a Repjárat-ban lévő kulcsot is hozzá kell venni a megfelelő relációhoz. Mivel az EgyRepülés reláció magába foglalja a Repjárat minden adatát is, a Repjárat reláció redundáns, elhagyható adatvesztés nélkül.
Relációk a kapcsolatokból: Legénység(<ins>Szám</ins>, <ins>Dátum</ins>, <ins>TBszám</ins>), Honnan(<ins>Szám</ins>, Indulás, ID), Hova(<ins>Szám</ins>, Érkezés, ID). Az ID attribútumok nem részei a kulcsnak az több-egy kapcsolat miatt. Ez utóbbi két reláció akár összevonható egybe: HonnanHova(<ins>Szám</ins>, Indulás, Érkezés, IDInd, IDÉrk). A Járat kapcsolathoz nem kell reláció, az EgyRepülés egyedeinek határozott azonosításán kívül más haszna nincs, az meg már fel van véve a többi relációban.
}}




73. sor: 89. sor:


(2005-04-19 1.) Egy menza havi menüit szeretnénk tárolni egy adatbázisban. A menü minden nap egy levest, egy főételt és egy édességet tartalmaz. Egy étel többször is előfordulhat az adott hónapban, de tudjuk, hogy egy adott leves-főétel kombinációhoz, csak egyféle édesség illik. Minden ételnek szeretnénk tárolni a nevét, az energiatartalmát és hogy melyik hozzávalóból mennyi kell. Készíts E/K diagramot az adatbázishoz!
(2005-04-19 1.) Egy menza havi menüit szeretnénk tárolni egy adatbázisban. A menü minden nap egy levest, egy főételt és egy édességet tartalmaz. Egy étel többször is előfordulhat az adott hónapban, de tudjuk, hogy egy adott leves-főétel kombinációhoz, csak egyféle édesség illik. Minden ételnek szeretnénk tárolni a nevét, az energiatartalmát és hogy melyik hozzávalóból mennyi kell. Készíts E/K diagramot az adatbázishoz!
{{Rejtett|mutatott='''Megoldás'''|szöveg=
[[Fájl:Adatb zh 2005-05-03 feladat-1 ER-diagram.png|700px]]
}}




78. sor: 98. sor:




(2005-05-03 1. módosítva) A következő E/K modellhez határozz meg relációs sémát!
(2006-11-20 1.) Egy középiskola tanárait és diákjait szeretnénk tárolni egy adatbázisban. Mindenkiről nyilván akarjuk tartani a nevét, személyi számát, születési dátumát és helyét. Minden diákról tárolni akarjuk, hogy melyik osztályba jár most (pl. 10.b) és hogy eddig hány évfolyamon bukott. Minden tanárról tároljuk a gúnynevét és azt hogy mely osztályokban mely tárgyakat tanítja, akik pedig osztályfőnökök is, azokról azt is, hogy hol osztályfőnökök és hogy ez hányadik osztályuk a pályafutásuk során. (Minden tanár legfeljebb egy osztályban osztályfőnök egy időben és egy osztálynak csak egy osztályfőnöke van.)


[[Fájl:Adatb zh 2005-05-03 feladat-1 ER-diagram.png|700px]]
a) Készítsen E/K diagrmot ehhez az adatbázishoz, ne feledkezzen el a kulcsok jelöléséről sem. Röviden írja le, hogyan határozta meg az egyes kapcsolatok jellegét.


b) Alakítsa át a az előző pontban adott E/K diagramot relációs sémává, az órán tanult eljárást használva.


----
{{Rejtett|mutatott='''Megoldás'''|szöveg=
a)


[[Fájl:Adatb zh 2006-11-20 feladat-1 ER-diagram.png|500px]]


(2006-11-20 1.) Egy középiskola tanárait és diákjait szeretnénk tárolni egy adatbázisban. Mindenkiről nyilván akarjuk tartani a nevét, személyi számát, születési dátumát és helyét. Minden diákról tárolni akarjuk, hogy melyik osztályba jár most (pl. 10.b) és hogy eddig hány évfolyamon bukott. Minden tanárról tároljuk a gúnynevét és azt hogy mely osztályokban mely tárgyakat tanítja, akik pedig osztályfőnökök is, azokról azt is, hogy hol osztályfőnökök és hogy ez hányadik osztályuk a pályafutásuk során. (Minden tanár legfeljebb egy osztályban osztályfőnök egy időben és egy osztálynak csak egy osztályfőnöke van.)
A kapcsolatok magyarázata: a Jár kapcsolat az osztály felé egyirányú, mert mindenki egy osztályba jár csak egyszerre, de fordítva többirányú, mert egy osztályba többen is járnak; a Tanít kapcsolat minden irányban több, mert egy tanár több osztályban is taníthatja az adott tárgyat, egy osztályban több tanár is taníthatja az adott tárgyat és egy osztályban egy tanár több tárgyat is taníthat; az Ofő kapcsolat mindkét irányban egy, mert pont ezt mondja a feladat kitűzésében a feltétel.


a) Készítsen E/K diagrmot ehhez az adatbázishoz, ne feledkezzen el a kulcsok jelöléséről sem. Röviden írja le, hogyan határozta meg az egyes kapcsolatok jellegét.
b) Egy lehetséges jó átírás:
* Személy(név, <ins>szemszám</ins>, szüldátum, szülhely)
* Diák(<ins>szemszám</ins>, bukásszám, osztálynév)
* Tanár(<ins>szemszám</ins>, gúnynév)
* Tanít(<ins>tanár.szemszám</ins>, <ins>osztálynév</ins>, <ins>tárgynév</ins>)
* Ofője(<ins>tanár.szemszám</ins>, <ins>osztálynév</ins>, hányadik)
* Osztályfőnök(<ins>szemszám</ins>)
* Tárgy(<ins>tárgynév</ins>)
* Osztály(<ins>osztálynév</ins>)


b) Alakítsa át a az előző pontban adott E/K diagramot relációs sémává, az órán tanult eljárást használva.
Ez utóbbi három akár el is hagyható.
}}




115. sor: 147. sor:


{{Rejtett|mutatott='''Megoldás'''|szöveg=
{{Rejtett|mutatott='''Megoldás'''|szöveg=
a) π<sub>sör</sub>(Kapható) \ π<sub>sör</sub>(π<sub>személy,sör</sub>(Kapható ⋈ Látogat) \ Kedvel)
a) <code>π<sub>sör</sub>(Kapható) \ π<sub>sör</sub>(π<sub>személy,sör</sub>(Kapható ⋈ Látogat) \ Kedvel)</code>


Magyarázat: π<sub>személy,sör</sub>(Kapható ⋈ Látogat) megadja azt, hogy az emberek milyen sörökhöz juthatnak hozzá, π<sub>személy,sör</sub>(Kapható ⋈ Látogat) \ Kedvel a "rossz" (személy, sör) párokat adja meg, azaz azokat az embereket és söröket, amely emberek megkaphatják kocsmájukban az adott sört, de nem szeretik. Ezen reláció sör-vetülete a "rossz" sörök halmaza, ezt kell kivonni az összes sör halmazából. Itt hallgatólagosan feltettük, hogy minden sör kapható valahol. Megjegyzés: Az olyan relációs algabrai kifejezések, melyekben csak ∪, ∩, ×, ⋈, π és σ műveletek fordulnak elő, szükségképpen monotonok, abban az értelemben, hogy ha a kifejezésekben szereplő alaprelációkat bővítjük, akkor az eredmény semmiképpen sem lesz szűkebb. Ez a monotonitás azonban nem igaz a feladatbeli relációra: például ha a Kapható relációt bővítjük egy olyan (Kocsma, Sör) párral, amely sörnek egy esküdt ellensége látogatja az adott kocsmát, akkor ezzel a "jó" sörök halmaza szűkül(het). Ezért biztosan nem jók azok a megoldások, melyekben csak a fenti műveletek szerepelnek.
Magyarázat: <code>π<sub>személy,sör</sub>(Kapható ⋈ Látogat)</code> megadja azt, hogy az emberek milyen sörökhöz juthatnak hozzá, <code>π<sub>személy,sör</sub>(Kapható ⋈ Látogat) \ Kedvel</code> a "rossz" (személy, sör) párokat adja meg, azaz azokat az embereket és söröket, amely emberek megkaphatják kocsmájukban az adott sört, de nem szeretik. Ezen reláció sör-vetülete a "rossz" sörök halmaza, ezt kell kivonni az összes sör halmazából. Itt hallgatólagosan feltettük, hogy minden sör kapható valahol. Megjegyzés: Az olyan relációs algabrai kifejezések, melyekben csak ∪, ∩, ×, ⋈, π és σ műveletek fordulnak elő, szükségképpen monotonok, abban az értelemben, hogy ha a kifejezésekben szereplő alaprelációkat bővítjük, akkor az eredmény semmiképpen sem lesz szűkebb. Ez a monotonitás azonban nem igaz a feladatbeli relációra: például ha a Kapható relációt bővítjük egy olyan (Kocsma, Sör) párral, amely sörnek egy esküdt ellensége látogatja az adott kocsmát, akkor ezzel a "jó" sörök halmaza szűkül(het). Ezért biztosan nem jók azok a megoldások, melyekben csak a fenti műveletek szerepelnek.


b) π<sub>személy</sub>(Látogat) \ π<sub>személy</sub>(π<sub>személy,sör</sub>(Kapható ⋈ Látogat) \ Kedvel)
b) <code>π<sub>személy</sub>(Látogat) \ π<sub>személy</sub>(π<sub>személy,sör</sub>(Kapható ⋈ Látogat) \ Kedvel)</code>
}}
}}


126. sor: 158. sor:




(2001-11-16 2.) Egy könyvtári kölcsönzéseket segítő relációs adatbázis négy relációjának a sémái az alábbiak. Az azonos nevű attribútumok jelentése is azonos. KÖNYV(RAKT, SZERZO, CIM), KÖLCS(RAKT, O_ID, K_DATUM), OLVASO(O_ID, O_NEV, LAKCIM), VISSZA(RAKT, O_ID, V_DATUM, K_ID) A relációk, ill. attribútumaik jelentése rendre a könyvtári KÖNYVek RAKTári száma (egyedi azonosító), SZERZŐje és CÍMe, a KÖLCSönzött könyvek RAKTári száma, a kölcsönző Olvasó egyedi azonosítója és a Kölcsönzés DÁTUMa. Az OLVASÓ reláció az Olvasók azonosítóját, NEVét és LAKCÍMét tartalmazza. Amikor egy könyvet VISSZAhoznak, akkor belekerül a vissza relációba, a V_DATUM értéke pedig a visszavétel dátuma lesz, K_ID a visszavevő könyvtáros azonosítója.
(2001-11-16 2.) Egy könyvtári kölcsönzéseket segítő relációs adatbázis négy relációjának a sémái az alábbiak. Az azonos nevű attribútumok jelentése is azonos.
* KÖNYV(RAKT, SZERZO, CIM)
* KÖLCS(RAKT, O_ID, K_DATUM)
* OLVASO(O_ID, O_NEV, LAKCIM)
* VISSZA(RAKT, O_ID, V_DATUM, K_ID)
A relációk, ill. attribútumaik jelentése rendre a könyvtári KÖNYVek RAKTári száma (egyedi azonosító), SZERZŐje és CÍMe, a KÖLCSönzött könyvek RAKTári száma, a kölcsönző Olvasó egyedi azonosítója és a Kölcsönzés DÁTUMa. Az OLVASÓ reláció az Olvasók azonosítóját, NEVét és LAKCÍMét tartalmazza. Amikor egy könyvet VISSZAhoznak, akkor belekerül a vissza relációba, a V_DATUM értéke pedig a visszavétel dátuma lesz, K_ID a visszavevő könyvtáros azonosítója.


a) Adjon meg egy relációalgebrai kifejezést, amely azt a relációt állítja elő, amely azoknak az olvasóknak a neveit valamint az általuk kölcsönzött könyvek szerzőit és címeit tartalmazza, amelyeket az olvasók 2001. okt. folyamán késve hoztak vissza a könyvtárba. A kölcsönzési idő 1 hónap.
a) Adjon meg egy relációalgebrai kifejezést, amely azt a relációt állítja elő, amely azoknak az olvasóknak a neveit valamint az általuk kölcsönzött könyvek szerzőit és címeit tartalmazza, amelyeket az olvasók 2001. okt. folyamán késve hoztak vissza a könyvtárba. A kölcsönzési idő 1 hónap.
136. sor: 173. sor:




(2002-11-15/A 2. módosított) Tekintsük az alábbi Csillagflotta adatbázissémát: Csillaghajó(hajónév, év, faj), Dolgozó(dolgozónév, azonosító, születés), Beosztás(azonosító, hajónév, rang). A relációk jelentése: Csillaghajó; a hajó neve, gyártási éve és az, hogy melyik faj tervei alapján készült, Dolgozó; neve,  Csillagflotta-azonosítója, mikor született, Beosztás: melyik dolgozó, melyik hajón, milyen rangban dolgozik. Adjunk relációs algebrai kifejezést, mely
(2002-11-15/A 2. módosított) Tekintsük az alábbi Csillagflotta adatbázissémát:  
* Csillaghajó(hajónév, év, faj): a hajó neve, gyártási éve és az, hogy melyik faj tervei alapján készült
* Dolgozó(dolgozónév, azonosító, születés): neve,  Csillagflotta-azonosítója, mikor született
* Beosztás(azonosító, hajónév, rang): melyik dolgozó, melyik hajón, milyen rangban dolgozik
Adjunk relációs algebrai kifejezést, mely


a) előállítja azon a dolgozók nevét, akik klingon (faj által tervezett) hajón dolgoznak.
a) előállítja azon a dolgozók nevét, akik klingon (faj által tervezett) hajón dolgoznak.
143. sor: 184. sor:


{{Rejtett|mutatott='''Megoldás'''|szöveg=
{{Rejtett|mutatott='''Megoldás'''|szöveg=
a) π<sub>dolgozónév</sub>(π<sub>azonosító,dolgozónév</sub>(Dolgozó) ⋈ (π<sub>hajónév,azonosító</sub>(Beosztás) ⋈ π<sub>hajónév</sub>(σ<sub>faj='klingon'</sub>(Csillaghajó)))
a) <code>π<sub>dolgozónév</sub>(π<sub>azonosító,dolgozónév</sub>(Dolgozó) ⋈ (π<sub>hajónév,azonosító</sub>(Beosztás) ⋈ π<sub>hajónév</sub>(σ<sub>faj='klingon'</sub>(Csillaghajó)))</code>


b) CJHajói = π<sub>hajónév</sub>(σ<sub>rang='kapitány'</sub>(π<sub>azonosító</sub>(σ<sub>dolgozónév='Catherine Janeway'</sub>(Dolgozó)) ⋈ Beosztás))
b) Először gyűjtsük ki azokat a hajókat, ahol Catherine Janeway kapitány: <code>CJHajói = π<sub>hajónév</sub>(σ<sub>rang='kapitány'</sub>(π<sub>azonosító</sub>(σ<sub>dolgozónév='Catherine Janeway'</sub>(Dolgozó)) ⋈ Beosztás))</code>


π<sub>dolgozónév</sub>(Dolgozó ⋈ π<sub>azonosító</sub>(Beosztás ⋈ CJHajói))
Ezután a kapott hajók minden dolgozójukat listázzuk: <code>π<sub>dolgozónév</sub>(Dolgozó ⋈ π<sub>azonosító</sub>(Beosztás ⋈ CJHajói))</code>
}}
}}


----
----
155. sor: 197. sor:
(2002-11-15/A-B 4.) Legyen R és S két, azonos attribútumokkal rendelkező reláció, X pedig ezen közös attribútumhalmaz egy részhalmaza. Mely igaz (melyek igazak) az alábbi állítások közül? Válaszodat indokold!
(2002-11-15/A-B 4.) Legyen R és S két, azonos attribútumokkal rendelkező reláció, X pedig ezen közös attribútumhalmaz egy részhalmaza. Mely igaz (melyek igazak) az alábbi állítások közül? Válaszodat indokold!


a) π<sub>X</sub>(R ∩ S) = π<sub>X</sub>(R) ∩ π<sub>X</sub>(S)
a) <code>π<sub>X</sub>(R ∩ S) = π<sub>X</sub>(R) ∩ π<sub>X</sub>(S)</code>


b) π<sub>X</sub>(R ∪ S) = π<sub>X</sub>(R) ∪ π<sub>X</sub>(S)
b) <code>π<sub>X</sub>(R ∪ S) = π<sub>X</sub>(R) ∪ π<sub>X</sub>(S)</code>


c) π<sub>X</sub>(R \ S) = π<sub>X</sub>(R) \ π<sub>X</sub>(S)
c) <code>π<sub>X</sub>(R \ S) = π<sub>X</sub>(R) \ π<sub>X</sub>(S)</code>


{{Rejtett|mutatott='''Megoldás'''|szöveg=
{{Rejtett|mutatott='''Megoldás'''|szöveg=
a) Nem igaz. Ellenpélda: legyen a két séma R(A, B) és S(A, B), X legyen az A-ból álló egy elemű halmaz. R-nek csak egy sora legyen: (a,b), és S-nek is csak egy sora legyen: (a,b'). Ekkor π<sub>A</sub>(R ∩ S) = ∅, de π<sub>A</sub>(R) ∩ π<sub>A</sub>(S) = {a}.
a) Nem igaz. Ellenpélda: legyen a két séma R(A, B) és S(A, B), X legyen az A-ból álló egy elemű halmaz. R-nek csak egy sora legyen: (a,b), és S-nek is csak egy sora legyen: (a,b'). Ekkor <code>π<sub>A</sub>(R ∩ S) = ∅</code>, de <code>π<sub>A</sub>(R) ∩ π<sub>A</sub>(S) = {a}</code>.


b) Igaz. Mindkét irányba megmutatjuk a tartalmazást. Először belátjuk, hogy π<sub>X</sub>(R ∪ S) ⊆ π<sub>X</sub>(R) ∪ π<sub>X</sub>(S) igaz. Ha egy t sor eleme π<sub>X</sub>(R ∪ S)-nak, akkor létezik olyan t' sor R ∪ S-ben definíció szerint, hogy t'-nek X-re eső vetülete éppen t. Az unió definíciója miatt t' ∈ R vagy t' ∈ S fennáll. Mivel t a t' X-re eső vetülete, ezért vagy t ∈ π<sub>X</sub>(R) vagy t ∈ π<sub>X</sub>(S) igaz lesz és így t ∈ π<sub>X</sub>(R) ∪ π<sub>X</sub>(S).
b) Igaz. Mindkét irányba megmutatjuk a tartalmazást. Először belátjuk, hogy <code>π<sub>X</sub>(R ∪ S) ⊆ π<sub>X</sub>(R) ∪ π<sub>X</sub>(S)</code> igaz. Ha egy t sor eleme <code>π<sub>X</sub>(R ∪ S)</code>-nak, akkor létezik olyan t' sor <code>R ∪ S</code>-ben definíció szerint, hogy t'-nek X-re eső vetülete éppen t. Az unió definíciója miatt <code>t' ∈ R</code> vagy <code>t' ∈ S</code> fennáll. Mivel t a t' X-re eső vetülete, ezért vagy <code>t ∈ π<sub>X</sub>(R)</code> vagy <code>t ∈ π<sub>X</sub>(S)</code> igaz lesz és így <code>t ∈ π<sub>X</sub>(R) ∪ π<sub>X</sub>(S)</code>.


A másik irányban: Ha t ∈ π<sub>X</sub>(R) ∪ π<sub>X</sub>(S), akkor t ∈ π<sub>X</sub>(R) vagy t ∈ π<sub>X</sub>(S) fennáll, tegyük fel, hogy t ∈ π<sub>X</sub>(R) (a másik eset hasonló). Ekkor létezik definíció szerint egy olyan t' ∈ R sor, melynek X-re eső vetülete éppen t. De mivel t' ∈ R ∪ S is igaz, ezért t ∈ π<sub>X</sub>(R ∪ S) is fennáll.
A másik irányban: Ha <code>t ∈ π<sub>X</sub>(R) ∪ π<sub>X</sub>(S)</code>, akkor <code>t ∈ π<sub>X</sub>(R)</code> vagy <code>t ∈ π<sub>X</sub>(S)</code> fennáll, tegyük fel, hogy <code>t ∈ π<sub>X</sub>(R)</code> (a másik eset hasonló). Ekkor létezik definíció szerint egy olyan <code>t' ∈ R</code> sor, melynek X-re eső vetülete éppen t. De mivel <code>t' ∈ R ∪ S</code> is igaz, ezért <code>t ∈ π<sub>X</sub>(R ∪ S)</code> is fennáll.


c) Nem igaz. Ellenpélda: legyen a két séma R(A, B) és S(A, B), X legyen az A-ból álló egy elemű halmaz. R-nek csak egy sora legyen: (a,b), és S-nek is csak egy sora legyen: (a,b'). Ekkor π<sub>A</sub>(R \ S) = {a}, de π<sub>A</sub>(R) \ π<sub>A</sub>(S) = ∅.
c) Nem igaz. Ellenpélda: legyen a két séma R(A, B) és S(A, B), X legyen az A-ból álló egy elemű halmaz. R-nek csak egy sora legyen: (a,b), és S-nek is csak egy sora legyen: (a,b'). Ekkor <code>π<sub>A</sub>(R \ S) = {a}</code>, de <code>π<sub>A</sub>(R) \ π<sub>A</sub>(S) = ∅</code>.
}}
}}


175. sor: 217. sor:




(2007-04-25 2.) Tekintsük a következő három relációból álló adatbázissémát (ami a Húsvéti Nyúl számára készült): Gyerek(GyerekNév, Nem, SzületésiÉv) (milyen nevű, milyen nemű gyerek mikor született), Kér(GyerekNév, JátékNév) (melyik gyerek mit kért húsvétra), Kap(GyerekNév, JátékNév) (melyik gyerek mit kap húsvétra). Adja meg relációs algebrával azon gyerekek nevét, akik semmi olyat nem kapnak, amit kértek. (Azt feltehetjük, hogy minden gyerek kért legalább egy dolgot.)
(2007-04-25 2.) Tekintsük a következő három relációból álló adatbázissémát (ami a Húsvéti Nyúl számára készült):
* Gyerek(GyerekNév, Nem, SzületésiÉv): milyen nevű, milyen nemű gyerek mikor született
* Kér(GyerekNév, JátékNév): melyik gyerek mit kért húsvétra
* Kap(GyerekNév, JátékNév: melyik gyerek mit kap húsvétra
Adja meg relációs algebrával azon gyerekek nevét, akik semmi olyat nem kapnak, amit kértek. (Azt feltehetjük, hogy minden gyerek kért legalább egy dolgot.)




181. sor: 227. sor:




(2006-11-20 2.) Tekintsük a következő két relációból álló adatbázissémát: Hallgató (HallgatóNév, Nem, Neptunkód) (milyen nevű, milyen nemű hallgatónak mi a Neptun kódja, kulcs a Neptunkód), Átlagok(Neptunkód, Félév, Átlag) (melyik Neptun kódhoz milyen átlag tartozik egy adott félévben, kulcs a (Neptunkód, Félév) pár). Adja meg relációs algebrával azon hallgatók nevét, akik a "2006/2007/1" félévben a legmagasabb átlagot érték el.
(2006-11-20 2.) Tekintsük a következő két relációból álló adatbázissémát:
* Hallgató (HallgatóNév, Nem, Neptunkód): milyen nevű, milyen nemű hallgatónak mi a Neptun kódja, kulcs a Neptunkód
* Átlagok(Neptunkód, Félév, Átlag): melyik Neptun kódhoz milyen átlag tartozik egy adott félévben, kulcs a (Neptunkód, Félév) pár
Adja meg relációs algebrával azon hallgatók nevét, akik a "2006/2007/1" félévben a legmagasabb átlagot érték el.
 
{{Rejtett|mutatott='''Megoldás'''|szöveg=
Több lépésben építjük fel a kifejezést. Először keressük ki az erre a félévre vonatkozó adatokat és nevezzük át az eredményt, mert két példányban lesz rá szükségünk:
 
<code>Atlag<sub>1</sub> = ρ<sub>Atlag1(NK1,A1)</sub>(π<sub>NeptunKod,Atlag</sub>(σ<sub>Felev="2006/2007/1"</sub>(Atlagok)))</code>
 
<code>Atlag<sub>2</sub> = ρ<sub>Atlag2(NK2,A2)</sub>(π<sub>NeptunKod,Atlag</sub>(σ<sub>Felev="2006/2007/1"</sub>(Atlagok)))</code>
 
Ezután vegyük a két példány direkt szorzatát és válasszuk ki azokat az első helyen álló neptunkódokat, amikhez tartozó átlag kisebb, mint a második átlag (ezek azok a neptunkódok, amiknek az átlagánál volt jobb ebben a félévben):
 
<code>t<sub>1</sub> = π<sub>NK1</sub>(σ<sub>A1<A2</sub>(Átlag<sub>1</sub> x Atlag<sub>2</sub>))</code>
 
Most válasszuk ki az összes neptunkódot, amihez tartozik átlag ebben a félévben és vonjuk ki ebből t<sub>1</sub>-et, ez lesz a keresett neptun kódok halmaza:
 
<code>t<sub>2</sub> = π<sub>Neptunkod</sub>(σ<sub>Felev="2006/2007/1"</sub>(Atlagok)) \ t<sub>1</sub></code>
 
Ezt kell még illeszteni a Hallgató relációval és kiválasztani belőle a neveket, ez a végeredmény:
 
<code>π<sub>Hallgatonev</sub>(Hallgato ⋈ t<sub>2</sub>)</code>
}}




187. sor: 256. sor:




(2004-11-30 3.a) Tekintsük az alábbi adatbázissémát: Járat(Járatszám, Honnan, Hova, Távolság, Indul, Érkezik), Repülőtípus(TípusAzonosító, TípusNév, Hatótávolság), Jogosítvány(PilótaAzonosító, TípusAzonosító), Pilóta(PilótaAzonosító, PilótaNév). A relációk jelentése: Járat; melyik számú járat mikor és honnan, mikor és hova érkezik, mennyi távolságot tesz meg (kulcs a Járatszám), Repülőtípus; a típus azonosítója, neve és mennyit tud megtenni leszállás nélkül (kulcs a TípusAzonosító), Jogosítvány; milyen azonosítójú pilóta milyen azonosítójú gépet tud elvezetni (itt a PilótaAzonosító és a TípusAzonosító együtt alkot kulcsot), Pilóta; milyen azonosítójú polóta és mi a neve (kulcs a PilótaAzonosító). Fejezd ki relációs algebrával azon repülőgépek TípusAzonosítóit, melyek leszállás nélkül el tudnak repülni Budapestről Bombayba.
(2004-11-30 3.a) Tekintsük az alábbi adatbázissémát:
* Járat(Járatszám, Honnan, Hova, Távolság, Indul, Érkezik): melyik számú járat mikor és honnan, mikor és hova érkezik, mennyi távolságot tesz meg (kulcs a Járatszám)
* Repülőtípus(TípusAzonosító, TípusNév, Hatótávolság): a típus azonosítója, neve és mennyit tud megtenni leszállás nélkül (kulcs a TípusAzonosító)
* Jogosítvány(PilótaAzonosító, TípusAzonosító): milyen azonosítójú pilóta milyen azonosítójú gépet tud elvezetni (itt a PilótaAzonosító és a TípusAzonosító együtt alkot kulcsot)
* Pilóta(PilótaAzonosító, PilótaNév): milyen azonosítójú polóta és mi a neve (kulcs a PilótaAzonosító)
Fejezd ki relációs algebrával azon repülőgépek TípusAzonosítóit, melyek leszállás nélkül el tudnak repülni Budapestről Bombayba.






== Sor- és oszlopkalkulus ==  
== Sor- és oszlopkalkulus ==  
(1996-04-16 5.) Adott az alábbi relációs adatbázis: LÁTOGAT(KORHELY, KOCSMA), ÁRUL(KOCSMA, SÖR), KEDVEL(KORHELY, SÖR). A relációk értelme rendre: azon KOCSMÁk, amiket egy KORHELY látogat; melyik KOCSMA milyen SÖRt árul; a KORHELYek melyik SÖRöket kedvelik.
(1996-04-16 5.) Adott az alábbi relációs adatbázis:
* LÁTOGAT(KORHELY, KOCSMA)
* ÁRUL(KOCSMA, SÖR)
* KEDVEL(KORHELY, SÖR)
A relációk értelme rendre: azon KOCSMÁk, amiket egy KORHELY látogat; melyik KOCSMA milyen SÖRt árul; a KORHELYek melyik SÖRöket kedvelik.


Adjon meg egy sorkalkulus kifejezést arra a relációra, amely azokat a korhelyeket tartalmazza, akik látogatnak olyan kocsmát, amely árul olyan sört, amelyet a korhely kedvel!
Adjon meg egy sorkalkulus kifejezést arra a relációra, amely azokat a korhelyeket tartalmazza, akik látogatnak olyan kocsmát, amely árul olyan sört, amelyet a korhely kedvel!
{{Rejtett|mutatott='''Megoldás'''|szöveg=
<code>{ k<sup>(1)</sup> &#124; ∃l<sup>(2)</sup> ∃v<sup>(2)</sup> ( LÁTOGAT(l<sup>(2)</sup>) ∧ ÁRUL(a<sup>(2)</sup>) ∧ KEDVEL(v<sup>(2)</sup>) ∧ k[1] = l[1] ∧ l[1] = v[1] ∧ l[2] = a[1] ∧ a[2] = v[2] ) }</code>
}}




200. sor: 282. sor:




(2000-04-25 3.) Adott az alábbi relációs adatbázis: GYÁRT(CÉG, TÍPUS, ÁR), SZERETI(VEVŐ, TIPLIS), DOLGOZIK(VEVŐ, CÉG, BEOSZTÁS) A relációk jelentése rendre: azon autóTÍPUSok, amiket egy CÉG gyárt az azok eladási ÁRa; egy VEVŐ melyik autóTÍPUSt szereti; a VEVŐ melyik CÉGnél dolgozik, milyen BEOSZTÁSban.
(2000-04-25 3.) Adott az alábbi relációs adatbázis:
* GYÁRT(CÉG, TÍPUS, ÁR)
* SZERETI(VEVŐ, TIPLIS)
* DOLGOZIK(VEVŐ, CÉG, BEOSZTÁS)
A relációk jelentése rendre: azon autóTÍPUSok, amiket egy CÉG gyárt az azok eladási ÁRa; egy VEVŐ melyik autóTÍPUSt szereti; a VEVŐ melyik CÉGnél dolgozik, milyen BEOSZTÁSban.


a) Adjon meg egy sorkalkulus kifejezést, amely azokat a vevőket tartalmazó relációt állítja elő, akik olyan cégnél dolgoznak, amelyek gyártanak olyan autótípust, amilyet a vevő szeret!
a) Adjon meg egy sorkalkulus kifejezést, amely azokat a vevőket tartalmazó relációt állítja elő, akik olyan cégnél dolgoznak, amelyek gyártanak olyan autótípust, amilyet a vevő szeret!
212. sor: 298. sor:
(2000-11-17/A-B 4.) Legyenek R(A, B, C, D) és S(C, D, E) alaprelációk, és legyen  
(2000-11-17/A-B 4.) Legyenek R(A, B, C, D) és S(C, D, E) alaprelációk, és legyen  


a) π<sub>AC</sub>(σ<sub>E=2</sub>(R ⋈ S))
a) <code>π<sub>AC</sub>(σ<sub>E=2</sub>(R ⋈ S))</code>


b) π<sub>CD</sub>(R) ∩ π<sub>CD</sub>(S)
b) <code>π<sub>CD</sub>(R) ∩ π<sub>CD</sub>(S)</code>


belőle képzett leszármaztatott reláció. Fejezze ki ez utóbbit sor- és oszlopkalkulussal.
belőle képzett leszármaztatott reláció. Fejezze ki ez utóbbit sor- és oszlopkalkulussal.


{{Rejtett|mutatott='''Megoldás'''|szöveg=
{{Rejtett|mutatott='''Megoldás'''|szöveg=
a)
a) Sorkalkulussal:
 
<code>{ t<sup>(2)</sup> &#124; ∃u<sup>(4)</sup> ∃v<sup>(3)</sup> R(u) ∧ S(v) ∧ u[3] = v[1] ∧ u[4] = v[2] ∧ v[3] = '2' ∧ t[1] = u[1] ∧ t[2] = u[3] }</code>
 
Oszlopkalkulussal:


Sorkalkulussal: { t<sup>(2)</sup> &#124; ∃u<sup>(4)</sup> ∃v<sup>(3)</sup> R(u) ∧ S(v) ∧ u[3] = v[1] ∧ u[4] = v[2] ∧ v[3] = '2' ∧ t[1] = u[1] ∧ t[2] = u[3] }
<code>{ a, c &#124; ∃b ∃d ∃e R(a,b,c,d) ∧ S(c,d,e) ∧ e = '2' }</code>


Oszlopkalkulussal: { a, c &#124; ∃b ∃d ∃e R(a,b,c,d) ∧ S(c,d,e) ∧ e = '2' }
b) Sorkalkulussal:


b)
<code>{ t<sup>(2)</sup> &#124; ∃u<sup>(4)</sup> ∃v<sup>(3)</sup> R(u) ∧ S(v) ∧ u[3] = v[1] ∧ u[4] = v[2] ∧ t[1] = u[3] ∧ t[2] = u[4] }</code>


Sorkalkulussal: { t<sup>(2)</sup> &#124; ∃u<sup>(4)</sup> ∃v<sup>(3)</sup> R(u) ∧ S(v) ∧ u[3] = v[1] ∧ u[4] = v[2] ∧ t[1] = u[3] ∧ t[2] = u[4] }
Oszlopkalkulussal:


Oszlopkalkulussal: { c, d &#124; ∃a ∃b ∃e R(a,b,c,d) ∧ S(c,d,e) }
<code>{ c, d &#124; ∃a ∃b ∃e R(a,b,c,d) ∧ S(c,d,e) }</code>
}}
}}


239. sor: 329. sor:


{{Rejtett|mutatott='''Megoldás'''|szöveg=
{{Rejtett|mutatott='''Megoldás'''|szöveg=
{ t<sup>(7)</sup> &#124; ∃r<sup>(5)</sup> ∃s<sup>(4)</sup> ( R(r) ∧ S(s) ∧ r[1] = s[1] ∧ r[2] = s[2] ∧ r[1] = t[1] ∧ r[2] = t[2] ∧ r[3] = t[3] ∧ r[4] = t[4] ∧ r[5] = t[5] ∧ s[3] = t[6] ∧ s[4] = t[7] ) }
<code>{ t<sup>(7)</sup> &#124; ∃r<sup>(5)</sup> ∃s<sup>(4)</sup> ( R(r) ∧ S(s) ∧ r[1] = s[1] ∧ r[2] = s[2] ∧ r[1] = t[1] ∧ r[2] = t[2] ∧ r[3] = t[3] ∧ r[4] = t[4] ∧ r[5] = t[5] ∧ s[3] = t[6] ∧ s[4] = t[7] ) }</code>
}}
}}


246. sor: 336. sor:




(2002-11-15/A 3.b) Az R reláció attribútumai (A; B ; C; D), az S-é pedig (C; D). Ekkor R ÷ S, R és S hányadosa, azon (A; B) attribútumú t sorokból áll, melyekre igaz, hogy bármely S-beli s sor esetén a ts sor R-ben van. Fejezze ki R ÷ S-t oszlopkalkulus segítségével! Feltehetjük, hogy az S reláció nem üres.
(2002-11-15/A 3.b) Az R reláció attribútumai (A; B; C; D), az S-é pedig (C; D). Ekkor R ÷ S, R és S hányadosa, azon (A; B) attribútumú t sorokból áll, melyekre igaz, hogy bármely S-beli s sor esetén a ts sor R-ben van. Fejezze ki R ÷ S-t oszlopkalkulus segítségével! Feltehetjük, hogy az S reláció nem üres.


{{Rejtett|mutatott='''Megoldás'''|szöveg=
{{Rejtett|mutatott='''Megoldás'''|szöveg=
{a, b &#124; ∀c ∀d ( R(a, b, c, d) ∨ ¬S(c, d) ) }
<code>{a, b &#124; ∀c ∀d ( R(a, b, c, d) ∨ ¬S(c, d) ) }</code>


Magyarázat: Egy (a,b) pár pontosan akkor van benne a hányadosban, ha minden S-beli (c,d) párra (a,b,c,d) R-ben van. Azaz annak kell teljesülnie, hogy S(c, d) implikálja R(a, b, c, d)-t minden (c,d) esetén. Az S(c, d) → R(a, b, c, d) implikációt pedig R(a, b, c, d) ∨ ¬S(c, d) alakba lehet írni.
Magyarázat: Egy (a,b) pár pontosan akkor van benne a hányadosban, ha minden S-beli (c,d) párra (a,b,c,d) R-ben van. Azaz annak kell teljesülnie, hogy S(c, d) implikálja R(a, b, c, d)-t minden (c,d) esetén. Az S(c, d) → R(a, b, c, d) implikációt pedig R(a, b, c, d) ∨ ¬S(c, d) alakba lehet írni.
258. sor: 348. sor:




(2004-06-02 5.) Vizsgálja meg, hogy biztonságos-e a sorkalkulus. Minden változó doménje a természetes számok halmaza, alma<sup>1</sup> = {2,3}.
(2004-06-02 5.) Vizsgálja meg, hogy biztonságos-e a sorkalkulus. Minden változó doménje a természetes számok halmaza, <code>alma<sup>1</sup> = {2,3}</code>.


{ x<sup>(1)</sup> | (∃ t<sup>(1)</sup>) x<sup>(1)</sup>[1] = t<sup>(1)</sup>[1] ∧ t<sup>(1)</sup>[1] > 2 ∧ alma<sup>(1)</sup>(x<sup>(1)</sup>) }
<code>{ x<sup>(1)</sup> &#124; (∃ t<sup>(1)</sup>) x<sup>(1)</sup>[1] = t<sup>(1)</sup>[1] ∧ t<sup>(1)</sup>[1] > 2 ∧ alma<sup>(1)</sup>(x<sup>(1)</sup>) }</code>




269. sor: 359. sor:


a) Fogalmazza meg szavakkal, hogy mit fejez ki az alábbi sorkalkulusos kifejezés:
a) Fogalmazza meg szavakkal, hogy mit fejez ki az alábbi sorkalkulusos kifejezés:
{ t<sup>(1)</sup> | (∃ u<sup>(3)</sup>) (u[1] = t[1] ∧ Gyerek(u) ∧ (∀ v<sup>(2)</sup>) ( v[1] ≠ t[1] ∨ ¬Kér(v) ∨ Kap(v) ) ) }
 
<code>{ t<sup>(1)</sup> &#124; (∃ u<sup>(3)</sup>) (u[1] = t[1] ∧ Gyerek(u) ∧ (∀ v<sup>(2)</sup>) ( v[1] ≠ t[1] ∨ ¬Kér(v) ∨ Kap(v) ) ) }</code>


b) Biztonságos-e a fenti kifejezés?
b) Biztonságos-e a fenti kifejezés?
295. sor: 386. sor:




(2005-05-03 2.) Adott a következő séma: Jegyek(Neptun, DiákNév, Tárgykód, Jegy). (Melyik diák melyik tárgyból milyen jegyet kapott, kulcs a. (Neptun, Tárgykód) pár.) Fejezd ki sorkalkulussal azokat a tárgykódokat, amely tárgyakból csak olyan diákok szereztek jegyet, akik Legalább egy tárgyból szereztek legalább elégségest.
(2005-05-03 2.) Adott a következő séma:
* Jegyek(Neptun, DiákNév, Tárgykód, Jegy): Melyik diák melyik tárgyból milyen jegyet kapott, kulcs a. (Neptun, Tárgykód) pár.
Fejezd ki sorkalkulussal azokat a tárgykódokat, amely tárgyakból csak olyan diákok szereztek jegyet, akik Legalább egy tárgyból szereztek legalább elégségest.
 
{{Rejtett|mutatott='''Megoldás'''|szöveg=
<code>{ s<sup>(1)</sup> &#124; ∃q<sup>(4)</sup> ( Jegyek(q) ∧ q[3] = s[1] ) ∧ ∀t<sup>(4)</sup> ( ¬Jegyek(t) ∨ s[1] ≠ t[3] ∨ ∃u<sup>(4)</sup> ( Jegyek(u) ∧ t[1] = u[1] ∧ u[4] > 1 ) ) }</code>
}}




301. sor: 398. sor:




(2006-11-20 3.) Adott a következő séma: Jegyek (Neptun, DiákNév, Tárgykód, Jegy). (Melyik diák melyik tárgyból milyen jegyet kapott, kulcs a (Neptun, Tárgykód) pár.)
(2006-11-20 3.) Adott a következő séma:
a) Biztonságos-e az alábbi sorkalkulusos kifejezés? {s<sup>(1)</sup> | ∃ q<sup>(4)</sup>(Jegyek(q) ∧ q[3] = s[1]) ∧ ∀t<sup>(4)</sup>(¬Jegyek(t) ∨ s[1] t[3] ∨ t[4] = '5') }
* Jegyek (Neptun, DiákNév, Tárgykód, Jegy): Melyik diák melyik tárgyból milyen jegyet kapott, kulcs a (Neptun, Tárgykód) pár.
a) Biztonságos-e az alábbi sorkalkulusos kifejezés?
 
<code>{s<sup>(1)</sup> | ∃q<sup>(4)</sup>(Jegyek(q) ∧ q[3] = s[1]) ∧ ∀t<sup>(4)</sup>(¬Jegyek(t) ∨ ¬s[1] = t[3] ∨ t[4] = '5') }</code>


b) Fejezze ki szavakkal, hogy mit ír le a fenti sorkalkulusos kifejezés.
b) Fejezze ki szavakkal, hogy mit ír le a fenti sorkalkulusos kifejezés.
{{Rejtett|mutatott='''Megoldás'''|szöveg=
a) Igen biztonságos. Ennek belátásához 3 dolgot kell megnéznünk:
# A végeredménybe belekerülő adatok benne vannak a dom-ban, ami most a Jegyek reláció összes oszlopának összes értéke, plusz a kifejezésben szereplő konstansok. Ez most igaz, mert az <code>s<sup>(1)</sup></code> eredmény szerepel a Jegyek reláció egyik oszlopában <code>Jegyek(q) ∧ q[3] = s[1]</code> miatt.
# Minden ∃-es részformulára meg kell nézni, hogy a helyessége eldönthető-e az egzisztenciális kvantor mögött álló kifejezés dom-jának végignézésével. Egy ilyen részformula van most, a <code>∃q<sup>(4)</sup>(Jegyek(q) ∧ q[3] = s[1])</code>, azt kell megnézni, hogy igaz-e, hogy ha létezik jó q, akkor a dom-on belül van ilyen. De ez most <code>Jegyek(q)</code> miatt igaz.
# Minden ∀-es részformulára meg kell nézni, hogy a helyessége eldönthető-e a dom végignézésével: ilyenkor a <code>∀t(φ(t))</code> formulát átírjuk <code>¬∃t(¬φ(t))</code> alakra és az itt kapott ∃-es formulára ellenőrizzük az előbbi feltételt. Ez most azt jelenti, hogy a <code>∀t<sup>(4)</sup>(¬Jegyek(t) ∨ ¬s[1] = t[3] ∨ t[4] = 5)</code> formulát át kell írni a <code>¬∃t<sup>(4)</sup>(¬Jegyek(t) ∧ s[1] = t[3] ∧ t[4] ≠ 5)</code> alakra. Ez pedig ugyanazért lesz jó, amiért a 2. pontban nézett formula.
b) A formula értelmezése: Olyan s-eket keresünk, amik a Jegyek reláció valamely sorában állnak a tárgykód oszlopban (vagyis tárgykódokat keresünk), és ezek a tárgykódok olyanok, hogy nincs olyan t<sup>(4)</sup> négyes, ami szerepel a Jegyekben, ehhez a tárgyhoz tartozik és nem ötös a jegy benne. (Ez az előbbi átírásból látszik.) Vagyis azokat a tárgykódokat keressük, amikből szerzett jegyet valaki és amiből csak ötös jegy született.
}}




310. sor: 419. sor:




(2004-11-30 3.b) Tekintsük az alábbi adatbázissémát: Járat(Járatszám, Honnan, Hova, Távolság, Indul, Érkezik), Repülőtípus(TípusAzonosító, TípusNév, Hatótávolság), Jogosítvány(PilótaAzonosító, TípusAzonosító), Pilóta(PilótaAzonosító, PilótaNév). A relációk jelentése: Járat; melyik számú járat mikor és honnan, mikor és hova érkezik, mennyi távolságot tesz meg (kulcs a Járatszám), Repülőtípus; a típus azonosítója, neve és mennyit tud megtenni leszállás nélkül (kulcs a TípusAzonosító), Jogosítvány; milyen azonosítójú pilóta milyen azonosítójú gépet tud elvezetni (itt a PilótaAzonosító és a TípusAzonosító együtt alkot kulcsot), Pilóta; milyen azonosítójú polóta és mi a neve (kulcs a PilótaAzonosító). Fejezd ki sorkalkulussal azon repülőgépek TípusAzonosítóit, melyek leszállás nélkül el tudnak repülni Budapestről Bombayba.
(2004-11-30 3.b) Tekintsük az alábbi adatbázissémát:
* Járat(Járatszám, Honnan, Hova, Távolság, Indul, Érkezik): melyik számú járat mikor és honnan, mikor és hova érkezik, mennyi távolságot tesz meg (kulcs a Járatszám)
* Repülőtípus(TípusAzonosító, TípusNév, Hatótávolság): a típus azonosítója, neve és mennyit tud megtenni leszállás nélkül (kulcs a TípusAzonosító)
* Jogosítvány(PilótaAzonosító, TípusAzonosító): milyen azonosítójú pilóta milyen azonosítójú gépet tud elvezetni (itt a PilótaAzonosító és a TípusAzonosító együtt alkot kulcsot)
* Pilóta(PilótaAzonosító, PilótaNév): milyen azonosítójú polóta és mi a neve (kulcs a PilótaAzonosító)
Fejezd ki sorkalkulussal azon repülőgépek TípusAzonosítóit, melyek leszállás nélkül el tudnak repülni Budapestről Bombayba.






== Fizikai adatbázis==  
== Fizikai adatbázis==  
(1996-04-16 3.) Egy 15525 rekordból álló állományt szeretnénk ritka index szervezéssel tárolni. A rekordhossz 850 byte, egy blokk kapacitása (a fejrészt nem számítva) 4000 byte. A kulcs 50 byte-os, egy mutatóhoz 18 byte kell.
(1996-04-16 3.) Egy 15525 rekordból álló állományt szeretnénk 1 szintű ritka index szervezéssel tárolni. A rekordhossz 850 byte, egy blokk kapacitása (a fejrészt nem számítva) 4000 byte. A kulcs 50 byte-os, egy mutatóhoz 18 byte kell.


a) Legalább hány blokkra van szükség?
a) Legalább hány blokkra van szükség?


b) Mennyi ideig tart legfeljebb egy rekord tartalmának kiolvasása, ha az operatív tárban rendelkezésünkre álló szabad hely 5000 byte? Segít-e a legnagyobb rekordhozzáférési idő csökkentésében, ha 10-szer (100-szor) ennyi szabad memóriával gazdálkodhatunk?
b) Mennyi ideig tart legfeljebb egy rekord tartalmának kiolvasása, ha az operatív tárban rendelkezésünkre álló szabad hely 5000 byte? Segít-e a legnagyobb rekordhozzáférési idő csökkentésében, ha 10-szer (100-szor) ennyi szabad memóriával gazdálkodhatunk?
{{Rejtett|mutatott='''Megoldás'''|szöveg=
a) 4000 byte-on 850-es rekordhosszal 4 rekord fér el. Ez azt jelenti, hogy összesen 3882 blokk kell az adatoknak. Ehhez jön még az egyszintű index. 4000 byte-on 58 db 68 byte-os kulcs-mutató pár fér el. Így a 3882 blokk indexeléséhez 67 blokkra van szükség.
b) A maximális elérési idő. 5000 byte-ba egy blokk fér be egyszerre. Ehhez azt kell tudni, hogy hogyan is keresünk egy ilyen ritka indexben. Hát mondjuk ugye binárisan nem, mert az indexblokkok nincsenek szorosan egymás után a diszken. Akkor szekvenciálisan, ahol rossz esetben végig kell olvasni az egész indexet (mind a 67 blokkot). Utána még egy lapelérés, tehát max. 68 blokkművelet kell.
Ha van elég sok memória, akkor az indexet a memóriában tarthatjuk tartósan, és ilyenkor már lehet binárisan keresni a memóriában villámgyorsan. Keresés után az adat elérése csak 1 plusz blokkművelet.
}}