版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关系数据结构关系的完整性
实体完整性参照完整性用户定义完整性关系数据库第2章2024/4/121数据库原理●
关系数据库系统研究进展
1970年E.F.Codd“ARelationalModelofDataforSharedDataBanks”1978年IBM公司QUERYBYEXAMPLE1979年IBM公司SYSTEMR1981年IBM公司
SQL/DSORACLE公司ORACLERDBMS INFOMIX公司INFOMIX SYBASE公司SYBASE
MicroSoft公司SQL-SERVER奠定关系数据库的理论基础2024/4/122数据库原理2.1关系模型概述关系模型关系数据结构关系操作集合关系完整性约束数据结构单一,实体间的联系用关系表示,数据的逻辑结构是一张二维表。集合操作方式,即操作对象和结构都是集合。实体完整性、参照完整性和用户完整性。2024/4/123数据库原理关系操作(Select)选择(Join)连接(Project)投影(Divide)除(Union)并(Intersection)交(Difference)差(Insert)增加(Delete)删除(Update)修改2024/4/124数据库原理关系数据语言关系代数语言关系演算语言具有关系代数和关系演算双重特点的语言元组关系演算语言域关系演算语言例如:ISBL例如:APLHA,QUEL例如:QBE例如:SQL2024/4/125数据库原理2.2关系数据结构及形式化定义2.2.1关系⒈域(Domain)定义2.1域是一组具有相同数据类型的值的集合。例:D1={A,2,3,4,5,……,10,J,Q,K}在关系中用域来表示属性的取值范围域中所包含的值的个数称域的基数(用m表示)D2={,,,}D3={数据库原理,面向对象数据库技术}M2=4M3=2M1=132024/4/126数据库原理其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-Tuple),或简称为元组(Tuple)。元素中的每一个值di叫作一个分量(Component)。若Di(i=1,2,…,n)为有限集,其基数(Cardinalnumber)为mi(i=1,2,…,n),则D1×D2×…×Dn的基数为:M=∏mi
i=1
n
定义2.2给定一组域D1,D2,…,Dn,(允许部分或全部相同)。D1,D2
,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Dj,j=1,2,…,n}⒉笛卡尔积(CartesianProduct)笛卡尔积也是一个集合2024/4/127数据库原理设有域D2={,,,}D1×D2={(A,),(A,),(A,),(A,)
............
(K,),(K,),(K,),(K,)}
D1={A,2,3,……,J,Q,K},PCK....AA花色牌值分量元组基数:13×4=52
笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。
,则笛卡尔积2024/4/128数据库原理3.关系(relation)定义2.3D1×D2×…×Dn的子集称为在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)。其中:R为关系的名;n为关系的度或目(Degree)。关系中每个元素是关系中的元组,通常用t表示;当n=1时,称为单元关系(UnaryRelation);当n=2时,称为二元关系(BinaryRelation);同样可以把关系看作是一个二维表:每一行对应一个元组;表的每一列对应一个域,每个域起一个名字——称为
属性;2024/4/129数据库原理关系类型基本关系查询表视图表实际存在的表,是实际存储数据的逻辑表示。查询结果对应的表。由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。2024/4/1210数据库原理例:设D1=男人集合(MAN)={王强、李东、张兵
}
D2=女人集合(WOMAN)={赵红、吴芳
}
D3=儿童集合(CHILD)={王辉、李明、李亮}(1)求上面三个集合的笛卡儿积MWC王强赵红王辉王强赵红李明王强赵红李亮王强吴芳王辉王强吴芳李明王强吴芳李亮李东赵红王辉李东赵红李明李东赵红李亮李东吴芳王辉李东吴芳李明李东吴芳李亮张兵赵红王辉张兵赵红李明张兵赵红李亮张兵吴芳王辉张兵吴芳李明张兵吴芳李亮李亮吴芳李东李明吴芳李东王辉赵红王强CHILDWOMANMANFamily(2)构造一个家庭关系,可表示为:
FAMILY(MAN,WOMAN,CHILD)2024/4/1211数据库原理主码的诸属性称为主属性。若一个关系有多个候选码,则选定其中的一个为主码。关系R的某一属性组X不是R的码,但是其他某一关系的码,称X为R的外部码。5.主码(Primarykey)6.主属性(Primeattribute)若关系中的某一属性组的值能唯一的标识一个元组,称该属性组为候选码。4.候选码(Candidatekey)7.非码属性(Non-keyattribute)8.全码(All-key)不包含在任何候选码中的属性称为非码属性。9.外部码(foreignkey)关系模式的所有属性组是这个关系模式的候选码,称为全码。2024/4/1212数据库原理例:学生:S(S#,SNAME,SA,SD)课程:C(C#,CNAME)选课:SC(S#,C#,GR)S:候选码:S#,SNAME; 主码:S#假设没有学生重名C:候选码:C#; 主码:C#SC:候选码:(S#,C#);主码:(S#,C#); 外部码:S#,C#2024/4/1213数据库原理
列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。
不同的列可对应于同一个域,但给予不同的属性名。列的顺序无所谓,即列的次序可以任意交换。任意两个元组不能完全相同,即无重复行。行的顺序无所谓,即行的次序可以任意交换。
分量必须取原子值,即每一个分量都必须是不可分的数据项。基本关系性质:注:许多关系数据产品,不完全具备该性质关系模型要求关系必须是规范化的,规范条件最基本的一条就是,性质6。规范化的关系简称为范式(NormalForm)。2024/4/1214数据库原理2.2.2关系模式定义2.4对关系的描述称为关系模式,记为R(U,D,dom,F);其中:R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。S(S#,SNAME,SA,SD)关系模式通常简记为:R(U)关系模式就是关系的框架(表框架)它是对关系结构的描述域名及属性向域的映象常直接说明为属性的类型、长度●关系模式是型,是静态的、稳定的;●
关系是关系模式的值,是动态的、随时间而变化的。
2024/4/1215数据库原理学生关系模式S(S#,SNAME,AGE,SEX)学生课程关系模式SC(S#,C#,GRADE)
课程关系模式C(C#,CNAME,TEACHER)S#SNAMEAGESEXS#C#GRADEC#CNAMETEACHERSCCS2024/4/1216数据库原理2.2.3关系数据库
在关系模型中,实体以及实体间的联系都是用关系来表示。在一个给定的应用领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。
关系数据库也有型和值之分:型(关系数据库模式):对关系数据库的描述,包括若干域的定义以及在这些域上定义的若干关系模式。值:关系模式在某一时刻对应的关系的集合,通常称为关系数据库。2024/4/1217数据库原理2.3关系的完整性完整性约束实体完整性参照完整性用户定义的完整性关系的两个不变性2024/4/1218数据库原理(EntityIntegrity)规则2.1若属性A是基本关系R(u)(A∈u)上的主属性,则属性A不能取空值。例:选课SC中的S#,C#均不能取空值。实体完整性该规则是针对基本关系而言的;现实世界中的实体是可区分的,即它们具有某种唯一性标识;关系模型中以主码作为唯一性标识;主码中的属性即主属性不能取空值。2024/4/1219数据库原理(ReferentialIntegrity)规则2.2若属性(或属性组)F是关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的取值必须为:或者取空值(F的每个属性值均为空值);或者等于S中的某个元组的主码值。参照完整性定义外码与主码之间的引用规则2024/4/1220数据库原理例:职工EMP(EMP#,ENAME,JOB,DEPT#)
部门DEPT(DEPT#,DNAME,LOC)例:学生S(S#,SNAME,AGE,SEX)课程C(C#,CNAME,TEACHER)
学生课程SC(S#,C#,GRADE)则:EMP中的DEPT#为空或为DEPT中的DEPT#的值则:SC中的S#为空或为S中的S#的值;SC中的C#为空或为C中的C#的值。2024/4/1221数据库原理(User-definedIntegrity)用户定义的完整性用户自定义完整性是针对某一具体数据的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用环境决定。例:属性的取值范围;属性的非空限制2024/4/1222数据库原理关系数据库语言关系代数具有关系代数和关系演算双重特点关系演算域演算关系数据库标准语言SQL用关系运算来表达查询,以ISBL为代表用谓词公式来表达查询元组演算(以行为变量),以ALPHA为代表域演算(以列为变量),以QBE为代表元组演算元组演算、域演算2024/4/1223数据库原理2.4关系代数一种抽象的查询语言,用对关系的运算来表达查询。运算的三大要素:运算对象——关系运算符运算结果——关系集合运算符(并、差、交)专门的关系运算符(广义笛卡尔积、选择、投影、连接、除)算术比较符(大/小于、大/小于等于、等于、不等于)逻辑运算符(非、与、或)2024/4/1224数据库原理2.4.1传统的集合运算并(Union)运算c1b1a1c1b2a2c2b3a1c2b2a1CBAR1∪R2设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成。其结果关系仍为n目关系。记作:R∪S={t|t∈R∨t∈S}
c1b2a2c2b2a1c1b1a1CBAR1c1b2a2c2b3a1c2b2a1CBAR22024/4/1225数据库原理c1b1a1CBAR1-R2设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成,其结果仍为n目关系。记作:R-S={t|t∈R∧tS}∈差(Difference)运算c1b2a2c2b2a1c1b1a1CBAR1c1b2a2c2b3a1c2b2a1CBAR22024/4/1226数据库原理ABCa1b2c2a2b2c1R1∩R2c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b3a1c2b2a1CBAR1R2设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成,其结果仍为n目关系。记作:R∩S={t|t∈R∧t∈S}交(Intersection)运算2024/4/1227数据库原理广义笛卡尔积(ExtendedCartesianProduct)运算R1×R2c1b1a1c1b1a1c1b1a1CBAc1b2a2c2b3a1c2b2a1CBA......c2b3a1c2b2a1......c2b2a1c2b2a1两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b3a1c2b2a1CBAR1R22024/4/1228数据库原理2.4.2专门的关系运算学号学生姓名所属系名学生年龄
S#SNSDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20S6FCS22S2024/4/1229数据库原理选择运算是从关系中选取使公式为真的元组。这是从行的角度进行的运算。在关系R中选择满足给定条件的元组,记作:
σF
(R)={t|t∈RΛF(t)=‘真’}F是一个公式,表示形式为由逻辑运算符(∧,∨,٦)连接各算术表达式组成。算术表达式的基本形式为:XθY。θ={>,≥,<,≤,=,≠}
。选择(Selection)运算(b)2024/4/1230数据库原理例1求计算机科学系CS的学生学号学生姓名所属系名学生年龄
S#SNSDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20S6FCS22(a)SS’
S#SNSDSAS1ACS20S2BCS21S6FCS22σSD=‘CS’(S)2024/4/1231数据库原理例2求计算机科学系CS,年龄不超过21岁的学生。σ
SD=‘CS’∧SA≤21(S)S’
S#SNSDSAS1ACS20S2BCS21S’
S#SNSDSAS1ACS20S2BCS21S6FCS22学号学生姓名所属系名学生年龄
S#SNSDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20S6FCS22SσSD=‘CS’(S)2024/4/1232数据库原理这是从列的角度进行的运算。
关系R上的投影是从R中选择若干属性列组成新的关系。记做:
πA(R)={t[A]|t∈R}投影之后不仅取消了某些列,还可能取消某些元组。投影(Projection)运算2024/4/1233数据库原理例3
πSN,SD(S)
即求得学生关系S在学生姓名和所在系这两个属性上的投影结果。πSN,SD(S)学号
学生姓名所属系名学生年龄
S#
SNSDSAS1
ACS20
S2BCS21S3CMA19S4DCI19S5
EMA20S6
FCS22(a)(S)πSA(S)SA20211922SNSDACSBCSCMADCIEMAFCSπSA(S)
即求得学生关系S在年龄属性上的投影结果。2024/4/1234数据库原理
连接运算是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记做:2b52b310b37b23b1EBS12b4a28b3a26b2a15b1a1CBARRS
∞
C<E10b38b3a210b36b2a17b26b2a110b35b1a17b25b1a1ES.BCR.BA连接(Join)运算其中,F是条件表达式,它涉及到对两个关系中的属性的比较。例4设关系R、S如下图:2024/4/1235数据库原理例5设关系R、S如下图:AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32RS∞
R.B=S.Bθ为“=”的连接运算称为等值连接:
等值连接2b52b310b37b23b1EBS12b4a28b3a26b2a15b1a1CBAR2024/4/1236数据库原理自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。
例6关系R、S的自然连结:自然连接ABCEa1b153a1b267a2b3810a2b382RS∞
AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32RS∞
R.B=S.B2b52b310b37b23b1EBS12b4a28b3a26b2a15b1a1CBAR2024/4/1237数据库原理
给定关系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上投影的集合。记作:
R÷S={tr[X]|tr∈R∧Yx
ΠY(S)}
其中Yx为x在R中的象集,x=tr[X]。除(Division)运算2024/4/1238数据库原理例7c1b2a1c3b2a2c6b6a4c3b2a1c6b4a3c7b3a2c2b1a1CBARZXYc3c1c2Cd2d1d1Db2b2b1BS2024/4/1239数据库原理a1的象集为:a2的象集为:a3的象集为:a4的象集为:{(b1,c2),(b2,c3),(b2,c1)}{(b3,c7),(b2,c3)}{(b4,c6)}{(b6,c6)}S在B、C上的投影{(b1,c2),(b2,c3),(b2,c1)}
R÷S={tr[X]|tr∈R∧Yx
ΠY(S)}
R÷S={a1}除(Division)运算c1b2a1c3b2a2c6b6a4c3b2a1c6b4a3c7b3a2c2b1a1CBARc3c1c2Cd2d1d1Db2b2b1BS2024/4/1240数据库原理并、差、笛卡儿积、选择、投影RS=R-(R-S)
或RS=S-(S-R)R∩S={t|t∈R∧t∈S}123σAθB
(R×S)R÷S={tr[X]|tr∈R∧Yx
ΠY(S)}
关系代数五种基本运算交、连接和除可以用上述5种基本运算表示2024/4/1241数据库原理3除运算
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。
R÷S={tr[X]|tr∈R∧Yx
ΠY(S)}其中Yx为x在R中的象集,x=tr[X]①T=π
x(R)②P=πy
(S)③Q=(T×P)-R④W=π
x(Q)⑤R÷S=T-WR÷S=π
x(R)-π
x((T×πy
(S))-R)Sc1b2a1c3b2a2c6b6a4c3b2a1c6b4a3c7b3a2c2b1a1CBAd2c3b2d1c1b2d1c2b1DCBR2024/4/1242数据库原理①T=π
x(R)②P=πy
(S)③Q=(T×P)-R④W=π
x(Q)⑤R÷S=T-WABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSABCa1b1c2a1b2c1a1b2c3a2b1c2a2b2c1a2b2c3a3b1c2a3b2c1a3b2c3a4b1c2a4b2c1a4b2c3Aa1a4a3a2a1ATa4a3a2AWPc3c1c2Cb2b2b1B3除运算2024/4/1243数据库原理
设教学数据库中有三个关系:学生关系S(S#,SNAME,SD,AGE)课程关系C(C#,CN,CP#)学习关系SC(S#,C#,GRADE)例1检索学习课程号为C2的学生学号与成绩学号课程号学习成绩
S#C#GRADES1C1AS1C2AS1C3AS1C5BS2C1BS2C2CS2C4CS3C2B......SCπS#,GRADE(σC#=‘C2’
(SC))σC#=‘C2’(SC)关系代数表达式学号
课程号
学习成绩
S#
C#
GRADES1
C2
AS2
C2
CS3
C2
B..
....2024/4/1244数据库原理学号课程号学习成绩
S#C#GRADES1C1AS1C2AS1C3AS1C5BS2C1BS2C2C......SC学号学生姓名所属系名学生年龄
S#SNAMESDSAS1李勇CS20S2刘晨CS21S3王敏MA19S4张力CI19S5田芳MA20........
S例2检索学习课程号为C2的学生学号和姓名SSC∞
学号学生姓名所属系名学生年龄课程号学习成绩
S#SNAMESDSAC#GRADES1李勇CS20C1AS1李勇CS20C2AS1李勇CS20C3AS1李勇CS20C5AS2刘晨CS21C1BS2刘晨CS21C2C............σC#=‘C2’()SSC∞
S#SNAMES1李勇S2刘晨=πS#,SNAME(s
σC#=‘C2’
(sc))SSCπS#,SNAME(σ
C#=‘C2’
())2024/4/1245数据库原理例3求选修《数据库原理》这门课程的学生名和所在系。πSN,SD(
(σCN=‘数据库原理’(C))
)
SSC
设教学数据库中有三个关系:学生关系S(S#,SNAME,SD,AGE)课程关系C(C#,CN,CP#)学习关系SC(S#,C#,GRADE)2024/4/1246数据库原理学号课程号学习成绩
S#C#GRADES1C1AS1C2AS1C3AS1C5BS2C1BS2C2C......SC学号学生姓名所属系名学生年龄
S#SNAMESDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20........
S例4检索学习课程号为C2或C3的学生学号和所在系πS#,SD(
πS#
(σC#=‘C2’∨C#=‘C3’(SC))
)
S2024/4/1247数据库原理例5求至少选修C2和C3这两门课程的学生名。C#C2C3KπSN((πS#,C#
(SC)÷K))
SπSN(
(πS#,C#
(SC)÷πC#
(σC#=‘C2’∨C#=‘C3’(C)))
S解法22024/4/1248数据库原理例7求选修全部课程的学生名。例8求至少选修了刘晨所选课程的学生名。πS#(SC)-πS#
(σC#=‘C2’(SC))例6求不学C2这门课程的学生名。πS#(S)-πS#
(σC#=‘C2’(SC))×√
πSN((πC#,S#
(SC)÷C)
)
S
πSN((πC#,S#
(SC)÷K))
S不是所有的学生都选修了课程K=πC#
(σSNAME=‘刘晨’(S)SC)2024/4/1249数据库原理2.5关系演算关系演算是以数理逻辑中的谓词演算为基础的。按谓词变元的不同,关系演算可分为元组关系演算和域关系演算。元组关系演算以元组变量作为谓词变元的基本对象。
ALPHA语言主要有:GET、PUT、HOLD、UPDATE、DELETE、DROP六条语句域关系演算以元组变量的分量作为谓词变元的基本对象。
QBE是QueryByExample(即通过例子进行查询)2024/4/1250数据库原理2.5.1元组关系演算语言ALPHA元组关系演算语言ALPHA
ALPHA语言是元组关系演算语言,谓词变元是元组变量。元组变量的二个用途是:
(1)简化关系名;
(2)操作条件中使用量词时必须用元组变量。
例查询计算机系学生的姓名元组变量X用来简化关系名Student
RANGEStudentXGETW(X.Sname):
X.Deptno=‘CS’
操作语句工作空间名表达式操作条件(tuplerelationalcalculus)2024/4/1251数据库原理检索操作更新操作
(1)简单检索(即不带条件的检索)
(2)限定的检索(即带条件的检索)
(3)带排序的检索
(4)带定额的检索
(5)用元组变量的检索
(6)用存在量词的检索
(7)带有多个关系的表达式的检索
(8)用全称量词的检索
(9)用两种量词的检索
(10)用蕴函(Implication)的检索
(11)集函数
(1)修改操作
(2)插入操作
(3)删除元组关系演算2024/4/1252数据库原理检索操作(1)简单检索(即不带条件的检索)
例1查询所有被选修课程的课程号码例2查询所有学生的数据书59页的数据库GETW(SC.Cno)这里条件为空,表示没有限定条件。W为工作空间名。GETW(Student)2024/4/1253数据库原理(2)限定的检索(即带条件的检索)例3查询信息系(IS)中年龄小于20岁的学生的学号和年龄
例4查询计算机科学系(CS)学生的学号、年龄,并按年龄降序排序(3)带排序的检索检索操作GETW(Student.Sno,Student.Sage):Student.Sdept='IS'∧Student.Sage<20GETW(Student.Sno,Student.Sage):Student.Sdept='CS'DOWNStudent.Sage2024/4/1254数据库原理(4)带定额的检索
例5取出一个信息系学生的学号
检索操作规定了检索出元组的个数,方法是在W后括号中加上定额数量。
例6查询信息系年龄最大的三个学生的学号及其年龄,结果按年龄降序排序。排序和定额可以一起使用GETW(1)(Student.Sno):Student.Sdept='IS'GETW(3)
(Student.Sno,Student.Sage):Student.Sdept='IS'DOWNStudent.Sage2024/4/1255数据库原理
例7查询信息系学生的名字(5)用元组变量的检索检索操作元组变量是在某一关系范围内变化(也称为范围变量RangeVariable),一个关系可以设多个元组变量。其用途有:简化关系名;操作条件中使用量词时必须用元组变量。RANGEStudentXGETW(X.Sname):X.Sdept='IS'2024/4/1256数据库原理检索操作(6)用存在量词的检索
例8查询选修2号课程的学生名字例9查询选修了其直接先行课是6号课程的课程的学生学号RANGESCXGETW(Student.Sname):∃X(X.Sno=Student.Sno∧X.Cno='2')
RANGECourseCXGETW(SC.Sno):∃CX(CX.Cno=SC.Cno∧CX.Pcno='6')2024/4/1257数据库原理例10查询至少选修一门其先行课为6号课程的学生名字前束范式(Prenexnormalform)的形式:RANGECourseCXSCSCXGETW(Student.Sname):∃SCX(SCX.Sno=Student.Sno∧ ∃CX(CX.Cno=SCX.Cno∧CX.Pcno='6'))GETW(Student.Sname):∃SCX∃CX(SCX.Sno=Student.Sno∧CX.Cno=SCX.Cno∧CX.Pcno='6')2024/4/1258数据库原理(7)带有多个关系的表达式的检索例11查询成绩为90分以上的学生名字与课程名字RANGESCSCXGETW(Student.Sname,Course.Cname):∃SCX
(SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno)检索操作查询结果表达式中可以有多个关系(本查询所要求的结果学生名字和课程名字分别在Student和Course两个关系中。)2024/4/1259数据库原理检索操作
(8)用全称量词的检索
例12查询不选1号课程的学生名字
存在量词来表示:RANGESCSCXGETW(Student.Sname):∀SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')RANGESCSCXGETW(Student.Sname):⌉∃SCX(SCX.Sno=Student.Sno∧SCX.Cno='1')2024/4/1260数据库原理(9)用两种量词的检索
例13查询选修了全部课程的学生姓名检索操作RANGECourseCXSCSCXGETW(Student.Sname):∀CX∃SCX
(SCX.Sno=Student.Sno∧SCX.Cno=CX.Cno)2024/4/1261数据库原理检索操作(10)用蕴函(Implication)的检索例14查询最少选修了95002学生所选课程的学生学号RANGECouseCXSCSCXSCSCYGETW(Student.Sno):∀CX(∃SCX(SCX.Sno='95002'∧SCX.Cno=CX.Cno)=>∃SCY(SCY.Sno=Student.Sno∧SCY.Cno=CX.Cno))2024/4/1262数据库原理检索操作(11)集函数(Aggregationfunction)函数名功能COUNT对元组计数TOTAL求总和MAX求最大值MIN求最小值AVG求平均值例15查询学生所在系的数目例16查询信息系学生的平均年龄GETW(COUNT(Student.Sdept))
GETW(AVG(Student.Sage)):Student.Sdept='IS'2024/4/1263数据库原理更新操作(1)修改操作首先用HOLD语句将要修改的元组从数据库中读到工作空间中然后用宿主语言修改工作空间中元组的属性
最后用UPDATE语句将修改后的元组送回数据库中UPDATE语句实现步骤是:例1795007学生从计算机科学系转到信息系ALPHA语言中,不允许修改主码值;只能先删除该元组,再插入具有新主码值的元组。HOLDW(Student.Sno,Student.Sdetp):Student.Sno='95007'
(从Student关系中读出95007学生的数据)MOVE'IS'
TOW.Sdept(用宿主语言进行修改)UPDATEW(Student)
(把修改后的元组送回Student关系)2024/4/1264数据库原理更新操作(2)插入操作首先用宿主语言在工作空间中建立新元组
然后用PUT语句把该元组存入指定的关系中PUT语句实现步骤:例18学校新开设了一门2学分的课程“计算机组织与结构”,其课程号为8,直接先行课为6号课程。插入该课程元组。PUT语言只对一个关系操作,即表达式必须为单个关系名。MOVE'8'TOW.CnoMOVE'
计算机组织与结构'
TOW.CnameMOVE'6'TOW.CpnoMOVE'2'TOW.CcreditPUTW(Course)2024/4/1265数据库原理更新操作(3)删除用HOLD语句把要删除的元组从数据库中读到工作空间中用DELETE语句删除该元组DELETE语句实现步骤:例1995110学生因故退学,删除该学生元组HOLDW(Student):Student.Sno='95110' DELETEW2024/4/1266数据库原理例20将学号95001改为95102
HOLDW(Student):Student.Sno='95001'DELETEW(Student)MOVE'95102'TOW.SnoMOVE‘李勇'
TOW.SnameMOVE‘男'
TOW.SsexMOVE'20'TOW.SageMOVE'CS'TOW.SdeptPUTW(Student)2024/4/1267数据库原理例21删除全部学生HOLDW(SC)DELETEW+HOLDW(Student)DELETEWSC与Student之间具有参照关系,为保证参照完整性,删除Student中元组时相应的要删除SC中的元组。2024/4/1268数据库原理2.5.3域关系演算语言QBE域关系演算用域变量代替元组变量的每一个分量,域变量的变化范围是某个值域而不是一个关系。QBE为基于屏幕表格的查询语言,用户通过终端屏幕编辑程序以填写表格的方式构造查询要求,而查询结果也是以表格形式显示。QBE是QueryByExample(即通过例子进行查询)2024/4/1269数据库原理检索操作更新操作
(1)简单查询
(2)条件查询
(3)集函数
(4)对查询结果排序
(1)修改操作
(2)插入操作
(3)删除操作域关系演算2024/4/1270数据库原理检索操作(1)简单查询例1求信息系全体学生的姓名1)用户提出要求2)屏幕显示空白表格3)用户在最左边一栏输入关系名4)屏幕显示该关系的栏名,即Student关系的各个属性名5)用户在上面构造查询要求6)屏幕显示查询结果Student
SnoSnameSsexSageSdept
P.T
IS
P.李勇
IS
IS刘晨张立StudentSnoSnameSsexSageSdept操作步骤:2024/4/1271数据库原理例2查询全体学生的全部数据Student
SnoSnameSsexSageSdeptP.95001P.李勇
P.男
P.20P.CS
Student
SnoSnameSsexSageSdeptP.示例元素下面要加下划线,P.是表示打印的操作符。示例元素是这个域中可能的一个值,不必是查询结果中的元素。2024/4/1272数据库原理(2)条件查询例3求年龄大于19岁的学生的学号Student
SnoSnameSsexSageSdeptP.95001
>19
检索操作2024/4/1273数据库原理例4求计算机科学系年龄大于19岁的学生的学号Student
SnoSnameSsexSageSdeptP.95001
>19CS
Student
SnoSnameSsexSageSdeptP.95001 CS
P.95001
>192024/4/1274数据库原理例5查询计算机科学系或者年龄大于19岁的学生的学号Student
SnoSnameSsexSageSdeptP.95001 CS
P.95002
>19例6查既选修了1号课程又选修了2号课程的学生的学号SC
SnoCnoGradeP.950011P.950012 2024/4/1275数据库原理“与”:(1)条件写在同一行上;
(2)把两个条件写在不同行上,但使用
相同的示例元素。“或”:两个条件写在不同行上,且使用不同的示例元素。2024/4/1276数据库原理例7查询选修1号课程的学生姓名Student
SnoSnameSsexSageSdept
95001
P.李勇
SC
SnoCnoGrade
950011Sno为连接属性,其值在两个表中要相同。2024/4/1277数据库原理例8查询未选修1号课程的学生姓名Student
SnoSname
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度煤炭行业绿色运输体系构建合同4篇
- 2025标准新能源材料研发与采购合作协议3篇
- 2025年度生态环保瓷砖批量采购合作协议3篇
- 2025版医疗健康大数据合作开发合同3篇
- 个性化定制小区房产买卖合同(2024版)版B版
- 2025版国际贸易纠纷诉讼担保委托服务协议3篇
- 2025年度智能网联汽车道路测试服务合同范本4篇
- 二零二五年度仓储物流中心建设承包协议3篇
- 二零二五年度存量房买卖与装修改造协议3篇
- 2025年度棋牌室与儿童教育机构合作合同
- 2025年山东浪潮集团限公司招聘25人高频重点提升(共500题)附带答案详解
- 2024年财政部会计法律法规答题活动题目及答案一
- 2025年江西省港口集团招聘笔试参考题库含答案解析
- (2024年)中国传统文化介绍课件
- 液化气安全检查及整改方案
- 《冠心病》课件(完整版)
- 2024年云网安全应知应会考试题库
- 公园保洁服务投标方案
- 光伏电站项目合作开发合同协议书三方版
- 2024年秋季新沪教版九年级上册化学课件 第2章 空气与水资源第1节 空气的组成
- 香港中文大学博士英文复试模板
评论
0/150
提交评论