【精选】数据库关系表 | 您所在的位置:网站首页 › 时洐的意思 › 【精选】数据库关系表 |
数据库关系表 ---- Relational table
什么是关系(relation)关系(relation)的基本属性约束(Constraints)Integrity Constraints 完整性约束Referential Integrity 引用完整性
创建一个关系表如何将ER模型转换为关系表将entity sets转换为关系表强实体 Strong Entity弱实体 Weak Entity
将Relationship Sets转换为关系表Without constraint:With Key Constraints:With Participation Constraints
表示 Composite Attribute表示 Multivalue Attribute
什么是关系(relation)
在关系型模型中,数据用关系来表示一个关系包括
relation schema: 关系表名称,字段或者属性名称, 字段范围relation instance: 一组和schema有同样数量字段的元组
关系(relation)的基本属性
每一行(tuple)都是唯一的没有顺序的要求Degree: 关系表的度是字段的数量关系表的Cardinality是行(也就是tuple)的数量
约束(Constraints)
Integrity Constraints 完整性约束
Integrity Constraints: condition specified on a database schema and restrict the data that can be stored in a DB instance
完整性约束包括 主键约束 Primary Key Constraint 元组的key fields不能全部重复,也就是不能有两条一样的数据主键不能为空外键约束 Foreign Key Constraint 什么是外键 一个关系表(relation)的一组字段指向另外一个关系表(relation)的一行 (有点类似pointer)通过包含另外一个关系表的primary key实现外键的domain和所包含的另外一个关系表的primary key一样 需要防止某些操作毁坏表之间的联系需要防止无效数据插入外键列 — 必须是所指向的表中的数据外键不能为空 Referential Integrity 引用完整性 如果外键约束全部满足,就可以实现引用完整性如何实现引用完整性: 现在有两个Entity: Enrolled, Students, 其中Enrolled的sid属性是一个外键, 指向Students Enrolled(sid: string, cid: string, grade: string)如果现在有一条Enrolled的数据需要被插入, 但是其中的sid是不存在的:拒绝如果一条Student的数据需要被删除: 同时删除和这条Student数据相链接的Enrolled中的数据或者拒绝删除这条Student数据或者将和这条Student数据相链接的Enrolled中的数据的sid设置为default sid. (In SQL, also: Set sid in Enrolled tuples that refer to it to a special value null, denoting ‘unknown’ or `inapplicable’.)一个没有实现引用完整性的例子 创建一个关系表 使用 CREATE TABLE 语句定义attribute, 包括data type, length, NOT NULL等选择PRIMARY KEY如果需要,选择FOREIGN KEYExample: 基本 Example: 外键 The foreign key CUSTOMER_ID references the primary key of CUSTOMER, which is also CUSTOMER_ID 对于外键的UPDATE和DELETE操作有四种选项 CASCADE: update/delete parent table中的数据, 也update/delete child table所对应的数据NO ACTION: 阻止update/delete parent table中的数据如果child table中有数据的外键指向此条数据SET NULL: update/delete parent table中的数据, 然后将对应的child table中的数据的外键设置为NULLSET DEFAULT: update/delete parent table中的数据, 然后将对应的child table中的数据的外键设置为default valueExample: 主键为两个外键 Example: 设置主键的两种方法 如何将ER模型转换为关系表 基本方法 每个entity set对应一个关系表每个relationship set对应一个关系表entity set的每个attribute对应一列Indivisibility Rule and Ordering Rule选择primary key 将entity sets转换为关系表 强实体 Strong Entity弱实体 Weak Entity 当所关联的强实体被删除时,弱实体也需要被删除创建一个表,将弱实体的每个attribute加入进来选择一个partial key将所关联的强实体的主键作为此表的外键此时弱实体的主键就是partial key + foreign key 将Relationship Sets转换为关系表 找出这个Relationship Sets所联系的entity set将每个参与到此关系的entity set的primary key作为这个关系表的foreign key, 这些foreign key组成了这个关系表的super keyidentify剩下的描述性的attribute Without constraint: 在没有constraints的情况下,主键是所有外键的集合 With Key Constraints:With Participation Constraints 每一个department都必须有一个manager, 所以the participation of Departments in Manages is said to be total ssn不能为空,也不能删除数据(ON DELETE NO ACTION) , 因为每个department都需要一个manager主键是did, 因为department不会重复 表示 Composite Attribute 一个属性被分为多个属性表示每一个属性对应一列composite attribute没有对应的列,是抽象属性 表示 Multivalue Attribute 首先构建一个有两列的schema第一列是有拥有这个多值属性的entity的primary key第二列是多值属性, 每一个cell对应一个值多值属性的primary key是所有属性的union用两个圈圈表示多值属性 |
CopyRight 2018-2019 实验室设备网 版权所有 |