《数据库设计概念需求分析概念结构设计逻辑结构设计数据库》由会员分享,可在线阅读,更多相关《数据库设计概念需求分析概念结构设计逻辑结构设计数据库(127页珍藏版)》请在金锄头文库上搜索。
1、 数据库设计概念数据库设计概念 需求分析需求分析 概念结构设计概念结构设计 逻辑结构设计逻辑结构设计 数据库的物理设计数据库的物理设计 数据库的实施和维护数据库的实施和维护 数据库设计数据库设计 第第6章章2024/8/121l数据库设计数据库设计是指对于一个给定的应用环境,是指对于一个给定的应用环境,构造构造最优最优的数据库的数据库模式模式,建立数据库及其应用系统,建立数据库及其应用系统,使之能够使之能够有效地存储数据有效地存储数据,满足各种用户的应用,满足各种用户的应用需求(信息要求和处理要求)。需求(信息要求和处理要求)。l在数据库领域内,常常把使用数据库的各类系统在数据库领域内,常常把
2、使用数据库的各类系统统称为统称为数据库应用系统数据库应用系统。6.1 6.1 数据库设计数据库设计概述概述2024/8/1226.1.1 6.1.1 数据库和信息系统数据库和信息系统6.1.2 6.1.2 数据库设计的特点数据库设计的特点6.1.3 6.1.3 数据库设计方法简述数据库设计方法简述6.1.4 6.1.4 数据库设计的基本步骤数据库设计的基本步骤2024/8/1236.1.1 6.1.1 数据库和信息系统数据库和信息系统l数据库是信息系统的数据库是信息系统的核心核心和和基础基础把信息系统中大量的数据把信息系统中大量的数据按一定的模型按一定的模型组织起来组织起来提供提供存储、维护、
3、检索存储、维护、检索数据的功能数据的功能使信息系统可以使信息系统可以方便、及时、准确方便、及时、准确地从数据库中获得所需地从数据库中获得所需的信息的信息l数据库是信息系统的各个部分能否紧密地结合在一数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的起以及如何结合的关键关键所在所在l数据库设计是信息系统开发和建设的数据库设计是信息系统开发和建设的重要重要组成部分组成部分2024/8/1246.1.2 6.1.2 数据库设计的特点数据库设计的特点l数据库建设是硬件、软件和干件的结合数据库建设是硬件、软件和干件的结合p三分技术,七分管理,十二分基础数据三分技术,七分管理,十二分基础数据p技
4、术与管理的界面称之为技术与管理的界面称之为“干件干件”l 数据库设计应该与应用系统设计相结合数据库设计应该与应用系统设计相结合p结构(数据)设计:设计数据库框架或数据库结构结构(数据)设计:设计数据库框架或数据库结构p行为(处理)设计:设计应用程序、事务处理等行为(处理)设计:设计应用程序、事务处理等n结构和行为分离的设计结构和行为分离的设计p传统的软件工程忽视对应用中数据语义的分析和抽象,只要传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策有可能就尽量推迟数据结构设计的决策p早期的数据库设计致力于数据模型和建模方法研究,忽视了早期的数据库设计致力于数据模
5、型和建模方法研究,忽视了对行为的设计对行为的设计2024/8/126现实世界现实世界概念模型设计概念模型设计子模式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计程序说明程序说明应用程序设计应用程序设计程序编码调试程序编码调试图图6.1 6.1 结构和行为分离的设计结构和行为分离的设计2024/8/1276.1.3 6.1.3 数据库设计方法简述数据库设计方法简述l手工试凑法手工试凑法设计质量与设计人员的经验和水平有直接关系设计质量与设计人员的经验和水平有直接关系缺乏科学理
6、论和工程方法的支持,工程的质量难以保证缺乏科学理论和工程方法的支持,工程的质量难以保证数据库运行一段时间后常常又不同程度地发现各种问题,增加数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价了维护代价l规范设计法规范设计法手工设计方法手工设计方法基本思想:过程迭代和逐步求精基本思想:过程迭代和逐步求精2024/8/128l 新奥尔良(新奥尔良(New OrleansNew Orleans)方法)方法 将数据库设计分为四个阶段将数据库设计分为四个阶段 需求分析需求分析 概念设计概念设计 逻辑设计逻辑设计 物理设计物理设计l S.B.YaoS.B.Yao方法方法 将数据库设计分为五个
7、步骤将数据库设计分为五个步骤l I.R.PalmerI.R.Palmer方法方法 把数据库设计当成一步接一步的过程把数据库设计当成一步接一步的过程规范设计法中的典型方法规范设计法中的典型方法p 计算机辅助设计计算机辅助设计 ORACLE Designer 2000 ORACLE Designer 2000 SYBASE SYBASE PowerDesignerPowerDesigner分析用户要求分析用户要求设计实现设计实现信息分析和定义信息分析和定义物理数据库设计物理数据库设计2024/8/1296.1.4 6.1.4 数据库设计的基本步骤数据库设计的基本步骤数据库设计数据库设计是一项涉及是
8、一项涉及多学科多学科的综合性技术,是一项的综合性技术,是一项庞大庞大的工程项目。的工程项目。 需求分析阶段需求分析阶段 2. 2. 概念结构设计阶段概念结构设计阶段 数据库物理设计阶段数据库物理设计阶段 数据库实施阶段数据库实施阶段 数据库运行和维护阶段数据库运行和维护阶段 逻辑结构设计阶段逻辑结构设计阶段2024/8/12101. 1. 数据库分析设计人员数据库分析设计人员数据库设计的核心人员数据库设计的核心人员自始至终参与数据库设计自始至终参与数据库设计其水平决定了数据库系统的质量其水平决定了数据库系统的质量数据库设计的准备工作:选定参加设计的人员数据库设计的准备工作:选定参加设计的人员2
9、. 2. 用户用户在数据库设计中也是举足轻重的在数据库设计中也是举足轻重的主要参加需求分析和数据库的运行维护主要参加需求分析和数据库的运行维护用户积极参与可加速数据库设计,提高数据库设计的质量用户积极参与可加速数据库设计,提高数据库设计的质量3. 3. 程序员程序员在系统实施阶段参与进来,负责编制程序在系统实施阶段参与进来,负责编制程序4. 4. 操作员操作员在系统实施阶段参与进来,准备软硬件环境在系统实施阶段参与进来,准备软硬件环境2024/8/1211 需求分析阶段需求分析阶段 p 准确了解与分析用户需求准确了解与分析用户需求(包括数据与处理),是整个设计(包括数据与处理),是整个设计 过
10、程的基础,是最困难、最耗费时间的一步。过程的基础,是最困难、最耗费时间的一步。p 用户需求的收集和分析,结果得到用户需求的收集和分析,结果得到数据字典描述的数据需求数据字典描述的数据需求 和和数据流图描述的处理需求数据流图描述的处理需求。 2. 2. 概念结构设计阶段概念结构设计阶段p 整个数据库设计的整个数据库设计的关键关键,通过对用户需求进行综合、归纳与,通过对用户需求进行综合、归纳与 抽象,形成一个独立于具体抽象,形成一个独立于具体DBMSDBMS的的概念模型概念模型,可以用可以用E-RE-R图图 表示。表示。2024/8/1212 逻辑结构设计阶段逻辑结构设计阶段p 将概念结构转换为某
11、个将概念结构转换为某个DBMSDBMS所支持的所支持的数据模型数据模型(例如关系(例如关系模型),并对其进行模型),并对其进行优化优化。 数据库物理设计阶段数据库物理设计阶段 p 为逻辑数据模型选取一个最适合应用环境的为逻辑数据模型选取一个最适合应用环境的物理结构物理结构(包括(包括 存储结构、存取方法,形成内模式)。存储结构、存取方法,形成内模式)。 首先将首先将E-RE-R图转换成具体的数据库产品支持的数据模型,形成图转换成具体的数据库产品支持的数据模型,形成 数据库逻辑模式;数据库逻辑模式; 然后根据用户处理的要求、安全性的考虑,在基本表的基础然后根据用户处理的要求、安全性的考虑,在基本
12、表的基础 上再建立必要的视图上再建立必要的视图(View)(View),形成数据的外模式。,形成数据的外模式。2024/8/1213 数据库实施阶段数据库实施阶段 p 运用运用DBMSDBMS提供的数据语言(例如提供的数据语言(例如SQLSQL)及其宿主语言(例如及其宿主语言(例如 C C),),根据逻辑设计和物理设计的结果:根据逻辑设计和物理设计的结果: 建立数据库建立数据库 编制、调试应用程序编制、调试应用程序 组织数据入库组织数据入库 进行试运行进行试运行 数据库运行和维护阶段数据库运行和维护阶段 p 数据库应用系统经过试运行后即可数据库应用系统经过试运行后即可投入正式运行投入正式运行。
13、p 在数据库系统运行过程中必须不断地对其进行在数据库系统运行过程中必须不断地对其进行评价、调评价、调整与修改整与修改。 设计一个完善的数据库应用系统往往是上述六个阶设计一个完善的数据库应用系统往往是上述六个阶段的段的不断反复不断反复。2024/8/1214设设计计阶段阶段 设设 计计 描描 述述数数 据据处处 理理需需求求分析分析数数据据字字典典、全全系系统统中中数数据据项项、数据流、数据存储的描述数据流、数据存储的描述数数据据流流图图和和判判定定表表(判判定定树树)、数据字典中处理过程的描述数据字典中处理过程的描述 概念模型(概念模型(E-RE-R图)图) 数据字典数据字典 系统说明书包括:
14、系统说明书包括: 新系统要求、方案和概图新系统要求、方案和概图 反映新系统信息流的数据流图反映新系统信息流的数据流图 某种数据模型某种数据模型 关系关系 非关系非关系系统结构图系统结构图(模块结构)(模块结构)存储安排存储安排方法选择方法选择存取路径建立存取路径建立模块设计模块设计IPOIPO表表实施实施阶段阶段编写模式编写模式装入数据装入数据数据库试运行数据库试运行程序编码、程序编码、编译联结、编译联结、测试测试运运 行行 、维护维护 性能监测、转储性能监测、转储/ /恢复恢复 数据库重组和重构数据库重组和重构新新旧旧系系统统转转换换、运运行行、维维护护(修修正性、适应性、改善性维护)正性、
15、适应性、改善性维护)概念概念结构结构设计设计逻辑逻辑结构结构设计设计物理物理设计设计 分区分区1 1 分区分区2 2Main( )Main( )ififthenthenendendCreatCreatLoadLoadIPOIPO表表输入:输入:输出:输出:处理:处理:2024/8/12166.2 6.2 需求分析需求分析l需求分析就是分析用户的需要与要求需求分析就是分析用户的需要与要求p需求分析是设计数据库的需求分析是设计数据库的起点起点。p需需求求分分析析的的结结果果是是否否准准确确地地反反映映了了用用户户的的实实际际要要求求,将将直直接接影影响响到到后后面面各各个个阶阶段段的的设设计计,并
16、并影影响响到到设计结果是否合理和实用。设计结果是否合理和实用。2024/8/12176.2.1 6.2.1 需求分析的任务需求分析的任务6.2.2 6.2.2 需求分析的方法需求分析的方法6.2.3 6.2.3 数据字典数据字典2024/8/12186.2.1 6.2.1 需求分析的任务需求分析的任务需需求求分分析析任任务务p通过详细调查现实世界要处理的对象(组织、部门、通过详细调查现实世界要处理的对象(组织、部门、企业等),充分企业等),充分了解原系统了解原系统(手工系统或计算机系统)(手工系统或计算机系统)工作概况,明确用户的各种需求。工作概况,明确用户的各种需求。p在此基础上在此基础上确
17、定新系统的功能确定新系统的功能。新系统必须充分考虑。新系统必须充分考虑今后今后可能的扩充和改变可能的扩充和改变,不能仅仅按当前应用需求来,不能仅仅按当前应用需求来设计数据库。设计数据库。2024/8/1219需需求求分分析析的的重重点点l需求分析的重点是调查、收集与分析用户在数据管理需求分析的重点是调查、收集与分析用户在数据管理中的中的信息要求、处理要求、安全性与完整性要求信息要求、处理要求、安全性与完整性要求。l信息要求信息要求p用户需要从数据库中获得用户需要从数据库中获得信息的内容与性质信息的内容与性质p由用户的信息要求可以导出由用户的信息要求可以导出数据要求数据要求,即在数据库中,即在数
18、据库中需要存储哪些数据需要存储哪些数据l处理要求处理要求p对处理对处理功能功能的要求的要求p对处理的对处理的响应时间响应时间的要求的要求p对对处理方式处理方式的要求的要求( (批处理批处理 / / 联机处理联机处理) )l新系统的功能必须能够满足用户的信息要求、处理要新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求。求、安全性与完整性要求。2024/8/1220需需求求分分析析的的难难点点l用户缺少计算机知识用户缺少计算机知识,开始时无法确定计算机究竟能为,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己做什么,不能做什么,因此无法一下子准确
19、地表达自己的需求,他们所提出的需求往往不断地变化。自己的需求,他们所提出的需求往往不断地变化。l设计人员缺少用户的专业知识设计人员缺少用户的专业知识,不易理解用户的真正需,不易理解用户的真正需求,甚至误解用户的需求。求,甚至误解用户的需求。l新的硬件、软件技术的出现也会使新的硬件、软件技术的出现也会使用户需求发生变化用户需求发生变化。p设计人员必须采用有效的方法,与用户不断深入地进设计人员必须采用有效的方法,与用户不断深入地进行交流,才能逐步得以确定用户的实际需求。行交流,才能逐步得以确定用户的实际需求。解解决决方方法法2024/8/12216.2.2 6.2.2 需求分析的方法需求分析的方法
20、l调查清楚用户的实际需求并进行初步分析调查清楚用户的实际需求并进行初步分析l与用户达成共识与用户达成共识l进一步分析与表达用户需求进一步分析与表达用户需求2024/8/1222调查用户需求分析的具体步骤调查用户需求分析的具体步骤(1)(1) 调查组织机构情况调查组织机构情况p 组织部门的组成情况组织部门的组成情况p 各部门的职责等各部门的职责等 调查各部门的业务活动情况调查各部门的业务活动情况( (调查重点之一调查重点之一) )。p 各个部门输入和使用什么数据各个部门输入和使用什么数据p 如何加工处理这些数据如何加工处理这些数据p 输出什么信息输出什么信息p 输出到什么部门输出到什么部门p 输
21、出结果的格式是什么输出结果的格式是什么2024/8/1223 在熟悉业务活动的基础上,协助用户明确对新系统的各在熟悉业务活动的基础上,协助用户明确对新系统的各种要求(调查重点之二)。种要求(调查重点之二)。p 信息要求信息要求p 处理要求处理要求p 完全性与完整性要求完全性与完整性要求调查用户需求分析的具体步骤调查用户需求分析的具体步骤(2)(2) 对前面调查的结果进行初步分析,确定新系统的边界。对前面调查的结果进行初步分析,确定新系统的边界。p 确定哪些功能由计算机完成或将来准备让计算机完成确定哪些功能由计算机完成或将来准备让计算机完成p 确定哪些活动由人工完成确定哪些活动由人工完成由计算机
22、完成的功能就是新系统应该实现的功能。由计算机完成的功能就是新系统应该实现的功能。2024/8/1224常用的调查方法常用的调查方法l跟班作业跟班作业p通过亲身参加业务工作了解业务活动的情况通过亲身参加业务工作了解业务活动的情况p能比较准确地理解用户的需求,但比较耗时能比较准确地理解用户的需求,但比较耗时l开调查会开调查会p通过与用户座谈来了解业务活动情况及用户需求通过与用户座谈来了解业务活动情况及用户需求l请专人介绍请专人介绍l询问询问p对某些调查中的问题,可以找专人询问对某些调查中的问题,可以找专人询问l设计调查表请用户填写设计调查表请用户填写p如果调查表设计合理,则很有效,且易于为用户接受
23、如果调查表设计合理,则很有效,且易于为用户接受l查阅记录查阅记录p查阅与原系统有关的数据记录查阅与原系统有关的数据记录2024/8/1225进一步分析与表达用户需求进一步分析与表达用户需求l常用方法常用方法p自顶向下自顶向下的结构化分析方法(的结构化分析方法(Structured AnalysisStructured Analysis,简称简称SASA方法)方法)lSASA方法从最上层的系统组织机构入手,采用方法从最上层的系统组织机构入手,采用逐层分解逐层分解的的方式分析系统,并用方式分析系统,并用数据流图数据流图(DFD)(DFD)和和数据字典数据字典(DD)(DD)描述描述系统。系统。20
24、24/8/12261 1首先把任何一个系统都抽象为:首先把任何一个系统都抽象为:信息要求信息要求处理要求处理要求数据流数据流数据流数据流数据存储数据存储数据来源数据来源处理处理数据输出数据输出2024/8/12272 2分解处理功能和数据分解处理功能和数据(1 1)分解处理功能)分解处理功能将处理功能的具体内容分解为若干子功能,再将每个子功能将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达清楚为止。继续分解,直到把系统的工作过程表达清楚为止。(2 2)分解数据)分解数据在处理功能逐步分解的同时,其所用的数据也逐级分解,形在处理功能逐步分解的同时,其所用的数
25、据也逐级分解,形成若干层次的数据流图成若干层次的数据流图 数据流图表达了数据和处理过程的关系数据流图表达了数据和处理过程的关系(3 3)表达方法)表达方法 处理过程:用判定表或判定树来描述处理过程:用判定表或判定树来描述 数据:用数据字典来描述数据:用数据字典来描述3 3将分析结果再次提交给用户,征得用户的认可。将分析结果再次提交给用户,征得用户的认可。2024/8/1228图书借阅管图书借阅管理系统理系统1 1学学 生生 数数 据据图图 书书 数数 据据图图 书书 库库 存存 数数 据据自顶向下方法举例自顶向下方法举例2024/8/1229借书处理系统1.1学生数据借书信息还书处理系统1.2
26、还书信息图 书 库 存 数 据数据流图数据流图2024/8/1230细化的数据流图细化的数据流图学学 生生 数数 据据数数 据据 报报 告告出出 图图 书书变变 更更 库库 存存 量量借出借出 图书图书学生数据学生数据非非 法法 学学 生生数数 据据 报报 告告学生数据学生数据借书信息借书信息借借 书书数数 据据检检 查查1.1.21.1.2还还书信息书信息图书库图书库存量检存量检查查1.2.11.2.1修改库存修改库存状状 态态(入)(入)1.1.31.1.3现现 有有 库库 存存数数 据据变更库存量数据变更库存量数据插插 入入 借借数数 据据空空 缺缺 图图 书书现现 有有 库库 存存 数
27、数 据据借借 出出 图图 书书 数数 据据数数 据据删除删除 / / 修改修改数据数据修改库存修改库存状状 态态(出)(出)1.2.21.2.2借借 出出 图图书书 数数 据据处处 罚罚 数数据据 报报 告告学学 生生 数数据据 检检 查查1.1.11.1.1借借 出出 图图 书书 数数 据据图图 书书 库库 存存 数数 据据2024/8/1231实例:假设我们要开发一个学校管理系统。实例:假设我们要开发一个学校管理系统。实例:假设我们要开发一个学校管理系统。实例:假设我们要开发一个学校管理系统。1 1 1 1经过可行性分析和初步需求调查,抽象出该系统最高层数经过可行性分析和初步需求调查,抽象
28、出该系统最高层数经过可行性分析和初步需求调查,抽象出该系统最高层数经过可行性分析和初步需求调查,抽象出该系统最高层数据流图,该系统由据流图,该系统由据流图,该系统由据流图,该系统由教师管理子系统教师管理子系统教师管理子系统教师管理子系统、学生管理子系统学生管理子系统学生管理子系统学生管理子系统、后后后后勤管理子系统勤管理子系统勤管理子系统勤管理子系统组成,每个子系统分别配备一个开发小组。组成,每个子系统分别配备一个开发小组。组成,每个子系统分别配备一个开发小组。组成,每个子系统分别配备一个开发小组。2 2 2 2进一步细化各个子系统。进一步细化各个子系统。进一步细化各个子系统。进一步细化各个子
29、系统。其中学生管理子系统开发小组通过进行进一步的需求调查,其中学生管理子系统开发小组通过进行进一步的需求调查,其中学生管理子系统开发小组通过进行进一步的需求调查,其中学生管理子系统开发小组通过进行进一步的需求调查,明确了该子系统的主要功能是进行明确了该子系统的主要功能是进行明确了该子系统的主要功能是进行明确了该子系统的主要功能是进行学籍管理学籍管理学籍管理学籍管理和和和和课程管理课程管理课程管理课程管理,包括学生报到、入学、毕业的管理,学生上课情况的管理。包括学生报到、入学、毕业的管理,学生上课情况的管理。包括学生报到、入学、毕业的管理,学生上课情况的管理。包括学生报到、入学、毕业的管理,学生
30、上课情况的管理。通过详细的信息流程分析和数据收集后,生成该子系统的通过详细的信息流程分析和数据收集后,生成该子系统的通过详细的信息流程分析和数据收集后,生成该子系统的通过详细的信息流程分析和数据收集后,生成该子系统的数据流图。数据流图。数据流图。数据流图。需求分析举例需求分析举例2024/8/12326.2.3 6.2.3 数据字典数据字典 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(数据字典(Data DictionaryData Dictionary)来描述。来描述。 l数据字典的内容数据字典的内容数据项数据项数据结
31、构数据结构数据流数据流数据存储数据存储处理过程处理过程l 数据项是数据的最小组成单位数据项是数据的最小组成单位l 若干个数据项可以组成一个数据结构若干个数据项可以组成一个数据结构l 数据字典通过对数据项和数据结构的定义来描述数据流、数据字典通过对数据项和数据结构的定义来描述数据流、 数据存储的逻辑内容。数据存储的逻辑内容。2024/8/1233 1. 1. 数据项数据项 l 数据项是不可再分的数据单位数据项是不可再分的数据单位l 对数据项的描述对数据项的描述 数据项描述数据项名,数据项含义说明,别名,数据项描述数据项名,数据项含义说明,别名, 数据类型,长度,取值范围,取值含数据类型,长度,取
32、值范围,取值含 义,与其他数据项的逻辑关系义,与其他数据项的逻辑关系p 取值范围、与其他数据项的逻辑关系定义了数据的完整取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件,是设计数据检验功能的依据。性约束条件,是设计数据检验功能的依据。2024/8/1234 2. 2. 数据结构数据结构 l 数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。l 一个数据结构可以由若干个数据项组成,也可以由若一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混干个数据结构组成,或由若干个数据项和数据结构混合组成。合组成。l 对数据结构的描述对数据
33、结构的描述 数据结构描述数据结构名,含义说明,数据结构描述数据结构名,含义说明, 组成组成: :数据项或数据结构数据项或数据结构2024/8/1235 3. 3. 数据流数据流 l 数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。l 对数据流的描述对数据流的描述 数据流描述数据流名,说明,数据流来源,数据流描述数据流名,说明,数据流来源, 数据流去向,组成数据流去向,组成: :数据结构,数据结构, 平均流量,高峰期流量平均流量,高峰期流量p 数据流来源是说明该数据流来自哪个过程数据流来源是说明该数据流来自哪个过程p 数据流去向是说明该数据流将到哪个过程去数据流去向是说明
34、该数据流将到哪个过程去p 平均流量是指在单位时间(每天、每周、每月等)里的传平均流量是指在单位时间(每天、每周、每月等)里的传输次数输次数p 高峰期流量则是指在高峰时期的数据流量高峰期流量则是指在高峰时期的数据流量2024/8/1236 4. 4. 数据存储数据存储 l数据存储是数据结构停留或保存的地方,也是数据流的来数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。源和去向之一。l对数据存储的描述对数据存储的描述数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号, 流入的数据流流入的数据流 ,流出的数据流,流出的数据流 , 组成组成: :数据结构,数据量,存
35、取方式数据结构,数据量,存取方式p 流入的数据流:指出数据来源流入的数据流:指出数据来源p 流出的数据流:指出数据去向流出的数据流:指出数据去向p 数据量:每次存取多少数据,每天(或每小时、每周等)存数据量:每次存取多少数据,每天(或每小时、每周等)存取几次等信息取几次等信息p 存取方法:批处理存取方法:批处理 / / 联机处理;检索联机处理;检索 / / 更新;顺序检索更新;顺序检索 / / 随机检索随机检索2024/8/1237 5. 5. 处理过程处理过程 l处理过程的具体处理逻辑一般用判定表或判定树来描述。数处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程
36、的说明性信息据字典中只需要描述处理过程的说明性信息l处理过程说明性信息的描述处理过程说明性信息的描述处理过程描述处理过程名,说明,输入处理过程描述处理过程名,说明,输入: :数据流,数据流, 输出输出: :数据流,处理数据流,处理: :简要说明简要说明p简要说明:主要说明该处理过程的功能及处理要求简要说明:主要说明该处理过程的功能及处理要求功能:该处理过程用来做什么功能:该处理过程用来做什么处理要求:处理频度要求(如单位时间里处理多少事务,处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);响应时间要求等多少数据量);响应时间要求等处理要求是后面物理设计的输入及性能评价的标准处理要
37、求是后面物理设计的输入及性能评价的标准2024/8/12382024/8/1239“学号学号”数据项数据项 : 数据项:学号数据项:学号 含义说明:唯一标识每个学生含义说明:唯一标识每个学生 别名:学生编号别名:学生编号 类型:字符型类型:字符型 长度:长度:8 8 取值范围:取值范围:0000000000000000至至 99999999 99999999 取值含义:前两位标别该学生取值含义:前两位标别该学生 所在年级,后六位按顺序所在年级,后六位按顺序 编号与其他数据项的逻辑编号与其他数据项的逻辑 关系:关系: “学生学生” 数据结构数据结构 : 数据结构:学生数据结构:学生 含义说明:是
38、学籍管理子系统的含义说明:是学籍管理子系统的 体数据结构,定义了一个学体数据结构,定义了一个学 生的有关信息生的有关信息 组组 成:成: 学号,姓名,性别,学号,姓名,性别, 年龄,所在系,年级年龄,所在系,年级 例:学生学籍管理子系统的数据字典。例:学生学籍管理子系统的数据字典。2024/8/1240数据流数据流“体检结果体检结果” : 数据流:体检结果数据流:体检结果 说说 明:明: 学生参加体格检查学生参加体格检查 的最终结果的最终结果 数据流来源:体检数据流来源:体检 数据流去向:批准数据流去向:批准 组组 成:成: 平均流量:平均流量: 高峰期流量:高峰期流量: 数据存储数据存储“学
39、生登记表学生登记表” : 数据存储:学生登记表数据存储:学生登记表 说明:记录学生的基本情况说明:记录学生的基本情况 流入数据流:流入数据流: 流出数据流:流出数据流: 组成:组成: 数据量:每年数据量:每年30003000张张 存取方式:随机存取存取方式:随机存取 2024/8/1241处理过程处理过程“分配宿舍分配宿舍” : 处理过程:分配宿舍处理过程:分配宿舍 说说 明:明: 为所有新生分配学生宿舍为所有新生分配学生宿舍 输输 入:学生,宿舍,入:学生,宿舍, 输输 出:宿舍安排出:宿舍安排 处处 理:理: 在新生报到后,为所有新生分配学生宿舍。在新生报到后,为所有新生分配学生宿舍。 要
40、求同一间宿舍只能安排同一性别的学生,要求同一间宿舍只能安排同一性别的学生, 同一个学生只能安排在一个宿舍中。每个同一个学生只能安排在一个宿舍中。每个 学生的居住面积不小于学生的居住面积不小于3 3平方米。安排新生平方米。安排新生 宿舍其处理时间应不超过宿舍其处理时间应不超过1515分钟。分钟。 2024/8/12426.3 6.3 概念结构设计概念结构设计6.3.1 6.3.1 概念结构设计概述概念结构设计概述6.3.2 6.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤6.3.3 6.3.3 数据抽象与局部视图设计数据抽象与局部视图设计6.3.4 6.3.4 视图的集成视图的集成2
41、024/8/12436.3.1 6.3.1 概念结构概念结构l什么是概念结构设计什么是概念结构设计p需求分析阶段描述的用户应用需求是现实世界的具体需求需求分析阶段描述的用户应用需求是现实世界的具体需求p将需求分析得到的用户需求抽象为信息结构即概念模型的过程将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计就是概念结构设计p概念结构是各种数据模型的共同基础,它比数据模型更独立于概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。机器、更抽象,从而更加稳定。p概念结构设计是整个数据库设计的关键概念结构设计是整个数据库设计的关键现实世界现实世界机器世
42、界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计2024/8/1244l概念结构设计的特点概念结构设计的特点(1 1)能真实、充分地反映现实世界,包括事物和事物之间的联系,)能真实、充分地反映现实世界,包括事物和事物之间的联系, 能满足用户对数据的处理要求。是对现实世界的一个真实模型。能满足用户对数据的处理要求。是对现实世界的一个真实模型。(2 2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用 户的积极参与是数据库的设计成功的关键。户的积极参与是数据库的设计成功的关键。(3 3 3 3)易于更改,当应用环境和应
43、用要求改变时,容易对概念模型修)易于更改,当应用环境和应用要求改变时,容易对概念模型修)易于更改,当应用环境和应用要求改变时,容易对概念模型修)易于更改,当应用环境和应用要求改变时,容易对概念模型修 改和扩充。改和扩充。改和扩充。改和扩充。(4 4 4 4)易于向关系、网状、层次等各种数据模型转换。)易于向关系、网状、层次等各种数据模型转换。)易于向关系、网状、层次等各种数据模型转换。)易于向关系、网状、层次等各种数据模型转换。l描述概念模型的工具描述概念模型的工具 E-RE-R模型模型2024/8/12456.3.2 6.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤设计概念结构的
44、四类方法设计概念结构的四类方法自顶向下自顶向下 首先定义全局概念结构的框架,然后逐步细化首先定义全局概念结构的框架,然后逐步细化自底向上自底向上 首先定义各局部应用的概念结构,然后将它们集成起来,得首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构到全局概念结构逐步扩张逐步扩张 首先定义最重要的核心概念结构,然后向外扩充,以滚雪球首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构的方式逐步生成其他概念结构,直至总体概念结构混合策略混合策略 将自顶向下和自底向上相结合,用自顶向下策略设计一个全将自顶向下和自底向上相结合,用自顶向下策略
45、设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。的各局部概念结构。2024/8/1246自顶向下策略自顶向下策略2024/8/1247自底向上策略自底向上策略2024/8/1248逐步扩张策略逐步扩张策略2024/8/1249l常用策略常用策略p自顶向下地进行需求分析自顶向下地进行需求分析p自底向上地设计概念结构自底向上地设计概念结构l自底向上设计概念结构的步骤自底向上设计概念结构的步骤p第一步:抽象数据并设计局部视图第一步:抽象数据并设计局部视图p第二步:集成局部视图,得到全局概念结构第二步:集成局部视图,得
46、到全局概念结构2024/8/1250需求分析需求分析DFDDFDDDDD数据抽象、局部数据抽象、局部视图的设计视图的设计视图集成视图集成返回用户返回用户征求意见征求意见直到满意直到满意为止为止分分E-RE-R图图总总E-RE-R图图逻辑结构设计逻辑结构设计图图6.9 概念结构设计步骤概念结构设计步骤2024/8/12516.3.3 6.3.3 数据抽象与局部视图设计数据抽象与局部视图设计l概念结构是对现实世界的一种抽象概念结构是对现实世界的一种抽象p从实际的人、物、事和概念中抽取所关心的共同特性,从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节忽略非本质的细节p把这些特性用各种
47、概念精确地加以描述把这些特性用各种概念精确地加以描述p这些概念组成了某种模型这些概念组成了某种模型三种常用的抽象三种常用的抽象 分类分类 聚集聚集 概括概括2024/8/12521. 1. 分类(分类(ClassificationClassification) 定义某一类概念作为现实世界中一组对象的类型定义某一类概念作为现实世界中一组对象的类型 这些对象具有某些共同的特性和行为这些对象具有某些共同的特性和行为 它抽象了对象它抽象了对象值和型值和型之间的之间的“is member ofis member of”的语义的语义 在在E-RE-R模型中,实体型就是这种抽象模型中,实体型就是这种抽象例:
48、例:学校中,张英是学生中的一员,具有学生们的共同特性和行为:学校中,张英是学生中的一员,具有学生们的共同特性和行为: 在某一班学习某专业,选修某些课程等。在某一班学习某专业,选修某些课程等。学生学生张英张英王萍王萍刘晨刘晨赵斌赵斌2024/8/12532. 2. 聚集(聚集(AggregationAggregation)l定义某一类型的组成成分定义某一类型的组成成分l它抽象了对象内部类型和成分之间它抽象了对象内部类型和成分之间“is part of”is part of”的语的语义义l在在E-RE-R模型中若干属性的聚集组成了实体型,就是这种抽模型中若干属性的聚集组成了实体型,就是这种抽象象学
49、生学生学号学号姓名姓名专业专业班级班级2024/8/12543. 3. 概括(概括(GeneralizationGeneralization)l 定义类型之间的一种子集联系定义类型之间的一种子集联系l 它抽象了类型之间的它抽象了类型之间的“is subset of”is subset of”的语义的语义l 概括有一个很重要的性质:继承性。子类继承超类上概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。定义的所有抽象。学生学生本科生本科生研究生研究生2024/8/1255l数据抽象的用途数据抽象的用途p对需求分析阶段收集到的数据进行分类、组织对需求分析阶段收集到的数据进行分类、组织(
50、聚集),形成(聚集),形成实体实体实体的属性,标识实体的码实体的属性,标识实体的码确定实体之间的联系类型确定实体之间的联系类型(1 :1(1 :1,1 :n1 :n,m :n)m :n)2024/8/1256局部视图设计局部视图设计设计分设计分E-RE-R图的步骤图的步骤: : 选择局部应用选择局部应用 逐一设计分逐一设计分E-RE-R图图2024/8/1257选择局部应用选择局部应用需求分析阶段,已用多层数据流图和数据字典描述了整个系统。需求分析阶段,已用多层数据流图和数据字典描述了整个系统。设设计计分分E-RE-R图图首首先先需需要要根根据据系系统统的的具具体体情情况况,在在多多层层的的数
51、数据据流流图图中中选选择择一一个个适适当当层层次次的的数数据据流流图图,让让这这组组图图中中每每一一部部分分对对应应一一个个局局部应用,然后以这一层次的数据流图为出发点,设计分部应用,然后以这一层次的数据流图为出发点,设计分E-RE-R图。图。 通常以通常以中层数据流图中层数据流图作为设计分作为设计分E-RE-R图的依据。原因:图的依据。原因:高层数据流图只能反映系统的概貌高层数据流图只能反映系统的概貌中层数据流图能较好地反映系统中各局部应用的子系统组成中层数据流图能较好地反映系统中各局部应用的子系统组成低层数据流图过细低层数据流图过细2024/8/1258例例:由由于于学学籍籍管管理理、课课
52、程程管管理理等等都都不不太太复复杂杂,因因此此可可以以它它们们入入手手设设计计学学生生管管理理子子系系统统的的分分E-RE-R图图。如如果果局局部部应应用用比比较较复复杂杂,则则可可以以从从更更下下层层的的数数据据流图入手。流图入手。2024/8/1259逐一设计分逐一设计分E-RE-R图图l如何抽象实体和属性如何抽象实体和属性p实体:现实世界中一组实体:现实世界中一组具有某些共同特性和行为的对象具有某些共同特性和行为的对象就可以抽象为一个实体。对象和实体之间是就可以抽象为一个实体。对象和实体之间是“is member is member of”of”的关系。的关系。 例:在学校环境中,可把张
53、英、刘晨等对象抽象为学生实体。例:在学校环境中,可把张英、刘晨等对象抽象为学生实体。p属性:属性:对象类型的组成成分对象类型的组成成分可以抽象为实体的属性。可以抽象为实体的属性。组成成分与对象类型之间是组成成分与对象类型之间是“is part ofis part of的关系。的关系。 例:学号、姓名、专业、年级等可以抽象为学生实体的属性。例:学号、姓名、专业、年级等可以抽象为学生实体的属性。 其中学号为标识学生实体的码。其中学号为标识学生实体的码。2024/8/1260l如何区分实体和属性如何区分实体和属性p实体与属性是实体与属性是相对而言相对而言的。同一事物在一种应用环境中作为的。同一事物在
54、一种应用环境中作为“属性属性”,在另一种应用环境中就必须作为,在另一种应用环境中就必须作为“实体实体”。例:学校中的系,在某种应用环境中,它只是作为例:学校中的系,在某种应用环境中,它只是作为“学生学生”实体的实体的一个属性;而在另一种环境中,由于需要考虑一个系的系主任、教一个属性;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办公地点等,此时它就需要作为实体了。师人数、学生人数、办公地点等,此时它就需要作为实体了。p一般原则一般原则属性不能再具有需要描述的性质。即属性必须是不可分的数据属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。项,不
55、能再由另一些属性组成。属性不能与其他实体具有联系。联系只发生在实体之间。属性不能与其他实体具有联系。联系只发生在实体之间。p符合上述两条特性的事物一般作为属性对待。符合上述两条特性的事物一般作为属性对待。p为了简化为了简化E-RE-R图的处置,现实世界中的事物凡能够作为属性对图的处置,现实世界中的事物凡能够作为属性对待的,应尽量作为属性。待的,应尽量作为属性。2024/8/1261举例举例例例1 1:“学生学生”由学号、姓名等属性进一步描述,根据准由学号、姓名等属性进一步描述,根据准则,则,“学生学生”只能作为实体,不能作为属性。只能作为实体,不能作为属性。例例2 2:职称通常作为教师实体的属
56、性,但在涉及住房分配:职称通常作为教师实体的属性,但在涉及住房分配时,由于分房与职称有关,也就是说职称与住房实体时,由于分房与职称有关,也就是说职称与住房实体之间有联系,根据准则,这时把职称作为实体来处之间有联系,根据准则,这时把职称作为实体来处理会更合适些。理会更合适些。2024/8/12626.3.4 6.3.4 视图的集成视图的集成l各个局部视图即分各个局部视图即分E-RE-R图建立好后,还需要对它们进行合图建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构即总并,集成为一个整体的数据概念结构即总E-RE-R图。图。l视图集成的两种方式视图集成的两种方式p 一次集成一次集成一次
57、集成多个分一次集成多个分E-RE-R图图通常用于局部视图比较简单时通常用于局部视图比较简单时p 逐步累积式逐步累积式首先集成两个局部视图(通常是比较关键的两个局首先集成两个局部视图(通常是比较关键的两个局部视图)部视图)以后每次将一个新的局部视图集成进来以后每次将一个新的局部视图集成进来2024/8/1263(E-R)1(E-R)1(E-R)2(E-R)2(E-R)3(E-R)3初步初步E-RE-R基本基本E-RE-R(E-R)1(E-R)1(E-R)2(E-R)2(E-R)3(E-R)3初步初步E-RE-R基本基本E-RE-R(E-R)12(E-R)12图图6.25 6.25 视图集成的两种
58、方式视图集成的两种方式2024/8/1264l集成局部集成局部E-RE-R图的步骤图的步骤1.1. 合并合并:解决各分:解决各分E-RE-R图的冲突,将其合并生成初步的图的冲突,将其合并生成初步的E-RE-R图。图。2. 2. 修改与重构修改与重构:消除不必要的冗余,生成基本:消除不必要的冗余,生成基本E-RE-R图。图。2024/8/1265合并分合并分E-RE-R图,生成初步图,生成初步E-RE-R图图l各分图存在冲突各分图存在冲突p 各个局部应用所面向的问题不同各个局部应用所面向的问题不同 由不同的设计人员进行设计由不同的设计人员进行设计 各个分各个分E-RE-R图之间必定会存在许多不一
59、致的地方图之间必定会存在许多不一致的地方p 合并分合并分E-RE-R图的主要工作与关键所在:合理消除各分图的主要工作与关键所在:合理消除各分 E-R E-R图的冲突图的冲突冲突的种类冲突的种类 属性冲突属性冲突 命名冲突命名冲突 结构冲突结构冲突2024/8/1266属性冲突属性冲突l两类属性冲突两类属性冲突p属性域冲突属性域冲突:属性值的类型、取值范围或取值集合不同。:属性值的类型、取值范围或取值集合不同。例例1: 1: 由由于于学学号号是是数数字字,因因此此某某些些部部门门(即即局局部部应应用用)将将学学号号定定义义为为整整数数形形式式,而而由由于于学学号号不不用用参参与与运运算算,因因此
60、此另另一一些些部部门门(即即局局部部应用)将学号定义为字符型形式。应用)将学号定义为字符型形式。例例2: 2: 某某些些部部门门(即即局局部部应应用用)以以出出生生日日期期形形式式表表示示学学生生的的年年龄龄,而另一些部门(即局部应用)用整数形式表示学生的年龄。而另一些部门(即局部应用)用整数形式表示学生的年龄。p属性取值单位冲突属性取值单位冲突例例:学学生生的的身身高高,有有的的以以米米为为单单位位,有有的的以以厘厘米米为为单单位位,有有的的以以尺尺为单位。为单位。l属性冲突的属性冲突的解决方法解决方法p通常用通常用讨论、协商讨论、协商等行政手段加以解决等行政手段加以解决2024/8/126
61、7命名冲突命名冲突l两类命名冲突两类命名冲突p同名异义同名异义:不同意义的对象在不同的局部应用中具有相同的名字:不同意义的对象在不同的局部应用中具有相同的名字 例:局部应用例:局部应用A A中将教室称为房间中将教室称为房间 局部应用局部应用B B中将学生宿舍称为房间中将学生宿舍称为房间p异名同义异名同义:同一意义的对象在不同的局部应用中具有不同的名字:同一意义的对象在不同的局部应用中具有不同的名字 例:有的部门把教科书称为课本例:有的部门把教科书称为课本 有的部门则把教科书称为教材有的部门则把教科书称为教材l命名冲突可能发生在属性级、实体级、联系级上。其中属性命名冲突可能发生在属性级、实体级、
62、联系级上。其中属性的命名冲突更为常见。的命名冲突更为常见。l命名冲突的命名冲突的解决方法解决方法p通过通过讨论、协商讨论、协商等行政手段加以解决等行政手段加以解决2024/8/1268结构冲突结构冲突l三类结构冲突三类结构冲突(1)(1)p同一对象在不同应用中具有不同的抽象同一对象在不同应用中具有不同的抽象 例,例,“课程课程”在某一局部应用中被当作实体在某一局部应用中被当作实体 在另一局部应用中则被当作属性在另一局部应用中则被当作属性解决方法:通常是把解决方法:通常是把属性变换为实体或把实体变属性变换为实体或把实体变换为属性换为属性,使同一对象具有相同的抽象。变换时,使同一对象具有相同的抽象
63、。变换时要遵循两个准则。要遵循两个准则。 属性不能再具有需要描述的性质。即属性必须是不可分的属性不能再具有需要描述的性质。即属性必须是不可分的 数据项,不能再由另一些属性组成。数据项,不能再由另一些属性组成。 属性不能与其他实体具有联系。联系只发生在实体之间。属性不能与其他实体具有联系。联系只发生在实体之间。2024/8/1269p同一实体在不同局部视图中所包含的属性不完全相同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。同,或者属性的排列次序不完全相同。产生原因产生原因:不同的局部应用关心的是该:不同的局部应用关心的是该实体的不实体的不同侧面同侧面。解决方法解决
64、方法:使该实体的属性取各分:使该实体的属性取各分E-RE-R图中图中属性属性的并集的并集,再适当设计属性的次序。,再适当设计属性的次序。2024/8/1270学生学生学号学号 姓名姓名性别性别平均成绩平均成绩(a)(a)在局部应用在局部应用A A中中学生学生学号学号姓名姓名出生日期出生日期年级年级所在系所在系(b)(b)在局部应用在局部应用B B中中学生学生学号学号 姓名姓名 政治面貌政治面貌 (c)(c)在局部应用在局部应用C C中中2024/8/1271(d)(d)合并后合并后学生学生政治政治面貌面貌 学号学号出生出生日期日期年级年级所在系所在系平均平均成绩成绩姓名姓名性别性别2024/8
65、/1272p实体之间的联系在不同局部视图中呈现不同的类型实体之间的联系在不同局部视图中呈现不同的类型例例1 1, 实体实体E1E1与与E2E2在局部应用在局部应用A A中是多对多联系,而中是多对多联系,而在局部应用在局部应用B B中是一对多联系中是一对多联系例例2 2, 在局部应用在局部应用X X中中E1E1与与E2E2发生联系,而在局部应发生联系,而在局部应用用Y Y中中E1E1、E2E2、E3E3三者之间有联系。三者之间有联系。解决方法解决方法:根据应用语义对:根据应用语义对实体联系的类型进行实体联系的类型进行综合或调整综合或调整。2024/8/1273例例:图图6.276.27中中零零件
66、件与与产产品品之之间间存存在在多多对对多多的的联联系系“构构成成”。产产品品、零零件件与与供供应应商商三三者者之之间间还还存存在在多多对对多多的的联联系系“供供应应”,这这两两个个联系互相不能包含,在合并两个分联系互相不能包含,在合并两个分E-RE-R图时应把它们综合起来。图时应把它们综合起来。产品产品零件零件构成构成数量数量n nm m产品产品零件零件供应供应数量数量n nm m供应商供应商p p产品产品零件零件供应供应数量数量1 1n nm m供应商供应商p p数量数量2 2构成构成n nm m2024/8/1274消除不必要的冗余,设计基本消除不必要的冗余,设计基本E-RE-R图图 所谓
67、所谓冗余的数据是指可由基本数据导出的数据冗余的数据是指可由基本数据导出的数据,冗余的联系是冗余的联系是指可由其他联系导出的联系指可由其他联系导出的联系。冗余数据和冗余联系容易。冗余数据和冗余联系容易破坏数据库破坏数据库的完整性的完整性,给数据库的维护增加困难,给数据库的维护增加困难,应当予以消除应当予以消除。消除了冗余。消除了冗余后的初步后的初步E-RE-R图称为基本图称为基本E-RE-R图。图。 消除冗余主要采用消除冗余主要采用分析方法分析方法。 消除冗余可采用消除冗余可采用规范化理论规范化理论。 以数据字典和数据以数据字典和数据流图为依据,根据数据流图为依据,根据数据字典中关于数据项之间字
68、典中关于数据项之间逻辑关系的说明来消除逻辑关系的说明来消除冗余。冗余。 函数依赖的概念提函数依赖的概念提供了消除冗余联系的形供了消除冗余联系的形式化工具。式化工具。2024/8/1275例如:其中例如:其中 Q3=Q1Q3=Q1Q2Q2,Q4=Q5Q4=Q5产品产品构成构成n nm m使用使用用量用量Q3Q3零件零件零件数零件数Q1Q1消耗消耗存放量存放量Q5Q5材料材料存放存放m mn nn n1 1存放量存放量Q4Q4产品产品m mm m仓库仓库n n冗余冗余冗余冗余图图6.28 6.28 消除冗余消除冗余 并不是所有的冗余数据和冗余联系都必须加以消除。并不是所有的冗余数据和冗余联系都必须
69、加以消除。如消除则查询效率降低,可通过定义完整性约束条件保证数据一致性m mn n n n耗用量耗用量Q2Q22024/8/1276概念结构设计小结概念结构设计小结l什么是概念结构设计什么是概念结构设计现实世界现实世界现实世界现实世界机器世界机器世界机器世界机器世界信息世界信息世界信息世界信息世界需求分析需求分析需求分析需求分析概念结构设计概念结构设计概念结构设计概念结构设计l概念结构设计的步骤概念结构设计的步骤p抽象数据并设计局部视图抽象数据并设计局部视图p集成局部视图,得到全局概念结构集成局部视图,得到全局概念结构p验证整体概念结构验证整体概念结构l数据抽象数据抽象p分类分类p聚集聚集p概
70、括概括2024/8/1277l设计局部视图设计局部视图 选择局部应用选择局部应用 逐一设计分逐一设计分E-RE-R图图p标定局部应用中的实体、属性、码,实体间的联系标定局部应用中的实体、属性、码,实体间的联系p用用E-RE-R图描述出来图描述出来l集成局部视图集成局部视图1.1.合并分合并分E-RE-R图,生成初步图,生成初步E-RE-R图图p消除冲突:消除冲突: 属性冲突属性冲突 命名冲突命名冲突 结构冲突结构冲突2. 2. 修改与重构修改与重构p消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-RE-R图图 分析方法分析方法 规范化理论规范化理论2024/8/12786.4
71、6.4 逻辑结构设计逻辑结构设计l 逻辑结构设计的任务逻辑结构设计的任务p概念结构是各种数据模型的共同基础概念结构是各种数据模型的共同基础p为了能够用某一为了能够用某一DBMSDBMS实现用户需求,还必须实现用户需求,还必须将概念结将概念结构进一步转化为相应的数据模型构进一步转化为相应的数据模型,这正是数据库逻辑,这正是数据库逻辑结构设计所要完成的任务。结构设计所要完成的任务。2024/8/1279l 逻辑结构设计的步骤逻辑结构设计的步骤p将概念结构转化为一般的关系、网状、层次模型将概念结构转化为一般的关系、网状、层次模型p将将转转化化来来的的关关系系、网网状状、层层次次模模型型向向特特定定D
72、BMSDBMS支支持下的数据模型转换持下的数据模型转换p对数据模型进行优化对数据模型进行优化2024/8/1280概念模型概念模型基本基本E-RE-R图图一般数据模型一般数据模型关系、网状、层次关系、网状、层次特定的特定的DBMSDBMS支持下的数支持下的数据模型据模型优化的数优化的数据模型据模型转换转换规则规则DBMSDBMS的特的特点和限制点和限制优化优化方法方法图图6.31 6.31 逻辑结构设计的三个步骤逻辑结构设计的三个步骤2024/8/12816.4.1 6.4.1 E-RE-R图向关系模型的转换图向关系模型的转换6.4.2 6.4.2 数据模型的优化数据模型的优化6.4.3 6.
73、4.3 设计用户子模式设计用户子模式 逻辑结构设计逻辑结构设计2024/8/12826.4.1 E-R6.4.1 E-R图向关系模型的转换图向关系模型的转换l转换内容转换内容pE-RE-R图由实体、实体的属性和实体之间的联系三个要素组成图由实体、实体的属性和实体之间的联系三个要素组成p关系模型的逻辑结构是一组关系模式的集合关系模型的逻辑结构是一组关系模式的集合p将将E-RE-R图转换为关系模型:图转换为关系模型:将实体、实体的属性和实体间的联系转化为关系模式将实体、实体的属性和实体间的联系转化为关系模式。l转换原则转换原则p一个一个实体型实体型转换为一个独立关系模式;转换为一个独立关系模式;p
74、一个一个1 1:1 1联系联系可以转换为一个独立关系模式,也可以与任意一端对应的关系模式合可以转换为一个独立关系模式,也可以与任意一端对应的关系模式合并;并;p一个一个1 1:n n联系联系可以转换为一个独立关系模式,也可以与可以转换为一个独立关系模式,也可以与n n端对应的关系模式合并;端对应的关系模式合并;p一个一个m m:n n联系联系转换为一个独立关系模式;转换为一个独立关系模式;p三个或三个以上实体间的一个多元联系三个或三个以上实体间的一个多元联系可以转换为一个关系模式;可以转换为一个关系模式;p具有具有相同码的关系模式相同码的关系模式可合并。可合并。2024/8/1283 一个实体
75、型转换为一个关系模式。一个实体型转换为一个关系模式。p关系的属性:实体型的属性关系的属性:实体型的属性p关系的码:实体型的码关系的码:实体型的码部门部门属于属于职工职工领导领导天数天数参加参加负责负责产品产品供应商供应商供应供应供应量供应量零件零件1 11 11 1n nn n1 11 1m mm mn np p部门部门职工职工产品产品供应商供应商零件零件2024/8/12842.2.一个一个1 1:1 1联系:联系:1)1)转换为一个独立的关系模式转换为一个独立的关系模式p关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的属性:与该联系相连的各实体的码以及联系本身的属性p关系的候选
76、码:每个实体的码均是该关系的候选码关系的候选码:每个实体的码均是该关系的候选码2)2)与某一端对应的关系模式合并与某一端对应的关系模式合并p合并后关系的属性:加入对应关系的码和联系本身的属性合并后关系的属性:加入对应关系的码和联系本身的属性p合并后关系的码:不变合并后关系的码:不变部门部门属于属于职工职工领导领导天数天数参加参加负责负责产品产品供应商供应商供应供应供应量供应量零件零件1 11 11 1n nn n1 11 1m mm mn np p领导领导负责负责2024/8/1285例:将教师和班级间的例:将教师和班级间的1:11:1“管理管理”联系转换为关系模式:联系转换为关系模式:(1
77、1)转换为一个独立的关系模式:)转换为一个独立的关系模式: 管理(管理(教师号教师号,班级号),班级号) 或或管理(教师号,管理(教师号,班级号班级号)(2 2)“管理管理”联系与班级关系模式合并,则只需在班级关系中加入教师联系与班级关系模式合并,则只需在班级关系中加入教师关系的码,即教师号:关系的码,即教师号:班级:(班级:(班级号班级号,学生人数,学生人数,教师号教师号)(3 3)“管理管理”联系与教师关系模式合并,则只需在教师关系中加入班级联系与教师关系模式合并,则只需在教师关系中加入班级关系的码,即班级号:关系的码,即班级号:教师:(教师:(教师号教师号,姓名,性别,职称,姓名,性别,
78、职称,班级号班级号,是否为优秀班主任),是否为优秀班主任)2024/8/1286注意:注意:l从理论上讲,从理论上讲,1:11:1联系可以与任意一端对应的关系模式合联系可以与任意一端对应的关系模式合并。并。l但在一些情况下,但在一些情况下,与不同的关系模式合并效率会大不一与不同的关系模式合并效率会大不一样样。因此究竟应该与哪端的关系模式合并需要。因此究竟应该与哪端的关系模式合并需要依应用的依应用的具体情况而定具体情况而定。l由于连接操作是最费时的操作,所以由于连接操作是最费时的操作,所以一般应以尽量减少一般应以尽量减少连接操作连接操作为目标。为目标。 例如,如果经常要查询某个班级的班主任姓名,
79、则将例如,如果经常要查询某个班级的班主任姓名,则将管理联系与教师关系合并更好些。管理联系与教师关系合并更好些。2024/8/12873.3.一个一个1 1:n n联系:联系:1)1)转换为一个独立的关系模式转换为一个独立的关系模式p关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的属性:与该联系相连的各实体的码以及联系本身的属性p关系的候选码:关系的候选码:n n端实体的码端实体的码2)2)与与n n端对应的关系模式合并(可减少关系个数,常采用该方法)端对应的关系模式合并(可减少关系个数,常采用该方法)p合并后关系的属性:在合并后关系的属性:在n n端关系中加入端关系中加入1 1端关
80、系的码和联系本身端关系的码和联系本身的属性的属性p合并后关系的码:不变合并后关系的码:不变部门部门属于属于职工职工领导领导天数天数参加参加负责负责产品产品供应商供应商供应供应供应量供应量零件零件1 11 11 1n nn n1 11 1m mm mn np p属于属于2024/8/1288例:学生和班级间的例:学生和班级间的1:n1:n“组成组成”联系,将其转换为关联系,将其转换为关系模式:系模式: 1)1)使其成为一个独立的关系模式:使其成为一个独立的关系模式:组成(组成(学号学号,班级号),班级号) 2)2)将其学生关系模式合并:将其学生关系模式合并:学生学生(学号学号,姓名,出生日期,所
81、在系,姓名,出生日期,所在系, 年级,年级,班级号班级号,平均成绩),平均成绩)2024/8/12894.4.一个一个m m:n n联系转换为一个关系模式。联系转换为一个关系模式。p关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的属性:与该联系相连的各实体的码以及联系本身的属性p关系的候选码:各实体码的组合关系的候选码:各实体码的组合部门部门属于属于职工职工领导领导天数天数参加参加负责负责产品产品供应商供应商供应供应供应量供应量零件零件1 11 11 1n nn n1 11 1m mm mn np p参加参加例,例,“选修选修”联系是一个联系是一个m:nm:n联系,可以将它转换为如
82、下关系模式,联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:选修(其中学号与课程号为关系的组合码:选修(学号学号,课程号课程号,成绩),成绩)2024/8/12905.5.三个或三个以上实体间的一个多元联系转换为一个关系模式。三个或三个以上实体间的一个多元联系转换为一个关系模式。p关系的属性:与该多元联系相连的各实体的码以及联系本身的属性关系的属性:与该多元联系相连的各实体的码以及联系本身的属性p关系的码:各实体码的组合关系的码:各实体码的组合例,教师、课程和教材之间的一个三元例,教师、课程和教材之间的一个三元“讲授讲授”联系,可以将它转换联系,可以将它转换为如下关系模式,其
83、中课程号、教师号和书号为关系的组合码:为如下关系模式,其中课程号、教师号和书号为关系的组合码:讲授(讲授(课程号,教师号,书号课程号,教师号,书号)部门部门属于属于职工职工领导领导天数天数参加参加负责负责产品产品供应商供应商供应供应供应量供应量零件零件1 11 11 1n nn n1 11 1m mm mn np p供应供应2024/8/12916. 6. 具有相同码的关系模式可合并。具有相同码的关系模式可合并。p目的:减少系统中的关系个数。目的:减少系统中的关系个数。p合并方法:将其中一个关系模式的全部属性加入到另一个关系模合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去
84、掉其中的同义属性(可能同名也可能不同名),并式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。适当调整属性的次序。例,学生和宿舍间的例,学生和宿舍间的“居住居住”关系模式:关系模式: 居住(居住(学号学号,宿舍号),宿舍号) 学生关系模式:学生关系模式: 学生(学生(学号学号,姓名,出生日期,所在系,年级,班级号,姓名,出生日期,所在系,年级,班级号, 平均成绩)平均成绩) 都以学号为码,可以将它们合并为一个关系模式:都以学号为码,可以将它们合并为一个关系模式:学生(学生(学号学号,姓名,出生日期,所在系,年级,班级号,姓名,出生日期,所在系,年级,班级号, 宿舍号,
85、平均成绩)宿舍号,平均成绩)2024/8/12926.4.2 6.4.2 数据模型的优化数据模型的优化l数据库逻辑设计的结果不是唯一的。数据库逻辑设计的结果不是唯一的。l得到初步数据模型后,还应该适当地修改、调整数据模得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就型的结构,以进一步提高数据库应用系统的性能,这就是数据模型的优化。是数据模型的优化。l关系数据模型的优化通常以规范化理论为指导。关系数据模型的优化通常以规范化理论为指导。2024/8/1294l优化数据模型的方法优化数据模型的方法p确定数据依赖确定数据依赖p对于各个关系模式之间的数据依
86、赖进行极小化处理,对于各个关系模式之间的数据依赖进行极小化处理,消除冗余消除冗余的联系的联系。p按照数据依赖的理论对关系模式逐一进行分析,考查是否存在按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式确定各关系模式分别属于第几范式分别属于第几范式。p按照需求分析阶段得到的各种应用对数据处理的要求,分析对按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式于这样的应用环境这些模式是否合适是否合适,确定,确定是否要是否要对它们进行对它们进行合并或分解合并或分解。p按照需求分析
87、阶段得到的各种应用对数据处理的要求,对关系按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式进行必要的分解,以模式进行必要的分解,以提高数据操作的效率和存储空间的利提高数据操作的效率和存储空间的利用率用率。2024/8/12951. 1. 确定数据依赖确定数据依赖p按需求分析阶段所得到的语义,分别写出每个关系模式内部各按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖。属性之间的数据依赖以及不同关系模式属性之间数据依赖。2. 2. 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联对于各个关系模式之间的数据依赖进行极小化处理
88、,消除冗余的联系。系。p具体方法为:分析方法和规范化理论。具体方法为:分析方法和规范化理论。2024/8/1296l并不是规范化程度越高的关系就越优。并不是规范化程度越高的关系就越优。p当一个应用的查询中经常涉及到两个或多个关系模式的属性当一个应用的查询中经常涉及到两个或多个关系模式的属性时,系统必须经常地进行联接运算,而联系运算的代价是相时,系统必须经常地进行联接运算,而联系运算的代价是相当高的,可以说关系模型低效的主要原因就是做联接运算引当高的,可以说关系模型低效的主要原因就是做联接运算引起的,因此在这种情况下,第二范式甚至第一范式也许是最起的,因此在这种情况下,第二范式甚至第一范式也许是
89、最好的。好的。p非非BCNFBCNF的关系模式虽然从理论上分析会存在不同程度的更新的关系模式虽然从理论上分析会存在不同程度的更新异常,但如果在实际应用中对此关系模式只是查询,并不执异常,但如果在实际应用中对此关系模式只是查询,并不执行更新操作,则就不会产生实际影响。行更新操作,则就不会产生实际影响。p对于一个具体应用来说,到底规范化进行到什么程度,需要对于一个具体应用来说,到底规范化进行到什么程度,需要权衡响应时间和潜在问题两者的利弊才能决定。一般说来,权衡响应时间和潜在问题两者的利弊才能决定。一般说来,第三范式就足够了。第三范式就足够了。2024/8/1297例:在关系模式:学生成绩单例:在
90、关系模式:学生成绩单( (学号学号, ,英语英语, ,数学数学, ,语文语文, ,平均成绩平均成绩) )中中存在下列函数依赖:存在下列函数依赖: 学号学号英语英语 学号学号数学数学 学号学号语文语文 学号学号平均成绩平均成绩 ( (英语英语, , 数学数学, , 语文语文)平均成绩平均成绩 显然有:显然有: 学号学号( (英语英语, ,数学数学, ,语文语文) ) 因此该关系模式中存在传递函数信赖,是因此该关系模式中存在传递函数信赖,是2NF2NF关系。关系。 虽然平均成绩可以由其他属性推算出来,但如果应用中需要虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,为提高
91、效率,我们仍然可保留该冗余经常查询学生的平均成绩,为提高效率,我们仍然可保留该冗余数据,对关系模式不再做进一步分解。数据,对关系模式不再做进一步分解。2024/8/12985. 5. 对关系模式进行必要的分解,以提高数据操作的效率和存储空间的对关系模式进行必要的分解,以提高数据操作的效率和存储空间的利用率。利用率。p常用分解方法:常用分解方法: 水平分解水平分解、垂直分解垂直分解p水平分解水平分解什么是水平分解什么是水平分解把把( (基基本本) )关关系系的的元元组组分分为为若若干干子子集集合合,定定义义每每个个子子集集合合为为一一个子关系,以提高系统的效率。个子关系,以提高系统的效率。水平分
92、解的适用范围水平分解的适用范围满足满足“80/2080/20原则原则”的应用的应用并发事务经常存取不相交的数据并发事务经常存取不相交的数据2024/8/1299l 满足满足“80/2080/20原则原则”的应用的应用p80/2080/20原则:一个大关系中,经常被使用的数据只是关系原则:一个大关系中,经常被使用的数据只是关系的一部分,约的一部分,约20%20%p把经常使用的数据分解出来,形成一个子关系,可以减少把经常使用的数据分解出来,形成一个子关系,可以减少查询的数据量。查询的数据量。 l 并发事务经常存取不相交的数据并发事务经常存取不相交的数据p如如果果关关系系R R上上具具有有n n个个
93、事事务务,而而且且多多数数事事务务存存取取的的数数据据不不相相交交,则则R R可可分分解解为为少少于于或或等等于于n n个个子子关关系系,使使每每个个事事务务存存取取的数据对应一个关系。的数据对应一个关系。例如:将各个专业学生的成绩单独存放例如:将各个专业学生的成绩单独存放2024/8/12100l垂直分解垂直分解p什么是垂直分解什么是垂直分解把关系模式把关系模式R R的属性分解为若干子集合,形成若干子关系模式。的属性分解为若干子集合,形成若干子关系模式。p垂直分解的原则垂直分解的原则经常在一起使用的属性从经常在一起使用的属性从R R中分解出来形成一个子关系模式。中分解出来形成一个子关系模式。
94、p垂直分解的优点垂直分解的优点可以提高某些事务的效率可以提高某些事务的效率p垂直分解的缺点垂直分解的缺点可能使另一些事务不得不执行连接操作,从而降低了效率。可能使另一些事务不得不执行连接操作,从而降低了效率。pp垂直分解的适用范围垂直分解的适用范围垂直分解的适用范围垂直分解的适用范围 取决于分解后取决于分解后取决于分解后取决于分解后R R R R上的所有事务的总效率是否得到了提高。上的所有事务的总效率是否得到了提高。上的所有事务的总效率是否得到了提高。上的所有事务的总效率是否得到了提高。pp进行垂直分解的方法进行垂直分解的方法进行垂直分解的方法进行垂直分解的方法 简单情况:直观分解简单情况:直
95、观分解简单情况:直观分解简单情况:直观分解例如:将班班长的信息单独存放例如:将班班长的信息单独存放2024/8/121016.4.3 6.4.3 设计用户子模式设计用户子模式l定义数据库模式主要是从系统的定义数据库模式主要是从系统的时间效率、空间效率、易维护时间效率、空间效率、易维护等等角度出发。角度出发。l定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个方面:方面:p使用更符合用户习惯的使用更符合用户习惯的别名别名p可以对不同级别的用户可以对不同级别的用户定义不同的定义不同的ViewView,以保证系统的安全性,以保证系统的安全
96、性p简化简化用户对系统的使用用户对系统的使用 2024/8/12102(1) (1) 使用更符合用户习惯的别名使用更符合用户习惯的别名p合并各分合并各分E-RE-R图曾做了消除命名冲突的工作,以使数据库系统中图曾做了消除命名冲突的工作,以使数据库系统中同一关系和属性具有唯一的名字。这在设计数据库整体结构时同一关系和属性具有唯一的名字。这在设计数据库整体结构时是非常必要的。是非常必要的。p但对于某些局部应用,由于改用了不符合用户习惯的属性名,但对于某些局部应用,由于改用了不符合用户习惯的属性名,可能会使他们感到不方便。可能会使他们感到不方便。p因此在设计用户的子模式时可以重新定义某些属性名,使其
97、与因此在设计用户的子模式时可以重新定义某些属性名,使其与用户习惯一致。用户习惯一致。例:负责学籍管理的用户习惯于称教师模式的职工号为教师编号,例:负责学籍管理的用户习惯于称教师模式的职工号为教师编号,因此可以定义视图,在视图中职工号重定义为教师编号。因此可以定义视图,在视图中职工号重定义为教师编号。2024/8/12103 (2) (2) 针对不同级别的用户定义不同的外模式,以满足系统对针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。安全性的要求。例:例:教师关系模式包括职工号、姓名、性别、出生日期、婚姻状况、学教师关系模式包括职工号、姓名、性别、出生日期、婚姻状况、学历、学位、
98、政治面貌、职称、职务、工资、工龄、教学效果等属性。历、学位、政治面貌、职称、职务、工资、工龄、教学效果等属性。 学籍管理应用学籍管理应用只能查询教师的职工号、姓名、性别、职称数据;只能查询教师的职工号、姓名、性别、职称数据; 课程管理应用课程管理应用只能查询教师的职工号、姓名、性别、学历、学位、职只能查询教师的职工号、姓名、性别、学历、学位、职称、教学效果数据;称、教学效果数据; 教师管理应用教师管理应用则可以查询教师的全部数据。则可以查询教师的全部数据。2024/8/12104定义两个外模式:定义两个外模式:教师教师_ _学籍管理学籍管理( (职工号,姓名,性别,职称职工号,姓名,性别,职称
99、) )教师教师_ _课程管理课程管理( (工号,姓名,性别,学历,学位,职称,教学效果工号,姓名,性别,学历,学位,职称,教学效果) )授权学籍管理应用只能访问教师授权学籍管理应用只能访问教师_ _学籍管理视图学籍管理视图授权课程管理应用只能访问教师授权课程管理应用只能访问教师_ _课程管理视图课程管理视图授权教师管理应用能访问教师表授权教师管理应用能访问教师表这样就可以防止用户非法访问本来不允许他们查询的数据,保证了系这样就可以防止用户非法访问本来不允许他们查询的数据,保证了系统的安全性。统的安全性。2024/8/12105(3) (3) 简化用户对系统的使用简化用户对系统的使用p如果某些局
100、部应用中经常要使用某些很复杂的查询,为了方便如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查询定义为视图。用户,可以将这些复杂查询定义为视图。2024/8/121066.5 6.5 数据库的物理设计数据库的物理设计l什么是数据库的物理设计什么是数据库的物理设计p数据库在物理设备上的数据库在物理设备上的存储结构存储结构与与存取方法存取方法称为数据库的物理结称为数据库的物理结构,它依赖于给定的计算机系统。构,它依赖于给定的计算机系统。p为一个给定的逻辑数据模型为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构选取一个最适合应用环境的物理结构的过程,就是数据库的物理
101、设计。的过程,就是数据库的物理设计。l数据库物理设计的步骤数据库物理设计的步骤p确定数据库的物理结构确定数据库的物理结构p对物理结构进行评价,评价的重点是时间和空间效率对物理结构进行评价,评价的重点是时间和空间效率p如果评价结果满足原设计要求则可进入到物理实施阶段,否则,如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。修改数据模型。2024/8/121076.5.1 6.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法6.5.2 6.5.2 关系
102、模式存取方法选择关系模式存取方法选择6.5.3 6.5.3 确定数据库的存储结构确定数据库的存储结构6.5.4 6.5.4 评价物理结构评价物理结构数据库的物理设计数据库的物理设计2024/8/121086.5.1 6.5.1 数据库的物理设计的内容和方法数据库的物理设计的内容和方法l设计物理数据库结构的准备工作设计物理数据库结构的准备工作 1. 1. 充分了解应用环境,详细分析要运行的事务,以获得充分了解应用环境,详细分析要运行的事务,以获得选择物理数据库设计所需参数选择物理数据库设计所需参数 2. 2. 充分了解所用充分了解所用RDBMSRDBMS的内部特征,特别是系统提供的的内部特征,特
103、别是系统提供的存取方法和存储结构存取方法和存储结构2024/8/121096.5.2 6.5.2 关系模式存取方式选择关系模式存取方式选择l数据库系统是多用户共享的系统,对同一个关系要建立数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。多条存取路径才能满足多用户的多种应用要求。l物理设计的第一个任务就是要确定选择哪些存取方法,物理设计的第一个任务就是要确定选择哪些存取方法,即建立哪些存取路径。即建立哪些存取路径。lDBMSDBMS常用存取方法常用存取方法p索引方法,目前主要是索引方法,目前主要是B+B+树索引方法树索引方法p聚簇(聚簇(ClusterC
104、luster)方法)方法pHASHHASH方法方法2024/8/12110如果一个(组)属性经常作为查询条件,可以考虑建立索引(组合索引)。如果一个(组)属性经常使用聚集函数,可以考虑建立索引。如果一个(组)属性经常作为连接条件,可以考虑建立索引。2024/8/12111HASH方法是用HASH函数存储和存取关系记录的方法。指定属性A作为HASH码,关系记录的存储地址由HASH(a)决定。关系属性主要用于连接条件或相等比较条件中,关系大小可预知且不变,DBMS支持动态HASH存取方式。2024/8/12112为提高某个属性(组)的查询速度,把该属性(组)具有相同值的元组集中存放在连续的物理块上
105、。经常在一起进行连接操作的关系,建立聚簇。一个关系的一组属性常用于相等条件的比较,建立聚簇。一个关系的一组属性上的值重复率很高,建立聚簇。2024/8/121136.5.3 6.5.3 确定数据库的存储结构确定数据库的存储结构l确定数据库物理结构的内容确定数据库物理结构的内容1. 1. 确定数据的存放位置和存储结构确定数据的存放位置和存储结构p 关系关系p 索引索引p 聚簇聚簇p 日志日志p 备份备份2. 2. 确定系统配置确定系统配置2024/8/12114确定系统配置确定系统配置lDBMSDBMS产品一般都提供了一些存储分配参数产品一般都提供了一些存储分配参数p 同时使用数据库的用户数同时
106、使用数据库的用户数p 同时打开的数据库对象数同时打开的数据库对象数p 使用的缓冲区长度、个数使用的缓冲区长度、个数p 时间片大小时间片大小p 数据库的大小数据库的大小p 装填因子装填因子p 锁的数目锁的数目p 等等等等l系统都为这些变量赋予了合理的缺省值。但是这些值不一定适系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合每一种应用环境,在进行物理设计时,需要根据应用环境确合每一种应用环境,在进行物理设计时,需要根据应用环境确定这些参数值,以使系统性能最优。定这些参数值,以使系统性能最优。 l在物理设计时对系统配置变量的调整只是初步的,在系统运行在物理设计时对系统配置变量的调整只是初步的
107、,在系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。系统性能。2024/8/121156.5.4 6.5.4 评价物理结构评价物理结构l评价内容评价内容p对数据库物理设计过程中产生的多种方案进行细致的评价,从中对数据库物理设计过程中产生的多种方案进行细致的评价,从中选择一个较优的方案选择一个较优的方案作为数据库的物理结构作为数据库的物理结构l评价方法评价方法p定量估算各种方案定量估算各种方案 存储空间存储空间 存取时间存取时间 维护代价维护代价p对估算结果进行权衡、比较,选择出一个较优的合理的物理结构对估算结果进行权
108、衡、比较,选择出一个较优的合理的物理结构p如果该结构不符合用户需求,则需要修改设计如果该结构不符合用户需求,则需要修改设计2024/8/121166.6 6.6 数据库的实施和维护数据库的实施和维护6.6.1 6.6.1 数据的载入和应用程序的调试数据的载入和应用程序的调试6.6.2 6.6.2 数据库的试运行数据库的试运行6.6.3 6.6.3 数据库的运行和维护数据库的运行和维护2024/8/12117l数据库结构建立好后,就可以向数据库中装载数据了。数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶段最主要的工作。组织数据入库是数据库实施阶段最主要的工作。l数据装
109、载方法数据装载方法p人工方法人工方法p计算机辅助数据入库计算机辅助数据入库数据载入数据载入2024/8/12118l人工方法:适用于小型系统人工方法:适用于小型系统p步骤步骤1) 1) 筛选数据。需要装入数据库中的数据通常都分散在各个部门的筛选数据。需要装入数据库中的数据通常都分散在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。出来。2) 2) 转换数据格式。筛选出来的需要入库的数据,其格式往往不符转换数据格式。筛选出来的需要入库的数据,其格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。合数据库要求
110、,还需要进行转换。这种转换有时可能很复杂。3) 3) 输入数据。将转换好的数据输入计算机中。输入数据。将转换好的数据输入计算机中。4) 4) 校验数据。检查输入的数据是否有误。校验数据。检查输入的数据是否有误。2024/8/12119l计算机辅助数据入库:适用于中大型系统计算机辅助数据入库:适用于中大型系统p步骤步骤1) 1) 筛选数据筛选数据2) 2) 输入数据。由录入员将原始数据直接输入计算机中。数据输入数据。由录入员将原始数据直接输入计算机中。数据输入子系统应提供输入界面。输入子系统应提供输入界面。3) 3) 校验数据。数据输入子系统采用多种检验技术检查输入数校验数据。数据输入子系统采用
111、多种检验技术检查输入数据的正确性。据的正确性。4) 4) 转换数据。数据输入子系统根据数据库系统的要求,从录转换数据。数据输入子系统根据数据库系统的要求,从录入的数据中抽取有用成分,对其进行分类,然后转换数据入的数据中抽取有用成分,对其进行分类,然后转换数据格式。抽取、分类和转换数据是数据输入子系统的主要工格式。抽取、分类和转换数据是数据输入子系统的主要工作,也是数据输入子系统的复杂性所在。作,也是数据输入子系统的复杂性所在。5) 5) 综合数据。数据输入子系统对转换好的数据根据系统的要综合数据。数据输入子系统对转换好的数据根据系统的要求进一步综合成最终数据。求进一步综合成最终数据。2024/
112、8/12120应用程序的调试应用程序的调试l数据库应用程序的设计应该与数据设计并行进行。数据库应用程序的设计应该与数据设计并行进行。l在数据库实施阶段,当数据库结构建立好后,就可以开在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试数据库的应用程序。调试应用程序时由于始编制与调试数据库的应用程序。调试应用程序时由于数据入库尚未完成,可先使用模拟数据。数据入库尚未完成,可先使用模拟数据。2024/8/12121数据库的试运行数据库的试运行l应用程序调试完成,并且已有一小部分数据入库后,就可应用程序调试完成,并且已有一小部分数据入库后,就可以开始数据库的试运行。以开始数据库的试运行。l数
113、据库试运行也称为联合调试,其主要工作包括:数据库试运行也称为联合调试,其主要工作包括:1 1)功能测试功能测试:实际运行应用程序,执行对数据库的各种:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。操作,测试应用程序的各种功能。2 2)性能测试性能测试:测量系统的性能指标,分析是否符合设计:测量系统的性能指标,分析是否符合设计目标。目标。2024/8/12122数据的运行和维护数据的运行和维护l数据库试运行结果符合设计目标后,数据库就可以真正投入数据库试运行结果符合设计目标后,数据库就可以真正投入运行了。运行了。l数据库投入运行标着开发任务的基本完成和维护工作的开始数据库投入
114、运行标着开发任务的基本完成和维护工作的开始l对数据库设计进行评价、调整、修改等维护工作是一个长期对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。的任务,也是设计工作的继续和提高。p应用环境在不断变化应用环境在不断变化p数据库运行过程中物理存储会不断变化数据库运行过程中物理存储会不断变化2024/8/12123 数据库设计概念数据库设计概念 需求分析需求分析 概念结构设计概念结构设计 逻辑结构设计逻辑结构设计 数据库的物理设计数据库的物理设计 数据库的实施和维护数据库的实施和维护小小 结结2024/8/12124 某学校有若干系,每个系有若干学生,若干课某学
115、校有若干系,每个系有若干学生,若干课程,每个学生只在一个系学习,同一门课只在一个程,每个学生只在一个系学习,同一门课只在一个系开设,某个学生选修了若干课程,每门课有若干系开设,某个学生选修了若干课程,每门课有若干学生选修。其中,学校包括属性:学校代码、学校学生选修。其中,学校包括属性:学校代码、学校名称、学校地址;系包括属性:系名、系代号、系名称、学校地址;系包括属性:系名、系代号、系主任名和电话;学生包括属性:学号、姓名、年龄、主任名和电话;学生包括属性:学号、姓名、年龄、性别、所在系代号;课程包含属性:课程号、课程性别、所在系代号;课程包含属性:课程号、课程名;学生上课后有一个成绩。名;学
116、生上课后有一个成绩。 今要建立该学生选修课程的数据库,请你设计:今要建立该学生选修课程的数据库,请你设计:关于此学校数据库的关于此学校数据库的E-RE-R图图, ,并把该并把该E-RE-R图转换为关图转换为关系模型,并标识出每个关系模式的主码。系模型,并标识出每个关系模式的主码。2024/8/121252024/8/12126学校:学校代码,学校名,学校地址;学校:学校代码,学校名,学校地址;系:系名,系代号,系主任名,电话,学校代码;系:系名,系代号,系主任名,电话,学校代码;学生:学号,姓名,年龄,性别,所在系代号;学生:学号,姓名,年龄,性别,所在系代号;课程:课程号,课程名,系代号;课
117、程:课程号,课程名,系代号;每个学生选修某门课的成绩。每个学生选修某门课的成绩。学校关系:学校关系:School(School(NoNo, Name, Add), Name, Add);学生关系:学生关系:Student(Student(SnoSno, , SnameSname, Sage, , Sage, SsexSsex, , DnoDno) );系关系:系关系:Dept(Dept(DnoDno, , DnameDname, , DmanagerDmanager, , DtelephoneDtelephone, No);, No);课程关系:课程关系:Course(Course(CnoCno, , CnameCname, , DnoDno) );学生选课关系:学生选课关系:SC(SC(SnoSno, , CnoCno, Grade), Grade);注:加横线的为码。注:加横线的为码。 2024/8/12127