数据库原理第二章

第二章 关系数据库

2.1 关系数据库概述

2.1.1 关系数据库的产生历史

​ 1970年 IBM的E.F.Codd提出了关系模型,奠定了关系数据库的理论

​ 20世纪70年代末 关系方法理论研究和软件系统的研制取得了重大突破

​ 1981年 出现了比较成熟的关系数据库管理技术。证实了

​ 关系数据库的优点:

​ 高级的非过程语言接口、较好的数据独立性。

​ 20世纪80年代后 网状模型和层次模型与底层实现的结合紧密,关系模型具 有坚实理论基础,成为主流数据模型

2.2 关系数据模型

2.2.1 关系数模型的组成要素
数据模型的要素包括:数据结构、数据操作、数据约束

关系数据模型的组成要素:关系数据结构、关系操作集合、关系完整性约束
2.2.2 关系数据结构
表(Tbale)

​	也称为关系,是一个二维的数据结构,由表名、列、若干行数据组成

​	每一表有唯一的表名,表中每一行数据描述一条具体的记录值
关系(Relation)

​	一个关系逻辑上对应一张二维表,可以为每个关系取一个名称进行表示

​	关系的三种类型:基本关系、查询表、视图表

基本关系(基本表、基表)实际存在的表
查询表   和  视图表 为导出的虚表
列(Column)
也称为字段(Field)或属性(Attribute)

同一个表中 表名必须唯一 字段名必须唯一
不同表中可以出现相同的字段名
属性(Attribute)= 列
属性的个数称为关系的 元或度,
列的值称为 属性值,其取值范围称为 值域
行(Row)
也称为元组(Tuple)或记录(Record)。表中的数据按行存储
分量(Component) = 具体的数据项
元组(行)中的一个属性值,称为分量
码和键(Key)
属性(或属性组)的值都能用来唯一标识该关系的元组,则称这些属性或属性组为该关系的码或键

属性组表示 多个属性的组合
超码或超键(Super Key)
在码中去除某个属性,它仍然是这个关系的码
候选码或候选键(Candidate Key)

在码中不能从中移去任何一个属性,否则它就不再是这个关系的码或键
候选码或候选键是这个关系的最小超码或超键
主属性(Primary Attribute )或非主属性(Noprrimary Attribute )
包含在任何一个候选码中的属性称为主属性或码属性
主码或主键(Primary Key)(主观意识决定)
在若干个候选码中指定一个唯一标识关系的元组(行)
全码或全键(All Key)
一个关系模式的所有属性集合是这个关系的主码或主键,这样的主码或主键称为全码或全键
外码或外键(Foreign Key)
某个属性或属性组不是这个关系的主码或候选码,而是另一个关系的主码
参照关系(Referencing Relation)和被参照关系(Referenced Relation)
参照关系也称为从关系,被参照关系也称为主关系,它们是指以外码相关联的两个关系  
域(Domain)
表示属性的取值范围
数据类型
每个列都有相应的数据类型,它用于限制(或容许)该列中存储的数据

​ 关系模式

​ 关系模式=表头

​ 关系模式是型,关系是值,即关系模式是对关系的描述

​ 关系模式是静态的、稳定的

​ 关系是动态的随时间不断变化

关系数据库(Relation Database)

所有关系的集合,构成一个关系数据库
以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数据库,其数据库操作建立在代数的基础上

​ 关系数据库对关系的限定/要求:

1)每一个属性都是不可分解的(不允许表中有表)
2)每一个关系仅仅有一种关系模式
3)每一个关系中的属性必须命名,属性名不同;
4)同一个关系中不允许出现候选码或候选键值完全相同的元组
5)在关系中元组的顺序是无关紧要的,可以任意交换
6)在关系中属性的顺序是无关紧要的,可以任意交换
2.2.3 关系操作

​ 基本关系操作

​ 增删改查

​ 查询为一类

​ 插入删除修改为一类表示更新

查询:
传统:选择 投影 并 差 笛卡尔积
专门:连接  除   交
特点:集合操作方式   一次一集合
2.2.4 关系数据语言

​ 关系代数语言

​ SQL结构化查询语言

​ 关系演算语言 元组关系演算,域关系演算

共同特点:
具备完备的表达能力,是非过程化的集合操作语言,功能强,能够独立使用也可以嵌入高级语言使用

过程化:没有独立的自主思考,分步
非过程化:无需要分步骤,具有自主独立思考的

高级语言:例如C++ Java Python等等
2.2.5 运算符

​ 任何一种操作都包含三大要素:

