数据库系统课件数据库工程与应用

上传人:痛*** 文档编号:165435597 上传时间:2022-10-28 格式:PPT 页数:114 大小:795.50KB
收藏 版权申诉 举报 下载
数据库系统课件数据库工程与应用_第1页
第1页 / 共114页
数据库系统课件数据库工程与应用_第2页
第2页 / 共114页
数据库系统课件数据库工程与应用_第3页
第3页 / 共114页
资源描述:

《数据库系统课件数据库工程与应用》由会员分享,可在线阅读,更多相关《数据库系统课件数据库工程与应用(114页珍藏版)》请在装配图网上搜索。

1、数据库系统原理张军EMAIL:D数据库系统原理 n第1章 绪论 n第2章 关系数据库n第3章 关系数据库标准语言SQLn第4章 关系数据库设计理论 n第5章 数据库保护 n第6章 数据库设计 n第7章 关系数据库管理系统实例 n第8章 数据库技术新进展 数据库技术作为数据管理的最有效的手段,它的出现极大地促进了计算机应用的发展,目前基于数据库技术的计算机应用已成为计算机应用的主流。近年来,关系数据库已取代了早期的层次数据库和网状数据库,成为主流数据库。本教程以关系数据库为重点,全面系统地介绍数据库的基本概念和基本技术。第1章 绪论n11引言 n12数据模型 n13数据库系统结构 n14数据库管

2、理系统 n15数据库工程与应用 介绍数据库的有关概念,了解数据库的基本技术和数据库设计的软件工程技术。11引言n111概念 n112数据库技术的产生与发展 n113数据库技术的研究领域 13数据库系统结构 n131模式结构 n132体系结构 数据库系统结构可以根据考察的角度分为不同的形式。通常可以从数据库管理和最终用户两个角度来考察。1.3.1 三级模式结构应用A应用B应用C应用D外模式3外模式2外模式1123模式内模式DB一个数据库只有一个模式外模式/模式映象模式/内模式映象也称子模式、用户模式。是模式的子集。是用户的数据视图,与某一应用有关。也称逻辑模式。是所有用户的公共数据视图。与应用开

3、发工具、应用无关;与物理存储、硬件环境无关。也称存储模式。数据在数据库内部的表示方式。只有一个内模式;主要描述存储方式,如顺序存储、B树存储,hash存储;以及如何进行索引、压缩、加密等。1.3.2 体系结构单用户结构早期、最简单的数据库系统采用的方式。实现上,在目前仍有应用,如Oracle数据库中对数据库进行维护时的internal用户模式就是一种单用户方式。应用、DBMS、数据在同机器上,只能由一个用户访问主从式结构一个主机带多个终端的多用户结构应用、DBMS和数据都在一主机上,多个用户通过终端或网络访问分布式结构数据库中的数据逻辑上是一个整体,物理上分布在计算机网络的不同结点上,各结点可

4、独立处理本地数据,执行局部应用;也可同时存取和处理多个异地数据、全局应用。应用、DBMS和数据分布在网络中多个主机上,多个用户通过网络访问客户/服务器(C/S)结构将DBMS功能与应用分开,专门用于执行DBMS的功能的计算机称数据库服务器(简称服务器),其他安装DBMS的外围应用开发工具、支持用户应用的称为客户机。在计算机网络中主要传送用户请求和处理结果,降低了网络负担。更开放,客户机和服务器可以适应多种不同的硬、软件平台。集中式:网络中只有一台数据库服务器,有多个客户机。分布式:网络中有多台数据库服务器,多个客户机。是客户/服务器结构与分布式结构的结合。应用、开发工具位于客户机上,DBMS和

5、数据位于服务器上,客户机与服务器通过专门的接口进行通讯。集中式结构中DBMS和数据集中在一台服务器上。分布式结构中DBMS和数据分布在多台服务器上,由DBMS负责、协调各局部数据的管理。所有的服务器形成一个统一的数据库整体面向用户。单用户结构DBMS应用主机数据库输出输入主从式结构DBMSDBMS应用应用主机用户用户用户用户用户数据库分布式结构主机网络主机用户用户用户用户主机用户用户用户局部数据库局部数据库局部数据库客户/服务器结构接口应用用户接口DBMS服务器接口DBMS服务器数据库接口应用用户应用接口用户应用接口用户数据库12数据模型 n121要素 n122概念模型 n123数据模型 数据

6、模型是数据库中用于抽象、表示和处理现实世界中的数据和信息的工具。需要满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。14数据库管理系统 n141DBMS的功能和组成 n142工作过程(示例)n143实现方式 数据库管理系统是数据库系统的核心,是为数据库的建立、使用和维护而配置的软件。DBMS建立在操作系统的基础上,是位于操作系统与用户之间的一层数据管理软件,负责对数据库进行统一的管理和控制。用户发出的或应用程序中的各种操作数据库中数据的命令,都要通过数据库管理系统来执行。数据库管理系统还承担着数据库的维护工作,能够按照数据库管理员所规定的要求,保证数据

