functionalDependency.general
Class RelationalDatabaseSchema

java.lang.Object
  extended by functionalDependency.general.RelationalDatabaseSchema
All Implemented Interfaces:
java.lang.Cloneable

public class RelationalDatabaseSchema
extends java.lang.Object
implements java.lang.Cloneable

Die Klasse RelationalDatabaseSchema repraesentiert ein relationales Datenbankschema. Dieses besteht aus einer Attributmenge (attributes), einer Menge funktionaler Abhaengigkeiten fds und einer Menge von Relationsschemata (dbSchema).

Implementiert sind neben den Konstruktoren die Methoden

Im Rahmen der Aufgabenstellung sind in dieser Klasse die Methoden

zu implementieren. Eine Beispielimplementation dieser Methoden ist gegeben und kann um die beiden Methoden synthese() und decomposition() erweitert werden.


Constructor Summary
RelationalDatabaseSchema(AttributeSet attr, SetOfFDs fd)
           
RelationalDatabaseSchema(java.lang.String attr, SetOfFDs fd)
           
 
Method Summary
 void addSchema(RelationSchema r)
          Fuegt dem aktuellen relationalen Datenbankschema ein Relationsschema hinzu.
 RelationalDatabaseSchema clone()
           
 RelationalDatabaseSchema convertInto3NF()
          Diese Methode zerlegt das relationale Datenbankschema abhaengigkeitserhaltend und verlustlosen in ein Schema in 3.
 RelationalDatabaseSchema convertIntoBCNF()
          Diese Methode zerlegt das relationale Datenbankschema verlustlos in ein Schema in Boyce-Codd-Normalform.
 boolean equals(java.lang.Object o)
           
 boolean equals(RelationalDatabaseSchema s)
           
 AttributeSet getAttributes()
           
 SetOfFDs getBase()
           
 SetOfFDs getFDs()
           
 SetOfRelationSchemata getRelations()
           
static RelationalDatabaseSchema parseDBSchemaFromLine(java.lang.String line)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RelationalDatabaseSchema

public RelationalDatabaseSchema(java.lang.String attr,
                                SetOfFDs fd)
                         throws MainException
Throws:
MainException

RelationalDatabaseSchema

public RelationalDatabaseSchema(AttributeSet attr,
                                SetOfFDs fd)
                         throws MainException
Throws:
MainException
Method Detail

parseDBSchemaFromLine

public static RelationalDatabaseSchema parseDBSchemaFromLine(java.lang.String line)
                                                      throws MainException
Throws:
MainException

addSchema

public void addSchema(RelationSchema r)
               throws MainException
Fuegt dem aktuellen relationalen Datenbankschema ein Relationsschema hinzu.

Parameters:
rs - das Relationsschema, das hinzugefuegt werden soll
Throws:
MainException

getRelations

public SetOfRelationSchemata getRelations()

getAttributes

public AttributeSet getAttributes()

getFDs

public SetOfFDs getFDs()

getBase

public SetOfFDs getBase()
                 throws MainException
Throws:
MainException

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

equals

public boolean equals(RelationalDatabaseSchema s)

clone

public RelationalDatabaseSchema clone()
Overrides:
clone in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

convertInto3NF

public RelationalDatabaseSchema convertInto3NF()
                                        throws MainException
Diese Methode zerlegt das relationale Datenbankschema abhaengigkeitserhaltend und verlustlosen in ein Schema in 3. Normalform. Dabei wird der Synthesealgorithmus verwendet, der in der Methode synthese() implementiert ist.

Returns:
abhaengigkeitserhaltendes und verlustloses relationale Datenbankschema in 3. Normalform
Throws:
MainException

convertIntoBCNF

public RelationalDatabaseSchema convertIntoBCNF()
                                         throws MainException
Diese Methode zerlegt das relationale Datenbankschema verlustlos in ein Schema in Boyce-Codd-Normalform. Dabei wird der Dekompositionsalgorithmus verwendet, der in der Methode decomposition() implementiert ist.

Returns:
verlustloses relationale Datenbankschema in Boyce-Codd-Normalform
Throws:
MainException