第4章 关系数据库设计_第1页
第4章 关系数据库设计_第2页
第4章 关系数据库设计_第3页
第4章 关系数据库设计_第4页
第4章 关系数据库设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-3-7第第4 4章章 关系数据库设计关系数据库设计 2022-3-7内内 容容4.1 数据库设计概述数据库设计概述4.2 需求分析需求分析4.3 概念结构设计概念结构设计4.4 逻辑结构设计逻辑结构设计4.5 物理结构设计物理结构设计4.6 数据库实施数据库实施4.7 数据库运行和维护数据库运行和维护小结小结2022-3-74.1数据库设计概述数据库设计概述 什么是数据库设计呢?广义地讲,是数据库及其应用系统的设计,即设计整个的数据库应用系统。狭义地讲,是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分。 数据库设计数据库设计是指对于一个给定的应用环

2、境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求2022-3-74.1.1数据库的设计特点数据库的设计特点1、“三分技术,七分管理,十二分基础数据” 。(基本规律)2、数据库设计应该和应用系统设计相结合。即结构(数据) 设计和行为(处理)设计相结合。4.1.2 数据库设计方法数据库设计方法 1 1新奥尔良新奥尔良(New Orleans)(New Orleans)方法方法 2 2基于基于E-RE-R模型的数据库设计方法模型的数据库设计方法 3 33NF(3NF(第三范式第三范式) )的设计方法的设计方法 4 4对

3、象定义语言对象定义语言 (Object Definition Language(Object Definition Language,ODL)ODL)方法方法2022-3-74.1.3 数据库设计基本步骤数据库设计基本步骤1需求分析阶段需求分析阶段 进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理需求分析)。 2概念设计阶段概念设计阶段 它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。3逻辑设计阶段逻辑设计阶段 将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。4物理设计阶段物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存

4、储结构和存取方法)。 5数据库实施阶段数据库实施阶段 设计人员运用DBMS提供的数据库语言(如SQL)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。6数据库运行和维护阶段数据库运行和维护阶段 对数据库系统进行评价、调整与修改。2022-3-74.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式应用要求1应用要求2应用要求n.概念模式逻辑模式外模式1外模式2.外模式n内模式.综合转换2022-3-74.2 需求分析需求分析 主要任务:主要任务:通过详细调查现实世界要处理的对象(部门、企业等),充分了解原系统工作概况,明确用户的各

5、种需求明确用户的各种需求,然后在此基础上确定确定新系统的功能新系统的功能。通过调查获得用户如下要求:信息要求、处理要求和安全性与完整性要求 主要工作:主要工作: 收集资料:是数据库设计人员和用户共同完成。确定企业组织的目 标,从这些目标导出数据库的总体要求。 分析整理:对所收集到的数据进行抽象的过程。 数据流图:采用数据流图描述系统的功能。 数据字典:是系统中各类数据描述的集合,包括数据项、数据结构、 数据流、数据存储和处理过程。 用户确认:需求分析得到的数据流图和数据字典要返回给用户,通过 反复完善,最终取得用户的认可。2022-3-74.3 概念结构设计概念结构设计4.3.1 设计策略及步

6、骤设计策略及步骤 设计策略:设计策略:自顶向下自顶向下。首先定义全局概念结构的框架,然后逐步细化。 自底向上。自底向上。首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。逐步扩张。逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。混合策略。混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。2022-3-7主要步骤主要步骤 进行数据抽象,设计局部概念模式 将局部概念模式综合成全局概念模式 评审用户评审用户评审:重点放在确认全局概念模式是否

7、准确、完整地反映了用户的信息需求和现实世界事物的属性间的固有联系;DBA和应用开发人员评审和应用开发人员评审:侧重于确认全局结构是否完整,各种成分划分是否合理,是否存在不一致性,以及各种文档是否齐全等。2022-3-7人脑的认识抽象转换现实世界信息世界数据世界现实世界问题事物及其联系概念模型实体及其联系数据模型数据及其联系4.3.2 概念模型概念模型1数据处理的三个世界数据处理的三个世界(1)现实世界:客观存在的世界中事物及其联系。(2)信息世界:是指现实世界在人的头脑中的反映。是对客观事物及其联系的 一种抽象描述,一般 采用实体-联系方法表示。(3)数据世界:指信息世界中的信息在计算机中的数

