《现代大学计算机基础》课件第7章_第1页
《现代大学计算机基础》课件第7章_第2页
《现代大学计算机基础》课件第7章_第3页
《现代大学计算机基础》课件第7章_第4页
《现代大学计算机基础》课件第7章_第5页
已阅读5页,还剩193页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章数据信息管理7.1实现“数字化生活”的关键技术—数据库系统

7.2在计算机中模拟现实—数据模型

7.3二维表的王国—关系数据库基础

7.4遏制非法用户侵入—数据库安全

7.5数据库技术之冰山一角—Access数据库

7.1实现“数字化生活”的关键技术—数据库系统

7.1.1数据为什么要管理

收集数据的目的是为了高效的利用数据,通过对收集的海量数据进行分析统计得到有价值的信息。如果收集了大量的数据却无法方便地使用这些数据,那么收集数据也就变得毫无意义了。数据管理就是利用计算机技术对数据进行有效的收集、存储、处理和应用的过程,目的是充分有效的发挥数据的作用。数据管理经历了人工管理、文件系统管理和数据库管理三个发展阶段。

1.人工管理

20世纪50年代中期之前,计算机主要用于科学计算。当时的计算机软、硬件都不完善,没有操作系统,没有数据管理的软件,程序员在设计程序时不仅要规定数据的逻辑结构,还要设计其物理结构;没有大容量的存储设备,当时的外存只有卡片、纸带、磁带。这一阶段数据管理的主要特点是:

(1)数据不保存。当时计算机的主要用途是科学计算,只是在计算某一课题时才将数据输入,计算完就撤走。一般不需要将数据长期保存。

(2)应用程序管理数据,数据不共享、冗余大。没有相应的软件负责数据的管理工作,数据需要由应用程序自己设计、说明和管理。数据的组织是面向应用程序的,一组数据只能对应一个应用程序。不同的应用程序之间不能共享数据,程序与程序之间存在大量的数据冗余。应用程序和数据的关系见图7.1。图7.1应用程序和数据的关系(1)

(3)数据不具有独立性。数据的逻辑结构(如修改、增加新数据类型、改变数据联系等)或者物理结构(比如说存储设备的更换、物理存储方式)发生变化后,必须对应用程序做相应的修改,大大增加了程序员的负担。

2.文件系统阶段

20世纪50年代后期至60年代中期,计算机不仅用于科学计算,还用于数据管理。计算机硬件方面有了磁盘、磁鼓等直接存取设备;软件方面出现了操作系统,操作系统中有专门负责数据管理的文件系统,把数据按照内容、结构和用途组织成若干个相互独立的文件,按文件名进行存取。这一阶段数据管理的特点是:

(1)数据可以长期保存。由于出现了磁盘这样的外部存储设备,可将数据长期保存,可反复用于查询、修改、插入和删除操作。

(2)文件系统管理数据,有一定的数据共享性。数据以文件为单位存储在外存中,由文件系统进行统一管理,操作系统为用户提供了良好的操作界面。用户的程序与数据可分别存储在外存中,应用程序之间可以共享一组数据,实现了以文件为单位的数据共享。

应用程序和数据的关系见图7.2。图7.2应用程序和数据的关系(2)

(3)具有一定的数据独立性。文件的逻辑结构与物理结构分开,程序和数据分离,使数据和程序有了一定的独立性。

(4)实时处理。由于有了直接存取设备,也有了索引文件、链接存取文件、直接存取文件等机制,所以既可以采用顺序批处理方式,也可以采用实时处理方式。

在文件系统阶段,一个文件基本上对应于一个应用程序,即文件仍然是面向应用的。由于文件之间是相互独立的,因而不能反映现实世界中事物之间的联系,当不同的应用程序具有部分相同但又不完全相同的数据时,也必须建立各自的数据文件,而不能共享相同部分的数据,因此数据冗余度大。同时由于相同的数据重复存储,各自管理,容易造成数据的不一致性,给数据的维护和修改带来了困难。

3.数据库系统阶段

20世纪60年代后期,计算机应用于社会各个领域,应用于管理的规模更加庞大,数据量急速剧增。计算机软硬件方面也有了进一步的发展,软件方面出现了专门管理数据的软件—数据库管理系统(DBMS,DatabaseManagementSystem);硬件方面出现了大容量高速存取的磁盘。这一阶段数据管理的特点是:

(1)数据结构化。数据库系统采用数据模型表示数据结构。数据模型能够表示现实世界中各种数据组织和数据间的联系,是实现数据的集成化控制和减少数据冗余的前提和保证,实现整体数据的结构化。文件系统中每个文件内部也是有结构的,文件由若干条记录构成,每条记录又由若干个属性构成。如“学生”文件由很多条记录构成,每条记录就是一个学生信息,见图7.3。

“课程”文件中保存着课程信息,每条记录就是一条课程信息,“选课”文件中保存着学生选课信息,每条记录就是一条选课信息,见图7.4和图7.5。图7.4“课程”信息图7.5“选课”信息图7.3“学生”信息文件系统阶段尽管记录内部已经有了结构,但是记录之间没有联系。有可能在“选课”文件中出现这样的记录:某个学生选了某一门课程,有一个对应的考试成绩,但是这个学生的学号或者所选课程的课号并不存在。也就是说该学生的学号信息并没有保存在“学生”文件中,或者该生所选课程的课号没有保存在“课程”文件中,所以不能保证数据的正确性。如果要实现这样的约束,必须由程序员在应用程序中编写相应代码来实现。而数据库系统可以通过定义约束条件来实现这种约束,如关系数据库就可以通过定义关系的参照完整性规则来保证数据之间的这种联系。数据库系统阶段数据的结构见图7.6。图7.6数据的结构数据结构化是数据库系统的主要特征之一,也是数据库系统与文件系统的本质区别。

(2)具有较高的数据独立性。数据库中的数据在磁盘上如何存储,是由DBMS进行管理的,应用程序不需要关心,应用程序要处理的是程序的逻辑结构,所以当数据的物理存储设备发生改变时,应用程序不用修改。另外,数据与程序独立,把数据的定义从程序中剥离,加上存取数据的方法又由DBMS负责提供,简化了应用程序的编写,减少了应用程序的维护和修改,当数据的逻辑结构改变了,应用程序也可以不用修改。

数据库阶段应用程序和数据的关系见图7.7。图7.7应用程序和数据的关系

(3)数据共享性高,冗余小。数据库系统从整体角度看待和描述数据,数据面向整个系统,而不是面向某个应用程序,因此数据可以被多个应用程序和多个用户共享,减少了数据冗余。

(4)数据由DBMS统一控制管理。DBMS在数据库建立、运行和维护时对数据库进行统一控制和管理,以保证数据的完整性、安全性、共享性,并在多用户同时使用数据库时进行并发控制,并在数据库发生故障时进行恢复。

充分有效的管理和利用各类信息资源,是进行科学研究和管理决策的前提条件。数据库系统是为适应数据管理的需求而发展起来的一种较为理想的数据处理系统,它既便于数据的集中管理,又有利于应用程序的开发和维护,提高了数据的利用率,为科学研究和企业决策提供了技术保证。7.1.2什么是数据库

1.数据库

什么是数据库?当人们从不同的角度来描述这一概念时就会有不同的定义。

数据库,就是存放数据的仓库。就像粮库是存放粮食的,军火库是存放军火的,水库是存水的等。这种说法虽然形象,但并不严谨。

也有人把数据库定义为“以一定的方式存储在一起的、能为多个用户、多个应用程序所共享的、具有较小冗余度的数据的集合”。这种定义侧重于数据的组织。所有的信息(数据事实等)的编纂物,不论其是以印刷形式,计算机存储单元形式,还是其它形式存在,都应视为“数据库”(伯尔尼公约议定书专家委员会的观点)。

数据库是依照某种数据模型组织起来并存放在外部存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增加、删除、修改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。通常意义下,“数据库”这个术语是指由数据库管理系统(DBMS)管理的数据聚集,数据库的基本特征是“长期储存、有组织、可共享”。人们收集并抽取出一个应用所需要的大量数据以后,将其保存起来,便于进一步加工处理,从中获取有用的信息。

2.数据

数据(Data)是指数据库中存储的基本对象,是对客观事物的逻辑归纳,用于表示客观事物的未经加工的原始素材。数据是信息的表现形式和载体,并不仅仅指数字,它可以是数值、字符、图像、语音、视频等。数据经过加工后就成为信息。记录是关系数据库中用来表示和存储数据的一种格式。如图7.8所示的学生记录就是描述该学生的数据。图7.8学生记录在信息量不是很大的情况下,可以将数据保存在文件中,比如上面提到的学生记录,可以保存在一个电子表格文件中。但是对于数据量很大,且要频繁查询、增加、修改、删除数据的时候,用文件来存储和管理数据就比较困难了,所以在信息量剧增的今天,人们需要借助计算机和数据库技术来保存和管理大量复杂的数据,以便能方便且充分的利用这些宝贵的信息资源。

3.数据库管理系统

了解了什么是数据库和数据之后,读者可能就会思考数据库中的数据是如何科学的组织和存储的,又如何才能高效的从数据库中获取所需的信息呢?如何对数据库中的大量数据进行管理和维护?这些都是由数据库管理系统来实现的。

数据库管理系统(DBMS)是位于用户和操作系统之间的一种大型软件,用于建立、使用和维护数据库。它对数据库进行统一的操纵和管理,以保证数据库的安全性、完整性、一致性,是数据库系统的核心。它主要具有以下几方面功能:

(1)数据模式定义。数据库管理系统负责为数据库构建模式,也就是为数据库构建其数据框架。

(2)数据存取的物理构建。数据库管理系统负责为数据模式的物理存取及构建提供有效的存取方法及手段。

(3)数据操纵。数据库管理系统为用户使用数据库中的数据提供方法,它一般提供查询、插入、修改及删除数据的功能。此外,它自身还具有简单算术运算及统计的能力,而且还可以与某些过程性语言结合,使其具有强大的过程性操作能力。

(4)数据的完整性、安全性定义与检查。数据的完整性是保证数据库中数据正确的必要条件,因此必须经常检查以维护数据的正确性;数据库中的数据具有共享性,而数据共享可能会引发数据的非法使用,必须要对数据正确使用做出必要的规定,并在使用时作检查,以保证数据的安全性。

(5)数据库的并发控制与故障恢复。数据库中的数据能为多个应用程序服务,所以就存在着多个应用程序对数据库的并发操作(即处理多个用户/应用程序的同时使用某些数据时可能产生的问题),在并发操作中如果不加控制和管理,多个应用程序之间就会相互干扰,从而对数据库中的数据造成破坏,数据库管理系统必须对多个应用程序的并发操作做出必要的控制以保证数据不被破坏,如果数据库中的数据一旦遭到破坏,数据库管理系统能够及时进行恢复。

(6)数据的服务。数据库管理系统提供对数据库中数据的多种服务功能,如数据拷贝、转存、重组、性能监测、分析等。为了实现上述功能,数据库管理系统一般提供相应的数据语言。数据定义语言(DDL,DataDefineLanguage)和数据操纵语言(DML,DataManipulationLanguage)供用户定义数据库模式结构与权限约束,实现对数据的查询、修改等操作,通过数据控制语言(DCL,DateControlLanguage)对数据库运行进行控制,包括并发控制、安全性检查、完整性约束条件的检查和执行,数据库的内部维护(例如索引的自动维护)等。

常用的数据库管理系统有SQLServer、Oracle、DB2、Sybase、Access、MySQL等。7.1.3数据库系统的构成

数据库系统是指有数据库技术支持的计算机系统,它可以实现有组织、动态地存储大量相关数据,提供数据处理和信息资源共享服务的功能。数据库系统主要由四部分构成:数据库、软件系统、硬件系统和用户,见图7.9。图7.9数据库系统

1.数据库

在一个数据库系统中,可以根据需要创建多个数据库,并且数据库中的数据通常可以被多个用户共享。

2.软件系统

软件系统包括操作系统、数据库管理系统及其应用开发工具、数据库应用系统。其中数据库管理系统是数据库系统的核心。

3.硬件系统

硬件系统指运行数据库系统所需要的硬件设备。一个数据库系统需要有足够快的CPU来处理数据,以便快速响应用户的数据处理和数据检索请求,同时还需要有足够大的内存和外存来运行和存储大量的数据。对于分布式数据库系统还需要有网络通信设备的支持。

4.用户

用户指的是管理和使用数据库的人。用户有三类:数据库管理员、应用程序员和终端用户。

(1)数据库管理员(DBA,DatabaseAdministrator):对数据库进行设计、维护和管理的专门人员。DBA必须要有较高的技术水平,还应具有了解和阐明管理要求的能力,他不仅要熟悉数据库管理系统软件,还应熟悉本单位的业务工作流程。DBA应参与数据库设计的全过程,决定数据库的结构和内容;负责定义数据的安全性和完整性,分配终端用户对数据库的使用权限和密码的管理;控制数据库的运行和使用,改进和重新构造数据库系统,当数据库遭到破坏时,负责恢复数据库等。数据库管理员一般由业务水平高,资历深的人担任。

(2)应用程序员:负责为终端用户设计和编写应用程序,方便终端用户对数据库进行操作。

(3)终端用户:最终使用数据库的人员。如使用超市管理系统工作的超市收银员,使用图书管理系统借书的学生,使用火车售票系统卖票的铁路售票员等。终端用户一般为非计算机专业人员,他们通过窗口、菜单、对话框等方式使用数据库,不需要懂编程和数据库技术。7.1.4数据库新技术

随着计算机系统硬件、Internet和Web技术的发展,数据库技术不断应用到新的领域。数据库出现了许多新的分支:有面向决策支持的数据仓库、面向科学计算的科学数据库、面向工程设计的工程数据库、面向地理信息系统的空间数据库、面向移动计算环境的移动数据库,以及Web数据库、实时数据库、统计数据库等。随着数据库系统所管理的数据格式、数据处理方法以及应用环境不断变化,同时随着人工智能、多媒体和其它学科技术的发展,数据库与相关技术结合出现了面向对象数据库、分布式数据库、并行数据库、多媒体数据库、传感器网络管理数据库、主动数据库、知识数据库、模糊数据库等。

数据库技术是计算机领域中发展最快的技术之一,数据库技术的发展是沿着数据模型这条主线展开的。 7.2在计算机中模拟现实—数据模型

7.2.1数据模型概述—几个世界

通俗地讲,数据模型就是对现实世界的模拟。在数据库中使用数据模型来抽象表示和处理现实世界,使之可以存放于数据库中。数据模型应满足三方面要求:

(1)能比较真实地模拟现实世界。

(2)容易为人所理解。

(3)便于在计算机上实现。

图7.10几个“世界”间的关系一种数据模型要很好地满足这三个方面的要求,目前尚很困难。在数据库系统中应针对不同的使用对象和应用目的,采用不同的数据模型。图7.10几个“世界”间的关系现实世界中的河流山川、花草树木、人和动物,都是计算机不可能直接处理的,所以必须先对现实世界中的具体事物进行分析、归纳、抽象形成信息,再对这些信息进行记录、整理、归类后就构成了信息世界。将信息世界中的信息用二维表或其它形式表示出来就形成了数据世界,最后再将这些数据转换成计算机能够处理的二进制形式,就是数字世界。

几个“世界”间的关系如图7.10所示。

数据模型按不同的应用层次分成三种类型:概念数据模型、逻辑数据模型、物理数据模型。7.2.2概念模型—信息世界

概念数据模型简称概念模型,又称为信息模型。概念模型是对现实世界的第一次抽象,是按照用户的观点对现实世界进行建模,描述用户的需求,是数据库设计人员和用户之间交流的语言。概念模型既要具有较强的语义表达能力,能够方便、直观地表达应用中的各种语义知识,还应该简单、清晰,易于用户理解。

概念模型主要用于数据库设计,它与具体的计算机系统和DBMS无关,重点在于分析数据及数据间的联系等。概念模型的表示方法有很多种,最著名也最常用的是实体联系模型。实体联系(EntityRelationship)模型也称为E-R模型,它是由Peter-Chen(美籍华裔计算机科学家陈品山)于1976年在题为“实体联系模型:将来的数据视图”论文中提出的。E-R模型中有以下几个基本概念:

(1)实体:是指客观存在并可相互区别的事物。实体可以是具体的对象,如一所学校、一名学生、一门课程等;也可以是抽象的概念,如一次选课、一个操作流程等。

(2)属性:实体和联系所具有的特征。现实世界中的实体可由若干属性来描述,如学生有学号、姓名、性别、年龄等属性,选课有选课编号、成绩等属性。

(3)实体集:所有属性完全相同的实体的集合。例如,全体学生、全体教师等。每个实体集都有一个名称,即实体名,在不引起混淆的情况下,实体集往往简称为实体。

(4)实体型:用实体名和属性集表示。例如,学生(学号、姓名、性别、年龄、院/系、家庭住址、入学年份)就是一个实体型。

(5)联系:表示相关联的实体集之间的关系。如学生和课程之间的关系为选课,教师和课程之间的关系为讲授,校长和学校的关系为任职等。E-R模型中,实体集之间的联系可归为三种:①一对一(1∶1)联系。如果实体集A中的每一个实体,在实体集B中至多只有一个实体与之联系;反之,对于实体集B,在实体集A中也至多只有一个实体与之联系,那么称实体集A与实体集B是1∶1联系。如学校和校长、班级和班长之间的联系。

②一对多(1∶M)联系。如果实体集A中的每一个实体,在实体集B中有M个实体(M≥0)与之联系;反之,对于实体集B中的每一个实体,在实体集A中至多有一个实体与之联系,那么称实体集A与实体集B是1∶M联系。如学校和教师、班级和学生、部门和员工之间的联系。③多对多(M∶N)联系。如果实体集A中的每一个实体,在实体集B中有M个实体(M≥0)与之联系;反之,对于实体集B中的每一个实体,在实体集A中也有N个实体(N≥0)与之联系,则称实体集A与实体集B是M∶N联系。如学生和课程、老师和学生之间的联系。

实体联系模型用E-R图来描述,实体集用矩形表示,联系用菱形表示,属性用椭圆表示。例如有一个简单的教务系统,能实现对学生、教师、学生选课和老师授课进行管理,那么在该教务系统涉及的实体有:学生(学号,姓名,性别,年龄,院/系,家庭住址,入学年份)

课程(课号,课程名称,课程性质,学分,课时)

选课(学号,课号,成绩)

授课(授课ID,课号,教师编号)

教师(教师编号,姓名,性别,出生日期,职称,院/系)

用E-R图可描述为图7.11。

实体联系模型是抽象和描述现实世界的有效工具,它独立于计算机系统,独立于数据库管理系统,是各种数据模型的基础。图7.11简单教务系统的E-R图7.2.3逻辑模型—数据世界

逻辑模型又称为数据结构模型,简称数据模型。它负责将概念模型具体化,要实现概念模型所描述的信息。

目前,数据库领域中常用的数据模型有层次模型、网状模型和关系模型,其中层次模型和网状模型又称为非关系模型。关系模型是目前使用最广泛的数据模型。由于面向对象的方法和技术在计算机各个领域都产生了深远的影响,也促进了数据库技术中面向对象数据模型的研究和发展,许多关系数据库厂商为了支持面向对象技术,对关系模型作扩展,从而产生了对象关系模型。本节简要介绍一下常用的三种数据模型。

1.层次模型

层次模型是数据库系统中最早出现的数据模型。层次模型用树型结构来表示实体与实体间的联系,它只能直接表示出一对多(包括一对一)的联系,对于多对多的联系必须先分解成一对多联系。所以层次模型比较适合于表示自然的层次关系,如家族关系、行政机构等,描述直观、自然,容易理解,这是层次数据库的突出优点。层次模型的典型代表是IBM公司于1968年推出的第一个大型商用的数据库管理系统IMS(InformationManagementSystem)。

2.网状模型

现实世界中很多实体之间的联系是非层次结构的,用树型结构描述就很不直接,网状模型可以克服这一弊端。网状模型用网状结构表示实体之间的联系,最具有代表性的网状数据库管理系统是1971年4月数据系统语言协会(CODASYL,ConferenceOnDataSystemLanguage)下属的数据库任务组(DBTG,DatabaseTaskGroup)提出的一个系统方案,习惯称为CODASYL系统或DBTG系统。虽然DBTG不是实际的系统软件,但是它对网状数据库系统的研制和发展起了重大影响。网状模型能够直观地表示现实世界,但是结构复杂,用户不容易掌握和使用。

3.关系模型

1970年,美国IBM公司的研究员E. F. Codd首次提出了数据系统的关系数据模型。与层次模型和网状模型相比,关系模型的概念简单、清晰,并且具有严格的数学基础,形成了关系数据理论基础,操作也直观、容易。无论是数据库的设计和建立,还是数据库的使用和维护,都比非关系模型简便很多。由于E. F. Codd在数据库领域的杰出贡献,他获得了1981年ACM图灵奖。

关系模型中,实体和联系都表示为关系,一个关系可表示为一张二维表的形式。

数据模型的目标是尽可能详细地描述数据,但并不考虑数据在物理上如何实现。7.2.4物理模型—数字世界

物理模型是面向计算机物理表示的模型,它描述了数据如何在计算机中存储,如何表达记录结构、记录顺序和访问路径等信息。物理模型不但与具体的DBMS有关,还与计算机系统有关。物理模型是在逻辑模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。

DBMS为了保证其独立性与可移植性,大部分物理模型的实现工作由系统自动完成。 7.3二维表的王国—关系数据库基础

关系模型是目前最重要的一种数据模型,是以集合论中的关系概念为基础发展起来的,关系模型中无论是实体还是联系都由单一的结构类型—关系来表示。在实际的关系数据库中,关系也称表,一个关系数据库就是由若干个表组成的。

7.3.1关系数据库的基本概念

关系数据库中的实体和联系都表示为关系,一个关系在逻辑结构上就是一张二维表,由行和列构成。下面以学生表(表7-1)为例,介绍关系数据库中常用的术语。表7-1学生表

关系:一个关系对应于一张二维表。如学生表就是一个关系。

关系名:每个关系都有个名字,称为关系名。

元组:表中的每一行都称为一个元组,也叫一条记录。关系中元组的顺序可任意交换,可根据需要对元组进行排序。例如,在学生表中,可根据学号对元组进行排序,也可根据入学日期进行排序等。

属性:表中的每一列都是一个属性,也叫一个字段,属性必须是不可再分的。如“工资”可以分为基本工资、岗位工资、职位补贴,那么工资就不能作为一个属性。每个属性都有一个属性名,体现在表的标题行。

域:每个属性的取值范围。例如性别属性只能取“男”或“女”两个值。

分量:元组的一个属性称为一个分量。如“张峰”就是第一个元组的一个分量。

关系模式:对关系的描述,用关系名和属性的集合来表示。如学生表(学号,姓名,性别,年龄,院/系,家庭住址,入学日期)就是一个关系模式。

主键:又称为主码,主关键字。表中的某个属性或属性组合,能够唯一地确定一条记录。所以主键的值不能为空,不能重复。如“学号”为学生表的主键。

外键:表中的某个属性或属性的集合不是本表的主键,但却是另外一张表的主键,称该属性或属性组为此表的外键。例如:教师编号为“教师表”的主键,但却不是“课程表”的主键,则称教师编号为“课程表”的外键。

表的内容:元组的集合。

基数:关系中元组的个数。如学生表的基数为10,表示表中共有10条记录。

元数:关系中属性的个数。如学生表的元数为7,表示表中共有7个不同的属性。

关系数据库:数据库中所有关系的集合。比如前面提到的简单教务系统数据库就由五张表组成:“学生”表、“教师”表、“课程”表、“选课”表和“授课”表。关系数据库是基于关系模型的。关系模型描述了一个关系的结构,一个关系就是一张二维表。关系是元组的集合,是某一时刻关系模式的状态或内容。因此,关系模式是稳定的、静态的,而关系则是随时间变化的、动态的。关系是关系模型中最基本的数据结构,关系既用来表示实体,也用来表示实体间的关系。7.3.2关系数据库的基本操作

关系数据库是建立在数学理论之上的,集合代数理论是关系理论的基础,关系数据库是用数学的方法来处理数据库中的数据。本节将对关系数据库的理论—关系代数作个简单介绍。

关系模型的数据结构非常简单,实体和联系都表示为单一的关系。在用户看来一个关系就是一张二维表,表的每一行对应一个元组,表中的每一列对应一个域(一组具有相同数据类型的值的集合)。

关系可以有三种类型:基本关系、查询表和视图表。

基本关系:又称为基本表,数据库中的数据都存在基本表中,只有基本表可以存储数据。查询表:是查询结果对应的表,在执行查询时动态获取数据显示查询结果。

视图表:是由基本表或其它视图导出的表。

三种关系中只有基本表中存储数据,查询表和视图表中并不存储数据。

1.关系代数的基本操作

关系数据库中的数据都以关系的形式存在,对数据的操作就是对关系的操作,而关系是元组的集合,因此,可以将关系操作看成是集合的运算。关系数据库中常用的操作有查询、插入、删除、修改,关系的查询表达能力很强,是关系操作中最主要的部分。关系操作可分为传统的集合运算(交、并、差、广义笛卡尔积)和专门的关系运算(选择、投影连接、除)。

1)传统的集合运算

设有关系R和S:

(1)交运算:R和S的交集是由既属于R又属于S的元组组成的集合。交运算用符号“∩”表示,结果用T表示,那么T = R∩S。

(2)并运算:两个关系R和S的并集是由属于R或属于S的元组组成的集合。并运算用符号“∪”表示,结果用T表示,那么T = R∪S。

(3)差运算:R和S的差是由属于R但不属于S的元组组成的集合。差运算用符号“-”表示。差运算不满足交换律,所以R-S与S-R的结果不同。

(4)广义笛卡尔积(乘法运算):把两个关系的元组以所有可能的方式组成对。笛卡尔积运算用符号“×”表示。设有关系R和S,R的基数为m,S的基数为n,那么经过笛卡尔积运算后,新关系T的基数为m × n,即T = R×S。集合运算把关系当做元组的集合,从水平方向(行)上进行运算。在关系中增加元组时,使用并运算;删除元组时,使用差运算;修改元组时,可使用差运算及并运算(在关系R中作修改操作,可将需要修改的元组组成关系R',修改后的元组记为关系R",可通过(R-R')∪R" 实现修改操作)。

2)专门的关系运算

(1)选择运算:从关系中找出满足给定条件的那些元组。在行上做选择,选择运算用符号“σ”表示。设有关系R、S,在关系R中要找出符合条件B = 2的元组,结果用T表示,T = σF(R)。

(2)投影运算:从关系中找出若干属性组成新的关系,是从列的角度进行的运算,相当于对关系进行垂直分解,投影运算用符号“∏”表示。设有关系R,在关系R中做投影操作,只保留属性B,C,运算结果用T表示为T = ∏B,C(R)。

(3)连接运算:是从两个关系的笛卡尔积中选择属性间满足一定条件的元组。常用的连接操作有等值连接和自然连接。

①等值连接:从行的角度进行运算,要求将两个关系中指定属性值相同的元组连接起来。指定的属性可以不是共同的属性,也可以是共同的属性,等值连接用运算符“

”表示。设有关系R、S,在关系R和S中进行等值连接,连接条件为B = E,运算结果用T表示,T =  。②自然连接:要求两个关系必须有相同的属性(公共属性),通过相同的属性值将两个关系连接起来,最后去掉重复的列,所以是同时从行和列上进行运算。等值连接用运算符号“”表示。在关系R和S中进行自然连接,结果用T表示,T = RS。

(4)除法运算:设被除关系R为m元关系,除关系S为n元关系,那么它们的商为m-n元关系,记为R÷S。商的构成原则是:将被除关系R中的m-n列,按其值分成若干组,检查每一组的n列值的集合是否包含除关系S,若包含则取m-n列的值作为商的一个元组,否则不取。除运算可理解为笛卡尔积的逆运算。除法运算用运算符号“÷”表示。关系R除关系S,结果用T表示,那么T = R ÷ S。

2.关系代数在简单教务系统中的应用

例7-1

新一届学生入学,现要将140101班学生表(表7-2)和140201班学生表(表7-3)的内容插入到学生表。

插入操作可使用并运算,插入新生记录后的学生表如表7-4所示。表7-2表7-3表7-4

例7-2

假设有三好生(表7-5)和学生干部(表7-6)两张表,现要找出既是三好生又是学生干部的学生信息。

可使用交运算实现,结果如表7-7所示。

例7-3

现有学生选课成绩表(表7-8)和平时成绩表(表7-9),现要找出考试或平时成绩及格的学生信息。

可使用差运算实现,运算结果如表7-10所示。

例7-4

在课程表(表7-11)中找出课程性质为必修的课程信息。

可使用选择运算实现,运算条件为课程性质为必修。运算结果如表7-12。

例7-5

在课程表中(表7-11),只显示课号、课程名称和学时信息。

可使用投影操作实现,在课号、课程名称和学时上进行投影。运算结果如表7-13所示。表7-13

例7-6

在学生表(表7-14)、课程表(表7-15)及选课成绩表(表7-16)中找出选修了高等数学,并且考试成绩不及格的学生姓名和成绩。(综合使用选择,投影,连接操作)。表7-14首先进行连接操作,学生表和选课成绩表进行自然连接,公共属性为“学号”;课程表和选课成绩表进行自然连接,公共属性为“课号”,再将连接后的两张表进行自然连接,公共字段为“学号”、“课号”和“成绩”。

然连接后的关系如图7.12所示。图7.12自然连接关系第二步进行选择操作,选择的条件是课程名称=高等数学,成绩<60,运算结果如图7.13所示。

第三步,进行投影操作,选择“姓名”和“成绩”列内容,运算结果如图7.14所示。图7.13运算结果图7.14运算结果7.3.3关系数据库的完整性约束

数据模型通常是由数据结构、数据操作和完整性约束三部分构成的。

数据结构描述数据库的组成对象及对象之间的联系,是刻画一个数据模型性质最重要的一个方面。因此,人们通常会根据数据结构的类型来命名数据模型,如关系数据结构的数据模型命名为关系模型。

数据操作指对数据库中的各种对象的实例所允许的操作的集合,包括操作及有关操作的规则。数据库主要有查询和更新两类操作。数据模型必须定义这两类操作的确切含义、操作符号、操作规则以及实现操作的语言。数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述。数据完整性是一组规则的集合,用来保证数据库中数据的正确性和相容性。

数据完整性和数据安全性是两个不同的概念,数据的完整性用来防止数据库中存在不符合语义的数据,也就是防止存在不正确的数据,而安全性是保护数据库防止遭受恶意的破坏和非法的存取。本节主要讨论关系数据库的完整性。

为了保证数据库中数据的完整性,关系模型提供了三类完整性约束:实体完整性、参照完整性和用户自定义的完整性。

1.实体完整性

实体完整性是指表中行的完整性,实体完整性要求主键不能为空、不能重复。在关系模型中,主键(主关键字)作为唯一的标识,不能重复、不能为空。主关键字是否可以修改或整个列是否可以被删除,取决于主关键字与其它表之间要求的完整性。

例如,简单教务系统中,选课关系是由学号、课号和成绩构成,学号和课号共同做主键,那么要求学号和课号两个属性的值都不能为空,因为只有学生选了课,才会有成绩,也就是说,没有学号的成绩或是没有课号的成绩是错误的,是不应该存在的。

2.参照完整性

参照完整性要求关系中不允许引用不存在的实体。参照完整性属于表之间的约束规则。实施了参照完整性规则之后,对表中主关键字进行操作时,系统会自动检查该字段,看看是否被添加、修改或删除了。如果对主关键字的修改违背了参照完整性的要求,那么系统会强制执行参照完整性。

例如,在简单教务系统中,课程表和教师表之间通过教师编号建立关联,当向课程表中添加一条记录时,系统要检查新记录的教师编号是否存在于主表(教师信息表)中,如果存在,则允许执行插入操作,否则拒绝插入。参照完整性还体现在对主表中主键值的删除和更新操作。

如果删除主表中的一条记录,那么从表中凡是与主表中主键值相同的外键值均被删除,称为级联删除。

如果修改主表中某条记录主键的值,那么从表中相应记录中的外键值也随着修改,称为级联更新。

参照完整性和实体完整性是关系模型必须要满足的完整性约束条件,目的是保证数据的一致性。

3.用户自定义的完整性

用户自定义的完整性指的是针对某一关系数据库的约束条件,是反映某一具体应用所涉及的数据必须满足的语义要求。实体完整性和参照完整性约束是任何关系数据库都必须遵守的规则,除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要设置一些特殊的约束条件,用户自定义的完整性规则就是针对某一具体的应用而设计的约束条件。

例如在教师表中,教师职称字段的内容只可能是列表“教授、副教授、高级实验师、讲师、助教”中的内容,那么当用户输入或修改教师信息时,系统会在职称字段中进行完整性检查,检查该字段的值是否满足用户自定义的规则,如果不满足则拒绝执行操作,并给出相关提示信息。

关系完整性规则是对关系的约束条件,这些约束条件实际上是对现实世界的要求,任何关系在任何时刻都要满足这些条件。7.3.4关系数据库系统的设计方法

前面我们介绍过数据库系统是指拥有数据库技术支持的计算机系统,它主要由数据库、软件系统、硬件系统和用户构成。在具备了数据库管理系统、系统软件、操作系统和硬件环境时,对数据库应用开发人员来说,就是如何使用这个环境表达用户的要求,构造最优的数据模型,然后建立数据库及其应用系统,这个过程就是数据库设计。

在数据库领域内,通常把使用数据库的各类信息系统都称为数据库应用系统,例如以数据库为基础的各种信息管理系统、办公自动化系统、电子商务系统等。数据库设计是数据库系统的核心,是信息系统开发和建设的重要组成部分。数据库设计狭义地讲就是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一个部分。广义地讲,数据库设计是设计整个数据库应用系统。“三分技术,七分管理,十二分基础数据”是数据库设计的特点之一,可以看出狭义的数据库设计是整个数据库系统的核心和基础。当然设计一个好的数据库与设计一个好的数据库应用系统是密不可分的,一个好的数据库结构是应用系统的基础。

本节我们讨论的是狭义的数据库设计,即设计数据库本身。早期在开发一些小型数据库应用系统时,数据库设计往往会采用手工试凑法。这是一种直观的设计方法,数据库设计的优劣主要依赖于设计者的经验和技巧,缺乏科学理论和软件工程方法支持,常常是数据库运行一段时间以后又不同程度地发现各种问题,需要进行修改甚至重新设计,增加了系统维护的难度、数据库设计的质量难以保证,不适合大型数据库设计。大型数据库设计是涉及多学科的综合性技术,是一项庞大的工程项目,它要求从事数据库设计的专业人员具备多方面的技术和知识。主要包括:计算机的基础知识、软件工程的原理和方法、程序设计的方法和技巧、数据库的基本知识、数据库设计技术和应用领域的知识,只有这样才能设计出符合具体领域要求的数据库及其应用系统。规范设计是运用软件工程的思想和方法,以各种设计准则和规程,进行数据库设计的方法。新奥尔良法(NewOrleans)方法是规范设计中比较著名的,它将数据库设计分为四个阶段:需求分析、概念设计、逻辑设计和物理设计。后经过改进,分为六个阶段:

1.数据库需求分析

进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理),它是后面几个环节的基础,需求分析做得不好,甚至会导致整个数据库设计返工重做。

2.数据库概念设计

概念设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体的数据库管理系统的概念模型。

3.数据库逻辑设计

逻辑结构设计是将概念模型转换为某个数据库管理系统所支持的逻辑数据模型,并对其进行优化。常用的逻辑数据模型是关系模型。

4.数据库物理设计

物理设计是将逻辑数据模型转化为计算机物理实现(包括存储结构和存取方法)。

5.数据库实施

在数据库实施阶段,设计人员运用数据库管理系统所提供的数据库语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序、组织数据入库、并进行调试运行。

6.数据库运行与维护

数据库应用系统经调试运行后即可投入正式使用,在数据库系统运行过程中必须进行维护,不断的对其进行评价、调整与修改。由于数据库设计的结果往往不是唯一的,所以设计的过程通常是一个不断试探的过程,数据库设计不可能一气呵成,需要反复推敲和修改才能完成。所以设计一个完善的数据库数据库应用系统往往是上述六个阶段的不断反复。规范化设计从本质是来说仍然属于手工设计方法,其基本思想是过程迭代和逐步求精。常用的规范方法有:

基于E-R模型的数据库设计方法:是数据库概念设计阶段广泛采用的方法,基本思想是在需要分析的基础上,用E-R图来反映现实世界实体之间联系的信息模式。

3NF(第三范式)的设计方法:用关系数据理论为指导来设计数据库的逻辑模型,确定关系数据库模式中全部属性和属性间的依赖关系,将它们组织在一个单一的关系模式中,然后分析模式中不符合3NF的约束条件,将其进行投影分解,规范成若干个符合3NF关系模式的集合。3NF设计方法是关系数据库逻辑设计阶段可以采用的一种有效的方法。

ODL(ObjectDefinitionLanguage)方法:面向对象的数据库设计方法,用面向对象的概念和术语来说明数据库结构。ODL可以描述面向对象数据库结构设计,可以直接转换为面向对象的数据库。

随着数据库技术的广泛应用,数据库技术已经实用化和产品化,现在已经可以利用一些专门的CASE软件工具来支持数据库设计的全过程。 7.4遏制非法用户侵入—数据库安全

7.4.1数据库安全概念

数据库的一大特点是数据可以共享,但数据共享必然带来数据库的安全性问题。数据库往往会成为黑客们的主要攻击对象,他们会利用各种途径来获取他们想要的信息。数据库面临的安全威胁主要有:

软件和硬件环境出现意外。如无防护情况下断电、磁盘损坏、系统崩溃等,目前计算机病毒泛滥,计算机病毒可能造成系统崩溃,进而破坏数据。

授权用户对数据库的不正确访问而引起数据库中数据的错误,或是为了某种目的,故意破坏数据库。

非法访问数据库。如未经授权非法访问数据库信息,窃取其中的数据;未经授权非法修改数据库中的数据,使其数据失去真实性;通过网络对数据库进行各种非法存取;通过网络破坏数据库系统的完整性、可用性等等;

由于数据库是建立在计算机系统之上的,因此数据库的安全性还涉及计算机系统的安全性,包括计算机硬件、操作系统、网络系统等的安全性。因此,在讨论数据库的安全性之前,先简单介绍一下计算机系统安全性的一般问题。

计算机系统安全性是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然的或恶意的原因而使系统遭到破坏,数据遭到更改或泄露等。计算机系统的安全性问题可以分为三大类,即技术安全类、管理安全类和政策法律类。

技术安全是指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍然保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。1985年,美国国防部制定了可信计算机评估标准TCSEC(TrustedComputerSystemEvaluationCriteria)。1991年4月,美国国家计算机安全中心NCSC发布《可信计算机系统评估标准关于可信数据库系统的解释TDI(TrustedDatabaseInterpretation)》将TCSEC扩展到数据库管理系统。它们从安全策略、责任、保证、文档四个方面描述了安全级别划分的指标。

管理安全是指由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等硬件意外故障以及场地的意外事故等安全问题。

政策法律指政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。

数据库的安全性和计算机系统的安全性是紧密联系、互相支持的,只有各个环节都安全,才能保证数据库的安全性。数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更新或破坏,也就是要保证数据库信息的保密性、完整性、一致性、可用性和抗否认性。

保密性:又称机密性,是指个人或团体的信息不为其它不应获得者获得,保护数据库中的数据不被泄露和未授权的获取。

完整性:是保护数据库中的数据不被未授权的篡改、破坏和删除。

一致性:是要确保数据库中的数据满足实体完整性、参照完整性和用户定义完整性要求。

可用性:是要确保数据库中的数据不因人为或自然的原因对授权用户不可用。

抗否认性:是保证用户事后无法否认对数据库进行的一系列访问、修改、查询等操作,便于事后分析调查。保护数据库的安全既要做到向授权用户提供可靠的信息服务,同时还要拒绝非授权用户对数据的存取访问请求,保证数据库管理下的数据的可用性、完整性和一致性,进而保护数据库所有者和使用者的合法权益。7.4.2数据库安全技术

如何有效地保证数据库系统的安全,实现数据的保密性、完整性和有效性,是至关重要的。在一般的计算机系统中,安全措施是一级级层层设置的。用户要求进入计算机系统时,系统首先根据输入的用户标识进行身份鉴定,只有合法的用户才准许进入计算机系统;对已经进入系统的用户,DBMS还要进行存取控制,只允许用户执行合法操作;操作系统也会有自己的保护措施;数据最后还可以加密以密文形式存储到数据库中。这里只讨论跟数据库有关的用户标识和鉴定技术、存取控制技术、隔离控制技术、加密技术、信息流向控制技术、推理控制技术和数据备份技术。

1.用户标识和鉴定(Identification&Authentication)技术

用户标识和鉴定是系统提供的最外层安全保护措施,是由系统提供一定的方式让用户标识自己的名字或身份,系统内部记录着所有合法用户的标识。每次用户请求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。对于获得上机使用权的用户,若要使用数据库时,数据库管理系统还要进行用户标识和鉴定。用户标识和鉴定的方法有很多种,在一个具体的系统中,经常是多种方法同时使用,以获得更好的安全性。近年来用户标识和鉴定技术发展迅速,常用的用户标识和鉴定的方法有:

(1)用户名/口令。系统内部记录着所有合法用户的标识,系统根据用户名来鉴定此用户是否是合法用户。若输入的用户名不是合法用户名,则不能使用系统;若是,则进入下一步核实,要求用户输入口令。用户名/口令鉴定方法的优点是简单易行,缺点是用户名与口令容易被人窃取。

(2)每个用户预先约定好一个计算过程或函数。鉴定用户身份时,系统提供一个随机数,用户根据自己预先约定的计算过程或者函数进行计算,系统根据用户计算结果的正确与否进一步鉴定用户身份。用户可以约定比较简单的计算过程或函数,以便计算起来方便;也可以约定比较复杂的计算过程或函数,以便安全性更好。

(3)利用用户的个人特征鉴别。利用个人特征(签名、指纹、声波、虹膜等)来鉴别用户非常可靠,但是需要昂贵的设备。

2.存取控制技术

保证数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库,所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制技术实现。存取控制主要包括以下两部分。

(1)定义用户权限,并将用户权限登记到数据字典中。用户对某一数据对象的操作权力称为权限。在数据库系统中用户只能访问其有权访问的数据。为了保证这一点,必须预先对每个用户定义存取权限。存取权限有两个要素,即数据对象和操作类型。定义一个用户的存取权限就是要定义该用户可以在哪些数据对象上进行哪类操作。在DBMS中,定义权限称为授权。在关系数据库中,数据对象可以是列、元组、基本表,也可以是视图、存储过程等。常见的权限有:

读:允许用户读数据,但不能修改数据;

插入:允许插入新数据,但不能修改已经存在的数据;

修改:允许用户修改数据,但不能删除数据;

删除:允许用户删除数据。对于通过鉴别的合法用户,确保用户只能存取其有权存取的数据。某个用户应该具有何种权限是管理问题而不是技术问题。数据库管理系统(DBMS)的功能是保证这些决定的执行。为此DBMS必须提供适当的语言来定义用户权限,这些定义经过编译后存放在数据字典中,这称为安全规则或授权规则。

(2)合法权限检查。每当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。

用户权限定义和合法权限检查机制一起组成了DBMS的安全子系统。

3.隔离控制技术

隔离控制技术是通过某种中间机制,将用户与存取对象隔离。用户不能直接对存取对象进行操作,而是通过中间机构间接进行,如视图和存取过程。

视图是给用户提供个性化数据库模式的一种手段,系统可以为不同的用户定义不同的视图,达到访问控制的目的。首先用视图把要保密数据对无权访问的用户隐藏起来,然后在视图上面再进一步定义存取权限。将视图和授权机制配合使用来限制用户的访问权限,保证数据库的安全。

4.信息流向控制技术

信息流控制技术是将系统的所有元素、组成成分等划分成多个保护级别,保证高保护级别对象所含信息不会被传送到低保护级别的对象中去,避免某些怀有恶意的用户通过较低保护级别对象获得保护级别较高的机密信息。

5.推理控制技术

推理是指用户通过间接的方法获取不该获取的信息。例如,在某公司中,职员没有权限查看他人的奖金是多少,但是可以查看整个公司的汇总信息图(图7.15)。

从该汇总表中,可以看到所有助工的奖金总和为0,从而可以推理出所有助工的奖金都为0,进而推理出职称为助工的某人,该月奖金必为0。而该数据是应该是保密的。

推理控制的目标就是防止用户通过间接的方式获得不该获取的信息。图7.15汇总信息图

6.审计技术

任何系统的安全保护措施都不是无懈可击的,蓄意盗窃、破坏数据的人总是想方设法侵入系统。通过审计,可以把用户对数据库的所有操作记录下来放入审计日志中,这样数据库系统可以利用审计跟踪信息,找出非法存取数据的人、时间和内容等,便于追查有关责任;同时审计也助于发现系统安全方面的弱点和漏洞。

审计是DBMS保证数据库安全重要的一部分。由于审计通常很费时间和空间,所以DBMS往往都将其作为可选特征,允许数据库管理员(DBA)根据应用对安全性的级别要求,自主选择打开或是关闭审计功能。

7.数据备份技术

数据备份是防止系统出现操作失误或是系统故障而导致数据丢失,而将全部或部分数据从应用主机的硬盘或磁盘阵列复制到其它存储介质的过程。尤其是一些对数据可靠性要求很高的行业,如银行、证券、电信等,如果发生意外停机或是数据丢失其损失会十分惨重。为此DBA应针对具体的业务要求制定详细的数据库备份与灾难恢复策略,并通过模拟故障对每种可能的情况进行严格测试。

8.加密技术

对于敏感度很高的数据,如财务数据、国家机密、军事数据等,除了使用以上安全措施外,还可以进行加密。

数据加密的基本思想就是将原始数据(明文)通过一定的转换(加密算法)变成不可直接识别的数据格式(密文)。

随着计算机网络的快速发展,数据的安全保密变得越来越重要。DBMS是数据库系统的核心,因而其自身必须具有一套完整而有效的安全机制。实现数据库安全的技术有很多种,目前最重要的是存取控制技术、视图技术和审计技术。7.5数据库技术之冰山一角—Access数据库

7.5.1MSAccess简介

MSoffice是微软公司推出的基于关系模型的桌面型数据库管理系统,比较适合于中小型数据库的设计。Access1.0版本诞生于20世纪90年代初,到目前为止,经过了多次的升级改版,目前使用最广泛的是Access2010。

MSAccess2010采用与MSOffice2010套件中其它软件,如MSWord、MSExcel等大家熟悉的办公软件同样的操作风格完成数据管理的工作,其操作简单、功能丰富,可以作为大型数据库系统的前端开发工具。利用MSAccess2010,用户可以快速地构造数据库应用系统,收集数据,以各种方式对数据进行分类、筛选,也可以通过各种复杂的报表或图表对数据进行汇总分析。

1.Access的系统结构

Access简单易学,大多数系统只需要编写少量的代码,甚至不用编写任何代码就可以完成。Access2010将数据库定义为一个扩展名为 .accdb的文件,其数据对象都存放在这个文件中。不同的数据库对象在数据库中起着不同的作用,利用这些对象开发人员可以快速地、规范地进行数据的定义、存储、生成查询、窗体以及报表和图表的创建。这6个对象分别是:

(1)表。表是数据库的基本对象,是创建其他数据对象的基础,数据库中的所有数据都存放在数据表中,所以又称为数据表、数据基本表。Access的一个数据库中可以有多张表,用户可以在表中存储不同类型的数据。通过在表之间建立联系,可以将不同表中的数据联系起来。

(2)查询。查询是数据库操作的最主要目的之一,是数据库应用最多的对象,可以执行很多的功能,最主要的就是从表中检索特定的数据。数据只有被使用者查询,才能体现出它的价值。要查看的数据通常分布在多个表中,通过查询可以将不同表中的数据检索出来,形成一个动态结果集,并可以将这个动态结果集以虚拟二维表的形式显示出来。当用户只想查询符合特定条件的记录时,还可以使用查询条件,筛选出用户感兴趣的数据。

查询只记录查询的操作方式,查询结果是以虚拟的二维表显示的,它们不是基本表,并不真正存储数据。可以将查询结果转换为基本表,也可以只保存查询操作方式,这样每进行一次查询操作,其结果集中显示的都是当前存储的实际数据,它反映的是查询在那一时刻的数据表存储情况。

(3)窗体。窗体是显示在屏幕上的画面,是数据库和用户联系的接口。窗体的功能是建立一个可以查询、输入、修改、删除数据的操作界面,方便用户在友好的界面下编辑或查阅数据。

窗体中不仅可以包含普通的数据,还可以包含图片、图形、声音和视频等不同的数据类型,还可以对窗体进行美化。

窗体提供了一种简单易用的处理数据的格式,而且还可以向窗体中添加一些功能元素,如命令按钮等。用户可以对按钮进行编程来确定在窗体中显示哪些数据、打开窗体或报表或者执行其他各种任务。

(4)报表。报表主要用来显示或者打印,是对数据库中查询结果汇总、统计分析的最主要的数据展现方式。报表上所有内容的大小和外观都可以调整。

在设计报表的过程中,还可以设置分组显示,以最方便用户阅读的方式来显示信息。运用报表还可以创建标签,将标签报表打印出来以后,裁剪成一个个小的标签,贴在货物或物品上,用于对该物品进行标识。

(5)宏。宏是Access中执行指定任务的一个或多个操作的集合,可以自动完成某些常用的操作。在日常工作中,用户经常需要重复大量的操作,利用宏可以简化这些操作。

通过宏用户不必编写任何代码,就可以实现一定的交互功能。宏可以实现的功能有打开/关闭数据库对象、弹出提示信息框、实现数据的输入和输出、筛选查找数据、在数据库启动时执行操作等。

(6)模块。模块是用编程语言(VisualBasic)编写的过程或函数,用于实现一些宏不能完成的精细的或复杂的操作。模块中的每一个过程都是一个函数或是子程序。通过将模块与窗体、报表等对象相联系,可以建立完整的数据库应用系统。

Access数据库正是利用它的6个对象进行工作的。其中表是6个对象中唯一真正存储数据的,设计良好的表结构,对整个数据库系统的高效运行来说是至关重要的。

2.Access2010工作界面

同其它MSoffice2010程序一样,Access2010也使用功能区代替了菜单,并使用了功能更加强大的后台视图。

(1)功能区。Access2010用功能区取代了早期版本菜单,主要功能区有“开始”、“创建”、“外部数据”和“数据库工具”四个,每个功能区分为几组选项卡,每个选项卡包含多个相关命令。当在对某个对象进行操作时,还会出现上下文功能区。例如,创建表就会出现上下文功能区“表格工具”。

(2)导航窗格。导航窗格在窗口的左侧,列出了数据库中的对象,方便用户操作。

由于Access数据库的所有数据对象都保存在一个扩展名为accdb的数据库文件中,所以在使用Access进行组织、存储和管理数据时,必须先创建数据库文件。

3.创建数据库

