1 数据库系统概述
1.1 数据库系统(DBS)组成
1.1.1 数据库(DB)
1.1.2 数据库管理系统(DBMS)
1.1.3 应用程序(APP)
1.1.4 数据库管理员(DBMA)
1.2 数据模型
1.3 数据库系统(DBS)特点
1.4 数据库系统三级模式及二级映像
1.4.1 三级模式
1.4.2 二级映像
2 数据库系统设计过程
2.1 需求分析阶段
2.1.1 需求分析过程
2.1.2 数据字典
2.2 概念结构设计阶段
2.2.1 E-R模型
2.2.2 E-R图
2.2.3 扩展E-R图
2.3 逻辑结构设计阶段
2.4 物理结构设计阶段
2.4.1 确定存取方法
2.4.2 确定存储结构
2.5数据库实施和维护
数据库是指大量数据的集合,这些数据按照数据模型组织、描述和存储。
数据库具有低冗余、高独立、易扩展和可共享等特点。
数据库管理系统的功能分别针对数据和数据库。
对于数据:
1)数据库管理系统负责数据的定义(DDL数据库定义语言);
2)数据库管理系统负责数据的操纵(DML数据库操纵语言);
3)数据库管理系统负责数据的组织、存储和管理;
对于数据库:
1)数据库管理系统负责数据库的事务管理和运行管理;
2)数据库管理系统负责数据库的建立和维护;
数据模型是实现数据库系统内部数据结构化的重要基础。
数据模型分为三类:概念模型、逻辑模型、物理模型。
1)概念模型:如E-R图;
2)逻辑模型:如层次模型、网状模型、关系模型;
3)物理模型:如数据库系统的存储方式和存取方式;
在数据库系统的设计过程中,常根据概念模型->逻辑模型->物理模型的顺序去设计实现数据库系统,具体见数据库系统设计章节。
1)数据结构化(数据模型是其基础);
2)数据共享性高,冗余度低,易扩充;
3)数据由数据库管理系统统一管理控制;
4)数据独立性(逻辑独立性、物理独立性);
1)外模式:局部数据的逻辑结构和特征的描述;
2)模式:全体数据的逻辑结构和特征的描述;
3)内模式:数据物理结构和存储方式的描述;
一个应用程序只能对应一个外模式,一个模式可以对应多个外模式。
数据库系统中只有一个模式和内模式。
1)外模式/模式映像
一个模式对应多个外模式,所以存在多个外模式/模式映像。
当模式发生改变时,只需要改变应用程序对应的外模式/模式映像,而不需要改变外模式,即应用程序也不需要发生改变,故保证了应用程序的逻辑独立性。
2)模式/内模式映像
数据库系统中只存在一个模式和内模式,所以模式/内模式映像也只存在一个。
当内模式发生改变时,只需要改变模式/内模式映像,而不需要改变模式,更不用改变外模式,即应用程序也不需要发送改变,故保证了应用程序的物理独立性。
数据库设计过程主要分为需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库系统的实施和维护五个过程。
1)调查机构总体情况;
2)熟悉业务活动;
3)明确用户需求;
4)确定系统边界(即将功能划分为系统完成功能以及人工完成功能);
数据字典是对数据库中数据的描述(元数据≠数据本身)。
数据字典在数据库系统后续设计过程中是一个重要参考。
数据字典的组成及其描述如下:
1)数据项:{ 数据类型,数据长度,... };
2)数据结构:{ 组成{数据项货数据结构},... };
3)数据流:{ 来源,去向,流量,最大流量,组成,... };
4)数据存储:{ 输入,输出,数据量,存取方式,组成,... };
5)处理过程:{ 输入,输出,处理类型,... };
概念结构设计的任务为将需求分析得到的用户需求抽象为信息结构。
常用的概念模型为E-R模型。
E-R模型由实体、属性、实体间的联系三部分组成。
实体间联系根据涉及实体个数可分类为:
1)单个实体的联系;
2)两个实体间的联系(一对1、一对多、多对多);
3)多个实体间的联系;
E-R图的表示方法如下:
1)实体由矩形表示;
2)属性由椭圆表示,其中属性不具有需描述的性质,不与其他实体有联系;
3)联系由菱形表示;
扩展E-R图是在E-R图的基础上扩充了ISA联系、基数约束以及Part-of联系。
1)ISA联系
ISA联系在一个确定实体的基础上将其分为不同类别,例如学生实体可以划分为研究生实体和本科生实体。
ISA联系由三角形表示。
- 如果父实体只能归属于一个子实体,则称该ISA联系具有不相交约束;
- 如果父实体可以归属于多个子实体,则称该ISA联系具有可重叠约束;
- 如果父实体划分具有完备性,例如学生实体只能划分为研究生实体和本科生实体,则称该ISA联系具有完备性约束;
2)基数约束
在E-R图某联系中标注各实体的最小值和最大值,其格式为min...max。
例如学生与学生证的一对一联系,学生实体的标注为1...1,学生证实体的标注为1...1。
3)Part-of联系
Part-of联系分为独占联系和非独占联系。
对于一个实体,如果它依赖于其他实体存在,而无法独立存在,则该实体称为弱实体型。且该实体与其依赖的实体之间的联系为独占联系。例如楼房实体与房间实体,当房间实体脱离楼房实体时没有意义,即房间号(房间实体主键)只有和楼号(楼房实体主键)组合时才能唯一标识一个房间,此时房间实体为弱实体型,房间实体与楼房实体间的联系为独占联系。
对于一个实体,如果它不依赖与其他实体独立存在,则该实体称为强实体型。该实体与其他实体之间的联系为非独占联系。例如厂房实体和员工实体,两者独立存在,不存在相互依赖的关系,所以厂房实体和员工实体都是强实体型,厂房实体与员工实体之间的联系为非独占联系。
逻辑结构设计的主要任务是将E-R图转换为数据库管理系统数据模型相符合的逻辑结构。
以Mysql数据库为例,其对应的逻辑结构模型为关系模型,则在逻辑结构设计阶段要将E-R图转换为关系模型。
E-R图与关系模型的转换规则如下:
1)一对一联系可作为单独关系或与任意一端合并为一个关系;
2)一对多联系可作为单独关系或与任意一端合并为一个关系;
3)多对多联系只能作为单独关系;
4)多个实体间的联系只能作为单独关系;
注:在关系数据库中,一个关系就是指一个表。
物理结构设计的主要任务是为逻辑结构模型选取最合适的物理结构,主要包括确定存取方法以及确定存储结构。
常见的存取方法有索引方法、聚簇方法。
1)索引方法
常见的索引类型有B+数据索引和Hash索引。
当表中的某一个(组)属性常出现在查询条件中,或常作为聚集函数的参数,或常出现在连接条件中时,对该(组)属性建立索引可以提高数据库系统对相关事务的处理速度。
2)聚簇方法
聚簇方法将在某属性上具有相同之的元祖存放在连续的物理块内,在对该属性进行分组操作时,数据库系统对相关事务的处理速度将明显提高。
确定存储结构主要包括确定数据存放位置和确定系统配置两方面。
数据库恢复技术是数据库维护的一个重要组成部分。
数据库恢复技术将在相关博客中进行详细介绍。