8、据存 储。信息世界中的实体及其联系将被转换成数据世界中的数据及联系,这种联系是 用数据模型表示的。2022-3-72. 概念模型的基本概念概念模型的基本概念 实体:实体:(Entity)是指客观存在且可区别于其他对象的事物。实体可以是具体的对象,如一个产品、一个仓库、一艘船、一个房子、一个学生、一门课程等;实体也可以是抽象的事件,如一次订货、一次购房、一次选课等。 实体集:实体集:实体集(Entity set)是具有相同类型和相同性质的实体的集合。 实体型和实体值:实体型和实体值:用于描述和抽象同一实体集共同特征的实体名及其属性名的集合称为实体型(Entity type)。 属性:属性:实体集

9、中的每个成员所具有的某一特性。属性的取值范围称为属性的域。2022-3-7简单属性和复合属性。简单属性和复合属性。不能再划分的属性称为简单属性,可进一步划分成更小部分的属性称为复合属性。单值属性和多值属性。单值属性和多值属性。如果实体集中的每一个实体在某个属性上的值是单一的,则该属性就是单值属性。反之,如果对于实体集中的某个具体实体而言,某个属性的值可能对应一组值,则该属性就是多值属性。 Null属性。属性。当暂时不知道某个属性的值,或属性值尚未确定时,可将属性值设为空(Null)。派生属性。派生属性。如果实体的某个属性的值可以从其他相关实体或属性中派生出来,那么该属性就是派生属性。 实体的属

10、性分类实体的属性分类2022-3-7键键 能唯一标识实体集中每个实体的属性或属性组称为实体集的键(Key)。 联系联系 联系(Relationship)是实体集之间的一个关联。每个联系都有一个名字,每个联系都可以具有描述性属性。2022-3-7 一对一(记为“1:1”):如果对于实体集E1中的每个实体,在实体集E2中至多只有一个实体与之相对应,反之亦然。 一对多(记为“1:n”):如果对于实体集E1中的每个实体,在实体集E2中有任意个(零个或多个)实体与之相对应,而对于E2中的每个实体却至多和E1中的一个实体相对应。 多对多(记为“n:m”):如果对于实体集E1中的每个实体,在实体集E2中有任

11、意个(零个或多个)实体与之相对应,反之亦然,联系的类型联系的类型实体E1联系名实体E211实体E1联系名实体E2n1实体E1联系名实体E2nm2022-3-7联系的实例、参与者和度联系的实例、参与者和度 一个给定联系的具体值就是该联系的一个实例。 一个给定联系中的实体称为联系的参与者。 联系可存在于两个实体之间,也可存在于多个实体之间;不同实体集的实体间有联系,同一实体集的实体间也可以有联系。 一个给定联系中参与者的数量称为联系的度(Degree)。度为2的联系称为2元联系,度为n(n2)的联系称为n元联系。2022-3-73 三个世界的联系三个世界的联系现实世界 信息世界 数据世界事物个体事

12、物总体事物特征事物间联系实体实体集属性实体模型记录文件字段数据模型2022-3-74概念模型的设计方法概念模型的设计方法 概念模型的设计方法很多,其中较早出现的,最著名最常用的是P.P.S.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach,E-R方法); 除此之外是统一建模语言(Unified Modeling Language,UML)类图方法,该方法虽然在E-R方法之后出现,但却很快获得了广泛的应用。2022-3-74.3.3 实体实体-联系方法联系方法1. E-R模型的表示方法模型的表示方法2. E-R模型的设计问题模型的设计问题3. E

