(本科)第3章关系模型与关系规范化理论ppt课件.pptx
《(本科)第3章关系模型与关系规范化理论ppt课件.pptx》由会员分享,可在线阅读,更多相关《(本科)第3章关系模型与关系规范化理论ppt课件.pptx(119页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程主讲人:(本科)第3章-关系模型与关系规范化理论ppt课件中国农业大学 李辉p关系模型及其定义p关系代数及其运算p数据库设计的规范化p知识点小结p本章实验p以关系模型为基础的关系数据库是目前应用较为广泛的数据库。p关系模型建立在数学理论的基础上。p关系数据库的规范化理论是数据库逻辑结构设计的理论指南。p本章首先介绍了关系模型的基本概念、关系的数学定义、关系模型的3个要素以及关系代数等内容。然后主要讨论关系数据库规范化理论,讨论如何设计好的关系模式。p关系模型及其定义p关系代数及其运算p数据库设计的规范化p知识点小结p本章实验p关系模型是数据库使用的一种典型数据模型。p在关系模型中,其数据结
2、构为具有一定特征的二维表。p在关系数据库中,数据是以关系表形式存储实体数据。p关系是一个由行和列组成的二维表。p关系 单一的数据结构关系无论是实体集,还是实体集之间的联系均由单一的关系表示。 逻辑结构二维表。从用户的角度来说关系模型的逻辑结构就是一张二维表。 建立在集合代数的基础上。 元数据:关于数据库结构的数据。如:表名,列名,表列的属性等。p关系中基本术语 元组(Tuple):元组也称记录,关系表中的每行对应一个元组,组成元组的元素称为分量。数据库中的一个实体或实体之间的一个联系均使用一个元组来表示。 例:在上表中有3个元组,分别对应3个学生,“史丹妮,女,会计”是一个元组,由 3 个分量
3、组成。 属性(Attribute) 关系中的每列对应一个域。由于域可以相同,因此为了加以区分,必须给每列一个命名,这个命名就称为属性。N目关系必有n个属性。 属性具有型和值两层含义:型指字段名和属性值域;值是指属性具体的取值。 关系中的字段名具有标识列的作用,所以在同一个关系中的字段名(列名)不能相同。一个关系中通常有个多个属性,属性用于表示实体的特征。 候选码(Candidate key) 若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性或属性组为候选码(Candidate key)。 主码(Primary key) 若一个关系中有多个候选码,则选定其中一个为主码(也可以称为主
4、键,主关键字)。 当包含两个或更多个的键称为复合码(键) 主码(Primary key) 不仅可以标识唯一的行,还可以建立与别的表之间的联系。 作用:1. 作为关联表的外键,链接两个表;2. 使用主码值来组织关系的存储;3. 使用主码索引快速检索数据。 主码选择的注意事项:(1)建议取值简单的关键字为主码。(2) 为便于表的维护,不建议使用复合主键。(3)代理键 定义:一个没有实际意义的字段作为表的主键。 取值:建议由DBMS(例如MySQL)或者应用程序自动生成,避免人工录入时人为操作产生的错误。 全码 (All-key) 关系模式的所有属性是这个关系模式的候选码,称为全码。 主属性(Pri
5、me attribute)和非主属性(Non-prime attribute) 在关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。 代理键 是具有DBMS分配的唯一标识符,该标识符已经作为主键添加到表中。每次创建行时由DBMS分配代理键的唯一值,通常是较短的数字,该值永远不变。 该值对于用户没有任何意义。 例如:MySQL数据库使用AUTO_INCREMENT函数自动分配代理键的数值。在AUTO_INCREMENT中,起始值可以是任意值(默认为1),但增量总是1。p 数据库中关系的类型: 基本表(基本关系或者基表):实际存在的表,它是实际存储数据的逻辑表示。 查询表:
6、查询结果表或查询中生成的临时表。 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。p 关系的性质(1)关系中的元组存储了某个实体或实体某个部分的数据。(2)关系中元组的位置具有顺序无关性,即元组的顺序可以任意交换。(3)同一属性的数据具有同质性,即每一列中的分量是同一类型的数据,它们来自同一个域。(4)同一关系的字段名具有不可重复性,即同一关系中不同属性的数据可出自同一个域,但不同的属性要给予不同的字段名。p 关系的性质(续)(5)关系具有元组无冗余性,即关系中的任意两个元组不能完全相同。(6)关系中列的位置具有顺序无关性,即列的次序可以任意交换、重新组织。 (7)关系中每
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 域名及属性向域的映像常直接称为属性的类
8、型及长度。p 关系和关系模式的联系与区别: 关系模式是关系的框架框架或结构结构,是静态静态的、稳定稳定的。 关系是按关系模式组合的表格表格,关系既包括结构结构也包括其数据数据,关系的数据是动态的动态的、随时间不断变化的。 关系是关系模式在某一时刻的状态或内容。 实际应用中,人们通常把关系模式和关系都称为关系。p 关系数据库中关于表的三组术语的对应关系:p 关系操作的三大功能:(1)数据查询数据查询:数据检索、统计、排序、分组以及用户对信息的需求等功能。(2)数据维护数据维护:数据添加、删除、修改等数据自身更新的功能。(3)数据控制数据控制:为了保证数据的安全性和完整性而采用的数据存取控制及并发
9、控制等功能。p 关系操作的数据查询数据查询和数据维护数据维护功能使用关系代数中的8种操作来表示,即并(Union)、差(Difference)、交(Intersection)、广义的笛卡儿积(Extended Cartesian Product)、选择(Select)、投影(Project)、连接(Join)和除(Divide)。p 其中选择、投影、并、差、笛卡尔积是5种基本操作种基本操作。其他操作可以由基本操作导出。p 在关系模型中,关系数据库操作通常是用代数方法或逻辑方法实现,分别称为关系代数关系代数和关系演算关系演算。p 关系操作语言可以分为3类:(1)关系代数语言(2)关系演算语言 (
10、3)具有关系代数和关系演算双重特点的语言p 关系代数语言:用对关系的运算关系的运算来表达查询要求的语言。 p 关系演算语言:用查询得到的元组元组应满足的谓词条件来表达查询要求的语言。可以分为元组关系演算语言元组关系演算语言和域关域关系演算语言系演算语言两种。p 具有关系代数和关系演算双重特点的语言。结构化查询结构化查询语言语言(Structure Query Language,SQL)是介于关系代数和关系演算之间的语言,它包括数据定义数据定义、数据操作数据操作和数据数据控制控制 3 种功能,具有语言简洁、易学易用的特点,是关系数据库的标准语言。p 关系模型的完整性规则是对关系的某种约束条件。p
11、 关系模型允许定义3类完整性约束类完整性约束: 实体完整性 参照完整性 用户自定义的完整性。应用领域需要遵循的约束条件,体现了具体领域中的语义约束。 关系模型必须满足的完整性约束条件,称为两个不变性。 由关系系统自动支持。p 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值不能取空值。 例如,学生关系“学生(学号,姓名,性别,专业号,年龄)”中,“学号”为主码,则“学号”不能取空值。p 实体完整性规则规定基本关系的主码不能取空值,若主码由多个属性组成,则所有这些属性都不都不可以取空值。 例如,学生选课关系“选修(学号,课程号,成绩)”中,“学号、课程号”为主码,则“学号”和“课
12、程号”两个属性都不能取空值。p 对实体完整性规则的说明:(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应信息世界的一个实体集。(2)信息世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系模型中以主码作为唯一性唯一性标识。(4)主码中的属性即主属性不能取空值不能取空值。p 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S有可能是同一关系),则对于R中每个元组在F上的值必须为以下值之一。(1)取空值空值(F的每个属性值均为空值)。(2)等于S中某个元组的主码值主码值。p 主码(主键)与外码(外键)的列名不一定相同列名不一定
13、相同,唯一的要求是它们的值的域域必须相同。p 实例: 学生关系和专业关系表示如下,其中主码用下划线标识:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名) “专业号”属性只能取下面两类值: 空值,表示尚未给该学生分配专业。 非空值,这时该值必须是专业关系中某个元组的“专业号”值。p 针对某一具体关系数据库的约束条件的,它反映某一具体应用所涉及的数据必须满足的语义要求。p DBMS可以为用户实现如下自定义完整性约束:(1)定义域的数据类型和取值范围。(2)定义属性的数据类型和取值范围。(3)定义属性的缺省值。(4)定义属性是否允许空值。(5)定义属性取值唯一性。(6)定义属性间的数据依
14、赖性。p关系模型及其定义p关系代数及其运算关系代数及其运算p数据库设计的规范化p知识点小结p本章实验p 关系代数是一种抽象的查询语言查询语言。p 是关系数据操作语言的一种传统表达方式,它是用对关系的运算来表达查询的。p 关系代数是建立在集合代数集合代数的基础上。p 关系数据结构的形式化定义:(1)域(Domain)(2)笛卡尔积(Cartesian Product)(3)关系(Relation)p 域(Domain) 域是一组具有相同数据类型值的集合。 在关系模型中,使用域来表示实体属性的取值范围实体属性的取值范围。 通常用Di表示某个域。 例如: 整数 实数 介于某个取值范围的整数 长度指定
15、长度的字符串集合 男,女 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叫作一个分量。 张清玫、计算机专业、李勇
16、、刘晨等都是分量。 基数(Cardinal number) 若Di(i1,2,n)为有限集,其基数为mi(i1,2,n 则D1D2Dn的基数M为: 笛卡尔积的表示方法 笛卡尔积可表示为一个二维表。 表中的每行对应一个元组,表中的每列对应一个域。niimM1 给出3个域:姓名集合:D1=史丹妮,周冬元,李晓辉性别集合:D2=男,女专业集合:D3=会计,商务 笛卡尔积的结果:D1D2D3(史丹妮,男,会计),(史丹妮,男,商务),(史丹妮,女,会计),(史丹妮,女,商务),(周冬元,男,会计),(周冬元,男,商务),(周冬元,女,会计),(周冬元,女,商务),(李晓辉,男,会计),(李晓辉,男,商
17、务),(李晓辉,女,会计),(李晓辉,女,商务) 笛卡尔积结果表:p 关系 关系为多个域的笛卡尔乘积多个域的笛卡尔乘积的有限子集有限子集!是一张二维表。 D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为:R(D1,D2,Dn)R:关系名n:关系的目或度(Degree) 当n=1时,称该关系为单目关系(Unary relation); 当n=2时,称该关系为二目关系(Binary relation)。 从上述D1,D2,D3的笛卡儿积中取出一个子集来构造一个学生关系。 由于一个学生只有一个专业和性别,所以笛卡儿积中的许多元组在实际中是无意义的,仅仅挑出有实际意义的元组构建一个关系,该关
18、系名为 Student,字段名取域名:姓名,性别和专业。p 运算的三要素:运算对象、运算符、运算结果。p 关系代数的运算对象运算对象是关系关系,运算结果运算结果亦为关系关系。p 关系代数中使用的运算符包括4类:集合运算符集合运算符、专门的关专门的关系运算符系运算符、比较运算符比较运算符和逻辑运算符逻辑运算符。p 关系代数的运算按运算符的不同可分为: 传统的集合运算:将关系看成元组的集合,其运算是从关系的“水平”方向即行行的角度进行的。 专门的关系运算:不仅涉及行行而且涉及列列。比较运算符和逻辑运算符是用来辅助专门的关系运算进行操作的。p 传统的集合运算是二目运算,包括并、交、差、广义笛卡儿积4
19、种运算。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的元组组
20、成。关系的交可以用差来表示,即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
21、表示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=t
22、Z|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 表示学号,Sn
23、ame 表示姓名,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
24、:查询年龄小于 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:分
25、别为R和S上度数相等且可比的属性组 :比较运算符 从R和S的笛卡尔积RS中选取R关系在A属性组上的值与S关系在B属性组上值满足比较关系的元组。p 两类最常用也最重要的连接: 等值连接 为“”的连接运算称为等值连接 从关系R与S的广义笛卡尔积中选取A、B属性值相等属性值相等的那些元组 自然连接 一种特殊的等值连接 要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的字段名去掉重复的字段名去掉 若R和S具有相同的属性组B,则记作: 一般连接与自然连接的区别: 一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复列取消重复列,所以是同时从行行和列列的角度进行运算。ABSR 外
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 关系 模型 规范化 理论 ppt 课件
限制150内