数据库物理设计

Download Report

Transcript 数据库物理设计

数据库设计
数据库系统设计包括数据库设计与数据库应用系统设
计,对应需要建立数据模型与功能模型。
重点 :
数据库设计步骤、关键、任务、结果等概念与知识
建立E-R图(根据具体语义)
把E-R图转换为关系模式
数据库设计方法介绍
规范设计方法:运用软件工程的思想和方法,给出了各
种设计遵则和规程的数据库设计方法称为规范设计方法。
1、新奥尔良(New Orleans)法。数据库系统设计分
为四个阶段:
(1)、需求分析——分析用户需求。
(2)、概念结构设计——进行信息分析和定义。
(3)、逻辑结构设计——进行逻辑结构设计。
(4)、物理设计——进行物理结构设计。
2、规范设计法。数据库系统设计分为六个阶段:
(1)、需求分析
(2)、概念结构设计
(3)、逻辑结构设计
(4)、数据库物理设计
(5)、数据库系统实施
(6)、数据库系统运行和维护
一、数据库设计概述
1、数据库设计的目标
针对具体应用环境,建立一个合适的数据库模式。
2、数据库设计的内容
数据库的结构特性设计(逻辑结构设计)
数据库的行为特性设计(设计子模式)
数据库的物理模式设计(存储模式、存取方法)
3、数据库设计的特点
硬件、软件、干件(技术与管理的界面)的结合。
结构(数据)设计和行为(处理)设计密切结合。
4、数据库设计方法
手工试凑法
规范设计法
数据库设计工具与CASE工具
5、数据库设计步骤(阶段)
需求分析
概念设计
逻辑设计
物理设计
数据库实施
运行与维护
二、需求分析
任务:调查处理对象,了解现行系统概况,收集基础数
据,明确用户对将要建立的数据库的信息需求和处理需求
(数据需求、加工要求、完整性、一改要求、性能要求
等)。
方法:分析和表达用户需求常采用的方法自顶向下和自
底向上两类方法,其中最为实用的是自顶向下的结构化分
析(Structured Analysis,简称SA)方法。
结果:形成系统需求说明书,包括数据字典框架、数据
流图、系统功能框图及其说明,它将作为数据库设计全过
程的重要依据。数据字典包括数据项、数据结构、数据流、
数据存储和处理过程。
三、概念结构设计
任务:产生反映组织需求的数据库概念模型,它独立
于数据库逻辑结构,独立于具体的DBMS。
方法:自顶向下、自底向上、逐步扩张和混合策略。
工具:E-R图。
步骤:数据抽象→局部概念模式→全局概念模式→概
念模式评价和改进。
结果:完成局部概念模式描述(局部E-R图)和全局概
念模式描述(全局E-R图),提交修改后的数据清单和业
务活动清单。
四、逻辑结构设计
任务:把概念模型转换为与选用的DBMS所支持的数
据模型相符合的基本数据结构,即从概念模型导出特
定DBMS可处理的数据库逻辑结构(包括模式和子模
式)。
步骤:将E-R图转换为数据模型→数据模型优化→设
计用户子模式。
结果:形成逻辑结构说明书,包括应用设计指南、物
理设计指南、关系模式及子模式集合及其相关说明
(访问方式、查询路径、处理要求、约束条件和数据
传输量)。
E-R图向关系模型转换
(1)一个实体型转换为一个关系模式
实体的属性就是关系的属性,实体的码就是关系的码。
(2)一个联系转换为一个关系模式
与联系相连的各个实体的码及联系的属性转换为关系的属性,
关系的码则根据联系类型来确定。
1:1联系,每个实体的码均是该关系的码
1:n联系, n端实体的码是关系的码
m:n联系,m端实体的码与n端实体的码的组合构成关系的码
多元联系,各实体码的组合为关系的码
(3)具有相同码的关系可合并
五、物理设计
1、物理设计通常分为两步
(1)确定数据库的物理结构(物理设
备上的存取方法和存储结构)
(2)对物理结构进行评价
2、常见的存取方法
索引方法(B+数索引);聚簇(Cluster)
方法;HASH方法
3、存储结构具体包括:关系、索引、聚簇、
日志、备份等的存储结构;
任务:为已经确定的逻辑结构选取一个最适合应用
环境的物理结构,包括确定数据库在物理设备上的存储
结构,选择存取方法,设计索引和入口,并进行有关安
全性、完整性、一致性的设计和应用设计。这个阶段的
工作与具体的DBMS密切相关。
步骤:存储格式设计→存储方法设计→访问方法设
计→完整性、安全性设计→应用设计→评价物理设计。
结果:形成物理设计说明书,说明书中包括存储格
式、存储位置、访问方法、交互界面和输入/输出格式
说明。
六、数据库的实施
数据库实施阶段的两项重要工作
1)数据的载入
2)应用程序的编码和调试
任务:根据逻辑设计和物理设计,在计算机上建立数
据库并完成其应用开发,装入数据,进行测试和试运
行。另外,还要借助DBMS提供的手段设计故障恢复方
案。
步骤:定义数据库结构→数据装载→编制、试调应用
程序→数据库试运行。
结果:初步完成实际的数据库应用系统。
7、数据库系统运行和维护
任务:数据库的转储和恢复,数据库的安全性和完
整性控制,监测并改善数据库的性能。如果需要,进
行数据库的重组和重构,扩充数据库的功能,改正运
行时发现的错误。数据库维护工作又分为日常维护、
定期维护和故障维护几种。
结果:开发任务基本完成,交付一个软件系统和技
术文档。技术文档包括系统说明书、技术说明书和使
用说明书。
E-R图向关系模型的转换
1、E-R图简介
E-R图有三个基本成分:
a、矩形框,用于表示实体类型;
b、菱形框,用于表示联系类型;
c、椭圆型框,用于表示实体类型和联系类型的属性。
相应的命名均记入个框中。对于是关键字的属性,在属性名
下画一条横线。实体与属性之间,联系和属性之间用直线连
接;联系类型与其实体类型之间也以直线连接,用来表示他们
之间的联系,并在直线端部标注联系的类型。
两个实体集之间的联系类型可分为三类:
(1)、一对一的联系(1:1)
如果实体A中的每一个实例在实体B中至多有一个实例与之相
关联,则称实体A与实体B具有一对一的联系,记为1:1。例
如,部门和经理之间的联系(假设一个部门只有一个经理)、
工厂和厂长之间,如下图:
工厂
经理
1
1
领导
1
厂长
管理
1
部门
(2)、一对多的联系(1:n)
如果实体A中的每一个实例在实体B中有n个实例与之相
关联,而实体B中的每个实例在实体A中最多只有一个实例
与之相关联,则称实体A与实体B是一对多的联系,记为1:
n。例如,班级和学生。如下图:
班级
1
属于
n
学生
(3)、多对多的联系(m:n)
如果实体A中的每一个实例在实体B中有n个实例与之相关联,
而实体B中的每个实例在实体A中有m个实例与之相关联,则称
实体A与实体B是一对多的联系,记为m:n。例如,学生实体
具有学号、姓名、专业、班级等属性;教师实体有职号、姓名、
性别、职称等属性,他们之间的联系类型为m:n,E-R图描述
如下:
职号
学号
姓名
老
师
m
教
n
学
生
姓名
性别
职称
专业
班级
以上例子是两个实体之间的E-R图。现实世界的复杂性导致了
实体联系的复杂性,表现在E-R图上除了上面两个实体集之间
的1:1、1:n和m:n的联系外,还有同一实体集内部的二元
联系,三个或三个以上的实体集的多元联系。
同一个实体集之间的联系:
比如说职工实体集中的领导与被领导的联系是1:n的,而职
工实体集中的婚姻联系是1:1的,零件之间存在着m:n的组合
关系。这些关系的体现如下图:
职工
职工
n
1
领
导
1
零件
n
婚
姻
m
n
组
成
三个实体集之间的联系:
一个商店允许有多位顾客,每位顾客有多位服务员为其服
务,一位服务员只能服务于一家商店,因此商店、顾客和服务
员之间的联系就可以用1:n:m来表示。一个厂家可以提供给
多个产品多个零件,而每个产品可以使用多个厂家提供的零件,
每个零件可以由不同的供应商供给,因此可以看出厂家、产品
和零件之间是m:n:p的多对多联系。
这两种关系的联系如下图:
n
顾客
商店
零件
1
m
服
务
m
服务员
n
厂家
组
成
p
产品
2、ER模型向关系模型的转换规则
ER图中的主要成分是实体类型和联系类型,转换规则就是
如何把实体类型、联系类型转换成关系模式。
(1)、实体类型的转换。
将每个实体类型转换成一个关系模式,实体的属性即为关
系模式的属性,实体标识符即为关系的码。如下图,转换成关
系模式为:教师(教师号,姓名,出生年月)。
教师
教师号
姓名
出生年
月
(2)、联系类型的转换:
①、若实体间联系是1:1,可以在两个实体类型转换
成的两个关系模型中任意一个关系模式的属性中加入另
一个关系模式的码(作为外码)和联系类型的属性。
②、若实体间联系是1:n,则在n端实体类型转换成的
关系模型中加入1端实体类型的码(作为外码)和联系类
型的属性。
③、若实体间联系是m:n,则将联系类型也转换成关
系模式,其属性为两端实体类型的码加上联系类型的属
性,而其码为两端实体码的组合。
[例1] 下面对二元联系的1:1,1:n,m:n三种情况分别
举例。
① 设教育系统中学校和校长有1:1的联系,其ER图如下,在
其转化过程中,学校和校长各为一个关系模式。
地址
校名
电话
学校
任
职
任职年月
校长
姓名
职称
性别
年龄
如果常用的查询是从学校查询其校长,那么在学校模
式中加入校长名和任职年月,其关系模式设计如下:
学校(校名,地址,电话,校长名,任职年月)
校长(姓名,性别,年龄,职称)
如果常用的查询是从校长查询学校,那么在校长的模
式中加入学校名和任职年月,其关系模式设计如下:
校长(姓名,性别,年龄,职称,学校名,任职年月)
学校(校名,地址,电话)
② 设车间与职工之间是1:n的联系,其ER图如下,在
其转化的过程中,先将两个实体类型转换成两个关系模
式,然后在职工中加入车间号和聘期两个属性,形成下
面的关系模式:
车间(车间号,车间名,电话)
职工(工号,姓名,性别,年龄,车间号,聘期)
地址名
车间号
电话
车间
工
作
聘期
职工
工号
年龄
姓名
性别
③ 设学生S和课程C之间的联系是m:n,其ER图如下,各个属
性分别表示的含义为:S﹟学号,SNAME学生姓名,AGE年龄,
SEX性别,C﹟课程号,CNAME课程名称,TESCHER任课教师,
GRADE成绩。转换时先将两个实体类型转换成两个关系模式,
然后将m:n联系也转换成关系模式,其属性为两端实体的标识
符和联系类型,即形成下面三个模式:
SNAME
AGE
SEX
S﹟
S
S(S﹟,SNAME,AGE,SEX)
C(C﹟,CNAME,TESCHER)
SC(S﹟,C﹟,GRADE)
SC
GRADE
C
C﹟
CNAME
TEACHER
[例2]三元联系类型的转换
不管联系类型是何种方法,总是将三元联系类型或
者多元联系类型转换成关系模式,其属性为各实体类
型的码加上联系类型的属性,而码为各实体码的组
合。
有三个实体:供应商、项目和零件,其中各实体的
属性如下:
供应商(供应商号,姓名,城市)
项目(项目号,项目名称,城市)
零件(零件号,零件名称,零件颜色,零件数目)
因为一个供应商可以供给多个项目多种零件,而每个项目可
以使用多个供应商提供的零件,每种零件可以由不同的供应商
供给,因此可以看出供应商、项目和零件之间是m:n:p的多对
多联系,供应的一个属性是日期。其ER图如下,
sno
sname
city
供应商
m
SCW
n
jno
日期
jname
p
零件
日期
city
pno
Weight
color
pname
根据规则可以转换成如下的四个关系模式:
供应商(供应商号,姓名,城市)
项目(项目号,项目名称,城市)
零件(零件号,零件名称,零件颜色,零件数目)
供应(供应商,号项目,号零件号,日期)
四、数据模型的优化
数据库设计的结果不是惟一确定的。为了进一步提高数据库
应用系统的性能,还应该适当地修改、调整数据模型的结构,
这就是数据模型的优化。具体的优化步骤如下:
►
确定数据依赖。
►
对各个关系模式之间的数据依赖进行极小化处理,消除冗
余联系。
►
确定关系模式分别属于第几范式。
►
分析模式是否适用于应用环境,从而确定是否要对某些模
式进行分解和合并。必须注意的是,并不是规范化程度越高
的关系就越好。就一般而言,规范达到第三范式就足够了。
►
对关系模式进行必要的分解,提高数据操作效率和存储空
间的利用率。
五、设计视图
将概念模型转换为逻辑数据模型后,还应该根据局
部应用的需求,并结合具体的数据库管理系统的特
点,设计用户的外模式,即视图。
定义视图时可以考虑以下因素:
(1)、使用更符合用户习惯的别名。
(2)、可以对不同级别的用户定义不同的视图,以
保证系统的安全性。
(3)、简化用户对系统的使用。如将一些复杂的查
询定义成视图。