第七章数据库设计.ppt

上传人:s****8 文档编号:69238532 上传时间:2022-12-31 格式:PPT 页数:49 大小:1.06MB
返回 下载 相关 举报
第七章数据库设计.ppt_第1页
第1页 / 共49页
第七章数据库设计.ppt_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《第七章数据库设计.ppt》由会员分享,可在线阅读,更多相关《第七章数据库设计.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、12/31/20221第七章 数据库设计12/31/20222数据库设计分为以下六个主要阶段:数据库设计分为以下六个主要阶段:需求分析需求分析概念结构设计概念结构设计逻辑结构设计逻辑结构设计物理结构设计物理结构设计数据库实施数据库实施数据库运行和维护数据库运行和维护12/31/20223需求分析和概念设计独立于任何数据库需求分析和概念设计独立于任何数据库管理系统管理系统 逻辑设计和物理设计与选用的逻辑设计和物理设计与选用的DBMS密密切相关切相关12/31/20224一、数据库设计的准备工作:选定参加设一、数据库设计的准备工作:选定参加设计的人计的人 1.系统分析人员、数据库设计人员系统分析人

2、员、数据库设计人员 自始至终参与数据库设计自始至终参与数据库设计 2.用户和数据库管理员用户和数据库管理员 主要参加需求分析和数据库的运行维护,数据主要参加需求分析和数据库的运行维护,数据库管理员不进行编码工作。库管理员不进行编码工作。3.应用开发人员(程序员和操作员)应用开发人员(程序员和操作员)在系统实施阶段参与进来,负责编制程序和准在系统实施阶段参与进来,负责编制程序和准备软硬件环境备软硬件环境12/31/20225数据库设计的过程需求分析阶段需求分析阶段 准确了解与分析用户需求(包括数据与处理)准确了解与分析用户需求(包括数据与处理)需求分析阶段完成数据字典、数据项、数据需求分析阶段完

3、成数据字典、数据项、数据流和数据存储的描述。流和数据存储的描述。12/31/20226数据字典:包括数据项、数据结构、数据流、数据存储和处理过程五部分数据流图表达数据和处理的关系,系统中的数据借助数据字典来描述。12/31/20227数据字典举例例:学生学籍管理子系统的数据字典。例:学生学籍管理子系统的数据字典。数据项,以数据项,以“学号学号”为例:为例:数据项:学号数据项:学号含义说明:唯一标识每个学生含义说明:唯一标识每个学生别名:学生编号别名:学生编号类型:字符型类型:字符型长度:长度:8取值范围:取值范围:00000000至至99999999 取值含义:前两位标别该学生所在年级,取值含

4、义:前两位标别该学生所在年级,后六位按顺序编号后六位按顺序编号与其他数据项的逻辑关系:与其他数据项的逻辑关系:12/31/20228数据结构,以数据结构,以“学生学生”为例为例“学生学生”是该系统中的一个核心数据结构:是该系统中的一个核心数据结构:数据结构:学生数据结构:学生含义说明:是学籍管理子系统的主体数据结构,含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息定义了一个学生的有关信息 组成:学号,组成:学号,姓名,性别,年龄,所在系,年级姓名,性别,年龄,所在系,年级 12/31/20229数据流,数据流,“体检结果体检结果”可如下描述:可如下描述:数据流:体检结果数据流

5、:体检结果说明:学生参加体格检查的最终结果说明:学生参加体格检查的最终结果 数数据流来源:体检据流来源:体检数据流去向:批准数据流去向:批准 组成:组成:平均流量:平均流量:高峰期流量:高峰期流量:12/31/202210数据存储,数据存储,“学生登记表学生登记表”可如下描述:可如下描述:数据存储:学生登记表数据存储:学生登记表说明:记录学生的基本情况说明:记录学生的基本情况流入数据流:流入数据流:流出数据流:流出数据流:组成:组成:数据量:每年数据量:每年3000张张存取方式:随机存取存取方式:随机存取12/31/202211处理过程处理过程“分配宿舍分配宿舍”可如下描述:可如下描述:处理过

6、程:分配宿舍处理过程:分配宿舍说明:为所有新生分配学生宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍输入:学生,宿舍输出:宿舍安排输出:宿舍安排处理:在新生报到后,为所有新生分配学生宿舍。处理:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于每个学生的居住面积不小于3平方米。平方米。安排新生宿舍其处理时间应不超过安排新生宿舍其处理时间应不超过15分钟。分钟。12/31/202212数据流图12/31/2022132、概念结构设计、概念结构设

