目录
一.数据库设计概述
1.1数据库设计的内容
1.1.1数据库的结构设计
数据库的结构设计是根据给定的应用环境,进行数据库的模式或子模式的设计。
1.1.2数据库的行为设计
数据库的行为设计是指确定数据库用户的行为和动作。
1.2数据库设计方法
1.2.1直观设计法
直观设计法也叫手工试凑法,是最早使用的数据库设计方法。
1.2.2规范设计法
规范设计法是将数据库设计分为若干阶段,明确规定各阶段的任务,采用自顶向下、分层实现、逐步求精的设计原则。
常用的规范设计法有:
- 基于E-R模型的数据库设计方法
- 基于3NF的数据库设计方法
- 基于视图的数据库设计方法
1.2.3计算机辅助设计法
计算机辅助设计法是在数据库设计的某些过程中模拟某一规范化设计的方法。
1.2.4自动化设计法
自动化设计法是缩短数据库设计周期,加快数据库设计速度的一种方法。
1.3数据库设计的基本步骤
数据库设计分为:“需求分析”、“概念结构设计”、“逻辑结构设计”、“物理结构设计”、“数据库实施”、“运行维护”六个阶段。
1.3.1需求分析
需求分析是对具体应用环境的业务流程和用户提出的各种要求加以调查研究和分析,并和用户共同对各种原始数据加以综合、整理的过程,是形成最终设计目标的首要阶段,也是最困难的阶段。
1.3.2概念结构设计
概念结构设计是对用户信息需求所进行的进一步抽象和归纳,结果为数据库概念结构,通常用E-R模型来表示。
数据库的概念结构与DBMS和相关软硬件无关。
1.3.3逻辑结构设计
逻辑结构设计的结果是得到一个与DBMS无关的概念模式,而逻辑结构设计就是将概念模式转换为与选用的具体DBMS所支持的数据模型相符合的逻辑结构。
1.3.4物理结构设计
数据库物理设计是将逻辑结构设计阶段所产生的逻辑数据模型,转换为某一计算机系统所支持的数据库物理结构的实现过程。
数据库的物理结构主要指数据库存储记录格式,存储记录安排和存储方法,完全依赖于给定的硬件环境、具体的DBMS和操作系统。
1.3.5数据库实施
数据库实施阶段,即数据库调试、试运行阶段·。
1.3.6数据库运行和维护
数据库实施阶段结束后,标志着数据库系统投入正常运行的开始。
数据库设计是一种动态和不断完善的过程,运行和维护阶段是保证数据库日常活动的一个重要阶段。
二.需求分析
需求分析的重点是:“调查、收集与分析用户在数据库管理中的信息要求、处理要求、安全性与完整性要求”。
2.1信息要求
信息要求是指用户需要从数据库中获得信息的内容与性质。
2.2处理要求
处理要求是指用户要求完成什么处理功能。
2.3安全性与完整性要求
确定用户的最终需求是一件很困难的事情,因此设计人员必须与用户不断深入地进行交流,才能逐步确定用户的实际需求。
2.4需求分析的方法和过程【需了解】
需求分析常用的方法有五种:“跟班作业”、“开调查会”、“请专人介绍和询问”、“设计调查请用户填写”、“查阅记录”。
需求分析的过程一般如下:
- 分析用户活动,产生业务流程图
- 确定系统范围,产生系统范围图
- 分析用户活动所涉及的数据,产生数据流图
- 分析系统数据,产生数据字典
- 功能分析
2.5需求分析常用工具
2.5.1数据流图
数据流图(Data Flow Diagram,DFD)是结构化分析方法中用于表示系统逻辑模型的一种工具,以图形的方式描绘在系统中流动和处理的过程。
数据流图是一种功能模型。
其中,DFD由四个要素组成(需了解):
2.5.2数据字典【重要】
数据字典(Data Dictionary,DD)是将数据流程图中各个要素的具体内容和特征,以特定格式记录下来,所形成的文档。
它包括:“数据项”、“数据结构”、“数据流”、“加工”、“文件”、“外部实体”。
- 数据项:数据项是不可再分的数据单位。
- 数据结构:数据结构反映了数据之间的组合关系,一个数据结构可以用若干个数据项组成,也可以由若干个数据结构组成。
- 数据流:数据流是数据结构在系统内传输的路径。
- 数据存储:数据存储是数据结构停留或保存的地方。
- 处理过程:数据字典中只需要描述处理过程的说明性信息。
ps:“数据字典是关于数据库中数据的描述,即原数据,而不是数据本身”。
三.概念结构设计
概念模型使用接近计算机存储的方式表示数据,但是又不涉及具体的DBMS。
概念模型是对现实世界的一种抽象。
3.1概念结构设计方法
概念结构设计阶段,通常使用E-R模型图作为概念设计的描述工具进行设计。
3.1.1集中式模式设计法
集中式模式设计法即首先定义全局概念结构的框架,然后逐步细化。
3.1.2视图集成法
以各部分的需求说明为基础,分别设计各自的局部模式。
3.1.3混合方法
混合方法将“集中式模式设计法”和“视图集成法”结合,以骨架集成。
3.1.4由内向外法
首先定义最重要的核心概念结构,然后向外扩充,考虑已存在概念附近的新概念使得建模过程向外扩展。
四.逻辑结构设计
4.1逻辑结构设计的任务和步骤
逻辑结构设计的任务和步骤如下:
- 将E-R模型转换为等价的关系模式
- 按需要对关系模式进行规范化
- 对规范化后的模式进行评价
- 根据局部应用的需要,设计用户外模式
4.2E-R图向关系模式转换的原则【重要】
将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转换为关系模式。
4.2.1实体的转换
一个实体型转换为一个关系模式。
4.2.2联系的转换
一个联系转换为一个关系模式,与联系相连的各实体的码以及联系的属性转换为关系的属性,该关系的码有以下几种情况:
- 若联系为1:1,则每个实体的码均为该关系的候选码。
- 若联系为1:n,则关系的码为n端实体的码。
- 若联系为m:n,则关系的码为诸实体码的组合。
下面对“1:1”、“1:n”、“m:n”三种关系各做一个例子:
示例图:
联系为1:1时:
- 第一步,将联系转换为独立的关系模式
因为联系为1:1时,每个实体的码均是该关系的候选码,因此“指定”联系转换为关系模式时,形式为:
1:1时,任意一个实体的码都可以做转换后关系模式的码,这里的“培养方案编号”也可以做主码。
而转换后关系模式的属性包含“各实体的码”、“联系的属性”,在“指定”联系中,联系本身并没有属性。
- 第二步,与关系模式合并
如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
用上面的例子“指定”联系,与“专业”或者“培养方案”任一方合并,可得下面两种情况之一:
联系为1:n时
- 第一步,转换为独立的关系模式
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,关系的码为n端实体的码
例如在图5-14中,联系“选修”转换为独立的关系模式时,为:
- 第二步,与关系模式合并
只能与n端对应的关系模式合并,并在关系中加入n端关系模式的属性,且外码为1端关系的主码。
联系为m:n时
m:n联系的转换方法只有一种,就是转化为一个独立的关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。
关系的码为各实体码的组合。
例如,在5-16中学生和课程之间的“选课”联系,可以转化为:
4.3逻辑结构的优化
逻辑结构的优化分为两个步骤:“确定范式的级别”、“实施规范化处理”。
4.3.1确定范式级别
考察关系模式的函数依赖关系,确定范式等级。
4.3.2实施规范化处理
确定范式级别后,根据应用需求,确定对于这些模式是否进行合并或分解。
4.4设计用户外模式
定义用户外模式时,应着重注意:
- 使用更符合用户习惯的别名
- 对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。
- 简化用户对系统的使用。
五.物理结构设计
物理设计可以分为两步:
- 确定物理结构,在关系数据库中主要指存取方法和存储结构。
- 对物理结构进行评价,评价的重点是时间和空间效率。
5.1确定数据库的物理结构
5.1.1确定数据库的的存储结构
对于数据库的存储结构,一般DBMS提供两种选择:“聚簇”和“索引”。
聚簇:
聚簇就是为了提高查询速度,把一个或一组属性上具有相同值的元组集中地存放在一个物理块或者相邻的物理块中。
其中,这个(这组)属性称为“聚簇码”。
聚簇有两个作用:
- 节省存储空间
- 提高按聚簇码查询的效率
索引:
在主键上建立唯一索引,可以提高查询速度,还可以确保数据完整性。
关系中数据越多,索引的优越性也越明显。
5.1.2确定访问方法
访问方法是为了存储在物理设备上(辅存)上的数据提供存储和检索能力的方法。
一个访问方法包括:“存储结构”和“检索结构”两个部分。
- 存储结构:限定了可能访问的路径和存储记录。
- 检索结构:定义了每个应用的访问路径,但不涉及存储结构的设计和设备分配。
5.1.3确定数据的存放位置
根据应用情况将数据的异变部分、稳定部分、经常存取部分和存取频率较低部分分开存放。
5.1.4确定系统配置
DBMS产品一般都提供了一些系统配置变量、存储分配参数,系统为这些变量设定了初始值,在使用时,需要我们根据实际需要,修改系统配置变量。
六.数据库实施
数据库实施主要包括四部分:“建立实际数据库结构”、“组织数据入库”、“编制与调试应用程序”、“数据库试运行”。
6.1建立实际数据库结构
用DBMS提供的数据定义语言(DDL)严格描述数据库结构,例如用SQL语句定义所需基本表等。
6.2组织数据入库
装入数据又称为“数据库加载”,是数据库实施阶段的主要工作。
如果使用人工方法完成,一般有四个步骤:
- 筛选数据
- 转换数据格式
- 输入数据
- 校验数据
通常对于数据量非常大的数据,我们需要编写程序来实现数据入库。
6.3编制与调试应用程序(了解即可)
主要的数据库连接方式有以下几种:
- ODBC数据库接口
- OLE DB数据库接口
- ADO数据库接口
- ADO.NET数据库接口
- JDBC数据库接口
6.4数据库试运行
应用程序编写完成,并有一小部分数据装入后,应该在各种应用上分别试验对数据库的操作情况,这就是数据库的“试运行阶段”,或者称为“联合调试阶段”。
在这一阶段主要完成两方面工作:
- 功能测试,实际运行应用程序,测试他们能否完成各种预定的功能。
- 性能测试,测量系统的性能指标,分析系统是否符合射击目标。
七.数据库的运行和维护
在数据库运行阶段,对数据库的维护主要用DBA完成,它包括:“数据库的转储和恢复”、“数据库的安全性、完整性检测”、“数据库性能的监督、分析和改进”、“数据库的重组织和重构造”四部分。
7.1数据库的转储和恢复
定期对数据库和日志文件进行备份,以保证一旦发生故障,能利用数据库备份以及日志文件恢复数据库。
7.2数据库的安全性、完整性检测
DBA需要根据用户的实际需要授予不同的操作权限。
DBA要根据环境的变化,保证数据库的数据安全。
7.3数据库性能的监督、分析和改进
DBA需要利用监测系统性能参数的工具调整某些参数来进一步改进数据库的性能。
7.4数据库的重组织和重构造
数据库运行一段时间后,数据库的物理存储结构或者物理特性可能会收到破坏,因此需要对数据库进行重新组织,即重新安排数据的存储位置、回收垃圾等。