7、库的安全性和完整性。1.4.1 DBMS的功能和组成功能数据定义模式、存储模式和外模式,各模式间的映象定义,及定义结束条件数据操纵检索、插入、删除、修改等数据库运行管理并发控制、安全性检查、完整性约束条件等的检查与执行。内部维护(包括索引、数据字典的自动维护)数据组织、存储和管理文件结构、存取方式(如何保证空间利用率和处理效率(时间效率)数据库的建立与维护初始数据输入、数据转换等。转储(备份)与恢复、重组、重构等。数据通信接口与用户的通信接口,各服务器间的通信接口等组成数据定义语言及其翻译处理程序DDL数据操纵语言及其编译(或翻译)程序DML,宿主型、自主型(自含型)数据库运行控制程序 实用程

8、序 工作过程示例 读取一个数据 n应用程序A向DBMS发出从数据库中读取数据库记录的命令。nDBMS对该命令进行语法、语义检查,并调用应用程序A对应的子模式,检查A的存取权限,决定是否执行该命令。如果拒绝执行,则向用户返回错误信息。n决定执行该命令后,DBMS调用模式,依据子模式/模式映象的定义,确定应读入模式中的哪些记录。nDBMS调用物理模式,依据模式/物理模式(内模式)映象的定义,决定应从哪些文件、用什么存取方式、读入哪个或哪些物理记录。nDBMS向操作系统发出执行读取所需物理记录的命令。n操作系统执行读数据的有关操作。n操作系统将数据从数据库的存储区送至系统缓冲区。nDBMS依据子模式

9、/模式映象的定义,导出应用程序A所要读取的记录格式。nDBMS将数据记录从系统缓冲区传送到应用程序A的用户工作区。nDBMS向应用程序A返回命令执行情况的状态信息。1.4.3 实现方法其中:U1、U2、Un为非数据库系统用户。AP1、AP2、APn为数据库应用程序(或用户)。N方案DBMS与应用程序融合在一起通常设计成可重入代码,内存中有多个DBMS代码副本APi与DBMS无须通信,被调用的DBMS模式加入到用户进程中。2N方案一个DBMS进程对应一个用户进程每个用户进程均有一个称为影子进程(shadow)的DBMS进程为之服务。此外,还有若干后台进程负责读写数据库、监控日志等,进程总数用户数

10、*2Oracle早期,INGRES,INFORMIX早期采用。不适合大量用户的联机事务处理M+N方案多个DBMS进程对应多个用户进程N个用户进程,M个DBMS进程(通常MN)。DBMS进程的分派由专门的分派进程完成。Oralce7,INFORMIX采用。N+1方案一个DBMS进程对应所有用户进程整个DBMS只使用一个进程,用户向其发消息来申请服务(进入消息队列)。把DBMS进程内部设计成多线索结构,每一条线索都可以服务于一个用户请求。SYBASE采用。实现较复杂,消息通信机制开销大。15数据库工程与应用 n151目标与特点 n152数据库设计方法 n153步骤 n154数据库应用 数据库设计是

11、一项涉及多学科的综合性技术。现实世界的复杂性导致了数据库设计的复杂性。只有以科学的数据库设计理论为基础,在具体的设计原则的指导下,才能保证数据库系统的设计质量,减少系统运行后的维护代价。151 目标与特点 目标:在DBMS的支持下,按照应用的要求为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。(见图)内容结构(数据)设计设计数据库框架或数据库结构 行为(处理)设计设计应用程序、事务处理等传统的软件工程方法:如结构化设计方法和原型法。注重处理过程的特性,忽视应用中数据语义的分析和抽象,尽量推迟数据结构设计。数据库系统设计:首先结构设计,与文件系统为基础的应用系统不同,文

12、件的共享程度受限。数据库模式是各应用程序共享的结构。稳定、永久、直接影响各处理过程的性能和质量(即应用是围绕数据库展开的)。结构特性与行为特性不能分离,否则会增加数据库设计的复杂性。图示 数据库设计目标数据库设计信息需求处理需求DBMS与软、硬件系统特征应用系统数 据 模 式 与数据库152 数据库设计方法 现实世界(复杂性)数据库设计设计步骤新奥尔良方法(四阶段)需求分析分析用户要求概念设计信息分析和定义逻辑设计设计实现物理设计物理数据库设计S.B.Ya o(六步骤)需求分析 模式构成 模式汇总 模式重构 模式分析 物理数据库设计 I.R.Palmer一步接一步的过程辅助手段实现每一过程 技

13、术与方法基于E-R模型的数据库设计基于3NF的设计基于抽象语法规范的设计153 步骤 n1)需求分析:基础,最困难、最耗时。获取需求说明和数据说明。n2)概念结构设计:独立于DBMS来描述数据库的逻辑结构n3)逻辑结构设计:针对于具体的DBMSn4)数据库物理设计:选取物理结构(包括存储结构、存取方法)n5)数据库实施:运用DBMS提供的数据语言及其宿主语言,建立数据库,编制和调试应用程序,数据入库,试运行等n6)数据库运行和维护:评价、调整与修改。n注意问题:n1、用户的积极性,如何将业务流程转化成数据模型,同时可以将责任和风险分散。n2、可扩充性,如何适应新技术、新需求。n3、平稳过渡。1

14、54 数据库应用 DBA(Database Administrator)决定数据库应用水平。n1、设计与定义数据库系统n2、帮助最终用户使用,包括培训、解疑。n3、监督与控制数据库系统的使用和运行,审计n4、改进、重组(提高空间利用率、处理效率)n5、转储和恢复n6、重构113数据库技术的研究领域 n1、DBMS软件的研制 DBMS本身及周边软件系统;支持新的数据类型,如非格式化数据:声音、图象;面向对象;多媒体n2、数据库设计 数据库设计的方法、工具、理论;数据模型、建模;CA数据库设计方法、设计规范和标准。n3、数据库理论 关系的规范代理论;关系数据理论;数据库逻辑演绎和知识推理、并行算法

