2006. őszi félév: Adatbázis-kezelés (IKP-ABE)

 

Beadandó feladat (2N):

 

Függőségőrzés 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 függőségőrző-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:

2nabcdefg.exe

 

A program MS Windows parancssorból futtatható legyen 2 paraméter, az input és az output fájl nevének megadásával:

2nabcdefg 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 2nabcdefg 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 függőségőrző vagy nem függőségőrző 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 input2n.txt fájlt beolvasva, (ami egy 4 tagú dekompozíciót és 4 függőséget tartalmaz), a programnak az output2n.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.