您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第二章:关系数据库的理论基础案例
关系理论张志祥2007.3内容提要1、关系理论中的名词术语2、关系运算:传统的关系运算、专门的关系运算3、数据完整性在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。学号姓名年龄性别系名年级2005004王小明19女社会学20052005006黄大鹏20男商品学20052005008张文斌18女法律2005………………学生登记表属性元组关系理论中的名词术语1/81.关系(Relation)一个关系对应通常说的一张表2.元组(Tuple)表中的一行即为一个元组记录3.属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名关系理论中的名词术语2/84.域(Domain)属性的取值范围。5.分量元组中的一个属性值。6.关系模式对关系的描述关系名(属性1,属性2,…,属性n)学生(学号,姓名,年龄,性别,系,年级)关系理论中的名词术语3/87.码候选码(Candidatekey)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码,因为关系中能够成为标识一个元组的属性或属性组合可能不是惟一的.简单的情况:候选码只包含一个属性全码(All-key)最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)关系理论中的名词术语4/8例1学生、系、系与学生之间的一对多联系:学生(学号,姓名,年龄,性别,系号,年级)系(系号,系名,办公地点)例2系、系主任、系与系主任间的一对一联系关系理论中的名词术语5/8码(续)主码若一个关系有多个候选码,则选定其中一个为主码(Primarykey)主属性候选码的诸属性称为主属性(Primeattribute)不包含在任何侯选码中的属性称为非主属性(Non-Primeattribute)或非码属性(Non-keyattribute)关系理论中的名词术语6/8例3学生、课程、学生与课程之间的多对多联系:学生(学号,姓名,年龄,性别,系号,年级)课程(课程号,课程名,学分)选修(学号,课程号,成绩)关系理论中的名词术语7/8关系必须是规范化的,满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表图1.27中工资和扣除是可分的数据项,不符合关系模型要求职工号姓名职称工资扣除实发基本津贴职务房租水电86051陈平讲师13051200501601122283图1.27一个工资表(表中有表)实例关系理论中的名词术语8/8关系术语一般表格的术语关系名表名关系模式表头(表格的描述)关系(一张)二维表元组记录或行属性列属性名列名属性值列值分量一条记录中的一个列值非规范关系表中有表(大表中嵌有小表)术语对比关系理论中的名词术语结束关系运算1/关系模型与其他模型相比,最有特色的是它的数据库语言。这种语言灵活方便、表达能力和功能都很强。目前关系数据库所使用的语言一般都具有定义、查询、更新和控制一体化的特点,而查询是最主要的部分。查询的条件要使用关系运算表达式来表示。因此,关系运算是设计关系数据语言的基础。按表达查询的方法不同,关系运算可分为关系代数和关系演算两大类。关系代数2/一种抽象的查询语言用对关系的运算来表达查询关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类关系代数运算符3/集合运算符•将关系看成元组的集合•运算是从关系的“水平”方向即行的角度来进行专门的关系运算符•不仅涉及行而且涉及列算术比较符•辅助专门的关系运算符进行操作逻辑运算符•辅助专门的关系运算符进行操作关系代数运算符4/运算符含义运算符含义集合运算符∪并比较运算符>大于∩交≥大于等于-差<小于×广义笛卡尔积≤小于等于=等于≠不等于专门的关系运算符选择逻辑运算符非∏投影∧与连接∨或÷除关系代数5/传统的集合运算对关系的元组进行运算其运算是从关系的“水平”方向即行的角度进行的包括集合并、集合交、集合差、广义笛卡儿积专门的关系运算对关系的元组和域进行运算选择、投影、连接、除基本运算集合并、集合差、广义笛卡儿积、选择、投影由基本运算可以推导出其它所有运算集合的并、交、差运算6/两个关系R和S若进行并,交,差运算,则它们必须是相容的:系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域。并运算7/定义设R和S是n元关系,并且两者各对应属性的数据类型也相同。则R和S的并运算定义为:RS={t|tRtS}其结果仍为n元关系,由属于R或属于S的元组构成。RS并运算(续I)ABCabcdafcbdbgaR∪SABCabcdafcbdABCbgadafRS差运算8/定义设R和S是n元关系,并且两者各对应属性的数据类型也相同。则R和S的差运算定义为:RS={t|tRtS}其结果仍为n元关系,由属于R而不属于S的元组构成。RS差运算(续I)ABCabccbdR-SABCabcdafcbdABCbgadafRS交运算9/定义设R和S是n元关系,并且两者各对应属性的数据类型也相同。则R和S的交运算定义为:RS={t|tRtS}其结果仍为n元关系,由既属于R又属于S的元组构成。交运算可以通过差运算来重写:RS=R(RS)RS交运算(续I)ABCdafR∩SABCabcdafcbdABCbgadafRS集合的并、交、差运算10/广义笛卡尔积11/定义:两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:RS={t|t=﹤tr,ts﹥∧trRtsS}广义笛卡尔积12/R×SR.AR.BR.CS.AS.BS.CabcbgaabcdafdafbgadafdafcbdbgacbddafABCabcdafcbdABCbgadafRS专门的关系运算13/由于传统的集合运算,只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算。在讲专门的关系运算之前,为叙述上的方便先引入几个概念。专门的关系运算14/(1)设关系模式为R(A1,A2,……An),它的一个关系为R,t∈R表示t是R的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量。(2)若A={Ai1,Ai2,……,Aik},其中Ai1,Ai2,……,Aik是A1,A2,……,An中的一部分,则A称为属性列或域列,Ã则表示{A1,A2,……,An}中去掉{Ai1,Ai2,……,Aik}后剩余的属性组。t[A]={t[Ai1],t[Ai2],……,t[Aik]}表示元组t在属性列A上诸分量的集合。专门的关系运算15/(3)R为n目关系,S为m目关系,tr∈R,ts∈S,trts称为元组的连接,它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组。(4)给定一个关系R(X,Z),X和Z为属性组,定义当t[X]=x时,x在R中的象集(imageset),为Zx={t[Z]|t∈R,t[X]=x},它表示R中的属性组X上值为x的诸元组在Z上分量的集合。选择运算(Selection)又称为限制(Restriction)16/选择运算是从指定的关系中选择某些元组形成一个新的关系,被选择的元组是用满足某个逻辑条件来指定的。选择运算表示为:其中R是关系名,σ是选择运算符,F是逻辑表达式。其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。选择是从行的角度进行的运算。})(|{)(truetFRttRF选择运算B=b(R)ABCabccbdABCabcdafcbdRRABC367257723443ABC367257443A5(R)ABC367257A5C=7(R)例1查询信息系(IS系)全体学生σSdept=‘IS’(Student)或σ5='IS'(Student)例2查询年龄小于20岁的元组σSage20(Student)或σ420(Student)补充:查询年龄不小于20岁的男生AGE≥20∧SEX=‘男’(S)σ职工号=E3(订购单)订购单关系从订购单关系中选择职工号为“E3”的元组构成新的关系选择运算投影运算18投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系。投影操作是从列的角度进行的运算。注意:投影结果中要去掉相同的行投影运算对指定的关系进行投影操作,根据该关系分两步产生一个新关系:1)选择指定的属性,形成一个可能含有重复行的表格;2)删除重复行,形成新的关系。投影运算投影运算表示为:其中R是关系名,π是投影运算符,A是被投影的属性或属性集。}|.{)(RrArRA投影运算举例订购单关系选取职工号和供应商号两列构成新的关系π职工号,供应商号(订购单)投影运算选取运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。投影运算可以改变关系的属性次序投影后取消了某些属性列后,就可能出现重复行,应该取消这些完全相同的行。所以投影之后,不但减少了属性,元组也可能减少,新关系与原关系不相容。投影运算πB,A(R)BAbaABCabcdafabdR从订购单关系中,选取出职工号为E3的所经手的订购单号和与之相关的供应商号。订购单关系π供应商号,订购单号(σ职工号=E3(订购单))连接运算19连接运算是两个表之间的运算,这两个表通常是具有一对多联系的父子关系。所以连接过程一般是由参照关系的外部关键字和被参照关系的主关键字来控制的,这样的属性通常也称为连接属性。连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:其中A和B分别为R和S上度数相等且可比的属性组。θ是比较运算符。连接运算从R和S的笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组。连接(Join)RS={trts|trR∧tsS∧tr[A]θts[B]}AθBRS=r[A]S[B](R×S)AB连接运算(续I)987654321CBADE3162ABCDE123311236245662RSBDRSABCDE123311236245631456627893178962R×S自然连接20在连接运算中最常用的连接是自然连接。定义从两个关系的广义笛卡儿积中选取在相同属性列上取值相等的元组,并去掉重复的属性列。RS={t|t=r,srRsSr[B]=s[B]}自然连接21自然连接是特殊的等值连接等值连接:从两个关系(R、S)的笛卡尔积中选取属性(A、B)值相等的元组自然连接:在等值连接中取消重复属性自然连接做了三件事:计算广义笛卡尔积R×S;选择满足条件r[Ai]=s[Bj]的所有元组;去掉重复的属性。自然连接(续I)ABCabcdbcbdfcadBDEbcdbceadbSRABCDEabccdabccedbccddbccecaddbRS仓库号城市面积WH1北京370WH2上海500WH3广州200WH5合肥130仓库号职工号工资WH2E11220WH1E31210WH2E41250WH3E61230WH1E71250仓库号城市面积职工号工资WH2上海500E11220WH1北京370E31210WH2上海500E41250WH3广州200E61230WH1北京370E71250根据以上关系求出在上海工作的职工的工资值都有哪些?仓库职工(仓库)上海城市1R)(工资23RR关系代数语句为:仓库号城市面积WH1北京370WH2上海500WH3广州200WH5合肥130仓库号职工号工资WH2E11220WH1E31210WH2E41250WH3E61230WH1E71250综合运算实例R2=R1职工查询过程示意选择运算自然连接运算投影运算完整性1、实体完整性(Entityintegrity)2、域完整性(Doma
本文标题:第二章:关系数据库的理论基础案例
链接地址:https://www.777doc.com/doc-3822966 .html