​ 操作对象

​ 操作符

​ 操作结果

2.2.6 传统的集合运算符

​ 这里是关系代数的传统的集合运算

​ 并U、差-、交N、笛卡尔积X

​ 并:两个关系必须有相同的属性个数(只需要加上相同)

​ 差:两个关系必须有相同的属性个数(只需要减去相同)

​ 交:两个关系必须有相同的属性个数(只需要相同)

​ 笛卡尔积:行 有两个表的行数相乘, 列是两个表的列相加(行乘列加)

2.2.7 专门的关系运算符

​ 选择 投影 连接 除

​ 选择:F表示条件,R表示表名
在这里插入图片描述

​ 投影(PROJECTION):A表示属性名, R表示表名
在这里插入图片描述

​ 连接(JOIN),分为等值连接和自然连接
在这里插入图片描述

​ 1、笛卡尔积

​ 2、只留属性值相等的

​ 3、去掉重复列

2.2.8 完整性约束

​ 关系的完整性约束

数据库的数据完整性是指数据库中数据的正确性、相容性、一致性

在一个关系表中,学生的学号必须是唯一的,性别必须是男女,不是漂亮美丽,学生所选修的课程必须是已开设的课程

​ 分类:

实体完整性约束:
主码的组成不能为空,主属性不能是空值NULL(候选码也是不能为空的)
参照完整性约束:
定义外码和主码之间的引用规则
要么外码等于主码中某个元组的主码值,要么为空值NULL(等于主码,或为空)
实体性完整性约束与参照完整性约束 关系的两个不变性
用户定义完整性约束
应用领域不同,用户定义也不尽相同
域完整性约束(针对某一应用环境的完整性约束)、其他
1)执行插入需要的完整性约束:
	检查实体完整性约束、
	检查参照完整性约束(一定是向参照关系插入时才需要)
	检查用户完整性约束

2)执行删除需要的完整性约束:
	删除的数据满足三个完整性约束
	需要检查参照完整性约束(一般只需要对被参照关系检查参照完整性约束)
	

2)执行更新需要的完整性约束:
	先删除再插入
2.3 关系数据库的规范化理论

​ 关系模式有如下存在的问题:

​ 数据冗余:指同一数据被反复存储的情况

​ 更新异常:数据冗余造成的,多个内容更改使操作错误

​ 插入异常:

​ 删除异常:

​ 函数依赖于关键字

​ 函数依赖:关系中属性间的对应关系

设R为任一给定关系,如果对于R中属性X的每一个值,R中的属性Y只有唯一值与之对应,则称X函数决定Y或称Y函数依赖于X,记作X->Y(X决定Y)。其中X称为决定因素
实际上X就是码的概念


对于关系R中的属性X和Y,若X不能函数决定Y,记作X≠>Y(X不能决定Y)

​ 完全函数依赖

设R为任一给定关系,X、Y为其属性集,若X->Y,且对X中的任何真子集都有X`,都有X`>Y,则称Y完全函数依赖于X

此时这里的X为候选码

​ 部分函数依赖

设R为任一给定关系,X、Y为其属性集,若X->Y,且对X中存在一个真子集X`,都有X`->Y,则称Y部分函数依赖于X
此时X为超码

​ 传递函数依赖

设R为任一给定关系,X、Y、Z为其不同属性集,若X->Y,Y≠>X, Y->Z,则有X->Z,则称为Z传递函数依赖于X

​ 关键字的定义

设R为任一给定关系,U为其所含的全部属性集合,X为U的子集,若有完全函数依赖X->U,则X为R的一个候选关键字(候选码)

​ 第一范式1NF

设R为任一给定关系,若果R中每个列于行的交点处的取值都是不可再分的基本元素,则R为第一范式

​ 存在数据冗余高、删除异常、插入异常

​ 第二范式2NF

设R为任一给定关系,若R为第一范式
且其所有非主属性都完全函数依赖于候选关键字,
则R为第二范式

第一范式消除部分函数依赖就是第二范式

​ 第三范式3NF

设R为任一给定关系,若R为第二范式
且其每一个非主属性都不存在传递函数依赖于候选关键字,
则R为第二范式

第二范式消除传递函数依赖就是第三范式

​ 第三范式的改进形式BCNF

设R为任一给定关系,X,Y为其属性集,F为其函数依赖集,
若R为第三范式
且其F中所有函数依赖X->Y(Y不属于X)中的X必包含候选关键字,
则R为BCNF
一般称为3.5NF

满足第4NF一定满足BCNF
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值