1、2022-12-161第第7 7章章 数据库设计数据库设计数据库设计:数据库设计:是指对于一个给定的应用环境,构造(设计)是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够优先地存储和管理数据,满足各种其应用系统,使之能够优先地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。用户的应用需求,包括信息管理要求和数据操作要求。信息管理要求:信息管理要求:指在数据库中应该存储和管理哪些数据对象。指在数据库中应该存储和管理哪些数据对象。数据操作要求:数据操作要求:是指对
2、数据对象需要进行哪些操作,例如是指对数据对象需要进行哪些操作,例如查询、增加、删除、修改和统计操作等。查询、增加、删除、修改和统计操作等。数据库设计目标:数据库设计目标:为用户和各种应用系统提供一个信息基为用户和各种应用系统提供一个信息基础设施和高效率的运行环境,包括数据库数据的存取效率、础设施和高效率的运行环境,包括数据库数据的存取效率、数据库存储空间的利用率、数据库系统运行管理的效率等。数据库存储空间的利用率、数据库系统运行管理的效率等。2022-12-162数据库设计特点数据库设计特点u数据库建设的基本规律数据库建设的基本规律:“三分技术,七分管理,十二分三分技术,七分管理,十二分基础数
3、据。基础数据。”技术技术:数据库系统采用的技术:数据库系统采用的技术管理管理:应用数据库系统的企业管理:应用数据库系统的企业管理基础数据基础数据:数据的收集、整理、组织和不断更新:数据的收集、整理、组织和不断更新u结构设计和行为设计相结合结构设计和行为设计相结合:数据库设计应该和应用系统:数据库设计应该和应用系统设计相互结合,整个设计过程中要把数据库结构设计和对设计相互结合,整个设计过程中要把数据库结构设计和对数据的处理设计紧密结合起来。数据的处理设计紧密结合起来。2022-12-163数据库设计方法数据库设计方法数据库设计的方法:数据库设计的方法:u新奥尔良方法新奥尔良方法:运用软件工程的思
4、想,按一定:运用软件工程的思想,按一定的设计规程用工程化方法设计数据库,该方法属的设计规程用工程化方法设计数据库,该方法属于规范设计法。于规范设计法。u基于基于E-RE-R模型的数据库设计方法模型的数据库设计方法:要求用:要求用E-RE-R模模型设计数据库的概念模型。型设计数据库的概念模型。u3NF3NF(第三范式)的设计方法(第三范式)的设计方法:要求用关系数据:要求用关系数据理论来设计数据库的逻辑模型。理论来设计数据库的逻辑模型。uODL(ODL(面向对象设计语言面向对象设计语言)的设计方法的设计方法:要求用面:要求用面向对象的概念和术语设计数据库结构。向对象的概念和术语设计数据库结构。2
5、022-12-164按照按照规范化设计的方法规范化设计的方法,数据库设计的步骤:数据库设计的步骤:需求分析需求分析概念结构设计概念结构设计逻辑结构设计逻辑结构设计数据库物理设计数据库物理设计数据库实施数据库实施数据库的运行与维护数据库的运行与维护参加设计的人员:参加设计的人员:系统分析设计人员;系统分析设计人员;数据库设计人员数据库设计人员应用开发人员(包括程序员应用开发人员(包括程序员和操作人员)和操作人员)数据库管理员数据库管理员用户用户2022-12-1657.1 7.1 数据库设计的步骤数据库设计的步骤1.需求分析阶段需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求收集和分
6、析,结果得到数据字典描述的数据需求和数据流图描述的处理需求。需求和数据流图描述的处理需求。2.概念结构设计阶段概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独通过对用户需求进行综合、归纳与抽象,形成一个独立于具体立于具体DBMSDBMS的概念模型,可以用的概念模型,可以用E-RE-R图表示。图表示。3.逻辑结构设计阶段逻辑结构设计阶段 将概念结构转换为某个将概念结构转换为某个DBMSDBMS所支持的数据模型(例如所支持的数据模型(例如关系模型),并对其进行优化。关系模型),并对其进行优化。2022-12-1664.数据库物理设计阶段数据库物理设计阶段 为逻辑数据模型选取一个最适
7、合应用环境的物理为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。结构(包括存储结构和存取方法)。5.数据库实施阶段数据库实施阶段 运用运用DBMSDBMS提供的数据语言(例如提供的数据语言(例如SQLSQL)及其宿主语言)及其宿主语言(例如(例如C C),根据逻辑设计和物理设计的结果建立数),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行据库,编制与调试应用程序,组织数据入库,并进行试运行。试运行。2022-12-1677.2 7.2 需求分析需求分析1.需求分析的任务需求分析的任务调查、收集与分析用户在数据管理中的调查、收集与分析用
8、户在数据管理中的信息要求、信息要求、处理要求、安全性与完整性要求处理要求、安全性与完整性要求。确定用户的最终需求是一件很困难的事,因此设计确定用户的最终需求是一件很困难的事,因此设计人员必须与用户不断深入地进行交流,才能逐步得人员必须与用户不断深入地进行交流,才能逐步得以确定用户的实际需求。以确定用户的实际需求。注意:在需求分析过程中,必须要考虑业务的未来注意:在需求分析过程中,必须要考虑业务的未来发展。发展。2022-12-1682.需求分析的方法需求分析的方法(2)首先调查组织机构情况)首先调查组织机构情况(3)调查各部门的业务活动情况)调查各部门的业务活动情况(4)协助用户明确对新系统的
9、各种要求)协助用户明确对新系统的各种要求(5)确定新系统的边界)确定新系统的边界(1)制订调研计划,写出调研任务书)制订调研计划,写出调研任务书调研计划包括:调研对象,调研人员以及设计阶调研计划包括:调研对象,调研人员以及设计阶段的最终用户反馈过程。段的最终用户反馈过程。2022-12-169调查方法:调查方法:(1)跟班作业)跟班作业 (2)开调查会)开调查会(3)请专人介绍)请专人介绍 (4)询问)询问(5)设计调查表请用户填写)设计调查表请用户填写(6)查阅记录)查阅记录 2022-12-1610分析和表达用户需求的方法:分析和表达用户需求的方法:自顶向下(自顶向下(SASAstruct
10、ured analysisstructured analysis)自底向上自底向上自顶向下:从最上层的系统组织机构入手,采用自顶向下:从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并且把每一层用逐层分解的方式分析系统,并且把每一层用数据数据流图流图和和数据字典数据字典描述。描述。需求需求需求需求需求需求2022-12-1611用用SA方法做需求分析,设计人员需要设计出系统的高方法做需求分析,设计人员需要设计出系统的高层抽象图(层抽象图(数据流图数据流图-DFD)数据来源数据来源数据流数据流处理处理数据流数据流数据输出数据输出数据存储数据存储信息要求信息要求处理要求处理要求将处理功能的
11、具体内容分解为若干子功能,再将每将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达清个子功能继续分解,直到把系统的工作过程表达清楚为止。楚为止。在处理功能逐步分解的同时,所用的数据也逐级在处理功能逐步分解的同时,所用的数据也逐级分解,形成若干层次的数据流图。分解,形成若干层次的数据流图。数据流图表达了数据和处理过程的关系。数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(系统中的数据则借助数据字典(Data Dictionary,简称简称DD)来描述。)来描述。在在SA方法中,处理过程的处理逻辑常常借助判定表方法中,处理过程的处理逻辑常常借助判
12、定表或判定树来描述。或判定树来描述。2022-12-1612数据流图的符号数据流图的符号数据源或目的地数据源或目的地数据处理的过程,过程名数据处理的过程,过程名应该为动宾或主谓结构应该为动宾或主谓结构存储类数据内容存储类数据内容打印报表内容打印报表内容数据流的内容数据流的内容数据来源数据来源数据流数据流处理处理数据流数据流数据输出数据输出数据存储数据存储处理要求处理要求数据的流向数据的流向2022-12-1613例例 学校管理信息系统学校管理信息系统学校管理信息系统学校管理信息系统教师管理教师管理子系统子系统学生管理学生管理子系统子系统后勤管理后勤管理子系统子系统课程课程管理管理学籍学籍管理管
13、理学生学生毕业毕业学生学生报到报到学生学生入学入学学生学生考试考试学生学生选课选课学生学生上课上课最高层的系统结构图最高层的系统结构图学生毕业管理子系统数据流图学生毕业管理子系统数据流图学生学生3.1发毕发毕业证书业证书毕业证书毕业证书 3.2退宿舍退宿舍毕业证毕业证 3.3办理办理离校手续离校手续毕业证毕业证退宿舍退宿舍证明证明 3.4 领领派遣证派遣证离校手离校手续单续单毕业生名单毕业生名单毕业生名单毕业生名单成绩册成绩册能否获得学位能否获得学位宿舍描述宿舍描述宿舍安排清单宿舍安排清单学生档案学生档案记录已毕业记录已毕业离校手续离校手续离校手续清单离校手续清单分配工作分配工作工作分配情工作
14、分配情况况办公室办公室准备工作准备工作分配细节分配细节2022-12-16153.数据字典数据字典数据字典是进行数据收集和数据分析所获得的主数据字典是进行数据收集和数据分析所获得的主要成果,是描述系统的一组数据流图内全部元素要成果,是描述系统的一组数据流图内全部元素的清单。的清单。数据字典包数据字典包括数据项、数据结构、数据流、数据括数据项、数据结构、数据流、数据存储和处理存储和处理5个部分。个部分。数据项是数据的最小单位,若干个数据项可以组成一个数数据项是数据的最小单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述据结构。数据字典通过对数据项和数据结构的定义来
15、描述数据流和数据存储的逻辑内容。数据流和数据存储的逻辑内容。2022-12-1616(1)数据项)数据项数据项描述数据项名,数据项含义说明,别数据项描述数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系其他数据项的逻辑关系例如,学生学籍管理子系统中的例如,学生学籍管理子系统中的“学号学号”数据项:数据项:(学号;唯一性标识每个学生;学生编号;字符型;(学号;唯一性标识每个学生;学生编号;字符型;8 8;0000000000000000至至9999999999999999;前两位标识学生所在年;前两位标识学生所在年
16、级,后六位按顺序编号;可以逻辑决定学生数据结级,后六位按顺序编号;可以逻辑决定学生数据结构中的其他数据项。)构中的其他数据项。)2022-12-1617(2)数据结构)数据结构 数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。数据结构描述数据结构描述数据结构名,含义说明,组成数据结构名,含义说明,组成:数据项或数据结构数据项或数据结构例如,学生学籍管理子系统中的例如,学生学籍管理子系统中的“学生学生”数据结构:数据结构:(学生;是学籍管理子系统的主体数据结构,定(学生;是学籍管理子系统的主体数据结构,定义了一个学生的有关信息;组成:学号,姓名,义了一个学生的有关信息;组成:
17、学号,姓名,年龄,所在系,年级)年龄,所在系,年级)2022-12-1618(3)数据流)数据流数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。数据流描述数据流描述数据流名,说明,数据流来源,数据流去向,数据流名,说明,数据流来源,数据流去向,组成组成:数据结构,平均流量,高峰期流量数据结构,平均流量,高峰期流量 例如,学生学籍管理子系统中的例如,学生学籍管理子系统中的“体检结果体检结果”数据流:数据流:(体检结果;学生参加体格检查的最终结果;体检;(体检结果;学生参加体格检查的最终结果;体检;批准;组成:批准;组成:体检项目体检项目1,体检项目,体检项目2,.;505
18、0个个/天;天;500500个个/天天)2022-12-1619(4)数据存储)数据存储 数据存储是数据结构停留或保存的地方,也是数数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。据流的来源和去向之一。数据存储描述数据存储名,说明,编号,流数据存储描述数据存储名,说明,编号,流入的数据流,流出的数据流,组成入的数据流,流出的数据流,组成:数据结数据结构,数据量,存取方式构,数据量,存取方式 例如,学生学籍管理子系统中例如,学生学籍管理子系统中“学生登记表学生登记表”数据存储:数据存储:学生登记表;记录学生的基本情况;编号;学学生登记表;记录学生的基本情况;编号;学生有关信息;需
19、要的学生信息;组成:生有关信息;需要的学生信息;组成:;每年每年40004000张;随机存取张;随机存取 2022-12-1620(5)处理过程)处理过程 处理过程描述处理过程描述处理过程名,说明,输入处理过程名,说明,输入:数据流,输出数据流,输出:数据流,处理数据流,处理:简要说明简要说明 例如,例如,“学生分配宿舍学生分配宿舍”处理过程:处理过程:(分配宿舍;为所有新生分配学生宿舍;学生,宿舍;(分配宿舍;为所有新生分配学生宿舍;学生,宿舍;宿舍安排;在新生报到后,为所有新生分配学生宿舍。宿舍安排;在新生报到后,为所有新生分配学生宿舍。要求同一宿舍只能安排同一性别的学生,同一个学生只要求
20、同一宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于能安排在一个宿舍中。每个学生的居住面积不小于3 3平方平方米。安排新生宿舍其处理时间不应超过米。安排新生宿舍其处理时间不应超过1515分钟。)分钟。)2022-12-1621 数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。需求分析阶段强调(1)可扩展性(2)用户参与2022-12-16227.3 7.3 概念结构设计概念结构设计概念结构是对现实世界的一种抽象,独立于数据库概念结构是对现实世界的一种抽象,独立于数据库逻辑结构
21、,也独立于支持数据库的具体逻辑结构,也独立于支持数据库的具体DBMSDBMS。是现。是现实世界与机器世界的中介,起主要特点是:实世界与机器世界的中介,起主要特点是:需求需求分析分析用户用户需求需求信息结构或信息结构或概念模型概念模型逻辑逻辑结构结构能真实、充分反映现实世界,包括事物与事物之间的联系,能真实、充分反映现实世界,包括事物与事物之间的联系,能满足用户对数据到处理需求,是对现实世界的一个真实能满足用户对数据到处理需求,是对现实世界的一个真实模型。模型。易于理解,可以用它与不熟悉计算机的用户交换信息,也易于理解,可以用它与不熟悉计算机的用户交换信息,也便于进行后续开发的设计人员阅读理解。
22、便于进行后续开发的设计人员阅读理解。易于更改,当应用环境和应用要求改变时,容易对概念模易于更改,当应用环境和应用要求改变时,容易对概念模型进行更改和扩充。型进行更改和扩充。易于向关系模型等各种模型进行转换。易于向关系模型等各种模型进行转换。2022-12-16231.概念结构设计的方法和步骤概念结构设计的方法和步骤自顶向下自顶向下自底向上自底向上逐步扩张逐步扩张混合策略混合策略常用自顶向下方法完成需求分析,常用自顶向下方法完成需求分析,采用自底向上完成概念结构设计。采用自底向上完成概念结构设计。2022-12-1624自底向上自底向上a a设计部门设计部门E ER R图图 b b设计系统的初步
23、设计系统的初步E ER R图图 c c优化系统优化系统E ER R图(消除冗余数据和冗余联系)图(消除冗余数据和冗余联系)坚持从局部到整体、模块到系统的原则,逐步坚持从局部到整体、模块到系统的原则,逐步形成整体概念模型。形成整体概念模型。2022-12-1625无论采用哪种设计方法,常常用无论采用哪种设计方法,常常用E-RE-R模型模型为工具来描述概念结构。为工具来描述概念结构。E-RE-R图图由实体、实体的属性和实体之间的由实体、实体的属性和实体之间的联系组成。联系组成。教师教师评定评定职称职称分配分配住房住房姓名姓名性别性别n n1 11 11 12022-12-1626另一种另一种E-R
24、E-R图符号图符号实体实体AB一对一关系一对一关系AB多对一关系多对一关系AAB多对多关系多对多关系2022-12-16272.数据抽象与局部视图设计数据抽象与局部视图设计通常用的自底向上概念结构设计,分为两步:通常用的自底向上概念结构设计,分为两步:第一步,选择局部应用。根据需求分析的结第一步,选择局部应用。根据需求分析的结果,在多层的数据流图中选择一个适当层次果,在多层的数据流图中选择一个适当层次的数据流图,让该层中每一部分对应一个局的数据流图,让该层中每一部分对应一个局部应用。部应用。第二步,将每一个局部应用作为一个子系第二步,将每一个局部应用作为一个子系统,设计各子系统的分统,设计各子
25、系统的分E-RE-R图。图。2022-12-1628a.a.划分和确定实体类型划分和确定实体类型 b b划分和确定联系类型划分和确定联系类型 c c确定属性(两个准则)确定属性(两个准则)d d画出画出E ER R图图 设计分设计分E-RE-R图图的方法:从局部视图的数据字典的方法:从局部视图的数据字典中取出数据,参照数据流图,标定各子系统中中取出数据,参照数据流图,标定各子系统中的实体、实体的属性、标识实体的码,确定实的实体、实体的属性、标识实体的码,确定实体之间的联系和类型(体之间的联系和类型(1:11:1,1:n1:n,m:nm:n)设计步骤设计步骤 属性不能再具有需要描属性不能再具有需
26、要描述的性质,即属性必须述的性质,即属性必须是不可分的数据项,不是不可分的数据项,不能够再有另外的属性组能够再有另外的属性组成。成。属性不能与其他实体具属性不能与其他实体具有联系。联系只能发生有联系。联系只能发生在实体之间。(见教材在实体之间。(见教材P214,215图所示)图所示)2022-12-1629例如,学籍管理子系统的分例如,学籍管理子系统的分E-R图:图:班主任班主任管理管理班级班级上课上课教室教室组成组成学生学生归档归档档案材料档案材料指导指导住宿住宿宿舍宿舍n1 1教工号教工号姓名姓名班级号班级号专业专业教室编号教室编号位置位置宿舍号宿舍号地点地点1 1学号学号姓名姓名1 1学
27、号学号年龄年龄性别性别1拥有拥有1n1111nnnm112022-12-16303.将各个局部将各个局部E-R视图进行集成视图进行集成第一步,第一步,合并各分合并各分E-RE-R图,生成初步图,生成初步E-RE-R图。图。逐渐往高层合并,产生高一级的子系统。逐渐往高层合并,产生高一级的子系统。合并中会出现三类冲突:合并中会出现三类冲突:属性冲突、命名冲突和结构冲突。属性冲突、命名冲突和结构冲突。属性冲突:属性域冲突(即属性类型或取值范围不同)和属性的取值单位有属性冲突:属性域冲突(即属性类型或取值范围不同)和属性的取值单位有冲突。冲突。命名冲突:同名异义,异名同义。命名冲突:同名异义,异名同义
28、。结构冲突:结构冲突:同一对象在不同应用中具有不同的抽象。同一对象在不同应用中具有不同的抽象。同一实体在不同应用包括的属性不完全相同,或属性出现的顺序不同。同一实体在不同应用包括的属性不完全相同,或属性出现的顺序不同。实体间的联系在不同应用中呈现不同的类型,如有的是一对一,而有的是实体间的联系在不同应用中呈现不同的类型,如有的是一对一,而有的是一对多或多对多。一对多或多对多。如学号,有的局部应用用整形,有的用字符刑。身高,有的用米,有的用厘米。如学号,有的局部应用用整形,有的用字符刑。身高,有的用米,有的用厘米。如局部应用如局部应用A中把教室称为房间,而布局应用中把教室称为房间,而布局应用B中
29、将学生宿舍称为房间。中将学生宿舍称为房间。有的部门把教科书称为课本,而有的部门又把教科书称为教材。有的部门把教科书称为课本,而有的部门又把教科书称为教材。如课程在某一局部应用中是实体,而在另一应用中只是属性。解决方法是把属如课程在某一局部应用中是实体,而在另一应用中只是属性。解决方法是把属性变为实体或者把实体变为属性,使同一对象具有相同的抽象。性变为实体或者把实体变为属性,使同一对象具有相同的抽象。这是很常见的一类冲突,原因是不同的局部应用关心的是该实体的不同侧面。这是很常见的一类冲突,原因是不同的局部应用关心的是该实体的不同侧面。解决方法是使该实体的属性取各分解决方法是使该实体的属性取各分E
30、-R图中的属性的并集,再适当设属性的顺图中的属性的并集,再适当设属性的顺序。例如,在局部应用序。例如,在局部应用A中中“学生学生”实体由学号,姓名,性别,平均成绩构成;实体由学号,姓名,性别,平均成绩构成;在局部应用在局部应用B中中“学生学生”实体由姓名,学号,出生日期,所在系,年级构成;实体由姓名,学号,出生日期,所在系,年级构成;而在局部应用而在局部应用C中中“学生学生”实体由姓名和政治面貌组成。合并后的实体由姓名和政治面貌组成。合并后的E-R图中图中“学生学生”实体由学号,姓名,性别,出生日期,政治面貌,所在系,年级和平实体由学号,姓名,性别,出生日期,政治面貌,所在系,年级和平均成绩构
31、成。均成绩构成。例如,实体例如,实体E1与与E2在局部应用在局部应用A中是多对对联系,而在局部应用中是多对对联系,而在局部应用B中是一对多中是一对多联系;又如在局部应用联系;又如在局部应用X中中E1与与E2发生联系,而在局部应用发生联系,而在局部应用Y中中E1与与E2与与E3发发生联系。解决方法是根据应用的语义对实体联系的类型进行综合或调整。生联系。解决方法是根据应用的语义对实体联系的类型进行综合或调整。2022-12-1631初步初步E-R图的生成:图的生成:例如,销售管理子系统的初步例如,销售管理子系统的初步E-R图,图,P219图图7.25表示分表示分E-R视图集成为总视图集成为总E-R
32、图的方式,图的方式,P221图图7.27表示合并两个分表示合并两个分E-R图时的综合。图时的综合。2022-12-1632第二步,修改与重构,生成基本第二步,修改与重构,生成基本E-RE-R图。图。消除不必要的冗余数据和联系,可以采用消除不必要的冗余数据和联系,可以采用分析的方法和规范化理论进行。分析的方法和规范化理论进行。初步初步E-RE-R图不是基本的图不是基本的E-RE-R图,因为里面有冗余数图,因为里面有冗余数据和冗余联系。据和冗余联系。冗余数据冗余数据可以由其他数据导出来的数据。可以由其他数据导出来的数据。冗余联系冗余联系可以由其他联系导出来的联系。可以由其他联系导出来的联系。202
33、2-12-1633分析的方法消除数据冗余:分析的方法消除数据冗余:以数据字典和以数据字典和数据流图为依据,根据数据字典中关于数数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。据项之间逻辑关系的说明来消除冗余。例如:例如:教师工资单中包括该教师的基本工资,教师工资单中包括该教师的基本工资,各种补贴,应扣除的房租水电费以及实发工资,各种补贴,应扣除的房租水电费以及实发工资,而由于实发工资可以由前面各项推算出来,因而由于实发工资可以由前面各项推算出来,因此可以去掉,在需要查询实发工资时再根据基此可以去掉,在需要查询实发工资时再根据基本工资,各种补贴,应扣除房租水电费数据临本工资
34、,各种补贴,应扣除房租水电费数据临时生成。时生成。采用规范化理论来消除数据冗余:采用规范化理论来消除数据冗余:例如:例如:学生的年龄可以通过出生日期算出,所学生的年龄可以通过出生日期算出,所以年龄属性可以去掉,此时,修改出生日期时以年龄属性可以去掉,此时,修改出生日期时不用再去计算修改年龄属性;学生实体中的平不用再去计算修改年龄属性;学生实体中的平均成绩可以从选修联系中的成绩属性推算出来,均成绩可以从选修联系中的成绩属性推算出来,所以可以去掉平均成绩属性。但是,如果平均所以可以去掉平均成绩属性。但是,如果平均成绩要经常被查询,为了提高查询效率,可以成绩要经常被查询,为了提高查询效率,可以保留该
35、冗余。保留该冗余。2022-12-1634概念设计阶段应达到的目标:概念设计阶段应达到的目标:(1 1)能客观反映现实世界,不能存在互相矛盾的表)能客观反映现实世界,不能存在互相矛盾的表达,能够准确反映原来的每个视图,包括属性,实体达,能够准确反映原来的每个视图,包括属性,实体和实体间的联系。和实体间的联系。(2 2)易于理解。)易于理解。(3 3)易于修改,扩充。)易于修改,扩充。P223P223图图7.307.30:图:图1.14(b)1.14(b)为物资分为物资分E-RE-R图,图图,图7.247.24为销售分为销售分E-RE-R图,图图,图7.297.29劳动人事管理分劳动人事管理分E
36、-E-R R图,合并为基本图,合并为基本E-RE-R图图7.307.302022-12-16357.4 7.4 逻辑结构设计逻辑结构设计选择最适于描述与表达相应概念结构选择最适于描述与表达相应概念结构的数据模型;的数据模型;逻辑设计就是将概念设计的结果映射为具逻辑设计就是将概念设计的结果映射为具体的数据模型。体的数据模型。选择最合适的选择最合适的DBMSDBMS。2022-12-1636分三步进行:分三步进行:将概念结构转换为一般的关系、网状、将概念结构转换为一般的关系、网状、层次模型;层次模型;将转化来的关系、网状、层次模型向特将转化来的关系、网状、层次模型向特定定DBMSDBMS支持下的数
37、据模型转换;支持下的数据模型转换;对数据模型进行优化。对数据模型进行优化。2022-12-16371.E-R图向图向关系关系数据模型的转换数据模型的转换关系模型是一组关系模式的集合。关系模型是一组关系模式的集合。E-RE-R图由实体、实体的属性和实体之间的图由实体、实体的属性和实体之间的联系组成。联系组成。将将E-RE-R图转换为关系模型就是将实体、实体图转换为关系模型就是将实体、实体的属性和实体之间的联系转化为关系模式。的属性和实体之间的联系转化为关系模式。2022-12-1638E-RE-R图向关系模型转化的原则和方法图向关系模型转化的原则和方法一个实体型转换为一个关系模式。一个实体型转换
38、为一个关系模式。一个一个m:nm:n联系转换为一个关系模式。联系转换为一个关系模式。一个一个1:n1:n联系可以转换为一个独立的关系模式,联系可以转换为一个独立的关系模式,也可以与也可以与n n端对应的关系模式合并。端对应的关系模式合并。例如,学生实体转换为学生关系模式,其中学号例如,学生实体转换为学生关系模式,其中学号为学生关系的码:为学生关系的码:学生(学号,姓名,出生日期,所在系,年级,学生(学号,姓名,出生日期,所在系,年级,平均成绩)平均成绩)与该实体相联系的各实体的码以及联系本身的属与该实体相联系的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码性均转换为关系的
39、属性,而关系的码为各实体码的组合。例如,的组合。例如,“学生学生”实体与实体与“课程课程”实体的实体的“选课选课”联系为一个联系为一个m:nm:n的联系,这里转换为的联系,这里转换为“选课关系选课关系”:选课(学号,课号,成绩):选课(学号,课号,成绩)如果转换为一个独立的关系模式,则与该联系相如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为系的属性,而关系的码为n n端实体的码。例如,端实体的码。例如,“学生学生”与与“班级班级”之间为之间为1:n1:n的联系,可以把的联系,可以把班级合并到班
40、级合并到“学生学生”实体中,使得实体中,使得“学生学生”实体实体具有具有“班级号班级号”属性。也可以单独建立关系属性。也可以单独建立关系“班班级组成级组成”关系:关系:(学号,班级号),其中学号为(学号,班级号),其中学号为主码。主码。2022-12-1639一个一个1:1联系可转换为一个独立的关系模式,也可与联系可转换为一个独立的关系模式,也可与任一端对应的关系模式合并。任一端对应的关系模式合并。三个或三个以上实体间的一个多元联系转换为一个三个或三个以上实体间的一个多元联系转换为一个关系模式。关系模式。同一实体集的实体间的联系,即自联系,也可按上同一实体集的实体间的联系,即自联系,也可按上述
41、述1:11:1、1:n 1:n 和和 m:nm:n 三种情况分别处理。三种情况分别处理。具有相同主关键字的关系模式可合并。具有相同主关键字的关系模式可合并。2022-12-1640自联系(递归联系):自联系(递归联系):1:1的自联系的自联系:如人的互助关系,人:如人的互助关系,人-资助者,规定一个人最多可以支助一资助者,规定一个人最多可以支助一个人,而每个人最多可以被一个人支助,此时,有如下表格:个人,而每个人最多可以被一个人支助,此时,有如下表格:PersonJones-Smith(被支助者被支助者)Smith-Parks Myrtle-Pines 可以把被支助者的关键字置于支助者中:可以
42、把被支助者的关键字置于支助者中:Person PersonSponsoredJones SmithSmith ParksParks nullMyrtle PinesPines null可以把支助者的关键字置于被支助者关系中:可以把支助者的关键字置于被支助者关系中:Person PersonSponsoredByJones nullSmith JonesParks SmithMyrtle nullPines Myrtle2022-12-16412.数据模型的优化数据模型的优化数据库逻辑设计的结果不是唯一的。为提高数据库逻辑设计的结果不是唯一的。为提高数据库应用系统的性能,通常以规范化理论数据库应
43、用系统的性能,通常以规范化理论为指导,适当地修改、调整数据模型的结构。为指导,适当地修改、调整数据模型的结构。这就是数据模型的优化。这就是数据模型的优化。2022-12-1642关系模型的优化关系模型的优化确定数据依赖;对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。检查其中是否存在传递函数依赖、部分函数依赖和多值依赖,确定各关系模式所属的范式。对应需求分析,对所得的范式进行权衡,然后进行必要的合并和分解。2022-12-16433.设计用户外模式设计用户外模式概念模型转化为逻辑模型后,生成了整概念模型转化为逻辑模型后,生成了整个应用系统的模式,为了满足具体的应个应用系统的模式,
44、为了满足具体的应用,还必须设计用户的外模式。主要是用,还必须设计用户的外模式。主要是指定义视图。指定义视图。2022-12-1644定义数据库模式主要从系统的时间效率、空定义数据库模式主要从系统的时间效率、空间效率和易维护等角度出发。而定义外模式间效率和易维护等角度出发。而定义外模式主要考虑以下因素:主要考虑以下因素:使用更符合用户习惯的别名。使用更符合用户习惯的别名。针对不同级别的用户定义不同的外模式,针对不同级别的用户定义不同的外模式,以满足系统安全性的要求。以满足系统安全性的要求。尽量简化用户对系统的使用。尽量简化用户对系统的使用。2022-12-1645使用视图必须遵循以下原则:使用视
45、图必须遵循以下原则:避免创建多于两级或三级的视图。避免创建多于两级或三级的视图。视图应该被模式拥有(基表所属的模式)。视图应该被模式拥有(基表所属的模式)。必须提供关于视图使用的文档。必须提供关于视图使用的文档。2022-12-16467.5 7.5 数据库物理设计数据库物理设计数据库在物理设备上的存储结构与存数据库在物理设备上的存储结构与存取方法称为取方法称为数据库的物理结构数据库的物理结构。数据库的物理设计:数据库的物理设计:为一个给定的逻辑数据模型选取一个最为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构。适合应用环境的物理结构。数据库的物理结构依赖于选用的数据库的物理结构依赖于
46、选用的DBMSDBMS,依赖于计算机硬件环境。依赖于计算机硬件环境。2022-12-1647数据库物理设计主要考虑因素:数据库物理设计主要考虑因素:确定数据的存储结构确定数据的存储结构主要考虑存取时间、存取空间利用率和维护代价主要考虑存取时间、存取空间利用率和维护代价三个方面的因素。三个方面的因素。设计数据的存取路径设计数据的存取路径主要考虑如何建立索引的问题。主要考虑如何建立索引的问题。确定数据的存放位置确定数据的存放位置根据存取频率高低将数据分开存放。根据存取频率高低将数据分开存放。确定系统配置确定系统配置配置配置DBMS提供的存储用的参数,进行物理优化。提供的存储用的参数,进行物理优化。
47、2022-12-1648聚簇功能聚簇功能为了提高某个属性(组)的查询速度,为了提高某个属性(组)的查询速度,把在这个属性或属性组上有相同值的元把在这个属性或属性组上有相同值的元组集中存放在一个物理块中,如果存放组集中存放在一个物理块中,如果存放不下,可以存放到预留的空白区或链接不下,可以存放到预留的空白区或链接到多个物理块。到多个物理块。提高按聚簇码进行查询的效率;提高按聚簇码进行查询的效率;按聚簇码存放元组可以节省存储空间;按聚簇码存放元组可以节省存储空间;聚簇可以建立在一个或多个关系上。聚簇可以建立在一个或多个关系上。2022-12-1649建立与维护聚簇的开销都相当大。建立与维护聚簇的开
48、销都相当大。对已有关系建立聚簇,将导致关系中元组的对已有关系建立聚簇,将导致关系中元组的存储位置发生移动,并使得此关系上原有的存储位置发生移动,并使得此关系上原有的索引无效,必须重建。索引无效,必须重建。当一个元组的聚簇码改变时,该元组的当一个元组的聚簇码改变时,该元组的存储位置也要作相应的移动。存储位置也要作相应的移动。2022-12-1650建立聚簇的条件建立聚簇的条件通过聚簇码进行访问或连接是该关系的主要应用,通过聚簇码进行访问或连接是该关系的主要应用,而与聚簇码无关的其他访问很少或是次要的。尤其而与聚簇码无关的其他访问很少或是次要的。尤其是当是当sqlsql语句中包含与聚簇码有关的语句
49、中包含与聚簇码有关的order order by,group by,union,distinctby,group by,union,distinct等子句或短语时;等子句或短语时;对应每个聚簇码的平均元组数既不能太少,也对应每个聚簇码的平均元组数既不能太少,也不能太多;不能太多;聚簇码值相对稳定,以减少维护开销。聚簇码值相对稳定,以减少维护开销。2022-12-1651评价数据库物理结构评价数据库物理结构对选定的多种方案从时间效率、空间效率对选定的多种方案从时间效率、空间效率和维护代价以及各种用户要求的角度来进和维护代价以及各种用户要求的角度来进行定量的估算,从而选择出一种较优的物行定量的估算
50、,从而选择出一种较优的物理结构。理结构。2022-12-1652设计数据库的物理结构必须充分了解设计数据库的物理结构必须充分了解所用所用DBMS的内部特征,特别是存储结构和的内部特征,特别是存储结构和存储方法;存储方法;充分了解应用环境,特别是应用的处理频率充分了解应用环境,特别是应用的处理频率和响应时间要求;和响应时间要求;充分了解外存设备的特性。充分了解外存设备的特性。2022-12-16537.6 7.6 数据库实施数据库实施1.用用DDL定义数据库结构定义数据库结构2.组织数据入库组织数据入库3.编制与调试应用程序编制与调试应用程序4.数据库试运行数据库试运行数据库应用程序的设计应该与
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。