【mysql】数据库设计
一、数据库设计概述
1、数据库的声明周期
2、数据库设计的目标
-
满足应用功能需求(能用):存,取,删,改(增、查、删、改)
-
良好的数据库性能(好用):数据的高效率存取和空间的节省。 共享性、完整性、一致性、安全保密性
3、数据库设计的内容
4、数据库设计的方法
5、数据库设计的过程
二、数据库设计过程详述
1、需求分析
-
数据库设计的起点
-
目标:是了解与分析用户的信息及应用处理的要求,并将结果按一定格式整理而形成需求分析报告。
-
该分析报告是后续概念设计、逻辑设计、物理设计、数据库建立与维护的依据
1.1、确定数据库范围(数据库的第一项工作)
(1)有效地利用计算机设备及数据库系统的潜在能力;
(2)提高数据库的应变能力;
(3)避免应用过程中对数据库做太多或太大的修改;
(4)延长数据库的生命周期。
1.2、应用过程分析---了解并分析数据与数据处理间的关系
(1)用到哪些数据;
(2)数据使用的顺序;
(3)对数据作何处理和处理的策略以及结果;
应用过程分析的结果是数据库结构设计的重要依据
1.3、收集与分析数据
数据收集与分析的任务是了解并分析数据的组成格式及操作特征,每个数据元素的语义及关系等,并将它们收集起来整理归档。
-
静态结构 --- 不施加应用操作于其上时数据的原始状况 。(1)数据分类表 ,用于数据的总体描述 。(2)数据元素表 ,指通常意义下的数据项或属性
-
动态结构 ---将应用操作施加于数据之上后数据的状况 (1)任务分类表 ,一个任务指为完成某一特定处理功能的相对独立的操作序列 (2)数据特征操作表,用以描述任务和数据之间的关系,它包括不同任务对数据执行不同操作的频率
-
数据约束 ---使用数据时的特殊要求 (1)数据的安全保密性 (2)数据的完整性 (3)响应时间 (4)数据恢复
1.4、编写需求分析报告
内容包括:
1)数据库的应用功能目标
2)标明不同用户视图范围
3)应用处理过程需求说明,包括:数据流程图;任务分类表;数据操作特征表;操作过程说明书。
4)数据字典,是数据库系统中存储三级结构定义的数据库,通常指的是数据库系统中各类数据详细描述的集合。功能是存储和检索各种数据描述,即元数据。包括数据分类表、数据元素表和各类原始资料。
5)数据量
6)数据约束
2、结构设计
2.1、概念结构设计
概念模型-ER图
- 实体分析法(自顶向下法):(1)独立于任何软件与硬件,主要目标:最大限度的满足应用需求。
- 属性综合法(自底向上法)
2.2、逻辑结构设计
逻辑结构设计的目标:将概念模型转换为等价的、并为特定DBMS所支持数据模型的结构。(将ER图转换为表结构)
2.3、物理设计
-
具体任务主要是确定数据库在存储设备上的【存储结构】及【存取方法】,
-
因DBMS的不同还可能包括【建立索引】和【聚集】,以及【物理块大小】、【缓冲区个数和大小】、【数据压缩的选择】等。
3、数据库实施
3.1、过程概述
加载数据>>应用程序设计>>数据库试运行
-
加载数据:收集、分类、整理、校验、输入等
-
应用程序设计:
-
数据库试运行:有利于工作人员掌握并熟悉系统; 有利于正式运行时避免人为的操作不当等损害。
4、数据库运行与维护
三、关系数据库设计的方法
1、概念模型(结构)设计方法
1.1、E-R图
1.2、局部信息结构设计
-
确定局部范围:局部范围主要依据【需求分析报告】中标明的【用户视图范围】来确定 。 往往与子模式范围相对应
-
选择实体:【数据分类表】是选择实体的直接依据。 实体选择的最大困难是如何区别【实体】与【属性】。
-
选择实体的关键字属性:实体的存在依赖于其【关键字】的存在。
-
确定实体间的联系:数据间的联系必须在【概念设计】时确定。
-
确定实体的属性:属性分为【标识属性】和【说明属性】
2、逻辑模型(结构)设计的方法
2.1、整个过程
将E-R图转换为关系模型 >>对关系数据模型进行优化 >>设计面向用户的外模式
2.2、E-R图向关系模型的转换原则(简答)
-
一个实体型转换为一个关系模式(表),实体的属性作为关系的属性,实体的码作为关系的码 。
-
一个一对一联系可以转换为一个独立的关系模式(中间表),也可以与任意一端对应的关系模式合并(外码)。 【外码在两个表中任选一个设置】
-
一个一对多联系可以转换为一个独立的关系模式(中间表),也可以与N端对应的关系模式合并(外码) 。【在1的表中设置外码】
-
一个多对多联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性(中间表)。 [中间表的属性是两个表的主码,中间表联系的属性]
-
三个或以上实体间的一个多元联系可以转换为一个关系模式(中间表)。 【三个表联系的中间表】
-
具有相同码的关系模式可合并 【多个关系模式合并成1个关系模式,及合并为1张表】
模拟练习题【综合题】
某学校图书借阅管理系统应提供如下功能:
(1)查询书库中现有图书信息,包括书号、书名、作者、单价、出版社;
(2)查询读者信息,包括读者的借书证号、姓名、性别、单位;
(3)查询读者的借阅情况,包括读者的借书证号、书号、借书日期、还书日期等;
(4)不同类别的读者有不同的借阅权限,读者类别由类别编号、名称、最大允许借书量、借书期限等描述。
根据以上叙述,回答下列问题:
1.试为该图书借阅系统设计一个ER模型,要求标注联系类型,可省略实体属性。
2.根据转换规则,将ER模型转换成关系模型,要求标注每个关系模式的主键和外键(如果存在)。
E-R图如下:
关系模型如下:
读者类别(类别编号,名称,允许最大借书量,借书期限)主键:类别编号
读者(借书证号,姓名,性别,单位,类别编号)主键:借书证号,外键:类别编号
图书(书号,书名,作者,单价,出版社)主键:书号
借阅(书号,借书证号,借书日期,还书日期)书号和借书证号既是主键 也是外键
2.3、对关系数据模型进行优化【简答】
数据模型优化
数据库逻辑设计的结果,不是唯一的。
1)确定各属性间的函数依赖关系
2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
3)判断每个关系模式的范式,根据实际需要确定最合适的范式。
4)按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或分解。
5)对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率
2.4、设计用户子模式
1)可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用。
2)可以对不同级别的用户定义不同的视图,以保证系统的安全性。
3)简化用户对系统的使用。
3、物理模型(结构)设计的方法
3.1、物理结构设计
建立索引
-
静态索引,动态索引
建立聚集
-
聚集是将相关数据集中存放的物理存储技术。
-
数据聚集结构的一种有效方式是块结构方式。
-
数据聚集可在一个或多个关系上建立。