|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.fesenmeyer.dbnormalizer.core.algorithms.AbstractNormalizationAlgorithm
de.fesenmeyer.dbnormalizer.core.algorithms.ThreeNFSynthesisAlgorithmKemper
public class ThreeNFSynthesisAlgorithmKemper
Implementation of the synthesis normalization algorithm described in [Datenbanksysteme, Kemper/Eickler, 5th Ed., 2004, p. 181]. All tables of the generated decomposition are at least in 3NF. The algorithm has the lossless join property and is dependency-preserving. Unfortunately, in some cases the decomposition can create global redundancies.
Field Summary | |
---|---|
private static DBNormalizerLogger |
logger
The logger for this class. |
Constructor Summary | |
---|---|
ThreeNFSynthesisAlgorithmKemper()
|
Method Summary | |
---|---|
protected void |
copyTableColumnInformation(NormalizationProposal normProposal)
Copies the table column information from the old table to the new (created) tables of the given normalization proposal. |
protected NormalizationProposal |
doNormalize(Table oldTable)
The actual normalization algorithm based on [Datenbanksysteme, Kemper/Eickler, 5th Ed., 2004, p. 181]. |
NormalizationProposal |
normalize(Table oldTable)
Creates a normalization proposal for the Table specified by the argument oldTable. |
protected NormalizationProposal |
postNormalize(NormalizationProposal normProposal)
Method called after the actual normalization algorithm, to do necessary work not included in the normalization algorithm, such as calculating minimal cover and candidate keys for the new (created) tables, determining foreign keys (FKs) etc. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static DBNormalizerLogger logger
Constructor Detail |
---|
public ThreeNFSynthesisAlgorithmKemper()
Method Detail |
---|
protected NormalizationProposal doNormalize(Table oldTable) throws DBNormalizerException
oldTable
- the old table, the table to be normalized
DBNormalizerException
- if an exception occursAbstractNormalizationAlgorithm.normalize(Table)
protected NormalizationProposal postNormalize(NormalizationProposal normProposal) throws DBNormalizerException
Method called after the actual normalization algorithm, to do necessary work not included in the normalization algorithm, such as calculating minimal cover and candidate keys for the new (created) tables, determining foreign keys (FKs) etc.
Extends the normalization proposal by adding further information.
normProposal
- the normalization proposal to be extended
DBNormalizerException
protected void copyTableColumnInformation(NormalizationProposal normProposal)
normProposal
- the normalization proposalpublic NormalizationProposal normalize(Table oldTable) throws DBNormalizerException
AbstractNormalizationAlgorithm
Creates a normalization proposal for the Table specified by the argument oldTable.
NOTE: Before applying this method to a table, make sure that it contains
all the necessary data such as minimal cover (Table.setFDMinCover(java.util.Set)
),
candidate keys (Table.setCandKeys(java.util.Set)
) and primary key
(Table.setPk(de.fesenmeyer.dbnormalizer.core.PK)
). The methods for calculating
this data can be found in the FDAlgorithms
class.
normalize
in class AbstractNormalizationAlgorithm
oldTable
- the Table, for which a normalization proposal should be created
DBNormalizerException
- if the table object does not supply all of the data
needed for normalization or if another error occurs.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |