- 1
- 2
- Setirizin
- React.js
- Epilimnion
- Tropos
- Functional dependency
- Transitive dependency
- Canonical cover
- Relational model
- Third normal form
- Database normalization
- Boyce–Codd normal form
- Dependency theory (database theory)
- Referential integrity
- Fourth normal form
- What is Functional Dependency in DBMS? - GeeksforGeeks
- Types of Functional dependencies in DBMS - GeeksforGeeks
- Functional Dependency in DBMS: What is, Types and Examples
- Functional dependency - Wikipedia
- Functional Dependency and Attribute Closure - GeeksforGeeks
- Chapter 11 Functional Dependencies – Database Design – 2nd …
- Functional Dependency in DBMS - Great Learning
- Functional dependency in DBMS - Online Tutorials Library
- Types of Functional Dependencies in DBMS - talent500.com
- Functional Dependency in DBMS: Cracking the Code - Simplilearn
Family Switch (2023)
After Everything (2023)
Avatar: The Way of Water (2022)
Deep Water (2022)
Hereditary (2018)
Functional dependency GudangMovies21 Rebahinxxi LK21
In relational database theory, a functional dependency is the following constraint between two attribute sets in a relation: Given a relation R and attribute sets X,Y
⊆
{\displaystyle \subseteq }
R, X is said to functionally determine Y (written X → Y) if each X value is associated with precisely one Y value. R is then said to satisfy the functional dependency X → Y. Equivalently, the projection
Π
X
,
Y
R
{\displaystyle \Pi _{X,Y}R}
is a function, that is, Y is a function of X. In simple words, if the values for the X attributes are known (say they are x), then the values for the Y attributes corresponding to x can be determined by looking them up in any tuple of R containing x. Customarily X is called the determinant set and Y the dependent set. A functional dependency FD: X → Y is called trivial if Y is a subset of X.
In other words, a dependency FD: X → Y means that the values of Y are determined by the values of X. Two tuples sharing the same values of X will necessarily have the same values of Y.
The determination of functional dependencies is an important part of designing databases in the relational model, and in database normalization and denormalization. A simple application of functional dependencies is Heath's theorem; it says that a relation R over an attribute set U and satisfying a functional dependency X → Y can be safely split in two relations having the lossless-join decomposition property, namely into
Π
X
Y
(
R
)
⋈
Π
X
Z
(
R
)
=
R
{\displaystyle \Pi _{XY}(R)\bowtie \Pi _{XZ}(R)=R}
where Z = U − XY are the rest of the attributes. (Unions of attribute sets are customarily denoted by their juxtapositions in database theory.) An important notion in this context is a candidate key, defined as a minimal set of attributes that functionally determine all of the attributes in a relation. The functional dependencies, along with the attribute domains, are selected so as to generate constraints that would exclude as much data inappropriate to the user domain from the system as possible.
A notion of logical implication is defined for functional dependencies in the following way: a set of functional dependencies
Σ
{\displaystyle \Sigma }
logically implies another set of dependencies
Γ
{\displaystyle \Gamma }
, if any relation R satisfying all dependencies from
Σ
{\displaystyle \Sigma }
also satisfies all dependencies from
Γ
{\displaystyle \Gamma }
; this is usually written
Σ
⊨
Γ
{\displaystyle \Sigma \models \Gamma }
. The notion of logical implication for functional dependencies admits a sound and complete finite axiomatization, known as Armstrong's axioms.
Examples
= Cars
=Suppose one is designing a system to track vehicles and the capacity of their engines. Each vehicle has a unique vehicle identification number (VIN). One would write VIN → EngineCapacity because it would be inappropriate for a vehicle's engine to have more than one capacity. (Assuming, in this case, that vehicles only have one engine.) On the other hand, EngineCapacity → VIN is incorrect because there could be many vehicles with the same engine capacity.
This functional dependency may suggest that the attribute EngineCapacity be placed in a relation with candidate key VIN. However, that may not always be appropriate. For example, if that functional dependency occurs as a result of the transitive functional dependencies VIN → VehicleModel and VehicleModel → EngineCapacity then that would not result in a normalized relation.
= Lectures
=This example illustrates the concept of functional dependency. The situation modelled is that of college students visiting one or more lectures in each of which they are assigned a teaching assistant (TA). Let's further assume that every student is in some semester and is identified by a unique integer ID.
We notice that whenever two rows in this table feature the same StudentID,
they also necessarily have the same Semester values. This basic fact
can be expressed by a functional dependency:
StudentID → Semester.
If a row was added where the student had a different value of semester, then the functional dependency FD would no longer exist. This means that the FD is implied by the data as it is possible to have values that would invalidate the FD.
Other nontrivial functional dependencies can be identified, for example:
{StudentID, Lecture} → TA
{StudentID, Lecture} → {TA, Semester}
The latter expresses the fact that the set {StudentID, Lecture} is a superkey of the relation.
= Employee department
=A classic example of functional dependency is the employee department model.
This case represents an example where multiple functional dependencies are embedded in a single representation of data. Note that because an employee can only be a member of one department, the unique ID of that employee determines the department.
Employee ID → Employee Name
Employee ID → Department ID
In addition to this relationship, the table also has a functional dependency through a non-key attribute
Department ID → Department Name
This example demonstrates that even though there exists a FD Employee ID → Department ID - the employee ID would not be a logical key for determination of the department Name. The process of normalization of the data would recognize all FDs and allow the designer to construct tables and relationships that are more logical based on the data.
Properties and axiomatization of functional dependencies
Given that X, Y, and Z are sets of attributes in a relation R, one can derive several properties of functional dependencies. Among the most important are the following, usually called Armstrong's axioms:
Reflexivity: If Y is a subset of X, then X → Y
Augmentation: If X → Y, then XZ → YZ
Transitivity: If X → Y and Y → Z, then X → Z
"Reflexivity" can be weakened to just
X
→
∅
{\displaystyle X\rightarrow \varnothing }
, i.e. it is an actual axiom, where the other two are proper inference rules, more precisely giving rise to the following rules of syntactic consequence:
⊢
X
→
∅
{\displaystyle \vdash X\rightarrow \varnothing }
X
→
Y
⊢
X
Z
→
Y
Z
{\displaystyle X\rightarrow Y\vdash XZ\rightarrow YZ}
X
→
Y
,
Y
→
Z
⊢
X
→
Z
{\displaystyle X\rightarrow Y,Y\rightarrow Z\vdash X\rightarrow Z}
.
These three rules are a sound and complete axiomatization of functional dependencies. This axiomatization is sometimes described as finite because the number of inference rules is finite, with the caveat that the axiom and rules of inference are all schemata, meaning that the X, Y and Z range over all ground terms (attribute sets).
By applying augmentation and transitivity, one can derive two additional rules:
Pseudotransitivity: If X → Y and YW → Z, then XW → Z
Composition: If X → Y and Z → W, then XZ → YW
One can also derive the union and decomposition rules from Armstrong's axioms:
X → Y and X → Z if and only if X → YZ
Closure
= Closure of functional dependency
=The closure of a set of values is the set of attributes that can be determined using its functional dependencies for a given relationship. One uses Armstrong's axioms to provide a proof - i.e. reflexivity, augmentation, transitivity.
Given
R
{\displaystyle R}
and
F
{\displaystyle F}
a set of FDs that holds in
R
{\displaystyle R}
:
The closure of
F
{\displaystyle F}
in
R
{\displaystyle R}
(denoted
F
{\displaystyle F}
+) is the set of all FDs that are logically implied by
F
{\displaystyle F}
.
= Closure of a set of attributes
=Closure of a set of attributes X with respect to
F
{\displaystyle F}
is the set X+ of all attributes that are functionally determined by X using
F
{\displaystyle F}
+.
Example
Imagine the following list of FDs. We are going to calculate a closure for A (written as A+) from this relationship.
A → B
B → C
AB → D
The closure would be as follows:
Therefore, A+= ABCD. Because A+ includes every attribute in the relationship, it is a superkey.
Covers and equivalence
= Covers
=Definition:
F
{\displaystyle F}
covers
G
{\displaystyle G}
if every FD in
G
{\displaystyle G}
can be inferred from
F
{\displaystyle F}
.
F
{\displaystyle F}
covers
G
{\displaystyle G}
if
G
{\displaystyle G}
+ ⊆
F
{\displaystyle F}
+
Every set of functional dependencies has a canonical cover.
= Equivalence of two sets of FDs
=Two sets of FDs
F
{\displaystyle F}
and
G
{\displaystyle G}
over schema
R
{\displaystyle R}
are equivalent, written
F
{\displaystyle F}
≡
G
{\displaystyle G}
, if
F
{\displaystyle F}
+ =
G
{\displaystyle G}
+. If
F
{\displaystyle F}
≡
G
{\displaystyle G}
, then
F
{\displaystyle F}
is a cover for
G
{\displaystyle G}
and vice versa. In other words, equivalent sets of functional dependencies are called covers of each other.
= Non-redundant covers
=A set
F
{\displaystyle F}
of FDs is nonredundant if there is no proper subset
F
′
{\displaystyle F'}
of
F
{\displaystyle F}
with
F
′
{\displaystyle F'}
≡
F
{\displaystyle F}
. If such an
F
′
{\displaystyle F'}
exists,
F
{\displaystyle F}
is redundant.
F
{\displaystyle F}
is a nonredundant cover for
G
{\displaystyle G}
if
F
{\displaystyle F}
is a cover for
G
{\displaystyle G}
and
F
{\displaystyle F}
is nonredundant.
An alternative characterization of nonredundancy is that
F
{\displaystyle F}
is nonredundant if there is no FD X → Y in
F
{\displaystyle F}
such that
F
{\displaystyle F}
- {X → Y}
⊨
{\displaystyle \models }
X → Y. Call an FD X → Y in
F
{\displaystyle F}
redundant in
F
{\displaystyle F}
if
F
{\displaystyle F}
- {X → Y}
⊨
{\displaystyle \models }
X → Y.
Applications to normalization
= Heath's theorem
=An important property (yielding an immediate application) of functional dependencies is that if R is a relation with columns named from some set of attributes U and R satisfies some functional dependency X → Y then
R
=
Π
X
Y
(
R
)
⋈
Π
X
Z
(
R
)
{\displaystyle R=\Pi _{XY}(R)\bowtie \Pi _{XZ}(R)}
where Z = U − XY. Intuitively, if a functional dependency X → Y holds in R, then the relation can be safely split in two relations alongside the column X (which is a key for
Π
X
Y
(
R
)
⋈
Π
X
Z
(
R
)
{\displaystyle \Pi _{XY}(R)\bowtie \Pi _{XZ}(R)}
) ensuring that when the two parts are joined back no data is lost, i.e. a functional dependency provides a simple way to construct a lossless join decomposition of R in two smaller relations. This fact is sometimes called Heaths theorem; it is one of the early results in database theory.
Heath's theorem effectively says we can pull out the values of Y from the big relation R and store them into one,
Π
X
Y
(
R
)
{\displaystyle \Pi _{XY}(R)}
, which has no value repetitions in the row for X and is effectively a lookup table for Y keyed by X and consequently has only one place to update the Y corresponding to each X unlike the "big" relation R where there are potentially many copies of each X, each one with its copy of Y which need to be kept synchronized on updates. (This elimination of redundancy is an advantage in OLTP contexts, where many changes are expected, but not so much in OLAP contexts, which involve mostly queries.) Heath's decomposition leaves only X to act as a foreign key in the remainder of the big table
Π
X
Z
(
R
)
{\displaystyle \Pi _{XZ}(R)}
.
Functional dependencies however should not be confused with inclusion dependencies, which are the formalism for foreign keys; even though they are used for normalization, functional dependencies express constraints over one relation (schema), whereas inclusion dependencies express constraints between relation schemas in a database schema. Furthermore, the two notions do not even intersect in the classification of dependencies: functional dependencies are equality-generating dependencies whereas inclusion dependencies are tuple-generating dependencies. Enforcing referential constraints after relation schema decomposition (normalization) requires a new formalism, i.e. inclusion dependencies. In the decomposition resulting from Heath's theorem, there is nothing preventing the insertion of tuples in
Π
X
Z
(
R
)
{\displaystyle \Pi _{XZ}(R)}
having some value of X not found in
Π
X
Y
(
R
)
{\displaystyle \Pi _{XY}(R)}
.
= Normal forms
=Normal forms are database normalization levels which determine the "goodness" of a table. Generally, the third normal form is considered to be a "good" standard for a relational database.
Normalization aims to free the database from update, insertion and deletion anomalies. It also ensures that when a new value is introduced into the relation, it has minimal effect on the database, and thus minimal effect on the applications using the database.
Irreducible function depending set
A set S of functional dependencies is irreducible if the set has the following three properties:
Each right set of a functional dependency of S contains only one attribute.
Each left set of a functional dependency of S is irreducible. It means that reducing any one attribute from left set will change the content of S (S will lose some information).
Reducing any functional dependency will change the content of S.
Sets of functional dependencies with these properties are also called canonical or minimal. Finding such a set S of functional dependencies which is equivalent to some input set S' provided as input is called finding a minimal cover of S': this problem can be solved in polynomial time.
See also
Chase (algorithm)
Inclusion dependency
Join dependency
Multivalued dependency (MVD)
Database normalization
First normal form
References
Further reading
Codd, E. F. (1972). "Further Normalization of the Data Base Relational Model" (PDF). ACM Transactions on Database Systems. San Jose, California: Association for Computing Machinery.
External links
Gary Burt (Summer 1999). "CS 461 (Database Management Systems) lecture notes". University of Maryland Baltimore County Department of Computer Science and Electrical Engineering.
Jeffrey D. Ullman. "CS345 Lecture Notes" (PostScript). Stanford University.
Osmar Zaiane (June 9, 1998). "Chapter 6: Integrity constraints". CMPT 354 (Database Systems I) lecture notes. Simon Fraser University Department of Computing Science.
Kata Kunci Pencarian:
Functional Dependency | PDF | Software Design | Information Science

Functional Dependency - KEY NOTES

Functional Dependency - KEY NOTES

Functional Dependency

Functional Dependency in DBMS | Four Types of Functional Dependency

Functional dependency | Semantic Scholar

How to Use Functional Dependencies in Database Design | ClickUp

Functional Dependency | PPT

Functional dependency | PPT

Functional dependency | PPT

Functional dependency | PPT

PPT - Functional Dependency PowerPoint Presentation, free download - ID ...
functional dependency
Daftar Isi
What is Functional Dependency in DBMS? - GeeksforGeeks
Jan 20, 2025 · Functional dependency allows setting rules and constraints that control how data is stored, accessed, and maintained, ensuring better data management. It highlights issues like scattered or missing data across tables, helping identify and fix design flaws to maintain consistency and integrity.
Types of Functional dependencies in DBMS - GeeksforGeeks
Jan 16, 2025 · Functional dependency in relational databases defines the relationship between attributes, where one attribute uniquely determines another, and includes various types such as trivial, non-trivial, multivalued, and transitive dependencies, which are crucial for ensuring data consistency and accuracy.
Functional Dependency in DBMS: What is, Types and Examples
Jun 28, 2024 · Functional Dependency is when one attribute determines another attribute in a DBMS system. Axiom, Decomposition, Dependent, Determinant, Union are key terms for functional dependency; Four types of functional dependency are 1) Multivalued 2) Trivial 3) Non-trivial 4) Transitive
Functional dependency - Wikipedia
In relational database theory, a functional dependency is the following constraint between two attribute sets in a relation: Given a relation R and attribute sets X, Y R, X is said to functionally determine Y (written X → Y) if each X value is associated with precisely one Y value.
Functional Dependency and Attribute Closure - GeeksforGeeks
Jan 8, 2025 · Functional dependency and attribute closure are essential for maintaining data integrity and building effective, organized, and normalized databases. A functional dependency A->B in a relation holds if two tuples having the same value of …
Chapter 11 Functional Dependencies – Database Design – 2nd …
A functional dependency (FD) is a relationship between two attributes, typically between the PK and other non-key attributes within a table. For any relation R, attribute Y is functionally dependent on attribute X (usually the PK), if for every valid instance of X, that value of X uniquely determines the value of Y.
Functional Dependency in DBMS - Great Learning
Jan 20, 2025 · In a relational database, a functional dependency is a link between attributes that establishes how one property uniquely identifies another. An employee’s ID, for instance, can be used to uniquely determine their name and other information in an employee database.
Functional dependency in DBMS - Online Tutorials Library
Sep 13, 2023 · Functional dependency in DBMS, as the name suggests is a relationship between attributes of a table dependent on each other. Introduced by E. F. Codd, it helps in preventing data redundancy and gets to know about bad designs.
Types of Functional Dependencies in DBMS - talent500.com
Feb 13, 2025 · Functional dependencies are categorized into various types based on their nature and behavior. The most common types are as follows: 1. Trivial Functional Dependency. Trivial functional dependency occurs when the dependent attribute set is …
Functional Dependency in DBMS: Cracking the Code - Simplilearn
Feb 27, 2024 · In DBMS, you denote functional dependencies using a notation. It contains two main components: the left-hand side (LHS) and the right-hand side (RHS) of an arrow (->). For example, if we have a table with attributes "A," "B," and "C," and attribute "A" determines the values of attributes "B" and "C," you would denote it as. A -> B, C.