欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (本科)第3章关系模型与关系规范化理论ppt课件.pptx

    • 资源ID:16399219       资源大小:1.74MB        全文页数:119页
    • 资源格式: PPTX        下载积分:40金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要40金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (本科)第3章关系模型与关系规范化理论ppt课件.pptx

    课程主讲人:(本科)第3章-关系模型与关系规范化理论ppt课件中国农业大学 李辉p关系模型及其定义p关系代数及其运算p数据库设计的规范化p知识点小结p本章实验p以关系模型为基础的关系数据库是目前应用较为广泛的数据库。p关系模型建立在数学理论的基础上。p关系数据库的规范化理论是数据库逻辑结构设计的理论指南。p本章首先介绍了关系模型的基本概念、关系的数学定义、关系模型的3个要素以及关系代数等内容。然后主要讨论关系数据库规范化理论,讨论如何设计好的关系模式。p关系模型及其定义p关系代数及其运算p数据库设计的规范化p知识点小结p本章实验p关系模型是数据库使用的一种典型数据模型。p在关系模型中,其数据结构为具有一定特征的二维表。p在关系数据库中,数据是以关系表形式存储实体数据。p关系是一个由行和列组成的二维表。p关系 单一的数据结构关系无论是实体集,还是实体集之间的联系均由单一的关系表示。 逻辑结构二维表。从用户的角度来说关系模型的逻辑结构就是一张二维表。 建立在集合代数的基础上。 元数据:关于数据库结构的数据。如:表名,列名,表列的属性等。p关系中基本术语 元组(Tuple):元组也称记录,关系表中的每行对应一个元组,组成元组的元素称为分量。数据库中的一个实体或实体之间的一个联系均使用一个元组来表示。 例:在上表中有3个元组,分别对应3个学生,“史丹妮,女,会计”是一个元组,由 3 个分量组成。 属性(Attribute) 关系中的每列对应一个域。由于域可以相同,因此为了加以区分,必须给每列一个命名,这个命名就称为属性。N目关系必有n个属性。 属性具有型和值两层含义:型指字段名和属性值域;值是指属性具体的取值。 关系中的字段名具有标识列的作用,所以在同一个关系中的字段名(列名)不能相同。一个关系中通常有个多个属性,属性用于表示实体的特征。 候选码(Candidate key) 若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性或属性组为候选码(Candidate key)。 主码(Primary key) 若一个关系中有多个候选码,则选定其中一个为主码(也可以称为主键,主关键字)。 当包含两个或更多个的键称为复合码(键) 主码(Primary key) 不仅可以标识唯一的行,还可以建立与别的表之间的联系。 作用:1. 作为关联表的外键,链接两个表;2. 使用主码值来组织关系的存储;3. 使用主码索引快速检索数据。 主码选择的注意事项:(1)建议取值简单的关键字为主码。(2) 为便于表的维护,不建议使用复合主键。(3)代理键 定义:一个没有实际意义的字段作为表的主键。 取值:建议由DBMS(例如MySQL)或者应用程序自动生成,避免人工录入时人为操作产生的错误。 全码 (All-key) 关系模式的所有属性是这个关系模式的候选码,称为全码。 主属性(Prime attribute)和非主属性(Non-prime attribute) 在关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。 代理键 是具有DBMS分配的唯一标识符,该标识符已经作为主键添加到表中。每次创建行时由DBMS分配代理键的唯一值,通常是较短的数字,该值永远不变。 该值对于用户没有任何意义。 例如:MySQL数据库使用AUTO_INCREMENT函数自动分配代理键的数值。在AUTO_INCREMENT中,起始值可以是任意值(默认为1),但增量总是1。p 数据库中关系的类型: 基本表(基本关系或者基表):实际存在的表,它是实际存储数据的逻辑表示。 查询表:查询结果表或查询中生成的临时表。 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。p 关系的性质(1)关系中的元组存储了某个实体或实体某个部分的数据。(2)关系中元组的位置具有顺序无关性,即元组的顺序可以任意交换。(3)同一属性的数据具有同质性,即每一列中的分量是同一类型的数据,它们来自同一个域。(4)同一关系的字段名具有不可重复性,即同一关系中不同属性的数据可出自同一个域,但不同的属性要给予不同的字段名。p 关系的性质(续)(5)关系具有元组无冗余性,即关系中的任意两个元组不能完全相同。(6)关系中列的位置具有顺序无关性,即列的次序可以任意交换、重新组织。 (7)关系中每个分量必须取原子值,即每个分量都必须是不可分的数据项。p 关系模式(Relation Schema)是型p 关系是值p 关系模式是对关系的描述 元组集合的结构 属性构成 属性来自的域 属性与域之间的映象关系 元组语义以及完整性约束条件 属性间的数据依赖关系集合p 形式化定义:R(U,D,DOM,F)p 各部分的含义: R:关系名 U:组成该关系的属性名集合 D:属性组U中属性所来自的域 DOM:属性向域的映象集合 F :属性间的数据依赖关系集合p 关系模式通常可以简记为 R(U)或 R(A1,A2,An)。其中 R 为关系名,A1,A2,An为字段名。p 域名及属性向域的映像常直接称为属性的类型及长度。p 关系和关系模式的联系与区别: 关系模式是关系的框架框架或结构结构,是静态静态的、稳定稳定的。 关系是按关系模式组合的表格表格,关系既包括结构结构也包括其数据数据,关系的数据是动态的动态的、随时间不断变化的。 关系是关系模式在某一时刻的状态或内容。 实际应用中,人们通常把关系模式和关系都称为关系。p 关系数据库中关于表的三组术语的对应关系:p 关系操作的三大功能:(1)数据查询数据查询:数据检索、统计、排序、分组以及用户对信息的需求等功能。(2)数据维护数据维护:数据添加、删除、修改等数据自身更新的功能。(3)数据控制数据控制:为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。p 关系操作的数据查询数据查询和数据维护数据维护功能使用关系代数中的8种操作来表示,即并(Union)、差(Difference)、交(Intersection)、广义的笛卡儿积(Extended Cartesian Product)、选择(Select)、投影(Project)、连接(Join)和除(Divide)。p 其中选择、投影、并、差、笛卡尔积是5种基本操作种基本操作。其他操作可以由基本操作导出。p 在关系模型中,关系数据库操作通常是用代数方法或逻辑方法实现,分别称为关系代数关系代数和关系演算关系演算。p 关系操作语言可以分为3类:(1)关系代数语言(2)关系演算语言 (3)具有关系代数和关系演算双重特点的语言p 关系代数语言:用对关系的运算关系的运算来表达查询要求的语言。 p 关系演算语言:用查询得到的元组元组应满足的谓词条件来表达查询要求的语言。可以分为元组关系演算语言元组关系演算语言和域关域关系演算语言系演算语言两种。p 具有关系代数和关系演算双重特点的语言。结构化查询结构化查询语言语言(Structure Query Language,SQL)是介于关系代数和关系演算之间的语言,它包括数据定义数据定义、数据操作数据操作和数据数据控制控制 3 种功能,具有语言简洁、易学易用的特点,是关系数据库的标准语言。p 关系模型的完整性规则是对关系的某种约束条件。p 关系模型允许定义3类完整性约束类完整性约束: 实体完整性 参照完整性 用户自定义的完整性。应用领域需要遵循的约束条件,体现了具体领域中的语义约束。 关系模型必须满足的完整性约束条件,称为两个不变性。 由关系系统自动支持。p 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值不能取空值。 例如,学生关系“学生(学号,姓名,性别,专业号,年龄)”中,“学号”为主码,则“学号”不能取空值。p 实体完整性规则规定基本关系的主码不能取空值,若主码由多个属性组成,则所有这些属性都不都不可以取空值。 例如,学生选课关系“选修(学号,课程号,成绩)”中,“学号、课程号”为主码,则“学号”和“课程号”两个属性都不能取空值。p 对实体完整性规则的说明:(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应信息世界的一个实体集。(2)信息世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系模型中以主码作为唯一性唯一性标识。(4)主码中的属性即主属性不能取空值不能取空值。p 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S有可能是同一关系),则对于R中每个元组在F上的值必须为以下值之一。(1)取空值空值(F的每个属性值均为空值)。(2)等于S中某个元组的主码值主码值。p 主码(主键)与外码(外键)的列名不一定相同列名不一定相同,唯一的要求是它们的值的域域必须相同。p 实例: 学生关系和专业关系表示如下,其中主码用下划线标识:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名) “专业号”属性只能取下面两类值: 空值,表示尚未给该学生分配专业。 非空值,这时该值必须是专业关系中某个元组的“专业号”值。p 针对某一具体关系数据库的约束条件的,它反映某一具体应用所涉及的数据必须满足的语义要求。p DBMS可以为用户实现如下自定义完整性约束:(1)定义域的数据类型和取值范围。(2)定义属性的数据类型和取值范围。(3)定义属性的缺省值。(4)定义属性是否允许空值。(5)定义属性取值唯一性。(6)定义属性间的数据依赖性。p关系模型及其定义p关系代数及其运算关系代数及其运算p数据库设计的规范化p知识点小结p本章实验p 关系代数是一种抽象的查询语言查询语言。p 是关系数据操作语言的一种传统表达方式,它是用对关系的运算来表达查询的。p 关系代数是建立在集合代数集合代数的基础上。p 关系数据结构的形式化定义:(1)域(Domain)(2)笛卡尔积(Cartesian Product)(3)关系(Relation)p 域(Domain) 域是一组具有相同数据类型值的集合。 在关系模型中,使用域来表示实体属性的取值范围实体属性的取值范围。 通常用Di表示某个域。 例如: 整数 实数 介于某个取值范围的整数 长度指定长度的字符串集合 男,女 p 笛卡儿积(Cartesian Product) 给定一组域D1,D2,Dn,这 些 域 中 可 以 有 相 同的。D1,D2,Dn的笛卡尔积为:D1D2Dn(d1,d2,dn)diDi,i1,2,n 所有域所有域的所有取值所有取值的一个组合 不能重复不能重复 元组(Tuple) 笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple),或简称元组(Tuple)。 (张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)等都是元组。 分量(Component) 笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量。 张清玫、计算机专业、李勇、刘晨等都是分量。 基数(Cardinal number) 若Di(i1,2,n)为有限集,其基数为mi(i1,2,n 则D1D2Dn的基数M为: 笛卡尔积的表示方法 笛卡尔积可表示为一个二维表。 表中的每行对应一个元组,表中的每列对应一个域。niimM1 给出3个域:姓名集合:D1=史丹妮,周冬元,李晓辉性别集合:D2=男,女专业集合:D3=会计,商务 笛卡尔积的结果:D1D2D3(史丹妮,男,会计),(史丹妮,男,商务),(史丹妮,女,会计),(史丹妮,女,商务),(周冬元,男,会计),(周冬元,男,商务),(周冬元,女,会计),(周冬元,女,商务),(李晓辉,男,会计),(李晓辉,男,商务),(李晓辉,女,会计),(李晓辉,女,商务) 笛卡尔积结果表:p 关系 关系为多个域的笛卡尔乘积多个域的笛卡尔乘积的有限子集有限子集!是一张二维表。 D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为:R(D1,D2,Dn)R:关系名n:关系的目或度(Degree) 当n=1时,称该关系为单目关系(Unary relation); 当n=2时,称该关系为二目关系(Binary relation)。 从上述D1,D2,D3的笛卡儿积中取出一个子集来构造一个学生关系。 由于一个学生只有一个专业和性别,所以笛卡儿积中的许多元组在实际中是无意义的,仅仅挑出有实际意义的元组构建一个关系,该关系名为 Student,字段名取域名:姓名,性别和专业。p 运算的三要素:运算对象、运算符、运算结果。p 关系代数的运算对象运算对象是关系关系,运算结果运算结果亦为关系关系。p 关系代数中使用的运算符包括4类:集合运算符集合运算符、专门的关专门的关系运算符系运算符、比较运算符比较运算符和逻辑运算符逻辑运算符。p 关系代数的运算按运算符的不同可分为: 传统的集合运算:将关系看成元组的集合,其运算是从关系的“水平”方向即行行的角度进行的。 专门的关系运算:不仅涉及行行而且涉及列列。比较运算符和逻辑运算符是用来辅助专门的关系运算进行操作的。p 传统的集合运算是二目运算,包括并、交、差、广义笛卡儿积4种运算。p 设关系R和关系S具有相同的目n(即两个关系都具有n个属性),且相应的属性取自同一个域,则可以定义并、差、交、广义笛卡儿积运算如下:1.并并(Union)关系R与关系S的并记作:RS=ttRtS,t 是元组变量其结果关系仍为 n 目关系,由属于 R 或或属于 S 的元组组成。2.差差(Difference)关系 R 与关系 S 的差记作:R-S=ttRt S,t 是元组变量其结果关系仍为 n 目关系,由属于 R 而不不属于 S 的所有元组组成。3.交交(Intersection)关系R与关系S的交记作:RS=ttRtS,t是元组变量其结果关系仍为n目关系,由既属于R又又属于S的元组组成。关系的交可以用差来表示,即RS=R-(R-S)4.广义笛卡儿积(Extended Cartesian Product)两个分别为n目和m目的关系R和S的广义笛卡儿积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积有klk2个元组。记作:RS=trtsTrRTsSp R和S 具有相同的目n(即两个关系都有n个属性) 相应的属性取自同一个域p 专门的关系运算包括选择、投影、连接、除等。p 为了叙述上的方便,先引入几个记号:(1)设关系模式为R(A1,A2,An),它的一个关系设为R,tR 表示t是R的一个元组,tAi表示元组t中相应于属性Ai上的一个分量。(2)若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为字段名或域列。tA=(tAi1,tAi2,tAik)表示元组 t 在字段名 A 上诸分量的集合。 A 表示A1,A2,An)中去掉Ai1,Ai2,Aik后剩余的属性组。(3)R 为 n 目关系,S 为 m 目关系。trR,tsS,trts称为元组的连接,它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。(4)给定一个关系 R(X,Z),X和Z为属性组。定义当tX=x时,x在R中的象集为:Zx=tZ|tR,tX=x它表示R中属性组X上值为x的诸元组在Z上分量的集合。p 象集举例: x1在R中的象集Zx1 =Z1,Z2,Z3 x2在R中的象集Zx2 =Z2,Z3 x3在R中的象集Zx3=Z1,Z3p 选择(Selection) 选择又称为限制限制(Restriction) 选择运算符的含义在关系R中选择满足给定条件给定条件的诸元组F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”F 的基本形式为: 选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行行的角度进行的运算:p 设有一个学生-课程数据库见下表,它包括以下内容: 学生关系 Student(说明:Sno 表示学号,Sname 表示姓名,Ssex 表示性别,Sage 表示年龄,Sdept 表示所在系) 课程关系 Course(说明:Cno 表示课程号,Cname 表示课程名) 选修关系 Score(说明:Sno 表示学号,Cno 表示课程号,Degree 表示成绩)p 其关系模式如下: Student(Sno,Sname,Ssex,Sage,Sdept) Course(Cno,Cname) Score(Sno,Cno,Degree) p Student表p Course表p Score表p 例1:查询数学系学生的信息。 Sdept=数学系 (Student)或5=数学系 (Student) 查询结果:p 例2:查询年龄小于 20 岁的学生的信息。Sage20(Student)或420(Student) 查询结果:p 投影(Projection) 投影运算符的含义 从R中选择出若干属性列组成新的关系A(R) = tA | tR A:R中的属性列 投影操作主要是从列列的角度进行运算 投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行避免重复行)p 例1:查询学生的学号和姓名。Sno,Sname(Student)或1,2(Student) 查询结果:p 连接(Join) 连接也称为连接 连接运算的含义: 从两个关系的笛卡尔积中选取属性间满足一定条件属性间满足一定条件的元组 A和B:分别为R和S上度数相等且可比的属性组 :比较运算符 从R和S的笛卡尔积RS中选取R关系在A属性组上的值与S关系在B属性组上值满足比较关系的元组。p 两类最常用也最重要的连接: 等值连接 为“”的连接运算称为等值连接 从关系R与S的广义笛卡尔积中选取A、B属性值相等属性值相等的那些元组 自然连接 一种特殊的等值连接 要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的字段名去掉重复的字段名去掉 若R和S具有相同的属性组B,则记作: 一般连接与自然连接的区别: 一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复列取消重复列,所以是同时从行行和列列的角度进行运算。ABSR 外连接: 如果把舍弃的元组舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN) 左外连接: 如果只把左边关系左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接: 如果只把右边关系右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。 例:关系R和关系S 如下所示:R S:AR.BCS.BE-a1b15b13a1b15b27a1b15b310a1b15b32a1b15b52a1b26b13a1b26b27a1b26b310a1b26b32a1b26b52 一般连接: 等值连接 : 自然连接 : 外连接 : 左外连接和右外连接 :p 除(Division) 给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的字段名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X字段名上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。 其中Yx为x在R中的象集,x=trX。 除操作是同时从行和列角度进行运算的。 关系除法运算分下面4步进行:1)将被除关系的属性分为象集属性象集属性和结果属性结果属性:与除关系相同的属性属于象集属性,不相同的属性属于结果属性。2)在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。3)将被除关系分组,原则是,结果属性值结果属性值一样的元组分为一组。4)逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集。 例: 设关系R、S分别为下图的(a)和(b),RS的结果为图(c) 在关系R中,A可以取四个值a1,a2,a3,a4a1的象集为 (b1,c2),(b2,c3),(b2,c1)a2的象集为 (b3,c7),(b2,c3)a3的象集为 (b4,c6)a4的象集为 (b6,c6) S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3) 只有a1的象集包含了S在(B,C)属性组上的投影所以: RS =a1 综合实例:设学生-课程数据库中有 3 个关系:S、C和SC,利用关系代数进行查询。学生关系:S(Sno,Sname,SSex,Sage)课程关系:C(Cno,Cname,Teacher)学习关系:SC(Sno,Cno,Degree)(1)查询学习课程号为 C3 号课程的学生学号和成绩。Sno,Degree(Cno=C3 (SC)(2)查询学习课程号为 C4 课程的学生学号和姓名。Sno,Sname(Cno=C4 (SSC)(3)查询学习课程名为 maths 的学生学号和姓名。(4)查询学习课程号为 C1 或 C3 课程的学生学号。Sno(Cno=C1Cno=C3 (SC)(5)查询不学习课程号为 C2 的学生的姓名和年龄。p关系模型及其定义p关系代数及其运算p数据库设计的规范化数据库设计的规范化p知识点小结p本章实验p关系数据库的设计主要是关系模式的设计,关系模式设计的好坏将直接影响到数据库设计的成败。p设计数据库要考虑减少冗余数据冗余数据和避免数据经常发生变数据经常发生变化化,减少额外的维护。p规范化的核心思想就是表中每个决定因子决定因子都必须是候选候选键键。若不满足,可以将表分解成两个或多个满足条件的表。p回顾关系模型的形式化定义:关系模式的完整表示是一个五元组:R(U,D,Dom,F)其中:R:关系名,代表一个关系模式;U:关系模式 R 的属性集合(属性组);D:属性集合 U 的数据域;Dom:属性到域的映射关系;F:属性集合 U 上的一组数据依赖的集合。p 三元组:R(U,F),数据依赖数据依赖是关系模式的重要因素。p用一个实例说明如果一个关系没有经过规范化可能会出现的问题: 例如,要设计一个教学管理数据库,希望从该数据库中得到学生学号、姓名、年龄、性别、系别、系主任姓名、学生学习的课程名和该课程的成绩信息。 若将此信息要求设计为一个关系,则关系模式为:S(sno,sname,sage,ssex,sdept,mname,cno,cname,score)p该关系模式中各属性之间的关系为: 一个系有若干学生,但一个学生只属于一个系; 一个系只能有一名系主任,但一个系主任可以同时兼几个系的系主任; 一个学生可以选修多门课程,每门课程可被若干学生选修; 每个学生学习的每门课程都有一个成绩。p 分析得到,此关系模式的码为(sno,cno)。1)数据冗余数据冗余太大每个系名和系主任的名字存储的次数等于该系学生人数乘以每个学生选修的课程门数,系名和系主任数据重复量太大。2)插入异常插入异常一个新系没有招生时,或系里有学生但没有选修课程,系名和系主任名无法插入到数据库中。因为在这个关系模式中码是(sno,cno),这时没有学生而使得学号无值,或学生没有选课而使得课程名无值。但在一个关系中,码属性不能为空值,因此关系数据库无法操作,导致插入异常。3)删除异常删除异常当某系的学生全部毕业而又没有招新生时,删除学生信息的同时,系及系主任名的信息随之删除,但这个系依然存在,而在数据库中却无法找到该系的信息,即出现了删除异常。4)更新异常更新异常若某系换系主任,数据库中该系的学生记录应全部修改。如果稍有不慎,某些记录漏改了,则造成数据的不一致,即出现了更新异常。p 发生插入异常和删除异常的原因 该关系模式中属性与属性之间存在不好的数据依赖不好的数据依赖。一个“好”的关系模式应当不会发生插入和删除异常,冗余度要尽可能地少。p 检测和消除数据冗余的方法 数据库规范化规范化 规范化是通过最小化数据冗余最小化数据冗余来提升数据库质量的过程,它是基于函数依赖以及一系列范式定义的,最为常用的是第一范式(1NF)、第二范式( 2NF )和第三范式( 3NF)。p 对于存在问题的关系模式,可以通过模式分解模式分解的方法使之规范化。p 例如将上述关系模式分解成 4 个关系模式:S(sno,sname,sage,ssex,sdept)Course(cno,cname)SC(sno,cno,score)DEPT(sdept,mname) 这样分解后,4个关系模式都不会发生插入异常、删除异常的问题,数据的冗余也得到了控制,数据的更新也变得简单。p “分解分解”是解决冗余的主要方法,也是规范化的一条原则,“关系模式有冗余问题,就分解它”。p 规范化 规范化是指用形式更为简洁、结构更加规范的关系模式取代原有关系模式的过程。关系模式必须满足一定的完整性约束条件以达到现实世界对数据的要求。 完整性约束条件主要包括以下两个方面:(1)对属性取值范围属性取值范围的限定。(2)属性值间的相互联系相互联系(主要体现在值的相等与否),这种联系称为数据依赖数据依赖。p 函数依赖 是指通过一个关系中属性间值的相等与否体现出来的数据间的相互关系 是现实世界属性间相互联系的抽象 是数据内在的性质。p 分类: 函数依赖函数依赖(Functional Dependency,FD) 多值依赖多值依赖(MultiValued Dependency,MVD) 连接依赖(Join Dependency,JD)【定义 3.1】设有关系模式R (A_1,A_2,A_n)或简记为R (U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t_1,t_2,由t_1 Xt_2 X导致t_1 Y= t_2 Y,则称X函数决定Y,或Y函数依赖于X,记为XY。XY为模式R的一个函数依赖。这里的t_1 X表示元组t_1在属性集X上的值,t_2 X表示元组t_2在属性集X上的值,FD是对关系R的一切可能的当前值r定义的,不是针对某个特定关系。通俗地说,在当前值r的两个不同元组中,如果X值相同,就一定要求Y值也相同。或者说,对于X的每一个具体值,都有Y唯一的具体值与之对应,即Y值由X值决定,因而这种数据依赖称为函数依赖。1.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。(1)XY,但 Y X,则称 XY 是非平凡的函数依赖是非平凡的函数依赖。(2)XY,但 Y X,则称 XY 是平凡的函数依赖。因为平凡的函数依赖总是成立的,所以若不特别声明,本书后面提到的函数依赖,都不包含平凡的函数依赖。(3)若 XY,YX,则称 X Y。 (4)若 Y 不函数依赖于 X,则记作 XY。【定义 3.2】在关系模式 R(U)中,如果 XY,并且对于 X 的任何一个真子集 X,都有 X Y,则称 Y 对 X 完全函数依赖完全函数依赖,记作 若 XY,如果存在 X 的某一真子集 X(X X),使 XY,则称 Y 对 X 部分函数依赖部分函数依赖,记作: 【定义 3.3】在关系模式 R(U)中,X、Y、Z 是 R 的 3 个不同的属性或属性组,如果 XY(Y X,Y 不是 X 的子集),且 Y X,YZ,Z Y.则称 Z 对X传递函数依赖传递函数依赖,记作: 传递依赖:假设ABC分别是同一个数据结构R中的三个元素或分别是R中若干数据元素的集合,如果C依赖B,而B依赖于A,那么C自然依赖于A,即称C传递依赖A。 加上条件 ,是因为如果 YX,则 X Y,实际上是 XZ,是直接函数依赖而不是传递函数依赖。【定义 3.4】设 K 是关系模式 R(U,F)中的属性或属性集合,K是 K 的任一真子集。若 KU,而不存在 KU,则 K 为 R 的候选码(Candidate Key),简称码码。(1)若候选码多于一个,则选取其中的一个为主码主码(Primary Key)。(2)包含在任一候选码中的属性,称为主属性主属性(Prime Attribute)或码属性。(3)不包含在任何候选码中的属性称为非主属性非主属性 (Nonprime Attribute)或非码属性(Non-key Attribute)。(4)在关系模式中,最简单的情况,单个属性是码,称为单码(Single Key);最极端的情况,整个属性集合是码,称为全码全码(All-Key)。p 例如: 在关系模式 S(sno,sdept,sage)中,sno 是单码。 在关系模式 SC(sno,cno,score)中,属性组合(sno,cno)是码。 在关系模式“签约(演员名,制片公司名,电影名)”中,由于一个制片公司可以为一部电影和多个演员签约,一个演员可以和多个制片公司签约饰演多部电影中的角色,一部电影可由不同的制片公司制作,所以此关系模式的码为(演员名,制片公司名,电影名),即为全码。【定义 3.5】关系模式 R 中属性或属性组X并非R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码外部码(Foreign key),也称外码。主码又和外部码一起提供了表示关系间联系关系间联系的手段。 如在 SC(sno,cno,score)中,sno 不是码,但 sno 是关系模式 S(sno,sdept,sage)的码,则 sno 是关系模式 SC 的外码。p 非规范化:一个关系中存在还可以再分的数据项 第一种是关系中具有组合数据项。 第二种是关系中具有多值数据项。p 规范化一个关系中的所有分量都是不可再分不可再分的数据项 当关系中不存在组合数据项和多值数据项,只存在不可分的数据项p 范式 利用规范化理论规范化理论,使关系模式的函数依赖集满足特定的要求,满足特定要求的关系模式称为范式。p 关系按其规范化程度从低到高可分为 5 级范式(Normal Form),分别称为 1NF、2NF、3NF(BCNF)、4NF、5NF。p 规范化程度较高者必是较低者的子集子集,即5NF4NFBCNF3NF2NF1NFp 规范化: 一个低一级范式的关系模式,通过模式分解模式分解可以转换成若干高一级范式的关系模式的集合。1)标识表中的所有的候选键候选键;2)标识表中的所有函数依赖函数依赖;3)检查函数依赖的决定因子决定因子。如果某决定因子不是候选键,则表的结构就有问题。可以通过如下方式实现:(1)把函数依赖的列放在它自己的新表中;(2)把函数依赖的决定因子作为新表的主键;(3)将决定因子的副本作为原表中外键;(4)在新表和原表之间创建参照完整性约束。4)根据需要,多次重复步骤3,直至每个表的决定因子都是候选键。p 1NF的定义如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF。俗称“表中无表表中无表”p 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。p 但是满足第一范式的关系模式并不一定是一个好的关系模式。p 什么是一个好的模式 设关系模式R1NF,如果对于R的每个函数依赖XY,若Y不属于X,则X必含有候选码,那么这个关系模式就是一个好的模式(BCNF)。p 数据依赖:函数依赖函数依赖 1-2-3-BCNF 多值依赖 4NF 连接依赖 5NFp 【定义 3.6】如果关系模式 R(U,F)1NF,且 R 中的每个非主属非主属性完全函数依赖性完全函数依赖于 R 的某个候选码,则 R 满足第二范式(Second Normal Form),记作 R 2NF。p 例: 关系模式 S-L-C (Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方。 S-L-C的码为(Sno,Cno)。 函数依赖有:p 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno)p 关系模式S-L-C不属于2NFp 一个关系模式不属于2NF,会产生以下问题: 插入异常 如果插入一个新学生,但该生未选课,即该生无Cno,由于插入元组时,必须给定码值,因此插入失败。 删除异常 如果S4只选了一门课C3,现在他不再选这门课,则删除C3后,整个元组的其他信息也被删除了。 修改复杂 如果一个学生选了多门课,则Sdept,Sloc被存储了多次。如果该生转系,则需要修改所有相关的Sdept和Sloc,造成修改的复杂化。 p 出现这种问题的原因 例子中有两类非主属性: 一类如Grade,它对码完全函数依赖 另一类如Sdept、Sloc,它们对码不是完全函数依赖p 解决方法: 用投影分解把关系模式S-L-C分解成两个关系模式SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)p 【定义 3.7】如果关系模式 R(U,F)2NF,且每个非主属性非主属性都不传递函数依赖不传递函数依赖于任何候选码,则 R 满足第三范式(Third Normal Form),记作 R3NF。p 例:SC没有传递依赖,因此SC 3NFS-L中Sno Sdept( Sdept Sno), SdeptSloc,可得Sno Sloc。解决的办法是将S-L分解成S-D(Sno,Sdept) 3NFD-L(Sdept,Sloc) 3NF传递传递p BCNF(Boyce Codd Normal Form)是由 Boyce 和 Codd 提出的,比上述的 3NF 又进了一步,通常认为 BCNF 是修正的第三范式,有时也称为扩充的第三范式。p 【定义 3.8】关系模式 R(U,F)1NF,若 XY 且 Y / X 时,X 必含有码,则 R(U,F) BCNF。也就是说,关系模式 R(U,F)中,若每个决定因素都包含码若每个决定因素都包含码,则 R(U,F)BCNF。p 由 BCNF 的定义可以得出结论,一个满足 BCNF 的关系模式有:(1)所有非主属性对每一个码都是完全函数依赖。(2)所有的主属性对每一个不包含它的码,也是完全函数依赖。(3)没有任何属性完全函数依赖于非码的任何一组属性。p 例1: 设关系模式 SC(U,F),其中,U=SNO,CNO,SCORE,F=(SNO,CNO)SCORE,(CNO,SCORE)SNO。 SC 的候选码为(SNO,CNO)和(CNO,SCORE),决定因素中都包含码,没有属性对码传递依赖或部分依赖,所以 SCBCNF。p 例2:设关系模式 STJ(S,T,J),其中,S:学生,T:教师,J:课程。每位教师只教一门课,每门课有若干教师,某一学生选定某门课,就对应一位固定的教师。 由语义可得到如下的函数依赖:(S,J)T,(S,T)J,TJ。该关系模式的候选码为(S,J),(S,T)。 因为没有任何非主属性对码传递依赖或部分依赖没有任何非主属性对码传递依赖或部分依赖, STJ 3NF。 因为T是决定因素,而T不包含码不包含码,所以STJ BCNFp 关系数据库中,对关系模式的基本要求是满足第一范式。p 规范化程度过低的关系不一定能够很好地描述现实世界 可能存在插入异常、删除异常、修改复杂、数据冗余等问题 解决方法就是对其进行规范化,转换成高级范式。p 规范化的基本思想 是逐步消除逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”。p 即采用“一事一地”的模式设计原则 让一个关系描述一个概念、一个实体或者实体间的一种联系。 若多于一个概念就把它“分离”出去。p 因此 规范化实质上是概念的单一化。p 关系模式规范化的基本步骤p 规范化的基本原则是:由低到高,逐步规范,权衡利弊,由低到高,逐步规范,权衡利弊,适可而止适可而止。p关系模型及其定义p关系代数及其运算p数据库设计的规范化p知识点小结知识点小结p本章实验本章知识小结:p 关系模型的数据结构p 关系的三类完整性约束p 关系的操作p 关系代数中传统的集合运算以及专门的关系运算p 关系规范化理论p关系模型及其定义p关系代数及其运算p数据库设计的规范化p知识点小结p本

    注意事项

    本文((本科)第3章关系模型与关系规范化理论ppt课件.pptx)为本站会员(春哥&#****71;)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开