1、第二章 关系数据库,2.1 关系数据库概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系演算*2.6 关系数据库管理系统,2.1 关系数据库概述,关系数据库系统是支持关系模型的数据库系统关系模型是建立在集合代数的理论基础上的,关 系的定义和各种操作运算可以用集合代数给出关系模型三要素 关系数据结构:二维表 关系操作:查询,插入,删除,修改 完整性约束:实体,参照,自定义,关系数据语言分类:,关系代数语言:ISBL关系演算语言 元组关系演算语言:ALPHA,QUEL 域关系演算语言:QBE结构化查询语言SQL,1)域:一组具有相同数据类型的值的集合。 基数2)笛卡尔积,1.
2、 关系,2.2 关系数据结构,D1 姓名集合=张清玫,刘逸D2 性别=男,女,3)关系 的子集称为定义在域 上的关系,表示成 关系的目或度:列的个数 属性:列,对每列起个名字 候选码:唯一标识元组的最小属性组 主属性 :候选码的诸属性 非码属性:不包含在任何侯选码中的属性 主码:一个关系中选定的一个候选码 全码:关系模式的所有属性组是这个关系模式的候选码,实际应用中关系往往是由笛卡儿积中有意义的 子集构成如关系: 人员(姓名,性别),关系的分类: 基本关系(表) 查询表 视图 基本关系的性质: 列是同质的 同一表中列名不同 列序无关 表中两行的候选码不能相同 行序无关 分量是原子的,关系的描述
3、称为关系模式关系模式 R ( U, D, DOM, F ) 简记为 R ( U ) 或 R (A1, A2, , An),D及DOM通常直接表示为属性的类型、长度“型”和“值”,2. 关系模式,3. 关系数据库,一个给定应用领域中,相应于所有实体和实体间 联系的关系的集合构成一个关系数据库“型”和“值”:关系数据库(模式)在一个关系数据库中,关系不能重名,2.3 关系的完整性,1. 实体完整性:若属性A是基本关系R的主属性,则 A不能取空值2. 参照完整性 外码定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,称F是基本关系R的外码,R为参照关系,S
4、为被参照关系或目标关系。,学生(学号,姓名,性别,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩),例:,学生(学号,姓名,性别,年龄,班长),若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(关系R、S 不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值,3. 用户定义的完整性,针对具体关系数据库的约束条件如学生关系中: 学号的格式形如“PB06210022” 姓名要求不能取空值 年龄小于30岁 性别只能是“男”或“女”,2.4 关系代数,关系代数由一组关系运算组成,是对于关系的操作集。
5、关系运算以一个或多个关系作为操作的对象,运算结果是一个新的关系。用关系运算实现查询。关系代数运算符 集合运算符:(并),(差),(交),(笛卡儿积) 关系运算符:(选择),(投影),(连接),(除) 比较运算符: ,=, 逻辑运算符:(非),(与),(或)关系代数运算可分为传统集合运算和专业的关系运算,记号:,R(A1, A2, , An),R,tR,tAiA=Ai1, Ai2, , Aik, , tAtr R,tsS,R(X, Z),当tX=x时,x在R中的象集: Zx=tZ| t R,tX=x,关系R与S的并由属于R或属于S的元组组成, 记为RSR、S应是同类关系结果关系中要去掉重复元组,
6、1. 并,2.4.1 传统的集合运算,关系R与S的差由属于R不属于S的元组组成 记为RSR、S应是同类关系,2. 差,关系R与S的交由属于R且属于S的元组组成, 记为RS R、S应是同类关系,3. 交,4. 广义笛卡尔积,R S RS,R S R S,R S,单目运算 从一个给定的关系中,抽出满足给定条件的那些元组,组成一个新的关系,记为对行操作,1. 选择,2.4.2 专门的关系运算,2. 投影,单目运算 关系R在一组属性A上投影,得到新关系,新关系中只包括属性组A,记为新关系中要去掉重复元组对列操作,3. 连接,双目运算从两个关系 R、S 的笛卡尔乘积中选取满足属性间给定条件的那些元组,组
7、成新关系,记为A、B应是度数相等且可比的属性组,等值连接,即条件为A = B 的连接对行操作自然连接,即条件为R.A =S.A的连接R、S具有相同的属性组新关系中要去掉重复的属性同时对行和列操作,R S,外连接,如果R和S在做自然连接时,把该舍弃的元组也保存在新关系中,在新增加的属性上填空值(null),这种操作称为“外连接”。如果把R中该舍弃的元组保留在新关系中称左连接;把S中该舍弃的元组保留在新关系中称右连接。,外连接,4. 除,双目运算关系R(X,Y)在属性组X上各分量的象集包含有关系S(Y,Z)在属性组Y上投影的那些元组,在X上的投影,组成新关系,记为 R.Y、S.Y应出自相同的域集同
8、时对行和列操作,Y=B,C,R S RS,象集 Ya1 Ya2 Ya3 Ya4,R S RS,例:S (Sno, Sname, Ssex, Sage),C (Cno, Cname, Cpno) SC (Sno, Cno, Grade) 1. 查询选修了2号课程的学生学号2. 查询选修了2号课程的学生学号和姓名3. 查询至少选修了一门先行课为1号课程的学生姓名4. 查询至少选修1号课程和3号课程的学生学号,5. 查询选修了全部课程的学生学号和姓名6. 查询所学课程包含学生95001所学课程的学生学号,2.6 关系数据库管理系统,支持关系模型的系统,简称为关系系统一个关系数据库管理系统至少应支持:关系数据库(即关系数据结构)支持选择、投影和连接操作按支持关系模型程度的不同分类:表式系统:仅支持关系数据结构,不支持集合级操作最小关系系统:支持关系结构和选择、投影、连接集合 操作关系完备系统:支持关系结构和所有关系代数操作全关系系统:支持关系模型的所有特征,