所有内容均总结自自中国大学慕课 MOOC-北京信息科技大学-车蕾老师的数据库系统基础课程 https://www.icourse163.org/shortUrl/parse/RcDZo可以从该链接直接观看讲解视频和课件
第一章 数据库概论
1.1 数据管理及其发展过程
1.1.1 人工管理阶段
背景
- 硬件上没有磁盘,软件上没有操作系统和、管理数据的软件。
特点
- 数据不保存;
- 没有软件系统对数据进行管理;
- 只有程序的概念,没有文件的概念;
- 一组数据对应一个程序,数据是面向程序的;
- 没有形成完整的数据管理的概念。
1.1.2 文件系统阶段
背景
- 直接存取存储设备;
- 操作系统(含文件系统)和高级语言。
特点
- 数据可长期保存在磁盘上,可经常对文件进行增删改查等操作;
- 有软件(文件系统)对数据进行管理,程序和数据有了一定独立性(数据不再属于某个特定的程序,可以重复使用;
- 文件的形式多样化;
- 数据的存取基本上以记录为单位。
文件系统的缺陷
- 程序和数据之间的独立性差;
- 数据联系弱;
- 数据冗余大;
- 数据不一致性。
1.1.3 数据库系统阶段
标志着数据库技术诞生的三个事件
层次数据模型 | 第一代数据库系统 |
网状数据模型 | |
关系数据模型(二维表) | 第二代数据库系统 |
1.2 数据库系统的特点
1.2.1 数据库是相互关联的数据的集合
1.2.2 用综合的方法组织数据
1.2.3 低冗余与数据共享
保证数据的一致性
1.2.4 数据具有较高的独立性
- 如数据库的三层模式结构
数据独立性是指数据的组织和存储方式与应用程序互不依赖、彼此独立。
1.2.5 保证数据的正确性
- 如关系模型的完整性约束
保证数据正确的特性在数据库中称之为数据完整性。
1.2.6 保证数据的安全、可靠
- 主动安全(安全机制):有效地防止数据库中的数据被非法使用或非法修改;
- 被动安全(备份恢复):数据遭到破坏时能立刻将数据完全恢复。
1.2.7 数据可以并发使用并能同时保证其一致性
在多个用户同时使用数据库时,能够保证不产生冲突和矛盾,保证数据的一直信奉和正确性。
- 允许并发的同时采取了一些保障(事务管理与并发控制)来保障数据一致性。
1.3 数据模型初步
1.3.1 数据模型
- 概念:描述数据、组织数据、对数据进行操作,是对现实世界数据特征的描述。
- 建立数据的目的: 将现实事物转成数字化的数据,才能让计算机识别处理。
- 数据模型应满足三个条件:
能比较真实地模拟现实世界 | 概念数据模型(认知模型) |
容易被人们理解 | |
便于在计算机上实现 | 组织数据模型(实现模型) |
1.3.2 概念数据模型(认知模型)
描述现实世界的数据模型成为概念模型或概念数据模型。
E-R(Entity Relationship)的三要素
- 实体
- 属性
- 联系
1.3.3 组织层数据模型(实现模型)
1 层次数据模型
- 用树形结构来表达实体之间联系;
- 层次模型表示一对多的联系直接而方便;
- 层次模型有两点限制:1.有且仅有一个节点无父结点,这个节点即为树的根;2.其他结点有且仅有一个父结点;
- 不能表示多对多;
- eg:IMS。
2 网状数据模型
- 用网状结构来表示实体之间联系;
- 取消了层次模型中的两点限制;
- eg:CODASYL。
3 关系数据模型
- 用关系(表格数据)表示实体之间联系;
- 关系:二维表格
- eg:E.F.Codd。
1.4 三层模式结构与数据库管理系统
1.4.1 三层模式结构与数据独立性
1 数据库管理系统的基本功能
- 数据库管理系统管理数据库的系统软件;
- 数据库管理系统(DBMS);
- 数据库的诸多特点是靠用好的DBMS来保证。
DBMS基本功能:
- 数据库定义功能;
- 数据库操纵功能;
- 数据库查询功能;
- 数据库控制功能;
- 数据库通讯功能。
2 数据库的三层模式结构
3 数据独立性:
指应用程序与数据的组织和存储结构相互独立的特性。(具体说,就算修改数据的组织方法和存储结构,应用程序不用修改)。
4 数据库管理系统的基本框架
当一个用户程序通过DBMS读取一条记录时,
- 用户程序向DBMS发出读一条记录的指令;
- DBCS分析指令,访问对应的外部模式;
- DBCS完成外部模式到概念模式的转换,决定访问哪个(些)概念文件;
- DBSS完成概念模式到存储模式的转换,决定访问哪个(些)存储文件;
- DBSS调用存取方式,通过操作系统将读取到的记录送到系统缓冲区;
- 用户程序从系统缓冲区得到所需记录和DBMS返回的状态信息;
- 用户程序在工作区中使用所得到的记录。
1.5 数据库系统
1.5.1 组成
以数据为主体的数据库,和管理数据库的系统软件数据库管理系统(DBMS),····。
1.5.2 数据库管理和数据库管理员
数据库管理员(DBA,Database Adminstrator)
- 从事数据库管理工作;
- 是一种角色;
- 负责数据库规划、设计、实施、运行各个阶段。
第二章 概念数据模型
2.1 概念数据模型及实体联系方法
2.1.1 概念
- 信息:客观事物在人脑中产生的反映;
- 概念数据模型:描述现实世界数据及其之间联系的方法。
- 数据:数据化后的信息
2.1.2 实体-联系方法(E-R图)
1 三要素:实体、属性、联系
2 概念
实体:客观存在并可以相互区分的客观事物或抽象事件
属性:实体的特征(性质);
实体集:具有相同属性的一类实体的集合;
弱实体:仅靠自身的特征不能区分一个个实体,需要借助其他实体的特征才能够进行区分;
联系:数据之间的关联集合。
3 实体之间的基本联系
1:1;
1:n;
m:n;
4 依赖联系
被弱实体所依赖的实体集也称作强实体集,强弱实体机之间的联系叫依赖联系。
2.2 深入讨论联系的几个问题
2.2.1 多对多联系
由于技术上的原因,不直接使用多对多,而是将它们转换为一对多联系。
并且,两个实体之间多对多的联系一定能转换成一对多的联系!
2.2.2 概念、逻辑、物理数据模型
- 概念数据模型:确定实体、实体间的关系
- 逻辑数据模型:确定实体的属性
- 物理数据模型:确定关系、属性、联系如何映像到具体实现,数据类型等
第三章 关系数据库基础
3.1 关系数据库系统概述
3.1.1 SQL(关系数据库标准语言)
SQL的特点:
- SQL是一种一体化的语言,它包含了数据定义、查询、操作和控制等方面的功能;
- SQL语言是一种高度非过程化的语言;
- SQL语言非常简洁;
- SQL语言可以直接以命令方式交互使用,也可以嵌入到程序设计语言以程序方式使用。
3.1.2 关系数据库的三层模式结构
用户可以直接进行操作的:基本表和视图.
3.1.3 SQL Server的数据库存储结构
master数据库
用于存储所有系统级信息,包括:
- 所有的其他数据库的信息(包括);
- 所有数据库注册用户的信息;
- 系统配置信息等。
tempdb数据库
用于保存所有的临时表和临时存储过程,还可以满足任何其它的临时存储要求
- 全局资源;
- 在SQL Server每次启动时都重新创建;
- 空间管理
model数据库
是一个模板数据库,必须一直存在于SQL Server系统中。
数据库的物理存储基本上是由SQL Server自动管理的。
3.1.4 SQL Server的用户数据库
- 用户数据存储在用户数据库中;
- 像操作系统申请存储空间;
- 用来存储数据库数据的操作系统文件可以分为:
1. 主数据文件
- 存储数据库的启动信息和系统表,也可以用来存储用户数据;
- 每个数据库有且仅有一个主数据文件;
- 主数据文件扩展名:.mdf。
2. 次数据文件
- 保存所偶主数据文件中容纳不下的数据;
- 通过次数据文件,可以将一个数据库的数据分布在多个磁盘上;
- 每个数据库有0至多个次数据文件。
- 次数据文件扩展名:.ndf。
3. 事务日志文件
- 保存恢复数据库的日志信息;
- 每个数据库有1至多个事务日志文件;
- 日志文件扩展名:.ldf。
3.2 关系数据模型
3.2.1 关系数据模型的三个要素和关系的形式定义
1. 三个要素
a.关系数据结构:
实体及实体与实体之间的联系均用关系来表示,关系就是数二维表;
b.关系操作集合:
关系操作可以用代数操作(通过代数对关系的运算来表达查询要求的方式)和逻辑方式(通过关系演算、用谓词表达对关系的查询要求的方法)来表示;
关系数据语言分三类:关系代数语言、关系演算语言、具有双重特点的SQL语言。
c.关系完整性约束:
分三类:实体完整性、参照完整性、用户自定义完整性。
2.关系的形式定义
a.
- 关系(二维表)是笛卡尔积的子集;
- 表的每一行数据都是一个元组;
- 表的每一列称为属性;
- 元组中的每一个属性值称为元组的一个分量;
- 属性取值范围称为值域。
b.
需要说明两点:
- 关系是元组的集合,集合中元素(元组)无需,元组中分量有序;
- 有限关系(元组个数有限)。
3.2.2 关系的基本性质
X
- 每一分量都是不可分的;
- 列的个数和每列的数据类型固定;
- 不同的列可以出自同一个值域;
- 列顺序无关紧要(可以任意交换,但是属性名和属性值必须作为整列同时交换);
- 行的顺序无关紧要(可以任意交换);
- 元组不可以重复(完全一样)。
3.2.3 关系模型的数据结构和基本术语
- 候选关键字:能唯一标识一个关系的元组的最小属性集(为主关键字做准备);
- 主关键字(PK):能唯一标识一个关系的元组的最小属性集;
- 外部关键字(FK):一个属性集不是所在关系的关键字,但是是其他关系的关键字;
- 参照关系:1(悲惨找关系):n(参照关系)。
3.3 关系模型的完整性约束
-
实体完整性约束:每个元组都是可识别和唯一的;
-
参照完整性约束:参照关系中的值要么取空,要么是被参照元组中的值;
- 用户自定义完整性约束:CHECK, DEFAULT。
3.4 关系代数
3.4.1传统的:
交, 并, 差, 广义笛卡尔积
3.4.2专门的:
SELECT | 选择运算 | 行筛选 | |
PROJECT | 投影运算 | 列筛选 | |
![]() |
JOIN | 连接运算(选择某些行形成新关系) | 自然连接(除去重复) |
÷ | DIVISION | 除运算 | ![]() |
第四章 关系数据理论
4.1 函数依赖
4.1.1 定义
对于Y=f(X),给定一个X,都有一个Y对应,则X决定Y(X→Y),Y依赖于X;
严格形式化定义:
4.1.2 术语和符号
"不良"函数依赖:传递, 部分.
4.1.3 为什么要讨论函数依赖
- 数据冗余问题;
- 数据更新问题;
- 数据插入问题;
- 数据删除问题.
4.1.4 模式分解(拆表)
定义
把一个关系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得好的关系模式。
例如:
仓库(仓库号,地点,设备号,设备名,库存数量)
-----> 分解为:仓库(仓库号,地点)
设备(设备号,设备名)
库存(仓库号,设备号,库存数量)。
要求:
- 无损连接: 生成的表数据没变,经过自然连接可以恢复成原来的关系;
- 保持函数依赖: 函数依赖没多没少.
4.2 函数依赖的推理规则
4.2.1 函数依赖的推理规则、Amstrong公理的推论
自反律、增广率、传递律
定理:Amstrong公理是正确的
Amstrong公理的推论及正确性
合并、分解、伪传递
引理:
根据合并规则和分解规则,可以推导出:
4.2.2 逻辑蕴涵和闭包
- 逻辑蕴涵:
- 闭包:
属性集闭包
直接计算F的闭包太复杂,所以引入了属性集闭包。
4.2.3 公理的完备性
4.2.4 属性集闭包的计算
算法:
举例:
例1:关系模式R(U,F),U={A,B,C,D,E},F={AB→C,B→D,C→E,EC→B,AC→B},求。
1 | 令 |
2 |
|
3 | |
4 | 则F中左部为{A,B,C,D}的任意子集的函数依赖有:AB→C,B→D,C→E,AC→B |
5 | |
6 | 因为 |
4.2.5 函数依赖集的等价和最小化
1 覆盖和等价
2 最小函数依赖
证明:
方法:
也就是X的任何真子集Z无法把X→A的所有内容包括,即A完全函数依赖于X 。
举例:
例1:假设有属性集U={A,B,C,D,E},函数依赖集F={A→B,B→C,AD→E},请问F是否是最小函数依赖。
1 | F中任一函数依赖的右部都仅含有一个属性; | √ |
2 | 只用找左部个数大于1的就行 |
√ |
3 | ![]() |
√ |
求解
算法:
举例:
例3:关系模式R(U,F), U={A,B,C,D,E},F={AB→E,DE→B,B→C,C→E,E→A},求F的最小覆盖。 。
1 | 因为右部都是单一属性,所以不需要用分解规则化简; |
2 | 化简左侧使得每一个函数依赖的左部没有多余属性 等价变换后的函数依赖集为:{B→E,DE→B,B→C,C→E,E→A} |
3 | 令G=F-{B→E}={DE→B,B→C,C→E,E→A},则
|
4 | 令G=F-{DE→B}={B→C,C→E,E→A},则 |