《数据库第7章数据库设计.ppt》由会员分享,可在线阅读,更多相关《数据库第7章数据库设计.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/5/20 兰彬制作 1第七章 数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 数据库的物理设计7.6 数据库实施7.7 数据库运行与维护2023/5/20 兰彬制作 27.1 数据库设计概述7.1.1 数据库和信息系统7.1.2 数据库设计的特点7.1.3 数据库设计方法简述7.1.4 数据库设计的基本步骤2023/5/20 兰彬制作 37.1 数据库设计概述|数据库设计F 是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。|数据库设计通常在一
2、个通用的DBMS 支持下进行。|在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。2023/5/20 兰彬制作 47.1.1 数据库和信息系统|信息系统:是提供信息,辅助人们对环境进行控制和进行决策的系统。|数据库是信息系统的核心和基础|数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在|数据库设计是信息系统开发和建设的重要组成部分2023/5/20 兰彬制作 5数据库设计要具备的技术和知识|计算机科学的基础知识和程序设计的方法和技巧|数据库的基本知识和数据库设计技术|软件工程的原理和方法|应用领域的知识2023/5/20 兰彬制作 67.1.2 数据库设计的特
3、点|数据库建设是硬件、软件和干件的结合F 硬件:计算机硬件,存储数据的设备F 软件:OS,DBMS,应用程序F 干件:设计、管理技术,可视化界面|数据库设计应该与应用系统设计相结合F 结构(数据)设计:设计数据库框架或数据库结构F 行为(处理)设计:设计应用程序、事务处理等2023/5/20 兰彬制作 77.1.3 数据库设计方法简述|手工试凑法|规范设计法:过程迭代和逐步求精|计算机辅助设计 ORACLE Design2000新奥尔良方法:需求分析,概念设计,逻辑设计,物理设计S.B.Yao 方法;I.R.Palmer 方法2023/5/20 兰彬制作 87.1.4 数据库设计的基本步骤一、
4、数据库设计的准备工作 选定参加设计的人员1.数据库分析设计人员2.用户和数据库管理员3.程序员2023/5/20 兰彬制作 9数据库设计的基本步骤(续)二、数据库设计的6个基本步骤:1.需求分析阶段2.概念结构设计阶段3.逻辑结构设计阶段4.数据库物理设计阶段5.数据库实施阶段6.数据库运行和维护阶段2023/5/20 兰彬制作 10第七章 数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 数据库的物理设计7.6 数据库实施7.7 数据库运行与维护2023/5/20 兰彬制作 1 17.2 需求分析7.2.1 需求分析的任务7.2.2 需求分析的方
5、法7.2.3 数据字典2023/5/20 兰彬制作 12一、需求分析的任务|对数据库系统的使用情况进行全面的、详细的调查,充分了解原系统(手工系统或计算机系统)的工作概况,明确用户的各种需求,并把这些需求写成用户和数据库设计者都能够接受的文档,作为数据库设计的依据。|在此基础上确定新系统的功能,新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。2023/5/20 兰彬制作 13二、需求分析的重点需求分析的重点了解用户对以下方面的要求:|信息要求在数据库中需要存储哪些数据|处理要求 系统需要具备哪些功能,对处理响应时间的要求,对处理方式的要求|安全性与完整性要求2023
6、/5/20 兰彬制作 14三、需求分析的难点|确定用户最终需求的难点F 用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。F 设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。F 新的硬件、软件技术的出现也会使用户需求发生变化。2023/5/20 兰彬制作 15需求分析的难点(续)|解决方法F 设计人员必须采用有效的方法,与用户不断深入地进行交流,才能逐步了解并确定用户的实际需求2023/5/20 兰彬制作 167.2.2 需求分析的方法 以学生成绩管理系统为例,需要进行如下的需求分
7、析:F 了解该学校有哪些学院,各学院有哪些年级和班级,各班有多少学生,学生都选修了哪些课程,课程的学分等等;F 了解成绩管理的情况;F 确定哪些功能由计算机完成,哪些功能由人工来完成。了解了用户需求后,还要进一步分析和表达出用户需求。2023/5/20 兰彬制作 177.2.2 需求分析的方法分析和表达用户的需求的常用方法:结构化分析方法SAF 基本思想:自顶向下,逐步细化F 从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并用数据流图和数据字典描述系统。2023/5/20 兰彬制作 187.2.2 需求分析的方法实例:要开发一个学生成绩管理系统1经过可行性分析和初步需求调查得出,该成
8、绩管理系统主要有成绩录入模块、成绩查询模块、成绩修改模块等组成;2进一步细化各个模块 对于成绩录入模块,要考虑到:由谁来录入成绩,成绩是从哪里得到的,录入后成绩存放到哪里等。对于成绩查询模块,要考虑:谁来查询成绩,给查询者分配哪些权限(读/写权限),查询时使用什么算法(顺序查找/折半查找)2023/5/20 兰彬制作 197.2.3 数据字典一、数据字典的用途|数据字典是各类数据描述的集合|数据字典是进行详细的数据收集和数据分析所获得的主要结果|数据字典在数据库设计中占有很重要的地位2023/5/20 兰彬制作 20二、数据字典的内容|数据字典的内容F 数据项数据的最小组成单位,不可再分F 数
9、据结构若干数据项组成一个数据结构F 数据流F 数据存储F 处理过程 2023/5/20 兰彬制作 21 数据项|数据项是不可再分的数据单位|对数据项的描述数据项描述数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系F 取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件2023/5/20 兰彬制作 22数据项举例例:学生学籍管理系统的数据字典。数据项,以“学号”为例:数据项名:学号 含义说明:唯一标识每个学生别名:学生编号 类型:字符型 长度:8个字符 取值范围:00000000至99999999取值含义:前两位标别该学生所在年级
10、,后七位按顺序编号与其他数据项的逻辑关系:2023/5/20 兰彬制作 23 数据结构|数据结构反映了数据之间的组合关系。|一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。|对数据结构的描述数据结构描述数据结构名,含义说明,组成:数据项或数据结构2023/5/20 兰彬制作 24数据结构举例|数据结构 以“学生”为例“学生”是该系统中的一个核心数据结构:学生(学号,姓名,性别,年龄,所在系,年级)数据结构名:学生 含 义 说 明:是学籍管理系统的主体数据结 构,定义了一个学生的有关信息 组 成:学号,姓名,性别,年龄,所在系,年级 2023/
11、5/20 兰彬制作 25 数据流|数据流是数据结构在系统内传输的路径。|对数据流的描述数据流描述数据流名,说明,数据流来源,数据流去向,组成:数据结构,平均流量,高峰期流量F 数据流来源是说明该数据流来自哪个过程F 数据流去向是说明该数据流将到哪个过程去F 平均流量是指在单位时间(每天、每周、每月等)里的传输次数F 高峰期流量则是指在高峰时期的数据流量2023/5/20 兰彬制作 26数据流举例数据流“体检结果”可如下描述:数据流名:体检结果 说 明:学生参加体格检查的最终结果 数据流来源:体检 数据流去向:批准(批准该学生能否入学)组成:平均流量:高峰期流量:2023/5/20 兰彬制作 2
12、7 数据存储|数据存储是保存数据的地方,也是数据流的来源和去向之一。它可以是存放数据的手工文档或计算机文件。|对数据存储的描述数据存储描述数据存储名,说明,编号,流入的数据流,流出的数据流,组成:数据结构,数据量,存取频度,存取方式2023/5/20 兰彬制作 28 数据存储F 流入的数据流:指出数据来源F 流出的数据流:指出数据去向F 数据量、存取频度:每次存取多少数据,每天(或每小时、每周等)存取几次等信息F 存取方法:批处理/联机处理;检索/更新;顺序检索/随机检索2023/5/20 兰彬制作 29数据存储举例数据存储“学生登记表”可如下描述:数据存储名:学生登记表 说 明:记录学生的基
13、本情况流入数据流:流出数据流:组成:数据量:每年3000张 存取方式:随机存取 2023/5/20 兰彬制作 30 处理过程|处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息|处理过程说明性信息的描述处理过程描述处理过程名,说明,输入:数据流,输出:数据流,处理:简要说明2023/5/20 兰彬制作 31处理过程举例处理过程“分配宿舍”可如下描述:处理过程名:分配宿舍说 明:为所有新生分配学生宿舍输 入:学生,宿舍输 出:宿舍安排处理说明:在新生报到后,为所有新生分配学 生宿舍。要求同一间宿舍只能安排 同一性别的学生,同一个学生只能 安排在一个宿舍中。
14、每个学生的居 住面积不小于3平方米。安排新生 宿舍其处理时间应不超过15分钟。2023/5/20 兰彬制作 327.3 概念结构设计7.3.1 概念结构设计概述7.3.2 概念结构设计的方法与步骤7.3.3 数据抽象与局部视图设计7.3.4 视图的集成2023/5/20 兰彬制作 337.3.1 概念结构|什么是概念结构设计F 需求分析阶段描述的用户应用需求是现实世界的具体需求F 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计F 概念结构设计是整个数据库设计的关键,它独立于计算机硬件和某一个具体的DBMS|描述概念模型的工具:E-R 模型2023/5/20 兰彬制作 3
15、4概念结构(续)|概念结构设计的特点(1)能真实、充分地反映现实世界(2)易于理解(3)易于修改和扩充(4)易于向各种数据模型转换2023/5/20 兰彬制作 357.3.2 概念结构设计的方法设计概念结构的四类方法F 自顶向下:首先定义全局概念结构的框架,然后逐步细化F 自底向上:首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构F 逐步扩张:首先定义最重要的核心概念结构,然后向外扩充,直至生成总体概念结构F 混合策略:将自顶向下和自底向上相结合2023/5/20 兰彬制作 397.3.3 数据抽象1.分类(Classification)2.聚集(Aggregation)3.
16、概括(Generalization)|(数据)抽象:从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述这些概念组成了某种模型|概念结构是对现实世界的一种抽象|三种常用抽象方法:2023/5/20 兰彬制作 407.3.4 概念结构设计的步骤|首先设计各个局部 E-R 图|然后把各局部 E-R 图综合成一个全局 E-R 图,即 视图的集成 一次集成:把多个局部E-R 图一次合并成最终的E-R 图 逐步集成:用累加方式一次集成2个E-R 图|最后对全局 E-R 图进行优化,得到最终的E-R图,即概念结构2023/5/20 兰彬制作 41概念结构设
17、计的一个实例例1|某大学教学管理数据库系统的概念结构的设计 学籍管理子系统 课程管理子系统 教师管理子系统|首先分别设计出这3部分的局部E-R 图,然后把它们综合成一个全局E-R 图,最后对全局E-R 图根据某些原则进行优化,得到最终的E-R 图,即教学管理数据库系统的概念结构。2023/5/20 兰彬制作 42概念结构设计的一个实例例 2|某企业 管理信息系统的概念结构的设计F 首先确定该系统由物资管理、销售管理、劳动人事管理 等子系统组成F 然后分别确定每一个子系统的功能,并设计出每一个子系统的E-R 图F 把所有的局部E-R 图合并为综合的E-R 图,并进行优化,得到最终的E-R 图,即
18、教学管理数据库系统的概念结构2023/5/20 兰彬制作 43第七章 数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 数据库的物理设计7.7 数据库实施7.7 数据库运行与维护7.8 小结2023/5/20 兰彬制作 447.4 逻辑结构设计|逻辑结构设计的任务F 将概念结构设计阶段的结果-E-R 图,转化为与某一个DBMS 支持的数据模型相符合的逻辑结构。2023/5/20 兰彬制作 457.4 逻辑结构设计逻辑结构设计的步骤:F 将 概 念 结 构 转 化 为 一 般 的 关 系、网 状、层 次模型F 将 转 化 来 的 关 系、网 状、层
19、次 模 型 向 特 定DBMS 支持下的数据模型转换F 对数据模型进行优化2023/5/20 兰彬制作 467.4 逻辑结构设计7.4.1 E-R 图向关系模型的转换7.4.2 向特定DBMS 规定的模型进行转换7.4.3 数据模型的优化7.4.4 设计用户子模式2023/5/20 兰彬制作 47E-R图向关系模型的转换|转换内容FE-R 图由实体、实体的属性和实体之间的联系三个要素组成F 关系模型的逻辑结构是一组关系模式的集合表F 将E-R 图转换为关系模型:将实体、实体的属性和实体之间的联系转化为相应的关系模式。2023/5/20 兰彬制作 48E-R图向关系模型转换|转换原则 实体型的属
20、性-关系的属性 实体型的码-关系的码学生实体可以转换为如下关系模式:学生(学号,姓名,性别,年龄,所在系)一个实体型转换为一个关系模式课程实体可以转换为如下关系模式:课程(课程号,课程名,先修课,学分)选课学生课程mn学生课程 E-R 图2023/5/20 兰彬制作 49E-R图向关系模型的转换 一个 m:n 联系转换为一个关系模式。F 关系的属性:与该联系相连的各实体的码以及联系本身的属性F 关系的码:各实体码的组合例,“选课”联系是一个m:n 联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:选课(学号,课程号,成绩)选课学生课程mn学生课程 E-R 图2023/5/20
21、兰彬制作 50E-R图向关系模型的转换 一个 1:n 联系转化为关系模式时有2种方法 1)可以转换为一个独立的关系模式:关系的属性:与该联系相连的各实体的码以及联系本身的属性 关系的码:n 端实体的码2)可以与n 端对应的关系模式合并 合并后关系的属性:在n 端关系属性中加入1端关系的码和联系本身的属性 合并后的码:n 端实体的码2023/5/20 兰彬制作 511:N 联系转换实例|某大学管理系统中的实体“系”和“教师”之间存在着 1:N 的联系,其E-R 图如图:系教师聘用1N系编号系名 电话系主任教师编号姓名性别年龄职称聘用日期2023/5/20 兰彬制作 521:N 联系转换实例系实体
22、(1端)的关系模式:系(系编号,系名,电话,系主任)教师实体(N 端)的关系模式:教师(教师编号,姓名,性别,年龄,职称)将聘用(1:N 联系)转换为一个独立的关系模式:聘用(教师编号,系编号,聘用日期)将聘用与N 端(教师实体)关系模式合并:教师(教师编号,姓名,性别,年龄,职称,系编号,聘用日期)2023/5/20 兰彬制作 53E-R图向关系模型的转换4.一个 1:1 联系转化为关系模式时有2种方法 1)可以转换为一个独立的关系模式:关系的属性:与该联系相连的各实体的码以及联系本身的属性 关系的码:每个实体的码都是该关系的候选码2)可以与任意一端对应的关系模式合并 合并后关系的属性:在合
23、并端关系属性中加入另一端关系的码和联系本身的属性 合并后的码:每个实体的码都是该关系的候选码2023/5/20 兰彬制作 541:1 联系转换实例|某大学管理系统中的实体“院长”和“学院”之间存在着 1:1 的联系,其E-R 图如图:学院院长任职11学院编号学院名 电话地址院长名性别年龄职称任职日期2023/5/20 兰彬制作 551:1 联系转换实例学院实体的关系模式:学院(学院编号,学院名,电话,地址)院长实体的关系模式:院长(院长名,性别,年龄,职称)将任职(1:1 联系)转化为一个独立的关系模式:任职(学院编号,院长名,任职日期)将任职与学院或院长实体的关系模式合并:学院(学院编号,学
24、院名,电话,地址,院长名,任职日期)院长(院长名,性别,年龄,职称,学院编号,任职日期)2023/5/20 兰彬制作 56E-R图向关系模型的转换5.将三个或三个以上实体间的一个多元联系转换为一个关系模式供应商产品零件供应mnp供应量多元联系供应的关系模式:关系的属性:与该多元联系相连的各实体的码以及联系本身的属性 关系的码:各实体码的组合供应(产品号,供应商号,零件号,供应量)2023/5/20 兰彬制作 57E-R图向关系模型的转换7.具有相同码的关系模式可合并。F 目的:减少系统中的关系个数。F 合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同
25、名也可能不同名),并适当调整属性的次序。2023/5/20 兰彬制作 58具有相同码的关系模式合并举例学生党员关系模式:学生党员(学号,班级号,入党时间,入党地点)学生关系模式:学生(学号,姓名,性别,年龄,所在系,班级号,平均成绩)都以学号为码,可以将它们合并为一个关系模式:学生(学号,姓名,性别,年龄,所在系,班级号,平均成绩,入党时间,入党地点)2023/5/20 兰彬制作 597.4 逻辑结构设计7.4.1 E-R 图向关系模型的转换7.4.2 向特定DBMS 规定的模型进行转换7.4.3 数据模型的优化7.4.4 设计用户子模式2023/5/20 兰彬制作 607.4.3 数据模型的
26、优化|对数据模型的优化是指:F 适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能。|关系数据模型的优化通常以规范化理论为指导。1NF2NF 3NF BCNF 4NF 5NF2023/5/20 兰彬制作 65逻辑结构设计小结|逻辑结构设计的任务|逻辑结构设计的步骤|E-R 图向关系模型的转化原则|关系数据模型优化的方法2023/5/20 兰彬制作 66第七章 数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 数据库的物理设计7.6 数据库实施和维护2023/5/20 兰彬制作 677.5 数据库的物理设计|数据库的物理结构:指数据库中
27、数据的存储格式(存储结构)、存取方法。|数据库的物理设计 根据实际应用环境的要求,为数据库中的数据选择一个最合适的物理结构。2023/5/20 兰彬制作 687.5 数据库的物理设计|数据库物理设计的步骤F 确定数据库的物理结构,即数据的存储结构和存取方法F 对物理结构进行评价,评价的重点是时间和空间效率F 如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。2023/5/20 兰彬制作 69 数据库物理设计确定数据库的物理结构评价数据库的物理结构逻辑结构设计数据库实施物理模型逻辑模型2023/5/20 兰彬制作 70第
28、七章 数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 数据库的物理设计7.5 数据库的运行7.7 数据库实施和维护2023/5/20 兰彬制作 717.7 数据库的实施和维护|数据库实施的工作内容F 用DDL 定义数据库结构表结构F 组织数据入库F 编制与调试应用程序F 数据库试运行2023/5/20 兰彬制作 72一、定义数据库结构|确定了数据库的逻辑结构与物理结构后,就可以用所选用的DBMS 提供的数据定义语言(DDL)来严格描述数据库结构。|可以用SQL 语句如下定义表结构:CREATE TABLE 学生(学号 CHAR(8),姓名 CHA
29、R(20),性别 CHAR(2)CREATE TABLE 课程(课程号 int,课程名 CHAR(20),学分 int)2023/5/20 兰彬制作 73二、组织数据入库|数据库结构建立好后,就可以向数据库中装载数据了。|组织数据入库是数据库实施阶段最主要的工作。|数据装载方法人工方法;计算机辅助数据入库方法|数据装载步骤 1)筛选数据 2)转换数据格式 3)输入数据 4)校验数据2023/5/20 兰彬制作 74三、编制与调试应用程序|调用数据库的应用程序的编写工作应该与数据设计同时进行。|在数据库实施阶段,当数据库结构建立好(但是还没有完成数据录入工作)后,就可以使用模拟数据来调试调用数据
30、库的应用程序。new2023/5/20 兰彬制作 75四、数据库试运行|应用程序调试完成,并且已有一小部分数据入库后,就可以开始数据库的试运行。|数据库试运行也称为联合调试,主要包括:1)功能测试:实际运行应用程序,执行对数据库的各种操作,测试应用程序是否完成要求的各种功能。2)性能测试:测量应用系统和数据库系统的性能指标,分析是否符合设计目标和要求。2023/5/20 兰彬制作 767.7 数据库运行与维护|数据库试运行结果符合设计目标和要求后,数据库就可以交给用户,真正投入运行了。|数据库投入运行标志着开发任务的基本完成和维护工作的开始|由于应用环境在不断变化,用户的要求也会逐渐变化或者扩
31、充,数据库中的数据量也在不断增长,因此,对数据库的评价、调整和修改等维护工作就是一项长期的任务,只要数据库在运行,就需要维护,维护也是设计工作的继续和提高。2023/5/20 兰彬制作 77数据库运行与维护(续)|在数据库运行阶段,对数据库经常性的维护工作主要是由DBA 完成的,包括:数据库的转储和恢复 转储和恢复是数据库正式运行后的最重要的维护工作之一数据库的安全性、完整性控制数据库性能的监督、分析和改进2023/5/20 兰彬制作 78数据库运行与维护(续)数据库的重组织 全部重组织;部分重组织 数据库的重组织是按照原来的设计要求,重新安排数据的存储位置,回收垃圾,减少指针链。因此,数据库的重组织不会改变原设计的数据逻辑结构和物理结构。DBMS 一般都提供了供重组织数据库使用的实用程序,帮助DBA 重新组织数据库。2023/5/20 兰彬制作 79数据库运行与维护(续)5.数据库的重构造 数据库的重构造改变了数据库原来的逻辑结构和物理结构,其工作内容包括:增加新的数据项 改变数据项的类型 改变数据库的容量 增加或删除索引 修改完整性约束条件
限制150内