资源预览内容
第1页 / 共122页
第2页 / 共122页
第3页 / 共122页
第4页 / 共122页
第5页 / 共122页
第6页 / 共122页
第7页 / 共122页
第8页 / 共122页
第9页 / 共122页
第10页 / 共122页
亲,该文档总共122页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章E-R图和关系数据库设计12.1实体-联系模型( E-R图)22.1.1基本概念 实体联系模型(ER模型)为数据库建模 提 供 了 3个 基 本 的 语 义 概 念 : 实 体(Entity)、联系(Relationship)、属性(Attributes)。 实体是指客观存在的、对于建立数据库有意义的、能够被清晰地辨识的事物或概念,实体用它的若干属性来描述的。【例】实体“学生”,具有属性“学号”、“姓名”、“性别”、“年龄”。3基本概念所谓属性是指事物的某一方面的特征,属性可以是基本属性或导出属性。例如,学生的学号是一个简单属性;学生的家庭地址是一个复合属性,它由简单属性“城市”、“街道”、“门牌号”等组成。属性可以是基本属性或导出属性。例如,一个人的生日是基本属性,年龄是导出属性,年龄可以根据生日和当前日期导出。属性值的取值范围称为值域(Domain),例如人的年龄值域为0250,图书馆的馆藏资料类型的值域为(书籍、杂志、会议录、内部资料)。4基本概念 ER模型中的联系是指实体类型之间的联系。例如,教师教学生,“教”就是实体类型“教师”和“学生”之间的联系。联系也可以有属性。例如,学生实体与课程实体之间的联系“选课”,可以有属性学号、课程号、成绩等。52.1.2ER图的组成在ER图(E-R Diagram)中,基本的图形元素有3个:实体集合框,联系集合框和属性框。实体集合框用矩形框表示,实体之间的联系用菱形框表示,属性用椭圆形框(或圆形框)表示。 6ER图示例7基数比约束基数比约束(Cardinality Ratio Constraint)是对参与联系的实体的一种约束。一个联系的基数(Cardinality)是指,对应于该联系的另一方的实体集的单个实体,本实体集的实体的数量。 ER模型支持的实体之间的一对一、一对多、多对多的联系。8基数比约束示例9参与约束参与约束是对实体参与度的约束。在一个给定的联系中的实体称为该联系的参与者。所谓实体参与度是指实体参与联系的最小和最大的次数。参与的次数可以用一个整数偶对(min , max)来表示,其中min和max分别是实体参与联系的最小和最大的次数。10ER图的联系类型(1)ER图中的联系类型有:递归联系、二元联系和多元联系。递归联系,即一个实体集合与其本身的联系。二元联系是指两个实体集合之间的联系。11ER图的联系类型(2)多元联系是指三个以上实体集合之间的联系。如何建立ER模型在建立ER模型中,首先确定实体集合,然后确定联系集合,最后给出实体和联系的属性。下面的一些启发性规则可以帮助确定实体:对于汇集和维护企业组织的数据有重要意义的、确定的、可以标识的对象可以指定为实体;每个实质性的确定的对象,如人员、位置、事物等可指定为实体;抽象概念如部门或通信干线等可指定为实体;在由唯一的术语标识的环境中的非实质性的概念,也可指定为实体,例如信用货款备忘录中的信用度,可作为一个实体。13ER图示例14民航航班管理数据模型首先选择实体集及相应的属性。为表示方便,约定如下符号:CHAR(n) 长度为n的字符串INT(n) n位数字的整数实体集和属性选择如下。实体集1 旅客PASSENGERS 属性:姓名NAME:CHAR(30) 住址ADDRESS:CHAR(30) 电话PHONE:INT(10) NAME和ADDRESS组成本实体集的关键字。15民航航班管理数据模型实体集2 航班FLIGHTS 属性:航班号NUMBER:INT(3) 出发地SOURCE:CHAR(3) 目的地DEST:CHAR(3) 开点DEP-TIME:INT(4) 到点ARR-TIME:INT(4) 为简化起见,假设是直达航班。本实体集可用NUMBER 作关键字,也可用SOURCE与DEP-TIME组成关键字。16民航航班管理数据模型实体集3 航次DEPARTURES 属性:日期DATE:INT(3) 本实体集的每一个实体是在某日起飞的航次。实体集4 机型PLANES 属性:制造厂MANUFACTURER:CHAR(10) 型号MODEL-NO:CHAR(10) 这两个属性组成实体集的关键字。实体集5 飞机AIRCRAFT属性:序号SERIAL-NO:INT(5) 17民航航班管理数据模型实体集6 职工PERSONNEL 属性:职工号EMP-NO:INT(6) 姓名NAME:CHAR(30) 住址ADDRESS:CHAR(30) 工资SALARY:INT(6) 职工号EMP-NO是本实体集的关键字。实体集7 飞行员PILOTS 实体集PILOTS 无属性。18民航航班管理数据模型实体集之间的联系集定义如下:(1)ISA(PILOTS,PERSONNEL) 用于指明具体的飞行员个人,它是一对一联系。(2)BOOKED-ON(PASSENGERS,DEPARTURES) 表示订票,它是多对多联系。( 3) INSTANCE-OF(DEPARTURES,FLIGHTS) 表示一次飞行航班,从DEPARTURES到FLIGHTS是多对一联系。19民航航班管理数据模型( 4) ASSIGNED-TO(PERSONNEL,DEPARTURES) 表示每个航次的空中乘务员,它是多对多联系。(5)CAN-FLY(PILOTS,PLANES) 表示能驾驶飞机的飞行员,是多对多联系。(6)TYPE(AIRCRAFT,PLANES) 从AIRCRAFT到PLANES是多对一联系,表示每架飞机的机型。2021实体间的依赖如果一个实体集合的存在与否是依赖于另一个实体集合的,那么称这两个实体集合之间存在依赖关系。【例】家属和职工、病房和医院前者称为依赖实体集合,又叫作弱实体集合可用双矩形框表示弱实体集合(或用带圆角的矩形框表示)。后者叫作主实体集合或强实体集合,用单个矩形框表示。主实体集合与它的弱实体集合之间的联系称为弱联系集合或依赖联系。在表示联系的菱形框内加上字符E,可表示弱联系集合(或用双菱形框表示)。用一个指向弱实体集合框的箭头表示依赖联系。22【例】实体间的依赖232.2实体-联系模型转换为关系模型把一个E-R模型转化为关系模型,可遵守下列规则:24转换规则1规则1:每一个实体集转换为一个关系。实体集中的实体的属性成为该关系的属性。实体的标识符成为该关系的关键字。每个实体由该关系的一个元组表示。例如实体集product转换成关系PRODUCT(product-number, product-name, cost-price)。25转换规则2规则2:每一个联系集转换成一个关系,该联系集自身所拥有的属性,加入到该关系中去,而该关系的主关键字由该联系集所联系的实体集的关键字组成。例如联系集Warehouse-product-order转换成关系WAREHOUSE-PRODUCT-ORDER(warehouse-no,product-no,order-no,quantity-order)26转换规则3规则3:如果一个联系集的两侧标明的基数比是1N(一对多联系),且联系无自身的属性,则在1侧的实体集的关键字应加入到另一侧的实体转换成的关系中,联系集本身可不必单独转换成关系。例如下图实体集CUSTOMER的关键字应加入到对应于实体集ORDER的关系中去。经过转换后可得关系模式为:CUSTOMER (cus-no, cus-name) ORDER(order-no, order-date, cus-no)其中,对于关系ORDER,属性cus-no是外来关键字。27转换规则311的联系也可以类似处理。如果1n的n一方的实体是部分参与联系,为了避免在转换后的关系中的外来关键字出现空值(NULL),可以分别把实体集和联系集按照规则1、2转换成关系。28【转换示例】【例】一个简单的足球队数据模型。实体集选择如下:(1)球员PLAYERS属性:姓名NAME籍贯BPLACE生日BDATENAME为关键字。(2)位置POSITIONS属性:名称POSNAME人数POSNUMBERPOSNAME或POSNUMBER均可作关键字,一般用POSNAME。29【转换示例】(3)球队TEAMS 属性:球队名TEAM-NAME 城市CITY 年YEAR TEAM-NAME和YEAR组成关键字。上述实体集之间的联系集有:(1)打球PLAYS(PLAYERS,POSITIONS) 从PLAYERS到POSITIONS是多对多联系。(2)参赛SEASON(PLAYERS,TEAMS) 从PLAYERS到TEAM是多对一联系。它有一个属性BA,表示比赛场次。30【转换示例】由上述实体集和联系集构成的ER图如图所示,它所转换成的关系模型具有如下5个关系:PLAYERS (NAME,BPLACE,BDATE) TEAMS (TEAM-NAME,CITY,YEAR) POSITIONS (POSNAME,POSNUMBER) PLAYS (NAME,POSNAME) SEASON (NAME,TEAM-NAME,YEAR,BA)31322.3关系数据库设计理论基础33概述关系数据库设计的核心是关系模式的设计,即按照一定的原则,从数量众多而又相互关联的数据中,构造出一组既能较好地反映现实世界、又具有良好性能的关系模式。34关系范例的描述SCT (S,C,CN,GRADE,TNAME,BDATE,SALARY).其中的属性依次代表学号、课程号、课程名、成绩、任课教师姓名、教师出生日期和工资。规定:每个学生选修每门课只有一个成绩;每门课只有唯一的课程号,并且由一个教师担任。35【示例】问题SCT(学号,课程号,课程名,成绩,任课教师姓名,教师出生日期和工资)通过分析不难发现SCT存在如下问题。1数据冗余度问题(如教师姓名)2修改问题(如修改教师工资)3插入问题(如未开课的教师信息)4删除问题(如教师调离学校)36【示例】改进如果把SCT分为如下三关系模式:选课关系:SC(学号,课程号,成绩)课程关系:C(课程号,课程名,教师姓名)教师关系:T(教师姓名,教师出生日期,工资)则上述问题便都得到解决。37函数依赖(1)设R(U)是属性集U上的一个关系模式,X和Y均为UA1,A2,An的子集,r为R的任一个关系。如果对于r中的任意两个元组u、v,只要有uXvX ,就有uYvY,则称X 函数决定Y或称Y函数依赖于X,记为X Y。其中X 称为决定因素(Determinant)。即对于关系模式R中的属性子集X的每一个值,任何时候都只有一个确定的Y值与之对应。38函数依赖示意图但是S#和C#、S#和TNAME间不存在函数依赖关系。39函数依赖(2)在R(U)中,如果XY,并且对于X的任何真子集X 都有X Y,则称Y完全函数依赖于X,记作(简记为XY )。【例】C# CN如果XY,且X中存在一个真子集X ,使得X Y成立,则称Y部分函数依赖于X,记作。【例】(S#,C#) CN40根据联系确定函数依赖关系如果X和Y之间的联系是1:1的,则存在函数依赖XY和YX。【如】C#和CN如果X和Y之间的联系是n:1的,则它们之间只存在函数依赖XY。 【如】 C#TNAME如果X和Y之间的联系是m:n的,则它们之间不存在函数依赖。【如】 C#和S#41关键字设R(U)为一关系模式,F为R的函数依赖集,X为属性集U的子集,如果满足:(1)XUF+;(2)不存在Y X,使得YUF+;则称X是R的关键字。分析条件(1)要求关键字能唯一地标识元组。条件(2)保证关键字是最小的集合,不存在多余的属性。42关键字分类候选关键字:任何一个能函数决定全部属性的最小属性集。主关键字:在候选关键字中选定一个作为关键字,称为该关系的主关键字。关系中主关键字是唯一的。外部关键字:关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,称此属性或属性组合为本关系的外部关键字。关系之间的联系是通过外部关键字实现的。主属性:包含在任一关键字中的属性。43关系模式的规范化第一范式(1NF)第二范式(2NF)第三范式(3NF)BCNF441、第一范式(1NF)如果关系模式R的所有的域为简单域,其元素不可再分,则称R为第一范式的关系,简记为R1NF。1NF的关系模式要求属性不能再分,即属性项不能是属性组。下列两个关系模式均不是第一范式:部门(部门号,名称,经理(正经理,副经理) 雇员(雇员号,姓名,工资(基本工资,补贴,奖金) 可以转化为如下1NF的关系:部门(部门号,名称,正经理,副经理)。雇员(雇员号,姓名,基本工资,补贴,奖金)。452、第二范式(2NF)如果R1NF,且每个非主属性完全函数依赖于关键字,则关系模式R属于第二范式,简记为R2NF。【例】SCT (S,C,CN,GRADE,TNAME,BDATE,SALARY). 它满足第一范式,但是存在非主属性对关键字的部分函数依赖。如:CTNAME可以把SCT分解为如下两个关系模式:SC( S,C,GRADE) CT( C,CN, TNAME,BDATE,SALARY)在CT中,CTNAME, TNAME SALARY, 存在SALARY对C的传递函数依赖。【问题】不能增加没开课的教师信息。463、第三范式(3NF)如果R2NF,且每个非主属性都不传递函数依赖于关键字,则称关系模式R为第三范式,简记为R3NF。SC是第三范式的,CT不是第三范式的,可以把CT进一步分解为如下两个关系模式:C( C,CN,TNAME) T( TNAME ,BDATE,SALARY)473NF问题示例关系模式R(S#,C#,CN,GRADE)中,(S#,C#)和(S#, CN)都可以作为关键字,S#、C#、CN都是主属性,非主属性GRADE没有部分和传递函数依赖,所以R3NF。【问题】当一门课被多个学生选修时,CN的数据冗余问题严重。【原因】主属性C# CN,存在部分函数依赖。【解决方案】 R(S#,C#,GRADE)484、BCNF若关系模式R1NF,且函数依赖集中每一个形式为XA的非平凡函数依赖的决定因素都含有关键字,则称R是Boyde/Codd范式的,简记为RBCNF。可以得出关于BCNF关系模式的以下结论:(1)非主属性对关键字完全函数依赖;(2)主属性对不包含它的关键字完全函数依赖;(3)没有属性完全函数依赖于一组非主属性。一个BCNF范式必定是3NF的。49四种范式间的关系四种范式之间存在如下的关系:BCNF3NF2NF1NF 即:1NF 消除非主属性对关键字的部分函数依赖2NF 消除非主属性对关键字的传递函数依赖3NF 消除主属性对关键字的部分和传递函数依赖BCNF50【注意】在实际应用中最有价值的是3NF和BCNF,一般分解到3NF已经足够,但用来表示一个实体集或一个1:n联系的关系一般已经是BCNF。在应用规范化理论时,千万不要盲目追求高范式,因为并非规范化程度越高的关系模式越好。512.4关系数据库设计52数据库设计的含义数据库设计一般不是指DBMS的设计,而是指在现有DBMS上建立数据库的过程。数据库应用系统的设计包含两方面的内容:结构特性的设计,也就是数据库模型或数据结构的设计。(重点)行为特性的设计,即应用程序、事务处理的设计。53数据库设计的目标1满足用户的应用要求,即能够正确地反映用户的现实环境。2准确模拟现实世界,即准确地反映现实世界的信息类别与信息之间的联系。3能被某个DBMS所接受。4具有良好的性能、较高的质量。p存取效率:每个逻辑存取所需的平均物理存取次数的倒数。p存储效率:存储每个未加工的数据所需要的实际存储空间的平均字节数的倒数。p其他性能,如便于维护与扩充,有较好的安全性与完整性,系统出现故障时容易恢复等。 54数据库设计的一般过程数据库生命周期一般包含数据库系统的规划、设计、实现、运行管理和维护、扩充和重构等大的阶段。数据库设计过程大致分为以下四个阶段。1需求分析2概念模型设计3逻辑设计4物理设计552.4.1数据需求分析56主要任务是通过对现行的手工系统或已有的计算机系统进行调查和分析,以确定企业对即将建立的数据库应用系统的信息要求和处理要求。系统调查系统分析系统分析文档57系统调查系统调查:目的是了解企业的业务状况、信息流程、经营方式、处理要求以及组织机构等。可以包括以下几个方面:(1)组织机构调查。(2)业务流程调查。(3)各部门对系统的信息要求和处理要求。(4)企业的限制和目标。58系统分析对调查所获得的原始资料必须进行综合的分析,权衡各方面的利弊,确定数据库结构设计和程序设计的策略和方案。(1)业务流程分析。(2)信息收集和分析。(3)处理要求分析。(4)其他各种限制和要求分析。59系统分析文档系统分析的结果形成系统分析报告,其主要内容包括系统目标、需求定义、功能说明、系统结构、计算机处理的边界与流程、工作量与预算经费等。其中,与数据库设计关系最大的文档有业务流程图、数据流图、数据词典等。60一、数据流图61数据流图 数 据 流 图 ( Data Flow Diagram,简称DFD)是描述系统的重要工具,它力图从数据传递和处理的角度,以图形的方式表示数据处理系统的工作状况。 数据流图的组成数据流图通常由如图所示的4种基本符号组成。数据加工数据加工(P)外部项外部项(S S)数据流数据流(F)数据存储数据存储(D)数据流图的组成数据流。数据流即流动中的数据,代表信息流过的通道。数据加工。数据加工是对进入的数据流进行特定加工的过程,数据流被处理后将产生新的数据流。数据存储。代表一种数据的暂存场所,可对其进行存取操作。外部项。外部项用以说明数据的来源和归宿,即表示数据的源点和终点。64示例下图是一个简单的DFD。它表示数据流“付款单”从外部项“客户”(源点)流出,经加工“帐务处理”转换成数据流“明细帐”,再经加工“打印帐簿”转换成数据流“帐簿”,最后流向外部项“会计”(终点),加工“打印帐簿”在进行转换时,从数据存储“总帐”中读取数据。F3F3帐簿帐簿F2F2明细帐明细帐F1F1付款单付款单D D总帐总帐打印帐簿打印帐簿P2P2帐务处理帐务处理P1P1S1S1客客户户S2S2会会计计65说明两个符号(加工、外部项、数据存储)之间可以有多个数据流存在。加工的符号分成标识部分和功能描述部分。标识部分用于标注加工编号,应具有唯一性;功能描述部分用来简要写出加工名。加工要逐层分解,以求得分解后的加工功能简单、易于理解。66数据流图的绘制步骤(1)(1)确定所开发的系统的外部项(外部实体),即系统的数据来源和去处。(2)确定整个系统的输出数据流和输入数据流,把系统作为一个加工环节,画出关联图。(3)确定系统的主要信息处理功能,按此将整个系统分解成几个加工环节(子系统)确定每个加工的输出与输入数据流以及与这些加工有关的数据存储。 (4)根据自顶向下,逐层分解的原则,对上层图中全部或部分加工环节进行分解,分为若干子图,下层是上层的进一步说明。67数据流图的绘制步骤(2)(5)重复步骤(4),直到逐层分解结束。(6)对图进行检查和合理布局,主要检查分解是否恰当、彻底,DFD中各层是否有遗漏、重复、冲突之处,各层DFD及同层DFD之间关系是否争取及命名、编号是否确切、合理等,对错误与不当之处进行修改。(7)和用户进行交流,在用户完全理解数据图的内容的基础上征求用户的意见。 68数据流图的绘制步骤(3)a a关联图关联图.3.2图0BQRLSMABCABCDEFG12356图2.131NMPBL图2b b顶层图顶层图d d三层图三层图c c二层图二层图绘制数据流图过程示意图绘制数据流图过程示意图69银行取款数据流图(1)(1)储户将填好的取款单、存折交银行,银行做如下处理:审核并查对帐目,将不合格的存折、取款单退回储户,合格的存折、取款单送取款处理。处理取款修改帐目,将存折、利息单、结算清单及现金交储户,同时将取款单存档。70银行取款数据流图(2)画出银行取款处理数据流图。第一步,画出关联数据流图。F2F2存存折折、利利率率单单、结结算算清单清单、现金、现金F1F1取取款款单单、存折存折取款系统取款系统P PS S储户储户S S储户储户 取款处理关联图取款处理关联图71银行取款数据流图(3)第二步,逐层分解加工,画出下层DFD。 取款处理顶层图取款处理顶层图F1取取 款款 单单 、存折存折F1.2不不 合合 格格存存折折、取取款款单单F2存存 折折 、利利率率单单、结结算算清清单单、现现金金D1帐目库帐目库F1.1合合 格格 存存折、取款单折、取款单取款审核取款审核P1S储储户户S储储户户D2取款记录取款记录取款处理取款处理P272【说明】数据流图只能描述系统的概貌,无法表达出每个数据和处理的具体含义,这就需要用数据字典来弥补缺点。73二、数据字典74数据字典数据字典(DataDictionary,DD)用于定义数据流图中出现的所有数据元素和处理,即给出其确切的内涵解释。这些元素是:数据项、数据结构、数据流、数据存储、处理逻辑和外部实体。75采用的符号=表示定义为。例如,学生情况学号+姓名+成绩+地址;+表示“与”:|表示“或”。如,性别男|女;()表示整体,与数学中用法相同;m.n表示值域。如,星期几=1.7,月份=1.12;76采用的符号表示重复若干次。例如,通讯录文件:姓名+电话+邮码表示可选。例如,存款单=储户帐号+存款额+日期+密码,表示存款时可以/不带密码。【建议】数据流编号用字母”DF”打头,数据结构用”DS”打头,数据元素用“D”打头,文件”F”打头,加工”P”打头,外部项”E”打头。771、数据项数据项又称数据元素,是系统处理的基本数据单元。在数据字典中,数据项条目包括数据项编号(唯一)、名称、别名、意义、类型、长度、值域、备注等属性。78【例】数据项n 数据项编号:D02 01 n 数据项名称:材料编号 n 别 名:材料代号 n 简 述: 某种材料的代码 n 类型及宽度:字符型,4位 n 取 值 范 围: 0001-9999 792、数据结构数据结构描述数据项间的关系,可由若干数据项、数据结构或数据项+数据结构混合组成。数据字典中,数据结构条目包括数据结构的名称、编号、简单描述及其组成等。80【例】数据结构数据结构编号:DS03-01 数据结构名称:用户订货单 简 述:用户填的用户情况 及订货信息 数据结构组成:DS03-02+DS03-03 + DS03-04813、数据流数据流描述数据项或数据结构在系统中的传输路径。数据流条目包括数据流来源、去向、组成和流量等属性。82【例】数据流 数据流的编号:DF03 08 数据流的名称:领料单 简 述:车间开出的领料单 数据流的来源:车间 数据流的去向:发料处理模块 数据流的组成:材料编号+材料名称+ 需用 数量+日期+领用单位 数 据 流 量: 10份/每小时 高 峰 流 量: 20份/小时 (上午 9:0011:00 )834、数据存储数据存储指数据暂存或永久保存的地方。数据存储条目包括:名称、编号、流入/流出的数据流、组成、存取分析和关键字说明等。84【例】数据存储 数据存储编号:F03-08 数据存储名称:库存账 简 述:存放配件的库存量和单价 数据存储组成:配件编号 +配件名称 +单价 +库存量 +备注 关 键 字:配件编号 相关联的处理:P02,P03855、处理逻辑处理逻辑条目是对数据流程图中最底层的处理逻辑加以说明。处理逻辑条目包括:在数据流程图中的名称、编号、对处理过程的简单描述、处理过程的输入/输出、数据流及其来源和去向、主要功能的描述等。86【例】处理逻辑 处理逻辑编号:P02 03处理逻辑名称: 检查库存情况简 述:根据合格订单零件号检查 零件库存,决定是否供货输入的数据流:合格订单处 理:若库存量=订货量, 则供货,否则不供货 输出的数据流:缺货通知单,供货单 876、外部实体外部实体是系统环境中的源点和终点。数据字典中,外部实体条目的内容包括编号、名称、输出数据流、输入数据流、备注。88【例】外部实体 外部实体编号: E03 01 外部实体名称: 用户 简 述: 购置本单位配件的用户 输入的数据流: F03-06,F03-08 输出的数据流: F03-01 89说明数据字典(DD)可以是手工的,也可以是自动化的。手工DD是把字典条目逐一填写到卡片或表格中,再把它们按一定顺序排好、装订成册以便查阅。(适合小型系统)也可以编写电子DD。用计算机对字典实施管理。(适合大、中型系统)902.4.2概念结构设计91概念结构设计数据库的概念模型是独立于任何计算机系统的信息结构模型,它是现实世界的“纯粹”表示。按照从简单到复杂的原则,使用E-R方法设计概念模型一般要经过三个步骤,即设计用户分E-R图,合并用户分E-R图构成总体E-R图,以及对总体E-R图进行优化。92一、分E-R图的设计分E-R图即用户局部视图。(1)划分用户组首先应将数据要求和处理要求接近的用户分在一组;其次应考虑用户组的规模(一般局部视图内的实体数不超过9个)。(2)确定实体及其属性实体和属性之间并不存在一个形式上可以截然划分的界限。【例】学生-系93分E-R图的设计在给定的应用环境中,可以遵循以下基本准则来划分实体和属性。属性与它所描述的实体之间只能是单值联系,即联系只能是一对多的。【例】一个学生参加社会团体属性不能再有需要进一步描述的性质。【例】学生和系作为属性的数据项,除了它所描述的实体之外,不能再与其他实体具有联系。【例】社会团体的指导教师符合这三条准则的数据项,一般把它作为属性。94分E-R图的设计(3)确定实体之间的联系及其属性在标定实体和属性的同时,要通过分析确定实体之间的联系以及联系的属性,并根据语义确定联系的类型。【例】系-教师:1:n;学生-课程:m:n 联系“选课”的属性:成绩95分E-R图的设计(4)设计分E-R图在确定了实体、联系和属性之后,各分E-R图的设计就水到渠成了。【例】学校教学管理师资:涉及系、教师、课程、课题等教务:系、学生、课程、教师等文体:学生、指导教师、课外团体、特长等96【例】师资部门分E-R图97【例】教务部门分E-R图98【例】文体部门分E-R图99二、总体E-R图的设计总体E-R图即全局视图,它的设计就是分E-R图的综合,即所谓视图的集成。视图集成的具体做法是:选出最大的一个分E-R图作为基础,将其他分E-R图逐一合并上去。100总体E-R图的设计在合并的过程中必须注意以下工作。(1)消除命名冲突(2)综合同一实体的所有属性(3)保留两实体之间的不同联系【例如】工厂管理数据库中:职工-设备对生产部门来讲,联系为:使用对设备管理部门来讲,联系为:保养这两个联系均应保留。【说明】为了使总体E-R图简洁,可以不给出属性。101【例】综合的教学管理数据库总体E-R图102三、总体E-R图的优化设法消去冗余。所谓优化主要就是指冗余信息的消除,使其保持最小冗余度。冗余的数据可用分析的方法加以消除。冗余的联系还可用规范化理论来消除,方法是:(1)用函数依赖表达式表达E-R图中的每一个联系。(2)求函数依赖表达式的最小覆盖。(3)逐一检查不在最小覆盖中的函数依赖表达式,确认是否为冗余,若是则其对应的联系为冗余的联系,应当消去。103总体E-R图的优化例如,对于学生、课程、教师这三个实体的两两之间的联系。“教学”联系是冗余的,因为某一教师教过哪些学生或某一学生听过哪些教师的课,完全可以通过学生所学过的课程间接求得。1042.4.3逻辑结构设计105逻辑结构设计关系数据模型是通过关系来反映客观世界的。关系数据库的逻辑设计的任务,就是采取一定的策略,按照若干准则将概念模型转换为关系数据库管理系统所能接受的一组关系模式,并利用规范化的理论和方法对这组关系模式进行处理。106E-R图转换为关系模式(1)(1)根据规则1,对E-R图中的每一个实体分别建立一个关系模式。系(系号,系名,系主任)教师(教师号,教师名,年龄,职称)学生(学号,姓名,性别,年龄,籍贯)课程(课程号,课程名,学分)课题(课题号,课题名,负责人,完成日期,经费) 团体(编号,名称,负责人,活动地点) 特长(编号,名称,特点)107E-R图转换为关系模式(2)(2)根据规则3:学生(学号,姓名,性别,年龄,籍贯,系号,入学日期) 教师(教师号,姓名,年龄,职称,系号,入系日期) 团体(编号,名称,负责人,活动地点,教师号) 课程(课程号,课程名,学时,学分,先修课)108E-R图转换为关系模式(3)(3)根据规则2,对于实体之间的m:n联系,必须为它单独建立一个关系模式:选课(学号,课程号,成绩)同样,应对任课、参加、爱好、研究等m:n联系各建立一个关系模式:任课(课程号,教师号,班级,学生数)参加(学号,编号,参加日期) 爱好(学号,编号,程度) 研究(教师号,课程号,任务)109转换后的关系系(系号,系名,系主任) 学生(学号,姓名,性别,年龄,籍贯,系号,入学日期) 教师(教师号,姓名,年龄,职称,系号,入系日期) 课程(课程号,课程名,学分,先修课) 课题(课题号,课题名,负责人,完成日期,经费) 团体(编号,名称,负责人,活动地点,教师号) 特长(编号,名称,特点) 选课(编号,课程号,成绩) 任课(课程号,教师号,班级,学生数)参加(学号,编号,参加日期) 爱好(学号,编号,程度) 研究(教师号,课程号,任务)110关系的规范化按照函数依赖的理论,逐一分析所构造的关系模式,检查是否存在部分函数依赖、传递函数依赖等,确定它们分别属于第几范式,根据应用要求进行调整。1112.4.4物理结构设计112物理结构设计数据库的物理结构设计是指对一个给定的逻辑数据结构选取一个最适合应用环境的物理结构的过程,使其既能满足性能准则,同时又不违反结构准则。所谓数据库的物理结构主要是指数据库在物理上的存储结构和存取方法。113影响物理结构的主要因素数据的特性:主要指数据的结构、关系之间的联系、数据的检索频度、更新和增长率等。【建立索引】数据的使用特性:包括各个用户视图、应用的频度、使用数据的方法、重要程度等。【保证重点用户】可用性要求:适应用户要求,维护数据库逻辑、物理上的完整性的能力。DBMS的特性资源的限制114物理结构设计的主要内容关系数据库的物理结构设计主要解决以下问题。(1)确定存储分配许多关系DBMS提供了一些存储分配的参数供设计者选择,如页面的大小和数量,缓冲区的大小和数量,溢出空间的大小等。这些参数的确定可能会影响到存取效率和空间的利用率。数据库设计者可以估算数据库需要的存储空间的大小和增长率,确定这些物理存储参数,并为未来的数据库扩展留有余地。115物理结构设计的主要内容(2)选择索引【有利有弊】利:加快检索弊:建立和维护更新代价什么关系应该建立索引?一般来说,对经常需要检索、连接、统计操作而且记录较多的关系应该建立索引;对经常执行插入、删除、修改操作或记录较少的,尽量避免建立索引。【折中办法】可先删除、再重新建立索引,如学生关系116物理结构设计的主要内容选择哪个或哪些属性作为索引关键字?一般选择经常用来检索记录的属性或需用作连接关键字的属性对关系建立索引。当需要分别在多个属性上进行检索时,应该分别对这些属性建立多个索引或建立多属性索引。117物理结构设计的主要内容(3)数据的簇集为了改善性能,提高处理效率,经常要求一些数据在物理介质中聚集地存放在一起,称为数据的簇集(Clustering)。【例如】查询年龄为20岁的学生可以按照某一个簇集关键字集中存放元组,具有相同簇集关键字值得元组放在同一个物理块中,若放不下则链接多个物理块。118物理结构设计的主要内容(4)数据安全性与完整性约束参数的确定安全性:用户标识和口令、授权、访问控制等完整性:设置值或结构的约束有些系统可能还要考虑为数据库的恢复而提供转储、日志方面的信息,为多用户使用数据库而设计并发控制等。1192.4.5数据库设计评价 数据库设计是一个设计和评价的迭代过程,物理设计完成之后,必须对设计方案进行评价。120数据库设计评价准则1功能评价根据系统分析说明书,检查设计方案是否支持用户的所有信息要求和处理要求。2性能评价一个较好的方案应该具有较好的时空效率。(1)查询响应时间(2)更新事务的开销(3)报表生成的开销(4)数据库重组的开销(5)内存空间(6)外存空间121本章结束谢 谢!122
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号