基本概念传统的集合运算专门的关系运算第2章关系数据库系统2.
3关系代数1.
基本概念(1)域域是一组具有相同数据类型的值的集合.
例如,自然数、整数、实数、一个字符串、{男,女},大于10小于等于90的正整数等都可以是域.
(2)笛卡尔积设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={张珊,李海,王宏}D3={男,女}则D1*D2*D3笛卡尔积为:D1*D2*D3={(计算机软件专业,张珊,男),(计算机软件专业,张珊,女),(计算机软件专业,李海,男),(计算机软件专业,李海,女),(计算机软件专业,王宏,男),(计算机软件专业,王宏,女),(信息科学专业,张珊,男),(信息科学专业,张珊,女),(信息科学专业,李海,男),(信息科学专业,李海,女),(信息科学专业,王宏,男),(信息科学专业,王宏,女)}笛卡尔积实际上就是一个二维表笛卡尔积D1,D2,…,Dn的任意一个子集称为D1,D2,…,Dn上的一个n元关系.
形式化的关系定义同样可以把关系看成二维表,给表的每个列取一个名字,称为属性.
n元关系有n个属性,一个关系中的属性的名字必须是唯一的.
属性Di的取值范围(i=1,2,…,n)称为该属性的值域(domain).
从集合论的观点也可以将关系定义为:关系是一个有K个属性的元组的集合.
(3)关系D1*D2*…*Dn的子集叫作在域Dl,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)这里R表示关系的名字,n是关系的目或度(Degree);当n=1时,称该关系为单目关系(Unaryrelation);当n=2时,称该关系为二目关系(Binaryrelation).
关系是笛卡儿积的有限子集,所以关系也是一个二维表.
关系代数8p关系代数是一种抽象的查询语言,它通过对关系的运算来表达查询要求.
p关系代数的运算对象是关系,运算结果也是关系.
p关系代数的运算符包括四类:集合运算符专门的关系运算符算术比较符逻辑运算符9关系代数的运算符2.
传统的集合运算传统的集合运算是二目运算,设关系R和S均是n元关系,且相应的属性值取自同一个值域,则可以定义四种运算:并运算(∪)交运算(∩)差运算(―)广义笛卡尔积并、交、差运算示意图RSRSRS(1)并运算关系R与关系S的并记为:R∪S={t|t∈R∨t∈S}其结果仍是n目关系,由属于R或属于S的元组组成.
顾客号姓名性别年龄S01张宏男45S02李丽女34S03王敏女28顾客号姓名性别年龄S02李丽女34S04钱景男50S06王平女24顾客号姓名性别年龄S01张宏男45S02李丽女34S03王敏女28S04钱景男50S06王平女24(2)交运算关系R与关系S的交记为:R∩S={t|t∈R∧t∈S}其结果仍是n目关系,由属于R并且也属于S的元组组成.
顾客号姓名性别年龄S01张宏男45S02李丽女34S03王敏女28顾客号姓名性别年龄S02李丽女34S04钱景男50S06王平女24顾客号姓名性别年龄S02李丽女34(3)差运算关系R与关系S的差记为:R-S={t|t∈R∧tS}其结果仍是n目关系,由属于R并且也属于S的元组组成.
顾客号姓名性别年龄S01张宏男45S02李丽女34S03王敏女28顾客号姓名性别年龄S02李丽女34S04钱景男50S06王平女24顾客号姓名性别年龄S01张宏男45S03王敏女28(4)广义笛卡尔积两个分别为n目和m目的关系R和关系S的广义笛卡尔积是一个(m+n)列的元组的集合.
元组的前n个列是关系R的一个元组,后m个列是关系S的一个元组.
若R有K1个元组,S有K2个元组,则关系R和关系S的广义笛卡尔积有K1*K2个元组,记做:R*S={tr^ts|trR∧tsS}tr^ts表示由两个元组tr和ts前后有序连接而成的一个元组.
广义笛卡尔积示例ABa1b1a2b2CDEc1d1e1c2d2e2c3d3e3ABCDEa1b1c1d1e1a1b1c2d2e2a1b1c3d3e3a2b2c1d1e1a2b2c2d2e2a2b2c3d3e3(1)选择(Selection)σF(R)={r|r∈R∧F(t)='真'}其中:σ是选择运算符,R是关系名,r是元组,F是逻辑表达式,取逻辑"真"值或"假"值.
RσF(R)…3.
专门的关系运算SnoSnameSsexSageSdept9512101李勇男19计算机系9512102刘晨男20计算机系9512103王敏女20计算机系9521101张立男22信息系9521102吴宾女21信息系9521103张海男20信息系例,选择计算机系的学生信息:σSdept='计算机系'(Student)(2)投影(Projection)∏A(R)={r.
A|r∈R}其中:∏是投影运算符,R是关系名,A是被投影的属性或属性组.
r.
A表示r这个元组中相应于属性(集)A的分量,也可以表示为r[A].
RΠA(R)投影投影运算示意图SnoSnameSsexSageSdept9512101李勇男19计算机系9512102刘晨男20计算机系9512103王敏女20计算机系9521101张立男22信息系9521102吴宾女21信息系9521103张海男20信息系例,选择sname,sdept两个列构成新关系:∏sname,sdept(Student)(3)连接其中:A和B分别是关系R和S上可比的属性组,θ是比较运算符,连接运算从R和S的广义笛卡尔积R*S中选择(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较运算符θ的元组.
等值连接当θ为"="时的连接为等值连接,是从关系R与关系S的广义笛卡尔积中选取A,B属性值相等的那些元组.
自然连接自然连接去掉结果中的重复列.
自然连接与等值连接的差别为:自然连接要求相等的分量必须有共同的属性名,等值连接则不要求;自然连接要求把重复的属性名去掉,等值连接却不这样做.
等值连接示例snosnameSsexSageSdeptsnocnograde9512101李勇男19计算机系9512101c01909512101李勇男19计算机系9512101c02869512102刘晨男20计算机系9512102c02789512102刘晨男20计算机系9512102c04669521102吴宾女21信息系9521102c01829521102吴宾女21信息系9521102c02759521102吴宾女21信息系9521102c04929521102吴宾女21信息系9521102c0550自然连接示例snosnameSsexSageSdeptcnograde9512101李勇男19计算机系c01909512101李勇男19计算机系c02869512102刘晨男20计算机系c02789512102刘晨男20计算机系c04669521102吴宾女21信息系c01829521102吴宾女21信息系c02759521102吴宾女21信息系c04929521102吴宾女21信息系c0550(4)除(Division)除法的简单形式设关系S的属性是关系R的属性的一部分,则R÷S为这样一个关系:此关系的属性是由属于R但不属于S的所有属性组成;R÷S的任一元组都是R中某元组的一部分.
但必须符合下列要求,即任取属于R÷S的一个元组t,则t与S的任一元组连接后,都为R中原有的一个元组.
【例】计算R÷W27ABC1a52b63C71d8BCDd81a52关系R关系WA11、首先确定R和W中相同的属性B,C2、在关系R中,求A的象集:1的象集为{(a,5),(d,8)}2的象集为{(b,6)}3的象集为{(c,7)}3、求出W在B,C上的投影{(a,5),(d,8)}4、只有1的象集包含了W在BC上的投影5、R÷W的结果为:28[例]设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c)4、除(Division)关系代数运算举例29(1)查询"网络原理"课程的基本情况(2)查询选修了课程的学号和课程信息(3)查询所有专业课的课程名称(4)查询选修了0002号课程的学生学号及成绩(5)查询选修过课程的学生的基本情况、选修情况以及课程情况信息(6)查询选修了"计算机文化基础"的学生姓名和性别(7)查询选修了全部课程的学生学号信息CnoCnameCCreditCKind0003网络原理3专业课CnoCnameCCreditCKind0001数据库原理3专业课0002ACM程序设计2选修课0003网络原理3专业课0004计算机文化基础2公共课Course结果为:1查询"网络原理"课程的基本情况σCname='网络原理'(Course)πSno,Cno(SC)31SnoCnoGrade208001000180208001000285208001000375208001000490208002000378208003000184208003000465208004000395SCSnoCno208001000120800100022080010003208001000420800200032080030001208003000420800400032、查询选修了课程的学号和课程信息(3)πCname(σCKind='专业课'(Course))32CnoCnameCCreditCKind0001数据库原理3专业课0003网络原理3专业课Cname数据库原理网络原理3、查询所有专业课的课程名称(4)πSno,Grade(σCno='0002'(SC))33SnoCnoGrade208001000285SnoGrade208001854、查询选修了0002号课程的学生学号及成绩(5)SCStudentCourseSnoCnoGradeSnameBirthSsexCnameCCreditCKind208001000180李东生1989男数据库原理3专业课208001000285李东生1989男ACM程序设计2选修课208001000375李东生1989男网络原理3专业课208001000490李东生1989男计算机文化基础2公共课208002000378胡锐1990男网络原理3专业课208003000184李德歌1988男数据库原理3专业课208003000465李德歌1988男计算机文化基础2公共课208004000395秦彩钦1990女网络原理3专业课5、查询选修过课程的学生的基本情况、选修情况以及课程情况信息πSname,SSex(σCname='计算机文化基础'(SCStudentCourse))SnameSsex李东生男李德歌男6、查询选修了"计算机文化基础"的学生姓名和性别(7)πSno,Cno(SC)÷CourseSnoCno20800100012080010002208001000320800100042080020003208003000120800300042080040003Sno2080017、查询选修了全部课程的学生学号信息关系代数操作小结操作表示方法功能选择σF(R)产生一个新关系,其中只包含R中满足指定谓词的元组.
投影∏a1,a2,…,an(R)产生一个新关系,该关系由指定R的属性组成的一个垂直子集组成,并且去掉了重复的元组.
连接产生一个新关系,该关系包含了R和S的笛卡尔乘积中所有满足θ运算的元组.
自然连接产生一个新关系,由关系R和S在所有公共属性x上的相等连接得到,并且在结果中,每个公共属性只保留一个.
并R∪S产生一个新关系,它由R和S中所有不同的元组构成.
R和S必须是可进行并运算的.
交R∩S产生一个新关系,它由既属于R又属于S的元组构成.
R和S必须是可进行交运算的.
差R-S产生一个新关系,它由属于R但不属于S的元组构成.
R和S必须是可进行差运算的.
笛卡尔乘积R*S产生一个新关系,它是关系R中的每个元组与关系S中的每个元组的并联的结果.
除R÷S产生一个属性集合C上的关系,该关系的元组与S中的每个元组组合都能在R中找到匹配的元组,这里C是属于R中但不属于S的属性集合.
野草云服务商在前面的文章中也有多次提到,算是一个国内的小众服务商。促销活动也不是很多,比较专注个人云服务用户业务,之前和站长聊到不少网友选择他们家是用来做网站的。这不看到商家有提供香港云服务器的优惠促销,可选CN2、BGP线路、支持Linux与windows系统,支持故障自动迁移,使用NVMe优化的Ceph集群存储,比较适合建站用户选择使用,最低年付138元 。野草云(原野草主机),公司成立于20...
Virmach自上次推出了短租30天的VPS后,也就是月抛型vps,到期不能续费,直接终止服务。此次又推出为期6个月的月抛VPS,可选圣何塞和水牛城机房,适合短期有需求的用户,有兴趣的可以关注一下。VirMach是一家创办于2014年的美国商家,支持支付宝、PayPal等方式,是一家主营廉价便宜VPS服务器的品牌,隶属于Virtual Machine Solutions LLC旗下!在廉价便宜美国...
蓝速数据金秋上云季2G58/年怎么样?蓝速数据物理机拼团0元购劲爆?蓝速数据服务器秒杀爆产品好不好?蓝速数据是广州五联科技信息有限公司旗下品牌云计算平台、采用国内首选Zkeys公有云建设多种开通方式、具有IDC、ISP从业资格证IDC运营商新老用户值得信赖的商家。我司主要从事内地的枣庄、宿迁、深圳、绍兴、成都(市、县)。待开放地区:北京、广州、十堰、西安、镇江(市、县)。等地区数据中心业务,均KV...
什么是关系型数据库为你推荐
开启javascript开启 JavaScript,filezillaserver怎么用FileZilla Server 0.9.27 绿色汉化版软件?360arp防火墙在哪360ARP防火墙sns网站有哪些中国都有哪些sns网站?还有它们都是哪个类型的?补贴eset课程cuteftpAliasedinternal可信网站可信网站认证一定要办吗免费代理加盟哪有免费的代理可以做的?工具条手机的工具栏怎么在任务栏里?怎么把工具栏调到手机下面?
重庆虚拟主机 域名备案收费吗 3322动态域名 ftp空间 国外空间服务商 网站保姆 php免费空间 微信收钱 php空间推荐 赞助 美国在线代理服务器 鲁诺 shopex主机 超级服务器 腾讯总部在哪 中国电信测速器 新加坡空间 万网空间 可外链的相册 国外代理服务器 更多