第2章关系数据库课件

PPT
  • 阅读 83 次
  • 下载 0 次
  • 页数 66 页
  • 大小 1.952 MB
  • 2022-12-05 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第2章关系数据库课件
可在后台配置第一页与第二页中间广告代码
第2章关系数据库课件
可在后台配置第二页与第三页中间广告代码
第2章关系数据库课件
可在后台配置第三页与第四页中间广告代码
第2章关系数据库课件
第2章关系数据库课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 66
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】第2章关系数据库课件.ppt,共(66)页,1.952 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-92318.html

以下为本文档部分文字说明:

数据库原理与应用第2章关系数据库关系模型是一种组织层数据模型,面向计算机应用。关系数据库是基于关系数据模型的数据库。当前,主流的数据库管理系统都是关系型的DBMS。2.1关系数据模型概述关系模型的组成•关系数据结构•数据完整性约束•关系操作2.1关系数据结构•关系数

据模型源于数学,用二维表来组织数据,这张二维表在关系数据库中就称为关系。•关系数据库就是表或者关系的集合。•关系型DBMS就是让用户感觉到所操作的数据库像是一张张的表的集合。•在关系数据库中,表是提供给用户操作的逻辑结构,而数据实际

的物理存储结构和存储路径对用户是不可见的。关系数据模型的基本术语•关系:关系就是二维表,并满足如下性质:关系表中的每列都是不可再分的数据项;表中的行、列次序并不重要;工资扣除职工号姓名职称基本工龄职

务房租水电实发86051陈平讲师1059.5156012115.5...........................关系数据模型的基本术语•属性:表中的每一列是一个属性值集,反映了实体的某个性质。列名,即为属性名,不能重复。•值域

:属性的取值范围。如,0≤分数≤100,学分只能取{1,2,2,4,5,6}等。•元组:表中的每一行称作是一个元组,它相当于一个记录值,任意两个元组不能相同。•分量:元组中的每个属性值称为元组的一个分量,n元关系的

每个元组有n个分量。•关系模式:R(U,D,Dom,F)R-关系名;U-属性名集合;D-属性的值域;Dom-属性的类型、长度;F-属性间函数依赖集;•关系模式简记为:R(A1,A2,„,An)码•关系数据库:对应于一个关系模型的所有关系表的集合称为关系数据库。•候选码:能够惟

一标识关系中的每个元组的一个属性或最小属性组。•一个关系至少有一个候选码,可能不止一个。•最简单的情况,候选码只包含一个属性。•最极端的情况,关系模式的所有属性是这个关系模式的候选码,称为全码。码•主码:被数据

