Ch02-关系型数据库_第1页
Ch02-关系型数据库_第2页
Ch02-关系型数据库_第3页
Ch02-关系型数据库_第4页
Ch02-关系型数据库_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章关系型数据库本章主要介绍关系数据模型的数据结构、数据完整性、数据操作的相关概念和常见的关系型数据库数据库系统原理及应用2.1关系数据库概述2.2E-R模型转换为关系模型2.3关系完整性约束2.4关系代数主要内容2.5常见的关系型数据库管理系统关系数据库概述2.12.1.1关系域:一组具有相同数据类型的值的集合。例:整数、介于某个取值范围的整数实数、指定长度的字符串集合……笛卡尔积:给定一组域D1,D2,…,Dn,其笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}元组:笛卡儿积中每一个元素(d1,d2,…,dn)称为n元组。分量:元素中的每一个值di叫做一个分量。关系:D1ⅩD2Ⅹ…ⅩDn的子集叫作域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn

)其中R是关系名,n为关系的度关系是笛卡儿积的有限子集,所以关系也是一个二维表。表的每行对应一个元组,每列对应一个域,称为属性。2.1.1关系码:能够唯一标识一个元组的属性或属性集,又称键、关键字。码分为超码、候选码、主码、外码。超码:能够唯一标识一个元组的一个或多个属性的集合。如果K是一个超键,那么所有包含K的集合也是超键。候选码:能够唯一标识一个元组的最小属性集,即候选键是没有多余属性的超键。候选键中的属性称为主属性(PrimeAttribute),不包含在任何候选键中的属性称为非主属性(Non_primeAttribute)。主码:若一个关系有多个候选键,选定其中一个为主键。主键的诸属性称为主属性。外码:设属性F是关系R的一个属性,但不是关系R的主键,并对应着关系S的主键K,如图2-1所示。F在R中的取值要参照关系S中K的取值,称关系R为参照关系(ReferencingRelation)或从表,关系S为被参照关系(ReferencedRelation)或主表,并称F是关系R的外键(ForeignKey)。关系R和S不一定是不同的关系,但是K与F的域相同。非码属性:不包含在任何候选码中的属性。全码:关系模式的所有属性组是这个关系模式的候选码。2.1.1关系2.1.1关系基本关系的性质关系是一种规范化的二维表,作为关系的二维表必须满足下列6条性质:(1)同一属性(列)中的分量是相同类型的数据,即取自同一个域。(2)属性(列)的顺序可以是任意的。(3)元组(行)的顺序可以是任意的。(4)任意两个元组(即两行)不能完全相同。(5)属性必须有不同的名称,但不同的属性可以取自相同的域。(6)所有属性必须都是不可分解的,即表中不允许有子表。2.1.1关系9800019198000281980003719800028939800029812.1.2关系模式关系模式(RelationSchema):对关系的描述。元组集合的结构

属性构成

属性来自的域

属性与域之间的映象关系完整性约束条件关系模式是型、关系是值关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的关系模式可以形式化地表示为:

R(U,D,DOM,F)R

关系名U

组成该关系的属性名集合D

U中属性所来自的域DOM

属性向域的映象集合F

属性间数据的依赖关系的集合2.1.3关系模型关系模型组成要素数据结构在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示。关系操作增加、删除、修改、查询(并、交、差、选择、投影、连接、除)关系代数、关系演算、SQL关系完整性实体完整性参照完整性用户自己定义的完整性2.1.4关系数据库关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库关系数据库的型与值关系数据库的型:关系数据库模式,是对关系数据库的描述关系数据库的值:关系模式在某一时刻对应的关系的集合,通常称为关系数据库关系数据库系统(RelationalDBMS,简称为RDBMS)以其结构简单、通俗易懂、使用方便等特点,深受广大用户的欢迎,是目前使用最广泛的数据库系统。E-R模型转换为关系模型2.2E-R模型转换为关系模型模型与关系数据模型的要素对照表关系数据模型可由基本E-R模型转换得到2.2.1具有简单属性的实体的表示(1)设E为只具有n个简单属性的实体,则关系E表示为这n个属性的集合。(2)实体的主键为转换得到的关系的主键。(3)关系中的一个元组对应一个实体值。S(SNO,SNAME,DEPT)学生姓名学号系别例:简单属性:不可再分的属性一个实体型转换为一个同名的关系模式。实体的属性就是关系的属性,实体的码就是关系的码。2.2.2具有复杂属性的实体的表示1)复合属性:可以划分为更小的属性如果实体具有复合属性,可以用子属性替代复合属性,也可以把复合属性升级为一个实体,用一个新的关系表示。2)多值属性:属性上有多于一个的取值多值属性需要升级为一个新的关系,例如,对于实体的一个多值属性M,构建关系R,该关系由M以及M所在的实体的主键构成。R的主键由其所有属性构成的全键。R的外键是由M所在实体的主键所生成的属性。3)派生属性:从其他相关的属性或实体派生出来的属性值派生属性不在关系模式中显性表示,只是在需要时通过计算得到。2.2.2具有复杂属性的实体的表示教师

