一.数据库基本概念
1.数据库(Database, DB)
数据库是统一管理的、长期储存在计算机内的,有组织的相关数据的集合。
数据库的基本特征:
数据按一定的数据模型组织、描述和储存
数据间联系密切、冗余度较小
数据独立性较高
易扩展
可为各种用户共享
2.数据库管理系统(DBMS)
DBMS 是数据库系统的核心软件,是由一组相互关联的数据集合和一组用以访问这些数据的软件组成。它是一种解决如何科学地组织和储存数据如何高效地获取和维护数据的系统软件。
主要功能包括:
数据定义功能(DDL)
数据操纵功能(DML)
数据库的运行管理
数据库的建立与维护
3.数据模型
数据模型是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提
供一个抽象的框架。
数据模型的三要素:
数据结构:对象类型的集合,是对系统静态特性的描述。
数据操作:对数据库中各种对象的实例(值)允许执行的操作集合,包括操作及操作规则。如检索、插入、删除和修改,操作规则有优先级等。
数据的约束条件:一组完整性规则的集合。对具体的应用数据必须遵循特定的语义约束条件。
常见的基本数据模型:
层次模型
网状模型
关系模型
面向对象数据模型(第三代数据库系统)
4.数据库三级模式
数据库系统可以分为:
外模式(子模式、用户模式)
模式(概念模式、逻辑模式)
内模式(存储模式)
(1).模式(概念模式、逻辑模式)
数据库中全体数据的逻辑结构和特征的描述
所有用户的公共数据视图,综合了所有用户的需求
一个数据库只有一个模式
(2).外模式(子模式、用户模式)
数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式的地位:介于模式与应用之间
(3)模式与外模式的关系:一对多
外模式通常是模式的子集
一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
外模式的用途:
保证数据库安全性的一个有力措施
每个用户只能看见和访问所对应的外模式中的数据
(4)内模式(存储模式)
是数据物理结构和存储方式的描述
是数据在数据库内部的表示方式
一个数据库只有一个内模式
二.关系型数据库
1.关系的基本术语
(1)属性(Atribute)
描述一个事物常常取若干特征来表示。这些特征称为属性。
(2)域(Domain)
每个属性的取值范围对应一个值的集合,称为该属性的域。所有的域都应是原子数据。
(3)目或度(Degree)
指一个关系中属性的个数。
(4)候选码(Candidate Key)
若关系中的某一属性或属性组的值能唯一的标识一个元组叫称该
属性或属性组为候选码。
(5)主码(Primary Key)
或称主键,若一个关系有多个候选码,则选定其中一个作为主码。
(6)主属性(PrimeAttribute)
包含在任何候选码中的属性称为主属性。不包含在任何候选码中
的属性称为非主属性。
(7)外码 (Foreign Key)
如果关系中的一个属性是另外一个关系中的主码,则这个属性为
外码也叫外键。
(8)全码(All-key)
关系模型的所有属性组是这个关系模式的候选码,称为全码。
2.关系数据库模式
关系的描述称为关系模式,关系模式是一个五元组,形式化地表示为: R (U, D, DOM, F)
R 关系名
U 组成该关系的属性名集合
D 属性组U中属性所来自的域
DOM 属性向域的映象集合
F 属性间的数据依赖关系集合
通常简记为R(A1, A2, ... , An)。 R为关系名, A1, A2...为属性名。
3.完整性约束
实体完整性
参照完整性
用户自定义完整性
(1)实体完整性(Entity integrity)
是指关系的主关键字不能重复也不能取"空值"。如主关键字是多个属性的组合,则所有主属性均不得取空值。
(2)参照完整性(Referential integrity)
是指建立关系之间联系的主键与外键引用的约束条件。就是不允许引用不存在的实体。
(3)用户定义完整性(user defined integrity)
则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。
常用的关系操作:
查询:选择、投影、连接、除、并、交、差
数据更新:插入、删除、修改
查询的表达能力是其中最主要的部分
传统的集合运算是二目运算,包括并、交、差、广义笛卡儿积
专门的关系运算包括:选择、投影、连接、除4种运算。
4.范式
第一范式(1NF)
如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式,r是规范化的关系。
说明:在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
例如: | 学生姓名 | 课程名 |
第二范式(2NF)
若关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是2NF模式。
简单的说,是表中的属性必须完全依赖于全部主键,而不是部分主键。所以只有一个主键的表如果符合第一范式,那一定是第二
范式。
例如员工信息表中加上了"员工号"列,因为每个员工的员工编号是惟一的,因此每个员工可以被唯一区分。
第三范式(3NF)
如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码,则称R是3NF。
例如,存在一个部门信息表,其中每个部门有部门号、部门名称、部门简介等信息。那么在员工信息表中列出部门号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。
如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。
BC范式(BCNF)
若关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF模式。
相对于第三范式,BC范式的要求更加严格。第三范式只是要求R为第二范式且非主属性不传递依赖于R的候选键,而BC范式则是对R的每个属性都做要求。
在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。
一个教师只教一门课。每门课由一名教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称 : (S,J)→T,(S,T)→J,T→J
三.数据库设计
数据库设计的基本步骤(阶段):
需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护
1.需求分析
数据需求分析是在项目确定之后,用户和设计人员对数据库应用系统所要涉及的内容(数据)和功能(行为)的整理和描述,是以用户的角度来认识系统。这一过程是后续开发的基础,
因为逻辑设计、物理设计以及应用程序的设计都会以此为依据,是最困难、最耗费时间的一步。
2.概念结构设计
概念结构设计的目标是产生反映系统信息需求的数据库概念结构,即概念模式。概念结构是独立于支持数据库的 DBMS 和使用的硬件环境的。设计人员从用户的角度看待数据以及数据处理的要求和约束,
产生一个反映用户观点的概念模式,然后再把概念模式转换为逻辑模式。
我们采用E-R模型将现实世界的信息加以抽象,由实体属性,以及实体之间的联系(E-R 图)来描述。
E-R模型 (ER图):
实体:用矩形框表示,框内标注实体名称。
属性:用椭圆形表示,并用连线与实体连接起来。
实体之间的联系:用菱形框表示,框内标注联系名称,并用连线将菱形框与有关实体相连,在连线上注明联系类型。
E-R图中的联系归结为三种类型:
一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)
用E-R方法建立概念模型
(1) 选择局部应用
(2) 逐一设计分E-R图
(3) E-R图合并
E-R图合并时的冲突:
属性冲突 :属性的类型、取值范围、数据单位的不一致。
命名冲突:相同意义的属性,在不同的分 E-R 图上有着不同的命名(异名同义),或是名称相同的属性在不同的分 E-R 图中代表着不同的意义(同名异义)。
结构冲突 :同一实体在不同的分 E-R 图中有不同的属性;同一对象在某一分 E-R 图中被抽象为实体,而在另一分 E-R 图中被抽象为属性。
3.逻辑结构设计
逻辑结构设计就是在概念结构设计的基础上进行数据模型设计,可以是层次模型、网状模型和关系模型。
逻辑结构设计的步骤:
(1).确定数据模型
(2).将 E-R 图转换成为指定的数据模型
(3).确定完整性约束
(4).确定用户视图
4.物理结构设计
物理结构设计就是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
物理结构设计的主要工作步骤:
确定数据分布
存储结构
访问方式
5.数据库实施
运用DBMS提供的数据库语言(如SQL)及宿主语言,根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构,数据加载(装入),进行试运行和评价的过程,叫数据库的实施(实现)。
包括以下三个步骤:
建立数据库结构
数据加载(组织数据入库)
试运行和评价
6.数据库运行维护
主要内容:
数据库性能的监测和改善
数据库备份及故障恢复
数据库重组和重构
(1)数据库备份及故障恢复
数据备份是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。
备份可分为:
冷备份(静态备份)是在数据库正常关闭的情况下进行的,所以备份过程中不允许对数据库进行任何存取、修改活动。
热备份(动态备份)热备份是指备份期间允许对数据库进行存取或修改,即备份和用户事务可以并发执行。
按备份的内容分类:
完全备份:备份全部文件,并不依赖文件的存档属性来确定备份那些文件。
差分备份:备份自上一次完全备份以来变化过的文件。
增量备份:备份上一次备份后(无论是哪种备份),所有发生变化的文件。
(2)日志文件的作用
故障恢复必须用日志文件。
在动态备份方式中必须建立日志文件,备份和日志文件综合起来才能有效地恢复数据库。
四.数据相关技术
1.事务管理
(1)事务:是一系列的数据库操作,是数据库应用程序的逻辑单位,即应用程序对数据库的操作都应该以事务的方式进行。
(2)事务具4个特性:
原子性:事务的所有操作在数据库中要么都做要么都不做。用影子拷贝(浅拷贝)实现
一致性:一个事务独立执行的结果,将保持数据的一致性,即数据不会因为事务的执行而遭受破坏。用完整性约束检查实现
隔离性:一个事务的执行不能被其他事务干扰。并发事务在执行过程中可能会对同一数据进行操作,这些事务的操作应该不会相互干扰,是相互隔离的。
持久性:一个事务一旦提交,它对数据库的改变必须是永久的,即使系统出现故障也是如此。
2.并发控制
(1)排它锁(Exclusive Locks, 简称X锁):也称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X锁后,就只允许事务T对数据A进行读取和修改,其他事务对数据A不能再加任何锁,
也不能读取和修改数据A,直到事务T释放A上的锁。
(2)共享锁(Share Locks, 简称S锁):也称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁来读取,
只要数据A上有了S锁,任何事务都只能再对其加S锁读取而不能加X锁修改
3.数据库优化技术
(1).集中式数据库优化技术
增加冗余列
增加派生列
重新组表
水平分割表
垂直分割表
(2).分布式数据库优化技术
主从复制
读写分离
分表分库