库设计者选中,用来在同一实体集中区分不同实体的候选码。(关键字)•主码的作用:分辨记录、建立索引、快速查找、排序、保持参照完整性等。•主属性:包含在任一候选码中的属性称为是主属性。•非主属性:不包含在任一候选码中的属性称为非主属性。•外码:当前关系模式的属性中所包含的另外一个关系模式的主码。(外

部关键字)关系数据结构及其形式化定义关系模式是建立在数据集合的基础上,下面从集合论的角度给出关系数据结构的形式化定义。1.关系的形式化定义为了给出形式化定义,首先给出笛卡尔积的定义。设D1,D2,…,Dn为任意集合,定义笛卡尔积D1,D2,…,Dn为:D1×D2×…×Dn={

(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中每一个元素(d1,d2,…,dn)称为一个n元组,简称元组。元组中每一个di称为是一个分量。笛卡儿乘积示例设:D1={计算机专业,信息科学专业}D2={张珊,李海,王宏}D2={男,女}则

D1×D2×D2的笛卡尔积为:D1×D2×D2={(计算机软件专业,张珊,男),(计算机软件专业,张珊,女),(计算机软件专业,李海,男),(计算机软件专业,李海,女),(计算机软件专业,王宏,男),(计算机软件专业,王宏,女),(信息科学专业,张珊,男),(信息科学专业,张

珊,女),(信息科学专业,李海,男),(信息科学专业,李海,女),(信息科学专业,王宏,男),(信息科学专业,王宏,女)}笛卡尔积实际上就是一个二维表计算机专业信息科学专业D1张珊李海王宏D2×男女D3×计算机软件专业计算机软件专业计算机软件专业计算机软件专业计算机软件专业计

算机软件专业信息科学专业信息科学专业信息科学专业信息科学专业信息科学专业信息科学专业=张珊张珊李海李海王宏王宏张珊张珊李海李海王宏王宏男女男女男女男女男女男女D1D2D3笛卡尔积•笛卡尔积D1×D2×…×Dn的任意一个子集称为D1,D2,…,Dn上的一

个n元关系。•形式化的关系定义同样是把关系看成二维表,给表的每个列取一个名字,称为属性。•n元关系有n个属性,一个关系中的每个属性的名字必须是唯一的。•属性Di的取值范围(i=1,2,…,n)称为该属性的值域(domain)。•从集合论的观点也可以将

关系定义为:关系是一个有K个属性的元组的集合。2.对关系的限定•三类关系:基本表-实际存储数据的逻辑表示,实际存在的表。查询表-查询结果对应的表,只作显示用。视图-由基本表或其他视图导出表,是虚表,不对应实际存储的数据。•关系中的每个分量都必须是不可再分的数据项。•关系表中行、列的顺序不重

要。•表中列的数据类型是固定的,即每个列中的分量是同类型的数据,来自相同的值域。•不同的列的数据可以取自相同的值域,每个列称为一个属性,每个属性有不同的属性名。2.2关系模型的完整性约束•关系模型的完整性是对关系的某种约束条件,保证数据库中存储的数据有效和正确。•主要包括三类

完整性约束:•实体完整性•参照完整性•用户定义的完整性•实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。实体完整性•实体完整性是保证关系中的每个元组都是可识别的和惟一的。•表中不允许存在如下的记录:•无

主码值的记录•主码值相同的记录•例:选修(学号,课程号,成绩)“学号、课程号”为主码,则两个属性都不能取空值。参照完整性•参照完整性是指对两个关系,其中一个关系中某些属性的取值受另一关系中某些属性取值范围的约束。•一

般通过外码来实现。•外码:设F是基本关系R的一个或一组属性,F不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。基本关系R称为参照关系(子表),基本关系S称为被参照关系(主表)。•主码值先在主表中生成,后在子表中被引用。外码引用示例1学生专业属于(学号,姓名,专

业号,…)(专业号,专业名)学号姓名性别专业号年龄801张三女0119802李四男0120803王五男0120804赵六女0220805钱七男0219专业号专业名01信息02数学03计算机学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)外码引用示例2学生课程修课(学号,

姓名,…)(课程号,课程名,…)(学号,课程号,成绩,…)课程号课程名学分01数据库402数据结构403编译404PASCAL2学号姓名性别专业号年龄801张三女0119802李四男0120803王五男0120804赵六女0220805钱七男0219学号课程号成绩801049280103

788010285802038280204908030488学生学生选课课程外码引用示例2学生实体及其内部的领导联系(一对多)学生(学号,姓名,性别,专业,年龄,班长)学号姓名性别专业号年龄班长801张三女0119802802李四男0120803王五男0120802804赵六女022080580

5钱七男0219参照完整性规则•参照完整性规则就是定义参照关系的外码与被参照关系主码之间的引用规则。•若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(关系R和S不一定是不同的关系),则对于关系R的每个元组在外码F上的值必须为:•或者值为空;•或者等

于其所引用的关系S中某个元组的主码值。用户定义的完整性根据应用语义,属性数据有:•类型与长度限制:方便计算机操作•取值范围限制:防止属性值与应用语义矛盾•例:课程(课程号,课程名,学分,成绩)“课程名”属性必须取唯一值;非主属性“课程名”也不能取空值;“学分”属性

只能取值{1,2,2,4,5};成绩取[0…100]2.2关系操作•常用的关系操作有两类•查询•专门的关系运算:选择、投影、连接、除•传统的集合运算:并、交、差、笛卡尔积•数据更新•插入、删除、修改•查询

的表达能力是其中最主要的部分•关系操作的特点:•操作的对象和结果都是集合(二维关系表)关系数据语言•关系代数语言•用对关系的运算来表达查询要求,ISBL•关系演算语言:用谓词来表达查询要求•元组关系演算语言

•谓词变元的基本对象是元组变量ALPHA,QUEL•域关系演算语言•谓词变元的基本对象是域变量,QBE•具有关系代数和关系演算双重特点的语言,SQL•三种语言在表达能力上基本上是等价的,并且能够嵌入高级语言中使用。2.4关系代数•关系代数是一种抽象的查询语言,以关系作为运算对象,产生新的关

系作为运算结果。•关系代数的运算可分为两大类:•传统的集合运算:广义笛卡尔积运算、并、交和差运算。(把关系看成是元组的集合,运算主要是从行的角度进行)•专门的关系运算:选择、投影、连接和除运算。(不仅涉及行且涉及到列)关系代数的运算符(四类)运算符含义传统的

集合运算∪并∩交-差×广义笛卡尔积专门的关系运算σ选择∏投影连接÷除关系代数的运算符(四类)运算符含义比较运算符>大于<小于=等于≠不等于≤小于等于≥大于等于逻辑运算符非∧与∨或2.4.1传统的集合运算•传统的集合运算是二目

运算•设关系R和S均是n元关系,且相应的属性值取自同一个值域,则可以定义三种运算:•并运算(∪)•交运算(∩)•差运算(―)1.并运算•关系R与关系S的并记为:R∪S={t|t∈R∨t∈S}•其结果仍是n目关系,由属于R或属于S的元组组成。顾客号姓名性别年龄S01张宏男45S02李丽女24S

02王敏女28顾客号姓名性别年龄S02李丽女24S04钱景男50S06王平女24顾客号姓名性别年龄S01张宏男45S02李丽女24S02王敏女28S04钱景男50S06王平女242.交运算•关系R与关系S的交记

为:R∩S={t|t∈R∧t∈S}•结果仍是n目关系,由属于R且属于S的元组组成。顾客号姓名性别年龄S01张宏男45S02李丽女24S02王敏女28顾客号姓名性别年龄S02李丽女24S04钱景男50S06王平女24顾客号姓名性别年龄S02李丽女242.差运算•关系R与关系S的差记为:R-S

={t|t∈R∧tS}•结果仍是n目关系,由属于R而不属于S的元组组成。顾客号姓名性别年龄S01张宏男45S02李丽女24S02王敏女28顾客号姓名性别年龄S02李丽女24S04钱景男50S06王平女24顾客号

姓名性别年龄S01张宏男45S02王敏女284.广义笛卡尔积•两个分别为n目和m目的关系R和关系S的广义笛卡尔积是一个(m+n)列的元组的集合。•若R有K1个元组,S有K2个元组,则关系R和关系S的广义笛卡尔积有K1×K2个元组,记做:R×S={tr^ts|tr∈R∧ts∈S}•tr^ts表示

由两个元组tr和ts前后有序连接而成的一个m+n列元组,该元组的前n个分量是关系R的一个元组,后m个分量是关系S的一个元组。广义笛卡尔积示例ABa1b1a2b2CDEc1d1e1c2d2e2c2d2e2ABCDEa1b1c1d1e1a1b1c2d2e2

a1b1c2d2e2a2b2c1d1e1a2b2c2d2e2a2b2c2d2e22.4.2专门的关系运算•专门的关系运算包括:投影、选择、连接和除等操作,其中前二个为一元操作,后二个为二元操作。•投影•选择•连接•除二元操作一元操作1.选择(Selection

)•从关系R中选择满足给定条件的诸元组σF(R)={r|r∊R∧F(t)=‘true’}•其中:σ是选择运算符,R是关系名,r是元组,F是选择条件,它是一个逻辑表达式,取逻辑“真”值或“假”值。•选择运算是从行的角度所进行的运算σStudent关系、Course关系和SC关系学号S

no姓名Sname性别Ssex年龄Sage系dept95001李勇男20CS95002刘晨女19IS95002王敏女18MA95004张立男19ISStudent课程号课程名先行课学分CnoCnameCpnoCcredit1数据

库542数学22信息系统144操作系统625数据结构746数据处理27PASCAL64学号课程号成绩SnoCnoGrade9500119295001285950012889500229095002280CourseSC选择示例[例1]查询信

息系(IS系)全体学生σSdept='IS'(Student)结果:SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS[例2]查询年龄小于20岁的学生σSage<20(S

tudent)结果:SnoSnameSsexSageSdept95002刘晨女19IS95002王敏女18MA95004张立男19IS2.投影(Projection)∏A(R)={t.A|t∈R}•其中:•

∏是投影运算符,R是关系名,A是被投影的属性或属性组。•t.A(或t[A])表示元组t中相应于属性(集)A的分量,投影后要消去重复行。•投影操作主要是从列的角度进行运算π投影示例[例1]查询查询学生的姓名和所在系πSname,Sdept(St

udent)结果:[例2]查询学生关系中有哪些系πSdept(Student)结果:SnameSdept李勇CS刘晨IS王敏MA张立ISSdeptCSISMA2.连接•其中:•A和B分别是关系R和S上可比的属性组,•θ是比较运算符,•连接运算从R和S的广

义笛卡尔积R×S中选择(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较运算符θ的元组。•两类常用连接:等值连接和自然连接AθBRS={tr^ts|tr∈R∧ts∈S∧tr[A]θts[B]}等值连接•当θ为“=”时的连接为等值连接,•是从

关系R与关系S的广义笛卡尔积中选取A,B属性值相等的那些元组。A=BRS={tr^ts|tr∈R∧ts∈S∧tr[A]=ts[B]}自然连接•特殊的等值连接,要求两个关系中进行比较的分量必须是相同的属

性组。•自然连接与等值连接的差别为:•自然连接要求相等的分量必须有共同的属性名,等值连接则不要求;•自然连接要求把结果中重复的属性列去掉,等值连接却不要求。RS={tr^ts|tr∈R∧ts∈S∧tr[B]=

ts[B]}连接示例ABCa1b15a1b26a2b28a2b412BEb12b27b210b22b52RSC<ERSAR.BCS.BEa1b15b27a1b15b210a1b26b27a1b26b210a

2b28b210等值连接示例ABCa1b15a1b26a2b28a2b412BEb12b27b210b22b52RSR.B=S.BRSAR.BCS.BEa1b15b12a1b26b27a2b28b210

a2b28b22自然连接示例ABCa1b15a1b26a2b28a2b412BEb12b27b210b22b52RSRSABCEa1b152a1b267a2b2810a2b2824.除(Division)•象集Y:

给定一个关系R(X,Y),X和Y为属性组。当t[X]=x时,x在R中的象集为:•Yx={t[Y]|t∈R∧t[X]=x}•t[Y]表示关系R中在属性组X上值为x诸元组在属性组Y上分量的集合(或投影)。除运算•除法的一般形式•设有关系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]|t

r∈R∧∏Y(S)Yx}除运算示例1ABCa1b1c2a2b2c7a2b4c6a1b2c2a4b6c6a2b2c2a1b2c1BCDb1c2d1b2c1d1b2c2d2R÷SAa1RS•象集Zx给定一个关系R(X,Z)