职工号

姓名

通讯地址

街道

街道号

街道名

门牌号

{电话号码}

出生日期

年龄()teacher(TID,name,province,city,street_number,street_name,apt_number,birthday)TID是主键teacher_phone(TID,phone)(TID,phone)是主键,TID是外键复杂属性的表示示例2.2.3二元联系的表示1)1:1联系的表示把任意一端的主键及联系本身的属性与另一端对应的关系合并。厂长号姓名年龄厂长厂名地点工厂管理11方法一:厂长(厂长号,厂号,姓名,年龄)

工厂(厂号,厂名,地点)方法二:厂长(厂长号,姓名,年龄)

工厂(厂号,厂长号,厂名,地点)厂号1:1联系的表示示例2.2.3二元联系的表示2)1:n联系的表示把“1”端的关键字以及联系的属性与“n”端对应的关系合并。合并后的关系的键是“n”端实体的键。1:n联系的表示示例学号教工号姓名工作单位教师姓名专业学生指导1n教师(教工号,教师姓名,工作单位)学生(学号,教工号,姓名,专业,班级)班级2.2.3二元联系的表示3)m:n联系的表示m:n联系必须转换为一个新的关系,新关系的属性包括与该联系相关的各实体的键以及联系的属性。各实体主键的集合构成了该关系的主键,各主键对应的属性是该关系的外键。m:n联系的表示示例学号姓名年龄学生课程号课程名学时数课程学习mn成绩学生(学号,姓名,年龄)课程(课程号,课程名,学时数)学习(学号,课程号,成绩)

2.2.4多元联系的表示多元联系的转换方法与二元联系转化方法相同,具体表述如下:1)1:1:1联系可以把任选意两个实体的键以及联系的属性放在第三个实体的关系中。2)1:1:n联系可以把两个1端实体的键以及联系的属性放在n端实体的关系中。3)1:m:n联系转换成由m端和n端实体的键以及联系的属性构成的新关系,新关系的键为m端和n端实体的键的组合。4)m:n:p联系转换成由三端实体的键以及联系的属性构成的新关系,新关系的键为三个实体的键的组合。关系完整性约束2.3关系完整性约束数据库通过完整性约束保证数据的相容性和正确性。

一是数据库中的数据与现实世界中的应用需求的相容性和正确性;二是数据库中数据之间的相容性和正确性。关系模型中有三类完整性约束:实体完整性参照完整性用户定义完整性。1)实体完整性实体完整性规则1)主键约束

每个表只能有一个主键,构成主键的每一列值不

能为空值,且主键必须能够唯一标识表中每一行,任意两行在主键上不能具有相同的值。2)候选键约束

候选键与主键一样,必须非空且唯一。1)实体完整性学号不能为空值或重复的值。因为没有学号的学生在这个数据库中是不存在的,而且也不存在不同学生具有相同学号的情况。实体完整性可以保证数据库中记录的唯一性1)实体完整性(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。说

明2)参照完整性参照完整性规则设F是关系R的外键,并对应关系S的主键K,则F在关系R中的取值要么是空值,要么等于关系S中某个元组的主键值。关系R和关系S可以是不同的关系,也可以是同一个关系2)参照完整性插入规则:在子表中插入记录时应遵循的规则限制(Constraint):若父表中不存在匹配的关键字值,则禁止插入操作进行。忽略(Abort):允许插入,不遵守参照完整性约束条件。这时数据库完全处于自由状态。2)参照完整性删除规则:在父表中删除记录时应遵循的规则级联(Cascade):先删除子表中的所有相关记录。限制(Constraint):若子表中存在相关匹配的记录,则禁止删除操作进行。忽略(Abort):允许删除,不理会子表中的相应记录,即不遵守参照完整性约束条件。这时数据库完全处于自由状态。2)参照完整性更新规则:当父表的关键字被修改时应遵循的规则;级联(Cascade):用新的关键字值更新子表中的所有相关记录。限制(Constraint):若子表中存在匹配的相关记录,则禁止更新操作进行。忽略(Abort):允许更新,不遵守参照完整性约束条件。这时数据库完全处于自由状态。2)参照完整性例:班级(班级编号,班级名称)

