1、第7章 系统设计第第9 9章章 详细设计中详细设计中 数据库设计数据库设计第7章 系统设计 概述概述 概念设计概念设计 逻辑设计逻辑设计 物理设计物理设计 安全性设计安全性设计 ROSE的数据库设计过程的数据库设计过程本章内容本章内容第7章 系统设计一一 概概 述述第7章 系统设计 数据库是信息系统的基础和核心,数据库数据库是信息系统的基础和核心,数据库设计的质量将直接关系到信息系统开发的水平。设计的质量将直接关系到信息系统开发的水平。数据库设计是指根据业务需求、信息需求数据库设计是指根据业务需求、信息需求和处理需求,确定信息系统中的数据库结构、数和处理需求,确定信息系统中的数据库结构、数据操
2、作和数据一致性约束的过程据操作和数据一致性约束的过程。第7章 系统设计 数据库设计的基本过程:图9.1 数据库设计的基本过程 概念结构用户需求信息需求DBMS特性硬件及系统特性需求分析业务需求处理需求概念设计逻辑设计物理设计逻辑结构第7章 系统设计二二 概念设计概念设计第7章 系统设计 2.1 数据库概念设计的含义数据库概念设计的含义 概念结构概念结构也叫概念数据模型也叫概念数据模型(Conceptual Data(Conceptual Data Model)Model),它应该反映现实世界中,它应该反映现实世界中组织的业务模式组织的业务模式、信信息结构息结构、信息间的相互制约关系信息间的相互
3、制约关系,以及对信息,以及对信息存储、存储、查询和加工的处理要求查询和加工的处理要求等。等。概念数据模型是对数据的抽象描述,它应该独立概念数据模型是对数据的抽象描述,它应该独立于具体的数据处理的细节和数据库管理系统于具体的数据处理的细节和数据库管理系统。第7章 系统设计 2.2 概念设计步骤概念设计步骤 局部视图设计局部视图设计:从各部门或用户的角度设计出反从各部门或用户的角度设计出反映局部实体联系的局部视图映局部实体联系的局部视图(外模式外模式)。财务概念数据人事概念数据物资概念数据科技概念数据设备概念数据第7章 系统设计 2.概念设计步骤概念设计步骤 全局视图集成全局视图集成:把各局部视图
4、集成为能够反映组把各局部视图集成为能够反映组织全貌的全局视图织全貌的全局视图(模式模式)。财务概念数据人事概念数据物资概念数据科技概念数据设备概念数据系统全局概念数据数据集成第7章 系统设计 2.3 概念设计的描述概念设计的描述 实体联系图实体联系图(ERER图)作为概念设计的工具,同图)作为概念设计的工具,同时用时用ERER图描述概念数据模型。图描述概念数据模型。第7章 系统设计 采用采用UMLUML建模建模,则可以直接用系统分析和系统设,则可以直接用系统分析和系统设计得到的类图作为概念数据模型。计得到的类图作为概念数据模型。第7章 系统设计 2.4 2.4 基于业务对象模型的数据库概念设计
5、基于业务对象模型的数据库概念设计 1 构建业务对象模型构建业务对象模型 业务对象模型是在设计阶段确定的由客观实体构成业务对象模型是在设计阶段确定的由客观实体构成的类图。这个类图就是业务对象模型。的类图。这个类图就是业务对象模型。2 优化业务对象模型优化业务对象模型 为了数据库设计的需要,在构建的业务对象模型的为了数据库设计的需要,在构建的业务对象模型的基础上,对其进行进一步优化,以便得到优化的业务基础上,对其进行进一步优化,以便得到优化的业务对象模型。对象模型。第7章 系统设计第7章 系统设计 1)1)优化业务对象模型的基本原则优化业务对象模型的基本原则 客观原则客观原则 构建的业务对象模型一
6、定要符合业务对象所描述构建的业务对象模型一定要符合业务对象所描述的事物之间关系的实际。的事物之间关系的实际。复杂度适中原则复杂度适中原则 业务对象模型中的业务对象不能过于复杂业务对象模型中的业务对象不能过于复杂,如果如果复杂就需要分解。复杂就需要分解。遵循规范化理论原则遵循规范化理论原则 业务对象模型应该是规范的。业务对象模型应该是规范的。第7章 系统设计 2)2)业务对象模型的优化方法业务对象模型的优化方法 多元关联转变为多个二元关联多元关联转变为多个二元关联 在业务对象模型中,所有的多元关联,都可以转在业务对象模型中,所有的多元关联,都可以转变为多个二元关联。变为多个二元关联。第7章 系统
7、设计第7章 系统设计 2)2)业务对象模型的优化方法业务对象模型的优化方法 多对多的二元关联转变为两个一对多的二元关联多对多的二元关联转变为两个一对多的二元关联 第7章 系统设计 2)2)业务对象模型的优化方法业务对象模型的优化方法 带关联类的一对多二元关联去掉关联类带关联类的一对多二元关联去掉关联类 第7章 系统设计 2)2)业务对象模型的优化方法业务对象模型的优化方法 复杂性化简复杂性化简 对于复杂的类,可以化简为多个类。对于复杂的类,可以化简为多个类。图书订单类的化简第7章 系统设计第7章 系统设计三三 逻辑设计逻辑设计第7章 系统设计 3.1 概述概述 逻辑设计的概念逻辑设计的概念 将
8、概念数据模型设计成为特定将概念数据模型设计成为特定DBMSDBMS的逻辑数据模式。的逻辑数据模式。逻辑数据模式逻辑数据模式 被称为逻辑模型或数据模式,关系数据库的数据模式被称为逻辑模型或数据模式,关系数据库的数据模式是关系模式。关系数据库需把是关系模式。关系数据库需把ERER图或类图描述的概念数据图或类图描述的概念数据模型转换为等价的关系模式及其约束。模型转换为等价的关系模式及其约束。第7章 系统设计 逻辑设计结果逻辑设计结果 一组关联的规范关系,一系列经过结构化的业务一组关联的规范关系,一系列经过结构化的业务规则,以及数据库存取的安全性设计。规则,以及数据库存取的安全性设计。逻辑设计的工作逻
9、辑设计的工作 由概念数据模型导出关系模式;由概念数据模型导出关系模式;规范化关系模式;规范化关系模式;结构化业务规则;结构化业务规则;数据库存取安全性设计数据库存取安全性设计。第7章 系统设计 3.2 由概念数据模型导出关系模式由概念数据模型导出关系模式 (1).(1).关系模式的含义关系模式的含义 关系模式的基本内容是一组关联的关系。关系模式的基本内容是一组关联的关系。关系的一般形式:关系的一般形式:R(A1,A2,R(A1,A2,An),An)。其中,其中,R R为一个关系,为一个关系,AiAi为关系的属性。为关系的属性。例如:例如:职工职工(职工号职工号,姓名,性别,年龄,岗位,住址,电
10、话,姓名,性别,年龄,岗位,住址,电话,权限,密码权限,密码)第7章 系统设计 关系关系R R也可以用一个二维表来表示,二维表的列为也可以用一个二维表来表示,二维表的列为R R的属性的属性AiAi,行为元组。例如:,行为元组。例如:第7章 系统设计 (2)(2)业务对象模型转换为关系模式业务对象模型转换为关系模式 类的转换方法类的转换方法 把类图中的每一个类转换为一个关系,类的属性作把类图中的每一个类转换为一个关系,类的属性作为关系的属性。为关系的属性。图7.50 类图转换的关系模式系主任(主任编号,姓名,性别,出生日期,职称,从事专业)第7章 系统设计 关联关系的转换关联关系的转换 具有关联
11、关系的类,所转换而成的关系模式完全能具有关联关系的类,所转换而成的关系模式完全能够反映类之间所存在的关联关系。够反映类之间所存在的关联关系。例例1:系主任系主任(主任编号主任编号,姓名姓名,性别性别,出生日期出生日期,职称职称,从事专业从事专业)系系(系名系名,概况概况,专业专业,主任编号主任编号)第7章 系统设计例例2:第7章 系统设计图7.51 三元关联的关系模式 班级(班级编号,班级名,人数,系名)教师(教师编号,姓名,性别,出生日期,职称)课程(课程编号,课程名,课程类别,课时)授课(教室,授课形式,教学效果,班级编号,教师编号,课程编号)第7章 系统设计 组成关系的转换组成关系的转换
12、 组成关系是关联关系的一种特例,组成关系可按照组成关系是关联关系的一种特例,组成关系可按照关联关系的方法转换为关系模式。关联关系的方法转换为关系模式。例,图例,图7.52(a)7.52(a)中,中,“学校学校”与与“系部系部”两个类之两个类之间是组成关系,把这个类图转换成为图间是组成关系,把这个类图转换成为图(b)(b)所示的关系所示的关系模式,由模式,由“系部系部”中的中的“校名校名”属性与属性与“学校学校”建立建立起关联关系。起关联关系。图7.52 组成关系转换的关系模式1*学校(校名,地址,电话)系部(校名,系部名称,概况,专业)学校系部系部名称概况专业校名地址电话(a)(b)第7章 系
13、统设计 泛化关系的转换泛化关系的转换 “一类一关系一类一关系”的转换方法。指把存在泛化关系类图的转换方法。指把存在泛化关系类图中的一个类转变成为关系模式中的一个关系。转换时需中的一个类转变成为关系模式中的一个关系。转换时需要在子类所转换的关系中增加父类的关键属性。例如:要在子类所转换的关系中增加父类的关键属性。例如:图7.53 泛化关系转换的关系模式 学生(学号,姓名,性别,出生日期,家庭住址,所属系)本科生(学号,专业,班级)研究生(学号,专业,导师)学生学号姓名性别出生日期家庭住址所属系本科生专业班级研究生专业导师(a)(b)第7章 系统设计案例分析案例分析 书店书务系统数据库逻辑设计书店
14、书务系统数据库逻辑设计 第7章 系统设计第7章 系统设计图书(书号,ISBN,书名,作者,出版日期,版次,定价,类别编号,出版 社编号)图书类别(类别编号,类别名称)出版社(出版社编号,名称,联系地址,电话,邮编,邮箱,网址,联系人,备注)第7章 系统设计第7章 系统设计图书(书号,ISBN,书名,作者,出版日期,版次,定价,图书类别,出版社编号)订单图书(书号,,册数,计划到货日期,实际到货日期)进书图书(书号,入库单编号,进书数量)架存图书(书号,架位,架存数量,架存下限,架存上限)盘存图书(书号,盘存单编号,实际数量,架存数量)报损图书(书号,报损单编号,报损数量,报损原因)售出图书(书
15、号,会员编号,售出数量,折扣,售价)退回图书(书号,会员编号,退回数量,退价,退书日期,退书原因)第7章 系统设计第7章 系统设计订单图书(书号,订单编号,册数,计划到货日期,实际到货日期)进书图书(书号,入库单编号,进书数量)盘存图书(书号,盘存单编号,实际数量,架存数量)报损图书(书号,报损单编号,报损数量,报损原因)售出图书(书号,售书单编号,售出数量,折扣,售价)退回图书(书号,售书单编号,退回数量,退价,退回日期,退回原因)图书订单(订单编号,出版社编号,订单日期,到货地点,工号,备注)入库单(入库单编号,入库日期,工号,备注)盘存单(盘存单编号,盘存日期,工号,备注)报损单(报损单
16、编号,报损日期,工号,备注)售书单(售书单编号,售书日期,工号,备注)订单费用(订单编号,运费,税费,管理费,其他费用)第7章 系统设计职工(工号,姓名,岗位,密码)职工信息(工号,性别,出生日期,家庭住址,手机,住宅电话,岗位,学历,职称,邮箱,邮编)个人会员(会员编号,姓名,地址,电话,工作单位,邮箱,注册日期,累计分值,备注)第7章 系统设计第7章 系统设计图书(书号,ISBN,书名,作者,出版日期,版次,定价,类别编号,出版 社编号)图书类别(类别编号,类别名称)出版社(出版社编号,名称,联系地址,电话,邮编,邮箱,网址,联系人,备注)订单图书(书号,,册数,计划到货日期,实际到货日期
17、)进书图书(书号,入库单编号,进书数量)架存图书(书号,架位,架存数量,架存下限,架存上限)盘存图书(书号,盘存单编号,实际数量,架存数量)报损图书(书号,报损单编号,报损数量,报损原因)售出图书(书号,会员编号,售出数量,折扣,售价)退回图书(书号,会员编号,退回数量,退价,退书日期,退书原因)图书订单(订单编号,订单日期,到货地点,工号,备注)入库单(入库单编号,入库日期,工号,备注)盘存单(盘存单编号,盘存日期,工号,备注)报损单(报损单编号,报损日期,工号,备注)售书单(售书单编号,售书日期,工号,备注)订单费用(订单编号,运费,税费,管理费,其他费用)职工(工号,姓名,岗位,密码)职
18、工(工号,性别,出生日期,家庭住址,手机,住宅电话,岗位,学历,职称,邮箱,邮编)个人会员(会员编号,姓名,地址,电话,工作单位,邮箱,注册日期,累计分值,备注)第7章 系统设计 2规范化关系模式规范化关系模式 几个概念几个概念 异常异常:冗余和更新异常。冗余和更新异常。冗余冗余:重复存储同一数据的现象。重复存储同一数据的现象。更新异常更新异常:在关系中插入、删除、修改元组时出现在关系中插入、删除、修改元组时出现不希望结果的现象。包括插入异常、删除异常和修改不希望结果的现象。包括插入异常、删除异常和修改异常。异常。规范化规范化:分解关系模式以消除异常的过程。分解关系模式以消除异常的过程。范式范
19、式:分解后的关系分解后的关系模式的规范形式模式的规范形式(或者说把关或者说把关系模式的分类标准系模式的分类标准)。第7章 系统设计 规范化步骤规范化步骤 确定规范级别确定规范级别 规范级别应根据应用需要而定。在一般应用中,如规范级别应根据应用需要而定。在一般应用中,如果仅有函数依赖,果仅有函数依赖,3NF3NF比较适当。比较适当。实施规范化处理实施规范化处理 根据确定的规范化级别,分析关系模式,以判断是根据确定的规范化级别,分析关系模式,以判断是否满足规范要求,对不满足要求的关系进行规范化处理。否满足规范要求,对不满足要求的关系进行规范化处理。第7章 系统设计 特别注意特别注意1:如果业务对象
20、模型中的类已经经过优化,可以不如果业务对象模型中的类已经经过优化,可以不必再对关系模式实施规范化。必再对关系模式实施规范化。第7章 系统设计图书(书号,ISBN,书名,作者,出版日期,版次,定价,类别编号,出版 社编号)出版社(出版社编号,名称,联系地址,电话,邮编,邮箱,网址,联系人,备注)图书订单(订单编号,订单日期,到货地点,工号,备注)订单图书(订单编号,书号,计划到货日期,实际到货日期)订单费用(订单编号,运费,税费,管理费,其他费用)职工(工号,姓名,岗位,密码)第7章 系统设计 特别注意特别注意2:如果处理两个关系及其关联约束所付出的代价超如果处理两个关系及其关联约束所付出的代价
21、超过了避免异常所带来的好处,则不推荐使用规范化。过了避免异常所带来的好处,则不推荐使用规范化。称之为称之为反规范化反规范化。但是,反规范化必须在规范化的前。但是,反规范化必须在规范化的前提下进行,否则将是盲目的。提下进行,否则将是盲目的。第7章 系统设计四四 物理设计物理设计第7章 系统设计 4.1 数据库物理设计的概念数据库物理设计的概念 数据库物理设计是在已确定的逻辑数据库结构基础数据库物理设计是在已确定的逻辑数据库结构基础上,设计出在限定应用环境下,具有高效率、可实现的上,设计出在限定应用环境下,具有高效率、可实现的物理数据库结构的过程。物理设计还应该考虑操作约束、物理数据库结构的过程。
22、物理设计还应该考虑操作约束、数据库性能和数据安全性等问题。数据库性能和数据安全性等问题。物理设计首先需要考虑数据库的物理环境,包括所物理设计首先需要考虑数据库的物理环境,包括所选择的选择的DBMSDBMS、数据存取设备、存储组织和存取方法,设、数据存取设备、存储组织和存取方法,设备分布等因素。备分布等因素。第7章 系统设计 4.2 物理设计的物理设计的 基本工作基本工作 (1)表设计表设计 表表(Table):是关系在是关系在DBMSDBMS中的描述形式,具有中的描述形式,具有二维结构。表与关系是一一对应的,逻辑模型中的一二维结构。表与关系是一一对应的,逻辑模型中的一个关系在个关系在DBMSD
23、BMS中应该有一张对应的表。中应该有一张对应的表。表设计:表设计:是将逻辑模型中的关系转化成具体的是将逻辑模型中的关系转化成具体的DBMSDBMS中的表。表设计需要定义表名和表结构。表的名中的表。表设计需要定义表名和表结构。表的名字一般就取关系的名字。表的结构需要确定一个表中字一般就取关系的名字。表的结构需要确定一个表中的字段,包括每一个字段的名称、类型、长度等的字段,包括每一个字段的名称、类型、长度等。第7章 系统设计案例分析案例分析 第7章 系统设计五五 数据库安全性设计数据库安全性设计第7章 系统设计 5.1 数据库安全性设计的等级数据库安全性设计的等级 用户级用户级 DBMSDBMS级
24、级 数据库应用系统级数据库应用系统级 数据库级数据库级 数据表及记录级数据表及记录级第7章 系统设计5.2 用户级安全性设计用户级安全性设计 通过用户标识与鉴别机制实现用户级安全设计。通过用户标识与鉴别机制实现用户级安全设计。例如:例如:第7章 系统设计 5.3 DBMS安全性设计安全性设计 通过存取控制的通过存取控制的安全矩阵安全矩阵来实现数据库存取安全来实现数据库存取安全性设计。性设计。选择选择S插入插入I修改修改U删除删除D执行执行E引用引用R数据表数据表1 数据表数据表n 视图视图1 视图视图n 第7章 系统设计六六 RoseRose的数据库设计的数据库设计第7章 系统设计 1 1 建
25、立完整的业务对象模型建立完整的业务对象模型 第7章 系统设计 2 2 完善业务对象模型中各个类的属性完善业务对象模型中各个类的属性 第7章 系统设计 3 类的持久化类的持久化 第7章 系统设计 4 设置类的主键设置类的主键 第7章 系统设计 5 5 在组件视图中建立数据库在组件视图中建立数据库 第7章 系统设计 6 6 选择数据库管理系统选择数据库管理系统 第7章 系统设计 7 7 生成数据模型生成数据模型 1)1)启动启动第7章 系统设计 2)2)选择目标数据库选择目标数据库 7 7 生成数据模型生成数据模型 第7章 系统设计 8 8 建立数据模型图建立数据模型图 1)1)启动启动 第7章 系统设计 2)2)编辑数据模型图编辑数据模型图 8 8 建立数据模型图建立数据模型图 第7章 系统设计数据列索引键约束触发器关系检查约束 3)3)再设计表再设计表 8 8 建立数据模型图建立数据模型图 第7章 系统设计 9 9 生成数据库生成数据库 1)正向工程正向工程第7章 系统设计2)继续继续第7章 系统设计3)选择项目选择项目第7章 系统设计4)文件名文件名第7章 系统设计5)完成完成第7章 系统设计结果