Abstract: 数据库系统概论期末复习笔记 ~
btw:欢迎关注 ~
Github: https://github.com/ScarlettYellow
个人博客:https://scarletthuang.cn/
PART1 数据库概述
关系模型的构成:关系数据结构、关系操作集合、关系完整性约束。
1.1 数据库发展
1.数据库发展过程:
2.三个时期的比较:
1.2 基本概念
1.数据模型
三个要求:
真实模拟现实社会
容易理解
便于在计算机上实现
两类:
概念模型:= 信息模型;面向用户,按用户的观点来对数据和信息建模,主要用于数据库设计
逻辑模型/物理模型:对数据最底层的抽象,描述数据在系统内部的表示方式和存取方式,面向计算机系统;包括层次模型,网状模型,关系模型,面向对象模型,对象关系模型
三要素:
数据结构
数据操作
数据的完整性约束条件
常用数据模型:
层次
网状
关系
面向对象
对象关系
半结构化
2.四个基本概念
数据Data
数据库Database:长期储存在计算机内、有组织的、可共享的大量数据的集合。
人员数据视图:
数据库结构图:
基本特征:
数据按一定数据模型组织、描述和储存
可为各种用户共享
冗余度较小
数据独立性较高
易扩展
数据库管理系统DBMS:
位于用户与操作系统之间的一层数据管理软件.是基础软件,是一个大型复杂的软件系统
用途:科学地组织和存储数据、高效地获取和维护数据
数据控制功能:
数据的安全性(Security)保护:保护数据,以防止不合法的使用造成的数据的泄密和破坏.
数据的完整性(Integrity)检查:将数据控制在有效范围内,或保证数据之间满足一定关系
并发(Concurrency)控制:对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果
数据库恢复(Recovery):将数据库从错误状态恢复到某一已知的正确状态
主要功能:数据定义,数据操纵(增删查改),数据控制(数据的完整性、安全性定义与检查数据库的并发控制与故障恢复),数据服务(拷贝、转储、重组、性能检测、分析……)
数据库系统DBS:
在计算机系统中引入数据库后的系统构成
组成:数据库,数据库管理系统,应用系统,数据库管理员
特点:数据结构化;数据的共享性高,冗余度低,易扩充;数据独立性高;数据由DBMS统一管理和控制
3.数据独立性(两个独立性)
物理独立性:指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的.当数据的物理存储改变了,应用程序不用改变
逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的.数据的逻辑结构改变了,用户程序也可以不变
物理独立性与逻辑独立性保证了数据独立性也是由DBMS的二级映像功能来保证的
4.信息世界基本概念
实体:客观存在并可相互区别的事物。可以是具体的人、事、物或抽象的概念。
属性:实体所具有的某一特性称为属性.一个实体可以由若干个属性来刻画。
码:唯一标识实体的属性集。
域(Domain) 属性的取值范围称为该属性的域。
实体型(Entity Type) :用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
实体集(Entity Set) 同一类型实体的集合称为实体集
联系(Relationship)现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系
实体之间的联系通常是指不同实体集之间的联系
A.两个实体型:
一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。
一对多联系(1:n):一个班级中有若干名学生,每个学生只在一个班级中学习
多对多联系(m:n):课程与学生之间的联系:一门课程同时有若干个学生选修,一个学生可以同时选修多门课程
B.两个以上实体型:
5.数据库管理员的具体职责(DBA)
决定数据库中的信息内容和结构
决定数据库的存储结构和存取策略
定义数据的安全性要求和完整性约束条件
监控数据库的使用和运行
周期性转储数据库
数据文件
日志文件
系统故障恢复
介质故障恢复
监视审计文件
数据库的改进和重组:性能监控和调优定期对数据库进行重组织,以提高系统的性能需求增加和改变时,数据库须需要重构造
1.3 关系数据库理论
1. 关系模式(五元组)
格式:R(U,D,DOM,F)
R:关系
U:属性
D:域
DOM:属性到域的映射
属性组U上的一组数据依赖F(如函数依赖(Functional Dependency,FD),多值依赖(Multivalued Dependency,MVD))
2. 相关概念
A.函数依赖:
R(U)是属性集U上的关系模式.X,Y是U的子集.若R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性住相等,而在Y上的属性值不等,则X函数确定Y或Y依赖于X,记做X→Y,若X→Y,Y→X,记做X←→Y(非主属性中某属性值唯一)
非平凡函数依赖:X→Y,但X不包含Y,则称X→Y非平凡函数依赖(例子 (Sno,Cno)→Grade )
平凡函数依赖:X→Y,且X包含Y则称X→Y平凡函数依赖(例子 (Sno,Cno)→Cno )
完全函数依赖:X→Y且对X的任何一个真子集X',都有X'→Y不成立,则称Y对X完全函数依赖(例子 (Sno,Cno)→Grade )
部分函数依赖:X→Y,但Y不完全依赖于X,则称Y对X部分函数依赖(例子 (Sno,Cno)→Sdept [由Sno便可推出Sdept] )
传递函数依赖:在R(U)中,如果X→Y,(X不包含Y),Y→X不成立,Y→Z,Z不属于Y,则称Z对X传递函数依赖,记做X→Z(例子 Sno→Sdept, Sdept→Mname成立,所以Sno→Mname)
B.多值依赖:
定义:
形式1:设R(U)是属性集U上的一个关系模式.X,Y,Z是U的子集,并且Z=U-X-Y,感谢模式R(U)中多值依赖X→→Y成立,当且仅当对R(U),的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关
形式2:在R(U)的任一关系r中,如果存在元组t,s使得t[X]=s[X],那么必然存在元组w,v属于r,(w,v可以与s,t相同),使得w[X]=v[X]=t[X],而w[Z]=v[Z]=t[Z],v[Y]=s[Y],v[Z]=tZ则Y多值依赖与X记做X→→Y,这里X,Y是U的子集,Z=U-X-Y
平凡多值依赖: 若X→→Y,而Z=φ,即Z为空,则称X→→Y为平凡多值依赖
多值依赖性质:
多值依赖具有对称性.即若X→→Y,则X→→Z其中Z=U-X-Y
多值依赖具有传递性,即若X→→Y,X→→Z,则X→→Z - Y,X→→Y - Z
函数依赖可以看做多值依赖的特殊情况,即若X→Y则X→→Y.这是因为当X→Y时,对X的每一个值x,Y有一个确定的值y与之对应,所以X→→Y
若X→→Y,X→→Z,则X→→YZ
若X→→Y,X→→Z,则X→→Y∩Z
多值依赖与函数依赖的区别:
多值依赖的有效性与属性集的范围有关
若X→→Y在U上成立则在W(U包含W, W包含XY)上一定成立,反之则不然,即X→→Y在W(U包含W)上成立,在U上并不一定成立,这是因为多只依赖的定义中不仅涉及属性组X和Y,而且涉及U中的其余属性Z
一般得在R(U)上若有X→→Y在W(U包含W)上成立,则称X→→Y为R(U)的嵌入型多值依赖
但是在关系模式R(U)中函数依赖X→Y的有效性仅决定于X,Y这两个属性集的值.只要在R(U)的任何一个关系r中,元组在X和Y上的值满足函数依赖的定义,则函数依赖X→Y在任何属性集W(U包含W, W包含XY)上成立
若函数依赖X→Y在R(U)上成立,则对任何Y的子集Y'具有X→Y'成立,而多值依赖X→→Y若在R(U)上成立,却不能保证对于任何一个Y' 即Y的子集的X→→Y'都成立
码:
候选码,主码:设K为R<U,F>中的属性组合,若K完全依赖于U则K为R的候选码(Candidate key),若候选码多于一个,则选定一个为主码(Primary key)。【唯一标识实体的属性或属性集为候选码,可以有多个;主码只能有一个;主码一定是候选码,候选码不一定是主码】
主属性,非主属性,全码:包含在任何一个候选码中的属性,称为主属性(Primary attribute).不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute).最简单的情况,单个属性是码.最极端的情况,整个属性组都是码,称为全码(All-key)
3. 模式存在问题
数据库冗余太大
更新异常
插入异常
删除异常
4.范式(规范化)
第一范式1NF:每一个分类必须是一个不可分的数据项,则属于第一范式规范。
2NF:若R属于1NF, 且存在非主属性完全函数依赖于码。
3NF:R属于2NF,且非主属性既不部分依赖于码,也不传递依赖于码。
BCNF:属于3NF,且多有属性都不部分依赖或传递依赖于码,所有决定属性集都包含码。
4NF:所有非平凡的多值依赖都是函数依赖。
5NF:连接依赖均由候选码所蕴含。
范式规范化过程: