Access数据库实用教程(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-04 20:46:42

点击下载

作者:郑小玲

出版社:人民邮电出版社

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

Access数据库实用教程(第2版)

Access数据库实用教程(第2版)试读:

第2版前言

在我国目前的大学教育中,计算机教育作为所有专业学生的培养内容不断在强化。无论哪一类专业都要面对信息处理的问题。在信息化进程不断加速、信息量急剧膨胀的情况下,各专业开发本领域的专用数据库应用系统的需求有增无减。如何提高学生的信息处理水平,充分掌握数据库管理系统软件工具的应用,已成为计算机教育及课程改革的关键问题。现在绝大多数学校选择“Access 数据库”作为计算机基础课程中的重要内容。

作者于2007年编写的《Access数据库实用教程》一书自出版以来,受到了众多高等院校、高职高专院校的欢迎,前后印刷了数次。经过几年的教学实践,考虑到目前Access主流版本的变化,以及Access数据库应用领域的发展和扩大,也考虑到更多学生对数据库知识和Access数据库操作知识学习的需要,在征求教师建议、分析读者反馈意见和保留原书特色的基础上,对教材进行了全面的修订,这次修订的主要内容如下。(1)将Access版本从2003升级到2010,这样本书将以目前主流的Access数据库版本为基本环境介绍数据库的相关知识和操作方法,可以满足实际应用的需要。(2)将贯穿全书的“教学管理”数据库案例中的众多实例进行了重新组织和整理,使其更加合理,更具有针对性。(3)增加了Access 2010提供的新功能,为全面掌握Access 2010的操作功能提供参考。(4)增加了数据库组织和安全管理的内容,为应对目前计算机应用中的安全问题提供帮助。(5)对本书第1版中部分章节所存在的一些问题进行了校正和修改。(6)进一步贴近全国计算机等级二级考证需求,修改和补充了有针对性的实验和习题。

在本书的修订过程中,作者始终以理论联系实际为出发点,采用案例引导方式组织本书内容,通过贯穿全书的一个经典案例,将 Access 的主要功能、使用方法与数据库编程融为一体,突出解决问题能力的培养。修订后的教材,内容比以前更具针对性和实用性,内容的叙述更加准确、通俗易懂和简明扼要,这样更有利于教师的教学和读者的自学。为了让读者能够在较短的时间内掌握教材的内容,及时地检查自己的学习效果,巩固和加深对所学知识的理解,每章后面均附有丰富的习题和实验,并在配套的实验教材中对其进行分析和讲解。

全书参考总学时数为 68 学时,建议采用理论实践一体化的教学模式。各章教学学时和实验学时分配参考如下。续表

教学学时和实验学时分配的出发点是:强化学生逻辑思维及自学能力的培养,提高学生Access的编程水平,加强程序设计内容的学时,减少讲解Access基本功能和操作的学时。Access基本功能和操作通过上机实验和自学掌握。

本书由郑小玲统稿。其中,第1章由卢山编写,第2章、第3章、第4章和第9章由郑小玲编写,第5章和第6章由旷野编写,第7章和第8章由张宏编写。在本书编写和修订过程中,得到了首都经济贸易大学信息学院杨一平、牛东来、赵丹亚教授和徐天晟副教授的支持和帮助。刘晓帆、马燕曹、赵丹丹、刘威、欧阳武、马荟、欧阳志芒等同志也给予大力的支持,并协助做了大量工作,在此向他们表示衷心的感谢。

由于编写时间仓促,加之编者水平有限,书中难免存在疏漏和不足,敬请广大读者批评指正。编者2012年12月第1章Access基础

Access 是一种在 Windows 环境下对数据库进行维护和管理的数据库管理系统,用户可以通过Access提供的各类视图、向导访问数据库,或者编写程序,形成数据库应用系统。

计算机应用人员只有掌握数据库系统的基础知识,熟悉数据库管理系统的特点,才能开发出适合的数据库应用系统。本章介绍数据库的基本概念和关系数据库设计的基础知识。1.1 数据库基础知识

数据库技术产生于 20 世纪 60 年代末,是数据管理的最新技术,也是计算机科学的重要分支。数据库技术广泛地应用于社会生活的各个方面,在以大批量数据的存储、组织和使用为其基本特征的仓库管理、销售管理、财务管理、人事档案管理以及企事业单位的生产经营管理等事物处理活动中,都要使用数据库管理系统来构建专门的数据库应用系统,并在数据库管理系统的控制下组织和使用数据,执行管理任务。不仅如此,在情报检索、专家系统、人工智能、计算机辅助设计等各种非数值计算领域以及基于计算机网络的信息检索、远程信息服务、分布式数据处理、复杂市场的多方面跟踪监测等方面,数据库技术也都得到了广泛应用。1.1.1 数据管理技术发展过程

数据管理技术的发展,与计算机硬件(主要是外部存储器)、系统软件及计算机应用的范围有着密切的联系。数据管理技术的发展经历了人工管理、文件系统、数据库系统和高级数据库系统等几个阶段。

1.人工管理阶段

20世纪50年代中期前,计算机主要用于科学计算。当时,由于计算机技术还很落后,没有磁盘等直接存取的存储设备,而且缺少必要的操作系统和数据库管理系统等相应软件的支持,对数据的管理是由应用程序设计者即程序员考虑和安排,由应用程序来管理。这种应用程序自带数据的设计方法,必然导致一组数据对应一个应用程序,两个应用程序之间不能共享数据,即数据是面向应用程序的,如图1-1所示。图1-1 数据的人工管理

这一时期的数据管理技术具有如下特点。(1)数据管理由应用程序完成

数据的组织、存储结构、存取方法、输入输出及修改等操作均由应用程序控制。在程序设计阶段,程序员除编制程序代码外,还要考虑数据的逻辑结构定义和物理组织等内容。(2)数据不能共享

由于数据是依赖于具体的应用程序而存在的,即使两个应用程序使用的是完全相同的一组数据,这组数据也必须在各自的应用程序中分别定义、分别输入,无法共享,导致应用程序之间同一组数据的重复存放,造成数据冗余。(3)数据缺乏独立性

由于数据和应用程序组织在一起,当数据的逻辑结构或物理结构发生改变时,对应的应用程序必须做相应的改变;同理,当应用程序改变时,数据的逻辑结构或物理结构也要发生相应的改变。(4)数据不能保存

由于计算机硬件只有磁带、卡片及纸带等存储设备,加上这一时期计算机主要用于科学计算,一般无需将数据长期保存,即在程序运行过程中输入所需的源数据,程序运行结束后,释放程序和数据所占有的存储空间,将来若需要再进行同一运算操作时,必须再次输入源数据。

2.文件系统阶段

20世纪50年代后期到60年代中期,计算机开始应用于信息管理。在计算机硬件方面,出现了磁鼓、磁盘等直接存取数据的外部存储设备。在软件方面,已经有了高级语言和操作系统。操作系统中的文件系统可以帮助用户将所需数据以文件的形式存储并对其进行各种处理。

在文件系统阶段,一个应用程序可以处理多个数据文件,文件系统在程序与数据之间起到接口作用。程序与数据有一定的独立性,程序和数据分开存储,有了程序文件和数据文件的区别。数据文件可以长期保存在外存储器上被多次存取。但是,文件系统也有很大的局限性,如一个数据文件基本对应于一个具体应用程序,不同的应用程序不能共享相同的数据,同一数据项可能出现在多个数据文件中,因而数据的重复存储等问题仍然存在,如图1-2所示。图1-2 数据的文件系统

这一时期的数据管理技术具有如下特点。(1)数据管理由文件管理系统完成

应用程序和数据文件可以从物理上分开,两者之间及数据文件的逻辑结构和存储结构之间均可以通过文件系统所提供的功能进行相互转换。(2)数据共享性差、冗余度大

文件管理系统中,数据文件基本上是为特定的应用程序设计的,数据的格式没有统一的规定,只有当一组应用程序所使用的数据在内容或格式上完全相同时,数据才可以被共享。也就是说,数据文件仍然是面向具体应用的,因此数据的冗余度仍然很大。另外,由于数据文件是应用程序各自管理的,因此当需要对存储的具有部分重叠的数据进行维护时,操作处理流程不仅复杂,也容易出现数据的不一致性。(3)数据独立性差

文件管理系统的产生使数据具有“设备独立性”,即数据的存储设备发生改变时不影响应用程序。但是,文件管理系统中的数据文件是为某一特定的应用程序服务的,当数据的存储结构或逻辑结构发生变化时,应用程序也要做相应的改变,即数据不具备“物理结构独立性”和“逻辑结构独立性”。(4)数据可长期保存

数据以独立数据文件的形式长期保存在磁鼓或磁盘等外部存储介质上,数据文件可以被应用程序重复使用。

3.数据库系统阶段

从20世纪60年代后期开始,计算机性能得到很大提高,特别是出现了大容量磁盘,而且价格便宜。同时,计算机应用于管理的规模更加庞大,需要计算机管理的数据量急剧增长,并且对数据共享的需求日益增强。文件系统的数据管理方法已无法适应开发应用系统的需要。为了解决数据的独立性问题,实现数据的统一管理,达到数据共享的目的,发展了数据库技术。

数据库技术的主要目的是有效管理和存取大量的数据资源,包括提高数据的共享性,使多个用户能够同时访问数据库中的数据;减少数据的冗余度,提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。

为了让多种应用程序并发地使用数据库中的数据,必须使数据与程序具有较高的独立性。这就需要一个软件系统对数据实行专门管理,提供安全性和完备性等统一控制机制,方便用户以交互式和程序方式对数据库进行操作。这个软件系统就是数据库管理系统。

图1-3 所示为数据的数据库系统管理示意图。图1-3 数据的数据库系统管理示意图

这一时期的数据管理技术具有如下特点。(1)数据结构化

采用数据模型表示复杂的数据结构,数据模型不仅描述数据本身的特征,还可以描述数据之间的相互关系。这样的数据不再面向特定的某个或多个应用,而是面向整个应用系统。(2)数据共享程度高

数据库系统是从整体角度看待和描述数据,数据不再面向某个具体的应用,而是面向整个系统,即允许多个应用程序同时访问数据库中的数据,甚至可以同时访问数据库中的同一数据,达到数据的共享。(3)数据独立性强

数据库独立性包括物理独立性和逻辑独立性两个方面。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构的改变不影响用户应用程序。(4)数据冗余度小

数据冗余度是指同一数据重复存储程度。由于数据库系统的数据面向整个应用系统,所以数据冗余明显减少。(5)加强对数据的保护

数据库系统采用数据的安全控制、数据的完整性控制、并发控制和数据恢复来保护数据。

4.高级数据库系统阶段

从20世纪70年开始,数据库技术又有了很大的发展,表现如下。(1)数据库方法。美国数据系统语言协会下属的数据库任务组对数据库方法进行了系统的讨论、研究,最终形成DBTG(Data Base Task Group)报告。DBTG方法和思想应用于各种计算机系统,出现了许多商品化数据库系统,它们大都是基于网状模型和层次模型的。(2)商用数据库系统的运行,使数据库技术日益广泛地应用到企业管理、事务处理、交通运输、信息检索、军事指挥、政府管理和辅助决策等各个方面,深入到生产、生活的各个领域。数据库技术成为实现和优化信息系统的基本技术。(3)关系方法的理论研究和软件系统的研制取得了很大的成果。

这一阶段的主要标志是 20 世纪 80 年代出现的分布式数据库系统(Distributed DataBase System,DDBS),90年代出现的面向对象数据库系统(Object-Oriented DataBase System,OODBS)。1.1.2 数据库系统

数据库系统(DataBase System,DBS)是指拥有数据库技术支持的计算机系统。它可以实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享服务。数据库系统由计算机系统(硬件和基本软件)、数据库、数据库管理系统、数据库应用系统和有关人员(数据库管理员、应用设计人员、最终用户)组成。

1.数据

数据(Data)是数据库中存储的基本对象。数据在大多数人头脑中的第一反应就是数字,如68、22.5、−1.5、$150 等。其实数字只是最简单的一种数据,是数据的一种传统和狭义的理解。广义的理解,数据的种类很多,文字、图形、图像、动画、影像、声音等都是数据。

可以对数据做如下定义:描述事物的物理符号序列称为数据。描述事物的物理符号可以是用来表示长度、体积、重量之类的数字数值,也可以是人名或地名、图形、图像、动画、影像、声音等非数值数据。

2.数据库

数据库(DataBase,DB),顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。

人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步查询,进一步加工处理,以获得有用的信息。过去人们把数据存放在文件柜里,当数据越来越多时,从大量的文件中查找数据就十分困难。现在借助计算机和数据库技术科学地保存和管理大量复杂的数据,可方便而充分地利用这些宝贵的信息资源。

严格地讲,数据库是长期存放在计算机内,有组织的、大量的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为多个用户、多个应用程序共享。

3.数据库管理系统

既然数据库能存放数据,那么数据库是如何科学地组织和存储数据,如何高效地获取和维护数据的呢?完成这个任务的是一个系统软件—数据库管理系统(DataBase Management System,DBMS)。

数据库管理系统是位于用户与操作系统(OS)之间的数据管理软件。数据库管理系统与操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。其主要功能包括以下几个方面。(1)数据定义功能

DBMS提供了数据定义语言(Data Definition Language,DDL),通过它可以方便地对数据库中的相关内容进行定义。例如,对数据库、表、索引进行定义。(2)数据操纵功能

DBMS提供了数据操纵语言(Data Manipulation Language,DML),通过它可以实现对数据库的基本操作。例如,对表中数据进行查询、插入、删除和修改等操作。(3)数据库的运行管理

数据库在建立、运行和维护时由数据库管理系统统一管理、统一控制,这是 DBMS 的核心部分。它包括并发控制(即处理多个用户同时使用某些数据时可能产生的问题)、安全性检查、完整性约束条件的检查和执行、数据库内部维护(如索引的自动维护)等。所有的数据库操作都要在这些控制程序的统一管理下进行,以保证数据的安全性、完整性以及多个用户对数据库的并发使用。(4)数据库的建立和维护功能

数据库的建立和维护功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重新组织功能和性能监视、分析功能等。这些功能通常由一些实用程序来完成。

4.数据库应用系统

数据库应用系统是为特定应用开发的数据库应用软件。数据库管理系统为数据的定义、存储、查询和修改提供支持,而数据库应用系统是对数据库中的数据进行处理和加工的软件,它面向特定应用。例如,以数据库为基础的财务管理系统、人事管理系统、教学管理系统和生产管理系统等都属于数据库应用系统。

一般在不引起混淆的情况下常常把数据库系统简称为数据库。1.1.3 数据模型

模型,特别是具体的实物模型,人们并不陌生。例如,一组建筑设计沙盘、一架精致的航模飞机,都是具体的实物模型。模型是现实世界特征的模拟和抽象。要将现实世界转变为机器能够识别的形式,必须经过两次抽象,即使用某种概念模型为客观事物建立概念级的模型,将现实世界抽象为信息世界,然后再把概念模型转变为计算机上某一DBMS支持的数据模型,将信息世界转变为机器世界。

1.实体的概念

概念模型是现实世界到信息世界的第一层抽象,是现实世界到计算机的一个中间层次。概念模型是数据库设计的有力工具,是数据库设计人员与用户之间进行交流的语言。它必须具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,且简单、清晰、易于用户理解。(1)实体(Entity)

客观存在并可相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件。例如,一个学生、一个院系等属于实际事物;一次订货、选修若干门课程、一场比赛等活动是抽象的事件。

同一类型的实体的集合称为实体集(Entity Set),即具有同一类属性的事物的集合。例如,全体教师的集合、所有选课的情况等。(2)属性(Attribute)

实体所具有的某一特性称为属性。实体可具有若干个属性,例如,教师实体用若干属性(教师编号、姓名、性别、出生日期、职称)来描述。属性的具体取值称为属性值,用以刻画一个具体的实体。例如,属性值的组合(95010,张乐,女,11/10/69,助教)在教师名册中就表征了一个具体人。(3)关键字(Keyword)

如果某个属性或属性组合能够唯一地标识出实体集中的各个实体,可以选作关键字,也称为码。例如,学生的编号可以作为学生实体的关键字,学生的姓名则不能作为学生实体的关键字,因为姓名可能重复;而选课成绩实体则应将学生编号和课程编号的组合作为关键字。(4)联系(Relationship)

实体集之间的对应关系称为联系,它反映现实世界事物之间的相互关联。联系分为两种,一种是实体内部各属性之间的联系,另一种是实体之间的联系。

2.E-R模型

概念模型是对信息世界建模的,因此应该能完整、准确地表示实体及实体之间的联系。概念模型的表示方法有很多,其中以P.P.S.Chen于1976年提出的实体-联系方法(E-R方法)最为著名。该方法用E-R图来描述现实世界的概念模型,也称为E-R模型(Entity Relationship Model)。

E-R模型有三个要素:实体、属性和实体间的联系。(1)实体:用矩形表示,框内标注实体名称。(2)属性:用椭圆表示,并用连线与实体或联系连接起来。(3)实体间的联系:用菱形框表示,框内标注联系名称,并用连线将菱形框分别与有关实体相连。

实体间的联系按联系方式可分为以下三种类型。

① 一对一联系

如果实体集A中的每一个实体至多和实体集B中的一个实体有联系,反过来,B中的每个实体至多和A中的一个实体有联系,则称实体集A与实体集B具有一对一联系,记为1:1。例如,电影院中的观众与座位之间、乘车旅客与车票之间、学校与校长之间都是一对一联系,如图1-4所示。图1-4 一对一联系

② 一对多联系

如果实体集A中的每个实体可以和实体集B中的n个实体(n≥0)有联系,而实体集B中的每个实体至多和实体集A中的一个实体有联系,则称实体集A与实体集B具有一对多的联系,记为1:n。例如,省对县、城市对街道、院系对学生等都是一对多联系。如图1-5所示。图1-5 一对多联系

③ 多对多联系

如果实体集A中的每个实体可以和实体集B中的n个实体(n≥0)有联系,反过来,实体集B中的每个实体也可以和实体集A中的m个实体(m≥0)有联系,则称实体集A与实体集B具有多对多的联系,记为m:n。例如,商品与顾客、学生与课程等都是多对多联系。如图1-6所示。图1-6 多对多联系

3.数据模型

数据模型是对客观事物及其联系的数据描述,是对数据库中数据逻辑结构的描述,把信息世界数据抽象为机器世界数据。每个数据库管理系统都是基于某种数据模型的。在目前数据库领域中,常用的数据模型有3种:层次模型、网状模型和关系模型。(1)层次模型

层次模型是以树型结构来表示实体及实体之间联系的模型,由父节点、子节点和连线组成。网中的每一个节点代表一个实体集,节点间连线表示实体间的联系。所有的连线均由父节点指向子节点,具有同一父节点的节点称为兄弟节点。父节点与子节点之间为一对多的联系。

层次模型具有如下两个特点:

① 有且仅有一个节点,无父节点,这个节点即称为根节点;

② 其他节点有且仅有一个父节点。

图1-7所示为一个层次模型的示例。

层次模型实际上是由若干代表实体之间一对多联系的基本层次组成的一棵树,树的每一个节点代表一个实体集。该模型的实际存储数据由链接指针来体现联系。

层次模型的优点是简单、直观、处理方便、算法规范,缺点是不能表达复杂的数据结构。图1-7 层次模型示例(2)网状模型

用网状结构来表示实体及实体之间联系的数学模型称为网状模型。它的特点是:

① 一个节点可以有多个父节点;

② 多个节点可以无父节点。

图1-8所示为一个网状模型的示例。图1-8 网状模型示例

网状模型的父节点与子节点之间为一对多的联系,系统用单向或双向环行链接指针来体现这种联系。

网状模型的优点是可以表示复杂的数据结构,存取数据的效率比较高;缺点是结构复杂,每个问题都有其相对的特殊性,实现的算法难以规范化。(3)关系模型

用二维表结构来表示实体及实体之间联系的模型称为关系模型。在关系模型中,数据的逻辑结构是满足一定条件的二维表,一个二维表就是一个关系。描述问题的所有二维表的集合构成了一个关系模型。

在关系模型中,无论实体本身还是实体间的联系均可用称为“关系”的二维表来表示,使得描述实体的数据本身能够自然地反映它们之间的联系。而传统的层次模型和网状模型是使用链接指针来存储和体现联系的。1.2 关系数据库概念

关系数据库采用了关系模型作为数据的组织方式,这就涉及关系模型中的一些基本概念。而且对关系数据库进行查询时,若要找到需要的数据,就要对关系进行一定的关系运算。1.2.1 关系模型

关系模型由关系数据结构、关系操作集合和完整性规则三部分组成。

1.数据结构

在关系模型中,数据的逻辑结构是一张二维表,由行和列组成。表1-1、表1-2分别是一个教师表和一个授课表。表1-1 教师表表1-2 授课表

关系模型的主要术语如下。(1)关系

在关系模型中,一个关系就是一张二维表,每个关系有一个关系名。在数据库中,一个关系存储为一个数据表。(2)属性

表(关系)中的列称为属性,每一列有一个属性名,对应数据表中的一个字段。(3)域

一个属性的取值范围是该属性的域。(4)元组

表中的行称为元组,每一行是一个元组,对应数据表中的一个具体记录,元组的各分量分别对应于关系的各个属性。(5)候选码

如果表中的某个属性或属性组能唯一地标识一个元组,称该属性或属性组为候选码(候选关键字)。(6)主码

若一个表中有多个候选码,可以指定其中一个为主码(主关键字)。(7)外码

如果表中的一个属性(字段)不是本表的主码或候选码,而是另外一个表的主码或候选码,这个属性(字段)称为外码(外部关键字)。(8)关系模式

一个关系的关系名及其全部属性名的集合简称为关系模式,也就是对关系的描述,一般表示为关系名(属性名1,属性名2,…,属性名n)

表1-1所示的教师表中的每一行是一条教师记录,是关系的一个元组。教师编号、姓名、性别、工作时间、政治面目、职称等均是属性名。其中教师编号是唯一识别一条记录的属性,是此表的关键字。对于教师编号这一属性,域是“00000”~“99999”;对于姓名属性,域是2~4个汉字组成的字符串;对于性别属性,域是“男”、“女”两个值中取一个。

教师表的关系模式可记为:教师表(教师编号,姓名,性别,工作时间,政治面貌,职称)。

表1-2所示的授课表中的教师编号为授课表的外部关键字。

2.关系操作集合

在关系模型中,以功能强大的关系操作集合对存储在该关系中的数据进行操纵。关系模型中常用的关系操作集合包括查询操作和更新操作两大部分。查询操作包括:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等;更新操作包括:增加(Insert)、删除(Delete)、修改(Update)等。

3.完整性规则

关系模型的完整性规则是对关系的某种约束条件。关系模型有三类完整性约束:实体完整性、参照完整性和用户定义完整性。其中,实体完整性和参照完整性是关系模式必须满足的完整性约束条件,被称为关系的两个不变性。(1)实体完整性

每个关系都有一个主关键字,每个元组主关键字的值应是唯一的。主关键字的值不能为空,否则,无从识别元组,这就是实体完整性约束。

例如,为了保证教师表的实体完整性,设置“教师编号”字段为主关键字,“教师编号”字段不能取重复值和空值,它唯一标识教师表中的教师实体。(2)参照完整性

在关系模型中,实体之间的联系是用关系来描述的,因而存在关系与关系之间的引用。这种引用可通过外部关键字来实现。参照完整性规则是对关系外部关键字的规定,要求外部关键字取值必须是客观存在的,即不允许在一个关系中引用另一个关系里不存在的元组。

例如,在教师表和授课表中,“教师编号”是教师表的主关键字,“教师编号”是授课表的外部关键字。根据参照完整性规则,要求授课表“教师编号”的取值可以是以下两种情况。

① 取空值。表明该课程还未分配给任何教师。

② 若非空值,则它必须是教师表中“教师编号”存在的值,即授课表“教师编号”的值必须和教师表“教师编号”的值保持一致,因为一门课程不能分配给一个不存在的教师。(3)用户定义完整性

由用户根据实际情况,对数据库中数据所作的规定称为用户定义完整性规则,也称为域完整性规则。通过这些规则限制数据库只接受符合完整性约束条件的数据值,从而保证数据库的数据合理可靠。

例如,教师表中的“性别”数据只能是“男”和“女”。对“工作时间”、“政治面貌”、“职称”数据也该有一定的限制,不能是任意值。1.2.2 关系运算

对关系数据库进行查询时,若要找到需要的数据,就要对关系进行一定的关系运算。在关系数据库中,关系运算有三种:选择、投影和连接。

1.选择

选择运算是在关系中选择满足某些条件的元组。也就是说,选择运算是在二维表中选择满足指定条件的行。

选择是从行的角度进行的运算,即从水平方向抽取元组。经过选择运算得到的结果可以形成新的关系,其关系模式不变,但其中的元组是原关系的一个子集。

例1-1 从表1-1 所示的教师表中找出所有女教师的元组。

按照条件:性别="女",对教师表进行选择运算,得到如表1-3所示的结果。表1-3 选择运算结果

2.投影

投影运算是从关系模式中指定若干个属性组成新的关系,即在关系中选择某些属性列。

投影是从列的角度进行的运算,相当于对关系进行垂直分解。经过投影可以得到一个新关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同。

例1-2 从表1-1 所示的教师表中找出姓名、性别和职称属性的值。

对教师表按照指定的姓名、性别、职称三个属性进行投影操作,得到如表1-4所示的结果。表1-4 投影运算结果

3.连接

连接运算将两个关系模式通过公共的属性名拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。

选择和投影运算的操作对象只是一个表,相当于对一个二维表进行切割。连接运算需要两个表作为操作对象。如果需要连接两个以上的表,应当两两进行连接。

例1-3 设有教师表和授课表两个关系,如表1-1和表1-2所示。查找授课教师的姓名、性别、职称、课程编号。

由于姓名、性别、职称属性在教师表中,而课程编号在授课表中,因此需要将这两个关系连接起来。可以通过两个关系的公共属性名“教师编号”将它们连接起来。连接条件必须指明两个关系的“教师编号”对应相等,然后对连接生成的新关系,按照所需要的4个属性进行投影。此例的查询结果如表1-5所示。表1-5 连接运算结果1.3 数据库设计基础

数据库设计是针对某个具体的应用问题进行抽象,构造概念模型,设计最佳的数据结构,建立数据库及其应用系统的过程。如果使用较好的数据库设计过程,就能迅速、高效地创建一个设计完善的数据库,为访问所需信息提供方便。在设计时打好坚实的基础,设计出结构合理的数据库,将会节省日后整理数据库所需的时间,并能更快地得到精确的结果。1.3.1 数据库设计的规范化

关系的规范化理论是由E.F.Codd于1971年系统提出的。规范化理论为数据结构定义了规范化的关系模式,简称范式(Normal Forms,NF)。它提供了判别关系模式设计的优劣标准,为数据库设计提供了严格的理论基础。

使用范式表示关系模式满足规范化的等级,满足最低要求的为第一范式,在第一范式的基础上满足进一步要求的可升级为第二范式,其余依次类推,规范化的进一步等级为第二范式、第三范式。

1.第一范式(1NF)

设R是一个关系模式,如果R中的每个属性都是不可再分的最小数据项,则称R满足第一范式或R是第一范式,第一范式简记为1NF。

属于第一范式的关系应该满足的基本条件是每个元组的每个属性中只能包含一个数据项,不能将两个或两个以上的数据项“挤入”到一个属性中。

例1-4 教师关系如表1-6 所示。判断教师关系是否为第一范式,并规范教师关系。表1-6 教师关系

教师关系不符合第一范式。因为在这个关系中,“电话号码”不是基本数据项,它由另外两个基本数据项组成。规范化教师关系,只需将所有数据项都表示为不可分的最小数据项即可。规范化后的结果如表1-7所示。表1-7 修改后的教师关系

2.第二范式(2NF)

如果关系模式R是第一范式,且所有非主属性都完全依赖于其主关键字,则称R满足第二范式或R是第二范式,第二范式简记为2NF。

例1-5 学生选课成绩关系如表1-8所示。该关系是否符合第二范式,并规范学生选课关系。表1-8 学生选课成绩关系

在这个关系中,学生编号和课程编号共同组成主关键字,其中成绩完全依赖于主关键字,但姓名不完全依赖于这个组合关键字,却完全依赖于学生编号。课程名称、周学时、学分完全依赖于课程编号。因此这个关系不符合第二范式。

使用上述关系模式会存在以下几个问题。(1)数据冗余:假设有100名学生选修同一门课,就要重复100次相同学分。(2)更新复杂:若调整某门课程的学分,相应元组(记录)的学分值都要更新,不能保证修改后的不同元组一门课程的学分完全相同。(3)插入异常:如果开一门新课,可能没有学生选修,没有学生编号主关键字,只能等到有学生选修才能把课程编号和学分加入。(4)删除异常:如果学生已经毕业,由于学生编号不存在,选修记录也必须删除。

为了消除这种部分依赖,可以进行关系模式的分解,将上述关系分解为三个关系,带下划线的属性是关系的主关键字。

学生(学生编号,姓名,性别,年龄,入校日期,团员否,简历,照片)

选课成绩(学生编号,课程编号,成绩)

课程(课程编号,课程名称,周学时,学分)

3.第三范式(3NF)

在介绍第三范式之前,需要先介绍传递依赖的概念。

假设关系中有A、B、C三个属性,传递依赖是指关系中B属性依赖于主关键字段A,而C属性依赖于B属性,称字段C传递依赖于A。

如果关系模式R是第二范式,且所有非主属性对任何主关键字都不存在传递依赖,则称R满足第三范式或R是第三范式,第三范式简记为3NF。

例 1-6 分析例 1-5 规范化后的三个关系,判断是否都符合第三范式,并对不符合第三范式的关系进行规范化。

在例1-5规范化后的三个关系中,学生和选课成绩关系中的所有属性与主关键字之间仅存在完全依赖关系,并不存在传递依赖关系,因此符合第三范式。但是在课程关系中,如果学分是根据学时的多少来决定的,那么学分就是通过周学时传递依赖于课程编号。

解决方法是消除其中的传递依赖,将课程关系进一步分解为两个关系。

课程(课程编号,课程名称,周学时)

学分(周学时,学分)

另一种解决方法是将不必要的属性删除。如果课程关系中,周学时属性与学分属性取值相同,只保留学分属性即可。因此也可将例1-5中的课程关系规范为

课程(课程编号,课程名称,学分)1.3.2 数据库设计的步骤

事实上,设计数据库的主要目的是为了设计出满足实际应用需求的实际关系模型。一般情况下,设计一个数据库要经过需求分析、确定所需表、确定所需字段、确定主关键字和确定表间联系等步骤。

例1-7 根据下面介绍的教学管理基本情况,设计“教学管理”数据库。

某学校教学管理的主要工作包括教师档案及教师授课情况管理、学生档案及学生选课情况管理等几项。教学管理涉及的主要数据如表1-6和表1-8所示。由于该校对教学管理中的信息不够重视,信息管理比较混乱,使得很多信息无法得到充分、有效的应用。解决问题的方法之一是利用数据库组织、管理和使用教学信息。

1.需求分析

确定建立数据库的目的,以确定数据库中要保存哪些信息。需求分析是指从调查用户单位着手,深入了解用户单位数据流程,数据的使用情况,数据的数量、流量、流向、数据性质,并且做出分析,最终给出数据的需求说明书。

用户的需求主要包括以下三方面。(1)信息需求。即用户要从数据库获得的信息内容。信息需求定义了数据库应用系统应该提供的所有信息,注意清楚描述系统中数据的数据类型。(2)处理需求。即需要对数据完成什么处理功能及处理的方式。处理需求定义了系统的数据处理的操作,应注意操作执行的场合、频率、操作对数据的影响等。(3)安全性和完整性要求。在定义信息需求和处理需求的同时必须相应确定安全性、完整性约束。

在分析中,数据库设计者要与数据库的使用人员进行交流,了解现行工作的处理过程,共同讨论使用数据库应该解决的问题和使用数据库应该完成的任务,并以此为基础,进一步讨论应保存哪些数据以及怎样保存这些数据。另外,还应尽量收集与当前处理有关的各种表格。

根据需求分析的内容,对例1-7所描述的教学管理情况进行分析可以确定,建立“教学管理”数据库的目的是为了解决教学信息的组织和管理问题。主要任务应包括教师信息管理、教师授课信息管理、学生信息管理和选课情况管理等。

2.确定所需表

确定数据库中的表是数据库设计过程中技巧性最强的一步。因为根据用户想从数据库中得到的结果(包括要打印的报表、要使用窗体、要数据库回答的问题)不一定能得到如何设计表结构的线索,还需要分析对数据库系统的要求,推敲那些需要数据库回答的问题。分析的过程是对所收集到的数据进行抽象的过程。抽象是对实际事物或事件的人为处理,抽取共同的本质特性。

在教学管理业务的描述中提到了教师表和学生选课成绩表。但如果以这两个表作为“教学管理”数据库的基本表,是不合理的。如1.3.1小节中所分析的,两个表都不符合数据库设计的规范化原则。因此根据已确定的“教学管理”数据库应完成的任务以及规范化理论,应将“教学管理”的数据分为5类,并分别存放在教师、学生、课程、选课成绩和授课等5个表中。

3.确定所需字段

确定每个表中要保存哪些字段。通过对这些字段的显示或计算应能够得到所有需求信息。确定的字段应使关系(表)满足第三范式。

根据前面的分析,按照规范化理论,可将“教学管理”数据库中5个表的字段确定下来,如表1-9所示。表1-9 “教学管理”数据库表

确定5个表及每个表所包含的字段的思路及过程可参见1.3.1小节。

4.确定关键字

关系型数据库管理系统能够迅速查找存储在多个独立表中的数据并组合这些信息。为使其有效地工作,数据库的每个表都必须有一个或一组字段可用以唯一确定储存在表中的每个记录,即主关键字。

例如,“教学管理”数据库的5个表中,教师表、学生表、课程表和选课成绩表都设计了主关键字。教师表中的主关键字是“教师编号”,学生表中的主关键字为“学生编号”,课程表中的主关键字为“课程编号”,选课成绩表中的主关键字为“学生编号”和“课程编号”的组合。为了使表结构清晰,也可以为授课表设计主关键字“授课ID”。设计后的表结构如表1-10所示。表1-10 确定主关键字后的“教学管理”数据库表

5.确定表间联系

确定表间联系的目的是使表的结构合理,不仅存储了所需要的实体信息,并且反映出实体之间客观存在的联系。表与表之间的联系需要通过一个共同字段,因此确保两个表之间能够建立起联系,应将其中一个表的主关键字添加到另一个表中。

例如,授课表中有“课程编号”和“教师编号”,而“教师编号”是教师表中的主关键字,“课程编号”是课程表中的主关键字。这样,教师表与授课表、课程表与授课表就可以建立起联系。

图1-9所示为“教学管理”数据库中5个表之间的关系。如何定义表之间的关系,将在后续章节中详细介绍。图1-9 “教学管理”数据库中5个表之间的关系

通过前面各个步骤确定了所需要的表、字段和联系,经过反复修改之后,就可以开发数据库应用系统的原型了。1.4 Access数据库管理系统概述

Access是一个功能强大、方便灵活的关系型数据库管理系统。使用Access,用户可以管理从简单的文本、数字到复杂的图片、动画和音频等各种类型的数据。在Access中,可以构造应用程序来存储和归档数据,可以使用多种方式进行数据的筛选、分类和查询,还可以通过显示在屏幕上的窗体来查看数据,或者生成报表将数据按一定的格式打印出来,并支持通过 VBA 编程来处理数据库中的数据。1.4.1 Access的基本特点

与其他关系型数据库管理系统相比,Access具有以下几个特点。

1.存储文件单一

一个 Access 数据库文件中包含了该数据库中的全部数据表、查询以及其他与之相关的内容。文件单一,便于计算机外存储器的文件管理,也使用户操作数据库及编写应用程序更为方便。而在其他关系型数据库系统中,每个数据库由许多不同的文件组成,往往是一个数据库表存为一个文件。

2.面向对象

Access是一个面向对象的、采用事件驱动的新型关系型数据库。利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象都定义一组方法和属性,以定义该对象的行为和属性,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性,完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便,可以完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。

3.支持广泛

Access可以通过ODBC(Open DataBase Connectivity,开放数据库互联)与Oracle、Sybase、FoxPro等其他数据库相连,实现数据的交换和共享。并且,作为Office办公软件包中的一员, Access还可以与Word、Outlook、Excel等其他软件进行数据的交换和共享,利用Access强大的DDE(Dynamic Data Exchange,动态数据交换)和OLE(Object Link Embed,对象的链接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档等。

4.具有Web数据库发布功能

借助Microsoft SharePoint Server 中新增的Access Services,可以通过新的Web数据库在Web上发布数据库。联机发布数据库,然后通过Web访问、查看和编辑它们。没有Access客户端的用户可以通过浏览器打开Web窗体和报表,对其所做的更改将自动同步。无论是大型企业、小企业主、非盈利组织,还是只想找到更高效的方式来管理个人信息的用户,Access都可以更轻松地完成任务,且速度更快、方式更灵活、效果更好。

5.操作使用方便

Access是一个可视化工具,其风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表设计器、查询设计器、窗体设计器、报表设计器、宏设计器等许多可视化的操作工具,以及数据库向导、表向导、查询向导、窗体向导、报表向导等多种向导,可以使用户很方便地构建一个功能完善的数据库系统。

Access中嵌入的VBA(Visual Basic for Application)编程语言是一种可视化的软件开发工具,编写程序时只需将一些常用的控件摆放到窗体上,即可形成良好的用户界面,必要时再编写一些VBA代码即可形成完整的程序。实际上,在编写数据库操作程序时,如摆放必要的控件、编写基本的代码这样的工作,也都可以自动进行。1.4.2 Access的基本对象

Access将数据库定义成一个.accdb文件,并分成表、查询、窗体、报表、宏和模块六个对象。

1.表

表是 Access 数据库最基本的对象,是具有结构的某个相同主题的数据集合。表由行和列组成,如图1-10所示。表中的列称为字段,用来描述数据的某类特征。表中的行称为记录,用来反映某一实体的全部信息。记录由若干字段组成。能够唯一标识表中每一条记录的字段或字段组合称为主关键字,在Access中也称为主键。

在表内可以定义索引,以加快查找速度。一个数据库中的多个表并不是孤立存在的,通过有相同内容的字段可在多个表之间建立联系。例如,“教学管理”数据库中的教师表和授课表之间通过共有字段“教师编号”建立了联系。

2.查询

查询是通过设置某些条件,从表中获取所需要的数据。按照指定规则,查询可以从一个表、一组相关表和其他查询中抽取全部或部分数据,并将其集中起来,形成一个集合供用户查看。将查询保存为一个数据库对象后,可以在任何时候查询数据库的内容。

例如,可以创建一个将“学生”表中的“学生编号”、“姓名”字段与“选课成绩”表中的“平时成绩”、“考试成绩”字段以及“课程”表中的“课程名称”字段拼接起来的查询,如图1-11所示。

在数据表视图中显示一个查询时,看起来很像一个表。但查询与表有本质的区别。首先,查询中的数据最终都是来自于表中的数据。其次,查询结果的每一行可能由好几个表中的字段构成;查询可以包含计算字段,也可以显示基于其他字段内容的一些结果。可以将查询看作是以表为基础数据源的“虚表”。图1-10 课程表图1-11 学生选课成绩查询结果

3.窗体

窗体是Access数据库对象中最具灵活性的一个对象,是数据库和用户的一个联系界面,用于显示包含在表或查询中的数据和操作数据库中的数据。在窗体上摆放各种控件,如文本框、列表框、复选框、按钮等,分别用于显示和编辑某个字段的内容,也可以通过单击、双击等操作,调用与之联系的宏或模块(VBA程序),完成较为复杂的操作。

在窗体中,不仅可以包含普通的数据,还可以包含图片、图形、声音、视频等多种对象,如图1-12所示。图1-12 窗体示例

当数据表中的某一个字段与另一数据表中的多个记录相关联时,还可以通过主窗体和子窗体进行处理,如图1-13所示。

4.报表

报表可以按照指定的样式将多个表或查询中的数据显示(打印)出来。报表中包含了指定数据的详细列表。报表也可以进行统计计算,如求和、求最大值、求平均值等。报表与窗体类似,也是通过各种控件来显示数据的,报表的设计方法也与窗体大致相同。

5.宏

宏是若干个操作的组合,用来简化一些经常性的操作。用户可以设计一个宏来控制系统的操作,当执行这个宏时,就会按这个宏的定义依次执行相应的操作。宏可以打开并执行查询、打开表、打开窗体、打印、显示报表、修改数据及统计信息、修改记录、修改表中的数据、插入记录、删除记录、关闭表等操作。图1-13 主/子窗体示例

当数据库中有大量重复性的工作需要处理时,使用宏是最佳的选择。宏可以单独使用,也可以与窗体配合使用。用户可以在窗体上设置一个命令按钮,单击这个按钮时,就会执行一个指定的宏。

宏有多种类型,它们之间的差别在于用户触发宏的方式。宏可以是包含一系列操作的一个宏,也可以是由若干个宏组成的宏组。另外,还可以在宏操作中添加条件来控制其是否执行。

6.模块

模块是用VBA语言编写的程序段,它以Visual Basic为内置数据库程序语言。对于数据库一些较为复杂或高级的应用功能,需要使用VBA代码编程实现。通过在数据库中添加VBA代码,可以创建出自定义菜单、工具栏和具有其他功能的数据库应用系统。

模块由声明、语句和过程组成。Access有两种类型的模块:标准模块和类模块。标准模块包含与任何其他对象都无关的常规过程,以及可以从数据库任何位置运行的经常使用的过程。标准模块和某个特定对象相关的类型模块的主要区别在于其范围和生命周期。类模块属于一种与某一特定窗体或报表相关联的过程集合,这些过程均被命名为事件过程,作为窗体或报表处理某些事件的方法。1.4.3 Access的工作界面

Access 2010采用新式功能区用户界面,替代了早期版本中的多层菜单和工具栏。“功能区”以选项卡形式将各种相关功能组合在一起,使用功能区可以快速查找相关命令,这种选项卡式的功能区,使各种功能按钮不再深深嵌入菜单中,从而大大方便了用户的使用。

启动Access 2010,首先出现Backstage视图,创建或打开数据库后进入Access的工作界面,如图1-14所示。

1.快速访问工具栏“快速访问工具栏”就是在Access窗口标题栏左侧显示的一个标准工具栏。它提供了对“保存”、“撤销”、“恢复”等常用命令的访问。单击快速访问工具栏右侧的下拉箭头按钮,可以弹出“自定义快速访问工具栏”菜单,此时可以在该菜单中设置需要在该工具栏上显示的图标,如图1-15所示。

2.功能区

功能区是 Access 2010 中菜单和工具栏的主要替代工具,它位于程序窗口顶部的区域,提供了Access 2010中主要的命令界面。功能区将需要使用的菜单、工具栏、任务窗格和其他用户界面组件集中在一起。功能区由一系列包含命令的选项卡组成,如图1-14所示。功能区是使用最多的区域。图1-14 Access工作界面图1-15 自定义快速访问工具栏

3.命令选项卡

在 Access 2010 中,功能区中的主要命令选项卡包括“文件”、“开始”、“创建”、“外部数据”和“数据库工具”。每个选项卡都包含多组相关命令,这些命令组展现了相关操作。(1)“文件”选项卡“文件”选项卡是一个特殊的选项卡,它与其他选项卡的结构、布局和功能有所不同。启动 Access 2010 后,首先打开“文件”选项卡界面,也称Backstage视图;在Access工作界面中,单击“文件”选项卡,也可以进入“文件”选项卡界面,如图1-16所示。

这个界面的下方分为左右两个窗格,左侧窗格主要由“保存”、“打开”、“新建”、“信息”、“最近使用文件”、“保存并发布”等一组命令组成,右侧窗格显示所选命令的相关命令按钮。选择“最近所用文件”命令,右侧窗格显示最近打开的数据库文件;选择“信息”命令,右侧窗格显示“压缩和修复数据库”和“用密码进行加密”等命令按钮;选择“保存并发布”命令,右侧窗格显示“数据库另存为”、“对象另存为”、“发布到Access Services”等三个命令按钮。在“文件”选项卡界面中,可以对整个数据库进行各种操作,可以调整、维护或共享数据库。(2)“开始”选项卡“开始”选项卡由“视图”、“剪贴板”、“排序和筛选”、“记录”、“查找”、“窗口”、“文本格式”和“中文简繁转换”命令组组成,如图1-17所示。图1-16 “文件”选项卡界面图1-17 功能区“开始”选项卡

利用“开始”选项卡中的工具,可以完成的功能主要有:选择不

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载