三、数据库设计
3.1 系统需求分析阶段
需求分析的任务是:对现实世界要处理的对象(组织、部门、企业)等进行详细的调查,通过对原系统
的了解,收集支持新系统的基础数据并对其进行处理,在此基础_上确定新系统的功能。
一般来说需求分析阶段要完成下面3项任务:
- 调查分析用户活动
- 收集和分析需求数据,确定系统边界
- 编写系统分析报告
3.2 概念结构设计阶段
概念结构设计就是将需求分析得到的用户需求抽像为信息结构, 即概念模型。
E - R 模型是最著名、最实用的一种是概念模型。
E-R图设计过程
1.局部E-R图
两条原则 :
1.属性必须是不可分的数据项 。
2.属性不能与其他实体具有联系,联系只能发生在实体之间
在简单的教务管理系统中,有如下语义约定:
1.一个学生可选修多门课程,一门课程可为多个学生选修,因此学生和课程是多对多的联系。
2.一个教师可讲授多门课程,一门课程可为多个教师讲授,因此教师和课程也是多对多的联系。
3.一个系可有多个教师,一个教师只能属于一个系,因此系和教师是一对多的联系,同样系和学生也是一对多的联系。
2. 全局E-R图
在各局部E-R图设计完成后需要集成各局部E-R图形成一个全局的E-R图,集成的方法有两种:
-
多元集成法
一次性将多个局部E-R图合并为一个全局E-R图。
-
二元集成法
首先集成两个重要的局部E-R图,以后用累加的方法逐步将一个新的E-R图集成进来。
不管采用哪种方式,都不是简单的合并,而必须消除各局部E-R图中的不一致(冲突、不必要的冗余),使合并后的全局概念模型本身是一个合理、完整、一致的模型。
以教务管理系统中的两个局部E-R图为例,来说明如何消除各局部E-R图
之间的冲突,进行局部E-R模型的合并,从而生成初步E-R图。
首先,这两个局部E-R图中存在着命名冲突,学生选课局部E-R图中的实体“系”
与教师任课局部E-R图中的实体“单位”,都是指“系”,即所谓的异名同义,
合并后统一改为“系”,这样属性“名称”和“单位名”即可统一为“系名”。
其次,还存在着结构冲突,实体“系”和实体“课程”在两个不同应用中的属性组成
不同合并后这两个实体的属性组成为原来局部E-R图中的同名实体属性的并集。
3.3 逻辑结构设计阶段
初始关系模式设计
将E-R图转换为关系模型实际上就是将实体、属性和联系转换成关系模式。
在转换中要遵循以下原则:
1)一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键。
2)一个联系转换为一个关系模式,与该联系相连的各实体的键以及联系的属性均转换为该关系的属性。该关系的键有三种情况:
如果联系为1:1,则每个实体的键都是关系的候选键;
如果联系为1:n,则n端实体的键是关系的键;
如果联系为n:m,则各实体键的组合是关系的键。
一对一情况
有两种方法解决这个问题。
第一个方法:可以把联系单独对应一个关系模式,
由各实体的主码构成关系模式,而关系模式的主码可以是任一个实体集的主码。
而实体中属性照常写就可以了。
第二个方法:实体中的属性照常写,然后将让任意一方实体集的主码加到
另一方实体集对应的关系模式中。
下面举个例子我们来看一下:
一对多情况
这种情况可以跟一对一的情况对比着学习。
第一个方法:同一对一的方法一是差不多的,只是对应的关系模式中,
其主码不再是任一实体的主码就可以,而是必须指定n端的
主码为关系模式的主码。
第二个方法:同一对一的方法二也是差不多的,但是值得强调的是,
必须将1端的主码加到n端的关系模式中,
而且n端的主码仍然为该关系模式中的主码。
同样,我们也来举个例子。
对多对情况
对于多对多的联系,似乎是这三种类型中最简单的一个了。
其转换原则为:每个实体集对应一个关系模式,对于多对多的联系,
其单独对应一个实体集,该实体集的主码由各实体集的主码共同构成。
我们同样来看一个例子。
关系模式规范化
模式评价与改进
功能评价:指对照需求分析的结果, 检查规范化后的关系模式集合是否支持用户所有的应用要求。
性能评价:对实际性能进行估计, 包括逻辑记录的存取数、传送量以及物理结构设计算法的模型等。
模式改进:合并、分解
3.4 物理逻辑设计阶段
数据库的物理结构设计可分为两步·
1.确定物理结构, 在关系数据库中主要指存取方法和存储结构;
2.评价物理结构, 评价的重点是时间和空间效率。
3.5 数据库实施阶段
数据库实施是指根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构、装入数据、进行测试和试运行的过程。
3.6 数据库运行与维护阶段
数据库运行和维护阶段的主要任务包括以下三项内容·
( 1 ) 维护数据库的安全性与完整性;
( 2 ) 监测并改善数据库性能;
( 3 ) 重新组织和构造数据库。
只要数据库系统在运行, 就需要不断地进行修改、调整和维护。一旦应用变化太大, 数据库重新组织也无济于事, 这就表明数据库应用系统的生命周期结束,应该建立新系统, 重新设计数据库。