学生(学号,班级编号,姓名,性别)3)用户完整性用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。用户定义的完整性没有统一的规则,由数据库设计人员根据具体应用中数据的语义要求来创建。3)用户完整性3)用户完整性3)用户完整性由用户自定义的完整性,数据库必须同样遵守。实体完整性和参照完整性是关系模型必须满足的约束条件,应该由关系系统自动支持。而用户自定义完整性反映了用户的要求,是用户自行定义的。完整性的实现uniquechecknot

null关系代数2.4关系代数概述运算对象是关系运算结果亦为关系关系代数的集合运算分类:传统的集合运算(并、交、差、广义笛卡尔积)专门的关系运算两种类型(投影、选择、连接、除)关系代数运算符关系代数概述2.4.1传统的集合运算并设关系R和关系S都有n个属性,且相应的属性取自同一个域。对关系R与关系S进行并操作,结果仍是一个具有n个属性的关系。该关系由关系R和关系S中的所有元组组成,相同的元组只保存一次,可记作:R∪S≡{t|t∈R∨t∈S}2.4.1传统的集合运算2.4.1传统的集合运算交设关系R和关系S都有n个属性,且相应的属性取自同一个域。对关系R与关系S进行交操作,结果仍是一个有n个属性的关系,该关系由既属于关系R又属于关系S的所有元组组成,可记作:R∩S≡{t|t∈R∧t∈S}2.4.1传统的集合运算2.4.1传统的集合运算差设关系R和关系S都有n个属性,且相应的属性取自同一个域。对关系R与关系S进行差(Difference)操作,结果仍是一个有n个属性的关系,该关系由属于关系R且不属于关系S的所有元组组成,可记作:R-S≡{t|t∈R∧t∉S}2.4.1传统的集合运算2.4.1传统的集合运算广义笛卡尔积设关系R有n个属性,关系S有m个属性,关系R和关系S的广义笛卡尔积是一个有n+m个属性的关系,该关系的元组由关系R的元组和关系S的元组两两组合而成,元组的个数为关系R和关系S元组个数的乘积,可记作:R×S≡{(tr,ts)|tr∈R∧ts∈S}2.4.1传统的集合运算2.4.2专门的关系运算π投影(选列)投影(Projection)是根据某些条件对关系进行垂直分割,产生一个只有部分属性的新关系,新关系中的属性可以重新安排顺序。投影运算可记作:πA1,A2,…,An(R)其中,A1,A2,…,An是对关系R进行投影运算后保留在新关系中的属性。2.4.2专门的关系运算ABC123456223关系R

B,C(R)BC2356ABC1234562232.4.2专门的关系运算δ选择(选行)根据条件对关系作水平分割,产生一个仅由符合条件的元组构成的新关系。选择运算可记作:σF(R)其中,F表示选择条件。2.4.2专门的关系运算ABC123456223关系R

A=1∨B=5(R)ABC1234562.4.2专门的关系运算⋈连接(拼表)连接(Join)是从两个关系的笛卡尔积中选取属性间满足特定条件的元组,可记作:R

FS其中,F表示连接条件。如果连接条件中使用“=”作为连接运算符,将从两个关系的笛卡尔积中选取公共属性的取值相等的元组构成新的关系,则该连接运算称为等值连接(EqualJoin),可记为:R

A=BS自然连接(NaturalJoin)是一种特殊的等值连接,会去掉等值连接中重复的属性,语法格式种省略等值连接条件,可记为:R

S

