[理学]2关系数据库第二章.ppt_第1页
[理学]2关系数据库第二章.ppt_第2页
[理学]2关系数据库第二章.ppt_第3页
[理学]2关系数据库第二章.ppt_第4页
[理学]2关系数据库第二章.ppt_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

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

文档简介

,南京工业大学测绘学院 Tel: 02583587712,The Principles and Applicatios of DataBase,数据库原理及应用,董有福 ,第二章 关系数据库,2.1 相关基本概念 2.2 关系数据语言 2.3 关系数据库设计 2.4 关系模式规范化,E.F.Codd,1970年提出关系模型理论 大型共享数据库数据的关系模型 单一的数据结构 扁平的二维表 以关系的形式来描述现实世界 实体(学生、课程) 实体间联系(学生选课表),2.1 基本概念简介,关系模型(Relational Model),关系名(二维表格):资源所99硕名单,2.1 基本概念简介,域(Domain):是值的集合 (值域) 在关系中用域来表示属性的取值范围 域中所包含的值的个数称域的基数(用m表示) 例: D1=李平,张红,王钢 M1=3 D2=男,女 M2=2 D3=17,18,19 M3=3,2.1 基本概念术语,关系的数学定义 关系头(模式,型) 是关系的数据结构的描述(关系框架) 关系头相对固定 关系体(实例,值) 是指关系结构中的内容(数据值) 关系体随时间变化(随数据更新而变化),2.1 基本概念术语,关系结构的描述称为关系模式(Relation Schema) 关系模式的表示方法:R(A1,A2,An) 其中:R 为关系名; A1,A2,An 为属性名 关系模式就是关系的框架(表框架) 它是对关系结构的描述 例:学生(学号,姓名,年龄,性别,部门),2.1 基本概念术语,关系模式,数据库模式(Schema) 是整个数据库中关系模式的集合 是数据库结构的逻辑设计(型) 数据库实例 给定时刻数据库中数据的一个快照:内容或状态(值) 关系数据库(所有的关系构成),2.1 基本概念术语,数据库,文件1,文件2,文件n,文件n-1,记录1,记录2,记录n-1,记录n,数据项1,数据项2,数据项n-1,数据项n,.,.,.,姓名、性别等,若干学生(记录),学生文件(关系),学生数据库,数据组织的层次,数据项 个体的某个特征 不能再分成有意义的单位。,记录 与某个特殊对象或活动有关的所有数据项组成,文件 与某个特定主题相关的数据记录的集合。,数据库(Database) 综合的、相关的数据文件文件集合 数据库中包括了数据,它们之间的联系,视图:是从一个或几个基本关系(表)中导出来的表 举例:学生成绩视图grade_view(学号,姓名,课名,成绩),2.1 基本概念术语,2.1 基本概念术语:关系键,码:在给定关系中,具有唯一标识元组的一个或一组属性 候选码:关系中具有码特性的属性或属性组有多个 主码(主键) :从候选码中选择一个作为关系的主码 每个关系都必定有且只有一个主码 对于一个关系,主码一经选定,通常是不能随意改变 主属性(包含在主码中的属性)&非主属性,2.1 基本概念术语:关系键,外部码: 如果关系R2的一个或一组属性不是R2的主码,而是另一关系R1的主码,则该属性或属性组成为关系R2的外部码。,2.1 基本概念关系的基本性质,列是同质的(为同类型数据且来自同一个域),不同的属性要给予不同的属性名,列的顺序无所谓,可以任意交换,任意两个元组不能完全相同,行的顺序无所谓,可以任意交换,每一个分量必须是不可分的数据项,满足该条件的关系称为规范化关系!,2.1 基本概念关系的基本性质,不能出现表中有表、列中有列的情况。,2.1 基本概念关系模型:组成,关系模型三要素 关系数据结构 实体和实体间联系均由单一的结构类型即关系来表示 关系操作 集合操作方式&高度非过程化(关系数据语言) 关系的完整性 实体完整性、参照完整性和用户定义的完整性,实体完整性 在关系中,要求主码的值不能为空值或部分为空值的约束条件称为实体的完整性。(空值是“不知道”或“无意义”的值) 若属性A是基本关系R的主属性,则属性A不能取空值 例如: 选修(学号,课程号,成绩) 人(身份证号,姓名,家庭住址,出生日期,.) 实体应该是可区分的,主码是区分实体的唯一性标识, 因此不能为空(即不能不知道)。,2.1 基本概念关系模型:完整性,参照完整性 如果关系R2的外部码X与关系R1的主码相符,那么外部码X的每个值必须在关系R1中主码的值中能找到,或者取空值参照完整性 举例: S(sno,name,age,sex,deptno), D(deptno,deptname) S(sno,name,age), C(cno,cname), SC(sno,cno,grade) 注意: -外码或者取空值,或者取参照关系中的主码值; -外部码与主码的对应提供了一种实现两个关系联系的方法。,2.1 基本概念关系模型:完整性,参照完整性 外码是否可以可以接受空值的问题? 依赖于具体应用环境。 例1:职工部门数据库包含职工表EMP和部门表DEPT 1、 DEPT关系的主码为部门号Deptno(主键) 2 、 EMP关系的主码为职工号Empno, 外码为部门号Deptno(外键) 称DEPT为被参照关系或目标关系,EMP为参照关系; 某元组的这一列若为空值,表示这个职工尚未分配到任何具体的部门工作和应用环境的语义是相符,2.1 基本概念关系模型:完整性,参照完整性 外码是否可以可以接受空值的问题? 依赖于具体应用环境。 例2:学生选课数据库 Student关系为被参照关系,其主码为Sno。 SC为参照关系,外码为Sno。 若SC的Sno为空值:表明尚不存在的某个学生,或者某个不知学号的学生,选修了某门课程,其成绩记录在Grade中与学校的应用环境是不相符的,因此SC的Sno列不能取空值。,2.1 基本概念关系模型:完整性,用户定义完整性 针对某个具体数据库的约束条件,由应用环境决定, 它反映某一具体应用所涉及的数据必须满足的语义要求。 例如:某个属性必须取唯一值,某些属性值之间应满足一定的函数关系,某个属性的取值范围等等; 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们而不要由应用程序来承担这一功能。,2.1 基本概念关系模型:完整性,关系模型优点 提供单一数据结构形式,具有高度简明性和精确性; 关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性; 关系模型数据库研究建立在比较坚实的数学基础上;关系运算的完备性和设计规范化理论为数据库技术的成熟奠定了基础。,2.1 基本概念关系模型的优点,数据库操纵语言包括查询和增、删、改功能, 查询是数据库语言中最主要的部分。 关系的数据操作语言按照表达查询的方式分为两大类: 关系代数:用对关系的运算来表达查询要求的方式 关系演算:用谓词来表达查询要求的方式 它们均是抽象的查询语言; 它们是设计各种高级关系数据语言的基础和指导思想; 它们能用来评估实际系统中查询语言能力的标准和基础。,2.2 关系数据语言概述,2.2 关系数据语言关系代数,关系代数包含两类运算: 传统集合运算,如并、交、差、广义笛卡儿积,这类运算将关系看成元组的集合,其运算是从关系的“水平”方向即行的角度来进行的。 专门关系运算,如选择、投影、连接、除,这类运算不仅涉及行,而且涉及列。 关系运算的运算对象是关系,结果也是关系,2.2 关系数据语言关系代数:集合运算,集合运算:并Union () R和S的并,RS,是在R或S或两者中的元素的集合 一个元素在并集中只出现一次; R和S必须同类型(属性集相同、次序相同,但属性名可以不同)。,RS,R,S,2.2 关系数据语言关系代数:集合运算,集合运算:并Union (),集合运算:交Intersect () R和S的交,RS,是在R和S中都存在的元素的集合 相同元素在交集中只能够出现一次 R和S必须同类型(属性集相同、次序相同,但属性名可以不同),2.2 关系数据语言关系代数:集合运算,2.2 关系数据语言关系代数:集合运算,集合运算:交Intersect (),集合运算:差Minus (-) R和S的差,R-S,是在R中而不在S中的元素的集合 R和S必须同类型(属性集相同、次序相同,但属性名可以不同),R,S,2.2 关系数据语言关系代数:集合运算,2.2 关系数据语言关系代数:集合运算,集合运算:差Minus (-),集合运算:笛卡儿积(),2.2 关系数据语言关系代数:集合运算,关系R、S的笛卡儿积是两个关系的元组对的集合所组成的新关系 RS:,属性是R和S的组合(有重复) 元组是R和S所有元组的可能组合 是R、S的无条件连接,使任意两个关系的信息能组合在一起,2.2 关系数据语言关系代数:集合运算,集合运算:笛卡儿积(),并运算实现数据记录的添加和插入 差运算实现数据记录的删除 记录的修改则是通过先删除,后插入这两步完成的,2.2 关系数据语言关系代数:集合运算,集合运算:总结,二目元算,其中R和S要求是同类关系(结构相同) 实现关系数据库的许多基本操作,关系运算:选择() 概念:是从指定的关系R中,按给定的条件选取其中的若干个元组,组成一个新的关系运算。记作:F(R) F(R),表示从R中选择满足条件F布尔函数为真的元组, F为逻辑表达式,可由运算对象(属性名、常数、简单函数)算术比较符合逻辑运算符连接起来的表达式组成 行的运算(是从关系的水平方向的角度进行运算),2.2 关系数据语言关系代数:关系运算,关系运算:选择(),例: ssex = 男 AND sdept = IS(Student),2.2 关系数据语言关系代数:关系运算,关系运算:投影() 概念:是从指定的关系R中,根据从左到右的次序,按照指定的若干属性及它们的顺序取出各列, 删去结果中重复元组,组成一个关系。记作:X(R) X为选取的属性集合,A1,A2,An(R),表示从R中选择属性集A1,A2,An组成新的关系 投影运算的结果中,也要去除可能的重复元组 列的运算(是从关系的垂直方向上取子集),2.2 关系数据语言关系代数:关系运算,关系运算:投影(),例: ssex,sage(student),2.2 关系数据语言关系代数:关系运算,选取和投影的关系运算实例,关系运算:条件连接() 概念:是从两个关系R、S的笛卡儿积( RS 结果集)中选取满足连接条件的那些元组。记作R S 是一个关于属性集的逻辑表达式,当为“=”,称为等值连接 二目运算,2.2 关系数据语言关系代数:关系运算,关系运算:不等值条件连接(),2.2 关系数据语言关系代数:关系运算,A,B, ,1 4 4 1 2,C,D, ,a a b a b,B,1 3 1 2 3,D,a a a b b,E, ,r,s,r s,R,S,R.B=S.B,关系运算:等值条件连接(),2.2 关系数据语言关系代数:关系运算,关系运算:自然连接( ) 概念1:对于关系R、S,在等值连接的情况下,当连接属性X与Y具有相同的属性名时称为自然连接 概念2:从RS的结果集中,选取在某些公共属性上具有相同值的元组,组成新的关系。 R、S的公共属性,在结果中只出现一次,2.2 关系数据语言关系代数:关系运算,R,S,关系运算:自然连接( ),2.2 关系数据语言关系代数:关系运算,自然连接关系运算实例,STUDENT关系和SC关系在学号属性上进行自然连接,关系运算:关系代数表达式 关系代数代数表达式的运算结果是一个关系; 关系DBMS的DML语言至少支持选取、投影和连接三种运算; 可以用关系代数表达式表示各种数据查询操作; 首先把查询涉及到的关系取来,执行笛卡尔积或自然连接, 得到一张大表格,然后对其执行选择操作和投影操作。,2.2 关系数据语言关系代数:关系运算,2.2 关系数据语言关系代数:实例,实例1:查询选修了2号课 程的学生的学号。 课程号、学号SC表 2号课程的选课情况 选修2号课程的学号,sno(cno=2(SC)),cno=2(SC),2.2 关系数据语言关系代数:实例, 数学课 cno = 数学 (Course),2.2 关系数据语言关系代数:实例,实例2:列出选修数学课的学生的学号、姓名以及成绩。,选修数学课的记录 SC (cno = 数学(Course),2.2 关系数据语言关系代数:实例,选修数学的学生记录 Student (SC (cno = 数学 (Course),2.2 关系数据语言关系代数:实例,选修数学的学生的学号、姓名、成绩 sno,sname,gradeStudent (SC (cno = 数学 (Course),2.2 关系数据语言关系代数:实例,2.3 数据库设计概述,数据库应用系统:以数据库为基础的信息系统,其特点是数据量大、保存时间长,数据关联复杂,用户要求多样化,从系统开发角度来看,具有结构特性和行为特性两个方面。 数据库设计:是指对于一个给定应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息需求处理要求)。 数据库设计是信息系统开发和建设中的核心技术,数据库设计相关概念,数据库设计内容,结构特性设计(数据库模式设计) 是数据模型所反映的实体及实体间联系静态模型的设计 是设计各级数据库模式,决定数据库系统的信息内容 行为特性设计(数据库应用软件开发) 是与数据库状态转换有关,是改变实体特性的操作 决定数据库系统功能,是事务处理等应用程序设计,2.3 数据库设计概述,数据库设计存在问题,同时具备数据库知识和企业业务知识、实际经验的人很少 企业的数据库应用系统的目标和需求缺少明确的规定 缺乏完善的设计工具、方法和理论 随应用范围扩大深入,用户不断要求修改和增加新的功能,数据库设计对设计人员要求,计算机基础知识和程序设计技术 数据库基本知识和数据库设计技术 软件工程的原理和方法 应用领域的知识,2.3 数据库设计概述,用户参与:最初的提出者和最终的使用者 战略眼光:使数据库有较长的使用寿命 数据库必须正确反映现实世界,能为某个DBMS所接受 应用系统有良好的性能,有利于实施和维护,数据库设计准则,2.3 数据库设计概述,数据库设计方法, 直接设计法 快速原型法 规范设计法,软件工程 是为了组织大型软件生产,克服手工作坊方式软件生产的缺点,而提出的一种科学的软件设计方法。 是指导计算机软件开发和维护的工程学科。 对于大规模、十分复杂、要求较高的数据库应用系统,应当采用软件工程的方法。,2.3 数据库设计概述,数据库设计步骤,-软件工程分步设计法 系统需求分析 概念设计阶段 逻辑设计阶段 物理设计阶段 数据库实施阶段 数据库运行和维护阶段,2.3 数据库设计概述,从客观分析和抽象入手,利用设计工具进行综合,分阶段完成。 每一阶段完成时要进行设计分析,评价一些重要设计指标,提交文档。 与用户进行交流。 开发阶段是顺序过程,前后开发阶段存在因果关系。 分析和修改多次重复。,数据库设计步骤,2.3 数据库设计概述,现实世界,信息世界,数据世界,用户需求分析,物理结构设计,E-R图,数据模型,概念结构设计,逻辑结构设计,数据库设计步骤,概念结构设计,逻辑结构设计,2.3 数据库设计概述,信息的转换,加工、转换,2.3 数据库设计概述,DB结构设计阶段与数据库各级模式结构的联系,应用1,应用3,应用2,概念模式,概念要求,概念要求,概念要求,应用1,应用3,应用2,逻辑模式,内模式,外模式3,外模式2,外模式1,综合,转换,映像,映像,2.3 数据库设计概述,一、需求分析:概述,是数据库设计中最重要的步骤之一,是基础;在此阶段,从多方面对整个组织进行调查,收集和分析各个应用对信息和处理两方面需求。 需求分析任务:收集资料,了解用户需求 信息需求,用户要从数据库获得的信息内容 处理需求,完成什么处理功能及处理方式 安全性和完整性要求,2.3 数据库设计概述,整个数据库设计的关键(特点)。 设计目标:产生反映全组织信息需要的整体数据库概念结构,是整个组织各个用户共同关心的信息结构。 独立于数据库逻辑结构,独立与DBMS。 描述概念结构的工具:E-R图(图形表示),二、概念结构设计:概述,2.3 数据库设计概述,二、概念结构设计:方法,2.3 数据库设计概述,自底向上 策略,二、概念结构设计:步骤,2.3 数据库设计概述,二、概念结构设计:步骤,1. 局部E-R图设计 选择局部应用 逐一设计分E-R图 一个应用的局部E-R图反映出具体应用的视图; 根据需求分析阶段产生的各个部门的数据流图和数据字典中相关数据的设计出各项应用的局部E-R图。,2.3 数据库设计概述,(1)确定实体和属性 区分实体和属性的原则: 属性不需要在进一步描述 属性不能与其他实体具有联系(职称、书库) 根据语义分析依赖关系,确定候选码及主码。,二、概念结构设计:步骤,1. 局部E-R图设计设计步骤,2.3 数据库设计概述,二、概念结构设计:步骤,1. 局部E-R图设计举例,2.3 数据库设计概述,二、概念结构设计:步骤,1. 局部E-R图设计举例,2.3 数据库设计概述,(2)确定联系类型 联系类型: 1:n,1:1,m:n 注意的问题: 不要丢掉联系的属性 尽量取消冗余的联系 给联系命名: (选择反映联系语义的动词) (3)画出局部E-R图,二、概念结构设计:步骤,1. 局部E-R图设计设计步骤,2.3 数据库设计概述,2.视图集成将所有的局部E-R图综合成一个总E-R图,二、概念结构设计:步骤,视图集成方式 多个分E-R图一次集成 逐步集成,一次集成两个分E-R图,2.3 数据库设计概述,2.视图集成将所有的局部E-R图综合成一个总E-R图,二、概念结构设计:步骤,合并:消除冲突初步E-R图 修改和重构:消除冗余 基本E-R图,步骤,2.3 数据库设计概述,二、概念结构设计:步骤,2.视图集成合并分E-R图,综合成初步E-R图,冲突:因为局部应用不同,设计人员不同,从而造成的各局部E-R图的不一致;合理消除各分E-R图的冲突是合并E-R图的主要工作和关键所在。冲突类型有: 属性冲突:属性域冲突; 属性取值单位冲突。 命名冲突:同名异义; 异名同义。 结构冲突:同一对象具有不同的抽象; 同一实体所含属性个数和属性排列次序不完全相同; 联系类型不同。,2.3 数据库设计概述,二、概念结构设计:步骤,2.视图集成合并分E-R图,综合成初步E-R图(消除冲突),2.3 数据库设计概述,m,n,教师,课程,任课,工号,姓名,性别,年龄,课号,课程名称,教材名称,m,1,ER1,ER2,二、概念结构设计:步骤,2.视图集成合并分E-R图,综合成初步E-R图(消除冲突),2.3 数据库设计概述,ER12,在初步E-R图中可能存在冗余的数据和实体间冗余的联系; 冗余数据: 是指可以从基本的数据导出的数据 冗余联系: 是指可以从其他联系导出的联系 消除了冗余的初步E-R图称为基本E-R图; 消除冗余主要采用分析方法,即以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。,二、概念结构设计:步骤,2.视图集成消除不必要的冗余,优化成基本E-R图,2.3 数据库设计概述,Q3=Q1*Q2;Q4=Q5,所以Q3、Q4是冗余数据,可以消除;并且由于Q3消除,产品与材料件的冗余联系也应消除。,二、概念结构设计:步骤,2.视图集成消除不必要的冗余,优化成基本E-R图,2.3 数据库设计概述,行政管理部门:职工部门 工程组织管理:工程职工 计划供应部门:工程、零件供应商 物质管理部门:仓库零件,工厂物资管理,工厂物资管理的初步总体E-R图,将概念结构转换成特定DBMS所支持的数据模型的过程 把综合E-R图转换成关系模型,将概念结构转换为一般的关系、网状、层次模型; 将转换来的常用模型向特定DBMS支持下的数据模型转换; 对数据模型进行优化。,三、逻辑结构设计:概述,三、逻辑结构设计:步骤,2.3 数据库设计概述,转化为一般数据模型,转化为特定DBMS支持下的据模型,优化模型,概念结 构设计,数据库 物理设计,基本E-R图,转换规则,特定DBMS的特点与限制,优化方法如规范化理论,逻辑 模型,三、逻辑结构设计,2.3 数据库设计概述,E-R模型向关系模型转换转换过程示意图,E-R图,关系模型,三、逻辑结构设计:步骤,2.3 数据库设计概述,E-R模型向关系模型转换,实体集的转换方法和原则 把E-R图每个实体集变换成一个关系模式,实体集 的属性和主码变换成关系模式的属性和主码。,例 转换“课程”实体:,COURSE(Cno, Cname, Credit, Classroom),2.3 数据库设计概述,三、逻辑结构设计,一般原则:为R建立一个关系模式:R( k1, k2, RA ) R的主码由联系R的特点确定(“多对一”等) 根据实际需要,有时可以 不必 为R单独建立关系模式。 (“多对一”、 “一对一”),联系集的转换,三、逻辑结构设计,2.3 数据库设计概述,1:1 取消联系集,联系属性及一方的主码融入另一方实体集中,构成关系; 不取消联系集,则由联系属性、参与联系的各实体集的主码属性构成, 其主码可选参与联系的实体集的任一方的主码,构成关系。实体集的主 码在联系集中作为外码。,联系集的转换方法和原则,三、逻辑结构设计,2.3 数据库设计概述,校名,地址,电话,学校,姓名,性别,年龄,校长,任职,1,1,学校(校名,地址,电话),校长(姓名,性别,年龄),任职(校名,校长名,任职日期),任职日期,学校(校名,地址,电话、校长名,任职年月),转换举例1,三、逻辑结构设计,2.3 数据库设计概述,1:n 取消联系集,自身属性及1端的主码融入n端实体集,构成 关系,主码任为n端的主码;1端的主码在联系集中作为外码 不取消联系集,则由自身属性、参与联系的各实体集的主 码属性构成关系,n端的主码作为联系集的主码。实体集的主 码在联系集中作为外码,联系集的转换方法和原则,三、逻辑结构设计,2.3 数据库设计概述,系号,系名,电话,系,工号,姓名,年龄,教师,聘用,1,n,系(系号,系名,电话),教师(工号,姓名,年龄,系名,聘期),聘期,转换举例2,三、逻辑结构设计,2.3 数据库设计概述,n:m 保留联系集,由自身属性、参与联系的各实体集的主码 属性构成关系,主码应包含各实体集的主码属性,实体 集的主码在联系集中作为外码。,联系集的转换方法和原则,三、逻辑结构设计,2.3 数据库设计概述,学号,姓名,年龄,学生,课程号,课程名,学时数,课程,选课,m,n,学生(学号,姓名,年龄),课程(课程号,课程名,学时数),成绩,选课(学号,课程号,成绩),转换举例3,三、逻辑结构设计,2.3 数据库设计概述,模式优化 为了提高数据的存取和存储效率,还必须关系模式进行优化 常用的优化方法: 对关系模式进行垂直分割和水平分割,三、逻辑结构设计:步骤,关系规范化 应用规范化理论对产生的关系逻辑模式进行初步优化 考虑关系模式的函数依赖关系,确定范式等级 对关系模式进行合并或分解,2.3 数据库设计概述,物理结构:数据库在物理设备上的存储结构和存取方法 DB物理设计:在计算机的物理设备上确定应采取的数据存储结构和存取方法,以及如何分配存储空间等问题。 物理设计步骤: 确定数据库的物理结构(存储结构&存取方法) 对物理结构进行评价(时间&空间的效率),四、物理结构设计:概述,2.3 数据库设计概述,数据库物理设计,确定数据库的物理结构,评价数据库的物理结构,逻辑结 构设计,数据库 实施,物理 模型,物理结构设计,2.3 数据库设计概述,设计方法: 与特定硬件系统、DBMS等相关,无统一的设计方法。 设计内容(关系数据库): 为关系模式选择存取方法(索引&聚簇存取方法) 设计关系和索引等数据库文件的物理存储结构,四、物理结构设计:方法&内容,2.3 数据库设计概述,索引图解,是为了加速对表中数据行的检索而创建的一种存储结构 索引项由搜索码和指针构成: 就象一张对照表,索引是针对表建立的 索引文件对存储记录进行内部链接,从逻辑上改变了记录 的存储位置。,四、物理结构设计:选择存取方法(索引),2.3 数据库设计概述,四、物理结构设计:选择存取方法(索引),建立索引的原则 所谓选择索引存取方法就是根据应用需求确定对关系的哪些属性列建立索引,建立何种类型的索引。一般来说: 经常在查询条件中出现 在聚集函数中出现 作为连接条件,注意问题,2.3 数据库设计概述,四、物理结构设计:选择存取方法(索引改善查询),2.3 数据库设计概述,四、物理结构设计:选择存取方法(索引减缓更新),2.3 数据库设计概述,2.3 数据库设计概述,聚簇概念: 为了提高某属性(属性组)的查询速度,把这个属性或属性 组上具有相同值的元组集中存放在连续的物理块上。 优点缺点 创建语句: Create cluster (聚簇属性1 数据类型, 聚簇属性2 数据类型,),四、物理结构设计:选择存取方法(聚簇),2.3 数据库设计概述,建立条件注意事项 对经常在一起进行连接操作的关系可以建立聚簇; 如果单个关系的一组属性经常出现在相等比较条件中; 如果单个关系的一个(组)属性上的值重复率很高;对应某个聚簇码值的平均元组数不是太少也不是太多。,四、物理结构设计:选择存取方法(聚簇),2.3 数据库设计概述,确定数据的存放位置(分开存放) 易变部分稳定部分、经常存取部分存取频率较低部分 表索引、大表分割存放、日志文件、备份数据 确定系统配置(系统配置变量) 同时用户数、内存缓冲区分配参数、数据库对象数 物理块大小、数据库大小、锁数目、锁粒度,四、物理结构设计:确定存储结构,2.3 数据库设计概述,主要工作: 定义数据库结构、组织数据入库 应用程序设计与编写 应用程序的调试与试运行 数据库试运行,五、数据库实施,2.3 数据库设计概述,数据库实施,定义数据库结构,数据 装载,数据库试运行,数据库物 理设计,数据库运 行和维护,物理 模型,编制与调试应用程序,数据库 系统,五、数据库实施,2.3 数据库设计概述,主要工作: 数据的转储和恢复 维护数据库的安全性和完整性 监测并改善数据库性能 必要时对数据库进行重新组织,六、数据库的运行和维护,2.3 数据库设计概述,2.4 关系模式规范化问题的提出,针对一个具体问题,应该如何构造一个适合于它的数据模式,即应该构造几个关系模式,每个关系由哪些属性组成,由于D和dom对模式设计影响不大,故主要考虑三元组:R,举例:建立一个描述学生情况的数据库,已知对象有: 学生(用学号Sno描述) 系(用系名Sdept描述) 系负责人(用其姓名MN描述) 课程(用课程名Cname描述) 成绩(G) 设计方案 1、S(Sno, Cname, G, Sdept, MN) 2、S(Sno, Cname, G) D(Sdept, MN) 3、S(Sno, Cname, G) SD(Sno, Sdept, MN) 4、S(Sno, Cname, G) SD(Sno, Sdept) SM(Sno, MN) 5、S(Sno, Cname, G) SD(Sno, Sdept) DM(Sdept, MN),2.4 关系模式规范化问题的提出,数据冗余(系主任名的存储次数) 数据重复存储:浪费存储空间,数据库维护困难(更新异常) 插入异常(一个系刚成立) 主码为空的记录不能存在与数据库,导致不能进行插入操作 删除异常(一个系的学生全部毕业) 删除操作后,一些相关信息无法保存在数据库中 更新异常更新代价大、极易导致数据不一致,“不好”的数据库设计-存在问题,2.4 关系模式规范化问题的提出,要消除以上的“弊病”, 将其分解为三个关系模式: SD(学号,系名) SG(学号,课程,成绩) DM(系名,系主任) 用以上三个结构简单的关系代替了原来的结构复杂的关系,从而得到的了“好的”关系数据库模式(规范化) “好的”关系数据库模式并不是在任何情况下都是最优的,要从实际的设计目标出发,“不好”的数据库设计解决办法,关键解决更新异常和冗余太大的问题,2.4 关系模式规范化问题的提出,分解后的关系模式实例,函数依赖 是属性间的关联,是属性间的逻辑依赖关系,是一种约束 数据依赖是针对数据模式,而不是特定的实例 类似于变量之间的单值函数关系 Y=F(X),其中自变量X的值,决定一个唯一的函数值Y 在一个关系模式里的属性,由于它在不同元组里属性值可能不同,由此可以把关系中的属性看作变量 一个属性与另一个属性在取值上可能存在制约关系,2.4 关系模式规范化函数依赖,定义1: 设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集.对于R(U)的任何一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称X函数决定Y,或Y函数依赖于X,记作:X Y. X通常称为“决定因素” 当Y不函数依赖与X,则记作:X Y 当X Y,且Y X,则记作:X Y(互相函数依赖),2.4 关系模式规范化函数依赖,举例: 学号(A) 年龄(B) 性别(C) 020101 18 男 020102 20 女 020103 21 男 A B A C B A C A,2.4 关系模式规范化函数依赖,定义2:设X Y是关系模式R(U)的一个函数依赖,当对X的每一个真子集X,都有X Y,则Y对X的函数依赖是完全的,记作X f Y;如果对 X某个真子集X,有X Y,则称Y对X的函数依赖是部分的,记作X p Y. 例:UN(学号,课名,成绩,系名,系主任) (学号,课名) f 成绩 (学号,课名) p 系名,函数依赖的类型:完全、部分、传递,2.4 关系模式规范化函数依赖,定义3:设X,Y,Z为关系模式R的互不相同的属性集合,如果X Y,而 Y X,但Y Z,则称Z传递函数依赖与X,记作 X t Z. 例: UN(学号,系名,系主任) 学号 系名, 系名 学号, 系名 系主任 则有 学号 t 系主任,函数依赖的类型:完全、部分、传递,2.4 关系模式规范化函数依赖,规范化:用几个简单关系去取代原来结构复杂的关系的过程。 规范化理论是研究如何把一个不好的关系模式转化为好的关系模式的理论; 规范化理论是E.F.Codd在1971年首先提出的; 规范化理论是数据库设计过程中一个非常有用的辅助工具。,2.4 关系模式规范化范式,规范化理论是围绕着范式建立的; 满足不同程度要求的约束集则称为不同的范式; 如果一个关系满足某个指定的约束集,则称它属于某个特定的范式; 较高层次的范式比较低层次的范式具有“更合乎要求的性质”; 一个低一级范式的关系模式,通过投影运算可以转化为若干个高一级范式的关系模式的集合,这个过程叫做规范化。,2.4 关系模式规范化范式,定义4: 在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系,记作R1NF. 1NF规范化: 把非规范化关系规范提高到1NF关系模式的集合.,第一范式:1NF,2.4 关系模式规范化范式,1NF 规范化,第一范式:1NF,2.4 关系模式规范化范式,定义5: 若关系模式R1NF,且每个非主属性都完全依赖于R的任意候选码,则关系模式R属于第二范式,记作R2NF. 2NF规范化是把1NF关系模式规范提高到变成2NF关系模式的集合;从1NF中消除非主属性对候选码的部分函数依赖,则获得2NF关系,第二范式:2NF,2.4 关系模式规范化范式,举例1:UN(学号,课名,成绩,系名,系主任)非主属性对码的函数依赖关系 为了消除非主属性对码的部分函数依赖,采用投影分解来提高UN范式等级 SG=UN学号,课名,成绩 SDM=UN学号,系名,系主任 则非主属性对其主码都是完全的函数依赖,即SG2NF, SDM2NF 如果关系R不属于2NF,那么可把R分解成它的投影的集合,使这些投影都属于2NF,并且对R的各个投影进行自然连接操作,可恢复原来的关系R,学号,课名,成绩,系名,系主任,f,p,p,第二范式:2NF,2.4 关系模式规范化范式,举例2: sc(学号,姓名,课号,成绩) 学号,课号成绩 学号姓名,第二范式:2NF,2.4 关系模式规范化范式,2NF 规范化,第二范式,2.4 关系模式规范化范式,定义6: 若关系模式R2NF,且每个非主属性都不传递依赖于R的任意候选码,则R3NF. 理解:若R3NF,则R中没有非主属性传递依赖于键码。 从2NF关系中,消除非主属性对码的传递依赖函数而获得3NF关系 R3NF,则每个非主

温馨提示

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

评论

0/150

提交评论