,X和Z为属性组。当•t[X]=x时,x在R中的象集(ImagesSet)为:•Zx={t[Z]|tR,t[X]=x}它表示R中属性组X上值为x•的诸元组在Z上分量的集合分析在关系R中,A可以取四个值{a1,a2,a2,a4}a1的象集为{(b1,c2)

,(b2,c2),(b2,c1)}a2的象集为{(b2,c7),(b2,c2)}a2的象集为{(b4,c6)}a4的象集为{(b6,c6)}S在(B,C)上的投影为{(b1,c2),(b2,c1),(b2,c2)}只有a1的象集包含了S在(B

,C)属性组上的投影,所以:R÷S={a1}象集Zx给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(ImagesSet)为:Zx={t[Z]|tR,t[X]=x}它表示R中属性组X上值为x的诸元组在Z上分

量的集合除运算示例2•查询修c02号课程的学生的学号和成绩。∏sno,grade(σcno=‘c02’(SC))•查询计算机系修c02号课程的学生的姓名和成绩。∏sname,grade(σcno=‘c02’(SC)σsdept=‘计算机系’(Student))•查询修了

第2学期课程的学生的姓名和所在系。∏sname,sdept(σsemester=2(Course)SCStudent)•查询修了全部课程的学生的学号和姓名。∏sno,sname(Student(SC÷∏cno(Course)))综合示例2.3.3扩充的关系运算关

