Access数据库教程(2010版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-10 06:39:56

点击下载

作者:苏林萍主编

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Access数据库教程(2010版)

Access数据库教程(2010版)试读:

前言

数据库技术是计算机最广泛的应用领域之一,随着计算机的迅速发展,数据库技术的应用范围在不断扩大。为了适应数据库技术的广泛应用,提高学生的数据库应用水平,目前许多高校将“数据库应用技术”课程作为全校的非计算机专业学生的公共课程。

本书以“学生成绩管理”数据库为例,从建立Access 2010数据库开始,逐步建立数据库中的各种对象,围绕“学生成绩管理”数据库案例介绍Access 2010的主要功能。书中包含了大量的教学实例可以供教师和学生使用。每章包含丰富的习题供学生练习,可以巩固和加深对所学知识的理解和掌握。针对不同的章节设置了多个实验,全书共有18个实验,每个实验都有明确的实验目的和具体的实验要求,针对较难的实验给出了实验操作提示。学生可以通过实验来提高数据库的应用能力。

教育部考试中心组织的“全国计算机等级考试二级Access数据库程序设计”自2013年下半年开始使用Access 2010版本,本书内容涵盖“全国计算机等级考试二级Access数据库程序设计考试大纲”最新版的要求,书中的习题和实验符合考试大纲的要求。

本书的参考学时为64学时,建议采用理论和实验并行的教学模式。理论教学32学时,实验32学时,各章教学学时和实验学时分配如下表:

本书的编写人员都是多年从事高校数据库技术教学和计算机等级考试培训的优秀一线教师,具有扎实的理论基础和丰富的教学经验。其中,第1章、第2章、第3章由谢萍编写,第4章、第5章由单波编写,第6章、第7章由金花编写,第8章、第9章、第10章由苏林萍编写。全书由苏林萍统稿。

本书可以作为高等院校非计算机专业的“数据库应用技术”课程的教材,也可以作为参加“全国计算机等级考试(二级 Access 数据库程序设计)”科目考试的考生的参考教材,还可以作为读者自学数据库技术的参考书。

为了帮助教师使用本书进行教学工作,编者准备了教学课件,包括各章的电子教案(PPT文档)、书中的实例数据库等,需要者可从人民邮电出版社教学服务与资源网(http://www.ptpedu.com.cn)免费下载。

由于编者水平有限,书中难免有错误和不妥之处,恳请广大读者批评指正。编者2013年10月  第1章数据库基础

从最初的人工管理到当今的各种数据库系统,计算机的数据管理方式发生了翻天覆地的变化。数据库技术作为数据管理的有效手段,极大地促进了计算机应用的发展。目前,许多单位的业务开展都离不开数据库系统,如学校的教务管理、银行业务、证券市场业务、飞机票火车票订票业务、超市业务、电子商务等。

本章主要介绍数据库、数据库系统、数据模型、关系运算等基础理论知识。1.1 信息、数据与数据处理

信息是现实世界在人们头脑中的反应。它以文字、数据、符号、图像、声音等形式记录下来,进行传递和处理,为人类的生产、建设、管理等提供依据。

数据是指那些可以被计算机接受,并能够被计算机处理的符号。数据的格式往往和具体的计算机系统有关。

数据是信息的载体,信息是数据的内涵。数据只有经过解释才有意义,成为信息。例如,“长城”、“45”只是单纯的数据,没有具体意义,而“长城的门票是45元”就是一条有意义的信息;此外,“长城汽车本季度销售量达到45万辆”也是一条有意义的信息。

数据处理就是把数据加工处理成为信息的过程,它包括对数据的采集、整理、存储、检索、加工和传输等过程。数据处理的目的是从繁杂的数据中获取所需的信息,作为指挥生产、优化管理的决策依据。数据处理的核心问题就是数据管理。1.2 数据管理技术的发展

自从世界上第一台电子数字计算机诞生以来,数据管理技术经历了人工管理、文件系统和数据库系统3个阶段。

1.人工管理阶段

在20世纪50年代中期以前,受到当时计算机软硬件技术的限制,计算机主要用于科学计算。硬件的外部存储设备只有磁带、卡片和纸带;软件方面还没有操作系统,更没有进行数据管理的软件。在这个阶段,计算机没有数据管理功能,程序员将程序和数据编写在一起,每个程序都有属于自己的一组数据,程序之间数据不能共享,即便是几个程序处理同一批数据,也必须重复输入,数据冗余度很大。人工管理阶段应用程序与数据的关系如图1-1所示。图1-1 人工管理阶段应用程序与数据的关系

例如,要求分别编写程序求出10个数的最大值和最小值。采用人工管理方式的C语言程序如图1-2所示。图1-2 人工管理阶段应用程序与数据处理程序示例

从这个例子可以看出,在人工管理阶段,程序和数据是不可分割的整体。每个程序都有自己的数据,而且数据不独立,完全依赖于程序,根本无法实现数据共享,冗余度极大。

2.文件系统阶段

到了20世纪60年代中期,计算机不仅用于科学计算,还大量用于信息处理。硬件上已经有了可直接存取的存储设备(如磁盘),软件上出现了操作系统。在这个阶段,数据以文件形式存储在外存上,由操作系统中的文件系统统一管理,按名存取。这就使得程序与数据可以分离,程序与数据之间有了一定的独立性。不同应用程序可以共享一组数据,实现了数据以文件为单位的共享,文件系统阶段应用程序与数据的关系如图1-3所示。

例如,同样是分别编写程序求出 10 个数的最大值和最小值。采用文件系统管理,可以将这10个数存放在一个文本文件(如data.txt)中,在Windows的附件程序记事本中可以编辑文本文件,如图1-4所示。然后,由应用程序从该文件中获得数据,实现数据共享。具体的C语言程序如图1-5所示。此外,如果想继续求出另外10个数的最大值或最小值,不需改变程序,只需修改文本文件中的数据即可,使得程序与数据具有一定的独立性。图1-3 文件系统阶段应用程序与数据的关系图1-4 data.txt 文本文件图1-5 文件系统阶段应用程序与数据处理程序示例

从这个例子可以看出,在文件系统阶段,数据可以长期保存,由文件系统统一管理。但由于文件中只保存了数据,并未存储数据的结构信息,导致读取文件数据的操作必须在程序中实现,从而使程序与数据之间的独立性仍然有局限性,数据不能完全脱离程序。

3.数据库系统阶段

到了20世纪60年代后期,随着计算机应用的日益广泛,数据管理的规模越来越大,为了解决数据的独立性问题,实现数据的统一管理,达到数据共享的目的,数据库技术应运而生,使数据管理进入了数据库系统阶段。数据库系统阶段应用程序与数据的关系通过数据库管理系统实现,如图1-6所示。数据库系统提供了对数据更高级、更有效的管理,使数据不再面向特定的某个或多个应用,而是面向整个应用系统。

例如,同样是求10个数的最大值和最小值。采用数据库系统方式实现时,可以将这10个数存放在Access数据库的一个data表(见图1-7)中,然后通过Access数据库管理系统提供的标准化的查询语句就能够得出结果。图1-6 数据库系统管理阶段应用程序与数据的关系图1-7 数据库表中的数据

求最大值的标准化查询语句为:

Select Max(Num)From data

求最小值的标准化查询语句为:

Select Min(Num)From data

从这个例子可以看出,在数据库系统阶段,数据库中不仅保存了数据,还保存了数据表的结构信息(如 Num),程序中可以不用考虑数据的存取问题,具体的工作由数据库管理系统完成。只有数据库系统阶段,数据才真正实现了独立和共享。

随着数据库技术的发展和科学技术的不断进步,各个行业领域对数据库技术提出了更多的需求,除了传统的数据库系统(层次数据库系统、网状数据库系统和关系数据库系统)之外,还出现了分布式数据库系统、并行数据库系统、面向对象数据库系统、多媒体数据库系统等多种数据库系统。1.3 数据库系统的组成

数据库系统(DataBase System,DBS)是指引入数据库技术后的计算机系统。数据库系统实际上是一个集合体,除了计算机硬件系统和操作系统外,还包括数据库、数据库管理系统、应用程序、相关人员等组成,如图1-8所示。图1-8 数据库系统的组成

1.数据库

数据库(DataBase,DB)是按照一定方式组织起来的有联系、可共享的数据集合。数据库中的数据按照一定的数据模型进行组织、描述和存储,能够被多个用户共享,并独立于应用程序。

2.数据库管理系统

数据库管理系统(DataBase Management System,DBMS)是数据库系统的核心软件,是在操作系统的支持下工作,为用户提供使用数据库的界面。DBMS的基本功能如下。(1)数据定义功能。DBMS 提供了数据定义语言(Data Description Language,DDL)供用户定义数据库的结构、数据之间的联系等。(2)数据操纵功能。DBMS 提供了数据操纵语言(Data Manipulation Language,DML)来完成用户对数据库提出的各种要求,以实现数据库的插入、修改、删除、检索等基本操作。(3)数据库运行控制功能。DBMS 提供了数据控制语言(Data Control Language,DCL)来实现对数据库的并发控制、安全性检查、完整性约束等功能。(4)数据库维护功能。DBMS提供了一些实用程序,用于对已经建立好的数据库进行维护,包括数据库的备份与恢复、数据库的重组与重构、数据库性能监视与分析等。(5)数据库通信功能。DBMS还提供了与通信有关的实用程序,以实现网络环境下的数据通信功能。

3.应用程序

应用程序是指利用各种开发工具开发的满足特定应用环境的程序。不管使用什么数据库管理系统和开发工具,应用程序的运行模式主要分为两种:客户机/服务器(C/S)模式和浏览器/服务器(B/S)模式。

腾讯QQ软件、股票系统等都是C/S模式。在客户机上需要安装专门的应用程序,后台的数据库主要完成数据的管理工作。用来开发客户机端应用程序的开发工具很多,如 Visual Basic、Visual C++、Delphi 等。

Internet上的网络购物系统、火车票订票系统等都是B/S模式。在客户机上只需要安装浏览器(如 Internet Explorer),通过浏览器进行访问。但在 B/S 模式下需要开发 Web 应用程序,Web 应用程序的开发技术主要有ASP、PHP、JSP、ASP.NET等。

4.相关人员

相关人员主要有数据库管理员、应用程序开发人员、最终用户3类。

● 数据库管理员(DataBase Administrator,DBA)负责确定数据库的存储结构和存取策略,定义数据库的安全性要求和完整性约束条件,监控数据库的使用和运行。

● 应用程序开发人员负责应用程序的需求分析,数据库概要设计,编写访问数据库的应用程序。

● 最终用户通过应用程序的接口或数据库查询语言访问数据库。1.4 数据库系统的特点

数据库系统具有数据结构化、共享性高且冗余度低、独立性高、数据统一管理等特点。

1.数据结构化

数据库系统实现了整体数据的结构化,数据按一定的结构形式存储在数据库中,而且数据之间是有联系的。数据库中的数据不再仅针对某个应用,而是面向整体。

2.数据共享性高且冗余度低

因为数据是面向整体的,所以数据可以被多个用户、多个应用程序共享使用,因此可以大大减少数据冗余,节约存储空间,避免数据之间的不相容性与不一致性。

3.数据独立性高

数据独立性是指数据和应用程序之间的独立性。把数据的定义从程序中分离出去,并且数据的存取由DBMS来负责,使开发人员可以把精力放在应用程序的编写上,从而大大减少应用程序的维护和修改。数据独立性包括逻辑独立性和物理独立性。

逻辑独立性是指用户的应用程序与数据的总体逻辑结构是相互独立的,即当数据的总体逻辑结构改变时,只要局部逻辑结构不变,那么应用程序就可以不变。例如,增加新的数据项、增加或删除数据之间的联系,都不必修改原有的应用程序。

物理独立性是指当数据的物理存储结构改变时,数据的逻辑结构不会改变,从而应用程序也不必改变。例如,当改变数据库的存储位置时(存到另一个磁盘上),不必修改原有的应用程序。

4.数据由DBMS统一管理和控制

DBMS负责数据的安全性控制、数据的完整性检查、数据库的并发访问控制、数据库的故障恢复等功能。1.5 数据库系统的内部体系结构

数据库系统的内部体系结构是三级模式和二级映射结构,如图1-9所示。三级模式分别是外模式、概念模式和内模式,二级映射分别是外模式到概念模式的映射和概念模式到内模式的映射。

1.数据库系统的三级模式(1)外模式。外模式也称为子模式或用户模式,它是数据库用户(包括应用程序开发人员和最终用户)能够看见和使用的局部数据逻辑结构的描述,是与某一应用程序相关的数据的逻辑表示。针对不同的用户需求,一个概念模式可以有若干个外模式。(2)概念模式。概念模式也称为逻辑模式,它是数据库中全局数据逻辑结构的描述,是所有用户(或应用程序)的公共数据视图。它不涉及具体的硬件环境与平台,也与具体的软件环境无关。图1-9 数据库系统的内部体系结构(3)内模式。内模式又称为存储模式或物理模式,它是对数据库物理结构和存储方法的描述,是数据在存储介质上的保存方式。内模式对一般用户是透明的,通常不需要关心内模式的具体实现细节,但它的设计会直接影响到数据库的性能。

数据库系统的三级模式反映了3个不同的环境及要求,其中内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式;概念模式处于中间层,它反映了设计者的数据全局逻辑要求;而外模式处于最外层,它反映了用户对数据的要求。一个数据库只有一个内模式,但可以有多个外模式。

2.数据库系统的二级映射(1)外模式到概念模式的映射。外模式到概念模式的映射定义了外模式与概念模式之间的对应关系。外模式是用户的局部模式,而概念模式是全局模式。当概念模式发生改变时,由数据库管理员负责改变相应的映射关系,从而使外模式保持不变,也就没有必要修改应用程序,保证了数据的逻辑独立性。(2)概念模式到内模式的映射。概念模式到内模式的映射定义了数据的全局逻辑结构与物理存储结构间的对应关系。当数据库的存储结构发生改变时,由数据库管理员负责改变相应的映射关系,可以使概念模式保持不变,从而保证了数据的物理独立性。1.6 数据模型

数据模型描述的是数据库中数据的组织形式,是设计数据库系统的核心。1.6.1 数据模型中的相关概念

1.实体

客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个学生、一名教师、一门课程、一本书、一场比赛等。

2.属性

描述实体的特性称为属性。一个实体可以由若干个属性来刻画,如一个学生实体有学号、姓名、性别、出生日期、班级等方面的属性。属性的具体取值称为属性值。例如,某一个男学生实体的“性别”属性的属性值应是“男”。

3.实体集

同类型实体的集合称为实体集。例如,对于“学生”实体来说,全体学生就是一个实体集;对于“课程”实体来说,学校开设的所有课程也是一个实体集。

4.实体之间的联系

实体之间的联系是指两个不同实体集之间的联系。实体集A与实体集B之间的联系可分为3种类型。(1)一对一联系(1︰1)。实体集A中的一个实体最多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B之间是一对一联系。例如,一个班级只有一位班长,而一个班长也只能管理一个班级,所以班级和班长两个实体集是一对一联系。(2)一对多联系(1︰n)。对于实体集A中的一个实体,实体集B中有多个实体与之对应;反之,对于实体集 B 中的每一个实体,实体集 A 中最多只有一个实体与之对应,则称实体集 A与实体集B之间是一对多联系。例如,一个班级有多个学生,而一个学生只能属于一个班级,所以班级和学生两个实体集是一对多联系。(3)多对多联系(m︰n)。对于实体集A中的每一个实体,实体集B中有多个实体与之对应;反之,对于实体集B中的每一个实体,实体集A中也有多个实体与之对应,则称实体集A与实体集B之间是多对多联系。例如,一个学生可以选修多门课程,而一门课程可以被多名学生选修,所以学生和课程两个实体集是多对多联系。

5.E-R图

E-R(Entity-Relationship,实体-联系)方法是最广泛使用的数据库设计方法,该方法使用E-R图来描述现实世界中实体及实体之间的联系。E-R图使用3种图形来描述实体、属性和联系,如图1-10所示。图1-10 E-R 图示例(1)实体:用矩形表示,矩形内写上实体的名称。(2)属性:用椭圆表示,椭圆内写明属性名,并用连线将其与对应的实体连接起来。(3)联系:用菱形表示,菱形内写明联系名,并用连线分别与有关的实体连接起来,同时标注上联系的类型。1.6.2 数据模型分类

目前常用的数据模型有3种:层次模型、网状模型和关系模型。

1.层次模型

按照层次结构的形式组织数据的数据模型,用树形结构表示实体之间的联系,具有如下两个特点:(1)有且仅有一个根结点(没有双亲的结点);(2)除根结点之外的其他结点有且只有一个双亲结点。

层次模型只能反映实体间的一对多的联系,具有层次清晰、构造简单、处理方便等优点,但不能表示含有多对多联系的复杂结构。图1-11所示为院系数据库的层次结构,树根为院系,每一个院系都有自己的教师、学生以及开设的课程。图1-11 层次模型示例

2.网状模型

按照网状结构组织数据的数据模型,易于实现实体间多对多的联系,具有如下两个特点:(1)允许一个以上的结点没有双亲结点;(2)一个结点可以有多个双亲结点。

网状模型能更好地描述现实世界,但结构复杂,用户不容易掌握。图1-12 所示为教师、学生、课程3个实体之间的联系。由于教师要讲授课程,而学生要学习课程,所以教师和学生都与课程有联系。图1-12 网状模型示例

3.关系模型

关系模型是用二维表格来表示实体集以及实体之间联系的模型。二维表格由表头和若干行数据组成。用二维表格表示实体集时,一行表示一个实体,一列表示实体的一个属性;用二维表格表示实体之间联系时,一行表示一个联系,一列表示联系的一个属性。

例如,学生和课程两个实体集以及它们之间的联系可以分别用3个二维表格表示,用关系模式表示如下。

• 学生实体集:学生表(学号,姓名,性别,出生日期,班级,照片,…)

• 课程实体集:课程表(课程编号,课程名称,学时,学分,开课状态)

• 学生-课程的联系:选课成绩表(学号,课程编号,成绩,学年,学期)

表1-1所示为课程实体集的部分课程信息,表中一行表示一门课程,一列对应一个属性。其他实体集和联系的详细信息将在后续章节中详细介绍。表1-1 课程表

续表

关系模型建立在严格的数学概念基础上,自出现以后就发展迅速。基于关系模型建立的数据库系统称为关系数据库系统。目前,世界上许多计算机厂商都开发了各自的关系数据库管理系统,如美国甲骨文公司的 Oracle、美国微软公司的 SQL Server、美国 Sybase 公司的 Sybase 以及美国IBM 公司的 DB2 等大型的关系数据库管理系统。除此之外,还有一些较为小型的关系数据库管理系统,如 dBase、Visual FoxPro、Access 等。本书主要介绍 Microsoft Office 2010 组件中的 Access2010关系数据库管理系统。1.7 关系数据库

关系数据库是建立在关系模型基础上的数据库,是由若干张二维表格组成的集合。它借助于集合代数等概念和方法来处理数据库中的数据。1.7.1 关系模型的基本术语

1.关系

关系是满足关系模型基本性质的二维表格,一个关系就是一张二维表格。例如,表1-1中的课程表就是一个关系。

对关系的描述称为关系模式,一个关系模式对应一个关系的结构,关系模式的一般格式为:关系名(属性名1,属性名2,…,属性名n)。例如,表1-1课程表的表模式为:课程表(课程编号,课程名称,学时,学分,开课状态)。

2.属性(字段)

二维表格中的一列称为一个属性,每一列都有一个属性名。在Access中将一列称为一个字段,每个字段都有字段名称。例如,表1-1课程表中有5列,因此它有5个字段,字段名称分别为课程编号、课程名称、学时、学分和开课状态。

3.元组(记录)

二维表格中的一行称为一个元组,在Access中称为记录。例如,表1-1课程表中有9行,因此它有9条记录,其中的一行(例如,00600611,数据库应用,56,3.5,True)为一条记录。

4.分量

记录中的一个字段值称为一个分量。关系模型要求每一个分量必须是不可分的数据项,即不允许表中还有表。例如,表 1-1 课程表中记录的每一个字段值(例如,00600611,数据库应用, 56,3.5,True)都是不能再分的数据。

5.域

字段的取值范围称为域。例如,选课成绩表中成绩字段的值只能在[0,100]的范围。

6.主关键字

关系中能够唯一标识一条记录的字段集(一个字段或几个字段)称为主关键字,也称为主键或主码。例如,在学生表中,学号可以唯一确定一个学生,因此“学号”字段就可以设置为主关键字。在课程表中,课程编号可以唯一确定一门课程,因此“课程编号”字段就可以设置为主关键字。在选课成绩表中,一个学生可以选修多门课程,就有可能出现多条学号相同,课程编号不同的记录,但是学号和课程编号可以唯一确定一个学生某门课程的成绩,因此可以将它们组合在一起成为主关键字。

7.外部关键字

如果一个字段集(一个字段或几个字段)不是所在关系的主关键字,而是另一个关系的主关键字,则该字段集称为外部关键字,也称为外键或外码。例如,在选课成绩表中,“学号”字段就是一个外部关键字,“课程编号”字段也是一个外部关键字。1.7.2 关系的性质

一个关系就是一张二维表格,但并不是所有的二维表格都是关系,关系应具有以下7个性质:(1)元组个数有限;(2)元组均各不相同;(3)元组次序可以交换;(4)元组的分量是不可分的基本数据项;(5)属性名各不相同;(6)属性次序无关;(7)属性分量具有与该属性相同的值域。

由关系的性质可知,二维表格的每一行都是唯一的,而且每一列的数据类型都是相同的。1.7.3 关系完整性约束

关系完整性约束是为了保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性包括域完整性、实体完整性、参照完整性和用户定义完整性。其中域完整性、实体完整性和参照完整性是关系模型必须满足的完整性约束条件,而用户定义完整性是针对具体应用领域需要遵循的约束条件。

1.域完整性

域完整性是保证关系中每个字段取值的合理性。例如,字段的数据类型、格式、值域范围、是否允许空值等。举例来说,如果字段类型是整数,那么它就不能取任何非整数的数值。

2.实体完整性

实体完整性是指关系的主关键字不能重复也不能取空值,因此组成主关键字的每一个字段值都不能为空值。例如,学生表的主关键字“学号”字段的值既不能重复也不能为空值,选课成绩表的主关键字“学号、课程编号”两个字段的值都不能为空值。

3.参照完整性

参照完整性是建立在两个关系上的约束条件。关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过主关键字和外部关键字实现的。参照完整性要求一个关系中外关键字的取值只能是与其关联的关系中主关键字的值或空值。例如,选课成绩表中含有与学生表的主关键字“学号”相对应的列(外关键字),则选课成绩表中“学号”字段的取值只能是在学生表中已有学号的范围。

4.用户定义完整性

用户定义完整性是根据应用环境的要求和实际需要,对某一具体应用所涉及的数据提出约束性条件。例如,学生表中性别字段的值只能是“男”或“女”其中之一。1.7.4 关系规范化

在关系数据库中,如果关系模式没有设计好,就会出现数据冗余、记录的插入、删除和更新异常等问题。关系规范化的目的就是将结构复杂的关系模式分解为结构简单的关系模式,从而使一个关系模式只描述一个概念、一个实体或实体间的一种联系。因此,关系规范化的实质就是概念的单一化。

由于规范化的程度不同,就产生了不同的范式,目前主要有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF范式、第四范式(4NF)和第五范式(5NF)。在关系数据库中,1NF是对关系模式的基本要求,不满足1NF的数据库就不是关系数据库。1NF是最基本的规范形式,它要求关系中的每一个属性值都必须是不可再分割的数据项,即一个属性不能有多列值。其他范式的详细内容在此不做详述。1.7.5 关系运算

关系运算有两类:一类是传统的集合运算(并、交、差、笛卡儿积等);另一类是专门的关系运算(选择、投影、连接、除等),关系运算的结果也是一个关系。

1.传统的集合运算

传统的集合运算包括并、交、差和广义笛卡儿积运算。参与并、交、差运算的两个关系必须具有相同的结构。假设“喜欢唱歌的学生 R”和“喜欢跳舞的学生 S”是两个结构相同的关系,分别如表1-2和表1-3所示,下面基于这两个关系介绍集合的并、交、差运算。表1-2 喜欢唱歌的学生R表1-3 喜欢跳舞的学生S(1)并运算。R和S是两个结构相同的关系,则R和S两个关系的并运算可以记作R∪S,运算结果是将两个关系的所有元组组成一个新的关系,若有相同的元组只保留一个。喜欢唱歌的学生R和喜欢跳舞的学生S并运算的结果如表1-4所示。表1-4 喜欢唱歌或喜欢跳舞的学生(R∪S)(2)交运算。R和S是两个结构相同的关系,则R和S两个关系的交运算可以记作R∩S,运算结果是将两个关系中的公共元组组成一个新的关系。喜欢唱歌的学生R和喜欢跳舞的学生S交运算的结果如表1-5所示。表1-5 既喜欢唱歌又喜欢跳舞的学生(R∩S)(3)差运算。R和S是两个结构相同的关系,则R和S两个关系的差运算可以记作R-S,运算结果是将属于R但不属于S的元组组成一个新的关系。喜欢唱歌的学生R和喜欢跳舞的学生S差运算的结果如表1-6所示。表1-6 喜欢唱歌但不喜欢跳舞的学生(R-S)(4)广义笛卡儿积运算。假设R和S是两个结构不同的关系,R有m个属性,i个元组;S有n个属性,j个元组。则两个关系的广义笛卡儿积可以记作R×S,运算结果是一个具有m+n个属性,i*j个元组的关系。

假定两个关系学生R和课程S如表1-7和表1-8所示,则R×S的运算结果如表1-9所示。表1-7 学生R表1-8 课程S表1-9 学生选修课程(R×S)

2.专门的关系运算

在关系代数中,有4种专门的关系运算:选择、投影、连接和除运算。(1)选择运算。选择运算是指从指定关系中选择出满足给定条件的元组组成一个新的关系。选择运算是一元运算,通常记作:

σ (R)<条件表达式>

其中σ是选择运算符,R是关系名。例如,在表1-2所示的“喜欢唱歌的学生R”关系中,选出“英语1201”班级的学生,可以写为:σ (喜欢唱歌的学生R),运算结果如表1-10所示。班级=“英语1201”表1-10 英语 1201 喜欢唱歌的学生(σ 运算)(2)投影运算。投影运算是指从指定关系中选择出某些属性组成一个新的关系。投影运算是一元运算,通常记作:

其中∏是投影运算符,A 是投影的属性或属性组,R 是关系名。例如,在表 1-2 所示的“喜欢唱歌的学生R”关系中,投影出所有学生的学号和姓名,可以写为:∏(喜欢唱歌的学生R),运学号,姓名算结果如表1-11所示。表1-11 学号和姓名(∏运算)(3)连接运算。连接运算是关系的横向结合,它把两个关系中满足连接条件的元组组成一个新的关系。连接运算是二元运算,通常记作:R⋈S。其中⋈是连接运算符,R和S是关系名。

连接的类型有自然连接、内连接、左外连接、右外连接、全外连接等,其中最常用的是自然连接。自然连接是按照公共属性值相等的条件进行连接,要求两个关系中必须有相同的属性,并且在结果中消除重复的属性。

例如,将表1-12中的学生R与表1-13所示的选课成绩S两个关系进行自然连接运算,其自然连接的结果如表1-14所示。表1-12 学生R表1-13 选课成绩S表1-14 学生选课成绩单(4)除运算。关系R和S的除运算应该满足的条件是:关系S的属性全部包含在关系R中,且关系R中存在关系S中没有的属性。关系R和S的除运算表示为R÷S。除运算的结果也是一个关系,该关系的属性由R中除去S中的属性之外的属性组成,元组由R与S中在所有相同属性上有相等值的那些元组组成。

例如,将表1-15所示的学生选课表R与表1-16所示的所有课程S进行除运算,目的是找出选修所有课程的学生,其运算结果如表1-17所示。表1-15 学生选课表R表1-16 所有课程S

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载