7、计将需求分析得到的用户需求抽象为概念模将需求分析得到的用户需求抽象为概念模型的过程。型的过程。描述概念模型的有力工具是描述概念模型的有力工具是ER模型。模型。概念结构设计的方法:概念结构设计的方法:自顶向下、自底向上、自顶向下、自底向上、逐步扩张、混合策略逐步扩张、混合策略12/31/202214利用ER方法进行数据库的概念设计,可分成三步进行:(1)设计局部ER模式;(2)把各局部ER模式综合成一个全局ER模式(3)对全局ER模式进行优化,得到最终的ER模式,即概念模式。12/31/202215在设计局部ER图时,会导致各个分ER图之间存在许多不一致的地方,称之为“冲突”各ER图之间的冲突主

8、要有三类:属性冲突、命名冲突和结构冲突。(具体内容见书P220)12/31/2022163、逻辑结构设计阶段、逻辑结构设计阶段逻辑结构设计的任务逻辑结构设计的任务是将概念结构设计阶段是将概念结构设计阶段设计好的基本设计好的基本ER图转换图转换 为选用为选用DBMS产品产品所支持的数据模型相符合的逻辑结构。(对所支持的数据模型相符合的逻辑结构。(对于目前所采用的关系数据库系统而言,逻辑于目前所采用的关系数据库系统而言,逻辑结构设计阶段的任务是将结构设计阶段的任务是将ER图转换为关系图转换为关系模型)模型)12/31/202217设计逻辑结构时一般要分3步进行:(1)将概念结构设计转换为一般的关系

9、模型;(2)将转换来的关系模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。12/31/202218实体间1:1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码的集合是该关系的码。如果与某一端实体对应的关系模式合并,则需要在该关系模式属性中加入另一个关系模式的码和联系本身的属性。12/31/202219实体型向关系模式的转换Productnamecategoryprice关系模式为:关系模式为:Product(name,category,price)

10、所对应的表为:所对应的表为:Name Category Price gizmo gadgets$19.9912/31/202220部门部门管理管理经理经理11部门号部门名职工号姓名年龄住址12/31/202221部门(部门号,部门名,经理的职工号)12/31/202222实体间1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。12/31/202223Relationships to Relations makesCompanyProductnamecat

11、egoryStock pricenameMakes(Product-name,Product-Category,Company-name,Starting-year)Product-name Product-Category Company-name Starting-year gizmo gadgets gizmoWorks 1963Start Yearpricen112/31/202224部门部门工作工作职员职员1n部门号部门名职工号姓名年龄职务任职年月12/31/202225职员(职工号,部门号,姓名,年龄,职务,任职年月)12/31/202226一个m:n联系转换为一个关系模式,与该联

