Understanding Armstrong's Axioms for Functional Dependencies
📖 Scenario: You are working with a database design team to understand how functional dependencies work. To ensure the database is well-structured, you need to apply Armstrong's axioms, which are rules used to infer all functional dependencies from a given set.
🎯 Goal: Build a simple representation of functional dependencies using SQL tables and apply Armstrong's axioms step-by-step to infer new dependencies.
📋 What You'll Learn
Create a table to store initial functional dependencies
Add a configuration variable to represent the attribute set
Use SQL queries to apply Armstrong's axioms: Reflexivity, Augmentation, and Transitivity
Complete the final step by listing all inferred functional dependencies
💡 Why This Matters
🌍 Real World
Database designers use Armstrong's axioms to understand and infer all functional dependencies, which helps in normalizing databases and avoiding redundancy.
💼 Career
Knowledge of Armstrong's axioms is essential for roles like database administrator, data analyst, and software engineer working with relational databases.
Progress0 / 4 steps
1
DATA SETUP: Create the functional_dependencies table
Create a table called functional_dependencies with two columns: determinant and dependent, both of type VARCHAR(10). Insert these exact rows: ('A', 'B'), ('B', 'C').
DBMS Theory
Hint
Use CREATE TABLE to define the table and INSERT INTO to add the two rows exactly as given.
2
CONFIGURATION: Define the attribute set variable
Create a variable called @attributes and set it to the string 'A,B,C' representing all attributes involved.
DBMS Theory
Hint
Use DECLARE to create a variable and assign the string 'A,B,C' exactly.
3
CORE LOGIC: Apply Armstrong's axioms using SQL queries
Write SQL queries to apply the three Armstrong's axioms: Reflexivity (every attribute functionally determines itself), Augmentation (if X -> Y then XZ -> YZ), and Transitivity (if X -> Y and Y -> Z then X -> Z). Add the inferred dependencies to the functional_dependencies table.
DBMS Theory
Hint
Use INSERT INTO with VALUES for Reflexivity, SELECT CONCAT(...) for Augmentation, and a JOIN for Transitivity.
4
COMPLETION: List all functional dependencies including inferred ones
Write a SQL query to select all rows from functional_dependencies ordered by determinant and then dependent to show the complete set of functional dependencies after applying Armstrong's axioms.
DBMS Theory
Hint
Use a SELECT statement with ORDER BY determinant, dependent to list all dependencies.
Practice
(1/5)
1. Which of the following is NOT one of Armstrong's axioms used in database theory?
easy
A. Reflexivity
B. Augmentation
C. Transitivity
D. Normalization
Solution
Step 1: Recall Armstrong's axioms
Armstrong's axioms include Reflexivity, Augmentation, and Transitivity.
Step 2: Identify the option not in the axioms
Normalization is a database design process, not an axiom.
Final Answer:
Normalization -> Option D
Quick Check:
Armstrong's axioms exclude Normalization [OK]
Hint: Remember the three axioms: Reflexivity, Augmentation, Transitivity [OK]
Common Mistakes:
Confusing normalization with axioms
Thinking all database terms are axioms
Mixing up augmentation with normalization
2. Which Armstrong's axiom states that if Y is a subset of X, then X functionally determines Y?
easy
A. Reflexivity
B. Transitivity
C. Augmentation
D. Decomposition
Solution
Step 1: Understand the axiom definitions
Reflexivity states if Y is subset of X, then X determines Y.
Step 2: Match the statement to the axiom
The given statement matches Reflexivity exactly.
Final Answer:
Reflexivity -> Option A
Quick Check:
Subset implies functional dependency by Reflexivity [OK]