关系模型的查询语言

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库系统-设计与应用1第2章关系模型的查询语言本章目标本章主要内容包含两个部分。第一部分讲解关系模型基本概念,并从数据结构、数据操纵和完整性约束三个方面论述关系模型;第二部分讲解关系数据库中的结构化查询语言SQL。通过本章的学习,将达到如下的目标:了解数据模型和关系模型基本概念理解并掌握关系模型的数据结构、数据操纵和完整性约束三个要素掌握并能够熟练使用SQL语言对数据库中的数据进行访问和操纵了解程序式SQL的原理和使用数据库系统-设计与应用22.1关系模型内容提要现实世界的事物(包括信息)如果要进入计算机,必须对这些事物或信息进行模拟和抽象,建立适当的数据模型。本节将从模型开始讨论,引出当前数据库系统普遍采用的关系模型。本节主要包含如下内容:模型和数据模型的基本概念关系模型的概念和术语关系模型的三个基本要素数据库系统-设计与应用32.1.1模型与数据模型模型(Model)是现实世界中具体事物(即实体)特征的模拟和抽象。在现实生活中,模型,特别是具体模型,我们并不陌生,如汽车模型、飞机模型、建筑模型沙盘等等。看到这些模型,我们就能够联想到生活中这些真实的事物或者这些事物将来的真实场景。我们能够根据模型联想到事物的真实状况,并不是因为模型完全表示了真实事物,而是因为模型抓住了它所模拟事物的主要特征。因此,模型的建立并不是随意的,而是由模型用途和要求决定的。例如,楼房的模型有很多种,在城市或住宅小区规划中,我们平常所看到的模型属于外观立体效果图,这种模型主要抽象了城市或小区楼房的外观特征,根据该模型,我们能够联想到将来这些楼房的大致形状,例如,楼房高度、大小以及形状等。在楼房施工过程中,施工人员所使用的是这些楼房的建筑施工图,它比我们看到的外观效果图要复杂得多。仅仅根据外观效果图模型,施工人员不可能建造出我们想象的真实楼房,因为楼房的施工需要楼房更多的细节特征,甚至还有材质特征。此外,模型并不是仅仅对实体的静态特征的模拟和抽象,根据需要,模型也能够对实体的动态特征进行模拟和抽象。例如,有的汽车模型能够模拟汽车的运动,一些航模能够模拟飞机的飞行和控制。数据模型(DataModel,DM)是模型的一种,它是对实体的数据特征的模拟和抽象。既然模型不仅能够表示实体的静态特征,而且能够表示其动态特征。那么,数据模型不仅要反映数据本身的内容,而且还要反映数据之间的联系,甚至反映数据的操作特征和约束特征。由于计算机不能直接处理现实世界中的具体事物,所以现实世界中的具体事物要进入计算机,必须用计算机能够处理的数据进行表示。而且当这些数据进入计算机之后,还应采用合适的方法和手段对其进行管理。本书前面已经讨论了计算机中数据管理的不同方法和手段,其中,数据库方法具有诸多优点,已成为当前应用最为广泛的方法。在数据库方法中,数据必须以DBMS能够表示和处理的模型存入数据库,不同类型的DBMS所采用的数据模型也各不相同,本书将主要讨论被各DBMS广泛使用的关系模型。根据以上对数据模型的论述,在建模过程中,数据模型应满足三个方面的基本要求:一是能够根据要求比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。要求一种数据模型同时很好地满足这三个方面的要求是比较困难的,因此,通常是在数据库系统中,针对不同的使用对象和应用目的,采用不同的数据模型。例如,针对人这个使用对象,数据模型应要求便于人理解,而针对计算机这个对象,数据模型应要求便于计算机实现。在数据库系统中,根据数据模型不同的应用目的,可以将模型分为概念模型、逻辑模型和物理模型,本书后面在数据库设计内容中,将详细讨论其中的概念模型设计与逻辑模型设计。为了把现实世界中的具体事物抽象并转化为某一DBMS支持的数据模型,我们常常首先将现实世界抽象为信息世界,然后将信息世界转化为机器世界。或者说,我们首先把现实世界中的客观对象抽象为某一种信息结构,它不依赖于具体的计算机系统,也不是某一个DBMS能够直接支持的数据模型,但是这种信息结构便于人的理解和交互,称作概念模型;然后再把这种概念模型转化为计算机上某一DBMS能够支持的数据模型。这一过程如图2.1所示。数据库系统-设计与应用4现实世界信息世界计算机世界用户计算机概念化形式化图2.1数据抽象过程从以上数据抽象过程可以看出,概念模型是数据库系统的核心和基础,它把现实世界和计算机世界连接了起来,它既能够为人所容易理解,又能够转化为数据库系统所支持的数据模型。2.1.2数据模型的组成要素严格来说,数据模型是一个综合概念,它描述了模型中的数据、数据之间的关系和对数据的操作,以及对数据的完整性约束。也就是说,数据模型包含了三个方面的内容:数据结构、数据操作和完整性约束。通常也把这三个内容称作数据模型的三个基本要素。因此,考察一个数据模型,也应该从数据模型的这三个要素进行考察。1)数据结构数据结构是所研究的对象类型的集合,用以描述数据的静态特征,包括对数据的结构和数据间联系的描述。数据结构是刻画一个数据模型性质最重要的方面。因此在数据库系统中,我们通常按照数据模型的数据结构来对其命名,目前常见的数据模型有层次模型、网状模型以及关系模型,这些数据模型的数据结构分别称为层次结构、网状结构和关系结构。2)数据操作数据操作是一组定义在数据上的操作(包括操作的含义、操作符、运算规则及其语言等),以及有关的操作规则,它描述了数据的动态特征。对数据库来说,数据操作规定了数据库中各种对象的实例可以做什么和怎么做。数据库中常用的数据操作类型有:检索、更新(包括插入、删除、修改)两大类。就一般模型而言,也有相应的模型操作,比如对遥控电动汽车模型,应该具有加速、减速和转弯等操作。3)完整性约束完整性约束是给定数据模型中数据及其联系所具有的制约和依存规则的集合,用以限定数据模型的状态以及状态变化,以保证数据的正确、有效和相容。完整性约束的主要目的,是使数据模型与它所描述的客观世界更加符合,保证数据模型更加真实、有效地反映客观世界;在对数据模型进行操作,数据库系统-设计与应用5使数据模型状态发生变化时,限定数据模型状态值在客观世界的状态范围内。数据模型除了明确定义其数据结构和数据操作之外,还应该反映和规定本数据模型必须遵守的基本的、通用的完整性约束条件。例如,在关系模型中,任何关系必须满足实体完整性和参照完整性两个约束条件。就一般模型而言,也有针对模型的约束条件,比如,上面提到的遥控电动汽车模型,其加速应该有最大限制,转弯应该有最大转向约束限制等。此外,数据模型还应该提供定义完整性约束条件的机制,用以反映具体应用所涉及的数据必须遵守的特定语义约束条件。例如,在学校的学生管理系统中,可能需要规定学生入学年龄不得超过30岁,累计不及格课程不得超过40学分等。数据模型应该提供一种机制,让用户能够对具体应用中的数据进行特定的约束,以更加准确地反映具体应用的客观事实。2.1.3数据库中常用的数据模型到目前为止,数据库领域中曾经被使用的数据模型有下列四种:层次模型(HierarchicalModel)网状模型(NetworkModel)关系模型(RelationalModel)面向对象模型(ObjectOrientedModel)其中,层次模型和网状模型又统称为非关系模型。层次模型是数据库系统中最早出现的数据模型,它采用树形结构来表示各类数据之间的联系。现实世界中许多客观事物之间的联系本来就呈现出一种自然的层次关系,如行政机构、家族关系等,因此,层次模型能够很好地表示现实世界中具有层次结构关系的客观对象。但是,现实世界中的客观对象除了表现出层次关系之外,更多的是非层次关系的,如教师和学生之间的联系就是非层次的,一个教师可以给多个学生授课,一个学生也可以接受多个教师的辅导。对于这种客观对象之间表现出的多对多的联系,层次模型表示比较复杂,因此,产生了网状模型,它能够克服层次模型表示非层次关系的弱点。网状模型虽然能够更为直接地描述现实世界,具有较高的存取效率,但是网状模型结构比较复杂,而且随着应用环境的扩大,数据库的结构变得越来越复杂,更加不利于用户掌握。层次数据库系统的典型代表是IBM公司的IMS(InformationManagementSystem)数据库管理系统,它于1968年被推出,曾经得到广泛的使用。网状模型的典型代表是DBTG(DataBaseTaskGroup)系统,它对网状数据库系统的研制和发展起到了重大影响。基于非关系模型的数据管理系统在20世纪70年代至80年代初被使用,当时在DBMS产品中占据了主导地位,现在已经逐渐被基于关系模型的DBMS所取代。在数据库应用较早的部分行业和领域中,由于早期开发的应用系统都是基于层次数据库或网状数据库,可能至今还在延续使用,除此之外,基于层次或网状的数据库系统已不多见。自20世纪80年代以来,面向对象的方法和技术在计算机各个领域,特别是程序设计语言和信息系统设计领域产生了深远影响,这也促进了数据库中面向对象数据模型的研究和发展,并产生了对象关系数据库管理系统和面向对象的数据库管理系统。由于本书主要针对当前应用较为广泛的基于关系模型的数据库系统的设计与应用,因此,对于层数据库系统-设计与应用6次模型和网状模型,不再进行论述,同样,本书也不涉及对象关系模型和面向对象模型。2.1.4关系模型关系模型是目前最重要的一种数据模型,基于关系模型的关系数据库管理系统(RelationalDatabaseManagementSystem,RDBMS)在目前数据库管理系统产品中,占据了统治地位。关系模型最大的优点在于其简单的逻辑结构,并且这种简单的结构有严密的理论基础。上面曾经提到,1970年美国IBM公司SanJose研究室的研究员E.F.Codd在美国计算机学会会刊《CommunicationoftheACM》上发表了题为“ARelationalModelofDataforSharedDataBank”的论文,为关系模型奠定了理论基础,开创了关系数据库理论的研究,也是数据库系统发展的里程碑,因为关系模型从此成为数据库管理系统的目标,并最终导致了基于关系模型的商业数据库管理系统的产生。20世纪70年代末至20世纪80年代初,在众多研究项目取得进展的基础上,开始出现基于关系模型的商业系统,并随后涌现出几百个RDBMS,其中有为大型机设计的,也有在PC环境下运行的。IBM公司的DB2和Oracle公司的Oracle数据库管理系统也是那个时期出现的。下面将介绍关系模型的常用术语和基本概念,并从数据模型的三个要素方面对关系模型进行考察。1)关系模型的数据结构关系模型的数据结构非常单一,在关系模型中,客观对象以及对象之间的联系均用关系进行表示。关系模型是基于关系(Relation)的数学概念,建立在严格的数学概念的基础上,主要以数学上的集合论和谓词逻辑为基础。下面首先给出关系的定义,然后介绍关系模型中常用的概念和术语。关系(Relation):设D1,D2,…,Dn为n个集合,并且这n个集合的笛卡尔乘积为D=D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,1≤i≤n},则称D的任何子集R(D1,D2,…,Dn)D都是这n个集合D1,D2,…,Dn上的一个n元关系。其中,R表示关系的名称,它的元素是形如(d1,d2,…,dn)的n元组(n-tuple),而di∈Di是此元组的第i个分量(Component)。注意,在关系定义中,需要对集合D1,D2,…,Dn取值范围进行说明。从以上定义可以看出,关系实际上也是集合,因此,后面所讨论关系的操作实质上也是对集合的操作。例如,假设有两个集合D1与D2,其中D1={1,2},D2={2,3,4},这两个集合的笛卡尔乘积D1×D2是一个有序对的集合,每个有序对中的第一个元素都是D1中的成员,第二个元素都是D2中的成员,D1×D2中包含了所有这样的有序对。即D=D1×D2={(1,2),(1,3),(1,4),(2,2),(2,3),(2,4)}根据关系的定义,D的任何一个子集都是一

1 / 88
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功