15、;演绎数据库、知识库、数据仓库112数据库技术的产生与发展 n1、人工管理阶段。50年代中期前;特点:1)不保存;2)无软件;3)不共享;4)无独立性。n2、文件系统阶段。50年代后期至60中期;特点:1)长保存;2)文件系统管理;3)共享差;4)独立性差。n3、数据库系统阶段。60年代后期以来;特点:1)结构化;2)共享好,冗余低;3)独立性高;4)DBMS管理。111概念 n数据(data):描述事物的符号记录。(计算机处理、语义)n数据库(database,简称DB):长期储存在计算机内,有组织的、可共享的数据集合。n数据库系统(database system,简称DBS):数据库引入到

16、计算机系统中的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。n数据库管理系统(database management system,简称DBMS):数据管理软件系统。管理、控制数据库的建立、运行和维护。121要素 n1、数据结构:系统静态特性n2、数据操作:动态特性n3、约束条件:完整性约束122概念模型 不依赖于具体的DBMS的支持的数据模型n1、信息世界的基本概念实体(entity):客观存在,并可相互区别的事物。属性(attribute):实体的某一特性。码(key):唯一标识实体的属性集合。域(domain):属性的取值范围。实体型(enti

17、ty type):实体及其属性名集合来抽象和刻画同类实体。实体集(entity set):同类实体的集合。联系(relationship):实体之间、实体内部属性间的联系。如1:1、1:n、m:n等。122概念模型n2、概念模型表示方法E-R图,P.P.S.Chen于1976年提出(entity-relationship approach)。实体型:用矩形表示,矩形框内写明实体 属性:用椭圆形表示,并用无向边将其一相应的实体连接起来 联系:用菱形表示,菱形框人写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:m,m:n等)示例1示例2示例3示例1 一般的联

18、系班级班级-班长班长11班级组成学生1n1:1课程选修学生mn1:nm:n示例2 特殊的联系课程讲授教师1m参考书n三个实体间的联系职工经理1n实体内部的联系示例3 E-R图课程讲授教师1m参考书n选修学生mn班级组成1n小组长n1成绩123数据模型 n层次模型(hierarchical model)n网状模型(network model)n关系模型(relational model)层次模型层次模型(hierarchical model)代表:IBM的IMS(Information Management System)数据结构基本结构只有一个结点无双亲,即为根结点(1:1)其他结点有且只有一

19、个双亲结点(1:n)多对多(m:n)冗余结点法:m:n=1:m+1:n虚拟结点法:将冗余结点转为虚拟结点,即指引元,指向替代的结点。其它非树型结构转换成树型操纵与完整性约束没有双亲结点值不能插入子女结点值删除双亲结点值,相应子女值也同时删除冗余结点更新时,几处同时更新存储结构邻接法:层次树前序链接法:用指引元反映数据之间的层次联系优缺点简单;联系固定;完整性良好。非层次表示笨拙;插入、删除限制多;查询子女通过双亲;层次命令趋于程序化。示例S#SN SSS-CC#CNmn学生S课程CS#SN SSC#CNC#CNS#SN SSS#SN SSC#CNV.CV.S示例 用层次模型表示多对多E-R图S

20、CCSSV.CCV.S网状模型 网状模型(network model)典型代表是DBTG系统,也称CODASYL系统。这是20世纪70年代数据系统语言研究会CODASYL(Conference On Data System Language)下属的数据库任务组(Data Base Task Group,简称DBTG)提出的一个系统方案数据结构可以有一个以上的结点无双亲;至少有一点结点,有多于一个的双亲;两个结点之间可以有两种或多种联系。操纵与完整性约束 插入操作允许尚未确定双亲结点值的子女结点值;删除操作允许只删除双亲结点值。存储结构链接法:单向、双向、环状、向首引元阵列、二进制阵列、索引优缺