13、-R模型的扩充模型的扩充4. 局部局部E-R模型的设计模型的设计5. 全局全局E-R模型的设计模型的设计2022-3-71E-R模型的表示方法模型的表示方法实体型。实体型。实体型用带有实体名的矩形框表示。属性。属性。一般属性用带有属性名的椭圆形框表示,多值属性用双椭圆形框表示,派生属性用虚椭圆形框表示。属性与其对应的实体型之间用直线连接。实体集之间的联系。实体集之间的联系。实体集之间的联系用带有联系名的菱形框表示,并用直线将联系与相应的实体相连接,且在直线靠近实体的那端标上1或n等,以表明联系的类型(1:1、1:n或m:n)。2022-3-72E-R模型的设计问题模型的设计问题 确定实体集和属

14、性确定实体集和属性一般来讲,可以作为属性的事物应符合如下两条原则: 除了复合属性,其他属性都不能再具有需要描述的特性。 属性不能与其它实体发生联系,即E-R图中所表示的联系是实体间的联系。职工职工号职称年龄姓名聘任职称职工号附加福利工资2022-3-7病人住院号姓名病房号住在病房医疗医生2022-3-7 确定实体集间的联系确定实体集间的联系 从如图4.14所示的E-R模型中可以得到如下的信息:课程信息、教师信息以及某门课程是由哪几个教师教授的,某位教师教授了哪几门课。但无法了解教师在教授某门课程时,是在什么时间、哪一间教室教授的?有哪些学生修读该课程?如果这些都是用户所关心的问题,就必须在E-

15、R模型中体现出来。2022-3-73E-R模型的扩充模型的扩充 (1) 弱实体在现实世界中,有些实体的存在必须依赖于其它实体,这样的实体称为弱实体,其他实体则被称为常规实体。 (2) 超类和子类 概括定义了类型之间的一种子集联系。例如:学生、本科生、研究生。建筑物单元住宅组成1n学生本科生研究生2022-3-7数据抽象:对实际的人、事、物和概念进行人为处理,抽取关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。 分类:定义某一类概念作为现实世界中一组对象的类型。这些对象具有某些共同的特性和行为。抽象了对象值与型之间的“is menber of ”的

16、语义 聚集:定义某一类型的组成成分。抽象了对象内部类型和成分之间的“is part of ”的语义 概括:定义类型之间的一种子集联系。抽象类型之间的“is subset of ”的语义4局部局部E-R模型的设计模型的设计学生张英王平赵斌学生学号姓名专业分类聚集学生本科生研究生概括2022-3-7 选择局部应用:选择适当层次的子系统,设计各个局部E-R图工厂管理信息系统物资管理销售管理人事管理逐一设计每一局部结构的E-R图2022-3-75全局全局E-R模型的设计模型的设计请按键请按键 合并局部合并局部E-R模型,生成初步模型,生成初步E-R图图 方式:一次集成 逐步集成 依次取出所有的局部E-

17、R模型,进行合并,直至所有的局部E-R模型都合并完为止。在合并过程中要检查并消除局部E-R模型间的一些冲突即合并分两步走 合并:解决各分E-R图之间的冲突,形成初步E-R图。 修改和重构:消除不必要的冗余,生成基本E-R图。 2022-3-7属性冲突属性冲突 包括属性域冲突和属性取值单位的冲突。 属性域的冲突:属性域的冲突: 指同一属性在不同局部E-R模型中有不同数据类型、取值范围或取值集合。 命名冲突命名冲突 同名异义:同名异义: 是指具有不同意义的对象在不同的局部E-R 模型中却使用了相同的名字。 异名同义:异名同义: 是指具有同一意义的对象在不同的局部E-R 模型中却使用了不同的名字。a

18、. 合并合并2022-3-7结构冲突结构冲突同一对象在不同的局部E-R模型中具有不同的抽象,例如:职工同一实体在不同的局部E-R模型中包含不同的属性个数和排列次序实体间的联系在不同的局部E-R模型中具有不同的类型。供应商供应m数量零件n产品p构成m零件n产品数量供应商供应m数量1零件n产品p构成mn数量2综合2022-3-7 消除冗余数据和冗余联系,设计基本消除冗余数据和冗余联系,设计基本E-R图图m零件产品构成mn零件数Q1消耗n材料1存放仓库mn使用n数量Q3消耗量Q2存放量Q4存放量Q52022-3-7例例1:某汽车维修公司需建立一个汽车维修数据库,该数据:某汽车维修公司需建立一个汽车维

