Extending classical functional dependencies for physical database design

Abstract Traditionally, database design activities are partitioned into distinct phases in which a logical design phase precedes physical database design. The objective of the logical design step is to eliminate redundancies and updating anomalies using the notion of data dependencies, while leaving the physical design step to consider how the database schema may be restructured to provide more efficient access. We argue in this paper that the separation of these two steps often results in physical database design not being able to benefit from knowledge of the semantics of data captured in the earlier phases of the database design life cycle. As a step towards overcoming this problem, we demonstrate how classical functional dependencies can be extended to capture data semantics relevant to the design of database schemas which are more desirable from the efficiency point of view. This is accomplished via the introduction of strong and weak functional dependencies. Strong functional dependencies indicate that the relationship between two attributes almost never change. This concept allows us to have controlled redundancies which is beneficial as it can reduce dramatically the effort needed to access frequently needed information. Weak functional dependencies capture the common situations in real life where classical functional dependencies between two attributes hold in general but may be violated in rare cases. Three new normal forms — the relaxed 3NF, replicated 3NF and relax-replicated 3NF, induced by the strong and weak functional dependencies, provide a theoretical framework for designing database schemas which are more efficient and practical, while not compromising the integrity of the underlying database. That is, relations in these new normal forms will not suffer from undesirable updating anomalies.