21、点更直接描述;性能良好、存取效率高。DDL复杂;独立性差、指定存取路径。关系模型关系模型(relational model)1970年E.F.Codd论文“大型共享系统的关系数据库的关系模型”数据结构逻辑结构是二维表,由行和列组成。关系:二维表。元组:表中的一行。属性:表中的一列。主码(key):属性组(集),可以唯一确定一个元组。域(domain):属性的取值范围。分量:元组中的一个属性值。关系模式:对关系的描述。表示为:关系名(属性1,属性2,属性n)操纵与完整性约束集合操作(操作对象、操作结果都是关系(元组的集合):查询、插入、删除、修改。实体完整性、参照完整性、用户定义的完整性。存储结

22、构实体、及实体之间的联系用“表”表示,表以文件形式存储优缺点与非关系模型不同,它建立于严格的数学概念的基础上的;关系模型的概念单一。无论实体还是实体间的联系都用关系表示,对数据的检索结果也是关系(即表)。故其数据结构简单、清晰,用户易懂易用;关系模型的存取路径对用户透明,具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。由于存取路径对用户透明,查询效率不如非关系数据模型;为提高性能,须对用户查询请求进行优化,从而增加了数据库管理系统的负担。示例示例 二维表学号姓名性别系别年龄95001 张三男CS2096010 李四女IS1999100 王五男MA17学生登记

23、表关系名列,属性名,主码行,元组域:如整数第2章 关系数据库 n21概述n22关系数据结构 n23关系的完整性 n24关系代数 n25关系演算 n26关系数据库管理系统 1962CODASYL发表信息代数1968David,Child在7090机上实现集合论数据结构1970IBM的E.F.Codd多篇论文,提出关系理论21概述关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和完整性约束三部分组成。1.关系数据结构2.关系操作3.完整性约束实体完整性参照完整性用户定义的完整性常用关系操作关系数据模型的操作对象和结果都是集合:一次一集合(set-at-a-time)方

24、式。非关系数据模型的数据操作方式:一次一记录(record-at-a-time)方式。常用的关系操作:查询操作更新操作选择(选取)增(加)投影删(除)连接(修)改除 并 交差 关系操作关系操作是非过程化的,以下为其三种表达能力等价的方法:关系代数用对关系的运算来表达查询要求的方式如ISBL关系演算用谓词来表达查询要求的方式。按谓词变元的基本对象分为:元组关系演算(变元的基本对象为元组)域关系演算(变元的基本对象为域)如 A L P H A,QUEL如QBESQLStructured Query Language,具有关系代数、关系演算的双重特点。又可细分为查询、DDL、DML、DCL等几部分。

25、22关系数据结构n1关系 n2关系模式 n3关系数据库 域和笛卡尔积n1iimml笛卡尔积可表示为一个二维表,表中的每行对应一个元组,每列对应一个域。l域(domain):定义2.1 域是一组具有相同数据类型的值的集合。l笛卡尔积(cartesian product):定义2.2 给定一组域D1,D2,D-n,这些域可以完全不同,也可以部分或全部相同。D1,D2,D-n的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDj,j=1,2,n,其中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组(tuple)。l元素中的每一个值di叫作一个分量(component)。l

26、若Di(i=1,2,n)为有限集,其基数(cardinal number)为m-i(i=1,2,n),则D1D2 Dn的基数为:关系l关系(relation):定义2.3 D1D2Dn的子集叫作在域D1,D2,D-n上的关系,用R(D1,D2,D-n)表示。其中R表示关系的名字,n是关系的目或度(degree)。l关系中的每个元素是关系中的元组,通常用t表示。l当n=1时,称为单元关系(unary relation)。l当n=2时,称为二元关系(binary relation)。l关系是笛卡尔积的子集,所以关系也是一二维表。由于域可以相同,为了区别,每列另起一名字,称为属性(attribute

27、),n目关系有n个属性。关系中的码码(key)候选码(candidate key)能唯一标识一元组的属性组主码(primary key)多个候选码中的主要应用属性组。其中的每个属性都称为主属性(prime attribute)。而不属于任何候选码的属性叫作非码属性(non-key attribute)合成码(组合码)码含有多个属性外 部 码(外 码,foreign key)不是当前关系的码,但是其它关系中的主码。全码(all-key)所有属性共同组成关系模式的候选码。关系的三种类型基本表(基表)实际存在的表,实际存储数据的逻辑表示。查询表查询结果地应的表。视图表由基表或其他视图导出的表,为虚表

28、,不对应实际存储的数据。关系的六条性质 1.列是同质的(homogeneous),即列中的所有元素来自同一个域。2.不同列可出自相同域,不同属性有不同的属性名。3.列的顺序无所谓,次序可以互换(有些数据库系统,如FoxPro,仍然区分了属性顺序)。4.任意两个元组不能完全相同。(在实际的产品中,这可以通过用户定义的约束来完成,如定义主码。即当没有用户定义时,可以允许相同元组存在。)5.行序无所谓。6.分量必须取原子值。即每一分量皆是不可分的数据项。其中第6条是规范化关系中最基本的一条。把规范化的关系称为范式(normal form)。因此可以把第6条称为关系的第一范式(1NF)。2关系模式n定

29、义2.4 关系的描述称为关系模式(relation schema)。它可以形式地表示为:R(U,D,DOM,F)。n其中R为关系名,U为属性名集合,D为域集合,DOM为属性向域的映象集合,F为属性间的依赖关系集合。n关系模式是型,关系是值。n例:学生选修课成绩登记表,定义关系模型SC如下:SC(SNO,CNO,GRADE,N(6),N(3),(SNO,N(6),(CNO,N(3),(GRADE,N(3),(SNO,CNO)GRADE)其中SNO表示学号,CNO表示课程号,GRADE表示选修课成绩。3关系数据库n关系数据库也有型和值之分。关 系 数 据库的型也称关系数据库的模式包括域的定义、关系

30、模式定义。关 系 数 据库的值也称关系数据库是关系的集合。23关系的完整性n1实体完整性(entity integrity)规则2.1 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。n2参照完整性(referential integrity)n3用户定义的完整性(user-defined integrity)关系模型应提供定义和检验这类完整性的机制。不应由应用程序承担。参照完整性(referential integrity)n定义2.5 设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基于关系S的主码Ks相对应,则称F是基本关系的外码(foreign key),

31、并称基本关系R为参照关系(referencing relation),基本关系S为被参照关系(referenced relation)或目标关系(target relation)。关系R和S不一定是不同的关系。n规则2.2 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R、S不一定是不同的关系),则对于R中的每个元组在F上值必须为:n或者取空值(F的每个属性值均为空值)。n或者等于S中某个元组的主码值。示例参照完整性示例SnoSnameSsexSageSdept99101张三男20CS99103李四男19CS98102王五女19ISSdeptS

32、locSnameCS曹光标大楼计算机科学IS竺可桢大楼信息科学MA华罗庚大楼数学主码外码,不是Student的主码,但是Department的主码。Student中Sdept中的值都取自Department表中相应Sdept的值。指定外码时,列名不一定要求相同。StudentDepartment24关系代数n约定n241传统的集合运算 n242专门的关系 约定n1)设关系模式为R(A1,A2,An),它的一关系设为R,tR表示t是R一个元组。tAi则表示元组t中相应于属性Ai的一个分量。n2)若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列,

33、或域列。则表示A1,A2,An中 去 掉 Ai 1,Ai 2,Ai k 后 剩 余 的 属 性 组。tA=(tAi1,tAi2,tAik)表示元组在属性列A上诸分量的集合。n3)R为n目关系,S为m目关系。trR,tsS,称为元组的连接(concatenation)。它是一个(n+m)列的元组trts。前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。n4)给定一个关系R(X,Z),X和Z为属性组。定义当tX=x时,x在R中的象集(image set)为:nZx=tZ|tR,tX=xn它表示R中属性组X上值为x的诸元组在Z上分量的集合。srtt专门的关系运算n1、选择n2、投影n3、

