




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第二章 关系数据库 2.1 系模型概述 关系数据库系统是支持关系模型的数据库系统. 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 一、单一的数据结构关系 二、关系操作 关系模型中常用的关系操作有: 选择(Selsct)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)、等查询(Query)操作和增加(Insert)、删除(Delete)、修改(Update)两大部分。 三、关系的三类完整性约束 关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 2.2 关系数
2、据结构及形式化定义 2.2.1 关 系 1. 域(Domain) 定义2.1 域是一组具有相同数据类型的值的集合. 2. 笛卡尔积(Cartesian Produce) 定义2.2 给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,,Dn的笛卡尔积为: D1D2Dn(d1,d2,dn) | diDi, i=1,2,3,n) 若Di(i=1,2,n)为有限集,其基数为 mi(i=1,2,n), 则D1D2Dn的基数为 m=mi 例如给出三个域: D1=导师集合SUPERVISOR=张清玫,刘逸 D2=专业集合SPECIALITY=计算机专业,通信专业 D3=研究生集合POSTGRAD
3、UATE=李勇,刘晨,王敏 则D1,D2,D3的笛卡尔积为: D1D2D3=(张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏), (张清玫,通信专业,李勇), (张清玫,通信专业,刘晨), (张清玫,通信专业,王敏), (刘逸,计算机专业,李勇), (刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏), (刘逸,通信专业,李勇), (刘逸,通信专业,刘晨), (刘逸,通信专业,王敏), i=1n 3. 关 系 D1D2Dn 的子集叫做在域D1,D2,Dn上的关系, 用R(D1,D2,Dn)表示 这里R表示关系的名字,n是关系的目或度. 当n=1时,
4、称为单元关系. 当n=2时,称为二元关系. 关系是一张二维表,表的每一行对应一个元组,表的每一列对应一个域.由于域可以相同,为了加以区分,对每列取一个名字,称为属性.n目关系必有n个属性.SUPERVISORSPECIALITYPOSTGRADUATE张清玫计算机专业李勇张清玫计算机专业刘晨刘 逸通 信 专 业王敏 表2.2 SAP关系 数据库中的基本关系有以下性质: 1、列是同性质的,即每一列中的分量是同一类型的数据,来自同一个域。 2、不同的列可出自同一个域,每一列称为属性,要给予不同的属性名。 3、列的顺序无所谓,即列的次序可以任意交换。 4、任意两个元组不能全同。 5、行的顺序无所谓,
5、即行的次序可以任意交换。 6、每一分量必须是不可分的数据项。 关系的三种类型:基本关系, 查询表, 视图表 .关系模型要求关系必须是规范化的,即要求关系模式必须满足一定的规范条件. 2.2.2 关系模式 关系的描述称为关系模式(Relation Schema)。 可形式化表示为: R(U, D, dom, F) 关系模式通常可以简记为: R(U) OR R(A1,A2,An)。 R为关系名, A1,A2,An为属性名.属性向域的映象常常直接说明为属性的类型、长度。 2.2.3 关系数据库 (1).关系数据库的型 (2).关系数据库的值 2.3 关系的完整性 一、实体完整性(Entity Int
6、egrity) 规则2.1 实体完整性规则 若属性A是基本关系R的主属性,则属性A不能取空值. 对实体完整性规则的说明: (1) 实体完整性规则是针对基本关系而言的. (2) 现实世界中的实体是可区分的,即它们具有某种唯一性标识. (3) 相应地,关系模型中的以主码作为唯一性标识. (4) 主码中的属性即主属性不能取空值. 二、参照完整性(Referential Integrity) 例1 学生实体和专业实体可以用下面的关系表示,其中主码用下划线标识. 学生(学号,姓名, 性别, 专业号, 年龄) 专业(专业号, 专业名) 例2 学生、课程、学生与课程之间的多对多的联系可用如下三个关系表示:
7、学生(学号,姓名, 性别, 专业号, 年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 例3 在关系 学生2(学号,姓名, 性别, 专业号, 年龄,班长)中, “学号”属性是主码,“班长”属性表示该学生所在班级的班长的学号。 设F是基本关系R的一个或一组属性,但不是关系RF与基本关系S的主码Ks相对应,则称F是基本关系的外码(Foreing Key),并称基本关系R为参照关系(Referencing Relation).基本关系S为被参照关系(Referenced Relation)或目标关系(Target Relation). 参照完整性规则 若属性(或属性组)F是基本关系R
8、的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为: 或者取空(F的每个属性值均为空); 或者等于S中某个元组的主码值. 三、用户定义的完整性(User-defind Integrity) 用户定义的完整性就是针对某一具体关系数据库的约束条件. 它反映某一具体应用所涉及的数据必须满足的语义要求. 2.4 关 系 代 数 一、关系代数的运算的分类 1. 传统的集合运算 2. 专门的关系运算 关系代数的运算对象是关系.运算结果亦为关系。 二、关系代数用到的运算符 (1)集合运算符: (并),(差),(交) (2)算术比较符=, (3)专门的关系运算符: (选择),(投影),
9、 (连接),(除) (广义笛卡尔积)(4)逻辑运算符:, , 2.4.1 传统的集合运算 设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则可以定义四种运算如下: 1. 并(Union) 关系R和关系S的并记为: RS t | t R t S. 结果仍为nR或属于S的元组组成. 2. 差(Difference) 关系R和关系S的差记为:R-S=t|t R t S. 结果仍为n目关系.由属于R而不属于S的元组组成. 3. 交(Intersection) 关系R和关系S的交记为: R S =t | t R t S 结果仍为n目关系.由既属于R有属于S的元组组成. 关系的交可由关系的差表示
10、,即RS=R-(R-S). 4. 广义笛卡尔积(Extended cartesian product) 两个分别为n、m目阿关系R和S的广义笛卡尔积RS是一个(n+m)n个分量是R的一个元组,后m个分量是SR有k1个元组,S有k2个元组,则RS有k1k2个元组. A B C a1 a1 a2 b1 b2 b2 c1 c2 c1 A B C a1 a1 a2 b2 b3 b2 c2 c2 c1RS A B C a1 a1 a2 a1 b1 b2 b2 b3 c1 c2 c1 c3 A B C a1 b1 c1 A B C a1 a2 b2 b2 c2 c1 图 4-1 ( c )RS图 4-1
11、( e )RS图 4-1 ( d ) R-S( a )( b ) 2.4.2 专门的关系运算 一. 几个记号 1. 设关系模式为R(A1,A2,An). 它的一个关系设为R. TR表示t是R的一个元组。TAi则表示元组t中相应属于Ai的一个分量。A=Ai1,Ai2,Ai3,Aik,其中Ai1,Ai2,Ai3,Aik 是A1,A2,A3,An中的一部分,则A称为属性列或域列.A则表示A1,A2,A3,An中去掉Ai1,Ai2,Ai3,Aik后剩余的属性组.tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合. 3. R为n目关系,S为m目关系 tr R , ts S tr t
12、s 称为元组的连接(Concatenation).这是一个(n+m)列的元组,前n个分量是R的一个n元组,后m个分量是S中的一个m元组. 4. 给定一个关系R(X , Z), X,Z为属性组. 我们定义当X=x时,x在R中的象集(Image Set)为: Zx=tz| tR,tX=x 表示R中属性组X上值为x的诸元组在Z上分量的集合. 二. 各种关系运算的定义 1. 选择(Selection) 亦称为限制(Restriction).在关系R中选择满足给定条件的诸元组,记为: F( R)=t|tRF(t)=真 F是一个公式,它的取值为真或假. F由逻辑运算符(,)连接各算术表达式组成。算术表达式
13、的基本形式为: X1Y1 选择运算是从关系R中选取使公式F为真的元组.这是从行的角度进行的运算. 举例说明选择运算: 设有学生课程关系数据库,学生关系Student、课程关系Course和学生选课关系SC,分别如图2.3 (a ), ( b ), ( c )所示 学号 Sno姓 名 Sname性别Ssex年龄Sage所在系Sdept95001950029500395004李勇刘晨王敏张立男女女男 20 19 18 19CSISMAISStudent课程号Cno课程名 Nname先行课Cpno学分Ccredit1234567数据库数 学信息系统操作系统数据结构数据处理PASCAL语言516764
14、243424Course学号Sno课程号Cno成绩Grade9500195001950019500295002123239285889080SC ( a )( b )( c ) 图 2.3 学生-课程数据库 例1. 查询信息系(IS系)的全体学生. 解: 在学生关系中找出Sdept为IS的学生. Sdept=IS(Student)或5=IS(Student) 学号 Sno姓 名 Sname性别Ssex年龄Sage所在系Sdept9500295004刘晨张立女男 19 19ISIS 例2. 查询年龄小于20岁的学生. 解: 在学生关系中找出Sage小于20的学生. 即: Sage19(Stude
15、nt)或419(Student) 学号 Sno姓 名 Sname性别Ssex年龄Sage所在系Sdept950029500395004刘晨王敏张立女女男191819ISMAIS 2. 投影(Projection) 关系R上的投影是从R中选择若干属性列组成新的关系.记作: A( R )=tA | t R A为R中的属性列. 例3. 求学生(Student)关系在学生姓名和所在系这两个属性上的投影. 解: Sname , Sdept( Student ) 或 2 , 5( Student ) 结果如图2.5(a)所示. 例4. 查询关系Student 在所在系属性上的投影. 解: Sdept( S
16、tudent ) 或5 ( Student ) 结果如图2.5 (b) 3. 连接(Join)亦称为连接连接运算是从两个关系的笛卡尔积中选取属性间满足一定条件的元组.记作: RS = tr ts | trRtsS trA tsBAB 自然连接(Natural join)R和S具有相同的属性组B,则自然连接定义如下: RS = tr tsB | trRtsS trB =tsB 例5. 设关系R,S分别为 图2.6中的( a),(b ). RS 的结果如图2.6( c ). RS 等值连接的结果如图2.6( d ). CE RS 自然连接的结果如图2.6( e ). 4. 除(Division)
17、给定关系R(X,Y)与S(Y,Z), 其中X,Y,Z为属性列,R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集.定义除法: RS= trX | trRr(S) Yx) Yx为x在R中象集,x= trX . 除法结果是R中满足下列条件的元组在X属性列上的投影: 元组在X上分量值x的象集Yx包含S在Y上投影的集合. 例6 设关系R,S分别为图2.7中(a) 和(b), RS的结果如图(c) 在关系R中,A可以取四个值a1,a2,a3,a4 a1的象集为:(b1,c2),(b2,c3),(b2,c1) a2的象集为:(b3,c7),(b2,c3) a3的象集为:(b4,c6) a4的象集为
18、:(b6,c6) S在(B,C)上的投影为(b1,c2), (b2,c1),(b2,c3) 例7: 求至少选修1号课程和3号课程的学生的学号. 解: 设一个临时关系K: Sno,Cno(SC)K=95001Cno13 例8: 查询选修了2号课程的学生的学号 Sno(Cno=2 (SC)=95001,95002 例9: 查询至少选修了一门其先行课为5号课程的学生姓名. Sname(Cpno=5 (Course) SC Sno, Sname(Student) ) 例10: 查询选修了全部课程的学生的学号和姓名. Sno , Cno(SC) Cno (Course) Sno, Sname(Stude
19、nt) 2.5.1 元组关系演算语言ALPHA ALPHA语言的基本格式 操作语句 工作空间名(表达式): 操作条件 各部分的具体说明: :=GET | PUT | HOLD | UPDATA | DELETE |DROP :=(, , ). 2.5 关系演算 关系演算按谓词变元的不同可分为元组关系演算和域关系演算.我们首先介绍元组关系演算然后介绍域关系演算,都是先讨论抽象语言然后介绍一种实际语言。 一. 检索操作 1. 简单检索 例1. 求所有被选修的课程的课程号码. GET W (SC.Cno) 例2. 求所有学生的数据. GET W (Student) 2. 限定的检索 例3. 求信息系
20、(IS)中年龄小于20岁的学生的学号和年龄. GET W (Student.Sno,Student.Sage): Student.Sdept=ISStudent.Sage19 例4. 求计科系年龄大于19岁的学生的学号. 查询的条件是: Sdept=CS和Sage19两个条件的与. (1). 把两个条件写在同一行上;StudentSnoSnameSsexSageSdept P.95001 19 CS StudentSnoSnameSsexSageSdept P.95001P.95001 19 CS (2). 把两个条件写在不同行上,但使用相同的示例元素值 例5.查询计科系或者年龄大于19岁的学
21、生的学号.StudentSnoSnameSsexSageSdept P.95001P.95002 19 CS 例6. 查询既选修了1号课程又选修了2号课程的学生的学号. 例7. 查询选修1号课程的学生姓名. 该查询涉及两个关系: SC和Student. SC SnoCno Grade P.95001 P.95001 12StudentSnoSnameSsexSageSdept P.95001P.李勇 SC SnoCno Grade P.95001 1 例8. 查询未选修1课程的学生姓名. 用逻辑非的查询. 例9. 求有两个人以上选修的课程号码. 在一个表内连接的查询StudentSnoSnam
22、eSsexSageSdept P.95001P.李勇 SC SnoCno Grade P.95001 1 SC SnoCno Grade 9500195001P.1 1 3. 集函数 CNT 对元组计数 SUM 求总和 AVG 求平均值 MAX 求最大值 MIN 求最小值 例10. 查询信息系学生的平均年龄.StudentSnoSnameSsexSageSdept P.AVG.ALL.IS 4. 对查询结果排序 例11. 查询全体男生的姓名,要求查询结果按所在系升序排列,对相同系的学生按年龄降序排列.StudentSnoSnameSsexSageSdept P. 李勇 男DO (2).AO (
23、1). 二. 更新操作 1. 修改操作(U) 例12. 把95001学生的年龄改为18.例14. 将计算机科学系所有学生的年龄都增加1岁. StudentSnoSnameSsexSageSdept 95001 U.18 (1).将操作符“U.”放在值上.(2).将操作符“U.”放在关系上.StudentSnoSnameSsexSageSdept 95001 U.18 例13. 把95001学生的 年龄增加1岁. StudentSnoSnameSsexSageSdept U.9500195001 1717+1 StudentSnoSnameSsexSageSdept U.9500895008 1818+1 CS 3.删除操作(D) 例16. 删除学生95089. 2. 插入操作( I ) 例15. 把信息系女生95701,姓名张三,年龄20存入数据库中.StudentSnoS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代偿合同范例
- 工作个人计划总结模版
- 百日冲刺校长发言稿模版
- 从办公自动化到智能管理看区块链如何重塑企业生态圈
- 机器人焊接 12 项目六任务6.2教学设计
- 企业内部通信与协作的数字化转型-以区块链为例
- 温州市普通高中2025届高三第三次适应性考试生物试题及答案
- 假冒购货合同范例
- 医疗物资供应链中区块链技术的安全保障
- 医疗大数锯的隐私保护从数据科学到实践应用
- 中考语文复习之图文转换课件
- 钢框架计算书
- 高中1.安培力冲量模型(PPT讲解版)
- 中央企业违规经营责任追究实施办法解读共40张课件
- Excel模板-中国地图填色图
- 用户思维课件
- 中国石油天然气集团公司建设项目其他费用和相关费用的规定
- 邹萃文书法《惜时如金》课件
- Q∕GDW 13236.8-2019 导、地线采购标准 第8部分:钢芯铝合金绞线专用技术规范.pdf
- 印后加工工艺培训课件(共61页).ppt
- 爱心树(绘本)
评论
0/150
提交评论