数据库设计主要有以下步骤:
需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库的实施
数据库的运行和维护
根据重点,这里主要介绍一下前四点,其中着重介绍概念结构设计和逻辑结构设计。
1需求分析
作用顾名思义,一般采用自顶向下的方法。值得注意的是,系统统中的数据则借助数据字典(data dictionary,DD)来描述。数据字典是系统中各类数据描述的集合,数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个阶段。
2.概念结构设计
这里主要是建立E-R图,一般采用自底向上的方法。
大致步骤如下,首先对数据进行抽象处理,再局部设计E-R图,最后再合并成总的E-R图。
2.1数据抽象
对数据进行分类,聚集,概括抽象处理。
分类是确定实体;聚集是确定实体的属性;概括原来的E-R模型没有,这里是对其扩充,是一种子集联系,比如学生下面可以分成本科生、研究生,前者称为超类,后者称为子类。
2.2局部设计E-R图
在多层的数据流图中选择一个适当层次的数据流图,作为设计分E-R图的出发点 ,将各局部应用涉及的数据分别从数据字典中抽取出来参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型(1:1,1:n,m:n)
这里有几条原则,主要和属性有关
(1)属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成
(2)属性不能与其他实体具有联系。联系只发生在实体之间
(3)能做属性对待的,尽可能用属性对待
2.3总的E-R图
分两步走
一是合并局部E-R图,形成初步E-R图,二是对初步E-R图优化,消除冗余。
合并局部E-R图,形成初步E-R图:
合理消除各E-R图中的冲突是合并E-R图的主要工作与关键所在。各子系统的E-R图之间的冲突主要有三类:
1)属性冲突:属性域冲突,即属性值的类型、取值范围或取值集合不同;属性取值单位冲突。 解决方法商议,统一
2)命名冲突:同名异义,即不同意义的对象在不同的局部应用中具有相同的名字;异义同名(一义多名),即同一意义的对象再不同的局部应用中具有不同的名字。 解决方法商议、统一
3)结构冲突:同一对象在不同应用中具有不同的抽象(实体、属性,变换成一致的抽象);同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同(属性取并集);实体间的联系在不同的E-R图中为不同的类型(综合,调整)。
消除冗余,形成基本E-R图:
主要方法如下:
分析方法
规范化理论
3逻辑结构设计
这里主要是将E-R图转化为对应模型,以关系模型为例。
E-R图向关系模型的转换,要解决的问题是如何将实体型和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。
主要原则如下:
(3)具有相同码的关系模式可以合并
4.数据库的物理结构设计
物理设计是为逻辑数据结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
这里主要是了解其常见的存取方法,常用的存取方法有三类:1.索引方法,目前主要是B+树索引方法。2.聚簇方法(Clustering)方法。3.是HASH方法