资源预览内容
第1页 / 共94页
第2页 / 共94页
第3页 / 共94页
第4页 / 共94页
第5页 / 共94页
第6页 / 共94页
第7页 / 共94页
第8页 / 共94页
第9页 / 共94页
第10页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
An Introduction to Database System数据库系统概论An Introduction to Database System第七章第七章 数据库设计数据库设计An Introduction to Database System第七章第七章 数据库设计数据库设计7.1 数据库设计概述数据库设计概述7.2 需求分析需求分析7.3 概念结构设计概念结构设计7.4 逻辑结构设计逻辑结构设计7.5 物理结构设计物理结构设计7.6 数据库的实施和维护数据库的实施和维护7.7 小结小结An Introduction to Database System7.1 数据库设计概述数据库设计概述v 数据库设计数据库设计n数据库设计是指对于一个给定的应用环境,构造(设数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库计)优化的数据库逻辑模式逻辑模式和和物理结构物理结构,并据此建立并据此建立数据库及其应用系统数据库及其应用系统,使之能够有效地存储和管理数,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。数据操作要求。n信息管理要求:在数据库中应该存储和管理哪些数据信息管理要求:在数据库中应该存储和管理哪些数据对象对象 。n数据操作要求:对数据对象需要进行哪些操作,如查数据操作要求:对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作。询、增、删、改、统计等操作。 An Introduction to Database System数据库设计概述(续)数据库设计概述(续)v 数据库设计数据库设计n数据库设计的目标是为用户和各种应用系统提供一个数据库设计的目标是为用户和各种应用系统提供一个信息基础设施信息基础设施和高效率的和高效率的运行环境运行环境 。n高效率的运行环境高效率的运行环境l数据库数据的存取效率高数据库数据的存取效率高l数据库存储空间的利用率高数据库存储空间的利用率高l数据库系统运行管理的效率高数据库系统运行管理的效率高An Introduction to Database System7.1 数据库设计概述数据库设计概述7.1.1 数据库设计的特点数据库设计的特点7.1.2 数据库设计方法数据库设计方法7.1.3 数据库设计的基本步骤数据库设计的基本步骤7.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式An Introduction to Database System7.1.1 数据库设计的特点数据库设计的特点1. 数据库建设的基本规律数据库建设的基本规律n三分技术,七分管理,十二分基础数据三分技术,七分管理,十二分基础数据 n管理管理 l数据库建设项目管理数据库建设项目管理 l企业(即应用部门)的业务管理企业(即应用部门)的业务管理 n基础数据基础数据 l数据的收集、整理、组织和不断更新数据的收集、整理、组织和不断更新An Introduction to Database System数据库设计的特点(续)数据库设计的特点(续)2. 结构(数据)设计和行为(处理)设计相结合结构(数据)设计和行为(处理)设计相结合 n将数据库结构设计和数据处理设计密切结合将数据库结构设计和数据处理设计密切结合v结构和行为分离的设计结构和行为分离的设计n传统的软件工程:重传统的软件工程:重 行为设计行为设计l忽视对应用中数据语义的分析和抽象,只要有可能就尽忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策量推迟数据结构设计的决策n早期的数据库设计:重早期的数据库设计:重 结构设计结构设计l致力于数据模型和数据库建模方法研究,忽视了行为设致力于数据模型和数据库建模方法研究,忽视了行为设计对结构设计的影响计对结构设计的影响An Introduction to Database System数据库设计的特点(续)数据库设计的特点(续)结构和行为分离的设计结构和行为分离的设计 现实世界现实世界概念模型设计概念模型设计子模式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计应用设计应用设计应用开发应用开发系统调试系统调试数据库设计数据库设计应用系统设计应用系统设计An Introduction to Database System7.1 数据库设计概述数据库设计概述7.1.1 数据库设计的特点数据库设计的特点7.1.2 数据库设计方法数据库设计方法7.1.3 数据库设计的基本步骤数据库设计的基本步骤7.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式An Introduction to Database System7.1.2 数据库设计方法数据库设计方法v大型数据库设计是涉及多学科的综合性技术,又大型数据库设计是涉及多学科的综合性技术,又是一项庞大的工程项目。是一项庞大的工程项目。v它要求多方面的知识和技术。主要包括:它要求多方面的知识和技术。主要包括:n计算机的基础知识计算机的基础知识n软件工程的原理和方法软件工程的原理和方法n程序设计的方法和技巧程序设计的方法和技巧n数据库的基本知识数据库的基本知识n数据库设计技术数据库设计技术n应用领域的知识应用领域的知识An Introduction to Database System数据库设计方法(续)数据库设计方法(续)v手工试凑法手工试凑法n设计质量与设计人员的经验和水平有直接关系设计质量与设计人员的经验和水平有直接关系n缺乏科学理论和工程方法的支持,工程的质量难以保缺乏科学理论和工程方法的支持,工程的质量难以保证证n数据库运行一段时间后常常又不同程度地发现各种问数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价题,增加了维护代价An Introduction to Database System数据库设计方法(续)数据库设计方法(续)v规范设计法规范设计法n手工设计方法手工设计方法n基本思想基本思想l过程迭代和逐步求精过程迭代和逐步求精n典型方法典型方法l新奥尔良(新奥尔良(New Orleans)方法)方法l基于基于E-R模型的数据库设计方法模型的数据库设计方法l3NF(第三范式)的设计方法(第三范式)的设计方法l面向对象的数据库设计方法面向对象的数据库设计方法l统一建模语言(统一建模语言(UML)方法)方法An Introduction to Database System7.1 数据库设计概述数据库设计概述7.1.1 数据库设计的特点数据库设计的特点7.1.2 数据库设计方法数据库设计方法7.1.3 数据库设计的基本步骤数据库设计的基本步骤7.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式An Introduction to Database System7.1.3 数据库设计的基本步骤数据库设计的基本步骤v数据库设计分数据库设计分6个阶段个阶段n需求分析需求分析n概念结构设计概念结构设计n逻辑结构设计逻辑结构设计n物理结构设计物理结构设计n数据库实施数据库实施n数据库运行和维护数据库运行和维护 v需求分析和概念设计独立于任何数据库管理系统需求分析和概念设计独立于任何数据库管理系统 v逻辑设计和物理设计与选用的数据库管理系统密逻辑设计和物理设计与选用的数据库管理系统密切相关切相关An Introduction to Database SystemAn Introduction to Database System数据库设计的基本步骤(续)数据库设计的基本步骤(续)v参加数据库设计的人员参加数据库设计的人员n系统分析人员和数据库设计人员系统分析人员和数据库设计人员l自始至终参与数据库设计,其水平决定了数据库系统的自始至终参与数据库设计,其水平决定了数据库系统的质量质量n数据库管理员和用户代表数据库管理员和用户代表l主要参加需求分析与数据库的运行和维护主要参加需求分析与数据库的运行和维护n应用开发人员应用开发人员l包括程序员和操作员包括程序员和操作员l在实施阶段参与进来,分别负责编制程序和准备软硬件在实施阶段参与进来,分别负责编制程序和准备软硬件环境环境An Introduction to Database System数据库设计的基本步骤(续)数据库设计的基本步骤(续)1. 需求分析阶段需求分析阶段n是否做得充分与准确,决定了构建数据库的速度和质是否做得充分与准确,决定了构建数据库的速度和质量量2. 概念结构设计阶段概念结构设计阶段n通过对用户需求进行综合、归纳与抽象,形成一个独通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型立于具体数据库管理系统的概念模型3. 逻辑结构设计阶段逻辑结构设计阶段n将概念结构转换为某个数据库管理系统所支持的数据将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化模型,并对其进行优化An Introduction to Database System数据库设计的基本步骤(续)数据库设计的基本步骤(续)4. 物理结构设计阶段物理结构设计阶段n为逻辑数据结构选取一个最适合应用环境的物理结构为逻辑数据结构选取一个最适合应用环境的物理结构n包括存储结构和存取方法包括存储结构和存取方法5. 数据库实施阶段数据库实施阶段n根据逻辑设计和物理设计的结果构建数据库根据逻辑设计和物理设计的结果构建数据库n编写与调试应用程序编写与调试应用程序n组织数据入库并进行试运行组织数据入库并进行试运行6. 数据库运行和维护阶段数据库运行和维护阶段n经过试运行后即可投入正式运行经过试运行后即可投入正式运行n在运行过程中必须不断对其进行评估、调整与修改在运行过程中必须不断对其进行评估、调整与修改An Introduction to Database System数据库设计的基本步骤(续)数据库设计的基本步骤(续)v设计一个完善的数据库应用系统设计一个完善的数据库应用系统 往往是上述往往是上述6个个阶段的不断反复阶段的不断反复v这个设计步骤既是数据库设计的过程,也包括了这个设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程数据库应用系统的设计过程v把数据库的设计和对数据库中数据处理的设计紧把数据库的设计和对数据库中数据处理的设计紧密结合起来,将这两个方面的需求分析、抽象、密结合起来,将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计互补充,以完善两方面的设计An Introduction to Database System数据库设计的基本步骤(续)数据库设计的基本步骤(续)图图7.3 数据库设计各个阶段的数据设计描述数据库设计各个阶段的数据设计描述An Introduction to Database System7.1 数据库设计概述数据库设计概述7.1.1 数据库设计的特点数据库设计的特点7.1.2 数据库设计方法数据库设计方法7.1.3 数据库设计的基本步骤数据库设计的基本步骤7.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式An Introduction to Database System7.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式v数据库设计不同阶段形成的数据库各级模式数据库设计不同阶段形成的数据库各级模式数据库的各级模式数据库的各级模式 An Introduction to Database System数据库设计过程中的各级模式(续)数据库设计过程中的各级模式(续)v数据库设计不同阶段形成的数据库各级模式数据库设计不同阶段形成的数据库各级模式需求分析阶段:需求分析阶段:综合各个用户的应用需求综合各个用户的应用需求数据库的各级模式数据库的各级模式 An Introduction to Database System数据库设计过程中的各级模式(续)数据库设计过程中的各级模式(续)v数据库设计不同阶段形成的数据库各级模式数据库设计不同阶段形成的数据库各级模式概念设计阶段:概念设计阶段: 形成独立于机器特点,独形成独立于机器特点,独立于各个数据库管理系统产立于各个数据库管理系统产品的品的概念模式概念模式(E-R图)图)数据库的各级模式数据库的各级模式 An Introduction to Database System数据库设计过程中的各级模式(续)数据库设计过程中的各级模式(续)v数据库设计不同阶段形成的数据库各级模式数据库设计不同阶段形成的数据库各级模式逻辑设计阶段:逻辑设计阶段:1. 首先将首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库形成数据库逻辑模式逻辑模式2. 然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(必要的视图(View),形成数据的),形成数据的外模式外模式An Introduction to Database System数据库设计过程中的各级模式(续)数据库设计过程中的各级模式(续)v数据库设计不同阶段形成的数据库各级模式数据库设计不同阶段形成的数据库各级模式物理设计阶段:物理设计阶段:根据数据库管理系统特点和处理的需要,根据数据库管理系统特点和处理的需要,进行物理存储安排,建立索引,形成数进行物理存储安排,建立索引,形成数据库据库内模式内模式数据库的各级模式数据库的各级模式 An Introduction to Database System第七章第七章 数据库设计数据库设计7.1 数据库设计概述数据库设计概述7.2 需求分析需求分析7.3 概念结构设计概念结构设计7.4 逻辑结构设计逻辑结构设计7.5 物理结构设计物理结构设计7.6 数据库的实施和维护数据库的实施和维护7.7 小结小结An Introduction to Database System7.2 需求分析需求分析7.2.1 需求分析的任务需求分析的任务7.2.2 需求分析的方法需求分析的方法7.2.3 数据字典数据字典An Introduction to Database System需求分析(续)需求分析(续)v需求分析就是分析用户的要求需求分析就是分析用户的要求n是设计数据库的起点是设计数据库的起点n结果是否准确地反映了用户的实际要求,将直接影响结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理到后面各个阶段的设计,并影响到设计结果是否合理和实用和实用An Introduction to Database System7.2.1 需求分析的任务需求分析的任务v详细调查现实世界要处理的对象(组织、部门、详细调查现实世界要处理的对象(组织、部门、企业等)企业等)v充分了解原系统(手工系统或计算机系统)工作充分了解原系统(手工系统或计算机系统)工作概况概况v明确用户的各种需求明确用户的各种需求v在此基础上确定新系统的功能在此基础上确定新系统的功能v新系统必须充分考虑今后可能的扩充和改变新系统必须充分考虑今后可能的扩充和改变An Introduction to Database System需求分析的任务(续)需求分析的任务(续)v调查的重点是调查的重点是“数据数据”和和“处理处理”,获得用户对,获得用户对数据库的要求数据库的要求(1)信息要求)信息要求l用户需要从数据库中获得信息的内容与性质用户需要从数据库中获得信息的内容与性质l由信息要求可以导出数据要求,即在数据库中需要存储由信息要求可以导出数据要求,即在数据库中需要存储哪些数据哪些数据(2)处理要求)处理要求l用户要完成的处理功能用户要完成的处理功能l对处理性能的要求对处理性能的要求(3)安全性与完整性要求)安全性与完整性要求An Introduction to Database System需求分析的任务(续)需求分析的任务(续)v确定用户最终需求的难点确定用户最终需求的难点n用户缺少计算机知识,不能准确地表达自己的需求,用户缺少计算机知识,不能准确地表达自己的需求,他们所提出的需求往往不断地变化。他们所提出的需求往往不断地变化。n设计人员缺少用户的专业知识,不易理解用户的真正设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求需求,甚至误解用户的需求v解决方法解决方法n设计人员必须不断深入地与用户进行交流,才能逐步设计人员必须不断深入地与用户进行交流,才能逐步确定用户的实际需求确定用户的实际需求An Introduction to Database System7.2 需求分析需求分析7.2.1 需求分析的任务需求分析的任务7.2.2 需求分析的方法需求分析的方法7.2.3 数据字典数据字典An Introduction to Database System7.2.2 需求分析的方法需求分析的方法v调查清楚用户的实际需求并进行初步分析调查清楚用户的实际需求并进行初步分析v与用户达成共识与用户达成共识v分析与表达这些需求分析与表达这些需求An Introduction to Database System调查用户需求的步骤调查用户需求的步骤(1)调查组织机构情况)调查组织机构情况(2)调查各部门的业务活动情况)调查各部门的业务活动情况(3)协助用户明确对新系统的各种要求,包括信)协助用户明确对新系统的各种要求,包括信 息要求、处理要求、完全性与完整性要求息要求、处理要求、完全性与完整性要求(4)确定新系统的边界)确定新系统的边界An Introduction to Database System常用调查方法常用调查方法(1)跟班作业)跟班作业n通过亲身参加业务工作了解业务活动的情况通过亲身参加业务工作了解业务活动的情况(2)开调查会)开调查会n通过与用户座谈来了解业务活动情况及用户需求通过与用户座谈来了解业务活动情况及用户需求(3)请专人介绍)请专人介绍(4)询问)询问n对某些调查中的问题,可以找专人询问对某些调查中的问题,可以找专人询问(5)设计调查表请用户填写)设计调查表请用户填写n调查表设计合理,则很有效调查表设计合理,则很有效(6)查阅记录)查阅记录n查阅与原系统有关的数据记录查阅与原系统有关的数据记录An Introduction to Database System进一步分析和表达用户需求进一步分析和表达用户需求v分析方法分析方法n结构化分析方法(结构化分析方法(Structured Analysis,简称,简称SA方法)方法)lSA方法从最上层的系统组织机构入手方法从最上层的系统组织机构入手l采用自顶向下、逐层分解的方式分析系统采用自顶向下、逐层分解的方式分析系统v对用户需求进行分析与表达后,需求分析报告必须提对用户需求进行分析与表达后,需求分析报告必须提交给用户,征得用户的认可交给用户,征得用户的认可An Introduction to Database System需求分析过程需求分析过程需求分析过程需求分析过程 An Introduction to Database System7.2 需求分析需求分析7.2.1 需求分析的任务需求分析的任务7.2.2 需求分析的方法需求分析的方法7.2.3 数据字典数据字典An Introduction to Database System7.2.3 数据字典数据字典v数据字典是关于数据库中数据的描述,即元数据,数据字典是关于数据库中数据的描述,即元数据,不是数据本身不是数据本身v数据字典在需求分析阶段建立,在数据库设计过程数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善中不断修改、充实、完善v数据字典是进行详细的数据收集和数据分析所获得数据字典是进行详细的数据收集和数据分析所获得的主要结果的主要结果注意:注意:和关系数据库管理系统中数据字典的区别和联系和关系数据库管理系统中数据字典的区别和联系An Introduction to Database System数据字典(续)数据字典(续)v数据字典的内容数据字典的内容n数据项数据项n数据结构数据结构n数据流数据流n数据存储数据存储n处理过程处理过程v 数据项是数据的最小组成单位数据项是数据的最小组成单位v 若干个数据项可以组成一个数据结构若干个数据项可以组成一个数据结构v 数据字典通过对数据项和数据结构的定义来描述数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容数据流、数据存储的逻辑内容An Introduction to Database System1. 数据项数据项v 数据项是不可再分的数据单位数据项是不可再分的数据单位v 对数据项的描述对数据项的描述数据项描述数据项描述=数据项名数据项名,数据项含义说明数据项含义说明,别名别名, 数据类型数据类型,长度长度,取值范围取值范围,取值含义取值含义, 与其他数据项的逻辑关系与其他数据项的逻辑关系, 数据项之间的联系数据项之间的联系n“取值范围取值范围”、“与其他数据项的逻辑关系与其他数据项的逻辑关系”定义了数定义了数据的完整性约束条件,是设计据的完整性约束条件,是设计 数据检验功能的依据数据检验功能的依据n可以用关系规范化理论为指导,用数据依赖的概念分析可以用关系规范化理论为指导,用数据依赖的概念分析和表示数据项之间的联系和表示数据项之间的联系 An Introduction to Database System2. 数据结构数据结构v数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。v 一个数据结构可以由若干个数据项组成,也可以由一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结若干个数据结构组成,或由若干个数据项和数据结构混合组成。构混合组成。v 对数据结构的描述对数据结构的描述数据结构描述数据结构描述=数据结构名,含义说明,组成数据结构名,含义说明,组成:数据项或数据结构数据项或数据结构An Introduction to Database System3. 数据流数据流v 数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。v 对数据流的描述对数据流的描述 数据流描述数据流描述=数据流名数据流名,说明说明,数据流来源数据流来源, 数据流去向数据流去向,组成组成:数据结构数据结构, 平均流量平均流量,高峰期流量高峰期流量n数据流来源:说明该数据流来自哪个过程数据流来源:说明该数据流来自哪个过程n数据流去向:说明该数据流将到哪个过程去数据流去向:说明该数据流将到哪个过程去n平均流量:在单位时间(每天、每周、每月等)里的传平均流量:在单位时间(每天、每周、每月等)里的传输次数输次数n高峰期流量:在高峰时期的数据流量高峰期流量:在高峰时期的数据流量An Introduction to Database System4. 数据存储数据存储v数据存储是数据结构停留或保存的地方,也是数据数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。流的来源和去向之一。v对数据存储的描述对数据存储的描述数据存储描述数据存储描述=数据存储名数据存储名,说明说明,编号编号,输输 入的数据流入的数据流 ,输出的数据流输出的数据流, 组成组成:数据结构数据结构,数据量数据量, 存取频度存取频度,存取方式存取方式n存取频度:每小时、每天或每周存取次数,每次存取的存取频度:每小时、每天或每周存取次数,每次存取的数据量等信息数据量等信息 n存取方法:批处理存取方法:批处理 / 联机处理;检索联机处理;检索 / 更新;顺序检索更新;顺序检索 / 随机检索随机检索n输入的数据流:数据来源输入的数据流:数据来源n输出的数据流:数据去向输出的数据流:数据去向An Introduction to Database System5. 处理过程处理过程v处理过程的具体处理逻辑一般用判定表或判定树来描处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息述。数据字典中只需要描述处理过程的说明性信息v处理过程说明性信息的描述处理过程说明性信息的描述 处理过程描述处理过程描述=处理过程名处理过程名,说明说明,输入输入:数据流数据流, 输出输出:数据流数据流,处理处理:简要说明简要说明n简要说明:说明该处理过程的功能及处理要求简要说明:说明该处理过程的功能及处理要求l功能:该处理过程用来做什么功能:该处理过程用来做什么l处理要求:处理频度要求,如单位时间里处理多少事务,多处理要求:处理频度要求,如单位时间里处理多少事务,多少数据量、响应时间要求等少数据量、响应时间要求等l处理要求是后面物理设计的输入及性能评价的标准处理要求是后面物理设计的输入及性能评价的标准An Introduction to Database System需求分析小结需求分析小结v把需求收集和分析作为数据库设计的第一阶段是十把需求收集和分析作为数据库设计的第一阶段是十分重要的。分重要的。v第一阶段收集的基础数据(用数据字典来表达)是第一阶段收集的基础数据(用数据字典来表达)是下一步进行概念设计的基础。下一步进行概念设计的基础。v强调两点强调两点 (1)设计人员应充分考虑到可能的扩充和改变,使设计)设计人员应充分考虑到可能的扩充和改变,使设计易于更改,系统易于扩充易于更改,系统易于扩充 (2)必须强调用户的参与)必须强调用户的参与An Introduction to Database System第七章第七章 数据库设计数据库设计7.1 数据库设计概述数据库设计概述7.2 需求分析需求分析7.3 概念结构设计概念结构设计7.4 逻辑结构设计逻辑结构设计7.5 物理结构设计物理结构设计7.6 数据库的实施和维护数据库的实施和维护7.7 小结小结An Introduction to Database System7.3 概念结构设计概念结构设计7.3.1 概念模型概念模型7.3.2 E-R模型模型*7.3.3 扩展的扩展的E-R模型模型*7.3.4 UML7.3.5 概念结构设计概念结构设计An Introduction to Database System7.3.1 概念模型概念模型v将需求分析得到的用户需求抽象为信息结构(即概将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计念模型)的过程就是概念结构设计v概念模型的特点概念模型的特点(1)能真实、充分地反映现实世界,是现实世界的一个真)能真实、充分地反映现实世界,是现实世界的一个真 实模型。实模型。(2)易于理解,从而可以用它和不熟悉计算机的用户交换)易于理解,从而可以用它和不熟悉计算机的用户交换 意见。意见。(3)易于更改,当应用环境和应用要求改变时,容易对概)易于更改,当应用环境和应用要求改变时,容易对概 念模型修改和扩充。念模型修改和扩充。(4)易于向关系、网状、层次等各种数据模型转换)易于向关系、网状、层次等各种数据模型转换v描述概念模型的工具描述概念模型的工具nE-R模型模型An Introduction to Database System7.3 概念结构设计概念结构设计7.3.1 概念结构概念结构7.3.2 E-R模型模型*7.3.3 扩展的扩展的E-R模型模型*7.3.4 UML7.3.5 概念结构设计概念结构设计An Introduction to Database System7.3.2 E-R模型模型1. 实体之间的联系实体之间的联系(1)两个实体型之间的联系:)两个实体型之间的联系:一对一联系(一对一联系(1 1)一对多联系(一对多联系(1 n)多对多联系(多对多联系(m n)An Introduction to Database SystemE-R模型(续)模型(续)一对一联系(一对一联系(1 1)如果对于实体集如果对于实体集A中的每一个实体,实体集中的每一个实体,实体集B中至多有中至多有一个(也可以没有)实体与之联系,反之亦然,则称一个(也可以没有)实体与之联系,反之亦然,则称实体集实体集A与实体集与实体集B具有一对一联系,记为具有一对一联系,记为1 1。例如,学校里一个班级只有一个正班长,而一个班长例如,学校里一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联只在一个班中任职,则班级与班长之间具有一对一联系。系。An Introduction to Database SystemE-R模型(续)模型(续)一对多联系(一对多联系(1 n)如果对于实体集如果对于实体集A中的每一个实体,实体集中的每一个实体,实体集B中有中有n个实个实体(体(n0)与之联系,反之,对于实体集)与之联系,反之,对于实体集B中的每一个中的每一个实体,实体集实体,实体集A中至多只有一个实体与之联系,则称实中至多只有一个实体与之联系,则称实体集体集A与实体集与实体集B有一对多联系,记为有一对多联系,记为1 n。例如,一个班级中有若干名学生,而每个学生只在一个例如,一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。班级中学习,则班级与学生之间具有一对多联系。An Introduction to Database System多对多联系(多对多联系(m n)如果对于实体集如果对于实体集A中的每一个实体,实体集中的每一个实体,实体集B中有中有n个实体(个实体(n0)与之联系,反之,对于实体集)与之联系,反之,对于实体集B中的中的每一个实体,实体集每一个实体,实体集A中也有中也有m个实体(个实体(m0)与之)与之联系,则称实体集联系,则称实体集A与实体集与实体集B具有多对多联系,记具有多对多联系,记为为m n。例如,一门课程同时有若干个学生选修,而一个学生例如,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对可以同时选修多门课程,则课程与学生之间具有多对多联系。多联系。E-R模型(续)模型(续)An Introduction to Database SystemE-R模型(续)模型(续)图图7.6 两个实体型之间的三类联系两个实体型之间的三类联系An Introduction to Database SystemE-R模型(续)模型(续)(2)两个以上的实体型之间的联系)两个以上的实体型之间的联系l一般地,两个以上的实体型之间也存在着一对一、一对一般地,两个以上的实体型之间也存在着一对一、一对多、多对多联系。多、多对多联系。l对于课程、教师与参考书对于课程、教师与参考书3个实体型,如果一门课程可以个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的,如图课程与教师、参考书之间的联系是一对多的,如图7.7(a)所示。所示。An Introduction to Database SystemE-R模型(续)模型(续)图图7.7 三个实体型之间的联系示例三个实体型之间的联系示例An Introduction to Database SystemE-R模型(续)模型(续)(3)单个实体型内的联系)单个实体型内的联系l同一个实体集内的各实体之间也可以存在一对一、一对同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。多、多对多的联系。l例如,职工实体型内部具有领导与被领导的联系,即某例如,职工实体型内部具有领导与被领导的联系,即某一职工(干部)一职工(干部)“领导领导”若干名职工,而一个职工仅被若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系,如图另外一个职工直接领导,因此这是一对多的联系,如图7.8所示。所示。An Introduction to Database SystemE-R模型(续)模型(续)图图7.8 单个实体型内的一对多联系示例单个实体型内的一对多联系示例n联系的度:参与联系的实体型的数目联系的度:参与联系的实体型的数目l2个实体型之间的联系度为个实体型之间的联系度为2,也称为二元联系;,也称为二元联系;l3个实体型之间的联系度为个实体型之间的联系度为3,称为三元联系;,称为三元联系;lN个实体型之间的联系度为个实体型之间的联系度为N,也称为,也称为N元联系元联系An Introduction to Database SystemE-R模型(续)模型(续)2. E-R图图nE-R图提供了表示实体型、属性和联系的方法:图提供了表示实体型、属性和联系的方法:l实体型:用矩形表示,矩形框内写明实体名。实体型:用矩形表示,矩形框内写明实体名。l属性:用椭圆形表示,并用无向边将其与相应的实体型连属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。接起来。例如,学生实体具有学号、姓名、性别、出生年份、系、例如,学生实体具有学号、姓名、性别、出生年份、系、入学时间等属性,用入学时间等属性,用E-R图表示如图图表示如图7.9所示所示图图7.9 学生实体及属性学生实体及属性An Introduction to Database SystemE-R模型(续)模型(续)l联系:用菱形表示,菱形框内写明联系名,并用无向边联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系分别与有关实体型连接起来,同时在无向边旁标上联系的类型(的类型(1 1,1 n或或m n)。)。l联系可以具有属性联系可以具有属性图图7.10 联系的属性联系的属性An Introduction to Database SystemE-R模型(续)模型(续)v3. 一个实例一个实例n某个工厂物资管理的概念模型。物资管理涉及的实体有:某个工厂物资管理的概念模型。物资管理涉及的实体有:l仓库:属性有仓库号、面积、电话号码仓库:属性有仓库号、面积、电话号码l零件:属性有零件号、名称、规格、单价、描述零件:属性有零件号、名称、规格、单价、描述l供应商:属性有供应商号、姓名、地址、电话号码、账号供应商:属性有供应商号、姓名、地址、电话号码、账号l项目:属性有项目号、预算、开工日期项目:属性有项目号、预算、开工日期l职工:属性有职工号、姓名、年龄、职称职工:属性有职工号、姓名、年龄、职称An Introduction to Database SystemE-R模型(续)模型(续)n这些实体之间的联系如下:这些实体之间的联系如下: (1) 一个仓库可以存放多种零件,一种零件可以存放在多个一个仓库可以存放多种零件,一种零件可以存放在多个 仓库中,因此仓库和零件具有多对多的联系。用仓库中,因此仓库和零件具有多对多的联系。用库存量库存量 来表示某种零件在某个仓库中的数量。来表示某种零件在某个仓库中的数量。(2) 一个仓库有多个职工当仓库保管员,一个职工只能在一一个仓库有多个职工当仓库保管员,一个职工只能在一 个仓库工作,因此仓库和职工之间是一对多的联系。个仓库工作,因此仓库和职工之间是一对多的联系。An Introduction to Database SystemE-R模型(续)模型(续)n这些实体之间的联系如下(续):这些实体之间的联系如下(续): (3) 职工之间具有领导与被领导关系。即仓库主任领导若职工之间具有领导与被领导关系。即仓库主任领导若 干保管员,因此职工实体型中具有一对多的联系。干保管员,因此职工实体型中具有一对多的联系。(4) 供应商、项目和零件三者之间具有多对多的联系。即一供应商、项目和零件三者之间具有多对多的联系。即一 个供应商可以供给若干项目多种零件,每个项目可以使个供应商可以供给若干项目多种零件,每个项目可以使 用不同供应商供应的零件,每种零件可由不同供应商供用不同供应商供应的零件,每种零件可由不同供应商供 给。给。An Introduction to Database SystemE-R模型(续)模型(续)An Introduction to Database SystemE-R模型(续)模型(续)An Introduction to Database SystemE-R模型(续)模型(续)An Introduction to Database SystemE-R模型(续)模型(续)vE-R图,可以参见:图,可以参见:n爱课程网数据库系统概论爱课程网数据库系统概论1.2节动画节动画E-R图难点解析(图难点解析(1) E-R图难点解析(图难点解析(2) E-R图难点解析(图难点解析(3)An Introduction to Database System7.3 概念结构设计概念结构设计7.3.1 概念结构概念结构7.3.2 E-R模型模型*7.3.3 扩展的扩展的E-R模型模型*7.3.4 UML7.3.5 概念结构设计概念结构设计An Introduction to Database System7.3.5 概念结构设计概念结构设计1. 实体与属性的划分原则实体与属性的划分原则n为了简化为了简化E-R图的处置,现实世界的事物能作为属性对图的处置,现实世界的事物能作为属性对待的,尽量作为属性对待。待的,尽量作为属性对待。n两条准则:两条准则:(1)作为属性,不能再具有需要描述的性质。属性必须)作为属性,不能再具有需要描述的性质。属性必须是不可分的数据项,不能包含其他属性。是不可分的数据项,不能包含其他属性。 (2)属性不能与其他实体具有联系,即)属性不能与其他实体具有联系,即E-R图中所表示图中所表示的联系是实体之间的联系。的联系是实体之间的联系。An Introduction to Database System概念结构设计(续)概念结构设计(续)例例1 职工是一个实体,职工号、姓名、年龄是职工的属性。职工是一个实体,职工号、姓名、年龄是职工的属性。n职称如果没有与工资、福利挂钩,根据准则(职称如果没有与工资、福利挂钩,根据准则(1)可以作为职工实体)可以作为职工实体的属性的属性n如果不同的职称有不同的工资、住房标准和不同的附加福利,则职称如果不同的职称有不同的工资、住房标准和不同的附加福利,则职称作为一个实体更恰当作为一个实体更恰当An Introduction to Database System概念结构设计(续)概念结构设计(续)例例2 在医院中,一个病人只能住在一个病房,病房号可以作为病在医院中,一个病人只能住在一个病房,病房号可以作为病人实体的一个属性;人实体的一个属性; 如果病房还要与医生实体发生联系,即一个医生负责几个病房如果病房还要与医生实体发生联系,即一个医生负责几个病房的病人的医疗工作,则根据准则(的病人的医疗工作,则根据准则(2) 病房应作为一个实体。病房应作为一个实体。An Introduction to Database System概念结构设计(续)概念结构设计(续)例例3 如果一种货物只存放在一个仓库,那么就可以把存放货物的仓库的如果一种货物只存放在一个仓库,那么就可以把存放货物的仓库的仓库号作为描述货物存放地点的属性。仓库号作为描述货物存放地点的属性。 如果一种货物可以存放在多个仓库中,或者仓库本身又用面积作为属如果一种货物可以存放在多个仓库中,或者仓库本身又用面积作为属性,或者仓库与职工发生管理上的联系,那么就应把仓库作为一个实性,或者仓库与职工发生管理上的联系,那么就应把仓库作为一个实体。体。An Introduction to Database System概念结构设计(续)概念结构设计(续)v例例7.1 销售管理子系统销售管理子系统E-R图的设计。图的设计。n该子系统的主要功能是:该子系统的主要功能是:l处理顾客和销售员送来的订单处理顾客和销售员送来的订单l工厂是根据订货安排生产的工厂是根据订货安排生产的l交出货物同时开出发票交出货物同时开出发票l收到顾客付款后,根据发票存根和信贷情况进行应收款收到顾客付款后,根据发票存根和信贷情况进行应收款处理处理An Introduction to Database System概念结构设计(续)概念结构设计(续)v参照需求分析和数据字典中的详尽描述,遵循前面给出的两个准则,参照需求分析和数据字典中的详尽描述,遵循前面给出的两个准则,进行了如下调整:进行了如下调整:(1)每张订单由订单号、若干头信息和订单细节组成。订单细节又)每张订单由订单号、若干头信息和订单细节组成。订单细节又有订货的零件号、数量等来描述。按照准则(有订货的零件号、数量等来描述。按照准则(2),订单细节就不),订单细节就不能作订单的属性处理而应该上升为实体。一张订单可以订若干产能作订单的属性处理而应该上升为实体。一张订单可以订若干产品,所以订单与订单细节两个实体之间是品,所以订单与订单细节两个实体之间是1 n的联系。的联系。An Introduction to Database System概念结构设计(续)概念结构设计(续)(2)原订单和产品的联系实际上是订单细节和产品的联)原订单和产品的联系实际上是订单细节和产品的联系。每条订货细节对应一个产品描述,订单处理时从系。每条订货细节对应一个产品描述,订单处理时从中获得当前单价、产品重量等信息。中获得当前单价、产品重量等信息。(3)工厂对大宗订货给予优惠。每种产品都规定了不同)工厂对大宗订货给予优惠。每种产品都规定了不同订货数量的折扣,应增加一个订货数量的折扣,应增加一个“折扣规则折扣规则”实体存放实体存放这些信息,而不应把它们放在产品实体中。这些信息,而不应把它们放在产品实体中。An Introduction to Database System概念结构设计(续)概念结构设计(续)v最后得到销售管理子系统最后得到销售管理子系统E-R图如图图如图7.23所示。所示。图图7.23 销售管理子系统的销售管理子系统的E-R图图An Introduction to Database System概念结构设计(续)概念结构设计(续)v对每个实体定义的属性如下:对每个实体定义的属性如下:n顾客:顾客:顾客号顾客号,顾客名,地址,电话,信贷状况,账目余额,顾客名,地址,电话,信贷状况,账目余额n订单:订单:订单号订单号,顾客号,订货项数,订货日期,交货日期,工,顾客号,订货项数,订货日期,交货日期,工种号,生产地点种号,生产地点n订单细则:订单细则:订单号,细则号订单号,细则号,零件号,订货数,金额,零件号,订货数,金额n应收账款:应收账款:顾客号,订单号顾客号,订单号,发票号,应收金额,支付日期,发票号,应收金额,支付日期,支付金额,当前余额,货款限额支付金额,当前余额,货款限额n产品:产品:产品号产品号,产品名,单价,重量,产品名,单价,重量n折扣规则:折扣规则:产品号,订货量产品号,订货量,折扣,折扣An Introduction to Database System概念结构设计(续)概念结构设计(续)2. E-R图的集成图的集成nE-R图的集成一般需要分两步图的集成一般需要分两步l 合并。解决各分合并。解决各分E-R图之间的冲突,将分图之间的冲突,将分E-R图合并起图合并起来生成初步来生成初步E-R图。图。l 修改和重构。消除不必要的冗余,生成基本修改和重构。消除不必要的冗余,生成基本E-R图。图。An Introduction to Database System概念结构设计(续)概念结构设计(续)(1)合并)合并E-R图,生成初步图,生成初步E-R图图l各个局部应用所面向的问题不同,各个子系统的各个局部应用所面向的问题不同,各个子系统的E-R图图之间必定会存在许多不一致的地方,称之为冲突。之间必定会存在许多不一致的地方,称之为冲突。l子系统子系统E-R图之间的冲突主要有三类:图之间的冲突主要有三类:属性冲突属性冲突命名冲突命名冲突结构冲突结构冲突An Introduction to Database System概念结构设计(续)概念结构设计(续)属性冲突属性冲突l属性域冲突,即属性值的类型、取值范围或取值集合不属性域冲突,即属性值的类型、取值范围或取值集合不同。同。例如零件号,有的部门把它定义为整数,有的部门把例如零件号,有的部门把它定义为整数,有的部门把它定义为字符型。它定义为字符型。年龄,某些部门以出生日期形式表示职工的年龄,而年龄,某些部门以出生日期形式表示职工的年龄,而另一些部门用整数表示职工的年龄。另一些部门用整数表示职工的年龄。l属性取值单位冲突。属性取值单位冲突。例如,零件的重量有的以公斤为单位,有的以斤为单例如,零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位。位,有的以克为单位。An Introduction to Database System概念结构设计(续)概念结构设计(续)命名冲突命名冲突l同名异义,即不同意义的对象在不同的局部应用中具有相同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。同的名字。l异名同义(一义多名),即同一意义的对象在不同的局部异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。应用中具有不同的名字。如对科研项目,财务科称为项目,科研处称为课题,如对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。生产管理处称为工程。l命名冲突命名冲突可能发生在实体、联系一级上可能发生在实体、联系一级上也可能发生在属性一级上也可能发生在属性一级上通过讨论、协商等行政手段加以解决通过讨论、协商等行政手段加以解决An Introduction to Database System概念结构设计(续)概念结构设计(续)结构冲突结构冲突l同一对象在不同应用中具有不同的抽象。同一对象在不同应用中具有不同的抽象。例如,职工在某一局部应用中被当作实体,而在另一局例如,职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。部应用中则被当作属性。解决方法:把属性变换为实体或把实体变换为属性,使解决方法:把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。同一对象具有相同的抽象。l同一实体在不同子系统的同一实体在不同子系统的E-R图中所包含的属性个数和属性图中所包含的属性个数和属性排列次序不完全相同。排列次序不完全相同。解决方法:使该实体的属性取各子系统的解决方法:使该实体的属性取各子系统的E-R图中属性的图中属性的并集,再适当调整属性的次序。并集,再适当调整属性的次序。An Introduction to Database System概念结构设计(续)概念结构设计(续)结构冲突(续)结构冲突(续)l实体间的联系在不同的实体间的联系在不同的E-R图中为不同的类型。图中为不同的类型。实体实体E1与与E2在一个在一个E-R图中是多对多联系,在另一个图中是多对多联系,在另一个E-R图中是一对多联系图中是一对多联系解决方法是根据应用的语义对实体联系的类型进行综合解决方法是根据应用的语义对实体联系的类型进行综合或调整。或调整。An Introduction to Database System概念结构设计(续)概念结构设计(续)图图7.25(a)中零件与产品之间中零件与产品之间存在多对多的联系存在多对多的联系“构成构成”图图7.25(b)中产品、零件与供中产品、零件与供应商三者之间还存在多对多应商三者之间还存在多对多的联系的联系“供应供应”合并两个合并两个E-R图,图,如图如图7.25(c)An Introduction to Database System概念结构设计(续)概念结构设计(续)(2)消除不必要的冗余,设计基本)消除不必要的冗余,设计基本E-R图图l所谓冗余的数据是指可由基本数据导出的数据,冗余的所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。联系是指可由其他联系导出的联系。l消除冗余主要采用分析方法,即以数据字典和数据流图消除冗余主要采用分析方法,即以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。明来消除冗余。An Introduction to Database System概念结构设计(续)概念结构设计(续)l如图如图7.26中,中,Q3=Q1Q2,Q4=Q5。所以。所以Q3和和Q4是冗是冗余数据,可以消去。并且由于余数据,可以消去。并且由于Q3消去,产品与材料间消去,产品与材料间m:n的冗余联系也应消去。的冗余联系也应消去。并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高效率,不得并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高效率,不得不以冗余信息作为代价。不以冗余信息作为代价。图图7.26 消除冗余消除冗余An Introduction to Database System概念结构设计(续)概念结构设计(续)v用规范化理论来消除冗余用规范化理论来消除冗余确定分确定分E-R图实体之间的数据依赖。图实体之间的数据依赖。l实体之间一对一、一对多、多对多的联系可以用实体码实体之间一对一、一对多、多对多的联系可以用实体码之间的函数依赖来表示。于是有函数依赖集之间的函数依赖来表示。于是有函数依赖集FL。l如图如图7.27中:中: 部门和职工之间一对多的联系可表示为职工号部门和职工之间一对多的联系可表示为职工号部门号部门号 职工和产品之间多对多的联系可表示为职工和产品之间多对多的联系可表示为 (职工号,产品号)(职工号,产品号)工作天数等。工作天数等。An Introduction to Database System概念结构设计(续)概念结构设计(续)图图7.27 劳动人事管理的分劳动人事管理的分E-R图图求求FL的最小覆盖的最小覆盖GL,差集为,差集为 D=FL-GL。l逐一考察逐一考察D中的函数依赖,确定是否是冗余的中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。联系,若是,就把它去掉。An Introduction to Database System概念结构设计(续)概念结构设计(续)n由于规范化理论受到泛关系假设的限制,应注意下面由于规范化理论受到泛关系假设的限制,应注意下面两个问题:两个问题:l冗余的联系一定在冗余的联系一定在D中,而中,而D中的联系不一定是冗余的;中的联系不一定是冗余的;l当实体之间存在多种联系时,要将实体之间的联系在形当实体之间存在多种联系时,要将实体之间的联系在形式上加以区分。式上加以区分。An Introduction to Database System概念结构设计(续)概念结构设计(续)v例例7.2 某工厂管理信息系统的视图集成。某工厂管理信息系统的视图集成。图图7.11 工厂物资管理工厂物资管理E-R图图An Introduction to Database System概念结构设计(续)概念结构设计(续)v例例7.2 某工厂管理信息系统的视图集成。某工厂管理信息系统的视图集成。图图7.27 劳动劳动人事管理人事管理的分的分E-R图图图图7.23 销售销售管理管理子系统的子系统的E-R图图An Introduction to Database System概念结构设计(续)概念结构设计(续)v例例7.2 某工厂管理信息系统的视图集成。某工厂管理信息系统的视图集成。图图7.28 某工厂管理信息系统的基本某工厂管理信息系统的基本E-R图图异名同义,项目和产品含义相同。某个项目实质上是指某个产异名同义,项目和产品含义相同。某个项目实质上是指某个产品的生产。统一用产品作实体名。品的生产。统一用产品作实体名。库存管理中职工与仓库的工作关系已包含在劳动人事管理的部门与库存管理中职工与仓库的工作关系已包含在劳动人事管理的部门与职工之间的联系之中,所以可以取消。职工之间领导与被领导关系职工之间的联系之中,所以可以取消。职工之间领导与被领导关系可由部门与职工(经理)之间的领导关系、部门与职工之间的从属可由部门与职工(经理)之间的领导关系、部门与职工之间的从属关系两者导出,所以也可以取消。关系两者导出,所以也可以取消。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号