2006. őszi félév:
Adatbázis-kezelés (IKP-ABE)
Beadandó feladat (2K):
Veszteségmentesség eldöntése
Feladatleírás:
C++ nyelven írjunk egy
programot, amely tetszőleges relációséma dekompozíciójáról
és a sémára vonatkozó funkcionális
függőségi halmazról eldönti, hogy a relációséma veszteségmentes-e a függőségi
halmazra nézve. A programot fordítsuk le MS
Windows alatt.
A program neve abcdefg EHA kód
esetén a következő
legyen:
2kabcdefg.exe
A program MS Windows parancssorból futtatható legyen 2
paraméter, az input és az output fájl nevének
megadásával:
2kabcdefg input.txt output.txt
A programot, és a forráskódo(kat) az ab2006@inf.elte.hu címre kell
elküldeni a megadott határidő előtt.
A csatolt állományokat nem kell
összetömöríteni. Mindenki egy levelet küldjön,
és ahhoz legyen minden csatolva.
A levél subject-je abcdefg EHA kód esetén 2kabcdefg
legyen. A levélbe nem kell semmit írni!
A program egy szöveges input fájlból olvassa be a
relációséma dekompozícióját, és a funkcionális
függőségi halmazt, majd a veszteségmentes
vagy nem veszteségmentes szöveget a
végéhez csatolja az algoritmus eredményének
megfelelően. Szintaktikai
ellenőrzést nem muszáj végezni, feltehetjük,
hogy az input fájl helyes, azaz a függőségekben
szereplő attribútumok szerepelnek
a dekompozícióban, a függőségek
megadása megfelel a lent megadottnak, stb.
Például az input2k.txt
fájlt beolvasva, (ami egy 4 tagú dekompozíciót és 4
függőséget tartalmaz), a programnak az output2k.txt
fájlt kell előállítania.
A funkcionális függőségek
formája a következő
(nyíl helyett kötőjel és nagyobb jel szerepel):
A1,...,Ak->B1,…,Bl
A könnyebbség és
egyértelműség érdekében a megvalósításhoz
feltesszük a következőket:
- A
relációnevek, attribútumnevek.char(30) típusúak.
- A kis-
és nagybetűket különbözőeknek
tekintjük.
- A
relációsémák legfeljebb 50 attribútumot
tartalmaznak, a dekompozíció
legfeljebb 30 elemű, a függőségek száma
legfeljebb 100.
- A
függőségek és a dekompozíció
tagjai külön sorokban
szerepelnek.
- Az
input és output fájlokban a dekompozíció, a függőségi halmaz, és a végeredmény között
1-1 üres sor szerepel.
2006. október 5.