资源预览内容
第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
第9页 / 共47页
第10页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据库系统原理 与应用技术,机械工业出版社,第3章 关系数据库理论基础,3.1 关系模型概述 3.2 关系数据模型的形式化定义 3.3 关系模式与关系数据库 3.4 关系模型的完整性约束 3.5 关系代数 3.6 本章小结,3.1 关系模型概述,3.1.1 关系数据结构 3.1.2 关系操作 3.1.3 数据完整性约束,3.1.1关系数据结构,关系数据模型源于数学。 用二维表来组织数据,这个二维表在关系数据库中就称为关系。 关系数据库就是表或者说是关系的集合。,学生基本信息表,3.1.2 关系操作,传统的集合运算: 并(Union) 交(Intersction) 差(Difference) 广义笛卡尔积(Extended Cartesian Product) 专门的关系运算: 选择(Select) 投影(Project) 连接(Join) 除(Divide) 有关的数据操作: 查询(Query) 增加(Insert) 删除(Delete) 修改(Update),关系操作语言,3.1.3 数据完整性约束,数据完整性是指数据库中存储的数据是有意义的或正确的。 主要包括三大类: 实体完整性 参照完整性 用户定义的完整性,3.2 关系数据模型的形式化定义,1.笛卡尔积: 设D1,D2,Dn为任意集合,定义笛卡尔积D1,D2,Dn为: D1D2 Dn(d1,d2,dn)|diDi,i1,2,n 其中每一个元素(d1,d2,dn)称为一个n元组,简称元组。元组中每一个di称为是一个分量。,笛卡尔积示例,设:D1=学生名称集合(sname)=李清,刘涛,王亮 D2=性别集合(ssex)=男,女 D3=专业集合(dname)=计算机专业,管理工程专业 则D1,D2,D3的笛卡尔积为: D1D2D3= (李清,男,计算机专业),(李清,男,管理工程专业), (李清,女,计算机专业),(李清,女,管理工程专业), (刘涛,男,计算机专业),(刘涛,男,管理工程专业), (刘涛,女,计算机专业),(刘涛,女,管理工程专业), (王亮,男,计算机专业),(王亮,男,管理工程专业), (王亮,女,计算机专业),(王亮,女,管理工程专业),笛卡尔积示例,D1,D2 ,D3的笛卡尔积,3.2 关系数据模型的形式化定义,2.关系(Relation) D1D2Dn的子集叫做在域D1,D2,Dn上的关系,表示为:R(D1,D2,Dn) 这里R表示关系的名字,n是关系的目或度(Degree)。 关系中的每个元素是关系中的元组,通常用t表示。 当n=1时,称该关系为单元关系(Unary relation)。 当n=2时,称该关系为二元关系(Binary relation)。,3.2 关系数据模型的形式化定义,关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 若关系中的某一属性的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。 若有一个关系有多个候选码,则选定其中一个为主码(Primary Key)。 主码的诸属性称为主属性(Prime attribute)。 不包含任何候选码中的属性称为非码属性(Non-key attribute)。 在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。,3.2 关系数据模型的形式化定义,3、关系的性质 列是同质的(Homogeneous),即每一列中的分量同一类型的数据,来自同一个域。 不同的列可出自同一个域,称其中的每列为一个属性,不同的属性要给予不同的属性名。 列的顺序无所谓,即列的次序可以任意交换。 任意两个元组不能完全相同 。 行的顺序无所谓,即行的次序可以任意交换。 分量必须取原子值,即每一个分量都必须是不可分的数据项。,3.3关系模式与关系数据库,3.3.1 关系模式 3.3.2 关系数据库,3.3.1关系模式,关系模式是对关系的描述,包括如下方面: 首先,关系实质上是一张二维表,表的每一行为一个元组,每一列为一个属性。 其次,一个关系通常是由赋予它的元组语义来确定的。 关系模式应当刻画出这些完整性约束条件。 所以,一个关系模式应当有一个5元组: R(U,D,dom,F) 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性的域,dom为属性向域的映像集合,F为属性间数据的依赖的集合。 关系模式通常可以简记为: R(U)或R(A1,A2,An),3.3.2 关系数据库,1.关系数据库 关系数据库就是基于关系数据模型的数据库,而关系数据库模式是关系数据库中一组关系模式的集合。 2.关系数据库模式 关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。,3.4 关系模型的完整性约束,3.4.1 实体完整性 3.4.2 参照完整性 3.4.3 用户定义完整性,3.4.1 实体完整性,实体完整性规则保证关系中的每个元组都是可以识别的和唯一的。 即是指关系数据库中所有的表都必须有主码,而且表中不允许存在如下的记录: 无主码值的记录 主码值相同的记录 对于实体完整性规则说明如下: (1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。 (2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。 (3)相应地,关系模型中以主码作为唯一性标识。 (4)主码中的属性即主属性不能取空值。,3.4.2 参照完整性,现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。 参照完整性规则就是定义外码与主码之间的引用规则。 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks的主码Ks相对应,则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值); 或者等于S中某个元组的主码值。,3.4.3 用户定义完整性,任何关系数据库系统都应该支持实体完整性和参照完整性。 除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。 它反映某一具体应用所涉及的数据必须满足的语义要求。,用户定义的完整性,按应用语义,属性数据有: 类型与长度限制:方便计算机操作 取值范围限制:防止属性值与应用语义矛盾 语义许可取值范围约束例: 例如:成绩取 0 100, 优、良、中、及格、不及格,3.5关系代数,3.5.1 关系代数运算 3.5.2 传统的集合运算 3.5.3 专门的关系运算,3.5.1 关系代数运算,关系模型源于数学,关系是由元组构成的集合,可以通过关系的运算来表达查询要求 关系代数是关系操作语言的一种传统的表示方式,它是一种抽象的查询语言。 关系代数的运算可分为两大类: 传统的集合运算:广义笛卡尔积运算、并、交和差运算。 专门的关系运算:选择、投影、连接和除运算。,3.5.1关系代数运算,关系运算符,3.5.2 传统的集合运算,传统的集合运算是二目运算, 设关系R和S均是n元关系,且相应的属性值取自同一个值域,则可以定义三种运算: 并运算() 交运算() 差运算(),1、并(union),关系R与关系S的并记为: RSt | tR tS 其结果仍是n目关系,由属于R或属于S的元组组成。,2、差(difference),关系R与关系S的差记为: RSt | tR tS 其结果仍是n目关系,由属于R并且也属于S的元组组成。,3、交(intersection),关系R与关系S的交记为: RSt | tR tS 其结果仍是n目关系,由属于R并且也属于S的元组组成。,4、广义笛卡尔积(extended cartesian product),两个分别为n目和m目的关系R和关系S的广义笛卡尔积是一个(mn)列的元组的集合。 元组的前n个列是关系R的一个元组,后m个列是关系S的一个元组。 若R有K1个元组,S有K2个元组,则关系R和关系S的广义笛卡尔积有K1K2个元组,记做: RStrts | trR tsS trts表示由两个元组tr和ts前后有序连接而成的一个元组。,广义笛卡尔积示例,3.5.3 专门的关系运算,专门的关系运算包括:投影、选择、连接和除等操作,其中第一个为一元操作,后三者为二元操作。 投影 选择 连接 除,一元操作,二元操作,1选择(Selection),F(R) r | rR F(t)真 其中:是选择运算符,R是关系名,r是元组,F是逻辑表达式,取逻辑“真”值或“假”值。 经选择运算后所得的关系是从R中选出满足条件F为真的元组所构成的与R是同类关系. 例,选择系为计算机系的学生信息: Sdept计算机系(学生表),2投影(Projection),A(R) r.A | rR 其中: 是投影运算符, R是关系名, A是被投影的属性或属性组。 r.A表示r这个元组中相应于属性(集)A的分量,也可以表示为rA。 投影运算的结果是选择指定的属性,形成一个可能有重复行的表,再删除重复的行,形成新的表. 例如选择sname,sdept两个列构成新关系: sname, sdept(Student),3、连接(join),连接运算用来连接相互之间有联系的两个关系,从而产生一个新的关系。这个过程由连接属性(字段)来实现。一般该连接属性(字段)是出现在不同关系中的语义相同的属性。 其中: A和B分别是关系R和S上可比的属性组, 是比较运算符, 连接运算从R和S的广义笛卡尔积RS中选择(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较运算符的元组。 连接运算中最重要也是最常用的连接有两个:一是等值连接;还有就是自然连接。,等值连接,当为“”时的连接为等值连接, 是从关系R与关系S的广义笛卡尔积中选取A,B属性值相等的那些元组。,自然连接,自然连接是一种特殊的连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且自然连接去掉结果中的重复列。 自然连接与等值连接的差别为: 自然连接要求相等的分量必须有共同的属性名,等值连接则不要求; 自然连接要求把重复的属性名去掉,等值连接却不这样做。,R,S,R,S,R,S,R,S,4、除(division),除法的简单形式 设关系S的属性是关系R的属性的一部分,则RS为这样一个关系: (1)此关系的属性是由属于R但不属于S的所有属性组成; (2)RS的任一元组都是R中某元组的一部分。但必须符合下列要求,即任取属于RS的一个元组t,则t与S的任一元组连接后,都为R中原有的一个元组。,4、除(division),除法的一般形式 设有关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则: R(X,Y) S(Y,Z)R(X,Y) Y(S) 关系的除运算是关系运算中最复杂的一种,上式解决了R S的属性组成及其元组应满足的条件,但要确定R S元组,要先引入象集的概念。,4、除(division),象集:给定一个关系R(X,Y),X和Y为属性组。定义,当tXx时,x在R中的象集为: Y x = tY | tR tX=x 上式中:tY和tX分别表示R中的元组t 在属性组Y和X上的分量的集合。 除法的一般形式: 设有关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则: RStrX | trR Y(S)Yx ,除示例,所有选修了课程号为c02和c0
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号