




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章数据库概论
本章的重要概念(一)(1)DB、DBMS和DBS的定义(2)数据管理技术的发展阶段
人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库技术阶段等各阶段的特点。(3)数据描述
概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:1,1:N,M:N)。
本章的重要概念(二)(4)数据模型
数据模型的定义,两类数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。(5)DB的体系结构
三级结构,两级映象,两级数据独立性,体系结构各个层次中记录的联系。(6)DBMSDBMS的工作模式、主要功能和模块组成。(7)DBS DBS的组成,DBA,DBS的全局结构,DBS结构的分类。
前言
从20世纪50年代中期开始,计算机的应用由科学研究部门逐渐扩展到企业、行政部门。至60年代,数据处理已成为计算机的主要应用。在60年代末,数据库技术作为数据处理中的一门新技术发展起来的。经过30多年的发展,数据库技术已是计算机软件领域的一个重要分支,形成了较为完整的理论体系和实用技术。本章先回顾数据管理技术的发展过程,然后介绍数据库中的基本概念,以使读者对数据库的概貌有所了解。1.1引言1963年,美国Honeywell公司的IDS(IntegratedDataStore)系统投入运行,揭开了数据库技术的序幕。20世纪70年代是数据库蓬勃发展的年代,网状系统和层次系统占据了整个数据库商用市场,而关系系统仅处于实验阶段。20世纪80年代,关系系统由于使用简便以及硬件性能的改善,逐步代替网状系统和层次系统占领了市场。20世纪90年代,关系数据库已成为数据库技术的主流。进入21世纪以后,无论是市场的需求还是技术条件的成熟,对象数据库技术、网络数据库技术的推广和普及已成定局。1.1.1数据和信息数据是数据库系统研究和处理的对象。数据与信息十分不开的,它们既有联系又有区别。所谓数据,通常指用符号记录下来的、可以识别的信息。信息与数据之间存在着固有的联系:数据是信息的符号表示或称为载体;信息则是数据的内涵,是对数据语义的解释。1.1.2数据处理与数据管理数据处理是指从某些已知的数据出发,推导加工出一些新的数据,这些新的数据又表示了新的信息。数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。数据处理是与数据管理相联系的,数据管理技术的优劣,将直接影响数据处理的效率。1.1.3数据库技术的基本术语(一)定义1.1数据库(Database,简记为DB)DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。DB能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性等特点。1.1.3数据库技术的基本术语(二)定义1.2数据库管理系统(DatabaseManagementSystem,简记为DBMS)DBMS是位于用户与操作系统(OS)之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。DBMSOSDB
用户1.1.3数据库技术的基本术语(三)定义1.3数据库系统(DatabaseSystem,简记为DBS)
DBS是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。定义1.4数据库技术是研究数据库的结构、存储、设计、管理和使用的一门软件学科。1.2数据库的由来和发展磁盘容量的发展数据管理技术的发展经历了人工管理、文件系统、数据库阶段和高级数据库阶段。时间(年)19561965197119781981198519952003容量(MB/轴)53010060012005000100001800001.2.1人工管理阶段在人工管理阶段(20世纪50年代中期以前),计算机主要用于科学计算,其他工作还没有展开。外部存储器只有磁带、卡片和纸带等,还没有磁盘等字节存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理的方式基本上是批处理。人工管理阶段的数据管理有下列特点:
数据不保存在计算机内。没有专用的软件对数据进行管理。只有程序(program)的概念,没有文件(file)的概念。数据的组织方式必须由程序员自行设计与安排。数据面向程序。即一组数据对应一个程序。1.2.2文件系统阶段(一)在这一阶段(20世纪50年代后期至60年代中期),计算机不仅用于科学计算,还用于信息管理。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取存储设备。软件领域出现了高级语言和操作系统。操作系统中的文件系统是专门管理外存的数据管理软件。数据处理的方式有批处理,也有联机实时处理。1.2.2文件系统阶段(二)文件系统阶段的数据管理有以下特点:数据以“文件”形式可长期保存在外部存储器的磁盘上。数据的逻辑结构与物理结构有了区别,但比较简单。文件组织已多样化。有索引文件、链接文件和直接存取文件等。数据不再属于某个特定的程序,可以重复使用,即数据面向应用。对数据的操作以记录为单位。随着数据管理规模的扩大,数据量急剧增加,文件系统显露出三个缺陷:数据冗余(redundancy)数据不一致(inconsistency)数据联系弱(poordatarelationship)1.2.3数据库阶段(一)数据管理技术进入数据库阶段的标志是20世纪60年代末的三件大事:
1968年美国IBM公司推出层次模型的IMS系统。1969年美国CODASYL组织发布了DBTG报告,总结了当时各式各样的数据库,提出网状模型。1970年美国IBM公司的E.F.Codd连续发表论文,提出关系模型,奠定了关系数据库的理论基础。1.2.3数据库阶段(二)数据库阶段的数据管理具有以下特点:采用数据模型表示复杂的数据结构。有较高的数据独立性。数据库系统为用户提供了方便的用户接口。数据库系统提供以下四方面的数据控制功能:数据库的并发控制,数据库的恢复,数据的完整性和数据安全性。增加了系统的灵活性1.2.3数据库阶段(三)数据库系统的结构1.2.3数据库阶段(四)程序和数据间的联系
文件系统阶段信息处理的传统方式1.2.3数据库阶段(五)数据库阶段信息处理方式的演变
1.2.4高级数据库技术阶段(一)分布式数据库系统主要有下面三个特点数据库的数据物理上分布在各个场地,但逻辑上是一个整体。每个场地既可以执行局部应用(访问本地DB),也可以执行全局应用(访问异地DB)。各地的计算机由数据通信网络相联系。本地计算机单独不能胜任的处理任务,可以通过通信网络取得其它DB和计算机的支持。1.2.4高级数据库技术阶段(二)分布式数据库系统1.2.4高级数据库技术阶段(三)对象数据库系统主要有以下两个特点
对象数据模型能完整地描述现实世界地数据结构,能表达数据间嵌套、递归的联系。具有面向对象技术的封装性(把数据与操作定义在一起)和继承性(继承数据结构和操作)的特点,提高了软件的可重用性。网络数据库系统
1.3数据描述
在数据处理中,数据描述将涉及到不同的范畴。从事物的特性到计算机中的具体表示,实际上经历了三个阶段——概念设计中的数据描述、逻辑设计中的数据描述和物理设计中的数据描述。本节先介绍这三个阶段的数据描述,再介绍数据之间联系如何描述。1.3.1概念设计中的数据描述实体(entity):客观存在,可以相互区别的事物称为实体。实体集(entityset):性质相同的同类实体的集合,称为实体集。属性(attribute):实体有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。实体标识符(identifier):能惟一标识实体的属性或属性集,称为实体标识符。有时也称为关键码(key),或简称为键。1.3.2逻辑设计中的数据描述(一)字段(field):标记实体属性的命名单位称为字段,或数据项。它是可以命名的最小信息单位,所以又称为数据元素或初等项。记录(record):字段的有序集合称为记录。文件(file):同一类记录的集合称为文件。关键码(key):能惟一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键)。1.3.2逻辑设计中的数据描述(二)术语的对应关系
概念设计逻辑设计
实体………记录
属性………字段(数据项)
实体集………文件
实体标识符………关键码1.3.3物理设计中的数据描述位(bit,比特):一个二进制位称为“位”。一位只能取0或1两个状态。字节(byte):8个比特称为一个字节,可以存放一个字符所对应的ASCII码。字(word):若干个字节组成一个字。一个字所含的二进制位的位数称为字长。块(block):又称为物理块或物理记录。块是内存和外存交换信息的最小单位,每块的大小,通常为210~214字节。桶(bucket):外存的逻辑单位,一个桶可以包含一个物理块或多个在空间上不一定连续的物理块。卷(volume):一个输入输出设备所能装载的全部有用信息,称为“卷”。1.3.4数据联系的描述(一)定义1.5联系(relationship)是实体之间的相互关系。与一个联系有关的实体集个数,称为联系的元数。定义1.6二元联系有以下三种类型:一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。多对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。
1.3.4数据联系的描述(一)例1.1
图1.8一对一联系图1.9一对多联系1.3.4数据联系的描述(一)例1.1图1.10多对多联系1.3.4数据联系的描述(二)例1.2
图1.11三元联系图1.12一元联系1.4数据模型的定义定义1.7数据模型的简单定义:能表示实体类型及实体间联系的模型称为“数据模型”。概念数据模型和逻辑数据模型。定义1.8逻辑数据模型应包含数据结构、数据操作和数据完整性约束三个部分:数据结构是指对实体类型和实体间联系的表达和实现;数据操作是指对数据库的检索和更新(包括插入、删除和修改)两类操作;数据完整性约束给出数据及其联系应具有的制约和依赖规则。1.4.2实体联系模型(一)定义1.9,ER图有三个基本成分:矩形框,用于表示实体类型(考虑问题的对象)。菱形框,用于表示联系类型(实体间联系)。椭圆形框,用于表示实体类型和联系类型的属性。1.4.2实体联系模型(二)例1.3首先确定实体类型。本问题有三个实体类型:零件PART,工程项目PROJECT,零件供应商SUPPLIER。确定联系类型。PROJECT和PART之间是M:N联系,PART和SUPPLIER之间也是M:N联系,分别命名为P_P和P_S.把实体类型和联系类型组合成ER图。确定实体类型和联系类型的属性。确定实体类型的键,在ER图中属于码的属性名下画一条横线。1.4.2实体联系模型(三)
图1.14
图1.14ER图实例1.4.2实体联系模型(四)例1.4MMNN
PROJECT
SUPPLIER
PART
P_P_S
PART
SUBPART
P图1.15三元联系图1.16一元联系1.4.3层次模型用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(HierarchicalModel)。层次模型的特点是记录之间的联系通过指针来实现,查询效率较高。与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由DBMS完成。层次模型有两个缺点:一是只能表示1:N联系,虽然系统有多种辅助手段实现M:N联系但较复杂,用户不易掌握;二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。1.4.4网状模型用有向图结构表示实体类型及实体间联系的数据模型称为网状模型(networkmodel)。网状模型的特点是记录之间联系通过指针实现,M:N联系也容易实现(一个M:N联系可拆成两个1:N联系),查询效率较高。网状模型的缺点是数据结构复杂和编程复杂。1.4.5关系模型(一)关系模型(RelationalModel)的主要特征是用二维表格表达实体集。与前两种模型相比,数据结构简单,容易为初学者理解。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。1.4.5关系模型(二)例1.7图1.21关系模型的例子PART模式 (P#,PNAME,COLOR,WEIGHT)PROJECT模式 (J#,JNAME,DATE)SUPPLIER模式 (S#,SNAME,SADDR)P_P模式 (J#,P#,TOTAL)P_S模式 (P#,S#,QUANTITY)1.4.5关系模型(三)100S2P4BEIJINGFADCS2300S2P3SHANGHAIPICCS1150S1P2SADDRSNAMES#200S2P2SUPPLIER关系100S1P191-3JCJ3QUANTITYS#P#90.5JBJ2P_S关系89.1JAJ118P3J1DATEJNAMEJ#25P3J2PROJECT关系65P2J119REDSCREWP46P3J312REDNUTP315P2J217GREENBOLTP250P1J114BLUESCREWP1TOTALP#J#WEIGHTCOLORPNAMEP#P_P关系PART关系100S2P4BEIJINGFADCS2300S2P3SHANGHAIPICCS1150S1P2SADDRSNAMES#200S2P2SUPPLIER关系100S1P191-3JCJ3QUANTITYS#P#90.5JBJ2P_S关系89.1JAJ118P3J1DATEJNAMEJ#25P3J2PROJECT关系65P2J119REDSCREWP46P3J312REDNUTP315P2J217GREENBOLTP250P1J114BLUESCREWP1TOTALP#J#WEIGHTCOLORPNAMEP#P_P关系PART关系1.4.6对象模型(一)对象(object)是现实世界中实体的模型化,与实体概念相仿,但远比实体复杂。将属性集和方法集相同的所有对象组合在一起,构成了一个类(class)。1.4.6对象模型(二)层次模型网状模型关系模型面向对象模型创始1968年IBM公司的IMS系统1969年CODASYL的DBTG报告(71年通过)1970年F.Codd提出关系模型20世纪80年代数据结构复杂(树结构)复杂(有向图结构)简单(二维表)复杂(嵌套递归)数据联系通过指针通过指针通过表间的公共属性通过对象标识查询语言过程性语言过程性语言非过程性语言面向对象语言典型产品IMSIDS/ⅡIMAGE/3000IDMSTOTALOracleSybaseDB2SQLServerInformixONTOSDB盛行期20世纪70年代70年代至80年代中期80年代至现在90年代至现在图1.24四种逻辑数据模型的比较1.5.1数据库的三级体系结构(一)图1.25三级模式结构1.5.1数据库的三级体系结构(二)数据的三级抽象术语数据模型用数据定义语言描述的称呼DBTG报告中的称呼外部级外模型外模式子模式概念级概念模型概念模式模式内部级内模型内模式物理模式图1.26数据抽象的术语1.5.1数据库的三级体系结构(三)1.5.2体系结构中的五个要素定义1.10概念模式(conceptnalschema)是数据库中全部数据的整体逻辑结构的描述。定义1.11外模式(externalschema)是用户与数据库系统的接口,是用户用到的那部分数据的描述。定义1.12内模式(internalschema)是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。定义1.13模式/内模式映象存在于概念级和内部级之间,用于定义概念模式和内模式之间的对应性。定义1.14外模式/模式映象存在于外部级和概念级之间,用于定义外模式和概念模式之间的对应性。1.5.3两级数据独立性定义1.15数据独立性(dataindependence)是指应用程序和数据库的数据结构之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两个级别。1.5.4用户与用户界面定义1.16用户是指使用数据库的应用程序或联机终端用户。定义1.17用户界面是用户和数据库系统之间的一条分界线,在界限下面,用户是不可知的。用户界面定在外部级上,用户对于外模式是可知的。1.6.1DBMS的工作模式(一)接受应用程序的数据请求和处理请求将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令)实现对数据库的操作从对数据库的操作中接受查询结果对查询结果进行处理(格式转换)将处理结果返回给用户图1.29DBMS的工作模式1.6.1DBMS的工作模式(二)
用户访问数据的过程
图1.30用户访问数据的过程1.6.2DBMS的主要功能数据库的定义功能数据库的操纵功能数据库的保护功能数据库的维护功能数据字典1.6.3DBMS的模块组成查询处理器有四个主要成分:DDL编译器,DML编译器,嵌入式DML的预编译器及查询运行核心程序。存储管理器有四个主要成分:权限和完整性管理器,事务管理器,文件管理器及缓冲区管理器。1.7.1DBS的组成(一)DBS是采用了数据库技术的计算机系统。DBS是一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件、软件和数据库管理员的集合体。DB是与一个企业组织各项应用有关的全部数据的集合。定义1.18DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责任。1.7.1DBS的组成(二)DBA的主要职责有以下六点:定义模式定义内模式与用户的联络。包括定义外模式、应用程序的设计、提供技术培训等专业服务。定义安全性规则,对用户访问数据库的授权。定义完整性规则,监督数据库的运行。数据库的转储与恢复工作。1.7.2DBS的全局结构(一)图1.31DBS的全局结构1.7.2DBS的全局结构(二)数据库用户DBMS的查询处理器DBMS的存储管理器磁盘存储器中的数据结构1.7.3DBS结构的分类集中式DBS(centralizedDBS)客户机/服务器式DBS(client/serverDBS,记为C/SDBS)并行式DBS(parallelDBS)分布式DBS(distributedDBS)1.7.4DBS的效益灵活性简易性面向用户有效的数据控制加快应用系统的开发速度维护方便标准化小结(一)数据管理技术经历了人工管理、文件系统、数据库和高级数据库技术等四个阶段。数据库系统是在文件系统的基础上发展而成的,同时又克服了文件系统的三个缺陷:数据的冗余、不一致性和联系弱。在数据库领域,应该准确使用术语,深刻了解实体间1:1、1:N和M:M三种联系的意义。小结(二)数据模型是对现实世界进行抽象的工具,用于描述现实世界的数据、数据联系、数据语义和数据约束等方面内容。数据模型分成概念模型和结构模型两大类。前者的代表是实体联系模型,后者的代表是层次、网状、关系和面向对象模型。关系模型是当今的主流模型,面向对象模型是今后发展的方向。小结(三)数据库是存储在一起集中管理的相关数据的集合。数据库的体系结构是对数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只需抽象地处理逻辑数据,而不必关心数据在计算机中的存储,减轻了用户使用系统的负担。由于三级结构之间往往差别很大,存在着两级映象,因此使DBS具有较高的数据独立性:物理数据独立性和逻辑数据独立性。小结(四)数据独立性是指在某个层次上修改模式而不影响较高一层模式的能力。DBMS是位于用户与OS之间的一层数据管理软件。数据库语言分成DDL和DML两类。DBMS主要由查询处理器和存储管理器两大部分组成。DBS是包含DB和DBMS的计算机系统。DBS的全局结构体现了DBS的模块功能结构。
本章的重点篇幅
(1)教材P23的图1.24(四种逻辑数据模型的比较)。(2)教材P25的图1.27(DB的体系结构)。(3)教材P29的图1.29(DBMS的工作模式)。(4)教材P34的图1.31(DBS的全局结构)。
第2章关系模型和关系运算理论
本章重要概念(一)(1)基本概念 关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,ER模型到关系模型的转换规则,过程性语言与非过程性语言。(2)关系代数 五个基本操作,四个组合操作,七个扩充操作。
本章重要概念(二)(3)关系演算 元组关系演算和域关系演算的原子公式、公式的定义。关系演算的安全性和等价性。(4)关系代数表达式的优化 关系代数表达式的等价及等价转换规则,启化式优化算法。(5)关系逻辑 谓词、原子、规则和查询,规则的安全性,用规则模拟关系代数表达式。
本章概要本章先介绍关系模型的基本概念;然后介绍关系运算的三种理论:关系代数、关系演算和关系逻辑。
关系模型和关系运算理2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系代数表达式的优化2.5关系逻辑
2.1关系模型的基本概念
2.1.1基本术语
2.1.2关系的定义和性质2.1.3关系模型的三类完整性规则
2.1.4ER模型向关系模型的转换规则
2.1.5关系模型的三级体系结构
2.1.6关系模型的形式定义和优点
2.1.7关系查询语言和关系运算
返回基本术语(1)定义2.1用二维表格表示实体集,用关键码进行数据导航的数据模型称为关系模型(relationalModel)。这里数据导航(datanavigation)是指从已知数据查找未知数据的过程和方法。
图2.1职工登记表
基本术语(2)
在关系模型中,字段称为属性,字段值称为属性值,记录类型称为关系模式。在图2.2中,关系模式名是R。记录称为元组(tuple),元组的集合称为关系(relation)或实例(instance)。一般用大写字母A、B、C、…
表示单个属性,用大写字母…、X、Y、Z表示属性集,用小写字母表示属性值,有时也习惯称呼关系为表或表格,元组为行(row),属性为列(column)。关系中属性个数称为“元数”(arity),元组个数为“基数”(cardinality)。
基本术语(3)关系元数为5,基数为4
图2.2关系模型的术语
一般术语
关系模型术语字段、数据项 属性记录类型 关系模式记录1 元组1记录2 元组2记录3 元组3记录4 元组4字段值 属性值基本术语(4)
关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键。(1)超建(superKey)(2)候选键(candidateKey)(3)主键(primaryKey)在图2.1中,(工号,姓名)是模式的一个超键,但不是候选键,而(工号)是候选键。在实际使用中,如果选择(工号)作为删除或查找元组的标志,那么称(工号)是主键。(4)外键(foreignKey)返回关系的定义和性质
定义2.2关系是一个属性数目相同的元组的集合。
在关系模型中,对关系作了下列规范性限制:(1)关系中每一个属性值都是不可分解的;(2)关系中不允许出现重复元组(即不允许出现相同的元组);(3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序;(4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。返回关系模型的三类完整性规则(1)
实体完整性规则(entityintegrityrule)要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标织元组的作用。关系模型的三类完整性规则
(2)参照完整性规则(referenceintegrityrule)定义2.3参照完整性规则的形式定义如下:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。这条规则的实质是“不允许引用不存在的实体”。在上述形式定义中,关系模式R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。“主表”和“副表”,“父表”和“子表”。
关系模型的三类完整性规则
(3)例2.1下面各种情况说明了参照完整性规则在关系中如何实现的。①在关系数据库中有下列两个关系模式:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)这里带下划线者为主键,带波浪线者为外键。据规则要求关系SC中的S#值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。另外,在关系SC中S#不仅是外键,也是主键的一部分,因此这里S#值不允许空。关系模型的三类完整性规则
(4)②设工厂数据库中有两个关系模式:
DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D#)
车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。在EMP中,由于D#不在主键中,因此D#值允许空。关系模型的三类完整性规则
(5)③设课程之间有先修、后继联系。模式如下:
R(C#
,CNAME,PC#)
其属性表示课程号、课程名、先修课的课程号。如果规定,每门课程的直接先修课只有一门,那么模式R的主键是C#,外键是PC#.。这里参照完整性在一个模式中实现。即每门课程的直接先修课必须在关系中出现。
关系模型的三类完整性规则
(6)用户定义的完整性规则
在建立关系模式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在15~30岁之间:
CHECK(AGEBETWEEN15AND30)
返回ER模型向关系模型的转换规则
(1)ER模型向关系模型的转换,实际上就是把ER图转换成关系模式的集合。规则2.1(实体类型的转换):将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。规则2.2(二元联系类型的转换)①若实体间联系是1:1。②若实体间联系是1:N。③若实体间联系是M:N。ER模型向关系模型的转换规则
(2)图2.3一对一联系
ER模型向关系模型的转换规则
(3)图2.4一对多联系
ER模型向关系模型的转换规则
(4)图2.5多对多联系
返回关系模型的三级体系结构
--关系模式
在关系模型中,记录类型称为关系模式,而关系模式的集合就是数据库的概念模式。在系统实现时,关系模式和属性的命名一般都用英文单词。譬如图2.5的ER图转换成的关系模式集可用图2.6表示。而图2.7是这个关系模型的三个具体关系。
学生关系模式S(S#,SNAME,AGE,SEX)
选课关系模式SC(S#,C#,GRADE)
课程关系模式C(C#,CNAME,TEACHER)图2.6关系模式集关系模型的三级体系结构
--子模式
子模式是用户所用到的那部分数据的描述。除此之外,还应指出数据与关系模式中相应数据的联系。例如,用户需要用到子模式G(图2.8)。成绩子模式G(S#,SNAME,C#,GRADE)
图2.8子模式关系模型的三级体系结构
--存储模式
图2.10关系S和SC的环结构
在有些DBMS中,关系存储是作为文件看待的,每个元组就是一个记录。由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现。如果关系的元组数目较少(100个以内),那么也可以用“堆文件”方式实现(即没有特定的次序)。此外,还可对任意的属性集建立辅助索引。
关系模型的形式定义
关系模型有三个重要组成部分:数据结构,数据操纵,数据完整性规则。(1)数据结构:数据库中全部数据及其相互联系都被组织成“关系”(二维表格)的形式。关系模型基本的数据结构是关系。(2)数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数、关系演算和关系逻辑等三类。(3)数据完整性规则:数据库中数据必须满足实体完整性,参照完整性和用户定义的完整性等三类完整性规则。
关系模型的优点与其它数据模型相比,关系模型突出的优点如下:(1)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。(2)关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性。(3)关系模型使数据库的研究建立在比较坚实的数学基础上。(4)关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便。
返回关系查询语言和关系运算
关系数据库的数据操纵语言(DML)的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述用户进行插入、删除、修改等操作。关于查询的理论称为“关系运算理论”。关系查询语言根据其理论基础的不同分成三类:(1)关系代数语言。(2)关系演算语言。(3)关系逻辑语言。
返回2.2关系代数
2.2.1关系代数的五个基本操作
2.2.2关系代数的四个组合操作
2.2.3关系代数运算的应用实例
2.2.4关系代数的七个扩充操作
返回关系代数的五个基本操作
(1)
并(Union)设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R∪S。形式定义如下:R∪S≡{t|t∈R∨t∈S},t是元组变量,R和S的元数相同。差(Difference)设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。形式定义如下:R-S≡{t|t∈R∧t∈S},R和S的元数相同。关系代数的五个基本操作
(2)
投影(Projection)这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。设关系R是k元关系,R在其分量Ai1,…,Aim(m≤k,i1,…,im为1到k间的整数)上的投影用πi1,…,im(R)表示,它是一个m元元组集合,形式定义如下:πi1,…,im(R)≡{t|t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R}
例如,π3,1(R)表示关系R中取第1、3列,组成新的关系,新关系中第1列为R的第3列,新关系的第2列为R的第1列。如果R的每列标上属性名,那么操作符π的下标处也可以用属性名表示。例如,关系R(A,B,C),那么πC,A(R)与π3,1(R)是等价的。关系代数的五个基本操作
(3)
选择(Selection)选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。条件可用命题公式(即计算机语言中的条件表达式)F表示。F中有两种成分:关系R关于公式F的选择操作用σF(R)表示,形式定义如下:σF(R)={t|t∈R∧F(t)=true}σ为选择运算符,σF(R)表示从R中挑选满足公式F为真的元组所构成的关系。例如,σ2>ˊ3ˊ(R)表示从R中挑选第2个分量值大于3的元组所构成的关系。书写时,为了与属性序号区别起见,常量用引号括起来,而属性序号或属性名不要用引号括起来。(a)关系R(b)关系S
图2.12两个关系
关系代数的五个基本操作
(例)例2.3图2.12有两个关系R和S,图2.13的(a)、(b)表示R∪S和R-S。(c)表示R×S,此处R和S的属性名相同,就应在属性名前注上相应的关系名,例如R.A、S.A等。图2.13的(d)表示πC,A(R),即π3,1(R)。(e)表示σB=ˊbˊ(R)。关系代数的五个基本操作
(例)(a)R∪S (b)R-S (c)R×S (d)πC,A(R)(e)σB='b'(R)
图2.13关系代数操作的结果
返回关系代数的四个组合操作
(1)
交(intersection)关系R和S的交是由属于R又属于S的元组构成的集合,记为R∩S,这里要求R和S定义在相同的关系模式上。形式定义如下:R∩S≡{t︱t∈R∧t∈S},R和S的元数相同。由于R∩S=R-(R-S),或R∩S=S-(S-R),因此交操作不是一个独立的操作。在图2.12中,R∩S的结果是只有一个元组(d,a,f)。关系代数的四个组合操作
(2)连接(join)连接有两种:θ连接和F连接(这里θ是算术比较符,F是公式)。①θ连接
R⋈S≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧triθtsj}②F连接
F连接是从关系R和S的笛卡儿积中选取属性间满足某一公式F的元组,这里F是形为F1∧F2∧…∧Fn的公式,每个FP是形为iθj的式子,而i和j分别为关系R和S的第i、第j个分量的序号。
关系代数的四个组合操作
(3)
自然连接(naturaljoin)两个关系R和S的自然连接操作具体计算过程如下:①计算R×S;②设R和S的公共属性是A1,…,AK,挑选R×S中满足R.A1=S.A1,…,R.AK=S.AK
的那些元组;③去掉S.A1,…,S.AK这些列。定义:
πi1,…,im(σR.A1=S.A1∧...∧R.AK=S.AK(R×S)),其中i1,…,im为R和S的全部属性,但公共属性只出现一次。
关系代数的四个组合操作
(4)除法(division)设关系R和S的元数分别为r和s(设r>s>0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系:其中每个元组t与S中每个元组u组成的新元组<t,u>必在关系R中。R÷S≡π1,2,…,r-s(R)-π1,2,…,r-s((π1,2,…,r-s(R)×S)-R)
返回关系代数运算的应用实例
在关系代数运算中,把由五个基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关系。我们可以用关系代数表达式表示各种数据查询操作。例2.7返回关系代数的七个扩充操作
改名广义投影赋值外连接(outerjoin)外部并(outerunion)半连接(semijoin)聚集操作返回2.3关系演算
把数理逻辑的谓词演算引入到关系运算中,就可得到以关系演算为基础的运算。关系演算又可分为元组关系演算和域关系演算,前者以元组为变量,后者以属性(域)为变量。2.3.1元组关系演算
2.3.2域关系演算
2.3.3关系运算的安全约束和等价性返回元组关系演算
(1)
在元组关系演算(TupleRelationalCalculus)中,元组关系演算表达式简称为元组表达式,其一般形式为
{t|P(t)}
其中,t是元组变量,表示一个元数固定的元组;P是公式,在数理逻辑中也称为谓词,也就是计算机语言中的条件表达式。{t|P(t)}表示满足公式P的所有元组t的集合。元组关系演算
(2)在元组表达式中,公式由原子公式组成。定义2.4原子公式(Atoms)有下列三种形式:①R(s)②s[i]θu[j]③s[i]θa或aθu[j]。在定义关系演算操作时,要用到“自由”(Free)和“约束”(Bound)变量概念。在一个公式中,如果元组变量未用存在量词∃或全称量词
符号定义,那么称为自由元组变量,否则称为约束元组变量。
元组关系演算
(3)定义2.5公式(Formulas)的递归定义如下:①每个原子是一个公式。其中的元组变量是自由变量。②如果P1和P2是公式,那么┐P1、P1∨P2、P1∧P2和P1
P2也都是公式。③如果P1是公式,那么(
s)(P1)和(
s)(P1)也都是公式。④公式中各种运算符的优先级从高到低依次为:θ,
和
,┐,∧和∨,
。在公式外还可以加括号,以改变上述优先顺序。⑤公式只能由上述四种形式构成,除此之外构成的都不是公式。元组关系演算
(4)例2.16
图2.20的(a)、(b)是关系R和S,(c)~(g)分别是下面五个元组表达式的值
图2.20元组关系演算的例子
R1={t|S(t)∧t[1]>2}R2={t|R(t)∧┐S(t)}R3={t|(
u)(S(t)∧R(u)∧t[3]<u[2]}}R4={t|(
u)(R(t)∧S(u)∧t[3]>u[1])}R5={t|(
u)(
v)(R(u)∧S(v)∧u[1]>v[2]∧t[1]=u[2]∧t[2]=v[3]∧t[3]=u[1])}
元组关系演算
(5)
在元组关系演算的公式中,有下列三个等价的转换规则:①P1∧P2等价于┐(┐P1∨┐P2);
P1∨P2等价于┐(┐P1∧┐P2)。②(
s)(P1(s))等价于┐(
s)(┐P1(s));(
s)(P1(s))等价于┐(
s)(┐P1(s))。③P1
P2等价于┐P1∨P2。元组关系演算
(6)关系代数表达式到元组表达式的转换例2.17
R∪S可用{t|R(t)∨S(t)}表示;
R-S可用{t|R(t)∧┐S(t)}表示;
R×S可用{t|(
u)(
v)(R(u)∧S(V)∧t[1]=u[1]∧t[2]=u[2]∧t[3]=u[3]∧t[4]=v[1]∧t[5]=v[2]∧t[6]=v[3])}表示。设投影操作是π2,3(R),那么元组表达式可写成:{t|(
u)(R(u)∧t[l]=u[2]∧t[2]=u[3])}σF(R)可用{t|R(t)∧F'}表示,F'是F的等价表示形式。譬如σ2='d'(R)可写成{t|(R(t)∧t[2]='d')。
返回域关系演算
(1)原子公式有两种形式:⑴R(x1…xk);⑵xθy。公式中也可使用∧、∨、┐和
等逻辑运算符,(
x)和(
x),但变量x是域变量,不是元组变量。自由域变量、约束域变量等概念和元组演算中一样。域演算表达式是形为{t1…tk∣P(t1,…,tk)}的表达式,其中P(t1,…,tk)是关于自由域变量t1,…,tk的公式。域关系演算
(2)例2.20图2.21的(a)、(b)、(c)是三个关系R、S、W,(d)、(e)、(f)分别表示下面三个域表达式的值。(a)关系R (b)关系S (c)关系W (d)R1 (e)R2 (f)R3
图2.21域关系演算的例子
R1={xyz|R(xyz)∧x<5∧y>3}R2={xyz|R(xyz)∨(S(xyz)∧y=4)}R3={xyz|(
u)(
v)(R(zxu)∧w(yv)∧u>v)}域关系演算
(3)元组表达式到域表达式的转换我们可以很容易地把元组表达式转换成域表达式,转换规则如下:⑴对于k元的元组变量t,可引入k个域变量t1…tk,在公式中t用t1…tk替换,元组分量t[i]用ti替换。⑵
对于每个量词(
u)或(
u),若u是m元的元组变量,则引入m个新的域变量u1…um。在量词的辖域内,u用u1…um替换,u[i]用ui替换,(
u)用(
u1)…(
um)替换,(
u)用(
u1)…(
um)替换。
返回关系运算的安全约束和等价性
定义2.6在数据库技术中,不产生无限关系和无穷验证的运算称为安全运算,相应的表达式称为安全表达式,所采取的措施称为安全约束。并、差、笛尔卡积、投影和选择是关系代数最基本的操作,并构成了关系代数运算的最小完备集。已经证明,在这个基础上,关系代数、安全的元组关系演算、安全的域关系演算在关系的表达和操作能力上是完全等价的。
返回2.4关系代数表达式的优化
2.4.1关系代数表达式的优化问题
2.4.2关系代数表达式的等价变换规则
2.4.3关系代数表达式的优化算法
返回关系代数表达式的优化(1)在关系代数表达式中需要指出若干关系的操作步骤。那么,系统应该以什么样的操作顺序,才能做到既省时间,又省空间,而且效率也比较高呢?这个问题称为查询优化问题。在关系代数运算中,笛卡儿积和连接运算是最费时间的。关系代数表达式的优化(2)例2.23设关系R和S都是二元关系,属性名分别为A,B和C,D。设有一个查询可用关系代数表达式表示:
E1=πA(σB=C∧D='99'(R×S))也可以把选择条件D=‘99’移到笛卡儿积中的关系S前面:
E2=πA(σB=C(R×σD='99'(S))还可以把选择条件B=C与笛卡儿积结合成等值连接形式:
B=CE3=πA(RσD='99'(S))这三个关系代数表达式是等价的,但执行的效率大不一样。显然,求El,E2,E3的大部分时间是花在连接操作上的。
返回关系代数表达式的等价变换规则
(1)连接和笛卡儿积的交换律
连接和笛卡儿积的结合律
投影的级联
选择的级联
选择和投影操作的交换
选择对笛卡儿积的分配律
选择对并的分配律
图2.6关系模式集关系代数表达式的等价变换规则
(2)选择对集合差的分配律
选择对自然连接的分配律
投影对笛卡儿积的分配律
投影对并的分配律
选择与连接操作的结合
并和交的交换律
并和交的结合律
返回关系代数表达式的优化算法
(1)
在关系代数表达式中,最花费时间和空间的运算是笛卡儿积和连接操作,为此,引出三条启发式规则,用于对表达式进行转换,以减少中间关系的大小。·尽可能早地执行选择操作;·尽可能早地执行投影操作;
·避免直接做笛卡儿积,把笛卡儿积操作之前和之后的一连串选择和投影合并起来一起做。
关系代数表达式的优化算法
(2)算法2.1 关系代数表达式的启发式优化算法。输入:一个关系代数表达式的语法树输出:计算表达式的一个优化序列例2.24
返回2.5关系逻辑
(自学)2.5.1关系运算的成分
2.5.2规则的安全性
2.5.3从关系代数到关系逻辑的转换
2.5.4递归过程
2.5.5关系逻辑与关系代数的差异
小结在2.3.3节中提到关系代数和关系演算在表达功能上是等价的。那么关系代数和关系逻辑在表达功能上是否等价?已有文献证明,这两者之间相差甚大。在规则中没有否定时,关系代数与关系逻辑在表达功能方面已不相适应,每个都能表达另一个不能表达的内容。在规则中带有否定时,关系逻辑比关系代数更富于表现力。只有在规则被约束为安全的、非递归的、在带有某些否定的情况下,关系代数才与关系逻辑等价。由于关系逻辑中引进了基于逻辑的规则概念,使得关系逻辑比关系代数在模拟现实世界能力方面更强。关系逻辑一般是用在知识库的知识表达中。本章的重点篇幅
(1)教材中P56的例2.7(关系代数表达式的应用实例)。(2)教材中P63的例2.19(元组表达式的应用实例)。(3)教材中P81的例2.36(关系逻辑的规则表示)。
重要内容分析(一)(1)一般规则·对于只涉及到选择、投影、连接的查询可用下列表达式表示:
π(σ(R×S)) 或者π(σ…(R⋈S))·对于否定的操作,一般要用差操作表示,例如“检索不学C2课的学生姓名”。·对于检索具有“全部”特征的操作,一般要用除法操作表示,例如“检索学习全部课程的学生姓名”。重要内容分析(二)(2)“检索不学C2课的学生姓名”,决不能用下式表示:
πSNAME,AGE(σC#≠'C2'(S⋈SC))一定要用“差”的形式:
πSNAME,AGE(S)-πSNAME,AGE(σC#='C2'(S⋈SC))(3)“检索学习全部课程的学生学号”,要用πS#,C#(SC)÷πC#(C)表示,而不能写成 πS#(SC÷πC#(C))形式。这是因为一个学生学的课程的成绩可能是不一样的。重要内容分析(三) 2.非过程性语言与过程性语言的区别编程时必须指出“干什么”及“怎么干”的语言,称为过程性语言;编程时只须指出“干什么”,不必指出“怎么干”的语言,称为非过程性语言。第3章关系数据库语言SQL
本章重要概念
(1)SQL数据库的体系结构,SQL的组成。(2)SQL的数据定义:SQL模式、基本表和索引的创建和撤销。(3)SQL的数据查询;SELECT语句的句法,SELECT语句的三种形式及各种限定,基本表的联接操作,SQL3中的递归查询。(4)SQL的数据更新:插入、删除和修改语句。(5)视图的创建和撤销,对视图更新操作的限制。(6)嵌入式SQL:预处理方式,使用规定,使用技术,卷游标,动态SQL语句。
本章概述SQL是关系数据库的标准语言,对关系模型的发展和商用DBMS的研制起着重要的作用。SQL语言是介乎于关系代数和元组演算之间的一种语言。本章详细介绍SQL的核心部分内容:数据定义、数据查询、数据更新和嵌入式SQL。
关系数据库语言SQL3.1SQL的体系结构
3.2SQL的数据定义
3.3SQL的数据查询3.4数据更新3.5视图的定义和对视图的操作3.6嵌入式SQL
3.1SQL的体系结构
3.1.1SQL的产生与发展
3.1.2SQL数据库的体系结构
3.1.3SQL的组成
返回SQL的产生与发展
1970年,美国IBM研究中心的E.F.Codd连续发表多篇论文,提出关系模型。1972年,IBM公司开始研制实验型关系数据库管理系统SYSTEMR,配制的查询语言称为SQUARE(SpecifyingQueriesAsRelationalExpression)语言,在语言中使用了较多的数学符号。1974年,Boyce和Chamberlin把SQUARE修改为SEQUEL(StructuredEnglishQUEryLanguage)语言。后来SEQUEL简称为SQL(StructuredQueryLanguage),即“结构式查询语言”,SQL的发音仍为“sequel”。现在SQL已经成为一个标准。SQL数据库的体系结构
用户1用户2用户3用户4视图1视图1基本表1基本表2基本表3基本表4存储文件1存储文件2存储文件3存储文件4图3.1SQL数据库的体系结构SQL用户ViewBasetableStoredfileSQL的组成
核心SQL主要有四个部分: (1)数据定义语言,即SQLDDL,用于定义SQL模式、基本表、视图、索引等结构。
(2)数据操纵语言,即SQLDML。数据操纵分成数据查询和数据更新两类。其中数据更新又分成插入、删除和修改三种操作。
(3)嵌入式SQL语言的使用规定。这一部分内容涉及到SQL语句嵌入在宿主语言程序中的规则。
(4)数据控制语言,即SQLDCL,这一部分包括对基本表和视图的授权、完整性规则的描述、事务控制等内容。返回3.2SQL的数据定义
3.2.1SQL模式的创建和撤销
3.2.2基本数据类型
3.2.3基本表的创建、修改和撤销
3.2.4索引的创建和撤销
返回SQL模式的创建和撤销
SQL模式的创建可用CREATESCHEMA语句定义,其基本句法如下:
CREATESCHEMA〈模式名〉AUTHORIZATION〈用户名〉DROP语句的句法如下:
DROPSCHEMA〈模式名〉[CASCADE│RESTRICT]其方式有两种:
CASCADE(级联式)方式。
RESTRICT(约束式)方式。
基本数据类型
SQL提供的主要数据类型(也称为“域类型”)有:(1)数值型(2)字符串型(3)位串型(4)时间型返回基本表的创建、修改和撤销
(1)
基本表的创建
例3.1
基本表SS(S#,SNAME,AGE,SEX)可用下列语句创建:
CREATETABLES (S# CHAR(4)NOTNULL,
SNAMECHAR(8)NOTNULL,
AGE CHAR(1),
SEX CHAR(1), PRIMARYKEY(S#));
基本表的创建、修改和撤销(2)基本表结构的修改增加新的列用“ALTER…ADD…”语句,其句法如下:
ALTERTABLE<基本表名>ADD<列名><类型>删除原有的列用“ALTER…DROP…”语句,句法如下:
ALTERTABLE<基本表名>DROP<列名>[CASCADE│RESTRICT]此处CASCADE方式表示:在基本表中删除某列时,所有引用到该列的视图和约束也要一起自动地被删除。而RESTRICT方式表示在没有视图或约束引用该属性时,才能在基本表中删除该列,否则拒绝删除操作。
基本表的创建、修改和撤销(3)例3.2在基本表S中增加一个地址(ADDRESS)列,可用下列语句:
ALTERTABLESADDADDRESSVARCHAR(30); 应注意,新增加的列不能定义为“NOTNULL”。基本表在增加一列后,原有元组在新增加的列上的值都被定义为空值(NULL)。例3.3在基本表S中删除年龄(AGE)列,并且把引用该列的所有视图和约束也一起删除,可用下列语句:
ALTERTABLESDROPAGECASCADE;例3.4在基本表S中S#的长度修改为6,可用下列语句:
ALTERTABLESMODIFYS#CHAR(6);
基本表的创建、修改和撤销(4)基本表的撤销撤销语句的句法如下:
DROPTABLE<基本表名>[CASCADE│RESTRICT]此处的CASCADE、RESTRICT的语义同前面句法中的语义一样。
返回索引的创建和撤销
索引的创建 创建索引可用“CREATEINDEX”语句实现。句法如下:
CREATE[UNIQUE]INDEX<索引名>ON<基本表名>(列名表)索引的撤销 当索引不需要时,可以用“DROPINDEX”语句撤销,其句法如下:
DROPINDEX<索引名>返回3.3SQL的数据查询
3.3.1
SELECT查询语句
3.3.2
SELECT语句完整的句法
3.3.3
SELECT语句中的限定
3.3.4
基本表的联接操作
3.3.5
SQL3中的递归查询
返回SELECT查询语句
(1)SELECT—FROM—WHERE句型 在关系代数中最常用的式子是下列表达式:
πA1,…,An(σF(R1×…×Rm))
这里R1、…、Rm为关系,F是公式,A1、…、An为属性。 针对上述表达式,SQL为此设计了SELECT—FROM—WHERE句型:
SELECTA1,…,An FROMR1,…,Rm WHEREF
这个句型是从关系代数表达式演变来的,但WHERE子句中的条件表达式F要比关系代数中公式更灵活。SELECT查询语句
(2)SELECT句型使用实例 例3.8教学数据中有三个基本表(关系):
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER) 下面用SELECT查询语句表达每个查询。 ①检索学习课程号为C2的学生学号与成绩。 ②检索学习课程号为C2的学生学号与姓名。 ③检索选修课程名为MATHS的学生学号与姓名。④检索选修课程号为C2或C4的学生学号。⑤检索至少选修课程号为C2和C4的学生学号。SELECT查询语句
(3)SELECT语句的图示形式
例3.9对于例3.8中的第二个查询语句的图示形式如下所述。SELECT查询语句
(4)
聚合函数
COUNT(*)计算元组的个数COUNT(列名)对一列中的值计算个数SUM(列名)求某一列值的总和(此列的值必须是数值型)AVG(列名)求某一列值的平均值(此列的值必须是数值型)MAX(列名)求某一列值的最大值MIN(列名)求某一列值的最小值返回SELECT语句完整的句法
(1)SELECT语句完整的句法如下:
SELECT目标表的列名或列表达式序列
FROM基本表名和(或)视图序列
[WHERE行条件表达式][GROUPBY列名序列
[HAVING组条件表达式]][ORDERBY列名[ASC|DESC],…]SELECT语句完整的句法(2)整个语句的执行过程如下:(1)读取FROM子句中基本表、视图的数据,执行笛卡尔积操作。(2)选取满足WHERE子句中给出的条件表达式的元组。(3)按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。(4)按SELECT子句中给出的列名或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国上海科教版初中信息技术七年级第一学期第一单元活动一《认识无处不在的信息》教学设计
- 2025年手拎袋项目投资可行性研究分析报告
- 16 家乡新变化 教学设计-2024-2025学年道德与法治二年级上册统编版
- 2025成都医疗设备居间代理协议
- 农业生态园建设项目告表
- 2025年上衣项目可行性研究报告
- 中国来电显示声控电话项目投资可行性研究报告
- 2024-2030年中国职业女装行业市场发展监测及投资战略规划报告
- 中国柴胡皂苷 A行业市场占有率及投资前景预测分析报告
- 2025年度抵押房产证房地产抵押权保全合同范本
- 2024年达州市总工会招聘工会社会工作者笔试真题
- 2025至2030年中国肌酸数据监测研究报告
- 1.2 读懂彼此的心 第二课时 课件 2024-2025学年五年级下册道德与法治 统编版
- 2025年度电视产品进出口贸易合同4篇
- 2025年“开学第一课”观后感心得体会(3篇)
- 外科护理5分钟小讲课
- 2025年中国融通农发社会招聘笔试参考题库含答案解析
- 2025年天津市宁河区事业单位招聘12人高频重点提升(共500题)附带答案详解
- 2024年福建省莆田市数学三上期末质量检测模拟试题含解析
- 2025年山东菏泽投资发展集团限公司招聘61人管理单位笔试遴选500模拟题附带答案详解
- 幕墙工程项目管理手册
评论
0/150
提交评论