What is a functional dependency in database design?
A functional dependency is a relationship where one set of attributes uniquely determines another attribute in a table. It helps ensure data consistency.
Click to reveal answer
beginner
Why are functional dependencies important for schema design?
They help identify how data relates and guide organizing tables to reduce redundancy and avoid update problems.
Click to reveal answer
intermediate
How do functional dependencies help prevent data anomalies?
By structuring tables based on dependencies, they avoid insertion, update, and deletion errors caused by redundant or inconsistent data.
Click to reveal answer
intermediate
What role do functional dependencies play in normalization?
They define rules to split tables into smaller ones so each dependency is properly represented, improving data integrity.
Click to reveal answer
beginner
Can ignoring functional dependencies cause problems in a database? Why?
Yes, ignoring them can cause duplicate data, inconsistent updates, and make the database harder to maintain.
Click to reveal answer
What does a functional dependency indicate in a database?
AOne attribute uniquely determines another
BTwo tables are unrelated
CData is stored in multiple places
DA table has no primary key
✗ Incorrect
Functional dependency means one attribute or set of attributes uniquely determines another attribute.
Why do we use functional dependencies in schema design?
ATo increase data duplication
BTo reduce data redundancy and avoid anomalies
CTo make queries slower
DTo ignore relationships between data
✗ Incorrect
Functional dependencies guide organizing data to reduce redundancy and prevent update problems.
Which problem can functional dependencies help prevent?
ALack of data
BFaster data entry
CData anomalies like inconsistent updates
DMore storage space
✗ Incorrect
They help avoid anomalies such as inconsistent or incorrect data updates.
In normalization, functional dependencies are used to:
ASplit tables to represent dependencies properly
BCombine all data into one table
CIgnore attribute relationships
DAdd redundant data
✗ Incorrect
Normalization uses functional dependencies to organize tables for better data integrity.
What happens if functional dependencies are ignored?
ATables become smaller
BDatabase runs faster
CData becomes more secure
DData redundancy and inconsistency increase
✗ Incorrect
Ignoring dependencies leads to duplicate and inconsistent data, causing maintenance issues.
Explain how functional dependencies influence the design of a database schema.
Think about how one attribute determines another and why that matters for storing data.
You got /4 concepts.
Describe the connection between functional dependencies and normalization in databases.
Consider how dependencies guide breaking down tables into smaller parts.
You got /4 concepts.
Practice
(1/5)
1. What is the main reason functional dependencies are important in database schema design?
easy
A. They replace the need for primary keys
B. They speed up database queries automatically
C. They allow storing data in a single large table
D. They help organize data to avoid duplication and errors
Solution
Step 1: Understand functional dependencies
Functional dependencies show how one attribute or set of attributes determines another attribute in a table.
Step 2: Connect to schema design
Using these dependencies helps split tables to reduce duplication and avoid data inconsistencies.
Final Answer:
They help organize data to avoid duplication and errors -> Option D
Quick Check:
Functional dependencies guide clean design = They help organize data to avoid duplication and errors [OK]
Hint: Functional dependencies prevent data repetition and errors [OK]
Common Mistakes:
Thinking functional dependencies speed up queries directly
Believing all data should be in one table
Confusing functional dependencies with keys
2. Which of the following is the correct way to express a functional dependency?
easy
A. A + B means A and B are combined
B. A -> B means A functionally determines B
C. A = B means A equals B
D. A * B means A multiplies B
Solution
Step 1: Recall functional dependency notation
Functional dependency is written as A -> B, meaning A determines B.
Step 2: Check other options
Other options show arithmetic or equality, not functional dependencies.
Final Answer:
<code>A -> B</code> means A functionally determines B -> Option B
Quick Check:
Functional dependency symbol = -> [OK]
Hint: Look for arrow (->) to show functional dependency [OK]
Common Mistakes:
Confusing functional dependency with equality
Using arithmetic symbols instead of ->
Misreading notation as assignment
3. Given a table with attributes StudentID, CourseID, Instructor and the functional dependency CourseID -> Instructor, what does this imply?
medium
A. Each CourseID is taught by exactly one Instructor
B. Each Instructor teaches multiple CourseIDs
C. StudentID determines Instructor
D. Instructor determines CourseID
Solution
Step 1: Interpret the functional dependency
CourseID -> Instructor means for each CourseID, there is one Instructor assigned.
Step 2: Understand implication
This means each course has exactly one instructor, but an instructor can teach many courses.
Final Answer:
Each CourseID is taught by exactly one Instructor -> Option A
Quick Check:
CourseID determines Instructor = Each CourseID is taught by exactly one Instructor [OK]
Hint: Left side determines right side in functional dependency [OK]
Common Mistakes:
Assuming Instructor determines CourseID
Confusing StudentID with CourseID
Thinking one instructor per student
4. A table has attributes OrderID, ProductID, Quantity, Price with functional dependencies OrderID, ProductID -> Quantity and ProductID -> Price. Which of the following is a problem in this design?
medium
A. Price depends only on ProductID, causing redundancy if repeated for each order
B. Quantity depends on OrderID only, which is incorrect
C. OrderID determines Price, which violates functional dependency rules
D. ProductID and Quantity together determine OrderID, which is wrong
Solution
Step 1: Analyze functional dependencies
OrderID, ProductID -> Quantity means quantity depends on both order and product, which is correct.
Step 2: Identify redundancy issue
ProductID -> Price means price depends only on product, so storing price in the order table repeats it many times.
Final Answer:
Price depends only on ProductID, causing redundancy if repeated for each order -> Option A
Quick Check:
Price repeated per order causes redundancy = Price depends only on ProductID, causing redundancy if repeated for each order [OK]
Hint: Check if attribute depends on full key or causes repetition [OK]
Common Mistakes:
Ignoring redundancy caused by partial dependencies
Mixing up which attribute depends on what
Assuming all dependencies are correct
5. You have a table Employee(ID, Name, Dept, DeptHead) with functional dependencies ID -> Name, Dept and Dept -> DeptHead. How should you redesign the schema to avoid redundancy?
hard
A. Remove DeptHead from the schema entirely
B. Keep one table but add DeptHead as a primary key
C. Split into two tables: Employee(ID, Name, Dept) and Department(Dept, DeptHead)
D. Combine Dept and DeptHead into one attribute in Employee table
Solution
Step 1: Identify functional dependencies
ID -> Name, Dept means employee ID determines name and department; Dept -> DeptHead means department determines its head.
Step 2: Apply normalization
To avoid repeating DeptHead for every employee in the same department, split into two tables: one for employees and one for departments with heads.
Final Answer:
Split into two tables: Employee(ID, Name, Dept) and Department(Dept, DeptHead) -> Option C
Quick Check:
Separate tables for dependent attributes = Split into two tables: Employee(ID, Name, Dept) and Department(Dept, DeptHead) [OK]
Hint: Split tables where one attribute depends on another non-key attribute [OK]
Common Mistakes:
Trying to keep all data in one table causing redundancy
Misusing primary keys for dependent attributes
Removing important data like DeptHead
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.