34、连接n4、自然连接n5、除传统的集合运算 n1并(union)RS=t|tRtS R,S为同类关系(关系的度相同,且相应属性都来自相同的域),并的结果与R,S也是同类关系。n2差(difference)StRt|tStRt|tS-RR,S为同类关系,差的结果与R,S也是同类关系。RSRS传统的集合运算 3交(intersection)RS=t|tRtS=R-(R-S)R,S为同类关系,交的结果也是R,S的同类的关系。4广义笛卡尔积(extended cartesian product)RS=trts|trRtsSR,S具有相同属性组(相应属性来自相同的域,如R(Z,X),S(Y,Z),其中Z为

35、相同的属性组。)结果不为同类关系。RSRSR S17181选择n1选择(选取,selection),又称为限制(restriction)。语句表示:Select 关系名 Where 条件 Giving 结果 公式表示:RF或F(R)=t|tRF(t)=True F是布尔函数,即限定条件。其含义是,R中使布尔函数为真的元组集。F的基本形式为:x-1 y1 x2 y2。为比较运算符,包括、等。xi,yi等是属性名或常量,或是简单函数,属性名也可用它的序号来代替。表示逻辑运算符,如、等。说明:选择对关系而言,是从行的角度取关系的子集。例:5=IS(Student)(注:此处数字5表示关系Studen

36、t中的第5列,在此即为Sdept。由此,可以看出,对关系列的引用除了可以通过列名进行,还可以通过列所在的序号进行引用),Sage20(Student),Student5=IS,StudentSage20192120RF(R)F:X202投影n2投影(projection)语句表示:Project 关系名 Over 属性1,属性2,属性m Giving 结果 公式表示:RA或A(R)=tA|tR 说明:投影之后,不仅取消了原关系中的某些列(变成了新的关系,要给予新的关系名),而且还可能取消某些元组(因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行)。例:Sname,Sdept(S

37、tudent),2,5(Student),StudentSname,Sdept,Student2,5abcdef取a,c,d,fA=(a,c,d,f)acdfRA(R)3连接n3连接(join)语句表示:Join 关系1 And 关系2 Where 条件 Giving 结果 公式表示:RFS或RFS=trts|trRtsSF(tr,ts)=True),(|TruettFStRtttSFRSRsrsrsrF或|BtAtStRtttSFRSRsrsrsrBA或或表示为:其含义是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。1518192120RtrA182316StsBtrA=tsB1923

38、2123182318182023151815231516RS A=B3连接最重要的、最常用的连接为等值连接(equi-join)和自然连接(Natural join)。等值连接中的即为“=”。而自然连接则是特殊的等值连接。它要求A和B必须是相同属性组,且结果中去掉了重复的属性(是否可以认为A和B中只能保留其中一组属性组,然而在事实上,并不知道这些属性到底是取自A,还是取自B)。从某种意义上说,连接与投影是相反的操作,即投影是减少属性,而连接是增加属性。例:有R(A1,A2,A3),S(A4,A5)其中A3和A5是相同属性。则有SRAA531618181620R18231618 1818 181

39、6S16A3A5RS A3=A5A3与A5合二为一4自然连接 n4自然连接(Natural join)语句表示:Join 关系1 And 关系2 Over属性 Giving 结果 公式表示:R*S=trtsZ|Z=XAYtrRtsS 其中R(X,A),S(Y,A)。A为公共属性(重复)例:Student*Department,S*SP1618181620R18231618 1818 1816S16A3A5RS A3=A5A3与A5合二为一n5除(division)语句表示:Divide 关系1 By 关系2 Over 属性 Giving 结果 公式表示:说明:Yx=y|trRy=trYx=tr

40、X。Yx为x在R中的象集x=trX(即Yx为属性X取值x)时,相应的Y值的集合。因此,RS是由关系R在X上分量x的集合,且这些分量x在R中的象集(即X取x值时,相应Y的值的集合)应包含集合SY(S在Y上的投影)。其中R(X,Y),S(Y,Z)。与前面各种关系运算不同的是,在除当中首次出现了关于集与前面各种关系运算不同的是,在除当中首次出现了关于集合的比较。合的比较。5除)(|SYRtXtSRYxrr除的示例 例:有关系R和S的集合如下所示。求RS。分析:X=SNO,Y=CNO,Z=。RS=850601,850603其实际意义是,求至少同时选修了C501,C504课程的学生学号。对于此题而言,关

41、系R是已知实际存在的,而关系S是临时根据问题形成的。也可以表示成SNO,CNO(SC)K。其中R=SNO,CNO(SC),S=K。关系R学号SNO课号CNO8750601C5018750601C5028750601C5048750602C5018750602C5028750602C5038750603C5018750603C5048750604C5028750605C504关系SCNOC501C504X取x值象集YXSY850601C501,C502,C504C501,C504850602C501,C502,C503C501,C504850603C501,C504C501,C504850604

42、C502C501,C504850605C504C501,C504实例 n例:查询选修了2号课程的学生的学号。Sno(Cno=2(SC)n例:查询至少选修了一门其直接先行课为6号课程的学生姓名。Sname(Cpno=6(Course)SCSno,Sname(Student)或 Sname(Sno(Cpno=6(Course)SC)Sno,Sname(Student)n例:查询选修了全部课程的学生学号和姓名。Sno,Cno(SC)Cno(Course)Sno,Sname(Student)Student(Sno,Sname,Ssex,Sage,Sdept)Course(Cno,Cname,Cpno,

43、Ccredit)SC(Sno,Cno,Grade)与Cno集合有关CnoSnoCpnoSnameCno实例n例:找出提供零件P6的供应商号。(SCP#=P6)S#语句表示:Select SP Where P#=P6 Giving T1 Project T1 Over S#Giving T2S(S#,SNAME,SCITY)P(P#,PNAME,COLOR,WEIGHT)SP(S#,P#,QTY)P#=P3S#实例n例:求至少供应了一种蓝色(blue)零件的供应商姓名。(PCOLOR=Blue*SPS#,P#)S#*SS#,SNAME)SNAME 语句表示:Select P Where COLO

44、R=Blue Giving T1 Project SP Over S#,P#Giving T2 Join T1 And T2 Over P#Giving T3 Project T3 Over S#Giving T4 Project S Over S#,SNAME Giving T5 Join T4 And T5 Over Giving T6 Project T6 Over SNAME Giving T7COLOR=BlueSNAME实例n例:求供应所有零件的供应商所在城市。(SPS#,P#PP#*SS#,CITY)CITY Project SP Over S#,P#Giving T1 Proj

45、ect P Over P#Giving T2 Divide T1 By T2 Over P#Giving T3 Project S Over S#,CITY Giving T4 Join T3 And T4 Over S#Giving T5 Project T5 Over CITY Giving T6P#,与集合操作有关SCITY25关系演算n251元组关系演算语言ALPHA n252QUEL语言介绍 n253域关系演算QBE(Query By Example)251元组关系演算语言ALPHAn1检索n2更新操作Kruth的论文中,最早利用谓词演算(predicate calculus)作为查

46、询语言的基础。E.F.Codd则是最早将谓词演算用于关系数据语言,即关系演算(Relation Calculus,使用的是一阶谓词演算first order)。他提出了DSL ALPHA,但没有真正实现。ALPHA的主要语句有:GET,PUT,HOLD,UPDATE,DELETE,DROP。其语句的基本格式为:操作语句 工作空间名(表达式):操作条件其中表达式可以是关系名,也可以是属性名,也可以是他们的组合。操作条件则可以空,表示所有。检索n1)简单检索n2)限定条件的检索 n3)带排序的检索 n4)带定额的检索:指定检索出元组的个数 n5)使用元组变量的检索 n6)使用存在量词的检索 n7)