19、修数据库,该数据库中需要存储和关联下列信息:库中需要存储和关联下列信息: 车辆信息:车牌号、车型、发动机号、行驶里程、车辆所有人、联系电话 维修项目:项目号、项目名称、维修费 汽车备件:备件号、备件名称、备件单价、库存数量以上数据之间存在下列约束: 可以对一个车辆进行多个维修项目,每个维修项目可用于多个车辆,维修项目完成后要在数据库中记录维修时间 一种备件可用于多个维修项目,每个维修项目最多只使用一种备件,但每种备件的数量可以是多个 根据以上需求构建该数据库的概念模型2022-3-7例例2:现有某图书销售数据库,其关系表结构如下:现有某图书销售数据库,其关系表结构如下:图书表(图书编号、图书名

20、称、出版社编号、出版社名称、出版时间、出版数量、版次)图书销售表(图书编号、销售日期、销售数量、书店编号、读者编号、读者姓名、读着电话)书店表(书店编号、联系电话、所在城市编号、城市名称)该系统所涉及的数据存在如下约束:一个出版社可以出版多本图书,一本图书只能在一个出版社出版,在该系统记录的图书出版社信息包括出版时间 、版次及出版数量信息一个书店可以出售多本图书给多个读者,每位读者可以从多个书店购买多本图书,一本图书可以通过多个书店售给读者,书店把图书出售给读者之后会在系统中记录售书日期和售书数量信息。一个书店只能位于一个城市,一个城市可以有多个书店请根据以上信息画出合理的图书销售数据库的概念

21、模型(E-R图表示)以图书销售表为例说明原数据库设计的不合理之处I.给出该数据库符合3NF要求的全部关系模式,并给出关系模式中的全部主码和外码2022-3-74.4 逻辑结构设计逻辑结构设计 概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。 设计逻辑结构的步骤:设计逻辑结构的步骤: 将概念结构转换为一般的关系、网状、层次模型; 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换; 对数据模型进行优化。2022-3-74.4.1 E-R模型向关系模型的转换模型向关系模型

22、的转换E-R模型转换为关系模型转换规则:转换规则:(1)每一个实体类型转换为一个模式,实体的属性就是关系的属性,实 体的码就是关系的码。(2)联系的转换一般1:1,1:m联系不产生新的关系模式,而是将一方实体的码加入到多方实体对应的关系模式中,联系的属性也一并加入。M:n联系要产生一个新的关系模式,该关系模式由联系涉及实体的码加上联系的属性(若有)组成。2022-3-7具体做法:具体做法:(1)两实体间的1:1联系例如:如下图的E-R图可转换为如下关系模式:厂长工厂管理姓名性别年龄厂号厂名地点11任期工厂(厂号,厂名,地点,姓名,任期)厂长(姓名,性别,年龄)厂长(姓名,性别,年龄,厂号,任期

23、)工厂(厂号,厂名,地点)厂长(姓名,性别,年龄,)工厂(厂号,厂名,地点)管理(姓名,厂号,任期)2022-3-7(2)两实体间的1:m联系可将“1”方实体的主码纳入“m”方实体对应的关系中作为外码,同时把联系的属性也一并纳入“m”方实体对应的关系中。厂库商品存储厂库号地点面积货号品名价格1m数量厂库(厂库号,地点,面积)商品(货号,品名,价格,厂库号,数量)2022-3-7(3)同一实体间的1:m联系可在这个实体所对应的关系中多设一个属性,作为与该实体相联系的另一个实体的主码。职工领导工号姓名年龄1民意测验m职工(工号,姓名,年龄,领导者工号,民意测验)2022-3-7(4)两实体间的弱实

24、体联系可将被依赖实体的主码纳入弱实体中,作为弱实体的主码或主码中的一部分。例如:职工亲属有姓名性别年龄亲属名亲属关系1m工号职工(工号,姓名,年龄,性别)亲属(工号,亲属姓名,亲属关系)2022-3-7(5)超类和子类的转换 超类,子类实体都可以转换为一个关系,并将超类实体的主码加到子类实体中。 例如:职员飞行员机械师管理员职员(职工号,姓名,年龄,性别,参加工作时间)管理员(职工号,职务,职称)飞行员(职工号,飞行小时,健康检查,飞机型号)机械师(职工号,学历,级别,专业职称)2022-3-7(6)两实体间的m:n联系 必须对“联系”单独建立一个关系,该关系中至少包含被它所联系的双方实体的“

