卡车数据库中的密钥和完整性
Keys and integrity in truck database
我正在学习数据库 table 中的密钥和完整性。我有这个数据库:
我想知道 table 是否表现出实体完整性?如果是,为什么它们也表现出参照完整性?
还有每个 table 的超级键和辅助键是什么。对这个概念感到困惑。
它们同时显示实体完整性和引用完整性。
概念
超级键,如主键 (PK),用于将每条记录独立标识为唯一行。超级键是通过组合多个列而形成的,同时仍然保持唯一性,它可以包括超过最小数量的列以创建唯一区别。候选键是使用区分唯一键所需的最少列的一组列。
本质上,Super Keys、Candidate Keys、Primary Key就是用来区分值相似或相同的记录。
辅助键是未被选为主键的候选键。
外键用于'reference'分隔table以防止数据重复。
如果所有外键都有效,则数据库具有参照完整性。例如,如果 TRUCK table 将 FK 存储到不存在的 BASE_CODE,则数据库将不具有参照完整性。
如果我们从 TRUCK table 中删除 TRUCK_NUM、TRUCK_MILES、TRUCK_BUY_DATE 和 TRUCK_SERIAL_NUM,数据库将失去实体完整性,因为并非所有行都可以区分为唯一的。只要 table 中的每条记录都有唯一 ID,那么数据库就具有实体完整性。
具体答案
没有记录有重复的主键,因此数据库具有实体完整性。
- 没有重复的卡车编号
- 没有 BASE_CODE 重复
- 否 TYPE_CODE 重复
所有外键都存在,引用可以解除对实际记录的引用,因此 table 具有引用完整性。
table 的超级键可以是导致记录之间唯一区分的任何字段的组合(即组合 truck_num、truck_miles、truck_buy_date 和 truck_serial_num 将成为一个超级密钥,同样,仅组合 truck_numb,truck_serial 也将创建一个有效的超级密钥)。
Super Keys vs. Candidate Keys
Informally, a superkey is a set of attributes within a table whose
values can be used to uniquely identify a tuple. A candidate key is a
minimal set of attributes necessary to identify a tuple; this is also
called a minimal superkey. Wikipedia - Superkey
辅助键是 table 的未选择的候选键。对于您给出的示例,已选择 TRUCK_NUM 作为主键。但是,存在其他候选键,并且可以选择它们来代替 TRUCK_NUM。其中包括 TRUCK_SERIAL、TRUCK_BUY_DATE 和 TRUCK_MILES_NUM,因为这些字段中的 none 会重复一个值。由于它们未被选为主键,因此它们被视为辅助 [候选] 键。
我正在学习数据库 table 中的密钥和完整性。我有这个数据库:
我想知道 table 是否表现出实体完整性?如果是,为什么它们也表现出参照完整性?
还有每个 table 的超级键和辅助键是什么。对这个概念感到困惑。
它们同时显示实体完整性和引用完整性。
概念
超级键,如主键 (PK),用于将每条记录独立标识为唯一行。超级键是通过组合多个列而形成的,同时仍然保持唯一性,它可以包括超过最小数量的列以创建唯一区别。候选键是使用区分唯一键所需的最少列的一组列。
本质上,Super Keys、Candidate Keys、Primary Key就是用来区分值相似或相同的记录。
辅助键是未被选为主键的候选键。
外键用于'reference'分隔table以防止数据重复。
如果所有外键都有效,则数据库具有参照完整性。例如,如果 TRUCK table 将 FK 存储到不存在的 BASE_CODE,则数据库将不具有参照完整性。
如果我们从 TRUCK table 中删除 TRUCK_NUM、TRUCK_MILES、TRUCK_BUY_DATE 和 TRUCK_SERIAL_NUM,数据库将失去实体完整性,因为并非所有行都可以区分为唯一的。只要 table 中的每条记录都有唯一 ID,那么数据库就具有实体完整性。
具体答案
没有记录有重复的主键,因此数据库具有实体完整性。
- 没有重复的卡车编号
- 没有 BASE_CODE 重复
- 否 TYPE_CODE 重复
所有外键都存在,引用可以解除对实际记录的引用,因此 table 具有引用完整性。
table 的超级键可以是导致记录之间唯一区分的任何字段的组合(即组合 truck_num、truck_miles、truck_buy_date 和 truck_serial_num 将成为一个超级密钥,同样,仅组合 truck_numb,truck_serial 也将创建一个有效的超级密钥)。 Super Keys vs. Candidate Keys
Informally, a superkey is a set of attributes within a table whose values can be used to uniquely identify a tuple. A candidate key is a minimal set of attributes necessary to identify a tuple; this is also called a minimal superkey. Wikipedia - Superkey
辅助键是 table 的未选择的候选键。对于您给出的示例,已选择 TRUCK_NUM 作为主键。但是,存在其他候选键,并且可以选择它们来代替 TRUCK_NUM。其中包括 TRUCK_SERIAL、TRUCK_BUY_DATE 和 TRUCK_MILES_NUM,因为这些字段中的 none 会重复一个值。由于它们未被选为主键,因此它们被视为辅助 [候选] 键。