数据库系统概论 第七章ppt课件.ppt
第七章 数据库设计,数据库设计概述需求分析概念结构设计逻辑结构设计数据库的物理设计数据库的实施和维护,数据库设计定义广义:是数据库及其应用系统的设计狭义: 设计数据库本身一般定义:是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。,数据库建设基本规律 三分技术、七分管理和十二分基础数据数据库设计应该与应用系统设计相结合 结构(数据)设计:设计数据库框架或数据库结构 行为(处理)设计:设计应用程序、事务处理等,7.1.1 数据库设计的特点,7.1 数据库设计概述,7.1.2 数据库设计的方法,手工与经验相结合的方法 规范设计法:如新奥尔良方法,将数据库设计分为若干阶段,并采用一些辅助手段实现每一过程。 基于E-R模型的设计方法:用E-R模型设计数据库的概念模型 3NF的设计方法:用关系理论指导设计数据库的逻辑模型 ODL方法:用面向对象方法设计数据库结构,7.1.3 数据库设计的基本步骤,一、数据库设计的准备工作,参加数据库设计的人员: 1) 数据库分析设计人员 ,其水平决定了数据库系统的质量 (1) 数据库设计的核心人员 (2) 自始至终参与数据库的设计 2) 管理员和用户 (1) 参与需求分析 (2) 参与数据库的运行维护 3) 程序员和操作员 ,在系统实施阶段参与进来 (1) 负责编制程序 (2) 准备软硬件环境,1) 需求分析 综合各个用户的应用需求,是整个设计过程的基础; 2) 概念结构设计 通过对用户需求进行综合、归纳与抽象,形成独立于机器特点,独立于各个DBMS产品的概念模式;3) 逻辑结构设计 将概念结构转换成具体的数据库产品支持的数据模型,并对其模型进行优化,形成数据库逻辑模式;,二、数据库设计的阶段,需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行维护,4) 数据库物理设计 -为逻辑数据模型选取合适的物理结构(包括存储结构和存取方法);5) 数据库实施 -编制与调试应用程序,组织数据入库,并进行试运行;6) 数据库运行维护 -正式运行,并不断对其进行评价、调整和修改。,应用要求,应用要求,应用要求,应用要求,应用1,应用2,应用3,应用4,综合,概念模式,逻辑模式,内模式,转换,转换,外模式,外模式,外模式,外模式,应用1,应用2,应用3,应用4,7.1.4 数据库各级模式的形成过程,映像,7.2 需求分析,1 详细调查现实世界要处理的对象 2 充分了解原系统的工作概况 3 明确用户的各种需求 4 确定新系统的功能 5 考虑今后的扩充性,7.2.1. 需求分析的任务,需求分析的难点:,用户缺少计算机知识,无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。 设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。 新的硬件、软件技术的出现也会使用户需求发生变化。,-与用户不断深入地进行交流,才能逐步得以确定用户的实际需求,解决方法:,熟悉 业务 活动,明确 用户 需求,确定 系统 边界,分析 系统 功能,分析 系统 数据,编写 分析 报告,调查 机构 情况,数据 字典 DD,数据 流图 DFD,数据库 设计 人员和用户,功能模块图,一、需求分析的步骤,7.2.2 需求分析的方法,二、需求分析的方法,结构化分析方法(SA) :是从最上层的系统组织机构入手,采用自顶向下,逐层分解的方式分析系统,并用数据流图和数据字典描述系统。 SA方法把任何一个系统抽象为如下形式。,三、数据流图(DFD, Data Flow Diagram),描述数据在系统中流动和变换的过程,表达了数据和处理过程的关系;以图形的方式刻画数据从输入到输出的移动变换过程; 数据流程分析的主要工具;系统分析人员与用户进行交流的手段和系统设计的主要依据之一,基本组成: 外部项:各种实体。数据处理逻辑:描述系统对信息进行处理的逻辑功能。数据存储:逻辑意义上的数据存储环节数据流:数据结构在系统内的传输路径。,课程管理的数据流图,7.2.3 数据字典,一、数据字典的用途 数据字典是各类数据描述的集合,数据收集和数据分析所获得的主要结果;它所描述的对象都包含于数据流图中,是对数据说明,而不是数据本身; 它是一个动态文件,在数据库开发过程中不断的更新。,二、数据字典的组成: 数据项 数据结构 数据流 数据存储 处理过程,(1) 数据项 是不可再分的数据单位; 数据项描述数据项名,数据项含义说明,别名, 数据类型,长度,取值范围,取值含义, 与其他数据项的逻辑关系,数据项: 以“学号”为例 数据项:学号 含义说明:唯一标识每个学生 别名:学生编号 类型:字符型 长度: 8 取值范围:00000000至99999999 取值含义:前两位表示该学生所在年级,后六位按顺序编号,(2) 数据结构一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。 数据结构描述数据结构名,含义说明, 组成:数据项或数据结构,数据结构 : 以“学生”为例 数据结构:学生 含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息 组成:学号,姓名,性别,年龄,所在系,年级,(3) 数据流 数据流是数据结构在系统内传输的路径。 数据流描述数据流名,说明,数据流来源, 数据流去向,组成:数据结构, 平均流量,高峰期流量,数据流: “体检结果”可如下描述: 数据流:体检结果 说明:学生参加体格检查的最终结果 数据流来源:体检 数据流去向:批准 组成:平均流量:高峰期流量:,(4) 数据存储 数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一 数据存储描述数据存储名,说明,编号, 流入的数据流 ,流出的数据流 , 组成:数据结构,数据量,存取方式,数据存储:“学生登记表”可如下描述: 数据存储:学生登记表 说明:记录学生的基本情况 流入数据流: 流出数据流: 组成: 数据量:每年3000张 存取方式:随机存取,(5)处理过程 处理过程的具体处理逻辑,一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息 处理过程说明性信息的描述: 处理过程描述处理过程名,说明, 输入:数据流,输出:数据流, 处理:简要说明,处理过程:“分配宿舍”可如下描述: 处理过程:分配宿舍 说明:为所有新生分配学生宿舍 输入:学生,宿舍 输出:宿舍安排 处理:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于3平方米。安排新生宿舍其处理时间应不超过15分钟。,7.3 概念结构设计,7.3.1 概念结构,概念结构设计: 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计.,概念结构设计的重点是信息结构的设计,它独立于逻辑结构设计和DBMS,概念结构设计的特点:(1)能真实、充分地反映现实世界(2)易于理解(3)易于更改(4)易于向关系、网状、层次等各种数据模型转换,描述概念模型的工具: E-R模型,7.3.2 概念结构设计的方法与步骤,设计概念结构的四类方法: 自顶向下 自底向上 逐步扩张 混合策略,常用策略:自底向上 自顶向下地进行需求分析;自底向上地设计概念结构,自底向上设计概念结构的步骤:第1步:抽象数据并设计局部视图;第2步:集成局部视图,得到全局概念结构.,视图集成,抽象 数据设计 局部 视图,分E-R图,总E-R图,一、数据抽象,1. 分类 定义某一类概念作为现实世界中一组对象的类型; 这些对象具有某些共同的特性和行为; 它抽象了对象值和型之间的“is member of”的语义; 在E-R模型中,实体型就是这种抽象.,7.3.3 数据抽象与局部视图设计,2. 聚集 定义某一类型的组成成分; 它抽象了对象内部类型和成分之间“is part of”的语义; 在E-R模型中若干属性的聚集组成了实体型,就是这种抽象。,3. 概括 定义类型之间的一种子集联系 它抽象了类型之间的“is subset of”的语义 概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。,二、局部视图设计,1)选择局部应用 选择一个适当层次的数据流图,图中每一部分对应一个局部应用.,2)逐一设计分E-R图 标定局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型,并进行必要的调整。,设计分E-R图的具体步骤:,课程管理局部应用分E-R图 在课程管理局部应用中主要涉及实体的属性: 学生:姓名,学号,性别,年龄,所在系,年级,平均成绩 课程:课程号,课程名,学分 教师:职工号,姓名,性别,职称 教科书:书号,书名,价钱 教室:教室编号,地址,容量,班级,开设,选修,讲授,教室编号,姓名,书号,书名,价钱,职称,性别,年龄,课程名,地址,课程号,学分,姓名,职工号,容量,性别,1,1,m,n,1,1,课程管理局部应用的E-R图,n,成绩,教学,m,n,年级,学号,所在系,教室,课程,学生,教科书,教师,平均成绩,7.3.4 视图的集成,(E-R)1,(E-R)n,(E-R)2,初步E-R,基本E-R,(E-R)1,(E-R)2,(E-R)12,(E-R)3,初步E-R,基本E-R,一次集成,逐步集成,视图集成的步骤,(1) 属性冲突讨论、协商等解决 1) 属性域冲突:(1) 属性值的类型; (2) 取值范围 2) 属性取值单位冲突 (2) 命名冲突讨论、协商等解决 1) 同名异义;2) 异名同义 (3) 结构冲突根据应用的语义对实体联系的类型进行综合或调整 1) 同一对象在不同应用中有不同的抽象 2) 同一实体在不同的局部应用中属性组成不同(个数,次序) 3) 同一联系,在不同应用中呈现不同类型,1. 合并分E-R图,解决冲突,生成初步E-R图,实例:命名冲突: 1)学籍管理中的班主任实体与课程管理中的教师实体在一定程度上属于异名同义 .,2)学籍管理中教师与学生之间的指导联系,课程管理中教师与学生之间的教学联系,将这两种联系综合为教学联系。,结构冲突:在两个局部E-R图中,学生实体属性组成及次序都存在差异,应将所有属性综合,并重新调整次序。,冗余的数据:可由基本数据导出 冗余的联系:可由其他联系导出,2. 修改和重构,消除冗余,生成基本E-R图,冗余数据和冗余联系举例:(1) 学生实体中的年龄属性可以由出生日期推算出来,属于冗余数据,应该去掉。 (2) 教室实体与班级实体之间的上课联系可以由教室与课程之间的开设联系、课程与学生之间的选修联系、学生与班级之间的组成联系三者推导出来。(3)学生实体中的平均成绩可从选修联系中的成绩属性中推算出来 ,可消除。,分析方法 以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。,消除冗余的方法,规范化理论 确定分E-R图实体之间的数据依赖,得到函数依赖集F 求函数依赖的最小覆盖集G,计算D=F-G 逐步考察D中的函数依赖,删除冗余的联系,7.4 逻辑结构设计,把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构.,逻辑结构设计,逻辑结构设计步骤,一般数据模型关系、网状、层次,特定的DBMS支持的数据模型,逻辑 模型,基本 E-R图,7.4.1 E-R图向关系模型的转换,1)一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。,转换规则:,学生(学号,姓名,出生日期,所在系,年级,平均成绩),2) 一个1:1联系 可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。,管理(职工号,班级号)或 管理(职工号,班级号) 班级(班级号,学生人数,职工号) 教师(职工号,姓名,性别,职称, 班级号, 是否为优秀班主任),3) 一个1:n联系 可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。,除学生关系、班级关系外,还有组成(学号,班级号) 或合并到:学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩),4)一个m:n联系转换为一个关系模式。 与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或者关系码的一部分。,关系模式: 选修(学号,课程号,成绩),5) 3个或3个以上实体间的一个多元联系转换为一个关系模式 与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或者关系码的一部分。,讲授(课程号,职工号,书号),7)具有相同码的关系模式可合并。 合并方法是将其中一个关系模式的全部属性加入到另一个关系模式中,去掉其中的同义属性,调整属性的次序。,6) 同一实体集的实体间的联系,自联系。可按1:1、1:n、m:n 三种情况分别处理。,优化数据模型的方法:,确定数据依赖;对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系;对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式;分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解;对关系模式进行必要的分解或合并,以提高数据操作的效率和存储空间的利用率。常用分解方法:水平分解;垂直分解,7.4.2 数据模型的优化,7.4.3 设计用户子模式,使用更符合用户习惯的别名;针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。简化用户对系统的使用,定义用户外模式的原则,7.5 数据库物理设计,定义:为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计.,数据库物理设计阶段,确定 数据库的 物理 结构,评价 数据库的 物理 结构,物理 模型,逻辑 模型,7.5.1 数据库物理设计的内容和方法,1. 充分了解应用环境,详细分析要运行的事务,以获得选择物理数据库设计所需参数;,设计物理数据库结构的准备工作,2. 充分了解所用RDBMS的内部特征,特别是系统提供的存取方法和存储结构.,关系数据库物理设计的内容,1. 为关系模式选择存取方法(建立存取路径)2. 设计关系、索引等数据库文件的物理存储结构,7.5.2 关系模式存取方法选择, DBMS常用存取方法: 索引方法 聚簇方法 HASH方法,一、索引存取方法的选择,索引存取方法 对哪些属性列建立索引 对哪些属性列建立组合索引 对哪些索引要设计为唯一索引,2. 选择索引存取方法的一般规则 经常在查询条件中出现的属性 经常作为最大值和最小值等聚集函数的参数的属性 经常在连接操作的连接条件中出现的属性,二、聚簇存取方法的选择,为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚簇。,1. 什么是聚簇,假设学生关系按所在系建有索引,现在要查询信息系的所有学生名单。信息系的500名学生分布在500个不同的物理块上时,至少要执行500次I/O操作。如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数。,2. 聚簇索引的优点举例:,A 设计候选聚簇对经常在一起进行连接操作的关系可以建立组合聚簇;对经常出现在相等比较条件中的属性建立聚簇索引;对一个(或一组)属性上的值重复率很高的属性可建立聚簇。,3. 选择聚簇存取方法,B 检查候选聚簇中的关系,取消其中不必要的关系从独立聚簇中删除经常进行全表扫描的关系;从独立/组合聚簇中删除更新操作远多于查询操作的关系;从独立/组合聚簇中删除重复出现的关系。,三、HASH存取方法的选择,如果一个关系的属性主要出现在等值连接条件中或相等比较选择条件中。而且满足下列两个条件之一,则此关系可以选择HASH存取方法:(1)如果一个关系的大小可以预知,而且不变;(2)如果关系的大小可以动态改变,而且数据库管理系统提供了动态HASH存取方法.,选择HASH存取方法的规则:,确定数据的存放位置 根据应用情况将易变部分与稳定部分、存取频率较高部分与存取频率较低部分分开存放,以提高系统性能;2. 确定系统配置 DBMS提供了一些系统配置变量,存储分配参数,共设计人员和DBA对数据库进行优化。出事情况下这些变量都被赋予了合理的默认值,但这些值不一定适合每种应用,在物理设计时,要重新对这些变量赋值,以改善系统的性能。,7.5.3 确定数据库的存储结构,7.5.4 评价物理结构,1. 评价内容对数据库物理设计过程中产生的多种方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构,2. 评价方法 定量估算各种方案:存储空间存取时间维护代价 对估算结果进行权衡、比较,选择出一个较优的合理的物理结构 如果该结构不符合用户需求,则需要修改设计,定义 数据库 结构,数据装载,数据库 系统,物理 模型,编写应用程序,数据库 试运行,7.6 数据库实施与维护,系统需求分析阶段,概念结构设计阶段,逻辑结构设计阶段,物理结构设计阶段,数据库实施阶段,数据库使用维护阶段,运行、维护数据库,数据入库,编制应用程序,将E-R图转换成具体关系模式;建立逻辑模型、用户视图,综合各个用户的应用需求,形成独立于DBMS的概念模型,用E-R图描述,安排物理存储,设计索引,一、设计数据库应用系统的六个阶段,7.7 本章小结,应用要求,应用要求,概念模式,逻辑模式,存储模式,应用要求,综 合,转 换,转 换,外模式,外模式,外模式,应用1,应用2,应用3,映象,应用1,应用2,应用3,机器世界模型,信息世界模型,现实世界,二、数据库各级模式的形成过程,本章重点,1 掌握数据库设计步骤;2 掌握数据字典的5个组成部分,理解各个部分的含义及功能;3 概念结构的设计 数据的三种抽象 概念模型的设计过程, 重点掌握E_R模型4 逻辑结构的设计 重点掌握E-R图向逻辑模型的转换,课后习题:18,19,