290 likes | 424 Views
数据库设计. 数据库系统设计包括数据库设计与数据库应用系统设计,对应需要建立数据模型与功能模型。. 重点 : 数据库设计步骤、关键、任务、结果等概念与知识 建立 E-R 图(根据具体语义) 把 E-R 图 转换为关系模式. 数据库设计方法介绍 规范设计方法:运用软件工程的思想和方法,给出了各种设计遵则和规程的数据库设计方法称为规范设计方法。. 1 、新奥尔良( New Orleans )法。数据库系统设计分为四个阶段: ( 1 )、需求分析 —— 分析用户需求。 ( 2 )、概念结构设计 —— 进行信息分析和定义。
E N D
数据库设计 数据库系统设计包括数据库设计与数据库应用系统设计,对应需要建立数据模型与功能模型。 重点 : 数据库设计步骤、关键、任务、结果等概念与知识 建立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密切相关。任务:为已经确定的逻辑结构选取一个最适合应用环境的物理结构,包括确定数据库在物理设备上的存储结构,选择存取方法,设计索引和入口,并进行有关安全性、完整性、一致性的设计和应用设计。这个阶段的工作与具体的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的联系外,还有同一实体集内部的二元联系,三个或三个以上的实体集的多元联系。以上例子是两个实体之间的E-R图。现实世界的复杂性导致了实体联系的复杂性,表现在E-R图上除了上面两个实体集之间的1:1、1:n和m:n的联系外,还有同一实体集内部的二元联系,三个或三个以上的实体集的多元联系。 同一个实体集之间的联系: 比如说职工实体集中的领导与被领导的联系是1:n的,而职工实体集中的婚姻联系是1:1的,零件之间存在着m:n的组合关系。这些关系的体现如下图: 职工 职工 零件 n m n 1 1 n 领导 婚姻 组成
商店 零件 服务 组成 顾客 厂家 服务员 产品 三个实体集之间的联系: 一个商店允许有多位顾客,每位顾客有多位服务员为其服务,一位服务员只能服务于一家商店,因此商店、顾客和服务员之间的联系就可以用1:n:m来表示。一个厂家可以提供给多个产品多个零件,而每个产品可以使用多个厂家提供的零件,每个零件可以由不同的供应商供给,因此可以看出厂家、产品和零件之间是m:n:p的多对多联系。 这两种关系的联系如下图: 1 m n 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 SC C SNAME AGE SEX S﹟ GRADE TEACHER C﹟ CNAME ③ 设学生S和课程C之间的联系是m:n,其ER图如下,各个属性分别表示的含义为:S﹟学号,SNAME学生姓名,AGE年龄,SEX性别,C﹟课程号,CNAME课程名称,TESCHER任课教师,GRADE成绩。转换时先将两个实体类型转换成两个关系模式,然后将m:n联系也转换成关系模式,其属性为两端实体的标识符和联系类型,即形成下面三个模式: S(S﹟,SNAME,AGE,SEX) C(C﹟,CNAME,TESCHER) SC(S﹟,C﹟,GRADE)
[例2]三元联系类型的转换 不管联系类型是何种方法,总是将三元联系类型或 者多元联系类型转换成关系模式,其属性为各实体类 型的码加上联系类型的属性,而码为各实体码的组 合。 有三个实体:供应商、项目和零件,其中各实体的 属性如下: 供应商(供应商号,姓名,城市) 项目(项目号,项目名称,城市) 零件(零件号,零件名称,零件颜色,零件数目)
sno sname city 供应商 Weight jno SCW 日期 日期 color pno pname 零件 jname city 因为一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商提供的零件,每种零件可以由不同的供应商供给,因此可以看出供应商、项目和零件之间是m:n:p的多对多联系,供应的一个属性是日期。其ER图如下, m n p
根据规则可以转换成如下的四个关系模式: 供应商(供应商号,姓名,城市) 项目(项目号,项目名称,城市) 零件(零件号,零件名称,零件颜色,零件数目) 供应(供应商,号项目,号零件号,日期)
四、数据模型的优化 数据库设计的结果不是惟一确定的。为了进一步提高数据库 应用系统的性能,还应该适当地修改、调整数据模型的结构, 这就是数据模型的优化。具体的优化步骤如下: • 确定数据依赖。 • 对各个关系模式之间的数据依赖进行极小化处理,消除冗余联系。 • 确定关系模式分别属于第几范式。 • 分析模式是否适用于应用环境,从而确定是否要对某些模式进行分解和合并。必须注意的是,并不是规范化程度越高的关系就越好。就一般而言,规范达到第三范式就足够了。 • 对关系模式进行必要的分解,提高数据操作效率和存储空间的利用率。
五、设计视图 将概念模型转换为逻辑数据模型后,还应该根据局 部应用的需求,并结合具体的数据库管理系统的特 点,设计用户的外模式,即视图。 定义视图时可以考虑以下因素: (1)、使用更符合用户习惯的别名。 (2)、可以对不同级别的用户定义不同的视图,以保证系统的安全性。 (3)、简化用户对系统的使用。如将一些复杂的查询定义成视图。