47、带有多个关系的表达式的检索(多表检索)n8)使用全称量词的检索 n9)同时使用两种量词的检索 n10)使用蕴含(Implication)的检索n11)使用集函数(aggregation function)的检索1)简单检索n简单检索就是不带条件检索,使用GET语句。n例:查询所有被选修课程的课程号码。GET W(SC.CNO)n例:查询所有学生的数据。GET W(Student)2)限定条件的检索 n例:查询信息系(IS)中年龄小于20岁的学生的学号和年龄。GET W(Student.Sno,Student.Sage):Student.Sdept=IS Student.Sage203)带排序的

48、检索 n例:查询计算机科学系(CS)学生的学号、年龄,并按照年龄降序排列。GET W(Student.Sno,Student.Sage):Student.Sdept=CS DOWN Student.Sage4)带定额的检索n例:取出一个信息系学生的学号。GET W(1)(Student.Sno):Student.Sdept=ISn例:查询信息系年龄最大的3个学生的学号及其年龄。GET W(3)(Student.Sno,Student.Sage):Student.Sdept=IS DOWN Student.Sage5)使用元组变量的检索n例:查询信息系学生的名字。RANGE Student X

49、GET W(X.Sname):X.Sdept=IS因其在某一关系范围内变化,故又称范围变量(range variable)。它有两个用途,一是简化关系名(用较短名字的元组变量代替较长名字的关系名),另一是操作条件中使用量词时需要。元组变量是一动态概念,而且一个关系中可以设置多个元组变量。6)使用存在量词的检索n例:查询选修2号课程和学生名字。RANGE SCX)2X.Cno oStudent.SnX(X.Sno:name)(Student.S W GETl例:查询选修了其直接先行课是6号课程的学生学号。-RANGE Course CX)6CX.Cpno SC.CnoX(CX.Cno:(SC.S

50、no)W GETC续6)n例:查询至少选修了一门其先行课程为6号课程的学生名字。RANGE Course CX SC SCX变换为前束范式(Prenex normal form):)6CX.Cpno SC.CnoCX(CX.Cno oStudent.SnoSCX(SCX.Sn:name)(Student.S W GET)6CX.Cpno SC.CnoCX.Cno oStudent.SnCX(SCX.SnoSCX:name)(Student.S W GET7)带有多个关系的表达式的检索n例:查询成绩为90分以上的学生名字与课程名字。注:这里学生名字来自Student关系Sname列,课程名字则来

51、自Course关系的Cname列。RANGE SC SCXSCX.Cno)Course.Cno oStudent.SnSCX.Sno 90adeSCX(SCX.Gr:me)Course.Cnaname,(Student.S W GETn例:查询不选1号课程的学生名字。RANGE Course CX可以改为使用存在量词的形式:此例说明,从某种角度上说,全称量词可以由存在量词来代替。8)使用全称量词的检索)1SCX.Cno oStudent.SnoSCX(SCX.Sn:name)(Student.S W GET)1SCX.Cno oStudent.SnoSCX(SCX.Sn:name)(Stude

52、nt.S W GET9)同时使用两种量词的检索n例:查询选修了全部课程的学生姓名。RANGE Course CX SC SCXCX.Cno)SCX.Cno oStudent.SnoSCX(SCX.SnCX:name)(Student.S W GET10)使用蕴含的检索pqpqn例:查询最少选修了95002学生所选课程的学生的学号。思路:对Course中的所有课程,依次检查每一门课程,看95002是否选修了。如果选修了,则再看学生是否也选修了该门课,如果95002所选的课,该学生也都选了(注:这里的蕴含需要用到关于课程的全称量词),则该学生为满足要求的学生。RANGECourse CX SC S

