【精选】数据库关系表 您所在的位置:网站首页 时洐的意思 【精选】数据库关系表

【精选】数据库关系表

2023-11-16 08:32| 来源: 网络整理| 查看: 265

数据库关系表 ---- 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 KEY

Example: 基本 在这里插入图片描述 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 value

Example: 主键为两个外键 在这里插入图片描述 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 实验室设备网 版权所有