数据库设计
数据库设计概述
①数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
②信息管理要求:在数据库中应该存储和管理哪些数据对象。
③数据操作要求:对数据对象需要进行哪些操作,如增删改查、统计等操作。
④数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。
⑤高效率的运行环境:
数据库数据的存取效率高;
数据库存储空间的利用率高;
数据库系统运行管理的效率高。
数据库设计的基本步骤
数据库设计分6个阶段
①需求分析
是否做得充分与准确,决定了构建数据库的速度和质量。
②概念结构设计
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型。
③逻辑结构设计
将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化。
④物理结构设计
a.为逻辑数据结构选取一个最适合应用环境的物理结构;
b.包括存储结构和存取方法。
⑤数据库实施
a.根据逻辑设计和物理设计的结构构建数据库;
b.编写与调试应用程序;
c.组织数据入库并进行试运行。
⑥数据库运行和维护
a.经过试运行后即可投入正式运行;
b.在运行过程中必须不断对其进行评估、调整与修改。
需求分析
需求分析就是分析用户的要求:
是设计数据库的起点;
结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。
1.需求分析的任务
(1)详细调查现实世界要处理的对象(组织、部门、企业等)。
(2)充分了解原系统(手工系统或计算机系统)工作概况。
(3)明确用户的各种需求。
(4)在此基础上确定新系统的功能。
(5)新系统必须充分考虑今后可能的扩充和改变。
(6)调查的重点是“数据”和“处理”,获得用户对数据库的要求:
①信息要求:
用户需要从数据库中获得信息的内容与性质;
由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。
②处理要求:
用户要完成的处理功能;
对处理性能的要求。
③安全性与完整性要求。
(7)确定用户最终需求的难点
用户缺少计算机知识,不能准确地表达自己的需求,他们所提出的需求往往不断地变化。
设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。
(8)解决方法
设计人员必须不断深入地与用户进行交流,才能逐步确定用户的实际需求。
(1)数据字典是关于数据库中数据的描述,即元数据,不是数据本身。
(2)数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。
(3)数据字典是进行详细的数据收集和数据分析所获得的主要结果。
注意:和关系数据库管理系统中数据字典的区别和联系。
(4)数据字典的内容
数据项
数据结构
数据流
数据存储
处理过程
(5)数据项数据的最小组成单位。
(6)若干个数据项可以组成一个数据结构。
(7)数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
(8)数据项
①数据项是不可再分的数据单位。
②对数据项的描述
数据项描述=
{数据项名,
数据项含义说明,
别名,
数据类型,
长度,
取值范围,
取值含义,
与其他数据项的逻辑关系,
数据项之间的联系}
③“取值范围”、“与其他数据项的逻辑关系”定义了数据的完整性约束条件,是设计数据检验功能的依据。
④可以用关系规范化理论为指导,用数据依赖的概念分析和表示数据项之间的联系。
(9)数据结构
①数据结构反映了数据之间的组合关系。
②一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。
③对数据结构的描述
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
概念结构设计
将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。
描述概念模型的工具:E-R模型。
E-R模型:实体之间的联系
E-R图
①实体型
用矩形表示,矩形框内写明实体名。
②属性
用椭圆形表示,并用无向边将其与相应的实体型连接起来。
③联系
用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型。
联系可以有属性。
子系统之间的冲突:
属性冲突
命名冲突
结构冲突:
同一对象在不同应用中具有不同的抽象。
解决方法:把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。
同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。
解决方法:使该实体的属性取各自子系统的E-R图中属性的并集,再适当调整属性的次序。
实体间的联系在不同的E-R图中为不同的类型。
解决方法:根据应用的语义对实体联系的类型进行综合或调整。
逻辑结构设计
逻辑结构设计的任务:将概念结构转换成特定DBMS所支持的数据模型的过程。关系数据库逻辑设计的结果是一组关系模式的定义 。
逻辑结构设计的步骤:
①将概念结构转换为一般的关系、网状、层次模型;
②将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
③对数据模型进行优化。
关系数据库逻辑设计的步骤
①将概念模型(例如基本E-R图)转换为关系模式的集合 --- 得到关系数据库模式;
②运用关系数据理论对关系数据库模式进行**规范化处理**;
③对关系数据库模式进行评价;
④对关系数据库模式进行修正;
⑤设计关系子模式 --- 视图。
ER图向关系模型的转换
一个实体转换为一个关系模式
原则:关系的属性=实体型的属性;关系的码=实体型的码;关系模式的码(用下横线标出) = 实体型的码;
1:1、1:n、m:n三类关系模式的转换
①一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
转换为一个独立的关系模式,原则:关系模式的属性 = 与该联系相连的各实体型的码 + 该联系自身的属性;关系模式的码(用下划线标出) = 各实体型的码;
②一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
转换为一个独立的关系模式,原则:关系模式的属性 = 与该联系相连的各实体型的码 + 该联系自身的属性;关系模式的码(用下划线标出) = n端实体的码;
与某一端实体对应的关系模式合并,原则:合并后关系的属性=在n端关系中加入1端关系的码和联系本身的属性;合并后关系的码不变;
③一个m:n联系必须转换为一个独立的关系模式
转换为一个独立的关系模式,原则:关系模式的属性 = 与该联系相连的各实体型的码 + 该联系自身的属性;关系模式的码(用下划线标出) =各实体码的组合;
④三个或三个以上实体间的一个多元联系转换为一个关系模式,原则:关系模式的属性 = 与该联系相连的各实体型的码 + 该联系自身的属性;关系模式的码(用下划线标出) =各实体码的组合;
设计用户子模式(外模式)
将概念模型转换为逻辑模型(数据库模式)后, 还应根据局部应用的需求, 结合具体DBMS的特点, 设计用户的外(子)模式 。利用RDBMS提供的视图(View)功能设计。
定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个方面:①使用更符合用户习惯的别名。②针对不同级别的用户定义不同的视图,以保证系统的安全性。③简化用户对系统的使用。
视图:数据库:SQL语言,索引,连接查询,视图_燕双嘤的博客-CSDN博客
物理结构设计
数据库的物理结构:数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。
数据库的物理设计:为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
数据库物理设计的步骤:①确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;②对物理结构进行评价,评价的重点是时间和空间效率;若评价结果满足原设计要求,则可进入到物理实施阶段。否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
关系模式存取方法选择
数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。
数据库关系系统:①B+树索引存取方法;②Hash索引存取方法;③聚簇存取方法;
数据库的实施和维护
数据库实施阶段主要工作:
①建立实际的数据库结构。用DDL定义数据库:定义基本表、索引、约束、视图等;
②装入数据,组织数据入库(又称数据库加载),组织数据入库是数据库实施阶段最主要的工作。
数据装载方法:人工方法;计算机辅助方法
数据筛选、输入、转换(工具)、校验,确保正确
③编制和调试数据库应用程序。数据库应用程序的设计应该与数据库设计并行进行。数据库结构建立好后,就可以开始编制与调试数据库的应用程序。