53、CX SC SCYv注:其中SCX用于描述学生95002的选修情形,SCY用于描述其他学生的选修情形。CX.Cno)SCY.Cno oStudent.SnoSCY(SCY.Sn CX.CnoSCX.Cno 95002oSCX(SCX.SnCX(:no)(Student.S W GET11)使用集函数的检索n例:查询学生所在系的数目。GET W(COUNT(Student.Sdept)v函数会自动排除重复的Sdept值。在有些系统中可能会提供两种不同的计数函数,一种是不计算重复值的计数函数,就象这里使用的;另一种则是计算重复值的计数函数,以便用于特定的目的。n例:查询信息系学生的平均年龄。GET

54、 W(AVG(Student.Sage):Student.Sdept=IS)v注意:括号位置的不同,可能对函数有不同的影响集函数(aggregation function),或称内部函数(build-in function),是在使用查询语言时,为方便用户进行简单的计算而提供的函数。一般有:函数名功能COUNT对元组计数TOTAL求总和MAX求最大值MIN求最小值AVG求平均值更新操作n1)修改 一般只针对非主码值,如果要修改主码值,则需要结合其它操作进行,如:n2)插入n3)删除 删除时,由于关系之间的参照性,可能导致级联删除。1)修改,用UPDATE实现n用HOLD语句将要修改的元组从数据

55、库中读到工作空间中。n用宿主语言修改工作空间中元组的属性。n用UPDATE语句将修改后的元组送回数据库中。对ALPHA而言,不允许对主码进行修改,对主码的修改实际是通过先删除,再插入新值来完成的。而且,对值的修改并不直接由UPDATE语句实现。HOLD是带并发控制的GET语句。n例:95007学生从计算机系转到信息系。HOLD W(Student.Sno,Student.Sdept):Student.Sno=95007 MOVE IS TO W.Sdept UPDATE W2)插入,用PUT语句实现n用宿主语言在工作空间中建立新元组。n用PUT语句把该元组存入指定的关系中。n例:学校新开设一门

56、2学分课程“计算机组织与结构”,课程号为8,直接先行课为6号课程。MOVE 8 TO W.Cno MOE 计算机组织与结构 TO W.Cname MOVE 6 TO W.Cpno MOVE 2 TO W.CCredit PUT W(Course)3)删除,用DELETE语句实现n用HOLD语句把要删除的元组从数据库读到工作空间中。n用DELETE语句删除该元组。n例:95110学生因故退学,删除该学生元组。HOLD W(Student):Student.Sno=95110 DELETE W修改主码值n例:将学号95001改为95102 HOLD W(Student):Student.Sno=9

57、5001 DELETE W MOVE 95102 TO W.Sno MOVE 李四 TO W.Sname MOVE 男 TO W.Ssex MOVE 20 TO W.Sage MOVE CS TO W.Sdept PUT W(Student)级联删除n例:删除全部学生。HOLD W(Student)DELETE Wv由于SC关系与Student关系之间具有参照关系。为保证参照完整性,删除Student关系中的全部元组的操作将导致DBMS自动执行删除SC关系中全部元组的操作:HOLD W(SC)DELETE W252QUEL语言介绍INGRES使用的QUEL(Query Language)是在此

