数据库原理10-第2章.ppt_第1页
数据库原理10-第2章.ppt_第2页
数据库原理10-第2章.ppt_第3页
数据库原理10-第2章.ppt_第4页
数据库原理10-第2章.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、管理学院 信息管理系 肖 洁,数据库原理及应用,第2章 关系数据库,本章要点,关系数据结构 关系操作 关系的完整性 关系代数,一、关系数据结构,一个关系模型的逻辑结构就是一张二维表,由行和列组成。 几个基本概念: 关系:对应通常所说的二维表。 元组:表中的一行即为一个元组。 属性:表中的一列即为一个属性。 主关键字:表中的某个属性组,它可以惟一确定一个元组。 域:属性的取值范围。 分量:元组中的一个属性值。 关系模式:对关系的描述,一般表示为: 关系名(属性1,属性2,),数据库中的关系有以下性质: 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。 不同的列可以出自同一个域,每一列

2、称为属性,要给予不同的属性名。 列的顺序无所谓,即列的次序可以任意交换。 任意两个元组不能完全相同。 行的顺序无所谓,即行的次序可以任意交换。 每一分量必须是不可分的数据项。,1、常用的关系操作 查询操作:选择(select)、投影(project)、 连接(join)、除(divide)、并(union)、 交(intersection)、差(difference)等; 更新操作:增加(insert)、删除(delete)、 修改(update)。 ( 表示、这些比较运算符中 的一种),二、关系操作,2、关系数据库语言 (1)关系代数语言 用对关系的运算来表达查询要求的方式。 (2)关系演算

