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