《数据库原理与技术基础.ppt》由会员分享,可在线阅读,更多相关《数据库原理与技术基础.ppt(91页珍藏版)》请在三一办公上搜索。
1、第6章 数据库原理与技术基础,主讲教师郭松涛,高校计算机基础教育系列课程,本章教学计划理论教学(课堂教学):4学时实验教学(上机实习):2学时本章教学重点1.数据模型及数据库系统2.关系运算及关系的规范化3.关系数据库及SQL语言4.管理信息系统的结构与功能5.管理信息系统的开发与设计步骤,第6章 数据库原理与技术基础,6.1 数据库系统概述 6.2 关系数据库 6.3 常见数据库管理系统6.4 管理信息系统,第6章 数据库原理与技术基础,6.1 数据库系统概述,数据库系统是计算机软件系统的一个重要分支,也是一门新兴学科,它和计算机网络、人工智能一起被称为计算机技术领域的三大热门技术,而且随着
2、各种应用领域对数据管理的进一步需求,数据处理迅速成为计算机应用的重要方面,数据库也成为计算机领域发展最快的学科之一。数据库已经成为信息社会的重要基础设施。数据库技术发展到今天已经是一门成熟的技术,但由于数据库是一个复杂系统,涉及面广,所以至今仍没有统一的、公认的定义。综合较为流行的数据库文献中对数据库的定义,可以给数据库定义为:数据库是以某种方式组织和存储起来的、可以检索和利用的、互相关联的数据集合,它提供给多种用户共享并且有最小的冗余度和较高的数据独立性,其安全控制机制可保证数据安全、可靠。,6.1 数据库系统概述,数据管理技术的发展历史 数据库技术是20世纪60年代开始兴起的一门信息管理自
3、动化的新兴学科,是计算机科学中的一个重要分支。从60年代末到70年代初,数据库技术日益成熟,并有了坚实的理论基础。进入70年代,数据库技术有了很大的发展。数据库方法,特别是DBTG(Data Base Task Group,数据库任务组)方法(该方法是DBTG所提议的基于网状结构的数据库网状模型方法)和思想已应用于各种计算机系统,出现了许许多多基于网状模型和层次模型的商品化数据库系统。随后,关系方法的理论研究和软件系统的研制又取得了很大成果,关系方法也从实验室走向了商用。数据库是数据管理的产物。数据管理是数据库的核心任务,内容包括对数据的分类、组织、编码、储存、检索和维护。随着计算机硬件和软件
4、的发展,数据库技术也不断地发展。从数据管理的角度看,数据库技术到目前共经历了人工管理阶段、文件系统阶段和数据库系统阶段。,6.1 数据库系统概述,数据管理技术的发展历史1)人工管理阶段 人工管理阶段是指20世纪50年代中期之前。当时计算机刚诞生不久,这个时期的计算机主要用于科学计算。从硬件看,没有磁盘等直接存取的存储设备;从软件看,没有操作系统和管理数据的软件,数据处理方式是批处理。这个时期数据管理的特点是:(1)数据不保存。(2)没有专门对数据进行管理的软件系统。(3)没有文件的概念。(4)数据是面向应用的。人工管理阶段数据和程序之间的关系如下图所示。,6.1 数据库系统概述,数据管理技术的
5、发展历史1)人工管理阶段,人工管理阶段程序和数据之间的关系,6.1 数据库系统概述,数据管理技术的发展历史2)文件系统阶段 文件系统阶段是指20世纪50年代后期到60年代中期。在这个阶段,计算机不仅用于科学计算,还大量用于管理数据。在硬件方面,外存储器有了磁盘、磁鼓等直接存取的存储设备。在软件方面,操作系统中已经有了专门用于管理数据的软件,称为文件系统。这个时期数据管理的特点是:(1)数据需要长期保存在外存上供反复使用。(2)程序和数据之间有了一定的独立性。(3)文件的形式已经多样化。(4)数据的存取基本上以记录为单位。文件系统阶段数据和程序之间的关系如下图所示。,6.1 数据库系统概述,数据
6、管理技术的发展历史2)文件系统阶段,文件系统阶段数据和程序之间的关系,6.1 数据库系统概述,3)数据库系统阶段 数据库系统阶段是从20世纪60年代后期开始的。由于计算机用于管理,从而使数据量急剧增加,其中非数值数据所占比例较大,而非数值数据比数值数据复杂得多,不仅要知道各项数据本身的内容,而且还需要知道它们之间的关系,这就需要一个高度组织化的数据管理系统。此外,随着计算机技术的飞速发展和网络通信的出现,使得多个用户共享一个数据集合成为可能,于是出现了数据库系统。在这一阶段中,数据库中的数据不再是面向某个应用或某个程序,而是面向整个企业(组织)或整个应用的。数据库系统阶段的特点是:(1)采用复
7、杂的结构化的数据模型。(2)较高的数据独立性。(3)最低的冗余度。(4)数据控制功能。,6.1 数据库系统概述,数据管理技术的发展历史3)数据库系统阶段,数据库系统阶段数据和程序之间的关系,6.1 数据库系统概述,数据模型 数据库存储的是数据,这些数据反映了现实世界中有意义、有价值的信息,数据库不仅反映数据本身的内容,而且也反映数据之间的联系。数据模型就是用来抽象表示、处理现实世界的数据和信息的工具,它是数据库中用于提供信息表示和操作手段的形式框架,也是将现实世界转换为数据世界的桥梁。有关数据模型的基本概念是数据库理论的基础。1)数据处理的抽象描述 不同的领域,数据的描述有所不同。实际生活中,
8、有对现实世界的描述;理论研究中,有对符号化数据的描述;而在计算机内部,数据又有其特定的表示方法。人们在研究和处理数据的过程中,常常把数据的转换分为三个领域现实世界、信息世界、机器世界,这三个世界间的转换过程,就是将客观现实的信息反映到计算机数据库中的过程。,6.1 数据库系统概述,数据模型1)数据处理的抽象描述(1)现实世界。客观存在的世界就是现实世界,它独立于人们的思想之外。现实世界存在无数事物,每一个客观存在的事物可以看作是一个个体,个体有多项特征和属性。比如,电视机就有价格、品牌、可视面积大小以及是否彩色等特征。而不同的人,只会关心其中的一部分属性,一定领域内的个体有着相同的特征。,6.
9、1 数据库系统概述,数据模型1)数据处理的抽象描述(2)信息世界。信息世界也称概念世界,是现实世界在人们头脑中的反映。人的思维将现实世界的数据抽象化和概念化,并用文字符号表示出来,这就形成了信息世界。下面是人们在研究现实世界过程中常常用到的术语:实体(Entity)。属性(Attribute)。键(Key)。联系(Relationship)。,6.1 数据库系统概述,2)数据模型 数据模型通常由数据结构、数据操作和数据的约束条件三部分组成。数据结构是所研究的对象类型的集合。在数据库系统中通常按照数据结构的类型来命名数据模型,如层次结构、网状结构和关系结构的模型分别命名为层次模型、网状模型和关系
10、模型。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据操作是用来描述系统的信息变化的,是对系统动态特性的描述。数据操作的种类有检索(如查询)和更新(增、删、改)。数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。,6.1 数据库系统概述,2)数据模型(1)信息模型(概念模型)与E-R(Entity-Relationship)方法为了把现实世界中的具体事物进行抽象,人们常常首先把现实世界抽象为信息世界,然后再将信息世
11、界转化为机器世界。在把现实世界抽象为信息世界的过程中,实际上是抽象出现实系统中有应用价值的元素及其关联。这时所形成的信息结构是概念模型。在抽象出概念模型后,再把概念模型转换为计算机上某一DBMS(DataBase Management System,数据库管理系统)支持的数据模型。需要一种方法能够对现实世界的信息进行描述,最常用的是实体-联系方法。实体-联系方法(即E-R方法)是PPSChen于1976年提出的,这种方法由于简单、实用,所以得到了非常普遍的应用。它使用的工具称作E-R图,它所描述的现实世界的信息结构称为企业模式,也把这种描述结果称为E-R模型。,6.1 数据库系统概述,E-R方
12、法的要点:用矩形框表示实体,实体名(如学生)写在框内。用椭圆框表示实体的属性,框内写上属性名,并用线段连到相应的实体上。用菱形框表示实体间的联系,在框内写上联系名,用线段连接菱形框与矩形框,在线段旁注上联系的类型(一对一、一对多或多对多)。如果联系也具有属性,那么把属性和菱形框用线段连上。E-R图是抽象描述现实世界的有力工具,它与计算机所支持的数据模型相独立,它更接近于现实世界。具体画法是:把有联系的实体(方框)通过联系(菱形框)连接起来,注明联系方式,实体的属性(椭圆框)连到相应实体上。下图(E-R图)描述的是2个实体间的多对多(m:n)的联系方式。,6.1 数据库系统概述,有关学生、课程的
13、E-R图(实体关系图),6.1 数据库系统概述,(2)结构模型。结构数据模型是机器世界的数据模型。实际数据库系统中所支持的数据模型主要有层次模型、网状模型和关系模型。层次模型。用树型结构来表示实体之间联系的模型称为层次模型。层次模型是满足有且仅有一个根结点,非根结点有且仅有一个父结点的基本层次联系的集合。构成层次模型的树是由结点和连线组成的,结点表示实体集,连线表示相连两个实体之间的联系,这种联系只能是一对多的。通常把表示“一”的实体放在上方,称为父结点;而把表示“多”的实体放在下方,称为子结点。网状模型。用网状结构来表示实体之间联系的数据模型称为网状模型。网状模型是以记录型为结点的网状结构,
14、这种结构必须满足两个条件:一个是网状模型可以有一个以上结点而无父结点;另一个是至少有一个结点具有多于一个的父结点。,6.1 数据库系统概述,关系模型。用一个二维表格表示实体和实体之间联系的模型称为关系模型。关系模型由三部分组成:关系数据结构、关系操作集合和关系的完整性。关系应满足以下条件:表格中的每一列都是不可再分的,每行和每列的相交点仅包含单个值;任何列中的值必须是同一类型的,各列被指定一个相异的名字;各行相异,不允许重复;行、列均无次序要求。一个关系就是一个文件,该文件中的每个记录是惟一的,所有记录具有相同个数和类型的字段,也就是说,所有记录有同样的固定长度和格式。关系可以有三种类型:基本
15、关系(通常称为基本表或基表)、查询表和视图表。基本表是实际存在的表,它是实际存储数据的逻辑表示;查询表是查询结果对应的表;视图表是由基本表或其他图表导出的表,是虚表,不对应实际存储的数据。,6.1 数据库系统概述,关系模型 关系操作采用集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一个集合的方式。关系模型中常用的关系操作包括查询操作(选择、投影、连接、除、并、交、差等)和编辑操作(增、删、改)两大部分。查询的表达能力是其中最重要的部分。在关系型数据库中,完整性约束用于确保数据的准确性和一致性。关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完整性和用户
16、定义完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。实体完整性规则:若属性A是基本关系R的主属性,则属性A就不能取空值。现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的,这样就自然存在着关系与关系间的引用。实体完整性和参照完整性用于任何关系数据库系统,用户定义的完整性则是针对某一具体的数据库的约束条件,如性别只能是“男”或“女”两种可能。它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制。,6.1 数据库系统概述,(3)面向对象模型。计算机应用对数据模型的要求是多种多样的
17、,而且是层出不穷的。与其根据不同的新需求,提出各种新的数据模型,还不如设计一种可扩充的数据模型,由用户根据需要定义新的数据类型及相应的约束和操作。面向对象数据模型(Object-Oriented data model,简称O-O data model)就是一种可扩充的数据模型。在面向对象数据模型中,所有现实世界中小的实体都模拟为对象,小至一个整数、字符串、一个公司,都可以看成是对象。一个对象包含有若干属性,用以描述对象的状态、组成和特性。属性也是对象,它又可能包含其他对象作为其属性。这种递归引用对象的过程可以继续下去,从而组成各种复杂的对象,而且同一个对象可以被多个对象所引用。除了属性外,对象
18、还包含若干方法,用以描述对象的行为特性。方法又称为操作,它可以改变对象的状态,对对象进行各种数据库操作。方法的定义包含两个部分:一是方法的接口,说明方法的名称、参数和结果的类型,一般称之为调用说明;二是方法的实现部分,它是用程序设计语言编写的一个过程,以实现方法的功能。一个数据库一般包含大量的对象。如果每个对象都附有属性和方法的说明,则会有大量的重复。为了解决这个问题,同时也为了概念上的清晰,常常把类似的对象归并为类。,6.1 数据库系统概述,6.1.3 数据库系统 一个数据库系统(Database System)主要由数据库(Database)和数据库管理系统(DBMS)构成。简单地说,数据
19、库是一组经过计算机整理后的数据,存储在一个或者多个文件中,而管理这个数据库的软件就被称之为数据库管理系统。此外,数据库系统还包括数据库应用系统和用户等。数据库、数据库管理系统和数据库系统是三个不同的概念。数据库强调的是数据,数据库管理系统强调的是系统软件,而数据库系统强调的是数据库的整个运行系统。,6.1 数据库系统概述,6.1.3 数据库系统1)数据库系统的三级模式结构 数据库系统软件产品多种多样,支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不相同,但是大多数数据库系统在总的体系结构上都具有三级模式的结构特征。数据库系统的三级模式结构由模式、外模式和
20、内模式组成。(1)模式。模式又称为概念模式,是数据库中全体数据的逻辑结构和特性的描述,是所有用户的公共数据视图,它描述的是数据的全局逻辑结构。(2)外模式。外模式又称为子模式或用户模式,是数据库用户看到的数据视图,它涉及的是数据的局部逻辑结构,通常是模式的子集。(3)内模式。内模式又称为存储模式,是数据在数据库系统内部的表示,即对数据物理结构和方式的描述。内模式是全体数据库数据的内部表示或者是低层描述,用来定义数据的存储方式和物理结构。,6.1 数据库系统概述,6.1.3 数据库系统2)数据库系统的用户 数据库系统的用户是指使用和访问数据库中数据的人。其用户有以下四种:(1)数据库设计者(2)
21、数据库管理员(3)应用程序设计者(4)普通用户 在实际工作中,数据库管理员利用账号来控制每个用户的访问权限。每个用户都有自己的账号和密码,使用此账号和密码,用户可以登录数据库,并在允许的权限范围内访问数据库中的数据。,6.1 数据库系统概述,6.1.3 数据库系统 3)数据库管理系统 数据库管理系统(DBMS)是指帮助用户建立、使用和管理数据库的软件系统。它通常由下面三个部分组成:(1)数据定义语言(Data Definition Language,DDL)。DDL用来描述数据库的结构,供用户建立数据库。(2)数据操作语言(Data Manipulation Language,DML)。DML
22、供用户对数据库进行数据的查询(数据的检索和统计等)和处理(数据的增加、删除和修改等)等操作。(3)其他管理和控制例行程序。这部分包括安全、通讯控制和工作日志等内容。一般情况下,DDL和DML组成一个一体化的语言。对于关系型数据库,最常用的就是SQL语言,几乎所有的数据库管理系统都提供了对SQL语言的支持。,6.1 数据库系统概述,6.1.3 数据库系统数据库管理系统提供了用户和数据库之间的软件界面,使用户能更方便地操作数据库。一般来说,它应有如下功能:(1)数据定义。和高级语言类似,须定义需要的数据类型。(2)数据处理。DBMS必须提供用户对数据库的存取能力,包括记录的增加、修改、检索和删除等
23、。(3)数据安全性、完整性和并发性控制。管理和监督用户的权限,防止用户有任何破坏或者恶意的企图,保证进入数据库中的存储数据的语义正确性和有效性,防止改变数据的语义,正确处理多用户环境下的并发操作。(4)效率。DBMS应保证数据库的高效率运行,以提高数据检索和修改的速度。,6.1 数据库系统概述,6.1.3 数据库系统 4)数据库系统的发展 数据模型是数据库系统的核心。按照数据模型发展的主线,数据库系统的形成过程和发展可从以下三个方面反映出来。(1)第一代数据库系统层次和网状数据库管理系统。层次和网状数据库的代表产品是IBM公司在1969年研制出的层次模型数据库管理系统。层次数据库是数据库系统的
24、先驱,而网状数据库则是数据库概念、方法、技术的奠基。,6.1 数据库系统概述,6.1.3 数据库系统 4)数据库系统的发展(2)第二代数据库系统关系数据库管理系统(RDBMS)。1970年,IBM公司的研究员EECodd在题为大型共享数据库数据的关系模型的论文中提出了数据库的关系模型,为关系数据库技术奠定了理论基础。到了20世纪80年代,几乎所有新开发的数据库系统都是关系型的。真正使得关系数据库技术实用化的关键人物是James Gray。Gray在解决如何保障数据的完整性、安全性、并发性以及数据库的故障恢复能力等重大技术问题方面发挥了关键作用。关系数据库系统的出现,促进了数据库的小型化和普及化
25、,使得在微型机上配置数据库系统成为可能。,6.1 数据库系统概述,6.1.3 数据库系统 4)数据库系统的发展(3)新一代数据库系统的研究和发展。目前已从多方面发展了现行的数据库系统技术。可以从数据模型、新技术内容、应用领域三个方面概括新一代数据库系统的发展。面向对象的方法和技术对数据库发展的影响最为深远。20世纪80年代,面向对象的方法和技术的出现,对计算机各个领域,包括程序设计语言、软件工程、信息系统设计以及计算机硬件设备等都产生了深远的影响,也给面临新挑战的数据库技术带来了新的机遇和希望。数据库研究人员借鉴和吸收了面向对象的方法和技术,提出了面向对象的数据库模型(简称对象模型)。当前有许
26、多研究是建立在数据库已有的成果和技术上的,针对不同的应用,对传统的DBMS,主要是RDBMS进行不同层次上的扩充,例如建立对象关系(OR)模型和建立对象关系数据库(ORDB)。,6.1 数据库系统概述,6.1.3 数据库系统 数据库技术与多学科技术的有机结合。数据库技术与多学科技术的有机结合是当前数据库发展的重要特征。计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。传统的数据库技术和其他计算机技术的结合、互相渗透,使数据库中新的技术内容层出不穷。数据库的许多概念、技术内容、应用领域,甚至某些原理都有了重大的发展和变化。建立和实现了一系列新型的数据库,如分布式数据库、并行数据库、演绎数
27、据库、知识库、多媒体库和移动数据库等,它们共同构成了数据库大家族。面向专门应用领域的数据库技术的研究。为了适应数据库应用多元化的要求,在传统数据库基础上,结合各个专门应用领域的特点,研究适合该应用领域的数据库技术,如工程数据库、统计数据库、科学数据库、空间数据库、地理数据库和Web数据库等,这是当前数据库技术发展的又一重要特征。同时,数据库系统结构也由主机终端的集中式结构发展到网络环境的分布式结构,随后又发展成两层、三层或多层客户服务器结构以及Internet环境下的浏览器服务器和移动环境下的动态结构。多种数据库结构满足了不同应用的需求,适应了不同的应用环境。,6.1 数据库系统概述,6.1.
28、3 数据库系统 数据库技术与多学科技术的有机结合。数据库技术与多学科技术的有机结合是当前数据库发展的重要特征。计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。传统的数据库技术和其他计算机技术的结合、互相渗透,使数据库中新的技术内容层出不穷。数据库的许多概念、技术内容、应用领域,甚至某些原理都有了重大的发展和变化。建立和实现了一系列新型的数据库,如分布式数据库、并行数据库、演绎数据库、知识库、多媒体库和移动数据库等,它们共同构成了数据库大家族。面向专门应用领域的数据库技术的研究。为了适应数据库应用多元化的要求,在传统数据库基础上,结合各个专门应用领域的特点,研究适合该应用领域的数据库技
29、术,如工程数据库、统计数据库、科学数据库、空间数据库、地理数据库和Web数据库等,这是当前数据库技术发展的又一重要特征。同时,数据库系统结构也由主机终端的集中式结构发展到网络环境的分布式结构,随后又发展成两层、三层或多层客户服务器结构以及Internet环境下的浏览器服务器和移动环境下的动态结构。多种数据库结构满足了不同应用的需求,适应了不同的应用环境。,6.1 数据库系统概述 6.2 关系数据库 6.3 常见数据库管理系统6.4 管理信息系统,第6章 数据库原理与技术基础,6.2 关系数据库,数据模型为关系模型的数据库称为关系数据库。在关系数据库中,主要涉及以下基本术语。关系:一个关系就是一
30、张二维表,每个关系有一个关系名。在计算机里,一个关系可以存储为一个文件。下表的学生基本情况即为一个关系。,6.2 关系数据库,元组:二维表中水平方向的行称为元组,每一行是一个元组。元组对应存储文件中的一个具体记录。表6.1包含5个元组。属性:二维表中垂直方向的列称为属性,每一列有一个属性名,与前面介绍的实体属性相同。属性名和该属性的数据类型、宽度等在数据定义时规定。属性值是各个记录中的字段值。例如,表6.1的学生基本情况关系中的学号、姓名、性别等为属性名。20050000001、张大伟、男等是属性值。域:属性的取值范围,即不同元组对同一个属性的取值所限定的范围。例如,姓名的取值范围是文字字符;
31、性别只能从“男”、“女”两个汉字中取其一。关键字:属性或属性组合,其值能够唯一地标识一个元组。例如,表6.1的学生基本情况关系中的学号可以作为标识关键字;如果绝对没有重名学生,姓名也能唯一地标识一个元组。由于具有某一性别的不止一个人,性别就不能作为标识关键字。,6.2 关系数据库,关系模式:对关系的描述称为关系模式,其格式为:关系名(属性名1,属性名2,属性名n)一个关系模式对应一个关系的结构。从集合论的观点来定义关系,可以将关系定义为元组的集合。关系模式是命名的属性集合。元组是属性值的集合。一个具体的关系模型是若干个关系模式的集合。关系数据库结构与层次型、网状型结构相比有如下优点:(1)表格
32、式的关系易于建立数据库。(2)使用者较易于理解表格式的关系。(3)层次型与网状型结构可容易地转换成表格式结构,因此可视为万用形式的结构。(4)投影与连结表格的字段很容易,因此新关系的建立也易于实现。(5)搜寻速度较快,表格式的搜寻比线性结构更容易。(6)关系型结构较易于修改。,6.2 关系数据库,6.2.1 关系运算与关系代数 关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。所以运算对象、运算符、运算结果是运算的三大要素。关系代数的运算对象是关系,运算结果亦为关系。关系
33、代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。对关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算。关系的基本运算有两类:一类是传统的集合运算(并、差、交等);另一类是专门的关系运算(选择、投影、联接)。有些查询需要几个基本运算的组合,经过若干个步骤才能完成。,6.2 关系数据库,6.2.1 关系运算与关系代数 1)传统的集合运算 进行并、差、交集合运算的两个关系必须具有相同的关系模式,即相同结构。(1)并两个相同结构的关系的并是由属于这两个关系的元组组成的集合。(2)差设有两个相同结构的关系R和S,R差S的结果是由属于R但不属于
34、S的元组组成的集合,即差运算的结果是从R中去掉S中也有的元组。(3)交两个具有相同结构的关系R和S,它们的交是由既属于R又属于S的元组组成的集合。交运算的结果是R和S的共同元组。,6.2 关系数据库,6.2.1 关系运算与关系代数 2)专门的关系运算(1)选择从关系中找出满足给定条件的元组的操作称为选择。选择的条件以逻辑表达式给出,使得逻辑表达式的值为真的元组将被选取。选择是从行的角度进行的运算,即从水平方向抽取记录。经过选择运算得到的结果元组形成的新关系,其关系模式不变,但其中的元组是原关系的一个子集。(2)投影从关系模式中指定若干个属性组成新的关系称为投影。投影是从列的角度进行的运算,相当
35、于对关系进行垂直分解。经过投影运算可以得到一个新关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同。投影运算提供了垂直调整关系的手段,体现出关系中列的次序无关性这一特点。(3)联接联接是关系的横向结合。联接运算将按两个关系模式的属性名拼接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。联接过程是通过联接条件来控制的,联接条件中将出现两个关系中的公共属性名,或者具有相同语义、可比的属性。,6.2 关系数据库,6.2.1 关系运算与关系代数 1)传统的集合运算(4)自然联接和优化 自然联接自然联接是去掉重复属性的等值联接,它属于联接运算中按照属性值对应相等为条件进行
36、的联接操作。自然联接是最常用的联接运算。利用关系的投影、选择和联接运算可以方便地分解或构造新的关系。联接优化系统在执行联接运算时要进行大量的比较操作,因此执行起来比较费时间。尤其是在包括许多元组的关系之间进行联接时,矛盾更加突出。,6.2 关系数据库,设关系R和S分别有m和n个元组。联接运算先从R关系中的第一个元组开始,依次与S关系的各个元组按照联结条件进行比较,符合条件的两元组首尾相连纳入新关系,一轮共需要进行n次比较;再用R关系中的第二个元组对S关系的各个元组进行第二次扫描。由于R中有m个元组,共需要进行m轮扫描,因此,R与S的联接过程共需要访问mn个元组。如果m=500,n=50,联接过
37、程需要进行25000次访问。由此可见,涉及到联接的查询应当考虑优化,以便提高操作效率。优化的一般方法是,考虑缩小参与联接运算关系的尺寸,要减少访问记录的次数。首先应进行选择运算,尽量减少关系中元组的个数,能投影的再投影,使关系中属性个数较少。在投影时必须注意保留联接两个关系所需要的公共属性或具有相同语义的属性,否则关系之间就失去了联系,然后再进行联接操作。在关系代数中,将关系和运算经有限次复合所形成的式子称为关系代数表达式。,6.2 关系数据库,6.2.2 关系的规范化 关系模型看起来简单,但是不能把日常手工管理所用的各种表格,按照一张表一个关系直接存放到数据库里。在关系模型中对关系有一定的要
38、求,关系必须具有以下特点:(1)关系必须规范化。所谓规范化是指关系模型中的每一个关系模式都必须满足一定的要求。最基本的要求是每个属性值必须是不可分割的数据单元,即表中不能再包含表。手工制表中经常出现如下表所示的复合表。这种表格不是二维表,不能直接作为关系来存放,只要去掉表中的“应发工资”和“应扣工资”两个表项就可以了。而在数据输出时,可以对打印格式另行设计,从而满足用户的要求。,6.2 关系数据库,6.2.2 关系的规范化,复合表。这种表格不是二维表,不能直接作为关系来存放,只要去掉表中的“应发工资”和“应扣工资”两个表项就可以了,6.2 关系数据库,6.2.2 关系的规范化(2)在同一个关系
39、中不能出现相同的属性名,即表格中的字段名不允许重复,且每一列必须具有相同的数据类型。(3)关系中不允许有完全相同的元组,即表格中不允许出现相同的行(相同的记录)。(4)在一个关系中对属性和元组无顺序要求,既任意交换表格中两列或两行的位置并不影响数据的实际含义。,6.2 关系数据库,6.2.3 SQL语言简介SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,而“怎么做”则不用使用者考虑。SQL的功能强大、简单易学、使用方便,已经成为数据库操作的基础,并且现在
40、几乎所有的数据库均支持SQL。1)SQL数据库的数据体系结构SQL数据库的数据体系结构基本上是三级结构,但使用的术语与传统关系模型的术语不同。在SQL中,关系模式(模式)称为“基本表”(base table),存储模式(内模式)称为“存储文件”(stored file),子模式(外模式)称为“视图”(view),元组称为“行”(row),属性称为“列”(column)。,6.2 关系数据库,6.2.3 SQL语言简介2)SQL语言的组成 一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。一个SQL表由行若干行构成,行是列的序列(集合),每列与行对应个数据项。一个表或者是一
41、个基本表,或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外存上的个物理文件对应。,6.2 关系数据库,6.2.3 SQL语言简介2)SQL语言的组成 用户可以用SQL语句对视图和基本表进行查询等操作。从用户角度看,视图和基本表是一样的,没有区别,都是关系(表格)。SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN、COBOL、PASCAL、PL/1、C和Ada语言等。SQL用户也能作为独立的用户接口,供交
42、互环境下的终端用户使用。,6.2 关系数据库,6.2.3 SQL语言简介3)对数据库进行操作 SQL包括了所有对数据库的操作,主要由以下4个部分组成:数据定义:这一部分又称为“SQL DDL(Data Definition Language)”,指定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引四个部分。数据操作:这一部分又称为“SQL DML(Data Manipulation Language)”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述、事务控制语句等。嵌入式SQL语言的
43、使用规定:规定SQL语句在宿主语言的程序中使用的规则。,6.2 关系数据库,6.2.3 SQL语言简介4)SQL语言的优点 使用SQL语言有如下优点:非过程化语言 统的语言SQL为许多任务提供了命令,其中包括:查询数据;在表中插入、修改和删除记录;建立、修改和删除数据对象;控制对数据和数据对象的存取;保证数据库一致性和完整性。是所有关系数据库的公共语言,6.2 关系数据库,6.2.3 SQL语言简介,SQL语言的动词,6.1 数据库系统概述 6.2 关系数据库 6.3 常见数据库管理系统6.4 管理信息系统,第6章 数据库原理与技术基础,6.3 常见数据库管理系统,6.3.1 小型数据库 1)
44、AccessAccess是Office办公套件中一个极为重要的组成部分。刚开始时微软公司是将Access单独作为一个产品进行销售的,后来微软发现如果将Access捆绑在Office中一起发售,将带来更加可观的利润,于是第一次将Access捆绑到Office 97中,成为Office套件中的一个重要成员。现在它已经成为Office办公套件中不可缺少的部件了。自从1992年开始销售以来,Access 已经卖出了超过6000万份,现在它已经成为世界上最流行的桌面数据库管理系统。后来微软公司通过大量地改进,将Access的新版本功能变得更加强大。不管是处理公司的客户订单数据、管理自己的个人通讯录,还是
45、大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。,6.3 常见数据库管理系统,6.3.1 小型数据库2)Xbase系列数据库理论的研究在20世纪70年代后期进入较为成熟的阶段,随着80年代初IBM/PC及其兼容机的广泛使用,数据库产品的代表作之一、Ashton-Tate公司开发的dBASE很快进入微机世界,成为一个相当普遍而且受欢迎的数据库管理系统。用户只需键入简单的命令,即可轻易完成数据库的建立、增添、修改、查询、索引以及产生报表或标签,或者利用其程序语言开发应用系统程序。由于它易于使用,功能较强,很快成为80年代中期的主导数据库系统(极盛时期曾在个人计算机的数据库管理系
46、统市场上的占有率高达80-85%)。继dBASE II 之后,dBASE III,dBASE III Plus 以及dBASE IV相继诞生,其功能逐渐增强。,6.3 常见数据库管理系统,6.3.1 小型数据库2)Xbase系列但是,dBASE存在的一些缺陷使其应用受到越来越大的限制。首先,它运行速度慢,这在建立大型数据库时显得尤为突出。其次,早期的dBASE不带编译器,仅是解释执行,后来虽然增加了编译器,但编译与解释执行时存在许多差异。再就是它的设计标准,随着dBASE增强版本的出现,由于各版本之间不相兼容,其标准变得越来越模糊,Ashton-Tate公司不再定义dBASE标准,就连dBAS
47、E IV本身也未按标准设计。后来,人们常用Xbase来表示各种数据库管理系统的程序设计语言。,6.3 常见数据库管理系统,6.3.1 小型数据库2)Xbase系列1986年,与dBASE III Plus兼容的FoxBASE+推出后不久,FoxPro/LAN也投入市场,一时间引起轰动。1987年之后相继推出了FoxBASE+2.0和2.10,这两个产品不仅速度上超越其前期产品,而且还扩充了对开发者极其有用的语言,并提供了良好的界面和较为丰富的工具。1991年,FoxPro 2.0推出。由于使用了Rushmore 查询优化技术、先进的关系查询与报表技术以及整套第四代语言工具,FoxPro 2.0
48、在性能上大幅度地提高了。该公司常用的广告用语为“Nothing Runs Like The Fox”(没有东西跑得像狐狸那么快)。,6.3 常见数据库管理系统,6.3.1 小型数据库2)Xbase系列FoxPro 2.0第一次引入SQL结构化查询语言以及和直观的按例关系查询;它采用存入备注数据字段的方式,不产生独立存在的.obj 文件;其目标程序若再配合Fox Distribution Kit链接后即变成可直接在DOS下执行的.exe文件;同时,它支持鼠标操作,不需额外处理即允许用户在程序中加入鼠标功能;它的应用程序生成器(application builder)、特有的项目管理程序(proj
49、ect manager),在寻找文件、记录文件所在位置以及处理编译后的目标程序的方式,是同一时期其他同类产品所不能比拟的。这使得FoxPro荣获当年度美国诸多杂志所评选的多项优秀成果奖。,6.3 常见数据库管理系统,6.3.1 小型数据库2)Xbase系列1992年微软收购了Fox公司,把FoxPro纳入自己的产品中。它利用自身的技术优势和巨大的资源,在不长的时间里开发出FoxPro 2.5、FoxPro 2.6等大约20个软件产品及其相关产品,包括DOS、Windows、Mac和Unix四个平台的软件产品。1995年6月,微软推出了Visual FoxPro 3.0版。接着又很快推出Visu
50、al FoxPro 5.0及其中文版。1998年发布了可视化编程语言集成包Visual Stadio 6.0,它是可运行于Windows 95/98/NT平台的32位数据库开发系统。它是能充分发挥32位微处理器的强大功能、直观易用的编程工具。,6.3 常见数据库管理系统,6.3.2 大型数据库 1)OracleOracle是以高级SQL为基础的大型关系数据库,通俗地 讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(Client/Server)体系结构的数据库之一。Oracle具有如下特点:(1)Oracle 7.X以来引入了共享SQL和多线索服务器体系结构。这减