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