资源预览内容
第1页 / 共129页
第2页 / 共129页
第3页 / 共129页
第4页 / 共129页
第5页 / 共129页
第6页 / 共129页
第7页 / 共129页
第8页 / 共129页
第9页 / 共129页
第10页 / 共129页
亲,该文档总共129页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计第七章 数据库设计7.1数据库设计概述数据库设计概述7.2需求分析需求分析7.3概念结构设计概念结构设计7.4逻辑结构设计逻辑结构设计7.5数据库的物理设计数据库的物理设计7.6数据库实施和维护数据库实施和维护7.7小结小结什么是数据库设计什么是数据库设计n数据库设计是指对于一个给定数据库设计是指对于一个给定的应用环境,构造最优的数据的应用环境,构造最优的数据库逻辑模式和物理结构,并根库逻辑模式和物理结构,并根据此建立数据库及其应用系统,据此建立数据库及其应用系统,使之能够有效地存储和管理数使之能够有效地存储和管理数据,满足各种用户的应用需求据,满足各种用户的应用需求(信息管理要求和数据操作要(信息管理要求和数据操作要求)求)n在数据库领域内,常常把使用在数据库领域内,常常把使用数据库的各类系统统称为数据数据库的各类系统统称为数据库应用系统。库应用系统。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.1数据库设计概述数据库设计概述7.1.1数据库设计的特点数据库设计的特点一、数据库建设的基本规律一、数据库建设的基本规律三分技术,七分管理,十二分基础数据;三分技术,七分管理,十二分基础数据;二、结构(数据)设计和行为(处理)设计相结合二、结构(数据)设计和行为(处理)设计相结合结构(数据)设计:设计数据库框架或数据库结构;结构(数据)设计:设计数据库框架或数据库结构;行为(处理)设计:设计应用程序、事务处理等。行为(处理)设计:设计应用程序、事务处理等。三、结构和行为分离的设计三、结构和行为分离的设计传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策能就尽量推迟数据结构设计的决策早期的数据库设计致力于数据模型和建模方法研究,忽视了对行早期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计为的设计数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计现实世界现实世界概念模型设计概念模型设计子模式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计程序说明程序说明应用程序设计应用程序设计程序编码调试程序编码调试图图7.1结构和行为分离的设计结构和行为分离的设计结构特性和行为特性结合起来结构特性和行为特性结合起来数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.1.2数据库设计方法数据库设计方法一、要求数据库设计人员应该具备的技术和知识一、要求数据库设计人员应该具备的技术和知识数据库的基本知识;数据库的基本知识;软件工程的原理和方法;软件工程的原理和方法;程序设计的方法和技巧;程序设计的方法和技巧;数据库的基本知识和设计技术;数据库的基本知识和设计技术;应用领域的知识。应用领域的知识。二、规范设计法二、规范设计法(本质上看本质上看:手工设计方法手工设计方法)新奥尔良(新奥尔良(NewOrleans)方法方法将数据库设计分为四个阶段将数据库设计分为四个阶段(需求分析、概念设计、逻辑设计、物理设计)需求分析、概念设计、逻辑设计、物理设计)基于基于E-R模型的数据库设计方法模型的数据库设计方法3NF的设计方法的设计方法ODL方法:面向对象的数据库设计方法方法:面向对象的数据库设计方法计算机辅助设计计算机辅助设计ORACLEDesigner2000SYBASEPowerDesigner数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.1.3数据库设计的基本步骤数据库设计的基本步骤一一、数据库设计的准备工作、数据库设计的准备工作(选定参加设计的人员选定参加设计的人员)1.数据库分析设计人员数据库分析设计人员数据库设计的核心人员数据库设计的核心人员自始至终参与数据库设计自始至终参与数据库设计其水平决定了数据库系统的质量其水平决定了数据库系统的质量2.用户用户在数据库设计中也是举足轻重的在数据库设计中也是举足轻重的主要参加需求分析和数据库的运行维护主要参加需求分析和数据库的运行维护用户积极参与带来的好处用户积极参与带来的好处加速数据库设计加速数据库设计提高数据库设计的质量提高数据库设计的质量3.程序员程序员(在系统实施阶段参与进来,负责编制程序在系统实施阶段参与进来,负责编制程序)4.操作员操作员(在系统实施阶段参与进来,准备软硬件环境在系统实施阶段参与进来,准备软硬件环境)数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计需求分析阶段需求分析阶段概念结构设计阶段概念结构设计阶段逻辑结构设计阶段逻辑结构设计阶段数据库物理设计阶段数据库物理设计阶段数据库实施阶段数据库实施阶段数据库运行和维护阶段数据库运行和维护阶段n准确了解与分析用户需求(包括数据准确了解与分析用户需求(包括数据与处理);与处理);n是整个设计过程的基础,是最困难、是整个设计过程的基础,是最困难、最耗费时间的一步。最耗费时间的一步。n需求分析是设计数据库的起点需求分析是设计数据库的起点n需求分析的结果是否准确地反映了用需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是个阶段的设计,并影响到设计结果是否合理和实用否合理和实用n是整个数据库设计的关键;是整个数据库设计的关键;n通过对用户需求进行综合、归纳与抽象,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体形成一个独立于具体DBMS的概念模型的概念模型(E-R图)。图)。n将概念结构转换为某个将概念结构转换为某个DBMS所支持所支持的数据模型(关系数据模型);的数据模型(关系数据模型);n对其进行优化。对其进行优化。n然后根据用户处理的要求、安全性然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立的考虑,在基本表的基础上再建立必要的视图必要的视图(View),形成数据的外形成数据的外模式模式n为逻辑数据模型选取一个最适合应为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构用环境的物理结构(包括存储结构和存取方法)和存取方法)n根据根据DBMS特点和处理的需要,进行特点和处理的需要,进行物理存储安排,建立索引,形成数物理存储安排,建立索引,形成数据库内模式据库内模式n运用运用DBMS提供的数据语言、工具提供的数据语言、工具及宿主语言,根据逻辑设计和物理及宿主语言,根据逻辑设计和物理设计的结果设计的结果建立数据库建立数据库编制与调试应用程序编制与调试应用程序组织数据入库组织数据入库并进行试运行并进行试运行n数据库应用系统经过试运行后即数据库应用系统经过试运行后即可投入正式运行。可投入正式运行。n在数据库系统运行过程中必须不在数据库系统运行过程中必须不断地对其进行评价、调整与修改。断地对其进行评价、调整与修改。设计一个完善的数据库应用系统往往是上述六个阶段的设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。不断反复。(如:(如:P202图图7.2)二二、数据库设计的过程、数据库设计的过程(六个阶段六个阶段)需求收集和分析需求收集和分析设计概念结构设计概念结构设计逻辑结构设计逻辑结构数据模型优化数据模型优化设计物理结构设计物理结构评价设计评价设计, ,性能预测性能预测物理实现物理实现试验性运行试验性运行使用、维护数据库使用、维护数据库应用需求应用需求数据、处理数据、处理 转换规则、转换规则、DBMSDBMS功能功能优化方法优化方法应用要求应用要求, ,DBMSDBMS详详细特征细特征需求分析阶段需求分析阶段不不满意满意不不满意满意数据库实施阶段数据库实施阶段物理设计阶段物理设计阶段逻辑设计阶段逻辑设计阶段概念设计阶段概念设计阶段图图7.2 7.2 数据库设计步骤数据库设计步骤数据库运行、维护阶段数据库运行、维护阶段数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计设计特点设计特点v在设计过程中把数据库的设计和对数据库中数据处理在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来的设计紧密结合起来v将这两个方面的需求分析、抽象、设计、实现在各个将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面阶段同时进行,相互参照,相互补充,以完善两方面的设计的设计v设计过程各个阶段的设计描述:设计过程各个阶段的设计描述:P204图图7.3设设计计阶阶段段设设计计描描述述数数据据处处理理需需 求求分分析析数据字典、全系统中数据项、数据字典、全系统中数据项、数据流、数据存储的描述数据流、数据存储的描述数数据据流流图图和和判判定定表表(判判定定树树)、数数据字典中处理过程的描述据字典中处理过程的描述概念模型(概念模型(E-R图)图)数据字典数据字典系统说明书包括:系统说明书包括:新系统要求、新系统要求、方案和概图方案和概图反映新系统信息反映新系统信息流的数据流图流的数据流图某种数据模型某种数据模型关系关系非关系非关系系统结构图系统结构图(模块结构)(模块结构)存储安排存储安排方法选择方法选择存取路径建立存取路径建立模块设计模块设计IPO表表实施实施阶段阶段编写模式编写模式装入数据装入数据数据库试运行数据库试运行程序编码、程序编码、编译联结、编译联结、测试测试运运行行、维护维护性能监测、转储性能监测、转储/恢复恢复数据库重组和重构数据库重组和重构新新旧旧系系统统转转换换、运运行行、维维护护(修修正正性性、适应性、改善性维护)适应性、改善性维护)IPO表输入:输出:处理:CreatLoadMain()ifthenend分区1分区2概念结概念结构设计构设计逻辑逻辑结构结构设计设计物理物理设计设计图图7.3 设计过程各个阶段的设计描述设计过程各个阶段的设计描述数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计应用应用1应用要求应用要求应用应用2应用要求应用要求应用应用3应用要求应用要求概念概念模式模式综合综合应用应用1外模式外模式1应用应用2外模式外模式2应用应用3外模式外模式3逻辑逻辑模式模式转换转换映象映象映象映象图图7.4数据库的各级模式数据库的各级模式内内模式模式7.1.4 7.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.2需求分析需求分析7.2.1需求分析的任务需求分析的任务一、需求分析的任务一、需求分析的任务二、需求分析的重点二、需求分析的重点三、需求分析的难点三、需求分析的难点数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计一、需求分析的任务一、需求分析的任务v通过详细调查现实世界要处理的对象(组织、部门、企通过详细调查现实世界要处理的对象(组织、部门、企业等),充分业等),充分了解原系统了解原系统(手工系统或计算机系统)(手工系统或计算机系统)工工作概况,明确用户的各种需求。作概况,明确用户的各种需求。v在此基础上在此基础上确定新系统的功能确定新系统的功能。新系统必须充分考虑今。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库数据库数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计二、需求分析的重点二、需求分析的重点v需求分析的重点是调查、收集与分析用户在数据管理中的需求分析的重点是调查、收集与分析用户在数据管理中的信信息要求、处理要求、安全性与完整性要求息要求、处理要求、安全性与完整性要求。v信息要求信息要求用户需要从数据库中获得信息的内容与性质用户需要从数据库中获得信息的内容与性质由用户的信息要求可以导出数据要求,即在数据库中需要由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据存储哪些数据v处理要求处理要求对处理功能的要求对处理功能的要求对处理的响应时间的要求对处理的响应时间的要求对处理方式的要求对处理方式的要求(批处理批处理/联机处理联机处理)v安全性与完整性要求。安全性与完整性要求。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计三、需求分析的难点三、需求分析的难点v确定用户最终需求的难点确定用户最终需求的难点用户用户缺少计算机知识,开始时无法确定计算机究竟能为自己缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。求,他们所提出的需求往往不断地变化。设计人员设计人员缺少用户的专业知识,不易理解用户的真正需求,缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。甚至误解用户的需求。新新的硬件、软件的硬件、软件技术的出现技术的出现也会使用户需求发生变化。也会使用户需求发生变化。v解决方法解决方法设计人员必须采用有效的方法,与用户不断设计人员必须采用有效的方法,与用户不断深入深入地进行地进行交流交流,才能逐步得以确定用户的实际需求才能逐步得以确定用户的实际需求数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.7.2.2 2.2 需求分析的方法需求分析的方法调查清楚用户的实际需求并进行初步分析,与用户达成共识,然后调查清楚用户的实际需求并进行初步分析,与用户达成共识,然后进一步进一步分析与表达这些需求。分析与表达这些需求。一、一、调查用户需求的具体步骤调查用户需求的具体步骤调查组织机构情况调查组织机构情况(为分析信息流程做准备为分析信息流程做准备)组织部门的组成情况组织部门的组成情况各部门的职责等各部门的职责等调查各部门的业务活动情况。调查重点之一。调查各部门的业务活动情况。调查重点之一。各个部门输入和使用什么数据各个部门输入和使用什么数据如何加工处理这些数据如何加工处理这些数据输出什么信息输出什么信息输出到什么部门输出到什么部门输出结果的格式是什么输出结果的格式是什么数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计在熟悉业务活动的基础上,协助用户明确对新系统的在熟悉业务活动的基础上,协助用户明确对新系统的各种要求各种要求(信息要求、处理要求、完全性与完整性要(信息要求、处理要求、完全性与完整性要求)。调查重点之二。求)。调查重点之二。确定新系统的边界确定新系统的边界对前面调查的结果进行初步分析,确定哪些功能由对前面调查的结果进行初步分析,确定哪些功能由计算机完成或将来准备让计算机完成;确定哪些活计算机完成或将来准备让计算机完成;确定哪些活动由人工完成。动由人工完成。由计算机完成的功能就是新系统应该实现的功能。由计算机完成的功能就是新系统应该实现的功能。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计n常用调查方法常用调查方法跟班作业跟班作业开调查会开调查会请专人介绍请专人介绍询问询问设计调查表请用户填写设计调查表请用户填写查阅记录查阅记录二、常用调查方法二、常用调查方法v做需求调查时,往往需要同时采用多种方法做需求调查时,往往需要同时采用多种方法无论使用何种调查方法,都必须有用户的积极参与和配合。无论使用何种调查方法,都必须有用户的积极参与和配合。设计人员应该和用户取得共同的语言,帮助不熟悉计算机的用设计人员应该和用户取得共同的语言,帮助不熟悉计算机的用户建立数据库环境下的共同概念,并对设计工作的最后结果共同承户建立数据库环境下的共同概念,并对设计工作的最后结果共同承担责任。担责任。通过亲身参加业务工作了解业务通过亲身参加业务工作了解业务活动的情况。能比较准确地理解用活动的情况。能比较准确地理解用户的需求,但比较耗时。户的需求,但比较耗时。通过与用户座谈来了解业务活通过与用户座谈来了解业务活动情况及用户需求。动情况及用户需求。对某些调查中的问题,可以找专对某些调查中的问题,可以找专人询问人询问如果调查表设计合理,则很有效,如果调查表设计合理,则很有效,且易于为用户接受且易于为用户接受查阅与原系统有关的数据记录查阅与原系统有关的数据记录数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计三、进一步分析和表达用户需求三、进一步分析和表达用户需求v分析和表达用户的需求分析和表达用户的需求的常用方法的常用方法自顶向下的结构化分析方法(自顶向下的结构化分析方法(StructuredAnalysis,简称简称SA方法)方法)vSA方法从最上层的系统组织机构入手,采用逐层分解的方式分析系方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并用数据流图和数据字典描述系统。统,并用数据流图和数据字典描述系统。1首先把任何一个系统都抽象为:首先把任何一个系统都抽象为:数据流数据流数据流数据流信息要求信息要求数据数据来源来源处理处理数据数据输出输出处理要求处理要求图图7.5系统高层抽象图系统高层抽象图数据存储数据存储数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计2分解处理功能和数据分解处理功能和数据(1)分解处理功能)分解处理功能将处理功能的具体内容分解为若干子功能,再将每个子功能继将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达清楚为止。续分解,直到把系统的工作过程表达清楚为止。(2)分解数据)分解数据在处理功能逐步分解的同时,其所用的数据也逐级分解,形成在处理功能逐步分解的同时,其所用的数据也逐级分解,形成若干层次的数据流图。若干层次的数据流图。数据流图表达了数据和处理过程的关系。数据流图表达了数据和处理过程的关系。(3)表达方法)表达方法处理过程处理过程:用判定表或判定树来描述:用判定表或判定树来描述数据:数据:用数据字典来描述用数据字典来描述3将分析结果再次提交给用户,征得用户的认可将分析结果再次提交给用户,征得用户的认可数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计四、需求分析过程四、需求分析过程图图7.6需求分析过程需求分析过程数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.2.3数据字典和数据流图数据字典和数据流图一、数据字典的用途一、数据字典的用途v数据字典是各类数据描述的集合数据字典是各类数据描述的集合v数据字典是进行详细的数据收集和数据分析所获得的主要结果数据字典是进行详细的数据收集和数据分析所获得的主要结果v数据字典在数据库设计中占有很重要的地位数据字典在数据库设计中占有很重要的地位二、数据字典的内容二、数据字典的内容v数据字典的内容数据字典的内容数据项数据项数据结构数据结构数据流数据流数据存储数据存储处理过程处理过程v数据项是数据的最小组成单位数据项是数据的最小组成单位v若干个数据项可以组成一个数据结构若干个数据项可以组成一个数据结构v数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。逻辑内容。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据项数据项v数据项是不可再分的数据单位数据项是不可再分的数据单位v对数据项的描述对数据项的描述数据项描述数据项描述数据项名,数据项含义说明,数据项名,数据项含义说明,别名,数据类型,长度,取值范围,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系取值含义,与其他数据项的逻辑关系取值范围、与其他数据项的逻辑关系定义了数据的完整性约取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件束条件数据结构数据结构v数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。v一个数据结构可以由若干个数据项组成,也可以由若干个数据结构一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。组成,或由若干个数据项和数据结构混合组成。v对数据结构的描述对数据结构的描述数据结构描述数据结构描述数据结构名,含义说明,组成数据结构名,含义说明,组成:数据项或数据结构数据项或数据结构数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据流数据流v数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。v对数据流的描述对数据流的描述数据流描述数据流描述数据流名,说明,数据流来源,数据流名,说明,数据流来源,数据流去向,组成数据流去向,组成:数据结构,数据结构,平均流量,高峰期流量平均流量,高峰期流量数据流来源是说明该数据流来自哪个过程数据流来源是说明该数据流来自哪个过程数据流去向是说明该数据流将到哪个过程去数据流去向是说明该数据流将到哪个过程去平均流量是指在单位时间(每天、每周、每月等)里的传输次数平均流量是指在单位时间(每天、每周、每月等)里的传输次数高峰期流量则是指在高峰时期的数据流量高峰期流量则是指在高峰时期的数据流量数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据存储数据存储v数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。一。v对数据存储的描述对数据存储的描述数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号,流入的数据流流入的数据流,流出的数据流,流出的数据流,组成组成:数据结构,数据量,存取方式数据结构,数据量,存取方式流入的数据流:指出数据来源流入的数据流:指出数据来源流出的数据流:指出数据去向流出的数据流:指出数据去向数据量:每次存取多少数据,每天(或每小时、每周等)存取几数据量:每次存取多少数据,每天(或每小时、每周等)存取几次等信息次等信息存取方法:批处理存取方法:批处理/联机处理;检索联机处理;检索/更新;顺序检索更新;顺序检索/随机检随机检索索数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计处理过程处理过程v处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息中只需要描述处理过程的说明性信息v处理过程说明性信息的描述处理过程说明性信息的描述处理过程描述处理过程描述处理过程名,说明,处理过程名,说明,输入输入:数据流,输出数据流,输出:数据流,数据流,处理处理:简要说明简要说明简要说明:主要说明该处理过程的功能及处理要求简要说明:主要说明该处理过程的功能及处理要求功能:该处理过程用来做什么功能:该处理过程用来做什么处理要求:处理频度要求(如单位时间里处理多少事务,多处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);响应时间要求等少数据量);响应时间要求等处理要求是后面物理设计的输入及性能评价的标准处理要求是后面物理设计的输入及性能评价的标准数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据字典举例数据字典举例例:学生学籍管理子系统的数据字典。例:学生学籍管理子系统的数据字典。数据项数据项,以,以“学号学号”为例:为例:数据项:学号数据项:学号含义说明:唯一标识每个学生含义说明:唯一标识每个学生别名:学生编号别名:学生编号类型:字符型类型:字符型长度:长度:8取值范围:取值范围:00000000至至99999999取值含义:前两位标别该学生所在年级,取值含义:前两位标别该学生所在年级,后六位按顺序编号后六位按顺序编号与其他数据项的逻辑关系:与其他数据项的逻辑关系:数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据结构数据结构以以“学生学生”为例为例“学生学生”是该系统中的一个核心数据结构:是该系统中的一个核心数据结构:数据结构:学生数据结构:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息的有关信息组成:学号,姓名,性别,年龄,所在系,年级组成:学号,姓名,性别,年龄,所在系,年级数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据流数据流“体检结果体检结果”可如下描述:可如下描述:数据流:体检结果数据流:体检结果说明:学生参加体格检查的最终结果说明:学生参加体格检查的最终结果数据流来源:体检数据流来源:体检数据流去向:批准数据流去向:批准组成:组成:平均流量:平均流量:高峰期流量:高峰期流量:数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据存储数据存储“学生登记表学生登记表”可如下描述:可如下描述:数据存储:学生登记表数据存储:学生登记表说明:记录学生的基本情况说明:记录学生的基本情况流入数据流:流入数据流:流出数据流:流出数据流:组成:组成:数据量:每年数据量:每年3000张张存取方式:随机存取存取方式:随机存取数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计处理过程处理过程“分配宿舍分配宿舍”可如下描述:可如下描述:处理过程:分配宿舍处理过程:分配宿舍说明:为所有新生分配学生宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍,输入:学生,宿舍,输出:宿舍安排输出:宿舍安排处理:在新生报到后,为所有新生分配学处理:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居安排在一个宿舍中。每个学生的居住面积不小于住面积不小于3平方米。安排新生平方米。安排新生宿舍其处理时间应不超过宿舍其处理时间应不超过15分钟。分钟。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计三、数据流图(三、数据流图(DataFlowDiagram,简称简称DFD)数据流图数据流图是描绘系统逻辑模型的一种网络表示是描绘系统逻辑模型的一种网络表示( (这里的系统可以这里的系统可以是自动化系统、手工系统或是两者混合而成的系统是自动化系统、手工系统或是两者混合而成的系统) )。数据流图通过。数据流图通过它的成分及所标明各个成分之间的接口来描述系统,数据流图的基它的成分及所标明各个成分之间的接口来描述系统,数据流图的基本成分是本成分是: :1.1.数据流数据流; ;2.2.文件文件( (数据存储数据存储););3.3.加工加工( (亦称处理、过程或变换亦称处理、过程或变换););4.4.数据源点或终点。数据源点或终点。 是某种已知构成的信息所流过的通道是某种已知构成的信息所流过的通道是数据的暂存区是数据的暂存区是系统之外的人或组织;这些人或组是系统之外的人或组织;这些人或组织是单纯数据的产生源或接收者织是单纯数据的产生源或接收者是一种将进入数据流转化是一种将进入数据流转化为流出数据流的变换为流出数据流的变换命名原则命名原则:要具体,便于区分,要具体,便于区分,名副其实,反映功用名副其实,反映功用数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据流图数据流图常用的符号常用的符号数据处理数据处理数据流数据流1.1.数据流数据流用箭头线表示;用箭头线表示;数据存储数据存储数据源点或终点数据源点或终点2.2.文件(数据存储)文件(数据存储)用开口矩形或两条平行横线表示;用开口矩形或两条平行横线表示;3.3.加工(亦称处理、过程或变换)加工(亦称处理、过程或变换)用圆角矩形或圆形表示;用圆角矩形或圆形表示;4.4.数据源点或终点数据源点或终点用正方形或立方体表示。用正方形或立方体表示。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.3.1概念结构概念结构什么是概念结构设计什么是概念结构设计需求分析阶段描述的用户应用需求是现实世界的具体需求需求分析阶段描述的用户应用需求是现实世界的具体需求将需求分析得到的用户需求抽象为信息结构即概念模型的过程就将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计是概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更独立于机概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。器、更抽象,从而更加稳定。概念结构设计是整个数据库设计的关键概念结构设计是整个数据库设计的关键现实世界现实世界机器世界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v概念结构设计的特点概念结构设计的特点(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。能满足用户对数据的处理要求。是对现实世界的一个真实模型。(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键。用户的积极参与是数据库的设计成功的关键。(3)易于更改,当应用环境和应用要求改变时,容易对概念模型)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。修改和扩充。(4)易于向关系、网状、层次等各种数据模型转换)易于向关系、网状、层次等各种数据模型转换v描述概念模型的工具描述概念模型的工具E-R模型模型数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计n自底向上自底向上首先定义各局部应用的概念结构,然后将它们集成起来,得到首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构全局概念结构7.3.2概念结构设计的方法与步骤概念结构设计的方法与步骤v设计概念结构的四类方法设计概念结构的四类方法自顶向下自顶向下首先定义全局概念结构的框架,然后逐步细化首先定义全局概念结构的框架,然后逐步细化n逐步扩张逐步扩张 首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构方式逐步生成其他概念结构,直至总体概念结构n混合策略混合策略 将自顶向下和自底向上相结合,用自顶向下策略设计一个全局将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。部概念结构。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计全局概念模式全局概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式(a)自顶向下的设计方法自顶向下的设计方法概念模式概念模式需求需求数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计概念模式概念模式(b)自底向上的设计方法自底向上的设计方法概念模式概念模式概念模式概念模式概念模式概念模式子需求子需求概念模式概念模式概念模式概念模式全局概念模式全局概念模式子需求子需求子需求子需求子需求子需求数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计(c)逐步扩张的设计方法逐步扩张的设计方法核心需求核心需求需需求求核核心心概概念结构念结构全全局局概概念结构念结构数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计概念结构设计的方法与步骤概念结构设计的方法与步骤(续)(续)需求需求需求需求1需求需求1.1需求需求1.2概念模式概念模式1.1概念模式概念模式1.2概念模式概念模式1需求需求n需求需求n.1需求需求n.2概念模式概念模式n.1概念模式概念模式n.2概念模式概念模式n( 应用1)全局概念模式全局概念模式( 应用n)需求分析需求分析( 自顶向下自顶向下)概念结构设计概念结构设计( 自底向上自底向上)图图7.8 7.8 自顶向下需求分析与自底向上设计概念结构自顶向下需求分析与自底向上设计概念结构数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v常用策略(常用策略(P211图图7.8)自顶向下进行需求分析自顶向下进行需求分析自底向上设计概念结构自底向上设计概念结构自底向上设计概念结构的步骤自底向上设计概念结构的步骤(P211图图7.9)第第1步:抽象数据并设计局部视图步:抽象数据并设计局部视图第第2步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计图图7.9自底向上方法的设计步骤自底向上方法的设计步骤需求分析需求分析数据抽象、数据抽象、局部视图设计局部视图设计视图集成视图集成征求用征求用户意见户意见DFD、DD局部局部ER图图全局全局ER图图逻辑结构设计逻辑结构设计数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v概念结构是对现实世界的一种抽象概念结构是对现实世界的一种抽象从实际的人、物、事和概念中抽取所关心的共同特性,忽略从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节非本质的细节把这些特性用各种概念精确地加以描述把这些特性用各种概念精确地加以描述这些概念组成了某种模型这些概念组成了某种模型v三种常用抽象三种常用抽象1.分类(分类(Classification)定义某一类概念作为现实世界中一组对象的类型定义某一类概念作为现实世界中一组对象的类型这些对象具有某些共同的特性和行为这些对象具有某些共同的特性和行为它抽象了对象它抽象了对象值和型值和型之间的之间的“ismemberof”的语义的语义在在E-R模型中,实体型就是这种抽象模型中,实体型就是这种抽象例:例:P212图图7.10一、数据抽象一、数据抽象学学生生张张英英王平王平刘勇刘勇赵赵亮亮7.3.3数据抽象与局部视图设计数据抽象与局部视图设计数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计2.聚集(聚集(Aggregation)定义某一类型的组成成分定义某一类型的组成成分它抽象了对象内部类型和成分之间它抽象了对象内部类型和成分之间“ispartof”的语义的语义在在E-R模型中若干属性的聚集组成了实体型,就是这种抽象模型中若干属性的聚集组成了实体型,就是这种抽象例:例:P212图图7.11,图,图7.123.概括(概括(Generalization)n定义类型之间的一种子集联系定义类型之间的一种子集联系n它抽象了类型之间的它抽象了类型之间的“issubsetof”的语义的语义n概括有一个很重要的性质:继承性。子类继承超类上定义的所概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。有抽象。例:例:P213图图7.13注:注:原原E-R模型不具有概括,本书对模型不具有概括,本书对E-R模型作了扩充,允许定义超模型作了扩充,允许定义超类实体型和子类实体型。类实体型和子类实体型。n 用双竖边的矩形框表示子类,用双竖边的矩形框表示子类,n 用直线加小圆圈表示超类用直线加小圆圈表示超类-子类的联系子类的联系仓库号仓库号面积面积主任主任仓库仓库姓名姓名年龄年龄性别性别工资工资图7.12更复杂的聚集学学 生生学号学号姓名姓名专业专业班级班级实体型实体型属性属性图7.11聚集本科生本科生学学生生研究生研究生“issubsetof”图图7.13概括概括数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v数据抽象的用途数据抽象的用途对需求分析阶段收集到的数据进行分类、组织(聚集),形成对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体实体实体的属性,标识实体的码实体的属性,标识实体的码确定实体之间的联系类型确定实体之间的联系类型(1:1,1:n,m:n)二、局部视图设计二、局部视图设计设计分设计分E-R图的步骤图的步骤:1.选择局部应用选择局部应用2.逐一设计分逐一设计分E-R图图数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计选择局部应用选择局部应用v需求分析阶段,已用多层数据流图和数据字典描述了整个系统。需求分析阶段,已用多层数据流图和数据字典描述了整个系统。v设计分设计分E-R图首先需要根据系统的具体情况,在多层的数据流图中图首先需要根据系统的具体情况,在多层的数据流图中选择选择一个一个适当层次的数据流图适当层次的数据流图,让这组图中每一部分对应一个局,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分部应用,然后以这一层次的数据流图为出发点,设计分E-R图。图。v通常以中层数据流图作为设计分通常以中层数据流图作为设计分E-R图的依据。原因:图的依据。原因:高层数据流图只能反映系统的概貌高层数据流图只能反映系统的概貌中层数据流图能较好地反映系统中各局部应用的子系统组成中层数据流图能较好地反映系统中各局部应用的子系统组成低层数据流图过细低层数据流图过细数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计实例实例:某工厂的信息管理系统某工厂的信息管理系统物资管理子系统物资管理子系统销售管理子系统销售管理子系统人事管理子系统人事管理子系统设计设计E-R图图的出发点的出发点图图7.14设计分设计分E-R图的出发点图的出发点数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计逐一设计分逐一设计分E-R图图v任务任务标定局部应用中的实体、属性、码,实体间的联系标定局部应用中的实体、属性、码,实体间的联系将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型(定实体之间的联系及其类型(1:1,1:n,m:n)v如何抽象实体和属性如何抽象实体和属性实体:实体:现实世界中一组具有某些共同特性和行为的对象就可以抽现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象和实体之间是象为一个实体。对象和实体之间是“ismemberof的关系。的关系。例:在学校环境中,可把张三、李四等对象抽象为学生实体。例:在学校环境中,可把张三、李四等对象抽象为学生实体。属性:属性:对象类型的组成成分可以抽象为实体的属性。组成成分与对象类型的组成成分可以抽象为实体的属性。组成成分与对象类型之间是对象类型之间是“ispartof的关系。的关系。例:学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号例:学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号为标识学生实体的码为标识学生实体的码数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v如何区分实体和属性如何区分实体和属性实体与属性是相对而言的实体与属性是相对而言的。同一事物,在一种应用环境中作为。同一事物,在一种应用环境中作为“属性属性”,在另一种应用环境中就必须作为,在另一种应用环境中就必须作为“实体实体”。例:学校中的系,在某种应用环境中,它只是作为例:学校中的系,在某种应用环境中,它只是作为“学生学生”实体实体的一个属性,表明一个学生属于哪个系;而在另一种环境中,由的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办公地点等,于需要考虑一个系的系主任、教师人数、学生人数、办公地点等,这时它就需要作为实体了。这时它就需要作为实体了。一般原则一般原则1.属性不能再具有需要描述的性质。即属性必须是不可分的数据属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。项,不能再由另一些属性组成。2.属性不能与其他实体具有联系。联系只发生在实体之间。属性不能与其他实体具有联系。联系只发生在实体之间。符合上述两条特性的事物一般作为属性对待。符合上述两条特性的事物一般作为属性对待。为了简化为了简化E-R图的处置,现实世界中的事物凡能够作为属性对待图的处置,现实世界中的事物凡能够作为属性对待的,应尽量作为属性。的,应尽量作为属性。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计举例举例例例1:“学生学生”由学号、姓名等属性进一步描述,根据准则,由学号、姓名等属性进一步描述,根据准则,“学生学生”只能作为实体,不能作为属性。只能作为实体,不能作为属性。例例2:职称通常作为教师实体的属性,但在涉及住房分配时,由于:职称通常作为教师实体的属性,但在涉及住房分配时,由于分房与职称有关,也就是说职称与住房实体之间有联系,根据准则,分房与职称有关,也就是说职称与住房实体之间有联系,根据准则,这时把职称作为实体来处理会更合适些。这时把职称作为实体来处理会更合适些。图图7.15职称作为一个实体职称作为一个实体职工职工职工号职工号姓名姓名年龄年龄职称职称职工职工职称职称聘任聘任n1职工号职工号姓名姓名性别性别年龄年龄职称代码职称代码工资工资住房标准住房标准附加福利附加福利数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计病人病人住院号住院号姓名姓名病房号病房号住在住在病人病人n1病房病房医疗医疗医生医生住院号住院号姓名姓名m1图图7.16病房作为一个属性或实体病房作为一个属性或实体数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计存放存放货物货物nm仓库仓库货号货号单价单价仓库号仓库号面积面积货物货物货号货号单价单价存放仓库号存放仓库号存量存量图图7.17仓库作为一个属性或实体仓库作为一个属性或实体存放存放货物货物nm仓库仓库管理管理职工职工货号货号单价单价1n仓库号仓库号面积面积数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v设计分设计分E-R图的步骤图的步骤(1)以数据字典为出发点定义以数据字典为出发点定义E-R图。图。数据字典中的数据字典中的“数据结构数据结构”、“数据流数据流”和和“数据存储数据存储”等已是若干属性的有意义的聚合等已是若干属性的有意义的聚合(2)按上面给出的准则进行必要的调整。按上面给出的准则进行必要的调整。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计例例:销售子系统分销售子系统分E-R图的设计图的设计第一层数据流图第一层数据流图(P216图图7.18)第二层数据流图第二层数据流图(P216图图7.19图图7.22)存放存放顾客顾客1n应付帐款应付帐款支付支付订单订单订单订单?分析数据字典整个系统功能围绕分析数据字典整个系统功能围绕“订单订单”和和“应收帐款的处理应收帐款的处理,数数据结构中订单、顾客、顾客应付帐目用的最多,是许多子功能共享的据结构中订单、顾客、顾客应付帐目用的最多,是许多子功能共享的数据,因此先设计分数据,因此先设计分E-R的草图(的草图(P218图图7.32)逐一设计分E-R图(例)顾客1.0接收订单已批准订单2.0处理订单顾客账目状况 应收账款产品描述订单细节 3.0开发票订单记录本 包装通知单结算数据主管部门主管部门 批准/不批准核对订单数据生产部门生产通知单准备发货细节 应收账款发票4.0支付过账调整未付差额调整5.0提供应收账款应收账款报表 财务费用变动当前价格订单数据 批准/不批准图 7.18销售管理子系统第一层数据流图销售管理子系统第一层数据流图逐一设计分E-R图(例)1.1核对价格产品描述主管部门顾客订单数据已核对价格的订单1.2核对账目状况1.3批准订单账目状况已核对的订单已批准的订单当前价格应收账款顾客账目状况批准 /不批准主管部门批准/不批准核对订单数据图7.19接收订单逐一设计分E-R图(例)图图7.20处理订单处理订单数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计图图7.21开发票开发票数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计图图7.22支付过账支付过账数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计图图中中在在订订单单实实体体与与产产品品实实体体之之间间的的问问号号“?”表表示示还还不不能能确确定定这这两两个个实实体体之之间间的的联联系系类类型型。然然后后参参照照第第二二层层数数据据流流图图和和数数据据字字典典中中的的详尽描述,遵循前面给出的两个准则,进行如下调整:详尽描述,遵循前面给出的两个准则,进行如下调整:订单应作为实体订单应作为实体零件号零件号+数量数量+1.订单:订单号订单:订单号+若干头信息若干头信息+订单细节订单细节+每张订单由订单号、若干头信息和订单细节组成。订单细节又有每张订单由订单号、若干头信息和订单细节组成。订单细节又有订货的零件号、数量等来描述。按照准则(订货的零件号、数量等来描述。按照准则(2),订单细节就不能作),订单细节就不能作订单的属性处理而应该上升为实体。一张订单可以订若干产品,所以订单的属性处理而应该上升为实体。一张订单可以订若干产品,所以订单与订单细节两个实体之间是订单与订单细节两个实体之间是1 n的联系。的联系。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计2.原订单和产品的联系实际上是订单细节和产品的联系原订单和产品的联系实际上是订单细节和产品的联系3.发票清单是否作为实体?发票清单是否作为实体?否,因为该信息在应收帐款否,因为该信息在应收帐款中体现了中体现了4.折扣规则实体折扣规则实体体现各种商品不同数量的折扣。体现各种商品不同数量的折扣。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计通过调整得到分通过调整得到分E-R图如下:图如下:支付支付顾客顾客1n应付帐款应付帐款订货订货订单订单组成组成订单细节订单细节参照参照2产品描述产品描述参照参照1折扣规则折扣规则1n1nnn11图图7.24销售子系统的分销售子系统的分E-R图图数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计每个实体定义的属性如下;每个实体定义的属性如下;顾客:顾客:顾客号,顾客名,地址,电话,信贷状况,帐目余额顾客号,顾客名,地址,电话,信贷状况,帐目余额订单:订单:订单号,顾客号,订货项数,订货日期,交货日期,工种号,生订单号,顾客号,订货项数,订货日期,交货日期,工种号,生产地点产地点订单细则:订单细则:订单号,细则号,零件号,订货数,金额订单号,细则号,零件号,订货数,金额应收帐款:应收帐款:顾客号,订单号,发票号,应收金额,支付日期,支付金额,顾客号,订单号,发票号,应收金额,支付日期,支付金额,当前余额,货款限额当前余额,货款限额折扣规则折扣规则:产品号,订货量,折扣产品号,订货量,折扣数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.3.4视图的集成视图的集成v各个局部视图即分各个局部视图即分E-R图建立好后,还需要对它们进行合并,集图建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构即总成为一个整体的数据概念结构即总E-R图。图。v视图集成的两种方式视图集成的两种方式一次集成(一次集成(P219图图7.25(a))一次集成多个分一次集成多个分E-R图,通常用于局部视图比较简单时。图,通常用于局部视图比较简单时。逐步集成(逐步集成(P220图图7.25(b))首先集成两个局部视图(通常是比较关键的两个局部视图)首先集成两个局部视图(通常是比较关键的两个局部视图)以后每次将一个新的局部视图集成进来以后每次将一个新的局部视图集成进来第第1种方法比较复杂,做起来难度较大。种方法比较复杂,做起来难度较大。第第2种方法每次只集成两个分种方法每次只集成两个分E-R图,可以降低复杂度。图,可以降低复杂度。n集成局部集成局部E-R图的步骤图的步骤1.合并合并2.修改与重构修改与重构数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计分析分析规范化规范化理论理论集成集成视图视图基本基本E-R图图分分E-R图图修改与重构修改与重构(消除不必消除不必要的冗余要的冗余)初步初步E-R图图合并合并(消除冲突消除冲突)图图7.26视图的集成视图的集成数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计一、合并分一、合并分E-R图,生成初步图,生成初步E-R图图v各分图存在冲突各分图存在冲突各个局部应用所面向的问题不同,并且通常由不同的设计人各个局部应用所面向的问题不同,并且通常由不同的设计人员进行设计,所以各个分员进行设计,所以各个分E-R图之间必定会存在许多不一致的图之间必定会存在许多不一致的地方,称之为冲突。地方,称之为冲突。合并分合并分E-R图的主要工作与关键所在:合理消除各分图的主要工作与关键所在:合理消除各分E-R图的图的冲突。冲突。v冲突的种类冲突的种类属性冲突属性冲突命名冲突命名冲突结构冲突结构冲突数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计属性冲突属性冲突两类属性冲突两类属性冲突属性域冲突属性域冲突:属性值的类型、取值范围或取值集合不同。例如:属性值的类型、取值范围或取值集合不同。例如:零件号(零件号(C/N)年龄(年龄(D/N)属性取值单位冲突:属性取值单位冲突:例如:零件的重量(公斤例如:零件的重量(公斤/克)克)v属性冲突的解决方法属性冲突的解决方法通常用讨论、协商等行政手段加以解决。通常用讨论、协商等行政手段加以解决。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计命名冲突命名冲突v两类命名冲突两类命名冲突同名异义同名异义:不同意义的对象在不同的局部应用中具有相同的名:不同意义的对象在不同的局部应用中具有相同的名字。字。异名同义(一义多名)异名同义(一义多名):同一意义的对象在不同的局部应用中:同一意义的对象在不同的局部应用中具有不同的名字具有不同的名字例如:有的部门把科研项目称项目例如:有的部门把科研项目称项目有的部门则把科研项目称课题有的部门则把科研项目称课题v命名冲突可能发生在属性级、实体级、联系级上。其中属性的命名命名冲突可能发生在属性级、实体级、联系级上。其中属性的命名冲突更为常见。冲突更为常见。v命名冲突的解决方法命名冲突的解决方法通过讨论、协商等行政手段加以解决通过讨论、协商等行政手段加以解决数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计结构冲突结构冲突三类结构冲突三类结构冲突同一对象在不同应用中具有不同的抽象同一对象在不同应用中具有不同的抽象例,例,“课程课程”在某一局部应用中被当作实体在另一局部应用中则被在某一局部应用中被当作实体在另一局部应用中则被当作属性当作属性解决方法:解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。变换时要遵循两个准则。具有相同的抽象。变换时要遵循两个准则。同一实体在不同局部视图中所包含的属性不完全相同,或者属性的同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同排列次序不完全相同。产生原因产生原因:不同的局部应用关心的是该实体的不同侧面。:不同的局部应用关心的是该实体的不同侧面。解决方法:解决方法:使该实体的属性取各分使该实体的属性取各分E-R图中属性的并集,再适当图中属性的并集,再适当设计属性的次序。设计属性的次序。实体之间的联系在不同局部视图中呈现不同的类型实体之间的联系在不同局部视图中呈现不同的类型解决方法:根据应用语义对实体联系的类型进行综合或调整。解决方法:根据应用语义对实体联系的类型进行综合或调整。(P221图图7.27)数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计例如例如:图图7.27合并两个分合并两个分E-R图的综合图的综合数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计二、消除不必要的冗余,设计基本二、消除不必要的冗余,设计基本E-RE-R图图1冗余冗余所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。可由其他联系导出的联系。合并合并解决冲突解决冲突初步初步E-R图图分分E-R图图可能存在冗余的数据可能存在冗余的数据和冗余的实体间联系和冗余的实体间联系基本基本E-R图图消除不必要的冗余消除不必要的冗余n冗余数据和冗余联系容易破坏数据库的完整性,冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难给数据库维护增加困难n并不是所有的冗余数据与冗余联系都必须加以消并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高某些应用的效率,不得不以冗除,有时为了提高某些应用的效率,不得不以冗余信息作为代价。余信息作为代价。n设计数据库概念结构时,哪些冗余信息必须消除,设计数据库概念结构时,哪些冗余信息必须消除,哪些冗余信息允许存在,需要根据用户的整体需哪些冗余信息允许存在,需要根据用户的整体需求来确定。求来确定。n消除不必要的冗余后的初步消除不必要的冗余后的初步E-R图称为基本图称为基本E-R图。图。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计2消除冗余的方法消除冗余的方法1)分析方法分析方法以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。关系的说明来消除冗余。如果是为了提高效率,人为地保留了一些冗余数据,则应把数据字典如果是为了提高效率,人为地保留了一些冗余数据,则应把数据字典中数据关联的说明作为完整性约束条件。中数据关联的说明作为完整性约束条件。一种更好的方法是把冗余数据定义在视图中。一种更好的方法是把冗余数据定义在视图中。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计图图7.28消除冗余消除冗余消除不必要的冗余消除不必要的冗余冗余冗余Q3=Q1Q2Q4=Q5允许冗余允许冗余提高某些应提高某些应用响应时间用响应时间Q4保留,保留,Q4=Q5是完整性约是完整性约束条件。并且由于束条件。并且由于Q3消去,产品与材料间消去,产品与材料间m n的冗余联系也应的冗余联系也应消去。消去。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计2)规范化理论规范化理论函数依赖的概念提供了消除冗余联系的形式化工具。函数依赖的概念提供了消除冗余联系的形式化工具。方法方法(1)确定分确定分E-R图实体之间的数据依赖图实体之间的数据依赖FL。实体之间一对一、一对多、多对实体之间一对一、一对多、多对多的联系可以用实体码之间的函数依赖来表示。多的联系可以用实体码之间的函数依赖来表示。(2)求求FL的最小覆盖的最小覆盖GL,差集为:差集为: D=FL-GL。逐一考察逐一考察D中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。由于规范化理论受到泛关系假设的限制,应注意下面两个问题:由于规范化理论受到泛关系假设的限制,应注意下面两个问题:(1)冗余的联系一定在冗余的联系一定在D中,而中,而D中的联系不一定是冗余的;中的联系不一定是冗余的;(2)当实体之间存在多种联系时要将实体之间的联系在形式上加以区分。当实体之间存在多种联系时要将实体之间的联系在形式上加以区分。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计实例:某工厂信息管理系统的视图集成。实例:某工厂信息管理系统的视图集成。图图1.14工厂物资管理系统工厂物资管理系统职工职工职工号职工号姓名姓名年龄年龄职称职称(a)实体及其属性图实体及其属性图零件号零件号名称名称规格规格单价单价描述描述零件零件预算预算项目项目项目号项目号开工日期开工日期地址地址供应商号供应商号姓名姓名电话号电话号账号账号供应商供应商仓库仓库仓库号仓库号面积面积电话号电话号数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计图图1.14工厂物资管理系统工厂物资管理系统供应商供应商m 供应供应 供应量供应量 项目项目 n 仓库仓库库存库存 零件零件 m n p 工作工作 1n 职工职工库存量库存量 领导领导 1n ( (b)b)实体及其联系图实体及其联系图图图1.14工厂物资管理系统工厂物资管理系统E-R图图供应商姓名供应商号 地址账号电话号仓库仓库号面积电话号职工号姓名年龄职工工作1n 领导1n 库存供应量m 供应库存量m 项目项目号预算开工日期n 零件零件号规格名称描述单价n p ( (C)C)完整的实体联系图完整的实体联系图职称数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计部门部门1n职工职工n1项目项目m1图图 7.29 7.29 劳动人事管理的分劳动人事管理的分E-R图图生产生产属于属于负责负责天数天数实例:某工厂信息管理系统的视图集成。实例:某工厂信息管理系统的视图集成。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计支付支付顾客顾客1n应付帐款应付帐款订货订货订单订单组成组成订单细节订单细节参照参照2产品描述产品描述参照参照1折扣规则折扣规则1n1nnn11图图7.24销售子系统的分销售子系统的分E-R图图数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计图图1.14(c)、图图7.24、图、图7.29分别为该厂物资、劳动人事和销售管理的分分别为该厂物资、劳动人事和销售管理的分E-R图。把这图。把这3个分个分E-R图进行集成过程中解决了以下问题:图进行集成过程中解决了以下问题:(1)异名同义,)异名同义,“项目项目”和和“产品产品”含义相同。某个含义相同。某个“项目项目”实质上实质上是指某个是指某个“产品产品”的生产。统一用的生产。统一用“产品产品”作实体名。作实体名。(2)库存管理中职工与仓库的工作关系已包含在劳动人事管理部门与)库存管理中职工与仓库的工作关系已包含在劳动人事管理部门与职工之间的联系之中,所以可以取消。职工之间领导与被领导关系可由部职工之间的联系之中,所以可以取消。职工之间领导与被领导关系可由部门与职工(经理)之间的领导关系、部门与职工之间的从属关系两者导出,门与职工(经理)之间的领导关系、部门与职工之间的从属关系两者导出,所以也可以取消。所以也可以取消。图图7.30为该系统的基本为该系统的基本E-R图。基本图。基本E-R图中各实体的属性因篇幅有限图中各实体的属性因篇幅有限这里从略。这里从略。部门部门属于属于天数天数1n职工职工参加参加负责负责n1产品产品m1领导领导11供应商供应商供应供应n供应量供应量零件零件mp参照参照21库存库存库存量库存量m订单细节订单细节n仓库仓库nn组成组成订单订单1n订货订货顾客顾客1支付支付1n应收款应收款参照参照11n折扣规则折扣规则图图6.30某工厂管理信息系统的基本某工厂管理信息系统的基本E-R图图数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计三、验证整体概念结构三、验证整体概念结构视图集成后形成一个整体的数据库概念结构,对该整体概念结构还视图集成后形成一个整体的数据库概念结构,对该整体概念结构还必须进行进一步验证,确保它能够满足下列条件:必须进行进一步验证,确保它能够满足下列条件:整体概念结构内部必须具有一致性,不存在互相矛盾的表达。整体概念结构内部必须具有一致性,不存在互相矛盾的表达。整体概念结构能准确地反映原来的每个视图结构,包括属性、实整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系。体及实体间的联系。整体概念结构能满足需要分析阶段所确定的所有要求。整体概念结构能满足需要分析阶段所确定的所有要求。整体概念结构最终还应该提交给用户,征求用户和有关人员的意整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和优化,然后把它确定下来,作为数据库的见,进行评审、修改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步设计数据库的依据概念结构,作为进一步设计数据库的依据数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计概念结构设计小结概念结构设计小结v概念结构设计的步骤概念结构设计的步骤抽象数据并设计局部视图抽象数据并设计局部视图集成局部视图,得到全局概念结构集成局部视图,得到全局概念结构验证整体概念结构验证整体概念结构v数据抽象数据抽象(分类、聚集、概括)分类、聚集、概括)v设计局部视图设计局部视图选择局部应用选择局部应用逐一设计分逐一设计分E-R图图标定局部应用中的实体、属性、码,实体间的联系标定局部应用中的实体、属性、码,实体间的联系用用E-R图描述出来图描述出来v集成局部视图集成局部视图1.合并分合并分E-R图,生成初步图,生成初步E-R图图消除冲突(属性冲突、命名冲突、结构冲突)消除冲突(属性冲突、命名冲突、结构冲突)2.修改与重构修改与重构消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-R图图分析方法分析方法规范化理论规范化理论数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.4逻辑结构设计逻辑结构设计v逻辑结构设计的任务逻辑结构设计的任务概念结构是各种数据模型的共同基础概念结构是各种数据模型的共同基础为了能够用某一为了能够用某一DBMS实现用户需求,还必须将概念结构进一实现用户需求,还必须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。完成的任务。v逻辑结构设计的步骤逻辑结构设计的步骤将概念结构转化为一般的关系、网状、层次模型将概念结构转化为一般的关系、网状、层次模型将将转转化化来来的的关关系系、网网状状、层层次次模模型型向向特特定定DBMS支支持持下下的的数数据据模型转换模型转换对数据模型进行优化对数据模型进行优化逻辑结构设计逻辑结构设计转化为转化为一般数一般数据模型据模型转化为特转化为特定定DBMS支持下的支持下的据模型据模型优化模优化模型型概念结概念结构设计构设计数据库数据库物理设计物理设计基本基本E-R图图转换规转换规则则特定特定DBMS的的特点与限特点与限制制优化方优化方法如规法如规范化理范化理论论逻辑逻辑模型模型图图7.31逻辑结构设计时的三个步骤逻辑结构设计时的三个步骤数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.7.4.1 4.1 E-RE-R图向关系模型的转换图向关系模型的转换v转换内容转换内容E-R图由实体、实体的属性和实体之间的联系三个要素组成;图由实体、实体的属性和实体之间的联系三个要素组成;关系模型的逻辑结构是一组关系模式的集合;关系模型的逻辑结构是一组关系模式的集合;将将E-R图转换为关系模型:将实体、实体的属性和实体之间的联图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。系转化为关系模式。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计转换原则转换原则一个一个实体型实体型转换为一个关系模式。转换为一个关系模式。关系的属性:关系的属性:实体型的属性实体型的属性关系的码:关系的码:实体型的码实体型的码例,职工实体可以转换为如下关系模式:例,职工实体可以转换为如下关系模式:职工(职工(职工号职工号,部门号,姓名,职务,性别,出生日期),部门号,姓名,职务,性别,出生日期)职工职工职工号职工号姓名姓名性别性别职务职务出生日期出生日期部门号部门号一个一个m:n联系联系转换为一个关系模式。转换为一个关系模式。关系的属性关系的属性:与该联系相连的各实体的码以及联系本身的属性与该联系相连的各实体的码以及联系本身的属性关系的码关系的码:各实体码的组合各实体码的组合例例“选修选修”联系是一个联系是一个m:n联系,可以将它转换为如下关系模式,其联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:中学号与课程号为关系的组合码:选修(选修(学号,课程号学号,课程号,成绩),成绩)数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计一个一个1:n联系联系可以转换为一个独立的关系模式,也可以与可以转换为一个独立的关系模式,也可以与n端对应端对应的关系模式合并。的关系模式合并。1)转换为一个独立的关系模式转换为一个独立的关系模式关系的属性:关系的属性:与该联系相连的各实体的码以及联系本身的与该联系相连的各实体的码以及联系本身的属性属性关系的码:关系的码:n端实体的码端实体的码2)与与n端对应的关系模式合并端对应的关系模式合并合并后关系的属性:合并后关系的属性:在在n端关系中加入端关系中加入1端关系的码和联系端关系的码和联系本身的属性本身的属性合并后关系的码:合并后关系的码:不变不变可以减少系统中的关系个数,一般情况下更倾向于采用这种可以减少系统中的关系个数,一般情况下更倾向于采用这种方法。方法。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计一个一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并的关系模式合并。1)转换为一个独立的关系模式转换为一个独立的关系模式关系的属性:关系的属性:与该联系相连的各实体的码以及联系本身的属性与该联系相连的各实体的码以及联系本身的属性关系的候选码:关系的候选码:每个实体的码均是该关系的候选码每个实体的码均是该关系的候选码2)与某一端对应的关系模式合并与某一端对应的关系模式合并合并后关系的属性:合并后关系的属性:加入对应关系的码和联系本身的属性加入对应关系的码和联系本身的属性合并后关系的码:合并后关系的码:不变不变三个或三个以上实体间的一个三个或三个以上实体间的一个多元联系多元联系转换为一个关系模式。转换为一个关系模式。关系的属性:关系的属性:与该多元联系相连的各实体的码以及联系本身的属性与该多元联系相连的各实体的码以及联系本身的属性关系的码:关系的码:各实体码的组合各实体码的组合例,例,“供应供应”联系是一个三元联系,可以将它转换为如下关系模式,联系是一个三元联系,可以将它转换为如下关系模式,其中产品号、供应商号和零件号为关系的组合码:其中产品号、供应商号和零件号为关系的组合码:供应供应(产品号,供应商号,零件号产品号,供应商号,零件号,供应量),供应量)数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计同一实体集的实体间的联系,即同一实体集的实体间的联系,即自联系自联系,也可按上述也可按上述1:1、1:n和和m:n三三种情况分别处理。种情况分别处理。例例如果职工实体集内部存在领导与被领导的如果职工实体集内部存在领导与被领导的1:n自联系,我们可以将自联系,我们可以将该联系与职工实体合并,这时主码职工号将多次出现,但作用不同,可该联系与职工实体合并,这时主码职工号将多次出现,但作用不同,可用不同的属性名加以区分:用不同的属性名加以区分:职工:职工:职工号职工号,部门号,姓名,性别,职称,出生日期,部门号,姓名,性别,职称,出生日期,部门领导部门领导具有相同码的关系模式可合并。具有相同码的关系模式可合并。目的:目的:减少系统中的关系个数减少系统中的关系个数。合并方法:合并方法:将其中一个关系模式的全部属性加入到另一个关系模将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。适当调整属性的次序。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计下面把图下面把图7.30中虚线上部的中虚线上部的E-R图转换为一组关系模式。关系模式的码用下横线标出图转换为一组关系模式。关系模式的码用下横线标出。部门部门(部门号部门号,部门名,经理的职工号,部门名,经理的职工号,)此为部门实体对应的关系模式。该关系模式已包含了联系此为部门实体对应的关系模式。该关系模式已包含了联系“领导领导”所对应的关所对应的关系模式。经理的职工号是关系的候选码。系模式。经理的职工号是关系的候选码。职工职工(职工号职工号,部门号,职工名,职务,部门号,职工名,职务,)此为职工实体对应的关系模式。该关系模式已包含了联系此为职工实体对应的关系模式。该关系模式已包含了联系“属于属于”所对应的关所对应的关系模式。系模式。产品产品(产品号产品号,产品名,产品组长的职工,产品名,产品组长的职工,)此为产品实体对应的关系模式。此为产品实体对应的关系模式。供应商供应商(供应商号供应商号,姓名,姓名,)-此为供应商实体对应的关系模式。此为供应商实体对应的关系模式。零件零件(零件号零件号,零件名,零件名,)-此为零件实体对应的关系模式。此为零件实体对应的关系模式。职工工作职工工作(职工号,产品号职工号,产品号,工作天数,工作天数,)此为联系此为联系“参加参加”所对应的关系模式。所对应的关系模式。供应供应(产品号,供应商号,零件号产品号,供应商号,零件号,供应量),供应量)此为联系此为联系“供应供应”所对应的关系模式。所对应的关系模式。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计向特定向特定DBMS规定的模型进行转换规定的模型进行转换v一般的数据模型还需要向特定一般的数据模型还需要向特定DBMS规定的模型进行转换。规定的模型进行转换。v转换的主要依据是所选用的转换的主要依据是所选用的DBMS的功能及限制。没有通用规则。的功能及限制。没有通用规则。v对于关系模型来说,这种转换通常都比较简单。对于关系模型来说,这种转换通常都比较简单。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.4.2数据模型的优化数据模型的优化v数据库逻辑设计的结果不是唯一的。数据库逻辑设计的结果不是唯一的。v得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据模型的优化。进一步提高数据库应用系统的性能,这就是数据模型的优化。v关系数据模型的优化通常以规范化理论为指导。关系数据模型的优化通常以规范化理论为指导。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据模型的优化(方法)数据模型的优化(方法)确定数据依赖确定数据依赖按需求分析阶段所得到的语义,分别写出每个关系模式内部按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖。各属性之间的数据依赖以及不同关系模式属性之间数据依赖。对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。联系。按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。属于第几范式。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。应用环境这些模式是否合适,确定是否要对它们进行合并或分解。并不是规范化程度越高的关系就越优。并不是规范化程度越高的关系就越优。当一个应用的查询中经常涉及到两个或多个关系模式的属性时,系当一个应用的查询中经常涉及到两个或多个关系模式的属性时,系统必须经常地进行联接运算,而联系运算的代价是相当高的,可以统必须经常地进行联接运算,而联系运算的代价是相当高的,可以说关系模型低效的主要原因就是做联接运算引起的,因此在这种情说关系模型低效的主要原因就是做联接运算引起的,因此在这种情况下,第二范式甚至第一范式也许是最好的。况下,第二范式甚至第一范式也许是最好的。非非BCNF的关系模式虽然从理论上分析会存在不同程度的更新异常,的关系模式虽然从理论上分析会存在不同程度的更新异常,但如果在实际应用中对此关系模式只是查询,并不执行更新操作,但如果在实际应用中对此关系模式只是查询,并不执行更新操作,则就不会产生实际影响。则就不会产生实际影响。对于一个具体应用来说,到底规范化进行到什么程度,需要权衡响对于一个具体应用来说,到底规范化进行到什么程度,需要权衡响应时间和潜在问题两者的利弊才能决定。一般说来,第三范式就足应时间和潜在问题两者的利弊才能决定。一般说来,第三范式就足够了。够了。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式进按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式进行必要的分解或合并,以提高数据操作的效率和存储空间的利用率。行必要的分解或合并,以提高数据操作的效率和存储空间的利用率。常用分解方法常用分解方法水平分解水平分解垂直分解垂直分解数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计水平分解水平分解v什么是水平分解什么是水平分解把把(基基本本)关关系系的的元元组组分分为为若若干干子子集集合合,定定义义每每个个子子集集合合为为一一个个子关系,以提高系统的效率。子关系,以提高系统的效率。v水平分解的适用范围水平分解的适用范围1.满足满足“80/20原则原则”的应用的应用80/20原则:一个大关系中,经常被使用的数据只是关系原则:一个大关系中,经常被使用的数据只是关系的一部分,约的一部分,约20%,把经常使用的数据分解出来,形成一个,把经常使用的数据分解出来,形成一个子关系,可以减少查询的数据量。子关系,可以减少查询的数据量。2.并发事务经常存取不相交的数据并发事务经常存取不相交的数据如如果果关关系系R上上具具有有n个个事事务务,而而且且多多数数事事务务存存取取的的数数据据不不相相交交,则则R可可分分解解为为少少于于或或等等于于n个个子子关关系系,使使每每个个事事务务存存取取的数据对应一个关系。的数据对应一个关系。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计垂直分解垂直分解v什么是垂直分解什么是垂直分解把关系模式把关系模式R的属性分解为若干子集合,形成若干子关系模式。的属性分解为若干子集合,形成若干子关系模式。v垂直分解的原则垂直分解的原则经常在一起使用的属性从经常在一起使用的属性从R中分解出来形成一个子关系模式。中分解出来形成一个子关系模式。v垂直分解的优点垂直分解的优点可以提高某些事务的效率可以提高某些事务的效率v垂直分解的缺点垂直分解的缺点可能使另一些事务不得不执行连接操作,从而降低了效率。可能使另一些事务不得不执行连接操作,从而降低了效率。v垂直分解的适用范围垂直分解的适用范围取决于分解后取决于分解后R上的所有事务的总效率是否得到了提高。上的所有事务的总效率是否得到了提高。v进行垂直分解的方法进行垂直分解的方法简单情况:直观分解简单情况:直观分解复杂情况:用第五章中的模式分解算法复杂情况:用第五章中的模式分解算法垂垂直直分分解解必必须须不不损损失失关关系系模模式式的的语语义义(保保持持无无损损连连接接性性和和保保持持函函数依赖数依赖)。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.4.3设计用户子模式设计用户子模式将将概概念念模模型型转转换换为为全全局局逻逻辑辑模模型型后后,还还应应该该根根据据局局部部应应用用需需求求,结结合合具体具体RDBMS的特点,设计用户的外模式。的特点,设计用户的外模式。目目前前关关系系数数据据库库管管理理系系统统一一般般都都提提供供了了视视图图(View)概概念念,可可以以利利用用这一功能设计更符合局部用户需要的用户外模式。这一功能设计更符合局部用户需要的用户外模式。定定义义数数据据库库模模式式主主要要是是从从系系统统的的时时间间效效率率、空空间间效效率率、易易维维护护等等角角度度出发。出发。由由于于用用户户外外模模式式与与模模式式是是相相对对独独立立的的,因因此此在在定定义义用用户户外外模模式式时时可可以以考虑用户的习惯与方便。包括三个方面:考虑用户的习惯与方便。包括三个方面:数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.4.3设计用户子模式设计用户子模式(1)使用更符合用户习惯的别名使用更符合用户习惯的别名合并各分合并各分E-R图曾做了消除命名冲突的工作,以使数据库系统中同一图曾做了消除命名冲突的工作,以使数据库系统中同一关系和属性具有唯一的名字。这在设计数据库整体结构时是非常必要的。关系和属性具有唯一的名字。这在设计数据库整体结构时是非常必要的。但对于某些局部应用,由于改用了不符合用户习惯的属性名,可能会使但对于某些局部应用,由于改用了不符合用户习惯的属性名,可能会使他们感到不方便,因此在设计用户的子模式时可以重新定义某些属性名,他们感到不方便,因此在设计用户的子模式时可以重新定义某些属性名,使其与用户习惯一致。使其与用户习惯一致。当然,为了应用的规范化,我们也不应该一味地迁就用户。当然,为了应用的规范化,我们也不应该一味地迁就用户。(2)针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。例如,有关系模式:例如,有关系模式:产产品品(产产品品号号,产产品品名名,规规格格,单单价价,生生产产车车间间,生生产产负负责责人人,产产品品成本,产品合格率,质量等级)成本,产品合格率,质量等级)可以在该关系模式上建立两个视图:可以在该关系模式上建立两个视图:为一般顾客建立视图:为一般顾客建立视图:产品产品1(产品号产品号,产品名,规格,单价),产品名,规格,单价)为产品销售部门建立视图:为产品销售部门建立视图:产品产品2(产品号产品号,产品名,规格,单价,车间,生产负责人),产品名,规格,单价,车间,生产负责人)数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计(3)简化用户对系统的使用简化用户对系统的使用如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查询定义为视图。可以将这些复杂查询定义为视图。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计逻辑结构设计小结逻辑结构设计小结v任务将概念结构转化为具体的数据模型任务将概念结构转化为具体的数据模型v逻辑结构设计的步骤逻辑结构设计的步骤将概念结构转化为一般的关系、网状、层次模型;将概念结构转化为一般的关系、网状、层次模型;将转化来的关系、网状、层次模型向特定将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型支持下的数据模型转换;转换;对数据模型进行优化;对数据模型进行优化;设计用户子模式。设计用户子模式。vE-R图向关系模型的转换内容图向关系模型的转换内容将将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。转化为关系模式。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计逻辑结构设计小结逻辑结构设计小结vE-R图向关系模型的转换原则图向关系模型的转换原则一个一个实体型实体型转换为一个关系模式。转换为一个关系模式。一个一个m:n联系联系转换为一个关系模式。转换为一个关系模式。一个一个1:n联系联系可以转换为一个独立的关系模式,也可以与可以转换为一个独立的关系模式,也可以与n端对端对应的关系模式合并。应的关系模式合并。一个一个1:1联系联系可以转换为一个独立的关系模式,也可以与任意一可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。端对应的关系模式合并。三个或三个以上实体间的一个三个或三个以上实体间的一个多元联系多元联系转换为一个关系模式。转换为一个关系模式。同一实体集的实体间的联系,即同一实体集的实体间的联系,即自联系自联系,也可按上述,也可按上述1:1、1:n和和m:n三种情况分别处理。三种情况分别处理。具有具有相同码相同码的关系模式可合并。的关系模式可合并。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计逻辑结构设计小结逻辑结构设计小结优化数据模型的方法优化数据模型的方法确定数据依赖确定数据依赖对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。确定各关系模式分别属于第几范式。确定各关系模式分别属于第几范式。分析对于应用环境这些模式是否合适,确定是否要对它们进行合并分析对于应用环境这些模式是否合适,确定是否要对它们进行合并或分解。或分解。对关系模式进行必要的分解或合并对关系模式进行必要的分解或合并设计用户子模式设计用户子模式1.使用更符合用户习惯的别名使用更符合用户习惯的别名2.针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。3.简化用户对系统的使用简化用户对系统的使用数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.5数据库的物理设计数据库的物理设计数据库在物理设备上的存储结构与存取方法称为数据库的物理结数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。构,它依赖于给定的计算机系统。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计。的过程,就是数据库的物理设计。数据库物理设计的步骤数据库物理设计的步骤确定数据库的物理结构确定数据库的物理结构对物理结构进行评价,评价的重点是时间和空间效率对物理结构进行评价,评价的重点是时间和空间效率如果评价结果满足原设计要求则可进入到物理实施阶段,否如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。设计阶段修改数据模型。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据库物理设计数据库物理设计确定数确定数据库的据库的物理结物理结构构评价数据评价数据库的物理库的物理结构结构逻辑结逻辑结构设计构设计数据库数据库实施实施物理物理模型模型逻辑逻辑模型模型数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.5.1数据库的物理设计的内容和方法数据库的物理设计的内容和方法一、设计数据库物理结构的准备工作一、设计数据库物理结构的准备工作1.充分了解应用环境,详细分析要运行的事务,以获得选择物理数充分了解应用环境,详细分析要运行的事务,以获得选择物理数据库设计所需参数据库设计所需参数2.充分了解所用充分了解所用RDBMS的内部特征,特别是系统提供的存取方法的内部特征,特别是系统提供的存取方法和存储结构和存储结构二、选择物理数据库设计所需参数二、选择物理数据库设计所需参数数据库查询事务数据库查询事务查询的关系查询的关系查询条件所涉及的属性查询条件所涉及的属性连接条件所涉及的属性连接条件所涉及的属性查询的投影属性查询的投影属性数据更新事务数据更新事务被更新的关系被更新的关系每个关系上的更新操作条件所涉及的属性每个关系上的更新操作条件所涉及的属性修改操作要改变的属性值修改操作要改变的属性值每个事务在各关系上运行的频率和性能要求每个事务在各关系上运行的频率和性能要求数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计三、关系数据库物理设计的内容三、关系数据库物理设计的内容1.为关系模式选择为关系模式选择存取方法存取方法(建立存取路径建立存取路径)2.设计关系、索引等数据库文件的设计关系、索引等数据库文件的物理存储结构物理存储结构数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.5.2关系模式存取方法选择关系模式存取方法选择v数据库系统是多用户共享的系统,对同一个关系要建立多条存取路数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。径才能满足多用户的多种应用要求。v物理设计的第一个任务就是要确定选择哪些存取方法,即建立哪些物理设计的第一个任务就是要确定选择哪些存取方法,即建立哪些存取路径。存取路径。vDBMS常用存取方法常用存取方法索引方法,目前主要是索引方法,目前主要是B+树索引方法树索引方法聚簇(聚簇(Cluster)方法方法HASH方法方法HASH方方法法是是用用HASH函函数数存存储储和和存存取取关关系系记记录录的的方方法法。具具体体地地讲讲是是,指指定定某某个个关关系系上上的的一一个个(组组)属属性性A作作为为HASH码码,对对该该HASH码码定定义义一一个个函函数数(称称为为HASH函函数数),关关系系记记录录的的存存储储地地址址由由HASH(a)来决定,来决定,a是该记录在属性是该记录在属性A上的值。上的值。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计一、索引存取方法的选择一、索引存取方法的选择v选择索引存取方法的主要内容选择索引存取方法的主要内容根据应用要求确定根据应用要求确定对哪些属性列建立索引对哪些属性列建立索引对哪些属性列建立组合索引对哪些属性列建立组合索引对哪些索引要设计为唯一索引对哪些索引要设计为唯一索引v选择索引存取方法的一般规则选择索引存取方法的一般规则如果一个如果一个(或一组或一组)属性经常在查询条件中出现,则考虑在这个属性经常在查询条件中出现,则考虑在这个(或这组或这组)属性上建立索引属性上建立索引(或组合索引或组合索引)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引虑在这个属性上建立索引如果一个如果一个(或一组或一组)属性经常在连接操作的连接条件中出现,则考属性经常在连接操作的连接条件中出现,则考虑在这个虑在这个(或这组或这组)属性上建立索引属性上建立索引关系上定义的索引数过多关系上定义的索引数过多会带来较多的额外开销会带来较多的额外开销n 维护索引的开销维护索引的开销n 查找索引的开销查找索引的开销数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计二、聚簇存取方法的选择二、聚簇存取方法的选择v什么是聚簇什么是聚簇为了提高某个属性(或属性组)的查询速度,把这个或这些为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚簇物理块称为聚簇许多关系型许多关系型DBMS都提供了聚簇功能都提供了聚簇功能v聚簇的用途聚簇的用途1.大大提高按聚簇属性进行查询的效率大大提高按聚簇属性进行查询的效率例:假设学生关系按所在系建有索引,现在要查询信息系的所有学生名例:假设学生关系按所在系建有索引,现在要查询信息系的所有学生名单。单。n信息系的信息系的500名学生分布在名学生分布在500个不同的物理块上时,至少要执行个不同的物理块上时,至少要执行500次次I/O操作。操作。n如果将同一系的学生元组集中存放,则每读一个物理块可得到多个如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数。满足查询条件的元组,从而显著地减少了访问磁盘的次数。2.节省存储空间节省存储空间聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇码值不必在聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇码值不必在每个元组中重复存储,只要在一组中存一次就行了。每个元组中重复存储,只要在一组中存一次就行了。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v聚簇的适用范围聚簇的适用范围1.既适用于单个关系独立聚簇,也适用于多个关系组合聚簇既适用于单个关系独立聚簇,也适用于多个关系组合聚簇例:假设用户经常要按系别查询学生成绩单,这一查询涉及学生例:假设用户经常要按系别查询学生成绩单,这一查询涉及学生关系和选修关系的连接操作,即需要按学号连接这两个关系,为提关系和选修关系的连接操作,即需要按学号连接这两个关系,为提高连接操作的效率,可以把具有相同学号值的学生元组和选修元组高连接操作的效率,可以把具有相同学号值的学生元组和选修元组在物理上聚簇在一起。这就相当于把多个关系按在物理上聚簇在一起。这就相当于把多个关系按“预连接预连接”的形式的形式存放,从而大大提高连接操作的效率。存放,从而大大提高连接操作的效率。2.当通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无当通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无关的其他访问很少或者是次要的时,可以使用聚簇。关的其他访问很少或者是次要的时,可以使用聚簇。尤其当尤其当SQL语句中包含有与聚簇码有关的语句中包含有与聚簇码有关的ORDERBY,GROUPBY,UNION,DISTINCT等子句或短语时,使用聚簇特别有利,可等子句或短语时,使用聚簇特别有利,可以省去对结果集的排序操作以省去对结果集的排序操作数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v选择聚簇存取方法选择聚簇存取方法1.设计候选聚簇设计候选聚簇1)对经常在一起进行连接操作的关系可以建立组合聚簇;对经常在一起进行连接操作的关系可以建立组合聚簇;2)如果一个关系的一组属性经常出现在相等比较条件中,则该单个如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇;关系可建立聚簇;3)如果一个关系的一个如果一个关系的一个(或一组或一组)属性上的值重复率很高,则此单个属性上的值重复率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不太少。太关系可建立聚簇。即对应每个聚簇码值的平均元组数不太少。太少了,聚簇的效果不明显。少了,聚簇的效果不明显。2.检查候选聚簇中的关系,取消其中不必要的关系检查候选聚簇中的关系,取消其中不必要的关系1)从独立聚簇中删除经常进行全表扫描的关系;从独立聚簇中删除经常进行全表扫描的关系;2)从独立从独立/组合聚簇中删除更新操作远多于查询操作的关系;组合聚簇中删除更新操作远多于查询操作的关系;3)从独立从独立/组合聚簇中删除重复出现的关系组合聚簇中删除重复出现的关系当一个关系同时加入多个聚簇时,必须从这多个聚簇方案当一个关系同时加入多个聚簇时,必须从这多个聚簇方案(包包括不建立聚簇括不建立聚簇)中选择一个较优的,即在这个聚簇上运行各种事中选择一个较优的,即在这个聚簇上运行各种事务的总代价最小。务的总代价最小。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v聚簇的局限性聚簇的局限性1.聚簇只能提高某些特定应用的性能聚簇只能提高某些特定应用的性能2.建立与维护聚簇的开销相当大建立与维护聚簇的开销相当大对已有关系建立聚簇,将导致关系中元组移动其对已有关系建立聚簇,将导致关系中元组移动其物理存储位置,并使此关系上原有的索引无效,物理存储位置,并使此关系上原有的索引无效,必须重建。必须重建。当一个元组的聚簇码改变时,该元组的存储位置当一个元组的聚簇码改变时,该元组的存储位置也要做相应移动。也要做相应移动。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计建立聚簇索引建立聚簇索引(复习)(复习)v聚簇索引聚簇索引建建立立聚聚簇簇索索引引后后,基基表表中中数数据据也也需需要要按按指指定定的的聚聚簇簇属属性性值值的的升升序序或或降序存放。也即聚簇索引的索引项顺序与表中元组的物理顺序一致。降序存放。也即聚簇索引的索引项顺序与表中元组的物理顺序一致。例:例:CREATECLUSTERINDEXStusnameONStudent(Sname);在在Student表表的的Sname(姓姓名名)列列上上建建立立一一个个聚聚簇簇索索引引,而而且且Student表中的记录表中的记录将按照将按照Sname值的升序存放值的升序存放。在一个基本表上最多只能建立一个聚簇索引在一个基本表上最多只能建立一个聚簇索引聚簇索引的用途:对于某些类型的查询,可以提高查询效率聚簇索引的用途:对于某些类型的查询,可以提高查询效率聚簇索引的适用范围聚簇索引的适用范围很少对基表进行增删操作很少对基表进行增删操作很少对其中的变长列进行修改操作很少对其中的变长列进行修改操作数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计三、三、HASH存取方法的选择存取方法的选择v什么是什么是HASH存取方法存取方法HASH方法是用方法是用HASH函数存储和存取关系记录的方法。具体地讲函数存储和存取关系记录的方法。具体地讲是,指定某个关系上的一个(组)属性是,指定某个关系上的一个(组)属性A作为作为HASH码,对该码,对该HASH码定义一个函数(称为码定义一个函数(称为HASH函数),关系记录的存储地址由函数),关系记录的存储地址由HASH(a)来决定,来决定,a是该记录在属性是该记录在属性A上的值。上的值。v选择选择HASH存取方法的规则存取方法的规则如果一个关系的属性主要出现在如果一个关系的属性主要出现在等值连接等值连接条件中或主要出现在条件中或主要出现在相相等比较等比较选择条件中,且满足下列两个条件之一时,可以选择选择条件中,且满足下列两个条件之一时,可以选择HASH存存取方法取方法该关系的大小可预知,而且不变;该关系的大小可预知,而且不变;该关系的大小动态改变,但所选用的该关系的大小动态改变,但所选用的DBMS提供了动态提供了动态HASH存存取方法。取方法。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.5.3确定数据库的存储结构确定数据库的存储结构主要任务:主要任务:1.确定数据的存放位置和存储结构确定数据的存放位置和存储结构,包括:,包括:关系、索引、聚簇、日志、备份等存储安关系、索引、聚簇、日志、备份等存储安排和存储结构。排和存储结构。2.确定系统配置确定系统配置数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计1.确定数据的存放位置确定数据的存放位置v影响数据存放位置和存储结构的因素影响数据存放位置和存储结构的因素硬件环境硬件环境应用需求应用需求存取时间存取时间存储空间利用率存储空间利用率维护代价维护代价这三个方面常常是相互矛盾的这三个方面常常是相互矛盾的例:消除一切冗余数据虽能够节约存例:消除一切冗余数据虽能够节约存储空间和减少维护代价,但往往会导致储空间和减少维护代价,但往往会导致检索代价的增加,必须进行权衡,选择检索代价的增加,必须进行权衡,选择一个折中方案。一个折中方案。v基本原则基本原则根据应用情况将:根据应用情况将:n易变易变部分与部分与稳定稳定部分部分n存取频率较高存取频率较高部分与部分与存取频率较低存取频率较低部分部分 分开存放,以提高系统性能分开存放,以提高系统性能数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计例:例:数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,可以考虑存放在磁带上。且数据量很大,可以考虑存放在磁带上。如果计算机有多个磁盘,可以考虑将表和索引分别放在不同的磁盘如果计算机有多个磁盘,可以考虑将表和索引分别放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物上,在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。理读写速度比较快。可以将比较大的表分别放在两个磁盘上,以加快存取速度,这在多可以将比较大的表分别放在两个磁盘上,以加快存取速度,这在多用户环境下特别有效。用户环境下特别有效。可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。进系统的性能。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计2.确定系统配置确定系统配置DBMS产品一般都提供了一些产品一般都提供了一些存储分配参数存储分配参数同时使用数据库的用户数同时使用数据库的用户数同时打开的数据库对象数同时打开的数据库对象数内存分配参数内存分配参数使用的缓冲区长度、个数使用的缓冲区长度、个数时间片大小时间片大小物理块的大小物理块的大小物理装填因子物理装填因子锁的数目锁的数目等等等等n系统都为这些变量赋予了合理的系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合缺省值。但是这些值不一定适合每一种应用环境,在进行物理设每一种应用环境,在进行物理设计时,需要根据应用环境确定这计时,需要根据应用环境确定这些参数值,以使系统性能最优。些参数值,以使系统性能最优。 n在物理设计时对系统配置变量的在物理设计时对系统配置变量的调整只是初步的,在系统运行时调整只是初步的,在系统运行时还要根据系统实际运行情况做进还要根据系统实际运行情况做进一步的调整,以期切实改进系统一步的调整,以期切实改进系统性能。性能。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.5.4评价物理结构评价物理结构v评价内容评价内容对数据库物理设计过程中产生的多种方案进行细致的评价,从中选择对数据库物理设计过程中产生的多种方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。一个较优的方案作为数据库的物理结构。v评价方法评价方法定量估算各种方案定量估算各种方案存储空间存储空间存取时间存取时间维护代价维护代价对估算结果进行权衡、比较,选择出一个较优的合理的物理结构;对估算结果进行权衡、比较,选择出一个较优的合理的物理结构;如果该结构不符合用户需求,则需要修改设计。如果该结构不符合用户需求,则需要修改设计。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.6数据库的实施和维护数据库的实施和维护完完成成数数据据库库的的物物理理设设计计之之后后,设设计计人人员员就就要要用用RDBMS提提供供的的数数据据定定义义语语言言将将数数据据库库逻逻辑辑设设计计和和物物理理设设计计的的结结果果严严格格描描述述出出来来,成成为为RDBMS可可以以接接受受的的源源代代码码,再再经经过过调调试试产产生生目目标标模模式式,然然后后就就可可以以组组织织数数据据入入库库了了,这就是数据库实施阶段。这就是数据库实施阶段。数据库实施的工作内容数据库实施的工作内容用用DBMS提供的语言定义数据库结构提供的语言定义数据库结构组织数据入库组织数据入库编制与调试应用程序编制与调试应用程序数据库试运行数据库试运行数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计数据库实施数据库实施定义数定义数据库结据库结构构数据数据装载装载数据库数据库试运行试运行数据库物数据库物理设计理设计数据库运数据库运行和维护行和维护物理物理模型模型编制与编制与调试应调试应用程序用程序数据库数据库系统系统数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.6.1数据的载入和应用程序的调试数据的载入和应用程序的调试v数据库实施阶段包括两项重要的工作,一项是数据的载入,另一项是数据库实施阶段包括两项重要的工作,一项是数据的载入,另一项是应用程序的编码和调试。应用程序的编码和调试。v数据库应用程序的设计应该与数据设计并行进行。数据库应用程序的设计应该与数据设计并行进行。v在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试数据库的应用程序。调试应用程序时由于数据入库尚未完成,可先使数据库的应用程序。调试应用程序时由于数据入库尚未完成,可先使用模拟数据用模拟数据。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.6.2数据库的试运行数据库的试运行输输入入一一小小部部分分数数据据后后就就可可以以开开始始对对数数据据库库系系统统进进行行联联合合调调试试,这这又又称称为数据库的试运行。为数据库的试运行。这这一一阶阶段段要要实实际际运运行行数数据据库库应应用用程程序序,执执行行对对数数据据库库的的各各种种操操作作,测测试试应应用用程程序序的的功功能能是是否否满满足足设设计计要要求求。如如果果不不满满足足,对对应应用用程程序序部部分分则则要修改和调整,直到达到设计要求为止。要修改和调整,直到达到设计要求为止。数据库试运行也称为联合调试,其主要工作包括:数据库试运行也称为联合调试,其主要工作包括:1)功能测试功能测试:实际运行应用程序,执行对数据库的各种操作,测:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。试应用程序的各种功能。2)性能测试性能测试:测量系统的性能指标,分析是否符合设计目标。:测量系统的性能指标,分析是否符合设计目标。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计v数据库性能指标的测量数据库性能指标的测量数据库物理设计阶段在评价数据库结构估算时间、空间指标时,作了许数据库物理设计阶段在评价数据库结构估算时间、空间指标时,作了许多简化和假设,忽略了许多次要因素,因此结果必然很粗糙。多简化和假设,忽略了许多次要因素,因此结果必然很粗糙。数据库试运行则是要实际测量系统的各种性能指标(不仅是时间、空间数据库试运行则是要实际测量系统的各种性能指标(不仅是时间、空间指标),如果结果不符合设计目标,则需要返回物理设计阶段,调整物理指标),如果结果不符合设计目标,则需要返回物理设计阶段,调整物理结构,修改参数;有时甚至需要返回逻辑设计阶段,调整逻辑结构。结构,修改参数;有时甚至需要返回逻辑设计阶段,调整逻辑结构。v特别强调两点特别强调两点1.数据的分期入库数据的分期入库2.数据库的转储和恢复数据库的转储和恢复重新设计物理结构甚至逻辑结构,会导致重新设计物理结构甚至逻辑结构,会导致数据重新入库。由于数据入库工作量实在太数据重新入库。由于数据入库工作量实在太大,所以可以采用分期输入数据的方法。大,所以可以采用分期输入数据的方法。n先输入小批量数据供先期联合调试使用;先输入小批量数据供先期联合调试使用;n待试运行基本合格后再输入大批量数据;待试运行基本合格后再输入大批量数据;n逐步增加数据量,逐步完成运行评价。逐步增加数据量,逐步完成运行评价。n在数据库试运行阶段,系统还不稳定,硬、在数据库试运行阶段,系统还不稳定,硬、软件故障随时都可能发生;软件故障随时都可能发生;n系统的操作人员对新系统还不熟悉,误操作系统的操作人员对新系统还不熟悉,误操作也不可避免;也不可避免;n因此必须做好数据库的转储和恢复工作,尽因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。量减少对数据库的破坏。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.6.3数据库的运行与维护数据库的运行与维护数据库试运行结果符合设计目标后,数据库就可以真正投入运数据库试运行结果符合设计目标后,数据库就可以真正投入运行了。数据库投入运行标着开发任务的基本完成和维护工作的开始行了。数据库投入运行标着开发任务的基本完成和维护工作的开始由于应用环境在不断变化,数据库运行过程中物理存储会不断由于应用环境在不断变化,数据库运行过程中物理存储会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。的任务,也是设计工作的继续和提高。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.6.3数据库的运行与维护数据库的运行与维护在数据库运行阶段,对数据库经常性的维护工作主要是由在数据库运行阶段,对数据库经常性的维护工作主要是由DBA完成的,完成的,包括:包括:1.数据库的转储和恢复数据库的转储和恢复2.数据库的安全性、完整性控制数据库的安全性、完整性控制3.数据库性能的监督、分析和改进数据库性能的监督、分析和改进4.数据库的重组织和重构造数据库的重组织和重构造转储和恢复是系统正式运转储和恢复是系统正式运行后最重要的维护工作之一。行后最重要的维护工作之一。DBA要针对不同的应用要要针对不同的应用要求制定不同的转储计划,定求制定不同的转储计划,定期对数据库和日志文件进行期对数据库和日志文件进行备份。备份。一旦发生介质故障,即利一旦发生介质故障,即利用数据库备份及日志文件备用数据库备份及日志文件备份,尽快将数据库恢复到某份,尽快将数据库恢复到某种一致性状态。种一致性状态。DBA必须根据用户的实必须根据用户的实际需要授予不同的操作权限际需要授予不同的操作权限在数据库运行过程中,由在数据库运行过程中,由于应用环境的变化,对安全于应用环境的变化,对安全性的要求也会发生变化,性的要求也会发生变化,DBA需要根据实际情况修改需要根据实际情况修改原有的安全性控制。原有的安全性控制。由于应用环境的变化,数由于应用环境的变化,数据库的完整性约束条件也会据库的完整性约束条件也会变化,也需要变化,也需要DBA不断修正,不断修正,以满足用户要求。以满足用户要求。 在数据库运行过程中,在数据库运行过程中, DBA必须监督系统运行,必须监督系统运行,对监测数据进行分析,找出对监测数据进行分析,找出改进系统性能的方法。改进系统性能的方法。n利用监测工具获取系统运行利用监测工具获取系统运行过程中一系列性能参数的值过程中一系列性能参数的值n通过仔细分析这些数据,判通过仔细分析这些数据,判断当前系统是否处于最佳运断当前系统是否处于最佳运行状态行状态n如果不是,则需要通过调整如果不是,则需要通过调整某些参数来进一步改进数据某些参数来进一步改进数据库性能库性能数数据据库库运运行行一一段段时时间间后后,由由于于记记录录不不断断增增、删删、改改,会会使使数数据据库库的的物物理理存存储储情情况况变变坏坏,降降低低了了数数据据的的存存取取效效率率,数数据据库库性性能能下下降降,这这时时DBA就就要要对对数数据据库库进进行行重重组组织织,或或部部分分重重组组织织(只只对对频频繁繁增增、删删的的表表进进行行重重组组织织)。RDBMS一一般般都都提提供供数数据据重重组组织织用用的的实实用程序。用程序。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.7小结小结v数据库的设计过程数据库的设计过程需求分析需求分析概念结构设计概念结构设计逻辑结构设计逻辑结构设计物理设计物理设计实施实施运行维护运行维护设计过程中往往还会有许多反复。设计过程中往往还会有许多反复。数据库系统概论数据库系统概论第七章第七章 数据库设计数据库设计7.7小结小结v数据库各级模式的形成数据库各级模式的形成数据库的各级模式是在设计过程中逐步形成的数据库的各级模式是在设计过程中逐步形成的需求分析阶段综合各个用户的应用需求(现实世界的需求)。需求分析阶段综合各个用户的应用需求(现实世界的需求)。概念设计阶段形成独立于机器特点、独立于各个概念设计阶段形成独立于机器特点、独立于各个DBMS产品产品的的概念模式概念模式(信息世界模型),用(信息世界模型),用E-R图来描述。图来描述。在逻辑设计阶段将在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库据模型如关系模型,形成数据库逻辑模式逻辑模式。然后根据用户处。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(视图(VIEW)形成数据的形成数据的外模式外模式。在物理设计阶段根据在物理设计阶段根据DBMS特点和处理的需要,进行物理存特点和处理的需要,进行物理存储安排,设计索引,形成数据库储安排,设计索引,形成数据库内模式内模式。整个数据库设计过程体现了结构特征与行为特征的紧密结合整个数据库设计过程体现了结构特征与行为特征的紧密结合
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号