《2022年数据库系统概论王珊萨师煊第二章知识点 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库系统概论王珊萨师煊第二章知识点 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章关系数据库关系数据结构及形式化定义按照数据模型的3 个要素,关系模型由关系数据结构、关系操作集合和关系完整性约束3 部分组成。关系在用户看来,关系模型中的数据的逻辑结构是一张扁平的二维表。关系模型是建立在集合代数的基础上的,从集合论角度给出关系数据结构的形式化定义为:1、 域定义 2.1 域是一组具有相同数据类型的值的集合2、 笛卡尔积笛卡尔积是域上面的一种集合运算。定义 2.2 给定一组域D1,D2, ,Dn,这些域中可以是相同的域。D1,D2,Dn的笛卡尔积为D1D2, Dn= (d1,d2, , ,dn) di Di,i=1,2,n 其中每一个元素(d1,d2, ,dn)叫做一个n
2、 元组或简称元组。元组中的每一个值di叫作一个分量。若 Di(i=1,2, ,n )为有限集,其基数为mi(i=1,2,n ) ,则 D1D2, Dn的基数 M为M =mini=1笛卡尔积可表示为一个二维表。表中每行对应一个元组,表中每一列的值来自一个域。3、 关系定义 2.3 D1D2, Dn的子集叫作在域D1D2, Dn上的关系,表示为R(D1,D2, , ,Dn)这里 R表示关系的名字,n 是关系的目或度。当 n=1 时,为单元关系或一元关系;当n=2 时为二元关系。关系是笛卡尔积的有限子集,表的每列对应一个域。由于列可以相同,为了加以区分,必须对每列起一个名字,称为属性。若关系中的某一
3、属性组的值能唯一地标识一个元组,则称该属性组为候选码。若一个关系有多个候选码,则选定其中一个为主码。候选码的诸属性成为主属性。不包含在任何候选码中的属性成为非主属性或非码属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。关系可以由三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。基本关系具有6条性质:列是同质的;不同的列可以出自同一个域,不同的属性要给与不同的属性名;列的顺序无所谓,即列的次序可以任意交换;任意两个元组的候选码不能相同;行的顺序无所谓;分量必须取原子值,即每个分量都必须是不可分的数据项。关系模式定义 2.4 关系的描述称为关系模式。它可以形
4、式化地表示为R(U,D,DOM,F)其中 R 为关系名, U 为组成该关系的属性名集合,D 为属性组U中属性所来自的域,DOM 为名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 属性向域的映像集合,F为属性间数据的依赖关系集合。关系模式通常可以简记为R(U)或 R(A1,A2, ,An) ,其中 R为关系名, A1,A2, ,An为属性名。关系数据库关系数据库也有型和值之分。关系数据库的型也成为关系数据库模式,是对关系数据库的描
5、述。关系数据库模式包括:若干域的定义;在这些域上定义的若干关系模式。关系操作基本的关系操作关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。查询操作又可分为:选择、投影、连接、除、并、差、交、笛卡尔积等。其中选择( ) 、投影( ) 、并()、差( - ) 、笛卡尔积()是5 种基本操作。关系操作的特点是集合操作方式关系数据语言的分类关系代数是用对关系的运算来表达查询要求的。关系演算式用谓词来表达查询要求的。关系数据语言可以分为三类:关系代数语言例如 ISBL 元组关系演算语言例如 APLHA 、QUEL 关系数据语言关系演算语言域关系演算语言例如 QBE 具有关系代数和关系
6、演算双重特点的语言例如 SQL 这些关系数据语言的共同特点是:语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。关系的完整性关系的三类完整性约束关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。实体完整性和参照完整性被称作是关系的两个不变性,由关系系统自动支持。实体完整性规则 2.1 实体完整性规则若属性(指一个或一组属性)A是基本关系R的主属性, 则 A不能取空值。参照完整性定义 2.5 设 F 是基本关系R的一个或一组属性,但不是关系R的码。 Ks是基本关系S的主码。如果F与 Ks相对应, 则称 F 是 R的外码。 并称基本关系R为参照关
7、系, 基本关系 S为被参照关系或目标关系。关系R和 S不一定是不同的关系。同一关系内部属性之间也可能存在引用关系;外码并不一定要与相应的主码同名。规则 2.2 参照完整性规则若属性(或属性组)F 是基本关系R 的外码,它与基本关系S 的主码Ks相对应(基本关系R和 S不一定是不同的关系) ,则对于 R中每个元组在F 上的值必须为:或者取空值( F的每个属性值均为空值);或者等于 S中某个元组的主码值。用户定义的完整性关系代数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共
8、5 页 - - - - - - - - - 关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。传统的集合运算将关系看作元组的集合,运算是从关系的“水平”方向进行。专门的关系运算不仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。传统的集合运算传统的集合运算是二目运算,包括并、差、交、笛卡尔积四种运算。RS=t t Rt S R-S =t t Rt?S RS =t tRt S=R-(R-S) RS=trtstrRtsS 专门的关系运算专门的关系运算包括选择、投影、链接、除运算等。选择:又称为限制,它是在关系R中选择满足给定条件的诸元
9、组,记作F(R)= tt RF(t)= 真 其中 F 表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。选择运算实际上是从关系R中选取使逻辑表达式F 为真的元组。这是从行的角度进行的运算。Exp:Sdept=IS(Student) 投影:关系R上的投影是从R中选择出若干属性列组成新的关系。记作A(R)=tA t R 其中 A为 R中的属性列。投影操作时从列的角度进行的运算。投影操作不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后可能出现重复行。Exp:Sname,Sdept(Student) 连接:也成为 连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件
10、的元组。连接运算中有两种最为重要最为常用的连接:等值连接:即 为“=”的连接运算自然连接:要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。一般的连接是从行的角度进行运算。自然连接是同时从行和列的角度进行运算。在两个关系R 和 S 作自然连接时,关系R中某些元组有可能在关系S 中不存在公共属性上值相等的元组,从而造成这些元组在操作时被舍弃了。如果把被舍弃的元组也保存在结果关系中,而在其他属性上填空值(NULL ) ,那么这种连接就叫做外连接。如果只把左边关系R 中要舍弃的元组保留就叫做左外连接,如果只把右边关系S 中舍弃的元组保留就叫作右外连接。除运算: 给定关系
11、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上投影的集合。除操作是同时从行和列的角度进行运算。关系演算元组关系演算语言ALPHA ALPHA语言主要有GET 、PUT 、HOLD 、UPDATE 、DELETE 、DROP6 条语句。语句的基本格式是: 操作语句工作空间名(表达式) :操作条件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
12、- - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 检索操作:用GET语句实现GET W(SC.Cno) GET W(Student.Sno,Student.Sage):Student.Sdept=IS Student.Sage20 GET W(Student.Sno,Student.Sage):Student.Sdept=CS DOWN Student.Sage 带定额的检索GET W(3)( Student.Sno,Student.Sage):Student.Sdept=IS DOWN Student.Sag
13、e用元组变量的检索,元组变量主要有两方面的用途:1. 简化关系名;2. 操作条件中使用量词时必须用元组变量。RANGE Student X GET W(X.Sname):X.Sdept= IS 用存在量词的检索:查询条件使用量词时必须用元组变量。RANGE Course CX SC SCX GET W(Student.Sname):?SCX?CX(SCX.Sno=Student.Sno CX.Cno=SCX.Cno CX.Pcno= 6 ) 用全称量词的检索:RANGE SC SCX GET W(Student.Sname):?SCX (SCX.Sno Student.SnoSCX.Cno 1
14、 ) 用蕴涵的检索RANGE Couse CX SC SCX SC SCY GET W(Student.Sno):?CX(?SCX(SCX,Sno= 95002 SCX.Cno=CX.Cno) ?SCY(SCY.Sno=Student.SnoSCY .Cno=CX.Cno) 聚集函数,关系演算中提供了COUNT, TOTAL, MAX, MIN, AVG 等聚集函数。GET W(COUNT(Student.Sdept) GET W(AVG(Student.Sage) :Student= IS ) 更新操作:修改操作:用UPDATE语句实现为修改数据而读取元组时必须使用HOLD语句,HOLD语句
15、是带上并发控制的GET语句。HOLD W (Stuednt.Sno, Student.Sdept):Student.Snp= 95007 MOVE IS TO W.Sdept UPDATE W 插入操作:用PUT语句实现MOVE 8 TO W.Cno MOVE 计算机组织与结构 TO W.Cname MOVE 6 To W.Cpno MOVE 2 To W.Ccredit PUT W(Course) (把 W 中的元组插入制定关系Course 中)删除操作:用DELETE 语句实现HOLD W(Student):Student.Sno= 95110 DELETE W Exp:若要将学号9500
16、1 改为 95102 先将 95001 的记录读取到工作空间中;然后删除这条记录;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 再用宿主语言MOVE在工作空间中建立新元组;用 PUT语句把该元组存入指定的关系中。元组关系演算域关系演算语言QBE 域关系演算以元组变量的分量即域变量作为谓词变元的基本对象。QBE 是一种高度非过程化的基于屏幕表格的查询语言,用户通过终端屏幕编辑程序以填写表格的方式构造查询要求,而查询结果也是以表格
17、形式显示。简单操作简单查询: P. 是操作符,表示打印,实际上是显示。条件查询聚集函数,主要包括CNT,SUM,AVG,MAX,MIN 等对查询结果排序: “AO(i).”或“ DO(i).” ,升序降序,i 表示排序的优先级,i 值越小优先级越高。更新操作修改操作:修改操作符为“U.” 。操作符“ U.”既可以放在值上也可以放在关系上。插入操作:插入操作符为“I.” 。新插入的元组必须具有码值,其他属性值可以为空。删除操作:删除操作符为“D.”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -