目录
1.关系模型概述
(1)关系---table;关系模型---处理table的
看下面由三部分组成
(2)![](https://img-blog.csdnimg.cn/direct/055c54ee68414045a5c8de43e97e4bb4.png)
(3)运算
- 关系运算
- 元组演算是基于逻辑运算
- 区域演算:基于示例的运算
(4)开发软件系统的一种思维
基于数学→关系运算→设计出其对应的计算机能操作的语言→数据库管理系统基于这种语言可以被开发
正片开始
2.什么是关系
(1)回顾表
(2)关系的表示
列的取值范围→域
域:具有相同数据类型的一组值的集合
集合中元素的个数→域的基数
如下图,D1,D2
笛卡尔积:所有可能组成的元组
笛卡尔积的表示:
di是来自Di的元素;di称为一个分量;
Di的基数是mi,那么笛卡尔积的基数是m1×m2×m3
关系:
①一组域的笛卡尔积的子集;就是具有意义的那些元组;为了区分由于关系的不同列可能来自同一个域,就给每列起个名字→属性名
注意区分域和属性;域名和属性名
②关系的表示:
举例子
还可以声明属性的类型长度
总结一下
(3)关系的特性
①不同的列可来自同一个域,即不同属性可以是同一个域
②而同一列要是相同的质
③属性和行/列的位置无关
④关系不能存在相同的元组;table有的可以(这就是区别)
⑤属性不可再分(关系第一范式)
(4)候选码/候选键 主码/主键
能唯一标识一个元组的属性集
(插入一条:属性是什么?表第一行;属性值?他下面的若干行)
例如学生的学号
候选码maybe有多个,但我们选定一个候选码,成为主码(/主键)(DBMS以主码为主要线索管理关系的各个元组)
(5)主属性与非主属性
包含在任何一个候选码中的属性被称为主属性,其他的被称为非主属性
意思就是现在又很多的候选码,只要是候选码的属性,就是主属性
(6)外码/外键重要
关系R中,某个属性不是R的候选码,但他是另一个关系S的候选码,那这个属性组就是关系R的外码/外键
有啥用?两个关系通常是靠外码连接起来的
总结
3.关系模型的完整性
(1)实体完整性
关系的主码的属性值(也就是她下面那一列)不能为空值
(2)参照完整性
针对外码而言,外码的属性值可以为空值,但你要是有值就必须是另一表中存在的属性值
这样可以显示出两个表连接的正确性
(3)用户自定义完整性
就是你要在应用环境定义中,比如人家让填男女,你填01,或是取值范围错误就不行