3、语言 用谓词来表达查询要求的方式。 (3)SQL语言 是集查询、DDL和DCL于一体的关系数据库语言。,例如:学生的年龄要大于5,小于100; 库存量不能小于零; 工人的工龄要小于其年龄; 语义施加在数据上的限制,统称为完整性约束。 实体完整性约束 参照完整性约束 用户定义完整性约束,三、关系的完整性约束,候选关键字(Candidate Key) 若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选关键字。 主关键字(Primary Key) 若一个关系中有多个候选关键字,则选定一个为主关键字。 学生(学号,姓名,性别,院系号,年龄) 考试(学号,课程号,成绩) 主属性(Prima

4、ry Attribute) 候选关键字的属性称为主属性。,外部关键字(Foreign Key) 设F是基本关系R的一个或一组属性,但不是R的键(主关键字或候选关键字),如果F与基本关系S的主关键字K相对应,则称F是R的外部关键字,并称R为参照关系,S为被参照关系。 学生(学号,姓名,性别,院系号,年龄) 院系(院系号,院系名),1、实体完整性(Entity Integrity) 实体完整性规则是指若属性A是关系R的主属性,则属性A不能取空值(Null)。空值就是“不知道”或“无意义”。 说明: (1)一个关系通常对应现实世界的一个实体集。 (2)现实世界中实体是可区分的,即具有某种惟一性。 (

5、3)关系模型中由主关键字作为惟一性标识。 (4)主关键字不能取空值。 注:大部分DBMS支持实体完整性约束检查,但不是强制的。,例1 有如下关系模式: 学生(学号,姓名,性别,年龄,籍贯) 学号属性为主关键字,不能取空值。 考试(学号,课程号,成绩) 学号,课程号为主关键字,都不能取空值。,2、参照完整性(Referential Integrity) 若属性(或属性组)F 是关系R的外部关键字,它与关系S的主关键字Ks相对应(关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为如下两种取值之一: (1)取空值(F的每个属性值均为空值); (2)等于S中某个元组的主关键字值。 注:

6、大型的DBMS都提供了参照完整性约束检查功能,但不 普遍。,例2 有如下关系模式: 学生(学号,姓名,性别,院系号,年龄) 院系(院系号,院系名) 院系号属性是学生关系的外部关键字, 院系关系是被参照关系, 学生关系为参照关系。,例3 有如下关系模式: 学生(学号,姓名,性别,院系号,年龄) 课程(课程号,课程名,学分) 考试(学号,课程号,成绩) 学号,课程号是考试关系的外部关键字。 学生关系和课程关系均为被参照关系, 考试关系为参照关系。,例4 有如下关系模式: 学生(学号,姓名,性别,院系号,年龄,班长) 班长属性与本身的主关键字学号属性相对应, 因此班长是外部关键字。 学生关系既是参照

7、关系又是被参照关系。,3、用户定义完整性 用户定义的完整性就是用户按照实际的数据库应用系统运行环境要求,针对某一具体关系数据库的约束条件。 例如,某个属性“成绩”的取值范围必须在0-100之间。用户定义完整性反映某一具体应用所涉及的数据必须满足的语义要求。 注:有些DBMS中,允许用户对个别数据说明一些约束及 违反约束时的处理过程,但迄今还没有一个RDBMS产品,全面实现用户定义完整性约束检查功能。,四、关系代数,关系代数的运算有两类:一类是传统的集合运算,另一类是特殊的关系运算。 其运算符包括四类: 集合运算符(、 、 、 ) 特殊的关系运算符(、 、) 比较运算符(、) 逻辑运算符(、),

8、(一)传统的集合运算 传统的集合运算包括并、交、差、广义笛卡尔积四种运算。当集合运算并、交、差用于关系时,要求参与运算的两个关系必须是相容的,即两个关系的度数一致,并且关系属性的性质必须一致。,设R和S均为n目关系。 (1)并运算(union) 是将两个关系中的所有元组构成新的关系,并运算的结果中必须消除重复值。 关系R和S的并记作: RS=t|tRtS 其结果仍为n目关系,由属于R或属于S的元 组组成。,(2)交运算(intersection) 将两个关系中的公共元组构成新的关系。 关系R与S的交记作: RS=t|tRtS 其结果关系仍为n目关系,由既属于R又属于 S的元组组成。,(3)差运

9、算(difference) 运算结果是由属于一个关系并且不属于另一 个关系的元组构成的新关系,就是从一个关系中 减去另一个关系。 关系R与S的差记作: R-S=t|tRtS 其结果关系仍为n目关系,由属于R而不属于 S的所有元组组成。 R-S和S-R是不同的。,(4)广义笛卡尔积(extended cartesian product) n目关系R与m目关系S的广义笛卡尔积是一 个(n+m)列的元组的集合。 元组的前n列是关系R的一个元组,后m列是 关系S的一个元组。 若R有k1个元组,S有k2个元组,则关系R与 关系S的广义笛卡尔积有k1k2个元组。记作: RS = trts| trRtsS

10、,R,S,RS,R-S,RS,S-R,RS,(二)特殊的关系运算 1、选择(Selection) 是按照给定条件从指定的关系中挑选出满足条件的元组构成新的关系。或者说,选择运算的结果是一个表的行的子集。它是在关系R中选择满足给定条件的诸元组。记作 F(R)=t| tRF(t)=真, 其中F为逻辑表达式。选择运算实际上是从关系R中选取逻辑表达式F为真的元组。这是从行的角度进行的运算。,学生表,选择操作的结果:,性别=男 AND 年龄=19(学生),选择操作的结果:,班级号=01001 AND 年龄19(学生),2、投影(projection) 是从指定的关系中挑选出某些属性构成新的关系。或者说,

11、选择运算的结果是一个表的列的子集。关系R上的投影是从R中选择出若干属性列组成新的关系。记作: A(R) =tA|tR, 其中A为R中的属性列。投影操作是从列的角度进行的运算。投影的结果将取消由于取消了某些列而产生的重复元组。,投影操作的结果:,学号,姓名,年龄(学生),3、连接(join) 连接也称为连接,, , , , , 。是将两个和多个关系连接在一起,形成一个新的关系。连接运算是按照给定条件,把满足条件的各关系的所有元组,按照一切可能组合成新的关系。或者说,连接运算的结果是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。 记作: R S = trts| trRtsS trA tsB,

12、两种重要的连接:等值连接、自然连接。 等值连接:为“=”的连接运算为等值连接。它是从关系R与关系S的广义笛卡尔积中选取A、B属性值相等的那些元组,即: R S = trts| trRtsS trA = tsB 自然连接:当连接的两关系有相同的属性名时,称这种连接为自然连接,它是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。即若R和S具有相同的属性组B,则自然连接可记作: R S = trts| trRtsS trB = tsB,R,S,R S CE,R S 自然连接,自然连接的结果:,例: 关系R与关系S进行自然连接运算。,关系R,关系S

13、,4、除 给定关系R(X,Y)和 S(Y,Z),其中X,Y,Z为属性组。R 中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系T(X),T是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。 简单的说,就是T的属性由R中那些不出现在S中的属性组成;T的元组由在S中出现且在R中对应值相同的那些元组组成。,RS的结果:,例: 关系R与关系S进行除法运算。,关系R,关系S,练习题,一、设有关系模式如下: 学生关系S(学号,学生姓名,所属系名,学生年龄) 课程关系C(课程号,课程名称,先行课号码) 选课关系SC(学号,课

14、程号,成绩) 试用关系代数完成以下查询操作: 1、求CS系的学生。 2、求年龄大于或等于20的元组。 3、求选修C2课程的学生号码。 4、求选修了课程名称为“H”这门课的学生的学号和成绩。 5、求至少选修这样一门课程的学生姓名,这门课程的直接 先行课为C2。 6、求选修了全部课程的学生号码和姓名。,课程关系C,学生关系S,选课关系SC,练习题,二、设有关系模式如下: 学生关系XS(学号,姓名,年龄,性别,班号,系号) 部门关系BM(系号,系名,系主任号) 班级关系BJ(班号,班主任号,学生数) 职工关系ZG(职工号,姓名,年龄,性别,级别,职称) 试用关系代数完成以下查询操作: 1、9642班

15、班主任的姓名、年龄、性别、级别和职称。 2、950001号学生所在的系名是什么? 3、950001号学生所在系的系主任是谁,其年龄,性别和 职称? 4、班主任李伟所带的班级有多少学生?,练习题,三、设有3个关系: 学生S(S#,SNAME,AGE,SEX),其属性分别表示学号、姓名、年龄、性别。 选课SC(S#,C#,GRADE),其属性分别表示学号、课程号、成绩。 课程C(C#,CNAME,TEACHER),其属性分别表示课程号、课程名、任课教师。 试用关系代数表达式表示下列查询语句: (1)检索LIU老师所授课程的课程号和课程名。 (2)检索年龄大于23岁的男学生的学号和姓名。 (3)检索

16、学号为S3学生所学课程的课程名与任课教师。 (4)检索WANG同学不学的课程的课程号。 (5)检索选修课程包含LIU老师所授全部课程的学生学号。,答案: (1)检索LIU老师所授课程的课程号和课程名。 C#, CNAME(TEACHER=LIU(C) (2)检索年龄大于23岁的男学生的学号和姓名。 S#, SNAME(AGE23SEX=M(S) (3)检索学号为S3学生所学课程的课程名与任课教师。 CNAME, TEACHER(S#=S3(SCC) (4)检索WANG同学不学的课程的课程号。 C#(C)C#(SNAME=WANG(SSC) (5)检索选修课程包含LIU老师所授全部课程的学生学号。 S#, C#(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论