2.4.2专门的关系运算关系R1关系R2等值连接R1.B=R2.B自然连接R1.B=R2.B2.4.2专门的关系运算÷除给定关系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∧πY(S)⊆Yx}其中,Yx为x在R中的象集,x=tr[X]。2.4.2专门的关系运算关系R1关系R2R1÷R22.4.3关系代数运算的应用实例饭卡管理系统中共有6个数据表,如下所示:学生(学号,饭卡号,姓名,性别,院系

)主码为学号,外部码为饭卡号;饭卡(饭卡号,密码,办卡日期,注销日期,状态,余额),主码为饭卡号;消费记录(消费记录号,售饭机号,饭卡号,消费金额,消费日期)主码为消费记录号,外部码为售饭机号、饭卡号;售饭机(售饭机编号,状态,位置)主码为售饭机号;工作人员(工作人员编号,姓名,性别,年龄)主码为工作人员编号;操作(工作人员编号,售饭机编号,操作日期)主码为工作人员编号和售饭机编号的组合编码。2.4.3关系代数运算的应用实例例1:检索学号为012006033925的学生姓名与所在院系。π姓名,院系(σ学号=‘012006033925’(学生))π3,5(σ1=‘012006033925’(学生))例2:检索持有00000001号饭卡的学生的学号与姓名。π学号,姓名(σ饭卡号=‘00000001’(学生))例3:检索管理学院或机械学院的学生学号和姓名。π学号,姓名(σ院系=‘管理学院’∨院系=‘机械学院‘(学生))2.4.3关系代数运算的应用实例2.4.3关系代数运算的应用实例例6:检索操作过所有售饭机的工作人员的姓名。(1)工作人员对售饭机的操作情况π工作人员编号,售饭机编号(操作)(2)全部售饭机π售饭机编号

(售饭机)(3)操作过全部售饭机的工作人员编号π工作人员编号,售饭机编号(操作)÷π售饭机编号(售饭机)(4)所有工作人员的编号和姓名π工作人员编号,姓名(工作人员)(5)从工作人员编号求工作人员姓名π姓名(π工作人员编号,姓名(工作人员)

(π工作人员编号,售饭机编号(操作)÷π售饭机编号(售饭机)))可见,当查询涉及到否定或全部值时,就要用到差操作或除操作。常见的关系型数据库管理系统2.5常见的关系型数据库管理系统关系数据库管理系统RDBMS指包括相互联系的逻辑组织和存取这些数据的一套程序(数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。当前主流的关系型数据库管理系统有Oracle、MySQL、SQLServer、IBMDB2等2.5.1OracleDatabaseORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。2.5.1OracleDatabase1)高开放性Oracle数据库可以在所有主流平台上运行,并且所提供的系统工具完全支持企业级实体关系,可以提供对企业级开发商的全面支持。2)安全保密Oracle提供多层安全性机制。用户标识鉴定可以有效防止非法用户进入数据库系统;数据文件加密机制可以在数据不幸泄露的情况下也难以被破译;数据逻辑备份可以在计算机发生故障和其它异常时也可以快速通过备份恢复数据库,使系统回到正常状态。3)高效性能Oracle系统具备基于规则的优化器和基于代价的优化器,可以对复杂的SQL形成优异的执行计划,可以支持开发人员编写含有大量复杂运算的SQL语句。4)跨界架构Oracle的实时应用集群技术使得利用成本较低的服务器实现高性能和可靠性成为可能。同时还可以自动实现数据库并行处理和负载均衡。Oracle数据库的特点:2.5.2MySQLMySQL是一个精巧的SQL数据库管理系统,而且是开源的数据管理系统。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。2.5.2MySQL1)开源免费无版权制约MySQL数据库是开源的,提供社区版、企业版、集群版和高级集群版等不同复杂度的软件版本,其中社区版是免费的。2)体积小巧使用简单MySQL的安装体积最小可以达到10M,安装和配置过程非常简单。3)性能卓越运行稳定MySQL的性能非常强大,与Linux、Apache和PHP组成的开发环境应用在许多中小型网站中。由于性能非常稳定,这套开发环境还被称之为LAMP。4)活跃用户群体庞大MySQL的开源特性使众多数据库爱好者参与到版本的优化和改进中,持续不断的高度参与使MySQL的用户形成了自己的社区,用户在社区内通过分享解决方案和优化特性建立的知识体系能使新用户的问题得到快速解答。MySQL的特点2.5.3MicrosoftSQLServerSQLServer是Microsoft公司推出的关系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论