Bird
Raised Fist0
DBMS Theoryknowledge~10 mins

Closure of attributes in DBMS Theory - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to find the closure of attribute set A under functional dependencies F.

DBMS Theory
SELECT closure FROM attribute_closure WHERE attributes = '[1]';
Drag options to blanks, or click blank then click option'
AA+
BA
Cclosure
DF
Attempts:
3 left
💡 Hint
Common Mistakes
Using just 'A' instead of 'A+' for closure notation.
Confusing the closure with the set of functional dependencies.
2fill in blank
medium

Complete the code to check if attribute B is in the closure of attribute set A.

DBMS Theory
IF '[1]' IN closure_of_A THEN RETURN TRUE ELSE RETURN FALSE;
Drag options to blanks, or click blank then click option'
AC
BB
CA
DF
Attempts:
3 left
💡 Hint
Common Mistakes
Checking for attribute A instead of B.
Using the set of dependencies F instead of an attribute.
3fill in blank
hard

Fix the error in the code to compute the closure of attribute set X under F.

DBMS Theory
closure = [1](X, F)
Drag options to blanks, or click blank then click option'
Acompute_closure
Bclosure_compute
Cclosure
Dcompute
Attempts:
3 left
💡 Hint
Common Mistakes
Using incomplete or incorrect function names.
Using variable names instead of function names.
4fill in blank
hard

Fill both blanks to complete the code that computes closure of attributes in set S under dependencies D.

DBMS Theory
closure = [1]([2], D)
Drag options to blanks, or click blank then click option'
Acompute_closure
BS
CX
DF
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping the function name and attribute set.
Using incorrect variable names.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that maps each attribute in attrs to its closure under F.

DBMS Theory
closures = [1]: [2](attr, [3]) for attr in attrs
Drag options to blanks, or click blank then click option'
Aattr
Bcompute_closure
CF
Dclosure
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong keys or values in the dictionary comprehension.
Confusing the function name or dependency set.

Practice

(1/5)
1. What does the closure of attributes represent in database design?
easy
A. The total number of tables in a database
B. All attributes functionally determined by a given set of attributes
C. The list of all primary keys in a database
D. The count of foreign keys referencing a table

Solution

  1. Step 1: Understand the concept of closure

    The closure of a set of attributes includes all attributes that can be functionally determined from it using given dependencies.
  2. Step 2: Relate closure to database design

    This helps identify all attributes dependent on a set, useful for normalization and design.
  3. Final Answer:

    All attributes functionally determined by a given set of attributes -> Option B
  4. Quick Check:

    Closure = all functionally determined attributes [OK]
Hint: Closure means all attributes you can find from given ones [OK]
Common Mistakes:
  • Confusing closure with number of tables
  • Thinking closure lists keys only
  • Mixing closure with foreign key counts
2. Which of the following is the correct notation for the closure of attribute set A given functional dependencies F?
easy
A. A+
B. F+
C. A*
D. F*

Solution

  1. Step 1: Recall standard notation

    The closure of an attribute set A under functional dependencies F is denoted as A+.
  2. Step 2: Differentiate from other notations

    F+ denotes closure of the set of functional dependencies, not attributes. A* and F* are not standard notations here.
  3. Final Answer:

    A+ -> Option A
  4. Quick Check:

    Attribute closure = A+ notation [OK]
Hint: Closure of attributes is always written as A+ [OK]
Common Mistakes:
  • Using F+ for attribute closure
  • Confusing closure notation with star (*)
  • Mixing attribute and dependency closures
3. Given attributes A, B, C, D and functional dependencies:
A -> B, B -> C, C -> D. What is the closure of {A}?
medium
A. {A, B, C, D}
B. {A, B, C}
C. {A, B}
D. {A, D}

Solution

  1. Step 1: Start with initial set {A}

    Closure begins with {A}.
  2. Step 2: Apply functional dependencies repeatedly

    From A -> B, add B; from B -> C, add C; from C -> D, add D.
  3. Final Answer:

    {A, B, C, D} -> Option A
  4. Quick Check:

    Applying all dependencies gives full set [OK]
Hint: Keep adding attributes until no new ones appear [OK]
Common Mistakes:
  • Stopping after first dependency
  • Forgetting to add transitive dependencies
  • Confusing closure with just initial attributes
4. Identify the error in this closure calculation: Given A -> B, B -> C, and starting with {A}, the closure is calculated as {A, C}.
medium
A. Closure should be empty
B. Incorrect initial attribute set
C. Wrong functional dependencies used
D. Missed adding attribute B before C

Solution

  1. Step 1: Check closure calculation steps

    Starting with {A}, applying A -> B adds B first.
  2. Step 2: Verify transitive dependencies

    Only after B is added can B -> C add C. Skipping B is incorrect.
  3. Final Answer:

    Missed adding attribute B before C -> Option D
  4. Quick Check:

    Closure must add intermediate attributes [OK]
Hint: Add attributes step-by-step, don't skip intermediates [OK]
Common Mistakes:
  • Skipping intermediate attributes
  • Assuming direct jump to last attribute
  • Ignoring order of dependencies
5. Given attributes A, B, C, D, E and functional dependencies:
A -> BC, CD -> E, B -> D. What is the closure of {A, D}?
hard
A. {A, C, D, E}
B. {A, B, C, D}
C. {A, B, C, D, E}
D. {A, B, C, E}

Solution

  1. Step 1: Start with {A, D}

    Initial closure is {A, D}.
  2. Step 2: Apply A -> BC

    Add B and C, closure becomes {A, B, C, D}.
  3. Step 3: Apply B -> D

    D already included, no change.
  4. Step 4: Apply CD -> E

    Since C and D are in closure, add E.
  5. Final Answer:

    {A, B, C, D, E} -> Option C
  6. Quick Check:

    All attributes reachable from {A, D} included [OK]
Hint: Use all dependencies repeatedly until no new attributes [OK]
Common Mistakes:
  • Not applying CD -> E after adding C
  • Forgetting to add B and C from A
  • Stopping closure too early
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard