




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.自考数据库系统原理串讲笔记第一章数据库基础知识学习目的与要求:本章属于基础知识,主要是对一些概念的理解和记忆。没有难点,相对的重点是数据模型的四个层次,数据库管理系统的功能,数据库系统的全局结构。考核知识点与考核要求1.1数据管理技术的发展阶段识记1.2数据描述的术语领会1.3数据抽象的级别领会1.4数据库管理系统 1.5数据库系统DBS领会1.1数据管理技术的发展几个数据库的基本术语:数据: 描述事物的符号记录数据处理:是指从某些已知的数据出发,推导加工出一些新的数据,这些新的数据又表示了新的信息。 数据管理:是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业
2、务的基本环节,而且是任何数据处理业务中必不可少的共有部分。 数据管理技术:对数据的收集、整理、组织、存储、维护、检索、传送等操作,基本目的就是从大量的,杂乱无章的,难以理解的数据中筛选出有意义的数据。数据处理是与数据管理相联系的,数据管理技术的优劣,将直接影响数据处理的效率。1.人工管理阶段20世纪50年代中期以前数据不保存在机器中;没有专用软件对数据进行管理;只有程序的概念,没有文件的概念;数据面向程序。2. 文件系统阶段特点与缺陷20世纪50年代后期至60年代中期数据可长期保存在磁盘上; 数据的逻辑结构与物理结构有了区别;文件组织呈现多样化;数据不再属于某个特定程序,可以重复使用;对数据的
3、操作以记录为单位。文件系统三个缺陷:数据冗余性数据不一致性数据联系弱3.数据库阶段20世纪60年代后至今数据管理技术进入数据库阶段的标志是20世纪60年代末三件大事:1968年美国IBM公司推出层次模型的IMS系统;1969年美国CODASYL组织发布了DBTG报告。总结了当时各式各样的数据库,提出网状模型,尔后于1971年4月正式通过。1970年美国IBM公司的E.F.Codd连续发表论文,提出关系模型,奠定了关系数据库的理论基础。数据库管理阶段特点:1采用数据模型表示复杂的数据结构;2有较高的数据独立性;3数据库系统为用户提供了方便的用户接口。4数据库系统提供以下四个方面的数据控制功能:
4、数据库的恢复; 数据库的并发控制; 数据库的完整性; 数据库的安全性;5增加了系统的灵活性。增加了系统的灵活性对数据的操作不一定以记录为单位,可以以数据项为单位。数据库技术中的四个名词:DB、DBMS、DBS、数据库技术。其概念是不同的,要分清。DB:数据库Database长期存储在计算机内、有组织的、统一管理的相关数据的集合。DBMS:数据库管理系统Database Management System,DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、
5、面向对象型DBMS。DBS:数据库系统Database System,DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。数据库技术:是一门研究数据库结构、存储、管理和使用的一门软件学科。4.高级数据库阶段:面向对象的概念建模开放数据库互连技术1.2数据描述在数据处理中,数据描述将涉及不同的范畴。从事物的特性到计算机中的具体表示,数据描述经历了三个阶段概念设计、逻辑设计和物理设计。1.概念设计中的的数据描述实体实体集属性实体标识符2.逻辑设计中的数据描述字段记录文件关键码3.物理设计中的数据描述物理存储介质层次高速
6、缓冲存储器主存储器快擦写存储器磁盘存储器光盘存储器磁带物理存储中的数据描述位、字节、字、块、桶和卷4.数据联系的描述联系及元数定义:二元联系有以下三种类型:1:1联系 :如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,好么实体集E1对E2的联系称为一对一联系,记为1:1。1:N联系 :如果实体集E1中每个实体与实体集E2中任意个零个或多个实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是一对多联系,记为1:N。M:N联系 :如果实体集E1中每个实体与实体集E2中任意个零个或多个实体有联系,反之亦然,那么E1对E2的联系是多对多联系,记为
7、M:N。1.3数据抽象的级别1.数据抽象的过程根据抽象的级别定义了四种模型:概念数据模型逻辑数据模型外部数据模型内部数据模型2.概念模型四种模型中,概念模型的抽象级别最高。概念模型的特点:3.逻辑模型逻辑模型的特点:14逻辑模型的分类:层次模型网状模型关系模型三种逻辑数据模型的比较?如P17图4.外部模型外部模型的特点:从整个系统考察,外部模型的优点。5.内部模型是数据库最底的抽象,它描述数据在磁盘或磁带上的存储方式、存取设备和存取方法。6.三层模式和两级映象三层模式体系结构外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述。逻辑模式:是数据库中全部数据的整体逻辑结构的描述。内模式
8、:是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。两级映象外模式/逻辑模式映象:用于定义概念模式和内模式之间的对应性。一般在内模式中描述。 逻辑模式/内模式映象:用于定义外模式和概念模式间的对应性。一般在外模式中描述。 7.高度的数据独立性什么叫数据独立性? 是指应用程序和数据库的数据结构之间相互独立,不受影响。在修改数据结构时,尽可能不修改应用程序,则称系统达到了数据独立性目标。数据独立性分为物理数据独立性和逻辑数据独立性:物理数据独立性:修改内模式时尽量不影响概念模式及外模式,则达到物理数据独立性。逻辑数据独立性:修改概念模式时尽量不影响外
9、模式和应用程序。1.4数据库管理系统DBMS1.DBMS的目标与任务:数据库管理系统的主要任务是完成用户对数据库的存取请求,即检索、插入、更新或删除等操作。DBMS的目标:用户界面友好、功能完善、结构清晰、高效率、开放性 2.DBMS的工作模式3.DBMS的主要功能:数据库的定义功能数据库的操纵功能数据库的保护功能数据库恢复、数据库并发控制、数据库完整性和数据库安全性数据库的维护功能数据字典1.5数据库系统1.DBS由四部分组成:数据库、硬件、软件、数据库管理员。2.数据库管理员定义及职责。3.DBS的全局结构及DBS的效益。数据库用户+界面+DBMS+磁盘+DBS的效益第二章数据库设计和ER
10、模型学习目的与要求:本章总的目的要求是了解和掌握数据库应用系统设计的全过程。首先掌握ER模型和关系模型的基本概念,然后掌握概念设计中ER模型的设计方法,逻辑设计中ER模型向关系模型转换方法。考核知识点与考核要求2.1数据库系统生存期领会2.2ER模型的基本概念综合应用2.3关系模型的基本概念综合应用2.4ER模型到关系模型的转换规则综合应用2.5ER模型实例分析简单应用2.6增强ER模型简单应用从软件生存期谈起软件生存期:是指从软件的规划、研制、实现、投入运行后的维护、直到它被新的软件所取代而停止使用的整个期间。它包括六个阶段: 规划阶段 需求分析阶段 设计阶段 程序编制阶段 调试阶段 运行维
11、护阶段 2.1数据系统生存期1.什么叫数据库系统生存期?我们把数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间,称为数据库系统生存期。2.这个生存期一般可划分成以下七个阶段:规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行维护。.2ER模型的基本概念1.ER模型的基本元素实体、联系和属性2.属性的分类3.联系的设计4.ER模型的操作分裂、合并和增删5.采用ER模型的数据库概念设计步骤采用ER方法进行数据库概念设计分成三步进行: 首先设计局部ER模式 然后把各局部ER模式综合成全局ER模式 最后对全局ER模式进行优化 2.3关系模型的基本概念.关系模型定
12、义:用二维表格结构表示实体集、外键表示实体间联系的数据模型称为关系模型。2.基本术语有:字段、字段值、记录、二维表格。在这里,括号中的表述为关系模型中的术语。它与表格中术语可以一一对应。还有,关系中属性个数称为元数,元组个数为基数。3.键:由一个或几个属性组成。1超键:在关系中能唯一标识元组的属性集称为关系模式的超键。2候选键:不含有多余属性的超键称为候选键。3主键:用户选作元组标识的一个候选键为主键。4外键:某个关系的主键相应的属性在另一关系中出现,此时该主键在就是另一关系的外键,如有两个关系S和SC,其中S#是关系S的主键,相应的属性S#在关系SC中也出现,此时S#就是关系SC的外键。.关
13、系的定义和性质关系定义:关系是一个属性数目相同的元组的集合。关系性质5.三类完整性规则实体完整性规则:要求关系中组成主键的属性上不能有空值。 参照完整性规则:要求不引用不存在的实体。 用户定义完整性规则:由具体应用环境决定,系统提供定义和检验这类完整性的机制。 2.4E-R模型向关系模型的转换E-R模型可以向现有的各种数据库模型转换,对不同的数据库模型有不同的转换规则。这里只讨论E-R模型向关系模型的转换方法。1.E-R模型向关系模型的转换规则:1实体类型的转换将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。2联系类型的转换1实体间的联系是1:1可以在两个实
14、体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。2如实体间的联系是1:N则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。3如实体间的联系是M:N则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。以上各转换规则,给出了一般情况下E-R模型向关系模型的转换方法。但在实际应用中往往还需要根具实际情况进行具体处理。下面以图书借阅系统的E-R模型转换为关系模型为例。该例中,由于允许同一本书在不同的时间借给多个读者,特别是一个读者在不同的时间可以借同一本书。因而,在多对多联系
15、借阅转换为关系模式时,仅有读者的编号和图书的编号是不能构成码的。例如:0406010,F33.33,2006-10-10:10:10,2007-02-20:3:00说明,按照上述介绍的转换方法得到的关系模型不一定是最好的。实际应用中,往往还要对得到的关系模型进行规范化。2.5和2.6实例分析,同学们多看书!1.库存管理系统的ER模型及转换2.人事管理信息系统的ER模型3.住院管理信息系统的ER模型4.公司车队信息系统的ER模型更多优质自考资料尽在百度贴吧自考乐园俱乐部欢迎加入.欢迎交流.止不住的惊喜等着你.第三章关系模式设计理论学习目的与要求:本章特点是理论性较强,学习者应从概念着手,搞清概念
16、间的联系和作用。本章总的要求是:了解关系数据库规范化理论及其在数据库设计中的作用。本章的重点是函数依赖、无损分解、保持依赖和范式。掌握这些概念并能运用它们分析模式分解的特点。考核知识点与考核要求3.1关系模式的设计准则简单应用3.2函数依赖简单应用3.3关系模式的分解特性简单应用3.4范式1NF、2NF、3NF简单应用BCNF领会 分解成BCNF模式集的分解算法分解成3NF模式集的合成算法模式设计方法小结领会3.5多值依赖和第四范式识记3.1关系模式的设计准则1.关系模式的冗余和异常问题数据冗余操作异常修改异常、插入异常和删除异常 2.关系模式的非形式化设计准则关系模式的设计应尽可能只包含有直
17、接联系的属性,不包括有间接联系的属性关系模式的设计应尽可能使得相应关系中不出现插入、删除和修改异常。关系模式的设计应尽可能使得相应关系中避免放置经常为空值的属性。关系模式的设计应尽可能使得关系的等值连接在主键和外键的属性上进行,并且保证连接以后不会生成额外的元组。3.2函数依赖1.函数依赖的定义设有关系模式R或简记为R,X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1X=t2X导致t1Y=t2Y,则称X函数决定Y,或Y函数依赖于X,记为XY。XY为模式R的一个函数依赖。这个定义可以这样理解:有一张设计好的二维表,X,Y是表的某些列,若在表中的第t1行,和第t2行
18、上的X值相等,那么必有t1行和t2行上的Y值也相等,这就是说Y函数依赖于X。2.函数依赖的逻辑蕴涵设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推出XY,则称F逻辑蕴涵XY,记为F|=XY。而函数依赖的闭包F + 是指被F逻辑蕴涵的函数依赖的全体构成的集合。3.键和FD的关系键是唯一标识实体的属性集。对于键和函数依赖的关系:有两个条件:设关系模式R,F是R上的函数依赖集,X是R的一个子集:1XA1A2.AnF +它的意思是X能够决定唯一的一个元组2不存在X的真子集Y,使得Y也能决定唯一的一个元组,则X就是R的一个候选键。包含在任何一个候选键中的属性称为主属性,
19、不包含在任何键中的属性为非主属性,注意主属性应当包含在候选键中。4.函数依赖的推理规则前面我们举的例子中是以实际经验来确定一个函数依赖的逻辑蕴涵,但是我们需要一个推理规则才能完全确定F或F+的所有函数依赖。设有关系模式R,X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:A1自反性:如果Y X U,则XY在R上成立。A2增广性:如果XY为F所蕴涵,Z U,则XZYZ在R上成立。A3传递性:如果XY和YZ在R上成立,则XZ在R上成立。A4合并性:如果XY和XZ成立,那么XYZ成立。A6分解性:如果XY和Z Y成立,那么XZ成立。A5伪传性:如果XY和WYZ成立,那么
20、WXZ成立。A7复合性:XY, WZ |=XW YZ。A8通用一致性定理:XY, WZ |=x YZ。5.函数依赖推理规则的完备性函数依赖推理规则系统是完备的。由推理规则的完备性可得到两个重要结论:1属性集X + 中的每个属性A,都有XA被F逻辑蕴涵,即X + 是所有由F逻辑蕴含XA的属性A的集合。 2F+ 是所有利用Amstrong推理规则从F导出的函数依赖的集合。6.函数依赖集的等价和覆盖在关系模式R上的两个函数依赖集F和G,如果 满足F + =G + ,则称F和G是 等价 的,称F和G等价也称F 覆盖 G或G覆盖F。每个函数依赖集F都可以被一个 右部只有单属性的函数依赖集 G所覆盖。如果
21、函数依赖集合F满足:F中每一个函数依赖的右部都是单属性;F中的任一函数依赖XA,其F-XA是不等价的;F中的任一函数依赖XA,Z为X的子集。ZA与F不等价。则称F为最小函数依赖集合。如果函数依赖集F和G等价,并且G是最小集,那么称G是F的一个 最小覆盖 。这一段并不要求掌握最小集的求法,但是应当通过其求法理解最小集的概念。3.3关系模式分解特性1.模式分解中存在的问题模式分解就是将一个泛关系模式 R分解成 数据库模式 ,以代替R的过程。它不仅仅是属性集合的分解,它是对关系模式上的函数依赖集、以及关系模式的当前值分解的具体表现。分解一个模式有很多方法,但是有的分解会出现失去函数依赖、或出现插入、
22、删除异常等情况,而有的分解则不出现相关问题。衡量一个分解的标准有三种:分解具有无损联接 ;分解要保持函数依赖;分解既要保持依赖,又要具有无损联接。那么什么是无损联接呢?什么又是保持依赖? 2.无损联接的定义和性质设R是一关系模式,分解成=R1,R2,.,Rk,F是R上的一个函数依赖集。无损联接就是指R中每一个满足F的关系r都有r= R1 |X| R2 .|X| R3 ,即r为它在Ri上的投影的自然联接。最简单的理解,也就是说,分解后的关系 自然连接后完全等于 分解前的关系,则这个分解相对于F是无损联接分解。 设R的分解为=R1,R2,F为R所满足的函数依赖集,则分解具有无损联接性的充分必要条件
23、是:R1R2 R1R2 也就是说,分解后的两个模式的交能决定这两个模式的差集,即R1、R2的公共属性能够函数决定R1或R2中的其他属性,这样的分解就必定是无损联接分解。3.保持函数依赖的分解在分解过程中,要求模式分解的无损联接是必要的,只有无损联接分解才能保证任何一个关系能由它的那些投影进行自然联接得到恢复。 同时,分解关系模式时还应保证关系模式的函数依赖集在分解后仍在数据库模式中保持不变,这就是保持函数依赖的问题。也就是所有分解出的模式所满足的函数依赖的全体应当等价于原模式的函数依赖集。只有这样才能确保整个数据库中数据的语义完整性不受破坏。 3.4范式1.1NF、2NF、3NF、BCNF的定
24、义:1NF:第一范式即关系模式中的属性的值域中每一个值都是不可再分解的值。如果某个数据库模式都是第一范式的,则称该数据库模式是属于第一范式的数据库模式。 2NF:第二范式如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称为第二范式模式。非主属性、完全函数依赖、候选键三个名词的含义。候选键就是指可以唯一决定关系模式R中某元组值且不含有多余属性的属性集。非主属性也就是非键属性,指关系模式R中不包含在任何建中的属性。设有函数依赖WA,若存在XW,有XA成立,那么称WA是局部依赖,否则就称WA是 完全函数依赖 。 在分析是否为第2范式时,应首先确定候选键,然后把关系模式
25、中的非主属性与键的依赖关系进行考察,是否都为完全函数依赖,如是,则此关系模式为2NF。如果数据库模式中每个关系模式都是2NF的,则此数据库模式属于2NF的数据库模式。 3NF:第三范式如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R为第三范式的模式。这里首先要了解传递依赖的含义:在关系模式中,如果YX,XA,且X不决定Y和A不属于X,那么YA是传递依赖。注意的是,这里要求非主属性都不传递依赖于候选键。BCNF:这个范式和第三范式有联系,它是3NF的改进形式。若关系模式R是第一范式,且每个属性都不传递依赖于R的候选键。这种关系模式就是BCNF模式。 纵观四种范式,可以发现
26、它们之间存在如下关系: 5.分解成BCNF模式集的算法对于任一关系模式,可找到一个分解达到3NF,且具有无损联接和保持函数依赖性。而对于BCNF分解,则可以保证无损联接但不一定能保证保持函数依赖集。 无损联接分解成BCNF模式集的算法: 置初值=R; 如果中所有关系模式都是BCNF,则转; 如果中有一个关系模式S不是BCNF,则S中必能找到一个函数依赖集XA有X不是S的键,且A不属于X,设S1 =XA,S2 =S-A,用分解S1 ,S2 代替S,转; 分解结束。输出。 在这个过程中,重点在于步,判断哪个关系不是BCNF,并找到X和A。这里,S的判断用BCNF的定义,而X不是S的键则依靠分析。
27、6.分解成3NF模式集算法:如果R中的某些属性在F的所有依赖的左边和右边都不出现,那么这些属性可以从R中分出去,单独构成一个关系模式。 如果F中有一个依赖XA有XAR,则=R,转 对于F中每一个XA,构成一个关系模式XA,如果F有有XA 1 ,XA 2 .XA n ,则可以用模式XA 1 A 2 .A n 代替n个模式XA 1 ,XA 2 .XA n ; w分解结束,输入。 这个过程的重点是这一句 对于F中每一个XA,构成一个关系模式XA,这使我们的分解十分容易,然后依据合并律将有关模式合并即得到所需3NF模式。 7.模式设计方法的原则关系模式R相对于函数依赖集F分解成数据库模式=R 1 ,R
28、 2 .R k ,一般具有下面四项特性 : 中每个关系模式R i上应具有某种范式性质 无损联接性。 保持函数依赖集。 最小性,即中模式个数应最少且模式中属性总数应最少。 一个好的模式设计方法应符合下列三条原则: 表达性 分离性 最小冗余性 8.多值依赖与第四范式4NF例: 学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。关系模式Teaching课程C、教师T 和 参考书B多值依赖与第四范式TeachingBCNF:Teach具有唯一候选码, 即全码Teaching模式中存在的问题数据冗余度大:有多少名任课教师,参考书就要存储多少次。插入操作复杂:当某一课程增加一名任课教师时,该课程有
29、多少本参照书,就必须插入多少个元组。例如物理课增加一名教师刘关,需要插入两个元组: 物理,刘关,普通物理学 物理,刘关,光学原理 删除操作复杂:某一门课要去掉一本参考书,该课程有多少名教师,就必须删除多少个元组。 修改操作复杂:某一门课要修改一本参考书,该课程有多少名教师,就必须修改多少个元组。 产生原因存在多值依赖。1多值依赖设R是一个属性集U上的一个关系模式, X、 Y和Z是U的子集,并且ZUXY,多值依赖 XY成立当且仅当对R的任一关系r,r在X,Z上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关。例 TeachingC, T, B对于C的每一个值,T有一组值与之对应,而不论B
30、取何值。2第四范式4NF关系模式R1NF,如果对于R的每个非平凡多值依赖XYY X,X都含有候选码,则R4NF。如果R 4NF, 则R BCNF不允许有非平凡且非函数依赖的多值依赖允许的是函数依赖是非平凡多值依赖第四章关系运算学习目的与要求:本章总的要求是:深刻理解关系模型的运算理论,了解查询优化的意义和启发式优化算法。本章的重点是关系代数运算,应熟练掌握。关系演算是本章的难点。考核知识点和考核要求4.1关系代数4.1.1关系代数的五个基本操作并、差、笛卡儿积、投影、选 择4.1.2关系代数的四个组合操作 综合运用4.1.3关系代数表达式的应用综合运用4.1.4关系代数的两个扩充操作外连接、外
31、部并领会4.2关系演算4.2.1元组关系演算的定义及表达式的含义4.2.2域关系演算的定义及表达式的含义4.2.3关系运算的安全约束和等价性4.3关系代数表达式的优化 关系模型有三个重要组成部分:数据结构数据操纵数据完整性规则关系查询语言根据其理论基础的不同分成两类:关系代数语言关系演算语言4.1关系代数1.关系代数的五个基本操作:并、差、笛卡尔积、投影和选择。并 :两个关系需有相同的关系模式,并的对象是元组,由两个关系所有元组构成。差 :同样,两个关系有相同的模式,R和S的差是由属于R但不属于S的元组构成的集合。 笛卡儿积: 对于两个关系作运算,列:n+m列的元组的集合 ,元组的前n列是关系
32、R的一个元组后m列是关系S的一个元组,行:k1k2个元组。投影:对关系进行垂直分割,消去某些列,并重新安排列的顺序。选择 :根据某些条件关系作水平分割,即选择符合条件的元组。2.关系代数的四个组合操作:交、联接、自然联接和除法交:R和S的交是由既属于R又属于S的元组构成的集合。 联接包括联接和F联接,是选择RS中满足i或F条件的元组构成的集合,特别注意等值联接 。自然联接:在RS中,选择R和S公共属性值均相等的元组,并去掉RS中重复的公共属性列。如果两个关系没有公共属性,则自然联接就转化为笛卡尔积。除法:首先除法的结果中元数为两个元数的差,可以直接用观察法来得到结果,把S看作一个块,拿到R中去
33、和相同属性集中的元组作比较,如果有相同的块,且除去此块后留下的相应元组均相同,那么可以得到一条元组,所有这些元组的集合就是除法的结果。对于上述的五个基本操作和组合操作,应当从实际运算方面进行理解和运用,对其形式定义可不必深究。注意课本上的例子。关系代数运算的三个要素:运算对象:关系运算结果:关系运算符:四类集合运算符将关系看成元组的集合运算是从关系的水平方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作广义笛卡尔积Extended Cartesian ProductRn目关系,k1个元组Sm目关系,k2个元组RS
34、列:n+m列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1k2个元组RS = tr ts |tr RtsS 选择Selection 1选择又称为限制Restriction2选择运算符的含义在关系R中选择满足给定条件的诸元组F = t|tRF= 真F:选择条件,是一个逻辑表达式,基本形式为:比较运算符,或X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替;:逻辑运算符或 :表示任选项:表示上述格式可以重复下去3选择运算是从行的角度进行的运算 4举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。例1 查询信息系
35、IS系全体学生Sdept = IS 或5 =IS 结果:例2 查询年龄小于20岁的学生Sage 20 或4 20结果: 投影Projection1投影运算符的含义从R中选择出若干属性列组成新的关系A = tA | t R A:R中的属性列2投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组避免重复行3举例例3 查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影Sname,Sdept或 2,5结果:例4 查询学生关系Student中都有哪些系 Sdept结果:连接Join 1连接也称为连接2连接运算的含义从两个关系的笛卡尔积中
36、选取属性间满足一定条件的元组R S = | trRtsStrAtsB A和B:分别为R和S上度数相等且可比的属性组:比较运算符连接运算从R和S的广义笛卡尔积RS中选取R关系在A属性组上的值与S关系在B属性组上值满足比较关系的元组。 3两类常用连接运算等值连接equijoin 什么是等值连接为的连接运算称为等值连接 等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:R S = | trRts StrA = tsB 自然连接Natural join 什么是自然连接自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自
37、然连接的含义更多优质自考资料尽在百度贴吧自考乐园俱乐部/club/5346389欢迎加入.欢迎交流.止不住的惊喜等着你.R和S具有相同的属性组BRS = | tr Rts StrB = tsB 4一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 5举例例5 外连接例:列出老师的有关信息,包括姓名、工资、所教授的课程P# ,PN , SAL , C# , CN PC C外连接为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接外连接 =
38、自然连接 + 失配的元组外连接的形式:左外连接、右外连接、全外连接重要内容分析1.1一般规则对于只涉及到选择、投影、联接的查询可用下列表达式表示:RS 或者RS对于否定的操作,一般要用差操作表示,例如检索不学C2课的学生姓名。对于检索具有全部特征的操作,一般要用除法操作表示,例如检索学习全部课程的学生姓名。 2检索不学C2课的学生姓名,决不能用下式表示:SNAME,AGEC#C2SSC一定要用差的形式:SNAME,AGESSNAME,AGEC#=C2SSC3检索学习全部课程的学生学号,要用S#,C#SCC#C表示,而不能写成S# SCC#C形式。这是因为一个学生学的课程的成绩可能是不一样的。
39、2.非过程性语言与过程性语言的区别编程时必须指出干什么及怎么干的语言,称为过程性语言;编程时只须指出干什么,不必指出怎么干的语言,称为非过程性语言。4.2关系演算把数理逻辑的谓词演算引入关系运算中,就可得到以关系演算为基础的运算。关系演算分为元组关系演算或域关系演算,前者以元组为变量,后者以域为变量。元组关系演算形式化定义 t | Pt表示所有使谓词P为真的元组集合t为元组变量如果元组变量前有全称或存在量词,则称其为约束变量,否则称为自由变量。P是公式由原子公式和运算符组成原子公式sRs是关系R中的一个元组sx uysx与uy为元组分量,他们之间满足比较关系sx c分量sx与常量c之间满足比较
40、关系公式的递归定义原子公式是公式如果P是公式,那么P也是公式如果P1 , P2是公式,则P1P2 , P1 P2 , P1 P2也是公式如果P是公式,R是关系,则tR P和tR P 也是公式。公式的等价性P1P2 tR P t R PP1P2 P1 P2表达式的安全性元组关系演算有可能会产生无限关系,这样的表达式是不安全的。如t | ,求所有不在R中的元组引入公式P的域概念,用dom表示dom = 显式出现在P中的值 + 在P中出现的关系的元组中出现的值不必是最小集如dom t | 是R中出现的所有值的集合如果出现在表达式t | Pt结果中的所有值均来自dom,则称t | Pt是安全的。示例:
41、找出工资在800元以上的老师t | tPROF tSAL 800找出工资在800元以上的老师的姓名 t | sPROF 800 给出计算机系老师的姓名t | uDEPT uDNAME = 计算机系sPROF 求选修了全部课程的学生号t | uC sSC 求选修了张军同学所选修的全部课程的学生姓名课程,张军选之 所求同学选之t | uC sSC wS 元组关系演算与关系代数的等价性投影A = t | sR 选择F = t | tR F 广义笛卡儿积R S = t | uRsS并 RS= t | tR tS交 RS= t | tR tS域关系演算形式化定义 | P x1 , x2 , , xn x
42、i代表域变量,P为由原子构成的公式原子公式 Rxi是域变量或域常量x y域变量x与y之间满足比较关系x c域变量x与常量c之间满足比较关系示例:找出工资在800元以上的老师 | PROF e 800找出工资在800元以上的老师的姓名 | a , c , d , e PROF e 800 4.3关系代数表达式的优化问题目的在关系代数中找一种好的操作步骤,既省空间,查询效率又比较高。在关系代数中,笛卡儿积和联结运算是最费时间和空间的,在关系很大的时候,必须要考虑怎样做才能合理的安排,做到省时省力。一个例子设关系R和S都是二元关系,属性名分别是A、B和C、D。那么如下查询:E1=AB=C D=99R
43、 S也可以是 E2=AB=C R D=99 S或E3=AR D=99 S这三个代数表达式的等价的,但是执行的效率不一样。第一种:先做笛卡儿积。假设每个物理块可以存储R的B1个元组,或者S的B2个元组,R关系中有n1个元组,S关系中有n2个元组,内存每次只能装载m块数据。在做联接的时候先把R的第一个m-1块数据装入内存,然后逐个调入S中的数据块;R中的每个数据块只要进入内存一次,总共需要装入的块数示n1/B1;S中的每个数据块需要进入内存n1/B1/m-1次,总共需要装入的块数是:n1/B11/m-1n2/B2这三个代数表达式的等价的,但是执行的效率不一样。执行R X S的总装入块数是n1/B1
44、1+n2/m-1/B2若n1=n2=10000,B1=B2=5,m=100,那么总的装入块数是42400,若每秒装入20块,需要35分钟。耗费时间长,在实际使用中不采用。这三个代数表达式的等价的,但是执行的效率不一样。第二种和第三种:先做了选择,装入的块数为n1/B1+n2/B2,大约需要装入4000块,耗费时间3分多钟。对于S来说,元组并不是全部进入内存,而且只是进入一次,所以速度快。1.优化的一般策略我们所说的优化和存储没有关系,主要是如何来安排操作的顺序,节省时间和空间的消费优化的一般技术:在关系代数表达式中尽可能早地执行选择操作。把笛卡儿积和其后的选择操作合并成F联接运算。同时计算一连
45、串的选择和投影操作,避免分开运算造成多次扫描文件。2.关系代数表达式的优化算法对一个关系代数表达式进行语法分析可以得到一棵语法树,叶子式关系,非叶子结点式关系代数操作。算法2.1 关系代数表达式的优化。输入:一个关系代数表达式的语法树。输出:计算表达式的一个优化程序。方法:依次执行下面的每一步。使用等价变换规则4将每个形为F1FnE的子表达式转换成串接形式:F1FnE对每个选择操作,尽可能把选择操作移近树的叶端尽可能早的实行选择操作。对每个投影操作,尽可能把投影操作移近树的叶端。 把选择和投影合并成单个选择、单个投影或一个选择后跟一个投影。将上述步骤得到的语法树的内结点分组。 生成一个序列,每
46、一组结点的计算是序列中的一步。见课本例子。第五章 SQL语言学习目的与要求:SQL语言是关系数据库的标准语言,是本课程的一个重点。本章总的要求是:全面掌握,深刻理解。熟练应用。要求掌握的技能是:SQL 定义语句、嵌入式SQL语句的应用。要求熟练掌握的技能是:SQL查询语句、视图、SQL更新语句的应用。方法:多做题,多上机实践。考核知识点与考试要求5.1SQL简介识记5.2SQL的数据定义综合应用5.3SQL的数据查询5 .3.1SELECT查询语句的基本结构,连接、嵌套、存在量词 的三种查询方式综合应用5.3.2SELECT语句完整的结构,分组子句、排序子句的用法5.3.3数据查询中的限制和规
47、定5.3.4条件表达式中的比较操作5.3.5嵌套查询的改进写法5.3.6基本表的连接操作5.4SQL的数据更新综合应用5.5 视图5.6嵌入式SQL5.7存储过程SQL/PSM更多优质自考资料尽在百度贴吧自考乐园俱乐部欢迎加入.欢迎交流.止不住的惊喜等着你.5.1SQL简介1.SQL发展历程SQL从1970年美国IBM研究中心的E.F.Codd发表论文到1974年Boyce和Chamberlin把SQUARE语言改为SEQUEL语言,到现在还在不断完善和发展之中,SQL虽然名为查询,但实际上具有定义、查询、更新和控制等多种功能。 2.SQL数据库的体系结构SQL数据库的体系结构也是三级结构 ,
48、但术语与传统关系模型术语不同,在SQL中,关系模式称为 基本表 ,存储模式称为 存储文件 ,子模式称为 视图 ,元组称 行 ,属性称 列 。SQL数据库体系的结构要点如下: 更多优质自考资料尽在百度贴吧自考乐园俱乐部欢迎加入.欢迎交流.止不住的惊喜等着你.一个SQL数据库是表的汇集。 一个SQL表由行集构成,行是列的序列,每列对应一个数据项。 表或者是基本表,或者是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表或其他视图构成的表的定义。 一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。 用户可以用SQL语句对表进行操作,包括视图和基
49、本表。 SQL的用户可以是应用程序,也可以是终端用户。 3.SQL的组成SQL由四部分组成: 数据定义:SQL DDL。定义SQL模式,基本表、视图和索引。 数据操纵:SQL DML。包括数据查询和数据更新。 数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。 嵌入式SQL的使用规定。 4.SQL的特点1SQL具有十分灵活和强大的查询功能。2SQL不是一个应用开发语言,它只提供对数据库的操作功能,不能完成屏幕控制、菜单管理、报表生成等功能。3SQL是国际性标准语言,有利于各种数据库之间交换数据,有利于程序的移植,有利于实现高度的数据独立性,有利于实现标准化。4SQL的词汇不多,
50、完成核心功能只用了9个英语动词,它的语法结构接近英语,因此容易学习和使用。5.2SQL的数据定义1.SQL模式的创建和撤消: SQL模式的创建可简单理解为建立一个数据库,定义一个存储空间,其句法是: CREATE SCHEMA AUTHORIZATION 撤消SQL模式的句法为: DROP SCHEMA CASCADE | RESTRICT 方括号中的选项参数CASCADE表示连锁方式,执行时将模式下所有基本表、视图、索引等元素全部撤消。RESTRICT表示约束式,执行时必须在SQL模式中没有任何下属元素时方可撤消模式。 2.SQL提供的基本数据类型数值型:包括 integer、smallin
51、t、real、double precision 、float,numeric字符串型:char、varchar,前者是定长,后者为变长串 位串型:bit,bit varying,同上。 时间型:date、time。 3.基本表的创建、修改和撤消基本表的创建: CREAT TABLE SQL 模式名.基本表名 完整性约束包括主键子句、检查子句和外键子句。 基本表结构的修改ALTER TABLE 基本表名 ADD/ DROP 列名 类型名 删除时有子句 CASCADE|RESTRICT,前者为连锁删除,后者为约束删除,即没有对本列的任何引用时才能删除。基本表的撤消DROP TABLE 基本表名 C
52、ASCADE|RESTRICT 4.索引的创建和撤消创建: CREATE UNIQUE INDEX 索引名 ON 基本表名 撤消: DROP INDEX 索引名 总结:凡创建都用 CREATE ,删除都用 DROP ,改变用 ALTER ,再跟类型和名字,附加子句很容易了。5.3SQL的数据查询1.SELECT -FROM- WHERE 句型 SELECT 列名表 FROM 基本表或视图序列 WHERE 条件表达式 在这里,重点要掌握条件表达式中各种运算符的应用,如=,等算术比较运算符、逻辑运算符 AND、OR、NOT 、集合成员资格运算符: IN,NOT IN ,以及嵌套的 SELECT 语
53、句的用法要特别注意理解。 针对课本的例题和课后习题进行掌握。 在查询时, SELECT 语句可以有多种写法,如联接查询、嵌套查询和使用存在量词的嵌套查询等。最好都掌握,但是起码应能写出一种正确的查询语句。 2.SELECT 语句完整的句法:SELECT 列名表 FROM 基本表或视图序列 WHERE 条件表达式 GROUP BY 列名序列 HAVING 组条件表达式 ORDER BY列名ASC|DESC. 这段关于完整句法的内容能够理解也就问题不大了。3.SELECT 语句中的限定这一段内容主要是对 SELECT 语句进一步使用进行的深入学习,领会下列各种限定的使用目的和方法。 要求输出表格中
54、不出现重复元组,则在 SELECT 后加一DISTINCT SELECT 子句中允许出现加减乘除及列名,常数的算术表达式 WHERE 子句中可以用BETWEEN.AND.来限定一个值的范围 同一个基本表在 SELECT 语句中多次引用时可用AS来增加别名 WHERE 子句中字符串匹配用LIKE和两个通配符,%和下划线_. 查询结果的结构完全一致时可将两个查询进行并交差操作 查询空值操作不是用=null,而是用 IS NULL来测试。 集合成员资格比较用 IN/NOT IN ,集合成员算术比较用元组SOME/ALL 可以用子查询结果取名表名来作为导出表使用 基本表的自然联接操作是用 NATURA
55、L INNER JOIN来实现的。 5.4SQL的数据更新1.数据插入: INSERT INTO 基本表名 VALUES 或 INSERT INTO 基本表名 SELECT 查询语句 其中元组值可以连续插入。用查询语句可以按要求插入所需数据。 2.数据删除:DELETE FROM 基本表名 WHERE 条件表达式 3.数据修改:UPDATE 基本表名 SET 列名=值表达式,列名=值表达式. WHERE 条件表达式 5.5视图1.视图的创建和撤消 创建: CREATE VIEW 视图名 AS SELECT 查询语句 撤消: DROP VIEW 视图名2.视图的操作查询与关系中一致更新与关系不同
56、如果视图是从多个使用联接操作导出的,不允许对此视图更新如果在导出视图的过程中,使用了分组和聚合函数,不允许对此视图更新。如果视图是从单个关系使用选择、投影操作导出的,并且包含了关系的主健或某个候选健,称此视图为行列子集视图,允许对此视图更新。CREATE VIEW S_MAIL AS SELECT S#, SNAME, AGE FROM S WHERE SEX=MINSERT INTO S_MALEVALUES与INSERT INTO SVALUES相同3.视图的优点使用视图的优点:视图提供了逻辑数据的独立性简化了用户观点用户只需关心视图的内容,而不必关心构成视图的若干关系的联结、投影操作。能
57、够将对数据库的访问限制在一定范围内,有利于数据安全保护功能。可针对不同的用户定义不同的视图,在视图种只出现用户需要的数据,系统提供视图让用户使用。5.6嵌入式SQL1.SQL语言提供了两种不同的使用方式:交互式嵌入式为什么要引入嵌入式SQLSQL语言是非过程性语言事务处理应用需要高级语言这两种方式细节上有差别,在程序设计的环境下,SQL语句要做某些必要的扩充。2.嵌入式SQL的一般形式为了区分SQL语句与主语言语句,需要: 前缀:EXEC SQL结束标志:随主语言的不同而不同以C为主语言的嵌入式SQL语句的一般形式 EXEC SQL ;例:EXEC SQL DROP TABLE Student
58、;以COBOL作为主语言的嵌入式SQL语句的一般形式 EXEC SQL END-EXEC例: EXEC SQL DROP TABLE Student END-EXEC3.DBMS处理宿主型数据库语言SQL的方法预编译修改和扩充主语言使之能处理SQL语句。4.嵌入式SQL语句与主语言之间的通信将SQL嵌入到高级语言中混合编程,程序中会含有两种不同计算模型的语句SQL语句描述性的面向集合的语句负责操纵数据库高级语言语句过程性的面向记录的语句负责控制程序流程5.工作单元之间的通信方式 SQL通信区向主语言传递SQL语句的执行状态信息主语言能够据此控制程序流程 共享变量主语言向SQL语句提供参数将SQ
59、L语句查询数据库的结果交主语言进一步处理 游标解决集合性操作语言与过程性操作语言的不匹配6.共享变量什么是共享变量嵌入式SQL语句中可以使用主语言的程序变量来输入或输出数据在SQL语句中使用的主语言程序变量简称为共享变量Host Variable在SQL语句中使用共享变量和指示变量的方法1说明共享变量和指示变量BEGIN DECLARE SECTION. . .END DECLARE SECTION7.游标cursor为什么要使用游标SQL语言与主语言具有不同数据处理方式SQL语言是面向集合的,一条SQL语句原则上可以产生或处理多条记录。什么是游标游标是系统为用户开设的一个数据缓冲区,存放SQ
60、L语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给共享变量,交由主语言进一步处理。1说明游标使用DECLARE语句语句格式EXEC SQL DECLARE CURSOR FOR ;功能是一条说明性语句,这时DBMS并不执行SELECT指定的查询操作。2打开游标使用OPEN语句语句格式EXEC SQL OPEN ;功能打开游标实际上是执行相应的SELECT语句,把所有满足查询条件的记录从指定表取到缓冲区中。这时游标处于活动状态,指针指向查询结果集中第一条记录之前。3移动游标指针,然后取当前记录使用FETCH语句语句格式EXEC SQL FETCH NEXT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年09月浙江医疗卫生招聘宁波大学附属人民医院公开招聘编外人员2人笔试历年专业考点(难、易错点)附带答案详解
- 2025年探讨房屋按揭贷款保险合同中的受益人及受偿权益
- 医学培训课件病理学-寄生虫病
- 危险源辨识专项培训
- 科技创新与智能化趋势研究考核试卷
- 石墨在航空航天涂料的研究考核试卷
- 6-通风网络及风量分配与调节
- 2025汽车美容师劳动合同模板
- 矿物在印刷电路板中的应用考核试卷
- 全面落实企业安全生产主体责任实施思路
- 2024年四川农商银行招聘笔试真题
- 酒馆加盟代理协议书
- 光电芯片设计试题及答案
- 2025届江苏省南通市如皋市高三下学期适应性考试(二)物理考试(含答案)
- 人力资源管理行业的未来发展趋势
- 2025年许昌职业技术学院单招职业适应性考试题库及答案1套
- 跟着音乐去旅行知到智慧树章节测试课后答案2024年秋浙江旅游职业学院
- 幼儿园中班彩虹泡泡龙课件
- 《建筑基坑工程监测技术标准》(50497-2019)
- TCVN-2622-越南建筑防火规范(中文版)
- 不负韶华只争朝夕-一模考试反思 课件-2021-2022学年高中主题班会(共17张PPT)
评论
0/150
提交评论