25、主码”,如果联系有属性,也要纳入这个关系中。例:学生课程选修学号姓名性别课程号课程名学时mn成绩学生(学号,姓名,年龄,性别)课程(课程号,课程名,学时)选修(学号,课程号,成绩)2022-3-7(7)同一实体间的m:n联系 必须为这个“联系”单独建立一个关系,该关系中至少应包含被他所联系的双方实体的“主码”,如果联系有属性,也要纳入这个关系中。由于这个“联系”只涉及一个实体,所以加入的实体的主码不能同名。零部件组成代号名称价格n数量m零部件(代号,名称,价格)组成(代号,组成件代号,数量)2022-3-7(8)两个以上实体间的m:n联系 必须为这个“联系”单独建立一个关系,该关系中至少应包含

26、被他所联系的双方实体的“主码”,如果联系有属性,也要纳入这个关系中。供应商项目供应供应商号供应商名地址项目名称开工日期mp零件数项目编号零件零件号零件名数量n供应商(供应商号,供应商名,地址)项目(项目编号,项目名称,开工日期)零件(零件号,零件名,数量)供应(供应商号,项目编号,零件号,零件数)2022-3-7练习1:设有如下实体:学生:学号,单位名称,姓名,性别,年龄,选修课程名课程:编号,课程名,开课单位,任课教师号教师:教师号,姓名,性别,职称,讲授课程编号单位:单位名称,电话,教师号,教师姓名上述实体中存在如下联系: 一个学生可选修多门课程,一门课程可被多个学生选修 一个教师课讲授多

27、门课程,一门课程可由多个教师讲授 一个单位可有多个教师,一个教师只能属于一个单位 完成如下工作: 分别设计学生选课和教师任课两个局部E-R图 将上述设计完成的E-R图合并成一个全局E-R图 将该全局E-R图转换成等价的关系模式表示的数据库逻辑结构2022-3-7 练习2:设一个海军基地要建立一个舰队管理信息系统,它包括如下两个方面的信息:1 舰队方面舰队:舰队名称、基地地点、舰队数量舰艇:编号、舰艇名称、舰队数量2 舰艇方面舰艇:舰艇编号、舰艇名、武器名称武器:武器名称、武器生产时间、舰艇编号官兵:官兵证号、姓名、舰艇编号其中,一个舰队可拥有多艘舰艇,一艘舰艇属于一个舰队;一艘舰艇可以安装多种

28、武器,一种武器课安装于多艘舰艇上,一艘舰艇有多个官兵,一个官兵只属于一艘舰艇。试完成如下设计:分别设计舰队和舰艇两个局部E-R图将上述两个局部E-R图合并为一个全局E-R图将该全局E-R图转换成关系模式合并时是否存在命名冲突?如何处理?2022-3-74.4.2 关系模式的优化关系模式的优化 应用关系规范化理论对上述产生的关系模式进行优化。具体步骤:(1)确定每个关系模式内部各个属性之间的数据依赖以及不同关系模式属性之间的数据依赖;(2)对各个关系模式之间的数据依赖进行最小化处理,消除冗余的联系(3)确定各关系模式的范式等级(4)按照需求分析阶段得到的处理要求,确定要对哪些模式进行合并或分解(

29、5)为了提高数据操作的效率和存储空间的利用率,对上述产生的关系模式进行适当的修改、调整和重构(对关系模式进行必要的分解)2022-3-7常用的两种分解方法是水平分解和垂直分解。常用的两种分解方法是水平分解和垂直分解。 水平分解是把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统的效率。根据“80/20原则”,一个大关系中,经常被使用的数据只是关系的一部分,约20%,可以把经常使用的数据分解出来,形成一个子关系。垂直分解是垂直分解是把关系模式R的属性分解为若干子集合,形成若干子关系模式。垂直分解的原则是垂直分解的原则是,经常在一起使用的属性从R中分解出来形成一个子关系模式

