【文档说明】关系数据库基本原理-关系模型和关系代数课件.ppt,共(61)页,1.056 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92374.html
以下为本文档部分文字说明:
关系数据库基本原理(1)关系模型与关系代数王传栋南京邮电大学计算机学院内容与要求知识点(1)知识点一:关系模型概述(2)知识点二:关系数据结构(3)知识点三:关系代数理论(4)知识点四:关系数据库标准语言SQL(5)知识点五:关系数据
库的规范化理论实验1SQL语言的应用教学基本要求了解关系数据结构的基本概念,了解关系模型的各种操作和关系代数的基本原理,掌握关系数据模型的完整性约束机制,掌握SQL语言,了解函数依赖等基本概念,掌握关系模式的规范化概念、方法、原
理与过程。引言关系模型是当前的主流逻辑数据模型由IBM公司的高级研究员E.F.Codd于1970年提出应用广泛的原因:单一的数据建模概念坚实的数学理论基础提供高级接口:数据库语言SQL关系模型的基本概念关系模型(RelationalModel)用二维表格表示实体集,用关键码
表示实体之间联系的数据模型称为关系模型理解用二维表格(table)表示实体集及其间联系,用关键码(或键)进行数据导航关系模型是逻辑模型的一种,也具有三个要素关系数据结构关系操作数据完整性约束规则关系模型的基本概念示例SNOSNAMEAGESEXNativePlac
eS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19F四川CNOCNAMECreditCreditHoursCPNOTNOC1Math348NULLT1C2English464NULLT2C3PM232C2T2C4DB3.556C1T1SNOCNOGradeS1C
280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475TNOTNAMETITLESEXT1ZHAO讲师MT2LIU教授FSC(SNO,CNO,Grade)字段含义:学号,课程号
,成绩S(SNO,SNAME,AGE,SEX,NativePlace)字段含义:学号,姓名,年龄,性别,籍贯T(TNO,TNAME,TITLE,SEX)字段含义:教师号,教师姓名,职称,性别C(CNO,CNAME,Credit,CreditHours,CPNO,TNO)字段含义:课
程号,课程名,学分,学时数,先修课号,授课教师号关系模型的基本概念关系数据结构:二维表字段称为属性,也称为列(column)反映事物的一个特征,每个字段都有字段名和字段值属性的取值范围(所有可取值的集
合)称为属性域Domain大写字母A、B、C、…表示单个属性;大写字母…、X、Y、Z表示属性集小写字母a、b、c、…表示属性值记录称为元组(tuple),也称为行(row)记录类型称为关系模式,由模式名和属
性列表组成元组集合称为关系(relation)或实例(instance),也称为表格关系模型的基本概念关系数据结构:二维表元组用关键字(Keyword—简称键)来标识属性个数称为元数(Arity),也称为目
元组个数为基数(Cardinality)RABCDEa1b1c1d1e1a2b2c2d2e2a3b3c3d3e3a4b4c4d4e4一般术语关系模型术语字段、数据项属性记录类型关系模式记录1元组1记录2元组2记
录3元组3记录4元组4字段值属性值文件关系R(A,B,C,D,E)关系模型的基本概念关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键1)超键(SuperKey)其值能唯一地决定其它所有属性的值的属性集2)候选键(CandidateKey
)不含多余属性的超键其值能唯一地决定关系中其它所有属性的值、而它的任何真子集无此性质的属性或属性组3)主键(PrimaryKey)用户选作元组标识的候选键,称为主键(PK),简称键关系模型的基本概念关
键码(key,简称键)4)候补键(AlternateKey)主键之外的候选键5)全键:由关系的所有属性构成的主键6)外键(ForeignKey,FK)如果模式R中的属性K是其它模式的主键,那么K在模式R中称为外键不是本关系的键,却引用了其它关系或本关系的键的属性或属性组7
)主属性与非主属性nSUPPLY(供应商,零件名,工程名)项目供应mp零件供应商2.1关系模型的基本概念示例关系模式STUDENT(学号,姓名,性别,出生日期,籍贯)假设:不允许学生重名,问:(学号,姓名,性别,出生日期,籍贯)?(学号,性别)?(学号,姓名)?(学号
)?(姓名)?哪些是主属性?关系模型的基本概念关系的定义和性质关系是一个属性数目相同的元组的集合有限关系在关系模型中,关系的规范性限制:1)关系中每一个属性值都是不可分解的(原子的)2)关系中不允许出现重复元组(即不允许出现相同的元组)3)由于关
系是一个集合,因此不考虑元组间的顺序,即没有行序注:关系中元组的排列是有序的,取决于索引4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序关系模型的基本概念关系模型的完整性规则实体完整性规则(entityintegrityrule)关系内的约束每个关系都应有一个主
键每个元组的主键的值应当唯一;组成主键的属性,不能有空值(NULL)否则,主键值就起不了惟一标识元组的作用关系模型的基本概念关系模型的完整性规则实体完整性规则(entityintegrityrule)
例如S(SNO,SNAME,AGE,SEX,NativePlace)字段含义:学号,姓名,年龄,性别,籍贯CreateTableS(SNOCHAR(3),SNAMECHAR(8),AGEInteger,SEXCHAR(1),Nat
ivePlaceVARCHAR(20),PrimaryKey(SNO),Check(SEXIN(‘M’,‘F’)));SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S2HU17M上海NULLXIA19F四川╳╳关系
模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)不同关系或同一关系的不同元组间的约束参照完整性规则的形式定义如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么
在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值规则的实质:不允许引用不存在的实体在上述形式定义中关系模式R1的关系称为“参照关系”,也称“主表”、“父表”关系模式R
2的关系称为“依赖关系”,也称“副表”、“子表”关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrityrule)规则在具体使用时,有三点变通:①外键和相应主键可以不同名,只要定义在相同值域上即可②R1和R2可以是不同关系模式,也可以是同一个关
系模式同一个关系模式中,表示了同一个关系中不同元组之间的联系③外键值是否允许空,应视具体问题而定当外键属性是主键的组成成分时,不允许为空关系模型的基本概念关系模型的完整性规则参照完整性规则(referenceintegrit
yrule)示例SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19F四川CNOCNAMECreditCreditHoursCPNOTNOC1Math348NULLT1
C2English464C5T2C3PM232C2T4C4DB3.556C1NULL╳╳SNOCNOGradeS1C280S1C370S1C585S2C160S2C275S2NULL90S2C4NULLS3C185S3C480S4C285S6C475╳╳╳TNOT
NAMETITLESEXT1ZHAO讲师MT2LIU教授F关系模型的基本概念关系模型的完整性规则用户定义的完整性规则和数据的具体内容有关的约束构建关系模式时,属性的数据类型,可能满足不了需求,需要显式定义额外的约束规则说明CH
ECK()子句、触发器、断言、过程…说明各种DBMS产品对完整性约束的支持程度不同数据库中完整性约束检查,由DBMS实现对DB进行更新(I/D/U)操作时检查,保证数据与现实世界的一致性关系模型的基本概念关系模型的完整性规则用户定义的完整性规则
示例1S(SNO,SNAME,AGE,SEX,NativePlace)字段含义:学号,姓名,年龄,性别,籍贯CreateTableS(SNOCHAR(3),SNAMECHAR(8),AGEInteger,SEXCHAR(1),N
ativePlaceVARCHAR(20),PrimaryKey(SNO),Check(SEXIN(‘M’,‘F’)));SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19K四川╳关系模型的基本概念
关系模型的完整性规则用户定义的完整性规则示例2SC(SNO,CNO,Grade)字段含义:学号,课程号,成绩CreateTableSC(SNOCHAR(3),CNOCHAR(3),GRADEDEC(5,2),P
rimaryKey(SNO,CNO),ForeignKey(SNO)ReferencesS(SNO),ForeignKey(CNO)ReferencesC(CNO),Check(GRADEisNULLOrGRADEBetween0And1
00));SNOCNOGradeS1C280S1C370S1C585S2C160S2C275S2NULL90S2C4NULLS3C1-5S3C480S4C2101S6C475╳╳╳╳╳关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模式记录类型称
为关系模式关系模式的集合就是数据库的概念模式,是问题域数据的全局逻辑视图是对数据的特征描述,不涉及物理存储方面的描述由数据定义语言(DDL)实现定义模式名、属性名、值域、模式主键定义时,模式名和属性名一般都用英文单
词表示SC(SNO,CNO,Grade)S(SNO,SNAME,AGE,SEX,NativePlace)T(TNO,TNAME,TITLE,SEX)C(CNO,CNAME,Credit,CreditHours,CPNO,TNO)关系模型的基本概念关系模型的三
层体系结构关系模型也遵循数据库的三级体系结构关系模式用户(应用程序)用户记录模式/内模式映像外模式模式内模式DB模式/外模式映像关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体
系结构子模式是用户所用到的局部数据的描述构建子模式时,需要指出数据与关系模式中相应数据的联系由数据定义语言(DDL)实现定义时需要考虑用户对数据的操作权限对子模式的操作(如插入、修改、删除)是受限的关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构子
模式例如构建成绩子模式,要求显示学号、姓名、课程号和成绩CreateViewG(S#,SNAME,C#,SCORE)ASSelectS.SNO,SNAME,CNO,GradeFromS,SCWhereS.SNO=SC.SNOG
(S#,SNAME,C#,SCORE)关系模型的基本概念关系模型的三层体系结构关系模型也遵循数据库的三级体系结构子模式用户(应用程序)用户记录模式/内模式映像外模式模式内模式DB模式/外模式映像SNOSNA
MEAGESEXNativePlaceS1WANG20M北京……………SNOCNOGradeS1C280………S#SNAMEC#SCORES1WANGC280…………SSCG关系模型的基本概念关系模型的三层体系结构关系模型也遵循数
据库的三级体系结构存储模式在有些DBMS中,关系存储是作为文件看待的每个元组就是一个记录由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现如果关系的元组数目较少(100个以内),那么也可以用“堆文件”方式实现(即没有
特定的次序)可对任意的属性集建立辅助索引关系模型的基本概念关系模型的形式定义和优点关系模型的三个要素1)关系数据结构关系,二维表数据库中全部数据及其相互联系都被组织成“关系”2)关系操作一组完备的关系运算,
支持对数据库的各种操作关系运算分成关系代数、关系演算和关系逻辑等三类3)数据完整性约束规则实体完整性、参照完整性和用户自定义的完整性关系模型的基本概念关系模型的形式定义和优点关系模型的优点1)单一的数据结构形式,具有高度的简明性和精确性2)逻辑结构和相应的操作,完全独立于数据存
储方式具有高度的数据独立性3)坚实的数学基础关系运算的完备性和规范化设计理论4)数据库技术的基础关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统研究提供了方便关系
模型的基本概念关系查询语言和关系运算数据库语言SQL分为:DDL,DML、QL和DCL数据操纵语言DML,描述插入、删除、修改等操作查询语言QL,描述用户的各种检索要求理论基础是“关系运算理论”,分为3部分:1)关系代数语言2)关系演算语言
3)关系逻辑语言关系代数五个基本操作并(Union)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的并,是由属于R或属于S的元组构成的集合记为R∪S形式定义R∪S≡{t|
t∈R∨t∈S},t是元组变量关系代数五个基本操作差(Difference)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的差,是由属于R但不属于S的元组构成的集合记为R-S形式定义R-S≡{t|t∈R∧t∈S},t
是元组变量关系代数五个基本操作笛卡尔积(CartesianProduct)形式定义假设:R的元数r,基数为m;S的元数s,基数为nR×S≡{t|t=<tr,ts>∧tr∈R∧ts∈S}R×S的元数为r+s,基数m×n参与运算的R和S关系,不要求有同名属性
若有同名属性,在属性名前加“关系名.”来标注关系代数五个基本操作投影(Projection)对关系进行垂直分割(感兴趣的列),属性可任意排列表示Π<属性或序号列表>(<关系名>)形式定义Πi1,…,im(R)≡{t|t=<ti1,…,tim>∧<t1,…,tk>∈R}性质Π<
属性表1>(Π<属性表2>(R))≡Π<属性表1>(R)属性表1∈属性表2关系代数五个基本操作选择(Selection)据条件对关系做水平分割,选取符合条件的元组表示σ<选择条件>(<关系名>)→σF(R),F是命题公式形式定义σF(R)={t|t∈R∧F(t)=true
}性质a)σ<F1>(σ<F2>(R))≡σ<F2>(σ<F1>(R))b)σ<F1>σ<F2>(…(σ<Fn>(R)))≡σ<F1>∧<F2>∧…∧<Fn>(R)关系代数五个基本操作示例ABC123456789关系RABC123456789246(a)R∪SABC12
3789(b)R-SCA316497(d)ΠC,A(R)R.AR.BR.CS.AS.BS.C123246123456456246456456789246789456(c)R×SABC456789(e)σB>'4'(R)ABC246456关系S关系代数
四个组合操作交(intersection)前提相同的关系模式(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)定义R和S的交,是由属于R又属于S的元组构成的集合记为R∩
S形式定义R∩S≡{t︱t∈R∧t∈S}推导R∩S=R-(R-S),或R∩S=S-(S-R)RS关系代数四个组合操作交(intersection)示例ABC123456789关系RABC246
456关系SABC456R∩S关系代数四个组合操作连接(join)形式定义R⋈S≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧triθtsj}推导R⋈S≡σiθ(r+j)(R×S),其中r是
关系R的元数表示连接是在(R×S)中,挑选第i个分量和第(r+j)个分量满足θ操作的元组说明:两个关系的同域属性比较θ连接:θ{,,,,,}等值连接:θ{}F连接:FF1∧…∧Fn,Fkiθ
j(∧、∨、┐)iθjiθj关系代数四个组合操作连接(join)示例1)θ连接:R⋈S,或R⋈S2)等值连接:R⋈S,或R⋈S3)F连接:R⋈S,或R⋈SABC123456729关系RDE2
45678关系SABCDE4562445656789247895678978(1)ABCDE123244565672924(2)2=1R.B=S.D3>=2R.C>=S.E3>=2∧2<=1R.C>=S.E∧R.B<=S.DABCDE45656(3)关系代数四个组合
操作自然连接(naturaljoin)两个关系公共属性上的等值连接推导R⋈S=Πi1,…im(σR.A1=S.A1∧…∧R.Ak=S.Ak(R×S))A1,…,Ak是关系R和S的公共属性列表i1,…im是两个关系属性的并集计算过程1)计算R×S2)选择:在R×S中,挑选满足公
共属性相等的元组3)投影:在R×S中,去掉冗余属性S.A1,…,S.Ak关系代数四个组合操作自然连接(naturaljoin)示例R⋈S≡∏A,R.B,R.C,D(σR.B=S.B∧R.C=S.C(R×S))注
:参与自然连接运算的2个关系,若没有公共属性,则自然连接运算自动转化为笛卡尔积运算。ABC246357746关系RBCD573462579关系SABCD2462357335797462结果关系代数四个组合操作除法(division)前提R中
的属性包含S中的属性R(X,Y),S(Y)作用R÷S是满足下列条件的最大关系,属性由R中那些不出现在S的属性组成,(R÷S)S的每个元组都在关系R中计算过程:R÷S=ΠX(R)–ΠX((ΠX(R)S)–R)1)T=∏X(
R);X为不包含在S中的属性2)W=(T×S)-R;计算T×S中不在R的元组3)V=∏X(W)4)R÷S=T-VCDcdefS→ABCDabcdabefabdebcefedcdedefR→关系代数四个组合操作除法(division)示例bccdABCDabcdabefbccd
bcefedcdedef(2.1)(T×S)ABabbced(1)T=∏X(R)ABCDbcef(2.2)W=(T×S)-RABbc(3)V=∏X(W)ABabed(4)R÷S=T-V被除关系对除关系有覆盖关系代数关系代数运算的应用实例关系代数表达式五个基本操作的有限
次复合的式子表达式的运算结果仍是一个关系用关系代数表达式表示各种数据查询操作关系代数关系代数运算的应用实例关系代数表达式示例SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19F四川CNOCNAMECredi
tCreditHoursCPNOTNOC1Math348NULLT1C2English464NULLT2C3PM232C2T2C4DB3.556C1T1SNOCNOGradeS1C280S1C370S1C485S2C160S2C275S2C390S2C4NULL
S3C185S3C480S4C285S4C475TNOTNAMETITLESEXT1ZHAO讲师MT2LIU教授FSC(SNO,CNO,Grade)字段含义:学号,课程号,成绩S(SNO,SNAME,AGE,SEX,NativePlace)字段含义:学号,姓名
,年龄,性别,籍贯T(TNO,TNAME,TITLE,SEX)字段含义:教师号,教师姓名,职称,性别C(CNO,CNAME,Credit,CreditHours,CPNO,TNO)字段含义:课程号,课程名,学分,学时数,先修
课号,授课教师号关系代数关系代数运算的应用实例1)检索学习课程号为C2课程的学生学号与成绩ΠSNO,Grade(σCNO='C2'(SC))Π1,3(σ2='C2'(SC))σCNO='C2'(ΠSNO,Grade
(SC))σ2='C2'(Π1,3(SC))关系代数关系代数运算的应用实例1)检索学习课程号为C2课程的学生学号与成绩ΠSNO,Grade(σCNO='C2'(SC))σCNO='C2'(ΠSNO,Grade(SC))SNOCNOGrade
S1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475SNOGradeS180S275S485SNOCNOGradeS1C280S2C275S4
C285SNOGradeS180S170S185S260S275S290S2NULLS385S380S485S475╳σΠΠσ对应的查询:SelectSno,GradeFromSCWhereCno=‘C2’;关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名
ΠSNO,SNAME(σCNO='C2'(S⋈SC))查询涉及到两个关系S与SC,先要对这两个关系进行自然连接操作,然后再执行选择和投影操作SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU
18F山东S3HU17M上海S4XIA19F四川CNOCNAMECreditCreditHoursCPNOTNOC1Math348NULLT1C2English464NULLT2C3PM232C2T2C4DB3.
556C1T1SNOCNOGradeS1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475TNOTNAMETITLESEXT1ZHAO讲师MT2LIU教授F关系代数关系代数运算的应用实例2)检索学习课程
号为C2的学生学号与姓名ΠSNO,SNAME(σCNO='C2'(S⋈SC))SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19F四川SNOSNAMEAGESEX
NativePlaceCNOGradeS1WANG20M北京C280S1WANG20M北京C370S1WANG20M北京C485S2LIU18F山东C160S2LIU18F山东C275S2LIU18F山东C390S2LIU18F山东C4NULLS3HU17M上海C185S3H
U17M上海C480S4XIA19F四川C285S4XIA19F四川C475⋈SNOCNOGradeS1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C47
5关系代数关系代数运算的应用实例2)检索学习课程号为C2的学生学号与姓名ΠSNO,SNAME(σCNO='C2'(S⋈SC))ΠσSNOSNAMEAGESEXNativePlaceCNOGradeS1WANG20M北京C280S2LIU18F山东C275S4XIA
19F四川C285SNOSNAMES1WANGS2LIUS4XIASNOSNAMEAGESEXNativePlaceCNOGradeS1WANG20M北京C280S1WANG20M北京C370S1WANG20M北京C485S2LIU18F山东C160S2LIU18F山东C275S2LIU
18F山东C390S2LIU18F山东C4NULLS3HU17M上海C185S3HU17M上海C480S4XIA19F四川C285S4XIA19F四川C475对应的查询:SelectSNO,SNAMEFromS,SCWhereS.
Sno=SC.SnoandCno=‘C2’;关系代数关系代数运算的应用实例3)检索至少选修LIU老师所授课程一门课程的学生学号与姓名ΠSNO,SNAME(σTNAME='LIU'(S⋈SC⋈C⋈T))SNOSNAMEAGESEXNativePlaceS1WANG20M北
京S2LIU18F山东S3HU17M上海S4XIA19F四川CNOCNAMECreditCreditHoursCPNOTNOC1Math348NULLT1C2English464NULLT2C3PM232C2T2C4DB3.556C1T1SNOCNOGrade
S1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475TNOTNAMETITLESEXT1ZHAO讲师MT2LIU教授F对应的查询:SelectS.Sno,SnameFromS,SC,
C,TWhereTname=‘LIU’andS.Sno=SC.SnoandSC.Cno=C.CnoandC.TNO=T.Tno;关系代数关系代数运算的应用实例4)检索选修课程号为C2或C4的学生学号ΠSNO
(σCNO='C2‘∨CNO='C4'(SC))SNOCNOGradeS1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475σSNOCNOGradeS1C280S1C485S2C275S2C4NULLS3C48
0S4C285S4C475ΠSNOS1S2S3S4对应的查询2:SelectSnoFromSCWhereCnoin(‘C2’,‘C4’);对应的查询1:SelectSnoFromSCWhereCno=‘C2’orCno=‘C4’;对应的查询3:Sele
ctSnoFromSCWhereCno=SOME(‘C2’,‘C4’);关系代数运算的应用实例5)检索至少选修课程号为C2和C4的学生学号ΠSNO(σCNO='C2‘∧CNO='C4'(SC))SNO关系代数╳SNOCNOGradeS1
C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475σSNOCNOGradeΠ关系代数关系代数运算的应用实例5)检索至少选修课程号为C2和C4的学生学号Π1(σ1=4∧2='C2‘∧5='C
4'(SC×SC))SNOCNOGradeS1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475SNOCNOGradeS1C280S1C370S1C485S2C160S2C275S2
C390S2C4NULLS3C185S3C480S4C285S4C475SNOCNOGradeS1C280S1C280S1C280S1C370S1C370S1C370S1C485S1C485S1C485S1C280………SNOC
NOGradeS1C280S1C370S1C485S1C280S1C370S1C485S1C280S1C370S1C485S2C160………×对应的查询:SelectX.SnoFromSCasX,SCasYWhereX.Sno=Y.SnoandX.Cno=‘C2’andY.Cno=‘C
4’;关系代数关系代数运算的应用实例6)检索不学C2课的学生姓名与年龄ΠSNAME,AGE(σCNO<>'C2'(S⋈SC))SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19F四川SNOS
NAMEAGESEXNativePlaceCNOGradeS1WANG20M北京C280S1WANG20M北京C370S1WANG20M北京C485S2LIU18F山东C160S2LIU18F山东C275S2LIU18F山东C390
S2LIU18F山东C4NULLS3HU17M上海C185S3HU17M上海C480S4XIA19F四川C285S4XIA19F四川C475⋈SNOCNOGradeS1C280S1C370S1C485S2C
160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475连接查询关系代数关系代数运算的应用实例6)检索不学C2课的学生姓名与年龄ΠSNAME,AGE(σCNO<>'C2'(S⋈
SC))ΠσSNOSNAMEAGESEXNativePlaceCNOGradeS1WANG20M北京C370S1WANG20M北京C485S2LIU18F山东C160S2LIU18F山东C390S2LIU18F山东C4NULLS3HU17M上海C185S3HU17M上海C480S4
XIA19F四川C475SNOSNAMEAGESEXNativePlaceCNOGradeS1WANG20M北京C280S1WANG20M北京C370S1WANG20M北京C485S2LIU18F山东C160S2LIU18F山东C275S2LIU18F山东C390S2LIU
18F山东C4NULLS3HU17M上海C185S3HU17M上海C480S4XIA19F四川C285S4XIA19F四川C475SNAMEAGEWANG20LIU18HU17XIA19结论:连接查询不能
解决否定问题!关系代数关系代数运算的应用实例6)检索不学C2课的学生姓名与年龄ΠSNAME,AGE(S)-ΠSNAME,AGE(σCNO='C2‘(S⋈SC))差操作先求出全体学生的姓名和年龄再求出学了C2课的学生的姓名和年龄最后执行差操作SNAMEAGEW
ANG20LIU18HU17XIA19SNAMEAGEWANG20LIU18XIA19SNAMEAGEHU17-对应的查询:SelectSname,AgeFromSWhereSnonotin(SelectSnoFromSCWhereCno=‘C2’);关系代数关系代数运算的
应用实例7)检索学习全部课程的学生姓名ΠSNAME(S⋈(ΠSNO,CNO(SC)÷ΠCNO(C)))CNOCNAMECreditCreditHoursCPNOTNOC1Math348NULLT1C2English464NULLT2C3PM232C2T2C4DB3
.556C1T1CNOC1C2C3C4ΠΠ÷SNOS2SNOSNAMEAGESEXNativePlaceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19F四川SNOSNAMEAGESEXNat
ivePlaceS2LIU18F山东SNAMELIUΠ⋈SNOCNOGradeS1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475SNOCNOS1C2S1C3S1C4S2C1S2C2S2C3S2C4S
3C1S3C4S4C2S4C4关系代数关系代数运算的应用实例7)检索学习全部课程的学生姓名①投影出所有学生的选课情况ΠSNO,CNO(SC)②投影出全部课程的课程号ΠCNO(C)③用除法计算学了全部课程的学生学号
集合(临时关系)ΠSNO,CNO(SC)÷ΠCNO(C)④用③得到的关系与S自然联接,最后投影出SNAMEΠSNAME(S⋈(ΠSNO,CNO(SC)÷ΠCNO(C)))对应的查询:SelectSnameFromSWherenotExists(Select*FromCWher
enotExists(Select*FromSCWhereSno=S.SnoandCno=C.Cno));关系代数关系代数运算的应用实例8)检索所学课程包含学生S3所学课程的学生学号ΠSNO,CNO(SC)÷ΠCNO(σSNO='S3‘(
SC))ΠSNOCNOGradeS1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475SNOCNOS1C2S1C3S1C4S2C1S2C2S2C3S2C4S3C1S3C4S4C2S4C4SNOCNO
GradeS1C280S1C370S1C485S2C160S2C275S2C390S2C4NULLS3C185S3C480S4C285S4C475SNOCNOGradeS3C185S3C480σΠCNOC1C4SNOS2S3S3÷SNOSNAMEAGESEXNativeP
laceS1WANG20M北京S2LIU18F山东S3HU17M上海S4XIA19F四川⋈Π?关系代数关系代数运算的应用实例8)检索所学课程包含学生S3所学课程的学生学号①投影出所有学生的选课情况ΠSNO,CNO(S
C)②投影出学生S3所学的全部课程的课程号ΠCNO(σSNO='S3‘(SC))③用除法计算所学课程包含学生S3所学课程的学生学号ΠSNO,CNO(SC)÷ΠCNO(σSNO='S3‘(SC))注③式与S自然连接,投影Π……(
S⋈(③))?对应的查询:SelectDistinctSnoFromSCasXWherenotExists(Select*FromSCasYWhereY.Sno=‘S3’andnotExists(Select*FromSCasZWhereSno=X.SnoandCno=Y.Cno));关系代
数关系代数运算的应用实例总结查询语句的关系代数表达式的一般形式是:Π…(σ…(R×S))或者Π…(σ…(R⋈S))先选择,后投影查询涉及到“否定”问题,用减法(差)来解决查询涉及到“全部”问题,用除法来解决