创建数据库有两种方法,一种是建立一个空数据库,然后向数据库中添加表、查询等数据对象;另一种方式是通过模板创建,通过简单几个步骤以后,可以生成一个数据库,然后再对这个数据库文件进行修改。

(1)使用模板创建数据库。Access2010提供了多种传统数据库和Web数据库样本模板,通过这些模板可快速创建数据库。

(2)创建空数据库。用这种方式创建的数据库里面并没有数据库对象,只是一个空的数据库。可用创建空数据库的方法在D盘根目录或其它目录下创建“简单教务管理”数据库,然后向其中添加表、查询、窗体等数据库对象。

4.打开/关闭数据库

在向数据库中进行添加/删除数据对象或者修改数据对象等操作前,应该先打开数据库,操作结束后,及时关闭数据库。7.5.2数据表—MSAccess数据库的基础

表是Access数据库的基本对象,存储了数据库中的所有数据,如文本、数字、图片、声音和视频等。表是其它数据库对象操作的基础,在建好数据库以后,通常首先建立数据表及建立相关表之间的关系。

1.表的组成

在关系数据库中,实体和联系都对应为关系。在Access中,一个关系就是一张数据表。数据表是按照一定的结构来存储数据的,因此一张数据表由两部分构成—表结构和表内容。表的结构(对应于word表格的标题行)主要包括字段名称、数据类型和字段属性等。而表内容则体现为记录和数据项。

(1)字段名称。每个字段都有一个唯一的名称,称为字段名。在Access2010中,字段命名应该遵循如下规则:

字段名长度不能超过64个字符,汉字和英文字符一样视为一个字符。

字段名可以使用字母、数字、汉字、空格和其它字符,但不能以空格开头(即第一个字符不能是空格)。

不能使用“!”、“.”、“[”、“]”和“`”。

不能使用ASCII码为0~31的字符。

(2)数据类型。表中每一列称为一个字段,一个字段应该存储具有相同特征的数据,称为数据类型。Access2010提供了12种不同的数据类型。分别是:

①自动编号。自动编号型数据比较特殊,自动编号型字段的值不能人为的输入或修改。数据类型为自动编号型的字段一般用来设置为主键,每个表中只能有一个字段被设置为自动编号型。当设置某一字段为自动编号数据类型时,该字段便永久地与记录建立了链接。当向表中插入一条记录时,Access会在自动编号型字段中插入一个唯一编号的整数值,当删除某条记录时,该字段的值也一并删除,永远不会再使用。②文本。文本类型可存储中英文字符、数字和符号。一般对于不需要计算的数字,如身份证号码、电话号码、邮政编号、学号等可设为文本型数据。文本型字段最多只能存储255个字符,默认为50个。

③备注。备注类型和文本一样,也用来存储字符、数字和符号,最多可以存储65 535个字符。当存储如简历这样字符较多的数据时,可使用备注型。由于不能对备注型数据进行排序和索引,所以会降低查询的速度。

④数字。用于存储要参加算术运算的数据,如工资、成绩、工龄等数据。数字类型的数据所占存储空间的多少与数字类型有关,如表7-17所示。表7-17⑤日期/时间。用于存储日期和时间,如出生日期、工作时间、进货时间等。字段长度为8字节。

⑥货币。货币是数字类型的特殊情况,向货币类型的字段中输入数据时,会自动添加货币符号、千位分隔符并设置为保留两位小数。字段大小为8字节。

⑦是/否。适合于取值只有两种情况的数据,如婚姻状态、是否党员、对/错等。字段大小为1字节。

⑧ OLE对象。数据类型用于存储OLE数据或其它二进制对象。例如Word文档、Excel工作表、图像、图形、音频、视频等。最高可以存储1GB以上。OLE对象由OLE服务器应用程序创建,可以连接到上层应用程序或者嵌入到Access表中。OLE对象只能用于显示在Access窗体和报表中的限定对象框架中。不能对OLE对象建立索引。⑨附件。“附件”数据类型是允许向Access数据库附加外部文件的特殊字段,只能用于.accdb格式的数据库中。单击附件字段时,Access会打开一个小的对话框,可以查找要附加到表的文件。附加的文件集成到Access数据库中,但是它不会转换为某种本机Access数据类型。表中的一个附件字段可以包含多个文件。由于附加的数据集成到数据库中,所以如果添加了很多附件,.accdb文件则会迅速变大。

⑩计算。用于显示计算结果,计算时必须引用同一表中的其它字段。查阅向导。用于插入一个字段,通常为4字节。该字段允许最终用户从另一个表或窗体中,或者从一个SQL语句的结果中选择值。这些值可以通过组合框或者列表框的方式呈现出来。

超链接。用于存放链接到本地或网络上资源的地址,最多64 000个字符。超链接地址可以是URL(网页地址),也可以是UNC。超链接地址包含显示文本、地址、子地址三个部分,以“#”隔开。一般显示格式为:显示文本#地址#子地址,也可以只有前两部分,例如,“桂林电子科技大学#”。

数据类型决定了数据的存储方式和使用方式。在设计表的结构时,要为每个字段选择合适的数据类型。

(3)字段属性。不同数据类型的字段属性是不同的,定义字段属性可以对输入/输出的格式进行限制或验证,也可以控制数据在数据表视图中的显示格式。常见的字段属性有:

①字段大小。字段大小即字段的长度,该属性用来设置存储在字段中文本的最大长度或数字的取值范围。因此,只有文本型、数字型和自动编号型字段才具有该属性。

②格式。“格式”属性用来确定数据在屏幕上的显示方式以及打印方式,从而使表中的数据输出有一定的规范,便于浏览和使用。格式设置只是改变数据输出的样式,对输入数据本身没有影响,也不影响数据的存储格式。③输入掩码。输入掩码属性用来设置字段中的数据输入格式,对电话号码、日期、邮政编码这些形式相对固定的数据尤其适用。例如邮政编码必须为六位数字,不能是五位,也不能是七位,也不能是字符或其它符号。此时,可以定义一个输入掩码“000000”来确保输入正确的邮政编码。对于文本、数字、日期/时间、货币等数据类型的字段,均可定义输入掩码属性。

如果同时使用“格式”和“输入掩码”属性,要注意它们的结果不能互相冲突。如果某字段设置了输入掩码,同时又设置了格式属性,格式属性将在数据显示时优先于输入掩码的设置,这意味着即使已经保存了输入掩码,在数据设置格式显示时,将被忽略。输入掩码只为“文本”型和“日期/时间”型字段提供向导,其它数据类型没有向导帮助。数据掩码属性所用字符及含义如表7-18所示。

适当利用格式符可以限定字段的取值范围及格式。例如,在“学生”表中,可以通过设置学号字段的输入掩码属性为“00000000”规定学生学号只能是8位数字。表7-18④默认值。在尚未输入字段值时系统自动赋予该字段的取值。当表中有多条记录的某个字段值相同时,可以将相同的值设置为该字段的默认值,如“学生”表中的性别字段,可设置默认值为“男”,这样每产生一条新记录时,这个默认值就自动加到该字段中,避免重复输入,加快录入速度。用户可以直接使用这个默认值,也可以输入新的值。

⑤有效性规则与有效性文本。“有效性规则”是一个与字段或记录相关的表达式,通过对用户输入的值加以限制,提供数据有效性检查。建立有效性规则时,必须创建一个有效的Access表达式,该表达式是一个逻辑表达式,以此来控制输入到数据表记录中的数据。常用的有效性规则是字段级有效性规则。该规则是对一个字段的约束,它将所输入的值与所定义的规则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论