系代数操作时,为了多保存一些信息,就引进了“外连接”和“半连接”。•1.外连接(outerjoin)在做R⋈S时,在公共属性上无相等值的R和S中的某些元组被舍去。如在做R⋈S时,保留被舍去的元组,其空缺的另一关系的属性值用空值()填充,那么这种操作称为“外连接”操作。•⑴左外连接:记为R*

⋈S保留关系R中的所有元组。•⑵右外连接:记为R⋈*S保留关系S中的所有元组。•⑶全部连接:记为R*⋈*S保留关系R和S的所有元组。扩充的关系运算RABCabcbbacfdSBCDbbaeccdfdebgR⋈SABCDaacbbaccddebR*⋈SABCDaacb

bbabccdfdebnull扩充的关系运算RABCabcbbacfdSBCDbbaeccdfdebgR⋈*SABCDaacnullbbaeccdfdebgR*⋈*SABCDaacbnullbbabe

ccdffdebnullg扩充的关系运算•1.半连接(semijoin)关系R和S半连接记为R⋉S,定义为R⋈S在R上的投影,即R⋉S=πR(R⋈S)其中:πR的下标R的属性集。扩充的关系运算RABCadbcbbbaCcfdSBCDbbaccddebR⋈SABCDaaddcbbbbaccc

