《数据库规范理论复习课件》由会员分享,可在线阅读,更多相关《数据库规范理论复习课件(145页珍藏版)》请在金锄头文库上搜索。
1、数据库规范化理论复习数据库规范化理论复习一、数据依赖:是一个关系内部属性与属性之间的一种约束关一、数据依赖:是一个关系内部属性与属性之间的一种约束关系,主要有:函数依赖和多值依赖、完全函数依赖、部系,主要有:函数依赖和多值依赖、完全函数依赖、部分函数依赖、传递依赖、平凡与非平凡依赖等。分函数依赖、传递依赖、平凡与非平凡依赖等。二、范式:就是关系数据库中的关系所满足的不同条件的要求。二、范式:就是关系数据库中的关系所满足的不同条件的要求。1.1NF:在关系模式:在关系模式R中的每一个具体关系中的每一个具体关系r中,若每一个中,若每一个属性值都不可再分,则称属性值都不可再分,则称R为第一范式的关系
2、,记为:为第一范式的关系,记为: R 1NF。2.2NF:若:若R 1NF,且每一个非主属性完全依赖于码,且每一个非主属性完全依赖于码,则则R 2NF。1数据库规范化理论复习数据库规范化理论复习3.3NF:若:若R 2NF,且每一个非主属性即不部分依赖,且每一个非主属性即不部分依赖于码也不传递依赖于码,则它属于三范式的关系,记于码也不传递依赖于码,则它属于三范式的关系,记为为R 3NF。4.BCNF:关系模式:关系模式R中,若每一个决定因素都包含码,中,若每一个决定因素都包含码,则则R BCNF。2数据库系统概论数据库系统概论An Introduction to Database System
3、第七章第七章 数据库设计数据库设计37.1 数据库设计概述数据库设计概述v 数据库设计:数据库设计:定义:数据库设计是指对于一个给定的应用环境,设定义:数据库设计是指对于一个给定的应用环境,设计优化的数据库逻辑模式和物理结构,并据此建立数计优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据满足各种用户的应用需求,包括信息管理要求和数据操作要求。操作要求。注:逻辑模式,也就是数据库的模式,是数据库全体注:逻辑模式,也就是数据库的模式,是数据库全体数据的逻辑结构和
4、特征的描述。数据的逻辑结构和特征的描述。47.1.1 数据库设计的特点数据库设计的特点1.三分技术,七分管理,十二分基础数据:强调了数三分技术,七分管理,十二分基础数据:强调了数据的收集、整理、组织和不断更新是数据库建设中据的收集、整理、组织和不断更新是数据库建设中的重要环节。的重要环节。2.结构(数据)设计和行为(处理)设计相结合:整结构(数据)设计和行为(处理)设计相结合:整个设计过程中,要把数据库结构设计和对数据的处个设计过程中,要把数据库结构设计和对数据的处理设计密切结合起来。理设计密切结合起来。5数据库设计的特点(续)数据库设计的特点(续)现实世界现实世界概念模型设计概念模型设计子模
5、式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计程序说明程序说明应用程序设计应用程序设计程序编码调试程序编码调试结构和行为分离的设计 67.1.2 数据库设计方法数据库设计方法1.新奥尔良(新奥尔良(New Orleans)方法:将数据库设计分为若)方法:将数据库设计分为若干阶段和步骤干阶段和步骤 。2.基于基于E-R模型的数据库设计方法:概念设计阶段广泛采模型的数据库设计方法:概念设计阶段广泛采用。用。3.3NF(第三范式)的设计方法:(第三范式)的设计方法:逻辑阶段可
6、采用的有效逻辑阶段可采用的有效方法方法 。4.ODL(Object Definition Language)方法:)方法:面向对象面向对象的数据库设计方法。的数据库设计方法。7数据库设计方法(续)数据库设计方法(续)5.计算机辅助设计:计算机辅助设计:ORACLE: Designer 2000SYBASE: PowerDesigner87.1.3 数据库设计的基本步骤数据库设计的基本步骤v数据库设计分数据库设计分6个阶段个阶段 :需求分析:需求分析:概念结构设计:概念结构设计:逻辑结构设计:逻辑结构设计:物理结构设计:物理结构设计:数据库实施:数据库实施:数据库运行和维护:数据库运行和维护:
7、v需求分析和概念设计独立于任何数据库管理系统。需求分析和概念设计独立于任何数据库管理系统。 v逻辑设计和物理设计与选用的逻辑设计和物理设计与选用的DBMS密切相关。密切相关。9数据库设计的基本步骤(续)数据库设计的基本步骤(续)一、数据库设计的准备工作:一、数据库设计的准备工作:选定参加设计的人。选定参加设计的人。1.系统分析人员、数据库设计人员:系统分析人员、数据库设计人员:自始至终参与数据库设计。自始至终参与数据库设计。2. 用户和数据库管理员用户和数据库管理员 :主要参加需求分析和数据库的运行维护。主要参加需求分析和数据库的运行维护。3.应用开发人员(程序员和操作员)应用开发人员(程序员
8、和操作员) :在系统实施阶段参与进来,负责编制程序和准备软硬件环境。在系统实施阶段参与进来,负责编制程序和准备软硬件环境。 10数据库设计的基本步骤(续)数据库设计的基本步骤(续)二、数据库设计的过程二、数据库设计的过程(六个阶段六个阶段) 需求分析阶段:需求分析阶段:准确了解与分析用户需求(包括数据与处理)。准确了解与分析用户需求(包括数据与处理)。最困难、最耗费时间的一步。最困难、最耗费时间的一步。11数据库设计的基本步骤(续)数据库设计的基本步骤(续)概念结构设计阶段:概念结构设计阶段:整个数据库设计的关键。整个数据库设计的关键。通过对用户需求进行综合、归纳与抽象,形成一个独通过对用户需
9、求进行综合、归纳与抽象,形成一个独立于具体立于具体DBMS的概念模型。的概念模型。12数据库设计的基本步骤(续)数据库设计的基本步骤(续)逻辑结构设计阶段:逻辑结构设计阶段:将概念结构转换为某个将概念结构转换为某个DBMS所支持的数据模型。所支持的数据模型。对其进行优化。对其进行优化。“数据模型数据模型”:它是对现实世界数据特征的抽象,它是用来:它是对现实世界数据特征的抽象,它是用来描述数据、组织数据和对数据进行操作的,把具体事物转描述数据、组织数据和对数据进行操作的,把具体事物转换成计算机能处理的数据,通俗地讲,它就是现实世界的换成计算机能处理的数据,通俗地讲,它就是现实世界的模拟。模拟。1
10、3数据库设计的基本步骤(续)数据库设计的基本步骤(续)数据库物理设计阶段:数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。(包括存储结构和存取方法)。14数据库设计的基本步骤(续)数据库设计的基本步骤(续)数据库实施阶段:数据库实施阶段:运用运用DBMS提供的数据库语言(如提供的数据库语言(如SQL)及宿主语言,)及宿主语言,根据逻辑设计和物理设计的结果。根据逻辑设计和物理设计的结果。建立数据库。建立数据库。编制与调试应用程序。编制与调试应用程序。组织数据入库。组织数据入库。进行试运行。进行试运行。15
11、数据库设计的基本步骤(续)数据库设计的基本步骤(续)数据库运行和维护阶段:数据库运行和维护阶段:数据库应用系统经过试运行后即可投入正式运行。数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、在数据库系统运行过程中必须不断地对其进行评价、调整与修改。调整与修改。167.1.4数据库设计过程中的各级模式数据库设计过程中的各级模式数据库设计不同阶段形成的数据库各级模式数据库设计不同阶段形成的数据库各级模式数据库的各级模式数据库的各级模式 18第七章第七章 数据库设计数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5
12、数据库的物理设计7.6 数据库实施和维护7.7 小结197.2.1 需求分析的任务需求分析的任务v需求分析的重点需求分析的重点: 是是“数据数据”和和“处理处理”,获得,获得用户对数据库要求。用户对数据库要求。信息要求:信息要求:处理要求:处理要求:安全性与完整性要求:安全性与完整性要求:207.2.2 需求分析的方法需求分析的方法1调查需求:调查需求:2达成共识:达成共识:3分析表达需求:分析表达需求:217.2.3 数据字典数据字典v 数据字典:是系统中各类数据描述的的集合。数据字典:是系统中各类数据描述的的集合。v 数据字典的内容:数据字典的内容:数据项:数据项:数据结构:数据结构:数据
13、流:数据流:数据存储:数据存储:处理过程:处理过程:22 数据项数据项v 数据项是不可再分的数据单位。数据项是不可再分的数据单位。v 对数据项的描述:对数据项的描述: 数据项描述数据项描述 数据项名,数据项含义说明,别名,数据项名,数据项含义说明,别名, 数据类型,长度,取值范围,取值含义,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的与其他数据项的逻辑关系,数据项之间的联系联系 23 数据结构数据结构v数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。v 一个数据结构可以由若干个数据项组成,也可以由若干个一个数据结构可以由若干个数据项组成,也可以由
14、若干个数据结构组成,或由若干个数据项和数据结构混合组成。数据结构组成,或由若干个数据项和数据结构混合组成。v 对数据结构的描述对数据结构的描述 数据结构描述数据结构名,含义说明,数据结构描述数据结构名,含义说明, 组成组成:数据项或数据结构数据项或数据结构24 数据流数据流v 数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。v 对数据流的描述:对数据流的描述: 数据流描述数据流描述 数据流名,说明,数据流来源,数据流名,说明,数据流来源, 数据流去向,组成数据流去向,组成:数据结构,数据结构, 平均流量,高峰期流量平均流量,高峰期流量25 数据存储数据存储v数据存储是数
15、据结构停留或保存的地方,也是数据数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。流的来源和去向之一。v对数据存储的描述:对数据存储的描述: 数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号,输入的数据流输入的数据流 ,输出的数据流,输出的数据流 ,组成组成:数据结构,数据量,存取频度,数据结构,数据量,存取频度,存取方式存取方式26 处理过程处理过程v处理过程说明性信息的描述处理过程说明性信息的描述处理过程描述处理过程名,说明,输入处理过程描述处理过程名,说明,输入:数据流,数据流, 输出输出:数据流,处理数据流,处理:简要说明简要说明27数据字典举例数据
16、字典举例例:学生学籍管理子系统的数据字典。例:学生学籍管理子系统的数据字典。 数据项数据项,以,以“学号学号”为例:为例: 数据项:学号数据项:学号 含义说明:唯一标识每个学生含义说明:唯一标识每个学生别名:学生编号别名:学生编号 类型:字符型类型:字符型 长度:长度:8 取值范围:取值范围:00000000至至99999999取值含义:前两位表示那一届的学生,第取值含义:前两位表示那一届的学生,第3,4位该学生所在位该学生所在系,第系,第5,6两位表示班级,第两位表示班级,第7,8位表示学生在班级的编号。位表示学生在班级的编号。28处理过程(续处理过程(续)数据结构,数据结构,以以“学生学生
17、”为例。为例。“学生学生”是该系统中的一个核心数据结构:是该系统中的一个核心数据结构: 数据结构:学生。数据结构:学生。 含义说明:是学籍管理子系统的主体数据结构,含义说明:是学籍管理子系统的主体数据结构, 定义了一个学生的有关信息。定义了一个学生的有关信息。 组成:学号,姓名,性别,年龄,所在系,年级。组成:学号,姓名,性别,年龄,所在系,年级。29处理过程(续)处理过程(续)数据流,数据流,“体检结果体检结果”可如下描述:可如下描述: 数据流:体检结果数据流:体检结果 说明:学生参加体格检查的最终结果说明:学生参加体格检查的最终结果 数据流来源:体检数据流来源:体检 数据流去向:批准数据流
18、去向:批准 组成:组成:平均流量:平均流量:高峰期流量:高峰期流量:30处理过程(续)处理过程(续)数据存储,数据存储,“学生登记表学生登记表”可如下描述:可如下描述: 数据存储:学生登记表数据存储:学生登记表 说明:记录学生的基本情况说明:记录学生的基本情况流入数据流:流入数据流: 流出数据流:流出数据流: 组成:组成: 数据量:每年数据量:每年3000张张 存取方式:随机存取存取方式:随机存取 31处理过程(续)处理过程(续)处理过程处理过程“分配宿舍分配宿舍”可如下描述:可如下描述:处理过程:分配宿舍处理过程:分配宿舍说明:为所有新生分配学生宿舍说明:为所有新生分配学生宿舍输入:学生,宿
19、舍输入:学生,宿舍输出:宿舍安排输出:宿舍安排处理:在新生报到后,为所有新生分配学生宿舍。处理:在新生报到后,为所有新生分配学生宿舍。 要求同一间宿舍只能安排同一性别的学生,要求同一间宿舍只能安排同一性别的学生, 同一个学生只能安排在一个宿舍中。同一个学生只能安排在一个宿舍中。 每个学生的居住面积不小于每个学生的居住面积不小于3平方米。平方米。 安排新生宿舍其处理时间应不超过安排新生宿舍其处理时间应不超过15分钟。分钟。 32数据字典数据字典v数据字典是关于数据库中数据的描述,是元数据,而不是数数据字典是关于数据库中数据的描述,是元数据,而不是数据本身。据本身。v数据字典在需求分析阶段建立,在
20、数据库设计过程中不断修数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善改、充实、完善 。337.3 概念结构设计概念结构设计7.3.1 概念结构7.3.2 概念结构设计的方法与步骤7.3.3 数据抽象与局部视图设计7.3.4 视图的集成347.3.1 概念结构概念结构v什么是概念结构设计:什么是概念结构设计:将需求分析得到的用户需求抽象为信息结构即概念将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。模型的过程就是概念结构设计。概念结构是各种数据模型的共同基础,它比数据模概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。型
21、更独立于机器、更抽象,从而更加稳定。概念结构设计是整个数据库设计的关键。概念结构设计是整个数据库设计的关键。35概念结构(续)概念结构(续)现实世界现实世界机器世界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计36概念结构(续)概念结构(续)v概念结构设计的特点:概念结构设计的特点: (1) 能真实、充分地反映现实世界。能真实、充分地反映现实世界。 (2) 易于理解。易于理解。 (3) 易于更改。易于更改。 (4) 易于向关系、网状、层次等各种数据模型转换。易于向关系、网状、层次等各种数据模型转换。37概念结构(续)概念结构(续)v描述概念模型的工具:描述概念模型的工具:E-
22、R模型:实体模型:实体-联系模型。联系模型。387.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤v设计概念结构的四类方法:设计概念结构的四类方法:自顶向下:自顶向下: 首先定义全局概念结构的框架,然后逐步细化首先定义全局概念结构的框架,然后逐步细化自顶向下策略397.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤自底向上:自底向上: 首先定义各局部应用的概念结构,然后将它们集成起首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构来,得到全局概念结构自底向上策略40概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续)逐步扩张:逐步扩张: 首先定义最重
23、要的核心概念结构,然后向外扩充,以首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结滚雪球的方式逐步生成其他概念结构,直至总体概念结构。构。逐步扩张策略41概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续)混合策略:混合策略: 将自顶向下和自底向上相结合,用自顶向下策略设计将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。策略中设计的各局部概念结构。42概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续)v常用策略
24、:常用策略:自顶向下地进行需求分析。自顶向下地进行需求分析。自底向上地设计概念结构。自底向上地设计概念结构。437.3.3 数据抽象与局部视图设计数据抽象与局部视图设计v数据抽象:数据抽象:v局部视图设计:局部视图设计:45数据抽象数据抽象v抽象是对实际的人、物、事和概念中抽取所关心抽象是对实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节,并把这些特性的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。用各种概念精确地加以描述。概念结构是对现实世界的一种抽象。概念结构是对现实世界的一种抽象。46局部视图设计局部视图设计设计分设计分E-R图的步骤图的步骤:选择局部应
25、用选择局部应用逐一设计分逐一设计分E-R图图47 选择局部应用选择局部应用v在多层的数据流图中选择一个适当层次的数据流在多层的数据流图中选择一个适当层次的数据流图,作为设计分图,作为设计分E-R图的出发点图的出发点 。v通常以通常以中层数据流图中层数据流图作为设计分作为设计分E-R图的依据。图的依据。48选择局部应用(续)选择局部应用(续)设计分E-R图的出发点 49 逐一设计分逐一设计分E-R图图v任务任务将各局部应用涉及的数据分别从数据字典中抽取出来。将各局部应用涉及的数据分别从数据字典中抽取出来。参照数据流图,标定各局部应用中的实体、实体的属参照数据流图,标定各局部应用中的实体、实体的属
26、性、标识实体的码。性、标识实体的码。确定实体之间的联系及其类型(确定实体之间的联系及其类型(1:1,1:n,m:n)。)。50逐一设计分逐一设计分E-R图(续)图(续)v两条准则:两条准则:(1)属性不能再具有需要描述的性质。即属性必须)属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。是不可分的数据项,不能再由另一些属性组成。(2)属性不能与其他实体具有联系。联系只发生在)属性不能与其他实体具有联系。联系只发生在实体之间。实体之间。517.3 概念结构设计概念结构设计7.3.1 概念结构7.3.2 概念结构设计的方法与步骤7.3.3 数据抽象与局部视图设计7.
27、3.4 视图的集成527.3.4 视图的集成视图的集成v各个局部视图即分各个局部视图即分E-R图建立好后,还需要对它图建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构即们进行合并,集成为一个整体的数据概念结构即总总E-R图。图。53视图集成的两种方式视图集成的两种方式v多个分多个分E-R图一次集成:图一次集成:一次集成多个分一次集成多个分E-R图。图。通常用于局部视图比较简单时。通常用于局部视图比较简单时。54视图的集成(续)视图的集成(续)v逐步集成:逐步集成:用累加的方式一次集成两个分用累加的方式一次集成两个分E-R图图 。55视图的集成(续)视图的集成(续)v集成局部集成局部
28、E-R图的步骤:图的步骤:1. 合并。合并。2. 修改与重构。修改与重构。56视图的集成(续)视图的集成(续)视图集成 57合并分合并分E-R图,生成初步图,生成初步E-R图图v 各分各分E-R图存在冲突:图存在冲突:各个分各个分E-R图之间必定会存在许多不一致的地方。图之间必定会存在许多不一致的地方。v合并分合并分E-R图的主要工作与关键:图的主要工作与关键:合理消除各分合理消除各分E-R图的冲突。图的冲突。58 属性冲突属性冲突v两类属性冲突:两类属性冲突:属性域冲突:属性域冲突:属性值的类型。属性值的类型。取值范围。取值范围。 取值集合不同。取值集合不同。属性取值单位冲突:属性取值单位冲
29、突:60 命名冲突命名冲突v两类命名冲突:两类命名冲突:同名异义同名异义:不同意义的对象在不同的局部应用中具有:不同意义的对象在不同的局部应用中具有相同的名字。相同的名字。异名同义(一义多名)异名同义(一义多名):同一意义的对象在不同的局:同一意义的对象在不同的局部应用中具有不同的名字。部应用中具有不同的名字。61 结构冲突结构冲突v三类结构冲突:三类结构冲突:同一对象在不同应用中具有不同的抽象。同一对象在不同应用中具有不同的抽象。同一实体在不同分同一实体在不同分E-R图中所包含的属性个数和属性排图中所包含的属性个数和属性排列次序不完全相同。列次序不完全相同。实体之间的联系在不同局部视图中呈现
30、不同的类型。实体之间的联系在不同局部视图中呈现不同的类型。62消除不必要的冗余,设计基本消除不必要的冗余,设计基本E-R图图v基本任务:基本任务:消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-R图。图。合并合并初步初步E-R图图分分E-R图图可能存在冗余的数据可能存在冗余的数据和冗余的实体间联系和冗余的实体间联系基本基本E-R图图消除不必要的冗余消除不必要的冗余63Stop here!64第七章第七章 数据库设计数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 数据库的物理设计7.6 数据库的实施和维护7.7 小结657.4 逻辑
31、结构设计逻辑结构设计v逻辑结构设计的任务:逻辑结构设计的任务:把概念结构设计阶段设计好的基本把概念结构设计阶段设计好的基本E-R图转换为与选用图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。产品所支持的数据模型相符合的逻辑结构。v逻辑结构设计的步骤:逻辑结构设计的步骤:将概念结构转化为一般的关系、网状、层次模型。将概念结构转化为一般的关系、网状、层次模型。将转换来的关系、网状、层次模型向特定将转换来的关系、网状、层次模型向特定DBMS支持下支持下的数据模型转换。的数据模型转换。对数据模型进行优化。对数据模型进行优化。66 逻辑结构设计逻辑结构设计(续续)逻辑结构设计时的3个步骤 6
32、77.4 逻辑结构设计逻辑结构设计7.4.1 E-R图向关系模型的转换7.4.2 数据模型的优化7.4.3 设计用户子模式687.4.1 E-R图向关系模型的转换图向关系模型的转换(重点重点)vE-R图向关系模型的转换要解决的问题图向关系模型的转换要解决的问题 :如何将实体型和实体间的联系转换为关系模式。如何将实体型和实体间的联系转换为关系模式。如何确定这些关系模式的属性和码如何确定这些关系模式的属性和码 。v转换内容:转换内容:将将E-R图转换为关系模型:将实体、实体的属性和图转换为关系模型:将实体、实体的属性和实体之间的联系转换为关系模式。实体之间的联系转换为关系模式。69将将E-R图转换
33、为关系模型图转换为关系模型(重点重点) 将将E-R图转换为关系模型实际上就是将实体、实体的属图转换为关系模型实际上就是将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则:下原则:1、一个实体型转换为一个关系模式:、一个实体型转换为一个关系模式:实体的属性就是关系的属性。实体的属性就是关系的属性。实体的码就是关系的码。实体的码就是关系的码。例如:学生实体可以转换为如下关系模式,其中学号为学生关系的码。例如:学生实体可以转换为如下关系模式,其中学号为学生关系的码。 学生学生(学号,姓名,出生日期,所在系,年级,平均成绩学号
34、,姓名,出生日期,所在系,年级,平均成绩)702、一个、一个1:1的联系可以转换成一个独立的关系,此时,与该联系相连的各个实的联系可以转换成一个独立的关系,此时,与该联系相连的各个实体的码以及联系本身的属性均转换为关系的属性,如:班长管理班级。体的码以及联系本身的属性均转换为关系的属性,如:班长管理班级。 可以将其转换为一个独立的关系模式:可以将其转换为一个独立的关系模式:管理管理(学号,班级号学号,班级号)也可以与任意一端的关系模式和并,此时应加入另一个关系的码和联系本身也可以与任意一端的关系模式和并,此时应加入另一个关系的码和联系本身的属性。如与班级和并应为:的属性。如与班级和并应为:班级
35、班级(班级号,学生人数,学号班级号,学生人数,学号)班长班长班级班级管理管理11713、一个、一个 1:n 联系可以转换为一个独立的关系模式,也可以与联系可以转换为一个独立的关系模式,也可以与n端对应的关系模端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。端实体的码。此时可使用独立关系:此时可使用独立关系: 组成组成(学号,班级号学号,班级号)。另一种方法是将其与学生关系模式合并,这时学生
36、关系的模式为:另一种方法是将其与学生关系模式合并,这时学生关系的模式为:学生学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩学号,姓名,出生日期,所在系,年级,班级号,平均成绩)后一种方法减少系统中关系个数,一般情况下采用这种方法。后一种方法减少系统中关系个数,一般情况下采用这种方法。 班级班级学生学生组成组成1n724、一个、一个m:n联系转换为一个关系模式:与该联系相连的各实联系转换为一个关系模式:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。的码为各实体码的组合。此时关系结构式为:此时
37、关系结构式为:SC(Sno,Cno,Grade)学生学生课程课程选课选课mn735、三个或三个以上实体间的一个多元联系转换为一个关系模式:与该多、三个或三个以上实体间的一个多元联系转换为一个关系模式:与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。而关系的码为各实体码的组合。例如:教师、课程、所用书之间的例如:教师、课程、所用书之间的“讲授讲授”联系是一个三元联系,可联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、教师号、书号为关系的组以将它转换为如下关系模式,其中课程号、教师
38、号、书号为关系的组合码:合码:讲授讲授(课程号,教师号,书号课程号,教师号,书号)746、同一实体集的实体间的联系,即自联系,也可按上述、同一实体集的实体间的联系,即自联系,也可按上述1:1, 1:n, m:n三三种情况分别处理。种情况分别处理。例如:如果教师实体集内部存在领导与被领导的例如:如果教师实体集内部存在领导与被领导的1:n自联系,可以将自联系,可以将该联系与教师实体合并,这时,主码职工号将多次出现,但作用不同,该联系与教师实体合并,这时,主码职工号将多次出现,但作用不同,可用不同的属性名加以区别,比如在合并后的关系模式中,主码仍为可用不同的属性名加以区别,比如在合并后的关系模式中,
39、主码仍为职工号,再增设一个职工号,再增设一个“系主任系主任”属性,存放相应系主任的职工号。属性,存放相应系主任的职工号。757、为了减少系统中的关系个数,如果两个关系模式具有相、为了减少系统中的关系个数,如果两个关系模式具有相同的主码,可以考虑将它们合并为一个关系模式。合并方同的主码,可以考虑将它们合并为一个关系模式。合并方法是将其中一个关系模式的全部属性加入到另一个关系模法是将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性,并适当调整属性的次序式中,然后去掉其中的同义属性,并适当调整属性的次序即可。即可。76Stop here!777.4 逻辑结构设计逻辑结构设计7
40、.4.1 E-R图向关系模型的转换7.4.2 数据模型的优化7.4.3 设计用户子模式787.4.2 数据模型的优化数据模型的优化v得到初步数据模型后,还应该适当地修改、调整数据模型得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是的结构,以进一步提高数据库应用系统的性能,这就是数数据模型的优化据模型的优化v关系数据模型的优化通常以关系数据模型的优化通常以规范化理论规范化理论为指导为指导79数据模型的优化(续)数据模型的优化(续)v优化数据模型的方法优化数据模型的方法1.确定数据依赖确定数据依赖按需求分析阶段所得到的语义,分别写出每个关系模式内部
41、各属性之间的数据依赖以及不按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖同关系模式属性之间数据依赖2.消除消除 冗余的联系冗余的联系对于各个关系模式之间的数据依赖进行极小化处理,消除对于各个关系模式之间的数据依赖进行极小化处理,消除 冗余的联系。冗余的联系。3.确定所属范式确定所属范式按照数据依赖的理论对关系模式逐一进行分析按照数据依赖的理论对关系模式逐一进行分析考查是否存在部分函数依赖、传递函数依赖、多值依赖等考查是否存在部分函数依赖、传递函数依赖、多值依赖等确定各关系模式分别属于第几范式确定各关系模式分别属于第几范式 80数据模型的
42、优化(续)数据模型的优化(续)4.按照需求分析阶段得到的各种应用对数据处理的要求,按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,分析对于这样的应用环境这些模式是否合适, 确定是否要对它们进行合并或分解。确定是否要对它们进行合并或分解。注意:注意:并不是规范化程度越高的关系就越优,并不是规范化程度越高的关系就越优,一般说一般说来,第三范式就足够了来,第三范式就足够了81数据模型的优化(续)数据模型的优化(续)例:在关系模式例:在关系模式 学生成绩单学生成绩单(学号学号,英语英语,数学数学,语文语文,平均成绩平均成绩) 中存在下列函数依赖:中存在下列函数依
43、赖: 学号学号英语英语 学号学号数学数学 学号学号语文语文 学号学号平均成绩平均成绩 (英语英语, 数学数学, 语文语文)平均成绩平均成绩82数据模型的优化(续)数据模型的优化(续) 显然有:显然有: 学号学号(英语英语,数学数学,语文语文)因此该关系模式中存在传递函数信赖,是因此该关系模式中存在传递函数信赖,是2NF关系关系 虽然平均成绩可以由其他属性推算出来,但如果应虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,为提高效率,用中需要经常查询学生的平均成绩,为提高效率,仍然可保留该冗余数据,对关系模式不再做进一步仍然可保留该冗余数据,对关系模式不再做进一步分解分
44、解83数据模型的优化(续)数据模型的优化(续)5.按照需求分析阶段得到的各种应用对数据处理的要求,按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式进行必要的分解,以提高数据操作的效率和对关系模式进行必要的分解,以提高数据操作的效率和存储空间的利用率存储空间的利用率常用分解方法常用分解方法水平分解水平分解垂直分解垂直分解84数据模型的优化(续)数据模型的优化(续)水平分解水平分解什么是水平分解什么是水平分解把把(基基本本)关关系系的的元元组组分分为为若若干干子子集集合合,定定义义每每个个子集合为一个子关系,以提高系统的效率子集合为一个子关系,以提高系统的效率水平分解的适用范围水平分解的
45、适用范围满足满足“80/20原则原则”的应用的应用并发事务经常存取并发事务经常存取不相交的数据不相交的数据85数据模型的优化(续)数据模型的优化(续)垂直分解垂直分解什么是垂直分解什么是垂直分解把把关关系系模模式式R的的属属性性分分解解为为若若干干子子集集合合,形形成成若若干子关系模式干子关系模式垂直分解的适用范围垂直分解的适用范围取取决决于于分分解解后后R上上的的所所有有事事务务的的总总效效率率是是否否得得到到了提高了提高867.4 逻辑结构设计逻辑结构设计7.4.1 E-R图向关系模型的转换7.4.2 数据模型的优化7.4.3 设计用户子模式877.4.3 设计用户子模式设计用户子模式v定
46、义用户外模式时应该注重的问题定义用户外模式时应该注重的问题 包括三个方面:包括三个方面: (1) 使用更符合用户习惯的别名使用更符合用户习惯的别名 (2) 针对不同级别的用户定义不同的针对不同级别的用户定义不同的View ,以以 满足系统对安全性的要求。满足系统对安全性的要求。 (3) 简化用户对系统的使用简化用户对系统的使用88设计用户子模式(续)设计用户子模式(续)例 关系模式产品(产品号,产品名,规格,单价,生产车间,生产负关系模式产品(产品号,产品名,规格,单价,生产车间,生产负责人,产品成本,产品合格率,质量等级),可以在产品关系上建立责人,产品成本,产品合格率,质量等级),可以在产
47、品关系上建立两个视图:两个视图: 为一般顾客建立视图:为一般顾客建立视图: 产品产品1(产品号,产品名,规格,单价)(产品号,产品名,规格,单价) 为产品销售部门建立视图:为产品销售部门建立视图: 产品产品2(产品号,产品名,规格,单价,车间,生产负责人)(产品号,产品名,规格,单价,车间,生产负责人)顾客视图中只包含允许顾客查询的属性顾客视图中只包含允许顾客查询的属性销售部门视图中只包含允许销售部门查询的属性销售部门视图中只包含允许销售部门查询的属性生产领导部门则可以查询全部产品数据生产领导部门则可以查询全部产品数据可以防止用户非法访问不允许他们查询的数据,保证系统的安全性可以防止用户非法访
48、问不允许他们查询的数据,保证系统的安全性89逻辑结构设计小结逻辑结构设计小结v任务任务将概念结构转化为具体的数据模型将概念结构转化为具体的数据模型v逻辑结构设计的步骤逻辑结构设计的步骤将概念结构转化为一般的关系、网状、层次模型将概念结构转化为一般的关系、网状、层次模型将转化来的关系、网状、层次模型向特定将转化来的关系、网状、层次模型向特定DBMS支持下的支持下的数据模型转换数据模型转换对数据模型进行优化对数据模型进行优化设计用户子模式设计用户子模式90逻辑结构设计小结逻辑结构设计小结vE-R图向关系模型的转换内容图向关系模型的转换内容vE-R图向关系模型的转换原则图向关系模型的转换原则91逻辑
49、结构设计小结逻辑结构设计小结v优化数据模型的方法优化数据模型的方法 1. 确定数据依赖确定数据依赖 2. 对于各个关系模式之间的数据依赖进行极小化处理,对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。消除冗余的联系。 3. 确定各关系模式分别属于第几范式。确定各关系模式分别属于第几范式。 4. 分析对于应用环境这些模式是否合适,确定是否要对分析对于应用环境这些模式是否合适,确定是否要对它们进行合并或分解。它们进行合并或分解。 5. 对关系模式进行必要的分解或合并对关系模式进行必要的分解或合并92逻辑结构设计小结逻辑结构设计小结v设计用户子模式设计用户子模式 1. 使用更符合用户习
50、惯的别名使用更符合用户习惯的别名 2. 针对不同级别的用户定义不同的外模式,以满足系统针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。对安全性的要求。 3. 简化用户对系统的使用简化用户对系统的使用93第七章第七章 数据库设计数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 数据库的物理设计7.6 数据库的实施和维护7.7 小结947.5 数据库的物理设计数据库的物理设计v数据库的物理设计数据库的物理设计数据库在物理设备上的存储结构与存取方法称为数据数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系
51、统库的物理结构,它依赖于选定的数据库管理系统为一个给定的逻辑数据模型选取一个最适合应用环境为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计的物理结构的过程,就是数据库的物理设计95数据库的物理设计数据库的物理设计(续续)v数据库物理设计的步骤数据库物理设计的步骤确定数据库的物理结构,在关系数据库中主要指存取方法和确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构存储结构 对物理结构进行评价,评价的重点是时间和空间效率对物理结构进行评价,评价的重点是时间和空间效率 如果评价结果满足原设计要求,则可进入到物理实施阶段,如果评价结果满足原设计要求,则可进
52、入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型辑设计阶段修改数据模型96数据库的物理设计数据库的物理设计(续续)数据库物理设计数据库物理设计确定数确定数据库的据库的物理结物理结构构评价数据评价数据库的物理库的物理结构结构逻辑结逻辑结构设计构设计数据库数据库实施实施物理物理模型模型逻辑逻辑模型模型977.5 数据库的物理设计数据库的物理设计7.5.1 数据库物理设计的内容和方法7.5.2 关系模式存取方法选择7.5.3 确定数据库的存储结构7.5.4 评价物理结构987.5.1 数据库物理设计的内容
53、和方法数据库物理设计的内容和方法v设计物理数据库结构的准备工作设计物理数据库结构的准备工作对要运行的事务进行详细分析,获得选择物理数据库对要运行的事务进行详细分析,获得选择物理数据库设计所需参数设计所需参数充分了解所用充分了解所用RDBMS的内部特征,特别是系统提供的的内部特征,特别是系统提供的存取方法和存储结构存取方法和存储结构99数据库的物理设计的内容和方法(续数据库的物理设计的内容和方法(续)v选择物理数据库设计所需参数选择物理数据库设计所需参数 数据库查询事务数据库查询事务查询的关系查询的关系 查询条件所涉及的属性查询条件所涉及的属性 连接条件所涉及的属性连接条件所涉及的属性 查询的投
54、影属性查询的投影属性 100数据库的物理设计的内容和方法(续数据库的物理设计的内容和方法(续)v选择物理数据库设计所需参数选择物理数据库设计所需参数(续续)数据更新事务数据更新事务被更新的关系被更新的关系每个关系上的更新操作条件所涉及的属性每个关系上的更新操作条件所涉及的属性 修改操作要改变的属性值修改操作要改变的属性值 每个事务在各关系上运行的频率和性能要求每个事务在各关系上运行的频率和性能要求101数据库的物理设计的内容和方法(续数据库的物理设计的内容和方法(续)v关系数据库物理设计的内容关系数据库物理设计的内容为关系模式选择为关系模式选择存取方法存取方法(建立存取路径建立存取路径) 设计
55、关系、索引等数据库文件的设计关系、索引等数据库文件的物理存储结构物理存储结构1027.5 数据库的物理设计数据库的物理设计7.5.1 数据库物理设计的内容和方法7.5.2 关系模式存取方法选择7.5.3 确定数据库的存储结构7.5.4 评价物理结构1037.5.2 关系模式存取方法选择关系模式存取方法选择v数据库系统是多用户共享的系统,对同一个关系要建立数据库系统是多用户共享的系统,对同一个关系要建立多多条存取路径条存取路径才能满足多用户的多种应用要求才能满足多用户的多种应用要求v物理设计的任务之一就是要确定选择哪些存取方法,即物理设计的任务之一就是要确定选择哪些存取方法,即建建立哪些存取路径
56、立哪些存取路径104关系模式存取方法选择(续)关系模式存取方法选择(续)vDBMS常用存取方法常用存取方法索引方法索引方法目前主要是目前主要是B+树索引方法树索引方法经典存取方法,使用最普遍经典存取方法,使用最普遍 聚簇(聚簇(Cluster)方法方法HASH方法方法105一、索引存取方法的选择一、索引存取方法的选择v根据应用要求确定根据应用要求确定 对哪些属性列建立索引对哪些属性列建立索引 对哪些属性列建立组合索引对哪些属性列建立组合索引 对哪些索引要设计为唯一索引对哪些索引要设计为唯一索引106索引存取方法的选择(续)索引存取方法的选择(续)v选择索引存取方法的一般规则选择索引存取方法的一
57、般规则如果一个如果一个(或一组或一组)属性经常在查询条件中出现,则考虑在这个属性经常在查询条件中出现,则考虑在这个(或这组或这组)属性上建属性上建立索引立索引(或组合索引或组合索引)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引建立索引如果一个如果一个(或一组或一组)属性经常在连接操作的连接条件中出现,则考虑在这个属性经常在连接操作的连接条件中出现,则考虑在这个(或这组或这组)属性上建立索引属性上建立索引v关系上定义的索引数过多会带来较多的额外开销关系上定义的索引数过多会带来较多的额外开销 维
58、护索引的开销维护索引的开销 查找索引的开销查找索引的开销107二、聚簇存取方法的选择二、聚簇存取方法的选择v聚簇聚簇为了提高某个属性(或属性组)的查询速度,把这个或这些为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚簇物理块称为聚簇108聚簇存取方法的选择(续)聚簇存取方法的选择(续)v聚簇的用途聚簇的用途1. 大大提高按聚簇码进行查询的效率大大提高按聚簇码进行查询的效率 例:假设学生关系按所在系建有索引,现在要查询信息系的例:假设学生关系按所在系建有索引,现在要查询信息系的
59、所有学生名单。所有学生名单。信息系的信息系的500名学生分布在名学生分布在500个不同的物理块上时,至个不同的物理块上时,至少要执行少要执行500次次I/O操作操作如果将同一系的学生元组集中存放,则每读一个物理块如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,从而显著地减少了访可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数问磁盘的次数109聚簇存取方法的选择(续)聚簇存取方法的选择(续)2. 节省存储空间节省存储空间聚簇以后,聚簇码相同的元组集中在一起了,因而聚聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇码值不必在每个元组中重复存储,只要在一组中
60、存簇码值不必在每个元组中重复存储,只要在一组中存一次就行了一次就行了110聚簇存取方法的选择(续)聚簇存取方法的选择(续)v聚簇的局限性聚簇的局限性1. 聚簇只能提高某些特定应用的性能聚簇只能提高某些特定应用的性能2. 建立与维护聚簇的开销相当大建立与维护聚簇的开销相当大对已有关系建立聚簇,将导致关系中元组移动其物理存对已有关系建立聚簇,将导致关系中元组移动其物理存储位置,并使此关系上原有的索引无效,必须重建储位置,并使此关系上原有的索引无效,必须重建当一个元组的聚簇码改变时,该元组的存储位置也要做当一个元组的聚簇码改变时,该元组的存储位置也要做相应移动相应移动111聚簇存取方法的选择(续)聚
61、簇存取方法的选择(续)v聚簇的适用范围聚簇的适用范围1. 既适用于单个关系独立聚簇,也适用于多个关系组既适用于单个关系独立聚簇,也适用于多个关系组合聚簇合聚簇例:假设用户经常要按系别查询学生成绩单,这一查询涉例:假设用户经常要按系别查询学生成绩单,这一查询涉及学生关系和选修关系的连接操作,即需要按学号连接这及学生关系和选修关系的连接操作,即需要按学号连接这两个关系,为提高连接操作的效率,可以把具有相同学号两个关系,为提高连接操作的效率,可以把具有相同学号值的学生元组和选修元组在物理上聚簇在一起。这就相当值的学生元组和选修元组在物理上聚簇在一起。这就相当于把多个关系按于把多个关系按“预连接预连接
62、”的形式存放,从而大大提高连的形式存放,从而大大提高连接操作的效率。接操作的效率。112聚簇存取方法的选择(续)聚簇存取方法的选择(续)2. 当通过聚簇码进行访问或连接是该关系的主要应用,当通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无关的其他访问很少或者是次要的时,可以与聚簇码无关的其他访问很少或者是次要的时,可以使用聚簇。使用聚簇。尤其当尤其当SQL语句中包含有与聚簇码有关的语句中包含有与聚簇码有关的ORDER BY,GROUP BY,UNION,DISTINCT等子句或短语时,使等子句或短语时,使用聚簇特别有利,可以省去对结果集的排序操作用聚簇特别有利,可以省去对结果集的排序操作
63、113聚簇存取方法的选择(续)聚簇存取方法的选择(续)v设计候选聚簇设计候选聚簇对经常在一起进行连接操作的关系可以建立聚簇对经常在一起进行连接操作的关系可以建立聚簇如果一个关系的一组属性经常出现在相等比较条件中,则该如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇单个关系可建立聚簇如果一个关系的一个如果一个关系的一个(或一组或一组)属性上的值重复率很高,则此属性上的值重复率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不太少。太少了,聚簇的效果不明显太少。太少了,聚簇的效果不明显114聚簇存取方法的选择(续
64、)聚簇存取方法的选择(续)v优化聚簇设计优化聚簇设计从聚簇中删除经常进行全表扫描的关系;从聚簇中删除经常进行全表扫描的关系;从聚簇中删除更新操作远多于连接操作的关系;从聚簇中删除更新操作远多于连接操作的关系;不同的聚簇中可能包含相同的关系,一个关系可以在某不同的聚簇中可能包含相同的关系,一个关系可以在某一个聚簇中,但不能同时加入多个聚簇一个聚簇中,但不能同时加入多个聚簇 从这多个聚簇方案从这多个聚簇方案(包括不建立聚簇包括不建立聚簇)中选择一个较优的,即中选择一个较优的,即在这个聚簇上运行各种事务的总代价最小在这个聚簇上运行各种事务的总代价最小115三、三、HASH存取方法的选择存取方法的选择
65、v选择选择HASH存取方法的规则存取方法的规则当一个关系满足下列两个条件时,可以选择当一个关系满足下列两个条件时,可以选择HASH存取存取方法方法该关系的属性主要出现在该关系的属性主要出现在等值连接等值连接条件中或主要出现条件中或主要出现在在相等比较相等比较选择条件中选择条件中该关系的大小可预知,而且不变;该关系的大小可预知,而且不变; 或或 该关系的大小动态改变,但所选用的该关系的大小动态改变,但所选用的DBMS提供了动提供了动态态HASH存取方法存取方法1167.5 数据库的物理设计数据库的物理设计7.5.1 数据库物理设计的内容和方法7.5.2 关系模式存取方法选择7.5.3 确定数据库
66、的存储结构7.5.4 评价物理结构1177.5.3 确定数据库的存储结构确定数据库的存储结构v确定数据库物理结构的内容确定数据库物理结构的内容1. 确定数据的存放位置和存储结构确定数据的存放位置和存储结构 关系关系 索引索引 聚簇聚簇 日志日志 备份备份2. 确定系统配置确定系统配置1181. 确定数据的存放位置确定数据的存放位置v确定数据存放位置和存储结构的因素确定数据存放位置和存储结构的因素存取时间存取时间存储空间利用率存储空间利用率维护代价维护代价 这三个方面常常是相互矛盾的这三个方面常常是相互矛盾的 例:消除一切冗余数据虽能够节约存储空间和减少维例:消除一切冗余数据虽能够节约存储空间和
67、减少维护代价,但往往会导致检索代价的增加护代价,但往往会导致检索代价的增加 必须进行权衡,选择一个折中方案必须进行权衡,选择一个折中方案119确定数据的存放位置(续)确定数据的存放位置(续)v基本原则基本原则根据应用情况将根据应用情况将易变易变部分与部分与稳定稳定部分分开存放部分分开存放存取频率较高存取频率较高部分与部分与存取频率较低存取频率较低部分,分开存放部分,分开存放120确定数据的存放位置(续)确定数据的存放位置(续)例:例:数据库数据备份、日志文件备份等由于只在故障恢复数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,可以考虑存放在磁带上时才使用,而且数据量很大
68、,可以考虑存放在磁带上如果计算机有多个磁盘或磁盘阵列如果计算机有多个磁盘或磁盘阵列 ,可以考虑将表,可以考虑将表和索引分别放在不同的磁盘上,在查询时,由于磁盘和索引分别放在不同的磁盘上,在查询时,由于磁盘驱动器并行工作,可以提高物理驱动器并行工作,可以提高物理I/O读写的效率读写的效率 121确定数据的存放位置(续)确定数据的存放位置(续)例(续):例(续):可以将比较大的表分别放在两个磁盘上,以加快存取可以将比较大的表分别放在两个磁盘上,以加快存取速度,这在多用户环境下特别有效速度,这在多用户环境下特别有效可以将日志文件与数据库对象(表、索引等)放在不可以将日志文件与数据库对象(表、索引等)
69、放在不同的磁盘以改进系统的性能同的磁盘以改进系统的性能1222. 确定系统配置确定系统配置vDBMS产品一般都提供了一些存储分配参数产品一般都提供了一些存储分配参数 同时使用数据库的用户数同时使用数据库的用户数 同时打开的数据库对象数同时打开的数据库对象数 内存分配参数内存分配参数 使用的缓冲区长度、个数使用的缓冲区长度、个数 存储分配参数存储分配参数 .1237.5 数据库的物理设计数据库的物理设计7.5.1 数据库物理设计的内容和方法7.5.2 关系模式存取方法选择7.5.3 确定数据库的存储结构7.5.4 评价物理结构1247.5.4 评价物理结构评价物理结构v评价内容评价内容对数据库物
70、理设计过程中产生的多种方案进行细致的对数据库物理设计过程中产生的多种方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结评价,从中选择一个较优的方案作为数据库的物理结构构125评价物理结构评价物理结构(续续)v评价方法(完全依赖于所选用的评价方法(完全依赖于所选用的DBMS )定量估算各种方案定量估算各种方案 存储空间存储空间 存取时间存取时间 维护代价维护代价对估算结果进行权衡、比较,选择出一个较优的合理的对估算结果进行权衡、比较,选择出一个较优的合理的物理结构物理结构如果该结构不符合用户需求,则需要修改设计如果该结构不符合用户需求,则需要修改设计126第七章第七章 数据库设计数据库
71、设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 数据库的物理设计7.6 数据库的实施和维护7.7 小结1277.6数据库实施和维护数据库实施和维护7.6.1 数据的载入和应用程序的调试7.6.2 数据库的试运行 7.6.3 数据库的运行和维护 1287.6.1 数据的载入和应用程序的调试数据的载入和应用程序的调试v 数据的载入数据的载入 v 应用程序的编码和调试应用程序的编码和调试129 数据的载入数据的载入 v数据库结构建立好后,就可以向数据库中装载数据了。组数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶段最主要的工作。织
72、数据入库是数据库实施阶段最主要的工作。v数据装载方法数据装载方法人工方法人工方法计算机辅助数据入库计算机辅助数据入库130应用程序的编码和调试应用程序的编码和调试v数据库应用程序的设计应该与数据设计并行进数据库应用程序的设计应该与数据设计并行进行行v在组织数据入库的同时还要调试应用程序在组织数据入库的同时还要调试应用程序 1317.6数据库实施和维护数据库实施和维护7.6.1 数据的载入和应用程序的调试7.6.2 数据库的试运行 7.6.3 数据库的运行和维护 1327.6.2 数据库的试运行数据库的试运行v在原有系统的数据有一小部分已输入数据库后,就可以开始对在原有系统的数据有一小部分已输入
73、数据库后,就可以开始对数据库系统进行联合调试,称为数据库的试运行数据库系统进行联合调试,称为数据库的试运行 v数据库试运行主要工作包括:数据库试运行主要工作包括:1)功能测试功能测试实际运行数据库应用程序,执行对数据库的各种操作,测试应用实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求程序的功能是否满足设计要求 如果不满足,对应用程序部分则要修改、调整,直到达到设计要如果不满足,对应用程序部分则要修改、调整,直到达到设计要求求2)性能测试性能测试测量系统的性能指标,分析是否达到设计目标测量系统的性能指标,分析是否达到设计目标如果测试的结果与设计目标不符,则要返
74、回物理设计阶段,重新如果测试的结果与设计目标不符,则要返回物理设计阶段,重新调整物理结构,修改系统参数,某些情况下甚至要返回逻辑设计调整物理结构,修改系统参数,某些情况下甚至要返回逻辑设计阶段,修改逻辑结构阶段,修改逻辑结构 133数据库的试运行(续)数据库的试运行(续)强调两点:强调两点:v分期分批组织数据入库分期分批组织数据入库 重新设计物理结构甚至逻辑结构,会导致数据重新入重新设计物理结构甚至逻辑结构,会导致数据重新入库。库。由于数据入库工作量实在太大,费时、费力,所以应由于数据入库工作量实在太大,费时、费力,所以应分期分批地组织数据入库分期分批地组织数据入库先输入小批量数据供调试用先输
75、入小批量数据供调试用待试运行基本合格后再大批量输入数据待试运行基本合格后再大批量输入数据逐步增加数据量,逐步完成运行评价逐步增加数据量,逐步完成运行评价134数据库的试运行(续)数据库的试运行(续)v数据库的转储和恢复数据库的转储和恢复在数据库试运行阶段,系统还不稳定,硬、软件故障在数据库试运行阶段,系统还不稳定,硬、软件故障随时都可能发生随时都可能发生系统的操作人员对新系统还不熟悉,误操作也不可避系统的操作人员对新系统还不熟悉,误操作也不可避免免因此必须做好数据库的转储和恢复工作,尽量减少对因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。数据库的破坏。1357.6数据库实施和维护
76、数据库实施和维护7.6.1 数据的载入和应用程序的调试7.6.2 数据库的试运行 7.6.3 数据库的运行和维护 1367.6.3 数据库的运行与维护数据库的运行与维护v数据库试运行合格后,数据库即可投入正式运行。数据库试运行合格后,数据库即可投入正式运行。v数据库投入运行标志着开发任务的基本完成和维护工数据库投入运行标志着开发任务的基本完成和维护工作的开始作的开始v对数据库设计进行评价、调整、修改等维护工作是一对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。个长期的任务,也是设计工作的继续和提高。应用环境在不断变化应用环境在不断变化数据库运行过程中物理存
77、储会不断变化数据库运行过程中物理存储会不断变化137数据库的运行与维护(续)数据库的运行与维护(续)v在数据库运行阶段,对数据库经常性的维护工作在数据库运行阶段,对数据库经常性的维护工作主要是由主要是由DBA完成的,包括:完成的,包括: 1.数据库的转储和恢复数据库的转储和恢复2.数据库的安全性、完整性控制数据库的安全性、完整性控制3.数据库性能的监督、分析和改进数据库性能的监督、分析和改进4.数据库的重组织和重构造数据库的重组织和重构造138数据库的运行与维护(续)数据库的运行与维护(续)v数据库的重组织和重构造数据库的重组织和重构造重组织的形式重组织的形式全部重组织全部重组织部分重组织部分
78、重组织只对频繁增、删的表进行重组织只对频繁增、删的表进行重组织重组织的目标重组织的目标提高系统性能提高系统性能139数据库的运行与维护(续)数据库的运行与维护(续)重组织的工作重组织的工作按原设计要求按原设计要求重新安排存储位置重新安排存储位置回收垃圾回收垃圾减少指针链减少指针链数据库的重组织不会改变原设计的数据逻辑结构和物理数据库的重组织不会改变原设计的数据逻辑结构和物理结构结构140数据库运行与维护(续)数据库运行与维护(续)数据库重构造数据库重构造根据新环境调整数据库的模式和内模式根据新环境调整数据库的模式和内模式增加新的数据项增加新的数据项改变数据项的类型改变数据项的类型改变数据库的容
79、量改变数据库的容量增加或删除索引增加或删除索引修改完整性约束条件修改完整性约束条件141第七章第七章 数据库设计数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 数据库的物理设计7.6 数据库的实施和维护7.7 小结1427.7 小结小结v数据库的设计过程数据库的设计过程需求分析需求分析概念结构设计概念结构设计逻辑结构设计逻辑结构设计物理设计物理设计实施和维护实施和维护143小结(续)小结(续)v数据库各级模式的形成数据库各级模式的形成数据库的各级模式是在设计过程中逐步形成的数据库的各级模式是在设计过程中逐步形成的需求分析阶段综合各个用户的应用需求
80、(现实世界的需求分析阶段综合各个用户的应用需求(现实世界的需求)需求)概念设计阶段形成独立于机器特点、独立于各个概念设计阶段形成独立于机器特点、独立于各个DBMS产品的产品的概念模式概念模式(信息世界模型),用(信息世界模型),用E-R图来图来描述描述144小结(续)小结(续)在逻辑设计阶段将在逻辑设计阶段将E-R图转换成具体的数据库产品支持图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库的数据模型如关系模型,形成数据库逻辑模式逻辑模式。然后。然后根据用户处理的要求,安全性的考虑,在基本表的基根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(础上再建立必要的视图(VIEW)形成数据的形成数据的外模式外模式在物理设计阶段根据在物理设计阶段根据DBMS特点和处理的需要,进行物特点和处理的需要,进行物理存储安排,设计索引,形成数据库理存储安排,设计索引,形成数据库内模式内模式145