数据库设计方法、规范、技巧

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库设计数据库设计普拉纳信息技术服务中心方法、规范、技巧方法、规范、技巧主题与课题安排主题与课题安排„„数据库设计过程数据库设计过程„„数据库设计范式数据库设计范式„„数据库设计技巧数据库设计技巧„„数据库设计规范数据库设计规范数据库设计数据库设计数据库设计是指对于一个给定的应用环数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户及其应用系统,有效存储数据,满足用户信息要求和处理要求。信息要求和处理要求。数据库设计过程数据库设计过程„„需求分析阶段需求分析阶段:整合各个用户的应用需求:整合各个用户的应用需求(现实世界的需求)(现实世界的需求)„„概要设计阶段概要设计阶段:形成独立于机器特点、独:形成独立于机器特点、独立于各个立于各个DBMSDBMS产品的概念模式(信息世产品的概念模式(信息世界模型),用界模型),用EE--RR图或图或IDEF1XIDEF1X图来描述。图来描述。数据库设计应该完成的工数据库设计应该完成的工作作需求分析阶段需求分析阶段„„需求收集:交流!需求收集:交流!••收集方法:跟班作业、开调查会、请专人介收集方法:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记绍、询问、设计调查表请用户填写、查阅记录。录。„„需求分析:需求分析:调查与分析用户在数据管理中调查与分析用户在数据管理中的信息要求、处理要求、安全性与完整性的信息要求、处理要求、安全性与完整性要求。要求。••分析方法:自顶向下和自底向上两种结构化分析方法:自顶向下和自底向上两种结构化分析方法。(一般使用自顶向下)分析方法。(一般使用自顶向下)••生成数据流图和数据字典生成数据流图和数据字典结构化分析方法结构化分析方法„„结构化分析方法(结构化分析方法(StructuredStructuredAnalysisAnalysis),简称),简称SASA方法方法„„从最上层的系统组织机构入手,采用逐层从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据分解的方式分析系统,并把每一层用数据流图和数据字典描述。流图和数据字典描述。数据流图数据流图„„数据流图表达了数据和处理过程的关系数据流图表达了数据和处理过程的关系数据字典数据字典„„数据字典是各类数据描述的集合,它是关于数据库中数据数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。的描述,即元数据,而不是数据本身。„„数据字典通常包括数据项、数据结构、数据流、数据存储数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。和在每个表内的主外键)。••数据项描述={数据项名,数据项含义说明,别名,数据类型,数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}长度,取值范围,取值含义,与其他数据项的逻辑关系}••数据结构描述={数据结构名,含义说明,组成数据结构描述={数据结构名,含义说明,组成::{数据项或数据{数据项或数据结构}}结构}}••数据流描述={数据流名,说明,数据流来源,数据流去向,组数据流描述={数据流名,说明,数据流来源,数据流去向,组成成::{数据结构},平均流量,高峰期流量}{数据结构},平均流量,高峰期流量}••数据存储描述={数据存储名,说明,编号,流入的数据流,流数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成出的数据流,组成::{数据结构},数据量,存取方式}{数据结构},数据量,存取方式}••处理过程描述={处理过程名,说明,输入处理过程描述={处理过程名,说明,输入::{数据流},输出{数据流},输出::{数据流}{数据流},,处理处理::{简要说明}}{简要说明}}概要设计阶段概要设计阶段„„对用户需求进行综合、归纳与抽象,形成对用户需求进行综合、归纳与抽象,形成一个独立于具体一个独立于具体DBMSDBMS的的概念模型概念模型••概念模型设计方法:概念模型设计方法:IDEF1XIDEF1X方法方法••生成实体生成实体--关系图即:关系图即:EE--RR((EntityEntity--RelationRelation)图(一般用)图(一般用EE--RR图表示概念模型)图表示概念模型)或或IDEF1XIDEF1X图图概念模型概念模型„„不依赖于某一个不依赖于某一个DBMSDBMS支持的数据模型支持的数据模型„„可以转换为计算机上某一可以转换为计算机上某一DBMSDBMS支持的特支持的特定数据模型定数据模型„„概念模型特点:概念模型特点:••具有较强的语义表达能力具有较强的语义表达能力••简单、清晰、易于用户理解,是用户与数据库简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言设计人员之间进行交流的语言方法方法„„把实体把实体--联系方法应用到语义数据模型中的联系方法应用到语义数据模型中的一种语义模型化技术,用于建立系统信息一种语义模型化技术,用于建立系统信息模型模型„„创建步骤创建步骤••初始化工程初始化工程••定义实体定义实体••定义联系定义联系••定义码定义码••定义属性定义属性••定义其他对象和规则定义其他对象和规则初始化工程初始化工程„„从目的描述和范围描述开始,确定建模目从目的描述和范围描述开始,确定建模目标,开发建模计划,组织建模队伍,收集标,开发建模计划,组织建模队伍,收集源材料,制定约束和规范。源材料,制定约束和规范。„„通过调查和观察结果,业务流程,原有系通过调查和观察结果,业务流程,原有系统的输入输出,各种报表,收集原始数统的输入输出,各种报表,收集原始数据,形成了据,形成了基本数据资料表基本数据资料表。。„„收集源材料是这阶段的重点!收集源材料是这阶段的重点!定义实体定义实体„„实体就是有共同的特征和属性的集合。实体就是有共同的特征和属性的集合。„„从基本数据资料表中直接或间接标识出大部分实从基本数据资料表中直接或间接标识出大部分实体。体。••根据基本数据资料表中表示对象的术语。根据基本数据资料表中表示对象的术语。••具有具有““代码代码””和和““编号编号””结尾的术语,如客户代码、供应结尾的术语,如客户代码、供应商编号等。商编号等。••名词部分代表的实体名词部分代表的实体••初步找出潜在的实体,形成初步实体表初步找出潜在的实体,形成初步实体表定义联系定义联系„„根据实际的业务需求和规则,使用实体联系矩根据实际的业务需求和规则,使用实体联系矩阵来标识实体间的二元关系。阵来标识实体间的二元关系。„„如果是如果是NN元联系必须定义为元联系必须定义为NN个二元联系。个二元联系。„„根据实际情况确定出连接关系的势、关系名和根据实际情况确定出连接关系的势、关系名和说明,确定关系类型。说明,确定关系类型。••标识关系与非标识关系标识关系与非标识关系••强制关系与非强制关系强制关系与非强制关系••分类关系分类关系••非确定性关系非确定性关系定义码(主键)定义码(主键)„„引入交叉实体除去上一阶段产生的非确定关引入交叉实体除去上一阶段产生的非确定关系。从非交叉实体和独立实体开始标识侯选码系。从非交叉实体和独立实体开始标识侯选码属性,再从侯选码中确定主码。属性,再从侯选码中确定主码。„„为了确定主码和关系的有效性,通过非空规则为了确定主码和关系的有效性,通过非空规则和非多值规则来保证。找出误认的确定关系,和非多值规则来保证。找出误认的确定关系,将实体进一步分解,最后构造出将实体进一步分解,最后构造出IDEF1XIDEF1X模型模型的键基视图。的键基视图。定义属性定义属性„„从基本数据资料表中抽取说明性的名词开发出从基本数据资料表中抽取说明性的名词开发出属性表,确定属性的所有者。属性表,确定属性的所有者。„„定义非主码属性,检查属性的非空及非多值规定义非主码属性,检查属性的非空及非多值规则。则。定义其他对象和规则定义其他对象和规则„„定义属性的数据类型、长度、精度、非定义属性的数据类型、长度、精度、非空、缺省值、约束规则等。空、缺省值、约束规则等。„„定义触发器、存储过程、视图、角色、同定义触发器、存储过程、视图、角色、同义词、序列等对象信息义词、序列等对象信息逻辑结构设计阶段逻辑结构设计阶段„„将概念结构转换为某个将概念结构转换为某个DBMSDBMS所支持的数所支持的数据模型(例如关系模型),并对其进行优据模型(例如关系模型),并对其进行优化。化。„„将将EE--RR图转换为关系模型实际上就是要将实图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为体、实体的属性和实体之间的联系转化为关系模式(关系模式(ORMORM图)图)数据库设计范式数据库设计范式数据库设计范式概述数据库设计范式概述„„关系数据库设计之时是要遵守一定的规则关系数据库设计之时是要遵守一定的规则的,特别要注意的就是的,特别要注意的就是设计范式设计范式((NormalFormNormalForm))„„数据库设计范式包括:数据库设计范式包括:••第一范式(第一范式(1NF1NF))••第二范式(第二范式(2NF2NF))••第三范式(第三范式(3NF3NF))••第四范式(第四范式(4NF4NF)(不常用))(不常用)••第五范式(第五范式(5NF5NF))第一范式(第一范式(1NF1NF))„„对于表中的每一行,必须且仅仅有唯一的对于表中的每一行,必须且仅仅有唯一的行值,在一行中的每一列仅有唯一的值并行值,在一行中的每一列仅有唯一的值并且具有原子性(不可再分)。且具有原子性(不可再分)。„„例如:员工信息包括:员工号、员工名、例如:员工信息包括:员工号、员工名、员工电话(单位电话、私人电话)等字员工电话(单位电话、私人电话)等字段。则我们根据段。则我们根据1NF1NF只能定义字段员工号只能定义字段员工号为主键,电话则要根据情况再进行拆分。为主键,电话则要根据情况再进行拆分。第二范式(第二范式(2NF2NF))„„非主键列是主键的子集,非主键列是主键的子集,非主键列活动必非主键列活动必须完全依赖整个主键须完全依赖整个主键。。„„主键必须有唯一性的元素,一个主键可以主键必须有唯一性的元素,一个主键可以由一个或更多的组成唯一值的列组成。一由一个或更多的组成唯一值的列组成。一旦创建,主键无法改变,外键关联一个表旦创建,主键无法改变,外键关联一个表的主键。主外键关联意味着一对多的关系的主键。主外键关联意味着一对多的关系第三范式第三范式„„非主键列互不依赖非主键列互不依赖„„例如:学员信息表包含:学员学号、学员例如:学员信息表包含:学员学号、学员名称、所在系编号、所在系名称、所在系名称、所在系编号、所在系名称、所在系地址等字段,那么在操作时就会出现冗余地址等字段,那么在操作时就会出现冗余的问题的问题„„原因:学员学号和所在系的地址是没有直原因:学员学号和所在系的地址是没有直接关联的,它是依赖于所在系编号传递的接关联的,它是依赖于所在系编号传递的依赖性,同理所在系名称其实也一样。依赖性,同理所在系名称其实也一样。第四范式第四范式„„禁止主键列和非主键列一对多关系不受约禁止主

1 / 51
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功