cddedebR⋉SABCadcbbaccdS⋉RBCDbbaccddeb关系演算关系演算用数理逻辑中的谓词演算为基础,用公式表示关系上的运算。•以元组为变量的关系演算叫元组关系演算•以域为变量的关系演算叫域关系演算元组关系演算元组关系演算(tuplerelationalcalcul

us)•元组演算表达式{t|P(t)}其中:P(t)是元组关系演算公式(原子公式和逻辑运算符组成),t是元组变量。一个元组演算表达式表示一个关系。元组关系演算原子公式有三种形式•R(t)表示t∈R。•t[i]θu[j]表示t的第i个分量

与u的第j个分量满足比较关系θ。•t[i]θC表示t的第i个分量与常量C满足比较关系θ。2.4.1元组关系演算公式(furmula)可递归地定义•⑴每个原子公式是一个公式。•⑵如P1和P2是公式,则¬P1表示“P1

不真”、P1∧P2表示“P1和P2都真”、P1∨P2表示“P1或P2或两者真”、P1⇒P2表示“若P1真,则P2真”。•⑶如P1是公式,S是元组变量,那么(∃S)(P1)表示命题:“存在一个元组S使得公式P1为真”。•

⑷如P1是公式,S是元组变量,那么(∀S)(P1)表示命题:“对于所有元组S都使得公式P1为真”。•⑸优先级:(),θ,∃∀,¬∨∧•⑹除以上五种外均不是公式元组关系演算元组关系演算公式三个等价规则:•⑴P1∧P2⇔¬(¬P1

∨¬P1);P1∨P2⇔¬(¬P1∧¬P1);•⑵(∀S)(P1(S))⇔¬(∃S)(¬(P1(S)):(∃S)(P1(S))⇔¬(∀S)(¬(P1(S)):•P1⇒P2⇔¬P1∨P2。元组关系演算关系

代数可转换成等价的关系演算表达式:•R∪S={t|R(t)∨S(t)};•R∩S={t|R(t)∧S(t)};•R-S={t|R(t)∧¬S(t)}:•σF(R)={t|R(t)∧F’}。F’是F的等价形式:•Π2,3(R)={t|(∃u)(R(u)∧t[1]=u[

2]∧t[2]=u[3])};•R(A,B,C)和S(C,D,E),则R⋈R={t[ABCDE]|t[ABC]∈R∧t[CDE]∈S}域关系演算域关系演算(domainrelationalcalculus)类似于元组关系演算,只是变量不再是元组变量而是域变量。原子公式:•⑴R(X1X2„Xn

)表示元组(X1X2„Xn)是R的一个元组。•⑵xθy其中x,y是常量或域变量,但至少有一个是域变量,θ是比较运算符。•公式中可用∧∨¬⇒运算符,也可用(∀X)(∃Y)的形式。域关系演算表达式:{t1,t2,„tk|Φ(t1,t2,

„tk)}其中:t1,t2,„tk是域变量,Φ是域演算公式。小结目前主流DBMS都是基于关系模型的,本章先从关系数据模型的三个要素:基本结构、完整性约束和数据操作重点介绍了关系模型。关系数据语言分为:关系代数、关系演算和具有以上两种特点的语言。三

种语言在表达能力上基本等价,并且能嵌入高级程序语言中使用。关系代数是一种抽象的查询语言,通过对它的学习有利于加深我们对查询表达式的理解和认识。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?