基础
1.1四个基本概念
1.1.1数据(Data)
数据与其语义是不可分的
1.1.2数据库(Database)
基本特征:
- 数据按一定的数据模型组织、描述和存储
- 可为各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展
1.1.3数据库管理系统(DBMS)
数据管理软件
主要功能:
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能(实用程序)
- 其他功能
1.1.4数据库系统(DBS)
(1)构成
数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA)
硬件平台及数据库、软件、人员
(2)特点
①数据结构化
整体数据结构化是数据库的主要特征之一
数据的最小存取单位是数据项
②数据共享性高,冗余度低,易扩充
③数据独立性高
物理独立性、逻辑独立性(应用程序与数据库中的关系)
数据独立性由DBMS的二级映像功能保证
④数据由DBMS统一管理和控制
(3)结构
①数据库系统模式的概念
②数据库系统的三级模式结构模式:一个数据库只有一个模式;是数据库系统模式结构的中间层;描述数据的全局逻辑结构外模式:一个数据库可以有多个外模式;介于模式与应用之间;描述数据的局部逻辑结构 内模式:一个数据库只有一个内模式 ,数据物理结构和存储方式的描述, 数据在数据库内部的表示方式
外模式包括若干视图和基本表。
模式包括若干基本表
内模式包括若干存储文件
模式与外模式的关系:一对多
外模式与应用的关系:一对多
③数据库的二级映像功能与数据独立性
三级模式是对数据的三个抽象级别
二级映像在DBMS内部实现这三个抽象层次的联系和转换:
Ⅰ外模式/模式映像
保证数据的逻辑独立性
同一个模式可以有多个外模式,映像定义在外模式中
Ⅱ模式/内模式映像
保证数据的物理独立性
数据库中模式/内模式映像唯一,映像定义在模式中
Ⅲ数据独立性
特定的应用程序
数据库的二级映像保证了数据库外模式的稳定性,从底层保证了应用程序的稳定性
数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去
数据的存取由DBMS管理
1.2数据管理技术的产生和发展
1.2.1人工管理阶段
1.2.2文件系统阶段
1.2.3数据库系统阶段
1.3数据模型
现实世界的模拟
(1)概念模型
(2)逻辑模型,物理模型(最底层的抽象)
1.3.1两步抽象
客观对象-》概念模型-》数据模型
1.3.2数据模型的组成要素
(1)数据结构(对系统静态特性的描述)
(2)数据操作(对系统动态特性的描述)
(3)完整性约束条件
1.3.3概念模型
(1)信息世界中的基本概念
实体、属性、码、域、实体型、实体集、联系
(2)实体型之间、内部的联系
(3)E-R方法
1.3.4最常用的数据模型
(1)层次模型
层次模型用树形结构来表示各类实体以及实体间的联系
层次模型实际上是网状模型的一个特例
(2)网状模型
(3)关系模型
关系模型
在关系模型中实体及实体间的联系都是用关系来描述
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
1.数据结构关系元组属性主码域分量关系模式
关系
关系必须是规范化的,满足一定的规范条件
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。
关系术语 | 一般表格的术语 |
关系名 | 表名 |
关系模式 | 表头(表格的描述) |
关系 | (一张)二维表 |
元组 | 记录或行 |
属性 | 列 |
属性名 | 列名 |
属性值 | 列值 |
分量 | 一条记录中的一个列值 |
非规范关系 | 表中有表(大表中嵌有小表) |
2.数据模型的操纵
数据操作是集合操作,操作对象和操作结果都是关系
3.完整性约束
实体完整性
参照完整新
用户定义的完整性
4.存储结构
实体及实体间的联系用表表示
表以文件形式存储
关系数据库
2.1关系数据结构及形式化定义
2.1.1关系
(1)逻辑结构:二维表
(2)几个概念:元组、分量、基数、属性(主属性、非主属性<非码属性>)、码(候选码、全码、主码)
候选码是一个属性或一个属性组
(3)笛卡尔积可表示为一个二维表,表中每行对应一个元组,每列对应一个域
笛卡尔积的某个子集才有实际含义
(4)关系也是一个二维表,不同列可以对应不同域,每列的名字对应一个属性
n关系的目或度,n目关系必有n个属性
(5)三类关系
①基本关系
性质:同质、不同列出自同个域、列、行顺序无所谓、任意两个元组候选码不同、分量必须取原子值
②查询表
③视图表
2.1.2关系模式
关系模式(静态的、稳定的)(型)是对关系(动态的、随时间不断变化的)(值)的描述
R(U,D,DOM,F)
2.1.3关系数据库
型:关系数据库模式
值:关系模式在某一时刻对应的关系的集合
2.1.4关系模型的存储结构
2.2关系操作
2.2.1常用的关系操作:
(1)查询、数据更新;
查询的表达能力是其中最主要部分
选择、投影、并、差、笛卡尔积是5种基本操作
选择在关系R中选择满足给定条件的诸元组(行角度的运算)
投影在关系R中选择若干属性列组成新的关系(列的角度的运算)
连接又称θ 连接,从两个关系的笛卡尔积中选择属性间满足一定条件的元组
(2)关系操作的特点:集合操作方式:操作的对象和结果都是集合,一次一集合的方式
2.2.2语言分类
关系代数语言-》关系演算语言-》具有关系代数和关系演算双重特点的语言(SQL)
2.3关系的完整性
实体完整性和参照完整性:关系模型必须满足的完整性约束条件,称为关系的两个不变性
用户定义的完整性:应用领域需要遵循的约束条件,体现了具体领域中的语义约束
- 实体完整性
关系R的主属性A不能取空值
- 参照完整性
关系间的引用
外码F是R的一个或者一组属性,同时是S的主码
R为参照关系,S为被参照关系,R和S可以为同一关系
需要保证S的主码和R的外码定义在同一个(组)域
参照完整性规则
对于R中每个元组在F上的值必须为:
或者取空值;或者等于S中某个元组的主码值
当F也是R上的主码时不能取空值
- 用户定义的完整性
2.4关系代数
2.4.1传统的集合运算
交、并、差、广义笛卡尔积
从关系的水平方向即行的角度进行
2.4.2专门的关系运算
选择、投影、连接、除运算
不仅涉及行而且涉及列
比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的
五种基本运算:并、差、笛卡尔积、投影、选择
连接:
(1)等值连接:从行的角度
(2)自然连接:从行和列的角度(考虑到需要去掉重复的列)
数据库恢复技术
3.1事物
四个特性:ACID 原子性、一致性、隔离性、持续性
数据库的恢复:从错误状态恢复到某一已知的正确状态
故障的种类:
事物内部故障(事物撤销undo)、不需要用户干预
(1)反向扫描日志文件,查找该事务的更新操作
(2)对该事务的更新操作执行逆操作
(3)继续反向扫描
(4)知道读到此事物的开始标记
系统故障(不破坏数据库,撤销所有未完成的事物+重做所有已经提交的事物)、不需要用户干预
关键:找到未完成事物和已完成事物 前者应撤销,后者对应重做 前者逆向扫描,后者正向扫描
介质故障(硬故障,破坏数据库)、
重装数据库,恢复已经完成的事务
计算机病毒
恢复的基本原理:冗余
恢复实现技术:数据转储:静态转储、动态转储、海量转储、增量转储
日志文件:以记录为单位、以数据块为单位
作用:事物故障恢复、系统故障恢复、动态转储
一级封锁协议:修改的时候加锁读的时候不加锁
数据库设计
1.需求分析
2.概念结构设计:ER图,数据字典
3.逻辑结构设计:某种数据模型(关系型数据库)
4.物理结构设计:存储结构、存取方法
5.数据库实施阶段
6.数据库运行和维护阶段:性能监测、转储/恢复、数据库重组和重构
需求分析和概念设计独立于任何数据库管理系统
逻辑设计和物理设计与选用的DBMS有关
设计ER图中的冲突:属性冲突、命名冲突、结构冲突
属性冲突:
(1)属性域冲突
(2)属性取值单位冲突
命名冲突:
(1)同名异义
(2)异名同义
结构冲突:
(1)同一对象在不同应用中具有不同的抽象
(2)同一实体在不同分ER图中所包含的属性个数和属性排列次序不完全相同
(3)实体之间的联系在不同局部视图中呈现不同的类型
数据库的安全性
安全性控制的一般方法:用户标识定义、存取控制、审计、数据加密、视图
并发控制的主要方法:封锁
数据库的完整性是指数据的正确性、相容性