Calculating attribute closures: {A}+ = {A} {B}+ = {A, B, C, D} <--- Minimum candidate key {C}+ = {A, C, D} {D}+ = {D} {A, B}+ = {A, B, C, D} <--- Superkey {A, C}+ = {A, C, D} {B, C}+ = {A, B, C, D} <--- Superkey {A, D}+ = {A, D} {B, D}+ = {A, B, C, D} <--- Superkey {C, D}+ = {A, C, D} {A, B, C}+ = {A, B, C, D} <--- Superkey {A, B, D}+ = {A, B, C, D} <--- Superkey {A, C, D}+ = {A, C, D} {B, C, D}+ = {A, B, C, D} <--- Superkey {A, B, C, D}+ = {A, B, C, D} <--- Superkey