12、系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合12/31/202227学生学生选课选课课程课程mn学号姓名年龄课程号课程名成绩选课(选课(学号,课程号学号,课程号,成绩),成绩)12/31/202228职工职工参加参加项目项目mn职工号姓名职务项目号项目名天数职工工作(职工工作(职工号,项目号职工号,项目号,天数),天数)12/31/2022293个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元关系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。12/31/202230供应(项目号,供应商号,零件

13、号,供应量)供应供应商供应量项目零件nmp12/31/202231ER图向关系模型转换转换遵循如下原则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。实体型间联系的转换12/31/2022324、数据库物理设计阶段、数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)物理结构(包括存储结构和存取方法)12/31/2022335、数据库实施阶段、数据库实施阶段 运用运用DBMS提供的数据库语言(如提供的数据库语言(如SQL)及宿主语言,根据逻辑设计和物理设计的及宿主语言,根据逻辑设计和物

14、理设计的结果结果 建立数据库建立数据库 编制与调试应用程序编制与调试应用程序 组织数据入库组织数据入库 进行试运行进行试运行12/31/2022346、数据库运行和维护阶段、数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式数据库应用系统经过试运行后即可投入正式运行运行 在数据库系统运行过程中必须不断地对其进在数据库系统运行过程中必须不断地对其进行评价、调整与修改行评价、调整与修改12/31/20223512/31/202236第八章 关系查询处理和查询优化关系数据库系统查询处理的任务:把用户提交给RDBMS的查询语句转换为高效的执行计划。RDBMS查询处理一般分为4个阶段:查询分析

15、、查询检查、查询优化和查询执行。12/31/202237关系数据库系统的查询优化关系数据库查询优化的总目标是:选择有效的策略,求得给定关系表达式的值。12/31/202238查询优化的一般步骤1、将查询转换成某种内部表示,通常是语法树。2、根据一定的等价变换规则把语法树转换成标准(优化)形式。(即代数优化)12/31/2022393、选择低层的操作算法和存取路径。(物理优化)对于语法树中的每一个操作需要根据存取路径(有无索引)、数据的存储分布、存储数据的聚簇等信息来选择具体的执行算法。12/31/202240根据第(2)步得到的优化了的语法树计算关系表达式值的时候要充分考虑索引、数据的存储分布

16、等存取路径,利用它们进一步改善查询效率。优化器查找数据字典获得当前数据库状态信息选择字段上是否有索引连接的两个表是否有序连接字段上是否有索引然后根据一定的优化规则选择存取路径12/31/2022414、生成查询计划,选择代价最小的。查询计划是由一组内部过程组成的,这组内部过程实现按某条存取路径计算关系表达式的值。何为代价?何为代价?在集中式关系数据库中,计算代价时主要考虑磁盘读写的I/O次数,也有一些系统换考虑了CPU的处理时间。目前的商品化RDBMS采用基于代价的优化算法:这种方法要求优化器充分考虑系统中的各种参数(如缓冲区大小、表的大小、数据的分布、存取路径等)。集中式数据库:总代价集中式

17、数据库:总代价=I/O代价代价+CPU代价代价 (时间)(时间)多用户数据库:总代价多用户数据库:总代价=I/O代价代价+CPU代价代价+内存代价内存代价 (时间)(时间)12/31/202242在作连接运算时,若两个表(设为R1,R2)均无序,连接属性上也没有索引,则可以有下面几种查询计划:对两个表作排序预处理 对R1在连接属性上建索引 对R2在连接属性上建索引 在R1,R2的连接属性上均建索引对不同的查询计划计算代价,选择代价最小的一个。在计算代价时主要考虑磁盘读写的I/O数,内存CPU处理时间在粗略计算时可不考虑。12/31/202243查询优化的一般准则1、选择运算应尽可能先做。2、在

18、执行连接前对关系适当地预处理。分为两种:在连接属性上建立索引和对关系排序,然后执行连接。3、把投影运算和选择运算同时进行。4、把投影同其前或其后的双目运算结合起来。5、把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。6、找出公共子表达式。12/31/202244实例_查询优化的实例SELECT Student.Sname FROM Student,SC WHER Student.Sno=SC.Sno AND SC.Cno=2;系统可以用多种等价的关系代数表达式来完成这一查询:如 q1=sname(student.sno=o=2(studentsc)q2=sname(o=2(stu

19、dent sc)q3=sname(student o=2(sc)这三种不同的查询执行策略,其查询时间相差很大。可通过某种代价模型(如只计算I/O时间代价),粗略计算出各种查询执行方案的代价,选择代价最小的来实现查询。12/31/202245实例_查询优化的实例读取Student和SC表的策略Student表SC表100个SC元组内存缓冲区中间文件10个Student元组10个连接后的元组第一个五块第二个五块 共一千个学生记录 共一万个选课记录 第1100个元组第101200个元组 第110个元组第1120个元组第一块第二块第 n 块12/31/202246 Student表第1个五块的元组 S

20、C表第1块的元组 SC表第2块的元组 SC表第n块的元组 Student表第2个五块的元组 SC表第1块的元组 SC表第2块的元组 SC表第n块的元组 Student表最后五块的元组 SC表第1块的元组 SC表第2块的元组 SC表第n块的元组12/31/202247假设1:1000个学生记录,10000个选课记录,在内存中存放5块Student元组和一块SC元组,一块能装10个学生记录或100个选课记录。则读取总块数为:1000 1000 10000 10 105 100+10020100 2100 块读学生表块数读SC表遍数读SC表每遍块数12/31/202248假设2:每秒读写20块,内存处理时间忽略不计。则:(1)第一种查询执行策略总的执行时间 Tq1 1052 5 104 105秒 (2)第二种查询执行策略总的执行时间 Tq2 1055050 205秒 (3)第三种查询执行策略总的执行时间 Tq3 55 10秒 在适当的索引机制下总的存取时间还会进一步减少。12/31/202249

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