58、基础上研制出来的,与ALPHA十分类似。1.说明2.检索3.更新说明1)元组变量说明语句:range of 元组变量 is 关系名n例:range of spx is SP即定义了元组变量spx的变化范围是关系SP。对属性的访问须以t.A形式进行(t是元组变量,A是属性)n2)关系演算公式一阶谓词演算(first order predicate calculus)演算公式由下列部分组成:l t.A。t表示关系R的元组变量,A是R的单个属性。t.A表示元组t在属性A上的分量。l x y形式的条件。是比较运算符(=、!=、=中的任一个)。x、y中至少有一个是t.A的形式,另一个可以是t.A的形式,

59、也可以是常量。nl 根据下列规则确定的公式:nF1、每个条件x y是一个演算公式。nF2、如果f是演算公式,则(f)和not(f)也是演算公式。nF3、如果f和g是演算公式,则f and g及f or g也是演算公式。nF4、如果f、g都是公式,则t(f)、t(f)也是公式。nF5、不存在其它的形式。这说明,元组关系演算公式是t.A形式的简单式子经有限次算术比较运算和逻辑运算及量词(、)复合而成的公式。nt称为存在量词,表示“存在一个t”。nt(f)表示“存在一个元组t,使公式f为真,则t(f)也为真”。nt为全称量词,表示“对所有的t”。nt(f)表示“对所有的t,公式f均为真,则t(f)也

60、为真”。n例:spx(spx.S#=sx.S#and spx.P#=P2)表示“存在有关系SP的元组,其P#的值等于P2”。n而px(px.COLOR=red)表示“对所有的关系P,元组px,其COLOR是red。”n在QUEL中,存在量词、全称量词均隐含表示,被省略掉了。这是容易理解的。一方面存在量词几乎在所有多表操作时都要出现,另一方面,全称量词通常可以由存在量词来替代表示。说明(续)检索格式:retrieve(结果表)where 演算公式其中“结果表”为一系列要检索的属性值,以t.A形式表示。n1)简单检索n2)带条件的检索(限定检索)n3)多表检索n4)聚集函数(集函数,aggrega

61、tion function)n5)排序简单检索n例:找出所有供应商的名字。range of t is S retrieve(t.SNAME)n例:找出有关零件的所有数据(打印整个表格)range of px is P retrieve(px.all)其中的all为特殊字汇,表示检索由元组变量指定的关系中所有的列。限定检索n例:求红色(Red)零件的零件号及零件名字。range of py is P r e t r i e v e (p y.P#,p y.P N A M E)w h e r e py.COLOR=”Red”可以指定结果属性的名称,如:retrieve(Pno=py.P#,Pn=p

62、y.PNAME)where py.COLOR=”Red”Pno和Pn为指定属性名,在显示结果时作为属性名显示。n例:求颜色为绿色(Green)且重量大于17的零件号。range of px is P retrieve(px.P#)where px.COLOR=”Green”and px.WEIGHT=”17”多表检索n例:求供应P2零件的供应商名字。range of spx is SP range of sx is S retrieve(sx.SNAME)where sx.S#=spx.S#and spx.p#=P2其中sx.S#=spx.S#为连接条件,S#为连接属性(共同属性)。n例:求供

63、应红色零件的供应商名字。range of sx is S range of px is P range of spx is SP retrieve(sx.SNAME)where sx.S#=spx.S#and px.P#=spx.P#列and px.COLOR=”Red”n例:求至少供应了供应商S2所供应零件的供应商名字。range of spx is SP range of spy is SP range of sx is S retrieve(sx.SNAME)where sx.S#=spx.S#and spx.P#=spy.P#and spy.S#=”S2”其中spx.P#=spy.P#

64、实际是要判断spx是否包括spy。而spy.S#=”S2”则表示SP中供应了S2的元组。使用集函数聚集操作是指对关系中所有元组在某属性分量进行某种统计,如求和、求平均值等,以得出一个数值,用以表示关系中某些属性的整体特征。QUEL中有:count对元组中元组计数countu对元组中无重复元素计数sum对元组元素求和avg对元组元素求平均值max对元组元素求最大值min对元组元素求最小值示例集函数使用示例n例:求巴黎(Paris)城市供应商的数目。range of e is S retrieve(number=count(e.S#where e.CITY=”Paris”)在执行聚集运算时须指定一

65、名字(如此处的number),将count(e.S#)赋给number。在聚集函数中可以包含where子名来限制计算中用到的值。此处的限制是只对城市名为“Paris”的城市进行计数。不能写成:retrieve(number=count(e.S#)where e.CITY=”Paris”如果这样,where子句对count函数就不起作用了。n例:求供应商所在城市数目。range of t is S retrieve(citynum=countu(t.CITY)n例:求供应商S1供应的零件总数。range of spx is SP retrieve(Partnum=sum(spx.QTY wher

66、e spx.s#=”S1”)排序使用sort by子句。n例:找出零件号和零件重量,并要求按零件重量升序(从小到大的顺序)排列这些元组。range of e is P retrieve(e.P#,e.WEIGHT)sort by WEIGHT:ascendingn例:找出供应商供应的零件号及数量,要求按零件号降序排列。range of spx is SP retrieve(spx.P#,spx.QTY)sort by P#:descending更新n1)插入(append)例:在关系S中插入元组(“S4”,”John”,”20”,”London”)append to S(S#=”S4”,SNAME=”John”,STATUS=”20”,CITY=”London”)n2)删除(delete)例:删除供应商S1供应的红色零件。range of spx is SP range of px is P delete spx where spx.P#=px.P#and px.COLOR=”Red”and spx.S#=”S1”n3)修改(replace)例:将供应商S2供应的P2零件数量修改为20

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!