1、2022-7-271 数据库设计概念数据库设计概念 需求分析需求分析 概念结构设计概念结构设计 逻辑结构设计逻辑结构设计 数据库的物理设计数据库的物理设计 数据库的实施和维护数据库的实施和维护 数据库设计数据库设计 第第6章章2022-7-272l数据库设计数据库设计是指对于一个给定的应用环境,是指对于一个给定的应用环境,构造构造最优最优的数据库的数据库模式模式,建立数据库及其应用系统,建立数据库及其应用系统,使之能够使之能够有效地存储数据有效地存储数据,满足各种用户的应用,满足各种用户的应用需求(信息要求和处理要求)。需求(信息要求和处理要求)。l在数据库领域内,常常把使用数据库的各类系统在
2、数据库领域内,常常把使用数据库的各类系统统称为统称为数据库应用系统数据库应用系统。6.1 6.1 数据库设计数据库设计2022-7-2732022-7-2746.1.1 6.1.1 数据库和信息系统数据库和信息系统l数据库是信息系统的数据库是信息系统的核心核心和和基础基础 把信息系统中大量的数据把信息系统中大量的数据按一定的模型按一定的模型组织起来组织起来 提供提供存储、维护、检索存储、维护、检索数据的功能数据的功能 使信息系统可以使信息系统可以方便、及时、准确方便、及时、准确地从数据库中获得所地从数据库中获得所需的信息需的信息l数据库是信息系统的各个部分能否紧密地结合在一数据库是信息系统的各
3、个部分能否紧密地结合在一起以及如何结合的起以及如何结合的关键关键所在所在l数据库设计是信息系统开发和建设的数据库设计是信息系统开发和建设的重要重要组成部分组成部分2022-7-275p数据库数据库的基本知识和数据库设计技术的基本知识和数据库设计技术p计算机科学计算机科学的基础知识和的基础知识和程序设计程序设计的方法和技巧的方法和技巧p软件工程软件工程的原理和方法的原理和方法p应用领域应用领域的知识的知识2022-7-2766.1.2 6.1.2 数据库设计的特点数据库设计的特点l数据库建设是硬件、软件和干件的结合数据库建设是硬件、软件和干件的结合p三分技术,七分管理,十二分基础数据三分技术,七
4、分管理,十二分基础数据p技术与管理的界面称之为技术与管理的界面称之为“干件干件”l 数据库设计应该与应用系统设计相结合数据库设计应该与应用系统设计相结合p结构(数据)设计:设计数据库框架或数据库结构结构(数据)设计:设计数据库框架或数据库结构p行为(处理)设计:设计应用程序、事务处理等行为(处理)设计:设计应用程序、事务处理等n结构和行为分离的设计结构和行为分离的设计p传统的软件工程忽视对应用中数据语义的分析和抽象,只要传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策有可能就尽量推迟数据结构设计的决策p早期的数据库设计致力于数据模型和建模方法研究,忽视了早
5、期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计对行为的设计2022-7-277现实世界现实世界概念模型设计概念模型设计子模式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计程序说明程序说明应用程序设计应用程序设计程序编码调试程序编码调试图图6.1 6.1 结构和行为分离的设计结构和行为分离的设计2022-7-2786.1.3 6.1.3 数据库设计方法简述数据库设计方法简述l手工试凑法手工试凑法 设计质量与设计人员的经验和水平有直接关系设计质量与设计人员的经
6、验和水平有直接关系 缺乏科学理论和工程方法的支持,工程的质量难以保证缺乏科学理论和工程方法的支持,工程的质量难以保证 数据库运行一段时间后常常又不同程度地发现各种问题,增加数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价了维护代价l规范设计法规范设计法 手工设计方法手工设计方法 基本思想:过程迭代和逐步求精基本思想:过程迭代和逐步求精2022-7-279l 新奥尔良(新奥尔良(New OrleansNew Orleans)方法)方法 将数据库设计分为四个阶段将数据库设计分为四个阶段 需求分析需求分析 概念设计概念设计 逻辑设计逻辑设计 物理设计物理设计l S.B.YaoS.B.
7、Yao方法方法 将数据库设计分为五个步骤将数据库设计分为五个步骤l I.R.PalmerI.R.Palmer方法方法 把数据库设计当成一步接一步的过程把数据库设计当成一步接一步的过程规范设计法中的典型方法规范设计法中的典型方法p 计算机辅助设计计算机辅助设计 ORACLE Designer 2000 ORACLE Designer 2000 SYBASE SYBASE PowerDesignerPowerDesigner分析用户要求分析用户要求设计实现设计实现信息分析和定义信息分析和定义物理数据库设计物理数据库设计2022-7-27106.1.4 6.1.4 数据库设计的基本步骤数据库设计的基
8、本步骤数据库设计数据库设计是一项涉及是一项涉及多学科多学科的综合性技术,是一项的综合性技术,是一项庞大庞大的工程项目。的工程项目。需求分析阶段需求分析阶段 2.2.概念结构设计阶段概念结构设计阶段 数据库物理设计阶段数据库物理设计阶段 数据库实施阶段数据库实施阶段 数据库运行和维护阶段数据库运行和维护阶段 逻辑结构设计阶段逻辑结构设计阶段2022-7-27111.1.数据库分析设计人员数据库分析设计人员 数据库设计的核心人员数据库设计的核心人员 自始至终参与数据库设计自始至终参与数据库设计 其水平决定了数据库系统的质量其水平决定了数据库系统的质量数据库设计的准备工作:选定参加设计的人员数据库设
9、计的准备工作:选定参加设计的人员2.2.用户用户 在数据库设计中也是举足轻重的在数据库设计中也是举足轻重的 主要参加需求分析和数据库的运行维护主要参加需求分析和数据库的运行维护 用户积极参与可加速数据库设计,提高数据库设计的质量用户积极参与可加速数据库设计,提高数据库设计的质量3.3.程序员程序员 在系统实施阶段参与进来,负责编制程序在系统实施阶段参与进来,负责编制程序4.4.操作员操作员 在系统实施阶段参与进来,准备软硬件环境在系统实施阶段参与进来,准备软硬件环境2022-7-2712 需求分析阶段需求分析阶段 p 准确了解与分析用户需求准确了解与分析用户需求(包括数据与处理),是整个设计(
10、包括数据与处理),是整个设计 过程的基础,是最困难、最耗费时间的一步。过程的基础,是最困难、最耗费时间的一步。p 用户需求的收集和分析,结果得到用户需求的收集和分析,结果得到数据字典描述的数据需求数据字典描述的数据需求 和和数据流图描述的处理需求数据流图描述的处理需求。2.2.概念结构设计阶段概念结构设计阶段p 整个数据库设计的整个数据库设计的关键关键,通过对用户需求进行综合、归纳与,通过对用户需求进行综合、归纳与 抽象,形成一个独立于具体抽象,形成一个独立于具体DBMSDBMS的的概念模型概念模型,可以用,可以用E-RE-R图图 表示。表示。2022-7-2713 逻辑结构设计阶段逻辑结构设
11、计阶段p 将概念结构转换为某个将概念结构转换为某个DBMSDBMS所支持的所支持的数据模型数据模型(例如关系(例如关系模型),并对其进行模型),并对其进行优化优化。数据库物理设计阶段数据库物理设计阶段 p 为逻辑数据模型选取一个最适合应用环境的为逻辑数据模型选取一个最适合应用环境的物理结构物理结构(包括(包括 存储结构、存取方法,形成内模式)。存储结构、存取方法,形成内模式)。首先将首先将E-RE-R图转换成具体的数据库产品支持的数据模型,形成图转换成具体的数据库产品支持的数据模型,形成 数据库逻辑模式;数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础然后根据用户处理的要求
12、、安全性的考虑,在基本表的基础 上再建立必要的视图上再建立必要的视图(View)(View),形成数据的外模式。,形成数据的外模式。2022-7-2714 数据库实施阶段数据库实施阶段 p 运用运用DBMSDBMS提供的数据语言(例如提供的数据语言(例如SQLSQL)及其宿主语言(例如及其宿主语言(例如 C C),),根据逻辑设计和物理设计的结果:根据逻辑设计和物理设计的结果:建立数据库建立数据库 编制、调试应用程序编制、调试应用程序 组织数据入库组织数据入库 进行试运行进行试运行 数据库运行和维护阶段数据库运行和维护阶段 p 数据库应用系统经过试运行后即可数据库应用系统经过试运行后即可投入正
13、式运行投入正式运行。p 在数据库系统运行过程中必须不断地对其进行在数据库系统运行过程中必须不断地对其进行评价、调评价、调整与修改整与修改。设计一个完善的数据库应用系统往往是上述六个阶设计一个完善的数据库应用系统往往是上述六个阶段的段的不断反复不断反复。2022-7-2715数据库设计的特点数据库设计的特点2022-7-2716设 计设 计阶段阶段 设设 计计 描描 述述数数 据据处处 理理需 求需 求分析分析数据字典、全系统中数据项、数据字典、全系统中数据项、数据流、数据存储的描述数据流、数据存储的描述数据流图和判定表(判定树)、数据流图和判定表(判定树)、数据字典中处理过程的描述数据字典中处
14、理过程的描述 概念模型(概念模型(E-RE-R图)图)数据字典数据字典 系统说明书包括:系统说明书包括:新系统要求、方案和概图新系统要求、方案和概图 反映新系统信息流的数据流图反映新系统信息流的数据流图 某种数据模型某种数据模型 关系关系 非关系非关系系统结构图系统结构图(模块结构)(模块结构)存储安排存储安排方法选择方法选择存取路径建立存取路径建立模块设计模块设计IPOIPO表表实施实施阶段阶段编写模式编写模式装入数据装入数据数据库试运行数据库试运行程序编码、程序编码、编译联结、编译联结、测试测试运 行、运 行、维护维护 性能监测、转储性能监测、转储/恢复恢复 数据库重组和重构数据库重组和重
15、构新旧系统转换、运行、维护(修新旧系统转换、运行、维护(修正性、适应性、改善性维护)正性、适应性、改善性维护)概念概念结构结构设计设计逻辑逻辑结构结构设计设计物理物理设计设计 分区分区1 1 分区分区2 2Main()Main()ififthenthenendendCreatCreatLoadLoadIPOIPO表表输入:输入:输出:输出:处理:处理:2022-7-27176.2 6.2 需求分析需求分析l需求分析就是分析用户的需要与要求需求分析就是分析用户的需要与要求p需求分析是设计数据库的需求分析是设计数据库的起点起点。p需求分析的结果是否需求分析的结果是否准确地反映了用户的实际要准确地反
16、映了用户的实际要求求,将直接影响到后面各个阶段的设计,并影响到,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。设计结果是否合理和实用。2022-7-27186.2.1 6.2.1 需求分析的任务需求分析的任务6.2.2 6.2.2 需求分析的方法需求分析的方法6.2.3 6.2.3 数据字典数据字典2022-7-27196.2.1 6.2.1 需求分析的任务需求分析的任务需需求求分分析析任任务务p通过详细调查现实世界要处理的对象(组织、部门、通过详细调查现实世界要处理的对象(组织、部门、企业等),充分企业等),充分了解原系统了解原系统(手工系统或计算机系统)(手工系统或计算机
17、系统)工作概况,明确用户的各种需求。工作概况,明确用户的各种需求。p在此基础上在此基础上确定新系统的功能确定新系统的功能。新系统必须充分考虑。新系统必须充分考虑今后今后可能的扩充和改变可能的扩充和改变,不能仅仅按当前应用需求来,不能仅仅按当前应用需求来设计数据库。设计数据库。2022-7-2720需需求求分分析析的的重重点点l需求分析的重点是调查、收集与分析用户在数据管理需求分析的重点是调查、收集与分析用户在数据管理中的中的信息要求、处理要求、安全性与完整性要求信息要求、处理要求、安全性与完整性要求。l信息要求信息要求p用户需要从数据库中获得用户需要从数据库中获得信息的内容与性质信息的内容与性
18、质p由用户的信息要求可以导出由用户的信息要求可以导出数据要求数据要求,即在数据库中,即在数据库中需要存储哪些数据需要存储哪些数据l处理要求处理要求p对处理对处理功能功能的要求的要求p对处理的对处理的响应时间响应时间的要求的要求p对对处理方式处理方式的要求的要求(批处理批处理 /联机处理联机处理)l新系统的功能必须能够满足用户的信息要求、处理新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求。要求、安全性与完整性要求。2022-7-2721需需求求分分析析的的难难点点l用户缺少计算机知识用户缺少计算机知识,开始时无法确定计算机究竟能为,开始时无法确定计算机究竟能为自己做什么,不
19、能做什么,因此无法一下子准确地表达自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。自己的需求,他们所提出的需求往往不断地变化。l设计人员缺少用户的专业知识设计人员缺少用户的专业知识,不易理解用户的真正需,不易理解用户的真正需求,甚至误解用户的需求。求,甚至误解用户的需求。l新的硬件、软件技术的出现也会使新的硬件、软件技术的出现也会使用户需求发生变化用户需求发生变化。p设计人员必须采用有效的方法,与用户不断深入地设计人员必须采用有效的方法,与用户不断深入地进行交流,才能逐步得以确定用户的实际需求。进行交流,才能逐步得以确定用户的实际需求。解解决决方方法
20、法2022-7-27226.2.2 6.2.2 需求分析的方法需求分析的方法l调查清楚用户的实际需求并进行初步分析调查清楚用户的实际需求并进行初步分析l与用户达成共识与用户达成共识l进一步分析与表达用户需求进一步分析与表达用户需求2022-7-2723调查用户需求分析的具体步骤调查用户需求分析的具体步骤(1)(1)调查组织机构情况调查组织机构情况p 组织部门的组成情况组织部门的组成情况p 各部门的职责等各部门的职责等 调查各部门的业务活动情况调查各部门的业务活动情况(调查重点之一调查重点之一)。p 各个部门输入和使用什么数据各个部门输入和使用什么数据p 如何加工处理这些数据如何加工处理这些数据
21、p 输出什么信息输出什么信息p 输出到什么部门输出到什么部门p 输出结果的格式是什么输出结果的格式是什么2022-7-2724 在熟悉业务活动的基础上,协助用户明确对新系统的各在熟悉业务活动的基础上,协助用户明确对新系统的各种要求(调查重点之二)。种要求(调查重点之二)。p 信息要求信息要求p 处理要求处理要求p 完全性与完整性要求完全性与完整性要求调查用户需求分析的具体步骤调查用户需求分析的具体步骤(2)(2)对前面调查的结果进行初步分析,确定新系统的边界。对前面调查的结果进行初步分析,确定新系统的边界。p 确定哪些功能由计算机完成或将来准备让计算机完成确定哪些功能由计算机完成或将来准备让计
22、算机完成p 确定哪些活动由人工完成确定哪些活动由人工完成由计算机完成的功能就是新系统应该实现的功能。由计算机完成的功能就是新系统应该实现的功能。2022-7-2725常用的调查方法常用的调查方法l跟班作业跟班作业p通过亲身参加业务工作了解业务活动的情况通过亲身参加业务工作了解业务活动的情况p能比较准确地理解用户的需求,但比较耗时能比较准确地理解用户的需求,但比较耗时l开调查会开调查会p通过与用户座谈来了解业务活动情况及用户需求通过与用户座谈来了解业务活动情况及用户需求l请专人介绍请专人介绍l询问询问p对某些调查中的问题,可以找专人询问对某些调查中的问题,可以找专人询问l设计调查表请用户填写设计
23、调查表请用户填写p如果调查表设计合理,则很有效,且易于为用户接受如果调查表设计合理,则很有效,且易于为用户接受l查阅记录查阅记录p查阅与原系统有关的数据记录查阅与原系统有关的数据记录2022-7-2726进一步分析与表达用户需求进一步分析与表达用户需求l常用方法常用方法p自顶向下自顶向下的结构化分析方法(的结构化分析方法(Structured AnalysisStructured Analysis,简称简称SASA方法)方法)lSASA方法从最上层的系统组织机构入手,采用方法从最上层的系统组织机构入手,采用逐层分解逐层分解的的方式分析系统,并用方式分析系统,并用数据流图数据流图(DFD)(DF
24、D)和和数据字典数据字典(DD)(DD)描述描述系统。系统。2022-7-27271 1首先把任何一个系统都抽象为:首先把任何一个系统都抽象为:信息要求信息要求处理要求处理要求数据流数据流数据流数据流数据存储数据存储数据来源数据来源处理处理数据输出数据输出2022-7-27282 2分解处理功能和数据分解处理功能和数据(1 1)分解处理功能)分解处理功能 将处理功能的具体内容分解为若干子功能,再将每个子功能将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达清楚为止。继续分解,直到把系统的工作过程表达清楚为止。(2 2)分解数据)分解数据 在处理功能逐步分解的
25、同时,其所用的数据也逐级分解,形在处理功能逐步分解的同时,其所用的数据也逐级分解,形成若干层次的数据流图成若干层次的数据流图 数据流图表达了数据和处理过程的关系数据流图表达了数据和处理过程的关系(3 3)表达方法)表达方法 处理过程:用判定表或判定树来描述处理过程:用判定表或判定树来描述 数据:用数据字典来描述数据:用数据字典来描述3 3将分析结果再次提交给用户,征得用户的认可。将分析结果再次提交给用户,征得用户的认可。2022-7-2729图书借阅管图书借阅管理系统理系统1 1学学 生生 数数 据据图图 书书 数数 据据图图 书书 库库 存存 数数 据据自顶向下方法举例自顶向下方法举例202
26、2-7-2730借书处理系统1.1学生数据借书信息还书处理系统1.2还书信息图 书 库 存 数 据数据流图数据流图2022-7-2731细化的数据流图细化的数据流图学学 生生 数数 据据数数 据据 报报 告告出出 图图 书书变变 更更 库库 存存 量量借出借出 图书图书学生数据学生数据非非 法法 学学 生生数数 据据 报报 告告学生数据学生数据借书信息借书信息借借 书书数数 据据检检 查查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借借 出出 图图 书书 数数 据据图图 书书 库库 存存 数数 据据2022-7-2732需求分析举例需求分析举例2022-7-27336.2.3 6.2.3 数据字典数据字典 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据流图表达了数据和处理过程的关系。系统中的数
28、据则借助数据字典(数据字典(Data DictionaryData Dictionary)来描述。来描述。l数据字典的内容数据字典的内容 数据项数据项 数据结构数据结构 数据流数据流 数据存储数据存储 处理过程处理过程l 数据项是数据的最小组成单位数据项是数据的最小组成单位l 若干个数据项可以组成一个数据结构若干个数据项可以组成一个数据结构l 数据字典通过对数据项和数据结构的定义来描述数据流、数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。数据存储的逻辑内容。2022-7-2734 1.1.数据项数据项 l 数据项是不可再分的数据单位数据项是不可再分的数据单位l 对数据项
29、的描述对数据项的描述 数据项描述数据项名,数据项含义说明,别名,数据项描述数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含数据类型,长度,取值范围,取值含 义,与其他数据项的逻辑关系义,与其他数据项的逻辑关系p 取值范围、与其他数据项的逻辑关系定义了数据的完整取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件,是设计数据检验功能的依据。性约束条件,是设计数据检验功能的依据。2022-7-2735 2.2.数据结构数据结构 l 数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。l 一个数据结构可以由若干个数据项组成,也可以由若一个数据结构可以由若干个数据
30、项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混干个数据结构组成,或由若干个数据项和数据结构混合组成。合组成。l 对数据结构的描述对数据结构的描述 数据结构描述数据结构名,含义说明,数据结构描述数据结构名,含义说明,组成组成:数据项或数据结构数据项或数据结构2022-7-2736 3.3.数据流数据流 l 数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。l 对数据流的描述对数据流的描述 数据流描述数据流名,说明,数据流来源,数据流描述数据流名,说明,数据流来源,数据流去向,组成数据流去向,组成:数据结构,数据结构,平均流量,高峰期流量平均流量,高峰期流量
31、p 数据流来源是说明该数据流来自哪个过程数据流来源是说明该数据流来自哪个过程p 数据流去向是说明该数据流将到哪个过程去数据流去向是说明该数据流将到哪个过程去p 平均流量是指在单位时间(每天、每周、每月等)里的传平均流量是指在单位时间(每天、每周、每月等)里的传输次数输次数p 高峰期流量则是指在高峰时期的数据流量高峰期流量则是指在高峰时期的数据流量2022-7-2737 4.4.数据存储数据存储 l数据存储是数据结构停留或保存的地方,也是数据流的来数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。源和去向之一。l对数据存储的描述对数据存储的描述数据存储描述数据存储名,说明,编号,数
32、据存储描述数据存储名,说明,编号,流入的数据流流入的数据流 ,流出的数据流,流出的数据流 ,组成组成:数据结构,数据量,存取方式数据结构,数据量,存取方式p 流入的数据流:指出数据来源流入的数据流:指出数据来源p 流出的数据流:指出数据去向流出的数据流:指出数据去向p 数据量:每次存取多少数据,每天(或每小时、每周等)数据量:每次存取多少数据,每天(或每小时、每周等)存取几次等信息存取几次等信息p 存取方法:批处理存取方法:批处理 /联机处理;检索联机处理;检索 /更新;顺序检索更新;顺序检索 /随机检索随机检索2022-7-2738 5.5.处理过程处理过程 l处理过程的具体处理逻辑一般用判
33、定表或判定树来描述。处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息数据字典中只需要描述处理过程的说明性信息l处理过程说明性信息的描述处理过程说明性信息的描述处理过程描述处理过程名,说明,输入处理过程描述处理过程名,说明,输入:数据流,数据流,输出输出:数据流,处理数据流,处理:简要说明简要说明p简要说明:主要说明该处理过程的功能及处理要求简要说明:主要说明该处理过程的功能及处理要求 功能:该处理过程用来做什么功能:该处理过程用来做什么 处理要求:处理频度要求(如单位时间里处理多少事务,处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);响
34、应时间要求等多少数据量);响应时间要求等 处理要求是后面物理设计的输入及性能评价的标准处理要求是后面物理设计的输入及性能评价的标准2022-7-27392022-7-2740“学号学号”数据项数据项 :数据项:学号数据项:学号 含义说明:唯一标识每个学生含义说明:唯一标识每个学生 别名:学生编号别名:学生编号 类型:字符型类型:字符型 长度:长度:8 8 取值范围:取值范围:0000000000000000至至 99999999 99999999 取值含义:前两位标别该学生取值含义:前两位标别该学生 所在年级,后六位按顺序所在年级,后六位按顺序 编号与其他数据项的逻辑编号与其他数据项的逻辑 关
35、系:关系:“学生学生”数据结构数据结构 :数据结构:学生数据结构:学生 含义说明:是学籍管理子系统的含义说明:是学籍管理子系统的 体数据结构,定义了一个学体数据结构,定义了一个学 生的有关信息生的有关信息 组组 成:成:学号,姓名,性别,学号,姓名,性别,年龄,所在系,年级年龄,所在系,年级 例:学生学籍管理子系统的数据字典。例:学生学籍管理子系统的数据字典。2022-7-2741数据流数据流“体检结果体检结果”:数据流:体检结果数据流:体检结果 说说 明:明:学生参加体格检查学生参加体格检查 的最终结果的最终结果 数据流来源:体检数据流来源:体检 数据流去向:批准数据流去向:批准 组组 成:
36、成:平均流量:平均流量:高峰期流量:高峰期流量:数据存储数据存储“学生登记表学生登记表”:数据存储:学生登记表数据存储:学生登记表 说明:记录学生的基本情况说明:记录学生的基本情况 流入数据流:流入数据流:流出数据流:流出数据流:组成:组成:数据量:每年数据量:每年30003000张张 存取方式:随机存取存取方式:随机存取 2022-7-2742处理过程处理过程“分配宿舍分配宿舍”:处理过程:分配宿舍处理过程:分配宿舍 说说 明:明:为所有新生分配学生宿舍为所有新生分配学生宿舍 输输 入:学生,宿舍,入:学生,宿舍,输输 出:宿舍安排出:宿舍安排 处处 理:理:在新生报到后,为所有新生分配学生
37、宿舍。在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个同一个学生只能安排在一个宿舍中。每个 学生的居住面积不小于学生的居住面积不小于3 3平方米。安排新生平方米。安排新生 宿舍其处理时间应不超过宿舍其处理时间应不超过1515分钟。分钟。2022-7-27436.3 6.3 概念结构设计概念结构设计6.3.1 6.3.1 概念结构设计概述概念结构设计概述6.3.2 6.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤6.3.3 6.3.3 数据抽象与局部视图设计数据抽象与局部视图设计6.
38、3.4 6.3.4 视图的集成视图的集成2022-7-27446.3.1 6.3.1 概念结构概念结构l什么是概念结构设计什么是概念结构设计p需求分析阶段描述的用户应用需求是现实世界的具体需求需求分析阶段描述的用户应用需求是现实世界的具体需求p将需求分析得到的用户需求抽象为信息结构即概念模型的过程将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计就是概念结构设计p概念结构是各种数据模型的共同基础,它比数据模型更独立于概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。机器、更抽象,从而更加稳定。p概念结构设计是整个数据库设计的关键概念结构设计是
39、整个数据库设计的关键现实世界现实世界机器世界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计2022-7-2745l概念结构设计的特点概念结构设计的特点(1 1)能真实、充分地反映现实世界,包括事物和事物之间的联系,)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。能满足用户对数据的处理要求。是对现实世界的一个真实模型。(2 2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用 户的积极参与是数据库的设计成功的关键。户的积极参与是数据库的设计成功的关键。l
40、描述概念模型的工具描述概念模型的工具 E-RE-R模型模型2022-7-27466.3.2 6.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤 设计概念结构的四类方法设计概念结构的四类方法 自顶向下自顶向下 首先定义全局概念结构的框架,然后逐步细化首先定义全局概念结构的框架,然后逐步细化 自底向上自底向上 首先定义各局部应用的概念结构,然后将它们集成起来,得首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构到全局概念结构 逐步扩张逐步扩张 首先定义最重要的核心概念结构,然后向外扩充,以滚雪球首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构
41、,直至总体概念结构的方式逐步生成其他概念结构,直至总体概念结构 混合策略混合策略 将自顶向下和自底向上相结合,用自顶向下策略设计一个全将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。的各局部概念结构。2022-7-2747自顶向下策略自顶向下策略2022-7-2748自底向上策略自底向上策略2022-7-2749逐步扩张策略逐步扩张策略2022-7-2750l常用策略常用策略p自顶向下地进行需求分析自顶向下地进行需求分析p自底向上地设计概念结构自底向上地设计概念结构l自
42、底向上设计概念结构的步骤自底向上设计概念结构的步骤p第一步:抽象数据并设计局部视图第一步:抽象数据并设计局部视图p第二步:集成局部视图,得到全局概念结构第二步:集成局部视图,得到全局概念结构2022-7-2751需求分析需求分析DFDDFDDDDD数据抽象、局部数据抽象、局部视图的设计视图的设计视图集成视图集成返回用户返回用户征求意见征求意见直到满意直到满意为止为止分分E-RE-R图图总总E-RE-R图图逻辑结构设计逻辑结构设计图图6.9 概念结构设计步骤概念结构设计步骤2022-7-27526.3.3 6.3.3 数据抽象与局部视图设计数据抽象与局部视图设计l概念结构是对现实世界的一种抽象概
43、念结构是对现实世界的一种抽象p从实际的人、物、事和概念中抽取所关心的共同特性,从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节忽略非本质的细节p把这些特性用各种概念精确地加以描述把这些特性用各种概念精确地加以描述p这些概念组成了某种模型这些概念组成了某种模型三种常用的抽象三种常用的抽象 分类分类 聚集聚集 概括概括2022-7-27531.1.分类(分类(ClassificationClassification)定义某一类概念作为现实世界中一组对象的类型定义某一类概念作为现实世界中一组对象的类型 这些对象具有某些共同的特性和行为这些对象具有某些共同的特性和行为 它抽象了对象它抽
44、象了对象值和型值和型之间的之间的“is member ofis member of”的语的语义义 在在E-RE-R模型中,实体型就是这种抽象模型中,实体型就是这种抽象例:例:学校中,张英是学生中的一员,具有学生们的共同特性和行为:学校中,张英是学生中的一员,具有学生们的共同特性和行为:在某一班学习某专业,选修某些课程等。在某一班学习某专业,选修某些课程等。学生学生张英张英王萍王萍刘晨刘晨赵斌赵斌2022-7-27542.2.聚集(聚集(AggregationAggregation)l定义某一类型的组成成分定义某一类型的组成成分l它抽象了对象内部类型和成分之间它抽象了对象内部类型和成分之间“is
45、 part of”is part of”的语的语义义l在在E-RE-R模型中若干属性的聚集组成了实体型,就是这种模型中若干属性的聚集组成了实体型,就是这种抽象抽象学生学生学号学号姓名姓名专业专业班级班级2022-7-27553.3.概括(概括(GeneralizationGeneralization)l 定义类型之间的一种子集联系定义类型之间的一种子集联系l 它抽象了类型之间的它抽象了类型之间的“is subset of”is subset of”的语义的语义l 概括有一个很重要的性质:继承性。子类继承超类概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。上定义的所有抽象。学生学生
46、本科生本科生研究生研究生2022-7-2756l数据抽象的用途数据抽象的用途p对需求分析阶段收集到的数据进行分类、组织对需求分析阶段收集到的数据进行分类、组织(聚集),形成(聚集),形成 实体实体 实体的属性,标识实体的码实体的属性,标识实体的码 确定实体之间的联系类型确定实体之间的联系类型(1:1(1:1,1:n1:n,m:n)m:n)2022-7-2757局部视图设计局部视图设计设计分设计分E-RE-R图的步骤图的步骤:选择局部应用选择局部应用 逐一设计分逐一设计分E-RE-R图图2022-7-2758选择局部应用选择局部应用 需求分析阶段,已用多层数据流图和数据字典描述了整个系统。需求分
47、析阶段,已用多层数据流图和数据字典描述了整个系统。设计分设计分E-RE-R图首先需要根据系统的具体情况,在多层的数据流图中图首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分部应用,然后以这一层次的数据流图为出发点,设计分E-RE-R图。图。通常以通常以中层数据流图中层数据流图作为设计分作为设计分E-RE-R图的依据。原因:图的依据。原因:高层数据流图只能反映系统的概貌高层数据流图只能反映系统的概貌 中层数据流图能较好地反映系统中各局部应用
48、的子系统组成中层数据流图能较好地反映系统中各局部应用的子系统组成 低层数据流图过细低层数据流图过细2022-7-2759例:由于学籍管理、课程管理等都不太复杂,因此例:由于学籍管理、课程管理等都不太复杂,因此可以它们入手设计学生管理子系统的分可以它们入手设计学生管理子系统的分E-RE-R图。图。如果局部应用比较复杂,则可以从更下层的数据如果局部应用比较复杂,则可以从更下层的数据流图入手。流图入手。2022-7-2760逐一设计分逐一设计分E-RE-R图图l如何抽象实体和属性如何抽象实体和属性p实体:现实世界中一组实体:现实世界中一组具有某些共同特性和行为的对象具有某些共同特性和行为的对象就可以
49、抽象为一个实体。对象和实体之间是就可以抽象为一个实体。对象和实体之间是“is is member of”member of”的关系。的关系。例:在学校环境中,可把张英、刘晨等对象抽象为学生实体。例:在学校环境中,可把张英、刘晨等对象抽象为学生实体。p属性:属性:对象类型的组成成分对象类型的组成成分可以抽象为实体的属性。可以抽象为实体的属性。组成成分与对象类型之间是组成成分与对象类型之间是“is part ofis part of的关系。的关系。例:学号、姓名、专业、年级等可以抽象为学生实体的属性。例:学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号为标识学生实体的码。其中学号为标识学
50、生实体的码。2022-7-2761l如何区分实体和属性如何区分实体和属性p实体与属性是实体与属性是相对而言相对而言的。同一事物在一种应用环境中作为的。同一事物在一种应用环境中作为“属性属性”,在另一种应用环境中就必须作为,在另一种应用环境中就必须作为“实体实体”。例:学校中的系,在某种应用环境中,它只是作为例:学校中的系,在某种应用环境中,它只是作为“学生学生”实体实体的一个属性;而在另一种环境中,由于需要考虑一个系的系主任、的一个属性;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办公地点等,此时它就需要作为实体了。教师人数、学生人数、办公地点等,此时它就需要作为实体了。