30、。垂直分解可以提高某些事务的效率,但也可能使另一些事务不得不执行连接操作,从而降低了效率。因此是否进行垂直分解取决于分解后R上的所有事务的总效率是否得到了提高。垂直分解需要确保无损连接性和保持函数依赖,即保证分解后的关系具有无损连接性和保持函数依赖性。可以用模式分解算法对需要分解的关系模式进行分解和检查。2022-3-74.4.3设计用户子模式设计用户子模式全部关系模型设计完成后,还要根据局部应用的需求,结合具体DBMS的特点,设计用户的子模式。设计子模式时应注意用户的习惯和方便性,主要包括:1. 使用更符合用户习惯的别名使用更符合用户习惯的别名在合并各分E-R图时,曾做了消除命名冲突的工作,

31、以使数据库系统中同一关系和属性具有唯一的名字。这在设计数据库整体结构时是非常必要的。用视图机制可以在设计用户视图时重新定义某些属性名,使其与用户习惯一致,以方便使用。 2022-3-72.为不同级别用户定义不同视图,以保证系统的安全性为不同级别用户定义不同视图,以保证系统的安全性假设有关系模式产品(产品号,产品名,规格,单价,生产车间,生产负责人,产品成本,产品合格率,质量等级),可以在产品关系上建立两个视图:为一般顾客建立视图:产品1(产品号,产品名,规格,单价)为产品销售部门建立视图:产品2(产品号,产品名,规格,单价,车间,生产负责人)顾客视图中只包含允许顾客查询的属性;销售部门视图中只

32、包含允许销售部门查询的属性;生产领导部门则可以查询全部产品数据。这样就可以防止用户非法访问本来不允许他们查询的数据,保证了系统的安全性。2022-3-73. 可以将经常使用的复杂的查询定义为视图,简化用户对系统的使用可以将经常使用的复杂的查询定义为视图,简化用户对系统的使用如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查询定义为视图,用户每次只对定义好的视图进行查询,大大简化了用户的使用。2022-3-74.5 物理设计物理设计 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构。它依赖于选定的DBMS。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结

33、构的过程,就是数据库的物理设计。 2022-3-7从数据库物理结构角度需要解决如下几个问题:(1)文件的组织 数据库与文件的对应关系、文件的组织结构、查找码、文件的记录格式(2)文件的结构与存取 如何将DB文件的逻辑记录映射到物理文件的磁盘块;对某种结构的文件,如何去查找、插入、删除和修改其中的记录。堆文件:记录随机存储在文件物理空间中顺序文件:按照文件记录在查找码上取值大小顺序排列各个记录聚集文件:将不同关系表中有关联关系的记录存储在同一磁盘块内索引文件:利用索引技术支持快速文件访问的文件组织和存取方法散列文件:利用散列函数支持快速文件访问的文件组织和存取方法4.5.1数据库物理设计的内容和

34、方法数据库物理设计的内容和方法2022-3-7(3)索引技术 当数据库中关系表的数目及关系表中元组的数目非常多时,如何提高DB文件的存取速度。s1li19Fs2yang20Ms3mu19Ms1C190s1C285S2C178S2C389s3C390S1li19Fs1C190s1C285S2yang20MS2C178S2C389S3mu19Ms3C390关系S关系SC聚集文件聚集索引和非聚集索引稠密索引和稀疏索引主索引和辅索引单层索引和多层索引2022-3-7关系数据库物理设计的内容关系数据库物理设计的内容通常关系数据库物理设计的内容主要包括:确定数据的存取方法;确定数据的存储结构。2022-3

35、-74.5.2 关系模式存取方法选择关系模式存取方法选择1. 索引存取方法的选择索引存取方法的选择 表的主码(2)如果一个(或一组)属性经常在WHERE查询子句中出现,则考虑在这个(或这组)属性上建立索引(或组合索引);(3) 如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引;(4) 如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑 在这个(或这组)属性上建立索引。(5)在ORDER BY、GROUP BY子句中出现的属性2022-3-72. 聚簇存取方法的选择聚簇存取方法的选择 为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上

