第7讲 关系数据模型
·
回顾
数据模型的三要素
- 数据结构(静态特性)
-
- 关系数据模型--关系
- 数据操作(动态特性)
-
- 关系数据模型--关系操作
- 完整性约束(制约与依存)
-
- 关系数据模型--三类完整性约束
7.1关系数据结构--关系
现实世界的实体以及实体间的各种联系均用关系来表示
域
- 是一组具有相同数据类型的值的集合
- 例如:
-
- 整数
- 实数
- 介于某个取值范围的整数
- 指定长度的字符串集合
- {‘男’,‘女’}
笛卡尔积


基数



关系



关系是笛卡尔积的有一定意义的、有限的子集


关系的性质
- 每一列中的值是同类型的数据,都来自同一个域。
- 不同的列可以有相同的域,每一列称为一个属性,用属性名标识。
- 元组中的每个分量是不可分的数据项
- 关系中的各个元组是不同的,即不允许有重复的元组。
- 分量的次序是无关紧要的。

关系模式
- 对一类实体特征的结构性描述,即对关系的结构性描述,该描述一般包括关系名、属性名、属性域的类型和长度,属性之间固有的依赖联系等。
-

关系模式和关系的区别和联系
- 关系模式描述的是关系的静态结构信息,是对一个关系的“型”的描述,是相对固定的。关系是在关系模式约束之下的若干实体的集合,实体的数量是随时间变化的,但这种变化必定在关系模式的约束范围内。
7.2 完整性约束
三类完整性约束

实体完整性
- 是指对关系中的每一个元组,其主键属性对应的各个分量不能为空值(NULL)。
- 例如
-
- 学生选课的关系:Reports(Sno,Cno,Grade)中,Sno和Cno共同组成为主关键字,则Sno和Cno两个属性都不能为空。
- 注:实体完整性规则针对基本关系
参照完整性
-

- 几点说明
-
- 被参照关系和参照关系不一定是不同的关系
-
-
- 例:Courses中的Cno与Pre_Cno
-
-
- 被参照关系的主键和参照关系的外键必须定义在同一个(或一组)域上
- 外键并不一定要与相应的主键同名
-
-
- 例:Teachers中的Tno与Department中的Dheader
-
-
- 当外键与相应的主键属于不同关系时,往往取相同的名字,以便于识别
用户定义完整性
- 用户根据具体应用而针对某一具体数据附加的约束条件,也称为域完整性。
- 域完整性限制了某些属性中出现的值,把属性限制在一个有限的集合中。
- 例如
-
- 如果属性类型是整数,那么它就不能是101.5或任何非整数。
- 说明:现在的商品化RDBMS提供了定义和检查这类完整性约束的机制

7.3 关系操作--关系代数
关系操作
- 对关系进行操作,且其操作的对象和结果都是关系(集合)。
- 主要有查询操作(选择、投影、连接、除、并、交、差等)和更新操作(增加、删除、修改等)
关系操作的表示方式
- 关系代数
-
- 用代数运算来表达关系的查询要求和条件
- 关系演算
-
- 用谓词来表达关系的查询要求和条件
- 按照谓词变元的基本对象不同,可分为元组关系演算和域关系演算
- SQL(Structure Query Language)
-
- 是介于关系代数和关系演算之间的关系数据语言
- 关系代数是一种抽象的查询语言,是关系数据操作语言的传统表达方式
- 关系代数的运算对象是关系,运算结果也是关系
- 可分为两类:
-
- 传统的集合运算:并、交、差、笛卡尔积
- 专门的关系运算:投影、选择、连接、除法
定义

传统的集合运算--二目运算

例题
例题4:求并、交、差


广义笛卡尔积



专门的关系运算
选择运算



投影运算



连接运算











除法运算



象集



除法运算










7.4 查询优化
11




11






总结



AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)