教材:数据库系统概论(第五版)
出版社:高等教育出版社
第一章 绪论
1.1 数据库系统概述
🔺1.1.1 四个基本概念
1. 数据
定义:
- 数据(Data)是数据库中存储的基本对象
- 数据是描述事物的符号记录
- 数据的含义称为数据的语义,数据与其语义是不可分的
2. 数据库(DB)
定义:是长期储存 在计算机内、有组织 的、可共享 的大量数据的集合
基本特点:永久储存、有组织、可共享
3. 数据库管理系统(DBMS)
定义:
- 位于用户与操作系统之间的一层数据管理软件
- 是基础软件,是一个大型复杂的软件系统
🔺主要功能:
- 数据定义功能
- 数据的组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护
4. 数据库系统(DBS)
定义:是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统
特点:
-
数据结构化:数据库主要特征之一,与文件系统的本质区别
-
数据共享性高、冗余度低且易拓展
-
数据独立性高:物理独立性和逻辑独立性
数据独立性是由DBMS提供的二级映像保证的
-
数据由DBMS统一管理和控制
🔺1.1.2数据管理技术的产生和发展
- 人工管理阶段
- 文件系统阶段
- 数据可以长期保存
- 由文件系统管理数据
- 数据共享性差,冗余度大
- 数据独立性差
- 数据库系统阶段
- 数据结构化(主要特征,与文件系统的本质区别)
- 数据共享性高、冗余度低且易扩充
- 数据独立性高
- 数据由DBMS统一管理和控制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-riYvVBgp-1640256050972)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20211211091004850.png)]
1.2 数据模型
定义:是对现实世界数据特征的抽象
数据模型是数据库的核心和基础
1.2.1 两大类数据模型
🔺数据建模的三大要求:
-
能比较真实地模拟现实世界
-
容易为人所理解
-
便于在计算机上实现
- 概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
- 逻辑模型和物理模型
- 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。
- 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
1.2.2 概念模型
-
实体(可以是具体的人事物,也可以是抽象的概念和联系)
-
属性(描述实体所具有的某一特征,如学生实体可以由学号等属性组成)
-
码(唯一标识实体的属性集)
-
实体型(比如学生)
-
实体集(同一类型实体的集合,比如全体学生)
-
联系(实体集之间的联系通常是指不同实体集之间的联系)
一对一(一个班级一个班长)、一对多(一个班级多位学生)、多对多(课程和学生之间的联系)
-
实体-联系方法(E-R方法/E-R模型)//第七章
🔺1.2.3 数据模型的组成要素
- 数据结构(静态特性)
- 数据操作(动态特性)
- 数据的完整性约束条件
1.2.4常用数据模型
在数据库的非关系模型中,基本层次联系是指两个记录以及它们之间的一对多(含一对一)的联系
1.2.7 关系模型
关系模型是最重要的一种数据模型
1. 数据结构
- 关系:表
- 元组:行
- 属性:列
- 码:表里的某个属性组,它可以唯一确定一个元组
- 域:一组具有相同数据类型的集合
- 分量:元组中的一个属性值
- 关系模式:对关系的描述
关系的每一个分量必须是一个不可拆分的数据项:不允许表中有表
2. 数据操控和完整性约束
-
数据操控:查询、插入、更新和删除数据
关系模型中的数据操作都是集合操作,操作对象和操作结果都是关系
-
完整性约束条件:实体完整性、参照完整性和用户定义完整性
3. 关系模型的优缺点
略.
🔺1.3 数据库系统的结构
数据库系统通常采用三级模式结构
数据库的二级映像功能
1.3.2 三级模式结构
-
模式(逻辑模式):是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式是相对稳定的,实例是相对变动的
一个数据库只有一个模式
-
外模式(子模式/用户模式):用户能看到、使用的局部数据的逻辑结构和特征的描述,是DB用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式是模式的子集
一个数据库可以有多个外模式
-
内模式(存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式
-
一个数据库只有一个内模式
模式:概念级抽象 外模式:视图级抽象 内模式:物理级抽象
1.3.3 二级映像功能和数据独立性
1. 外模式/模式映像
- 模式描述的是数据的全局逻辑结构
- 外模式描述的是数据的局部逻辑结构
- 同一个模式可以有任意多个外模式
- 每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系
- 映象定义通常包含在各自外模式的描述中
保证了数据的逻辑独立性
当模式改变时,由数据库管理员对映像做相应改变,可使外模式保持不变,而应用程序是根据外模式编写的,从而应用模式不用更改,保证了数据和程序的逻辑独立性。
2. 模式/内模式映像
- 数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的
- 定义了数据全局逻辑结构与存储结构之间的对应关系
保证了数据的物理独立性
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变,从而应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。
1.4 数据库系统的组成
数据库系统由DB、DBMS、应用软件和DBA构成。
🔺数据库管理员的工作职责:
- 决定数据库中的信息内容和结构。
- 决定数据库的存储结构和存取策略。
- 定义数据的安全性要求和完整性约束条件。
- 监控数据库的使用和运行。
- 数据库的改进和重组、重构。
第二章 关系数据库
关系数据库系统:是支持关系模型的数据库系统
关系模型:由关系数据结构、关系操作集合和关系完整性约束三部分组成
关系模型的基础:集合代数
2.1 关系数据结构及形式化定义
关系模型的数据结构(单一):关系
2.1.1 关系
1. 域
- 一组具有相同数据类型的值的集合
- 定义了列的取值范围
2. 笛卡尔积
- 是域上的一种集合运算
- 笛卡尔积可表示为一张二维表
- 表中的每行对应一个元组,表中的每列对应一个域
给定一组域D1,D2,D3…Dn的笛卡尔积为D1×D2×D3…×Dn = {( d 1 , d 2 , … , d n )|di 属于Di }
-
元组
- 笛卡尔积中每一个元素( d 1 , d 2 , … , d n )叫作一个n元组(n-tuple)或简称元组
- 笛卡尔积元素中的每一个值 d i叫作一个分量
-
基数
一个域允许的不同取值个数称为这个域的基数
3. 关系
- 是笛卡尔积的一个有实际意义的有限子集
- 是元组的集合
- D 1 × D 2 × … × D n的有实际意义子集叫作在域D 1 , D 2 , … , D n 上的关系,常常表示为R ( D 1 , D 2 , … , D n
- R:关系名
- n:关系的目或度(Degree)
(1)单元关系与二元关系
- 当n=1时,称该关系为单元关系或一元关系
- 当n=2时,称该关系为二元关系
(2)候选码(Candidate Key)/候选键
关系中的某一组属性集能*唯一的标识*一个元组,而它的子集不能
候选码可以有多个
(3)主码
若一个关系中有多个候选码,则选定其中一个作为主码(人为指定)
主码只有一个,唯一标识一个元组
(4)主属性
组成候选码的属性
(5)非主属性/非码属性
不包含在任何侯选码中的属性
(6)关系的三种类型
- 基本关系(基本表/基表)
- 查询表(临时表)
- 视图表(是虚表,不对应实际存储的数据)
🔺(7)基本关系的性质
- 列是同质的:列中的分量是同类型数据,来自同一个域
- 不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名
- 列的顺序无所谓,列的次序可以任意交换
- 任意两个元组的候选码不能相同
- 行的顺序无所谓,行的次序可以任意交换
- *(最基本的规范化条件)*分量必须取原子值。即每个分量都是不可分的数据项 (属性是不可分割的数据项)
2.1.2 关系模式
是对关系的描述(有哪些属性,各个属性之间的依赖关系如何)
1. 关系模式的表示
关系模式可以形式化地表示为:R(U,D,DOM,F)
-
R:关系名
-
U:组成该关系的属性名集合
-
D:U中属性所来自的域
-
DOM:属性向域的映象集合
-
F:属性间数据的依赖关系的集合
可以简记为R (U)或R ( A 1 , A 2 , … , A n ) R (A_1,A_2,…,A_n)R(A1,A2,…,A**n)
-
A 1 , A 2 , … , A n A_1,A_2,…,A_nA1,A2,…,A**n : 属性名
如:学生(学号,姓名,年龄,性别,系名,年级)
-
2. 关系模式与关系的区别
- 关系模式是型;关系是值
- 关系模式是静态的、稳定的;关系是动态的,随时间不断变化的。
- 关系模式是对关系的描述;关系是关系模式在某一时刻的状态或内容
2.1.3 关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库
关系数据库的型: 关系数据库模式,是对关系数据库的描述
关系数据库的值: 关系模式在某一时刻对应的关系的集合,通常称为关系数据库
2.1.4 关系模型的存储结构
- 有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成
- 有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理;
2.2 关系操作
-
查询
选择、投影、连接、除、并、交、差
-
数据更新
插入、删除、修改
集合操作方式:操作的对象和结果都是集合,也称为一次一集合的方式
2.3 关系的完整性
-
实体完整性和参照完整性
是关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持
-
用户定义的完整性
应用领域需要遵循的约束条件,体现了具体领域中的语义约束
1. 实体完整性
若属性A是基本关系R的主属性,则属性A不能取空值 (主属性不能取空值)
2. 参照完整性
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
- 或者取空值(F的每个属性值均为空值)
- 或者等于S中某个元组的主码值
例子
学生(学号,姓名,性别,专业号,年龄,班长)
- “班长”是外码
- 学生关系既是参照关系也是被参照关系
“班长”属性值(外码)可以取两类值:
- 空值,表示该学生所在班级尚未选出班长
- 非空值,该值必须是本关系中某个元组的学号值
(1)外码
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是R的外码。(F是R中一个或一组属性,但不是R的码,是S的主码,则F是R的外码)
- 基本关系R称为参照关系
- 基本关系S称为被参照关系或目标关系
注意:
- 关系R和S不一定是不同的关系(如班长与学号的例子)
- 目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上
- 外码并不一定要与相应的主码同名(当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别)
例子
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
- “专业号”属性是学生关系的外码
- 专业关系是被参照关系,学生关系为参照关系
3. 用户定义的完整性
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能
2.4 关系代数
是一种抽象的查询语言,它用对关系的运算来表达查询
运算三大要素:
- 运算对象(关系)
- 运算符(集合运算符和专门的关系运算符)
- 运算结果(关系)
2.4.1 传统的集合运算
1. 并
R ∪ S = { t ∣ t ∈ R ∨ t ∈ S } R∪S = { t|t∈R∨t ∈S }R∪S={ t∣t∈R∨t∈S}
仍为n目关系,由属于R或属于S的元组组成
2. 差
R − S = { t ∣ t ∈ R ∧ t ∉ S } R -S = { t|t∈R∧t∉S }R−S={ t∣t∈R∧t∈/S}
仍为n目关系,由属于R而不属于S的所有元组组成
3. 交
R ∩ S = { t ∣ t ∈ R ∧ t ∈ S } R∩S = { t|t∈R∧t∈S }R∩S={ t∣t∈R∧t∈S}
仍为n目关系,由既属于R又属于S的元组组成
4. 笛卡尔积
无条件的头尾连接
- R : n 目 关 系 , k 1 个 元 组 、R: n目关系,k_1个元组、R:n目关系,k1个元组
- S : m 目 关 系 , k 2 个 元 组 、S: m目关系,k_2个元组、S:m目关系,k2个元组
R×S :
- 列:( n + m ) (n+m)(n+m)列元组的集合
元组的前n列是关系R的一个元组
元组的后m列是关系S的一个元组
- 行:k 1 × k 2、 k_1 × k_2、k1×k2个元组
2.4.2 专门的关系运算
1. 引入记号
(2)分量:t [ A i ] t[A_i]t[A**i]
设关系模式为R ( A 1 , A 2 , … , A n ) R(A_1,A_2,…,A_n)R(A1,A2,…,A**n)
它的一个关系设为R
t ∈ R t∈Rt∈R表示t是R的一个元组
t [ A i ] t[A_i]t[A**i]则表示元组t中相应于属性A i A_iA**i的一个分量
(2)剩余属性组
(3)元组的连接
(4)象集
本质上是一次选择行的运算和一次选择列的运算
-
给定一个关系R ( X , Z ) R(X,Z)R(X,Z),X和Z为属性组
-
当t [ X ] = x t[X]=xt[X]=x时,x在R中的象集(Images Set)为:
Z x = { t [ Z ] ∣ t ∈ R , t [ X ] = x } Z_x={t[Z]|t∈R,t[X]=x}Z**x={ t[Z]∣t∈R,t[X]=x}
- 它表示R中属性组X上值为x的诸元组在Z上分量的集合
-
本质上