36、具有相同值的元组集中存放在连续的物理块称为聚簇聚簇。聚簇功能可以大大提高按聚簇码进行查询的效率。 聚簇功能不但适用于单个关系,也适用于经常进行连接操作的多个关系。即把多个连接关系的元组按连接属性值聚集存放,聚簇中的连接属性称为聚簇码。这就相当于把多个关系按“预连接”的形式存放,从而大大提高连接操作的效率。一个数据库可以建立多个聚簇,一个关系只能加入一个聚簇。 2022-3-7选择聚簇存取方法步骤选择聚簇存取方法步骤设计候选聚簇设计候选聚簇对经常在一起进行连接操作的关系可以建立聚簇;如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇;如果一个关系的一个(或一组)属性上的值重复

37、率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不太少。太少了,聚簇的效果不明显。检查候选聚簇中的关系检查候选聚簇中的关系,取消其中不必要的关系取消其中不必要的关系从聚簇中删除经常进行全表扫描的关系;从聚簇中删除更新操作远多于连接操作的关系;不同的聚簇中可能包含相同的关系,一个关系可以在某一个聚簇中,但不能同时加入多个聚簇。要从这多个聚簇方案(包括不建立聚簇)中选择一个较优的,即在这个聚簇上运行各种事务的总代价最小。2022-3-73. HASH存取方法的选择选择HASH存取方法的规则:如果一个关系的属性主要出现在等值连接条件中或主要出现在相等比较选择条件中,而且满足下列两个条件

38、之一,则此关系可以选择HASH存取方法。如果一个关系的大小可预知,而且不变;如果关系的大小动态改变,而且数据库管理系统提供了动态HASH存取方法。2022-3-74.5.3 确定数据库的存储结构确定数据库的存储结构1. 确定数据的存放位置确定数据的存放位置1)不同类型数据的物理分布:数据库备份数据、索引、数据、日志2)应用数据的划分与分布:使用特征3)派生属性数据分布4)关系模式的去规范化2022-3-72. 确定系统配置确定系统配置 DBMS产品一般都提供了一些系统配置变量、存储分配参数,供设计人员和DBA对数据库进行物理优化。初始情况下,系统都为这些变量赋予了合理的默认值。但是这些值不一定

39、适合每一种应用环境,在进行物理设计时,需要重新对这些变量赋值,以改善系统的性能。 系统配置变量很多,这些参数值影响存取时间和存储空间的分配,在物理设计时就要根据应用环境确定这些参数值,以使系统性能最佳。 在物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。2022-3-74.5.4 评价物理结构评价物理结构 数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案。数据库设计人员必须对这些方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。 评价物理数据库的方法完全依赖于所

40、选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。如果该结构不符合用户需求,则需要修改设计。 2022-3-74.6 数据库实施数据库实施 根据数据库的逻辑结构设计和物理结构设计结果,在计算机系统上建立实际的数据库结构、导入数据并进行程序的调试1 定义数据库的结构定义数据库的结构利用给定的DBMS所提供的命令,建立数据库的模式、外模式和内模式。对关系数据库来说,就是创建数据库、建立数据库中所包含的各个基本表、视图、索引等等。这部分的工作可以用SQL语句中的CREATE DATABASE、CREATE TABLE

41、、CREATE VIEW和CREATE INDEX命令来完成。 2022-3-72. 数据装载数据装载 筛选数据 转换数据格式 输入数据 校验数据3. 应用程序的编制调试应用程序的编制调试 与数据载入同时进行的工作是应用程序的编制和调试。 在所编写的应用程序中一定会用到嵌入式SQL语句来进行数据库数据查询和更新; 其中查询可以用SELECT语句,而与更新有关的语句则包括INSERT、DELETE和UPDATE语句,当然一般还会使用游标游标进行数据操作。2022-3-74 数据库的试运行数据库的试运行 在所有的程序模块都通过了调试以后,就需要将它们联合起来进行调试。这一过程称为数据库的试运行数据库的试运行。 在数据库的试运行过程中,不仅要测试程序的各功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论