《计算机二级VF资料.ppt》由会员分享,可在线阅读,更多相关《计算机二级VF资料.ppt(44页珍藏版)》请在三一办公上搜索。
1、1,Visual FoxPro面向对象程序设计 实用教程,2,第一章 数据库基本理论,1.1 数据、信息和数据处理1.2 数据管理技术的发展1.3 数据库系统基本概念1.4 数据模型1.5 关系数据库基础知识,3,Visual FoxPro面向对象程序设计实用教程电子教案,本章主要介绍信息、数据、数据处理、数据模型的基本概念,着重介绍数据库,数据库管理系统,数据库系统的功能、组成和相互关系,以及关系数据库的三种关系运算和关系表中的记录、字段、关键字段、关系模型等概念。1.1 数据、信息和数据处理 数据与信息1数据数据是对客观事物记录下来的事实,是描述或表达信息的物理形式。在计算机领域,凡能为计
2、算机所接受和处理的物理形式,例如字符、数字、图形、图像、声音等都可称之为数据。因此,数据泛指一切可被计算机接受和处理的符号。数据可分为数值型数据(如产量、价格、成绩等)和非数值型数据(如人名、日期、文章、声音、图形、图像等)。数据可以被收集、存储、处理(加工、分类、计算等)、传播和使用。,4,Visual FoxPro面向对象程序设计实用教程电子教案,2信息信息是指数据经过加工处理后所得到的有价值的知识。信息无时不有,无处不在,客观存在于人类社会的各个领域,而且不断地变化着。我们需要不断地获取信息、加工信息和运用信息为社会的各个领域服务。从计算机应用的角度,我们通常将信息看成是人们进行各种活动
3、所需要获取的知识。信息与数据既有联系又有区别,数据反映了信息,而信息又依靠数据来表达。用不同的数据形式可以表示同样的信息,信息不随它的数据形式不同而改变。例如:某个部门要召开会议,这个事件形成了“开会”这样一个信息。把这个信息通知有关单位时,可以使用广播,即通过“声音”这个具体形式;也可以通过文件,以文字形式向有关单位传递。“开会”这一信息就从两种不同数据得到。尽管数据形式不同,但“开会”这个信息的内容没有变,因此可以说信息是数据的内涵,而数据是信息的具体表示形式。在许多地方,信息和数据并不是截然分开的,,5,因为有些信息本身就是数据化的,数据本身又是一种信息。因此,在多数情况下不对它们进行区
4、分,计算机进行数据交换也可以说是信息交换,数据处理也意指信息处理。总之,信息是反映客观现实世界的知识,数据是信息的具体表现形式,数据经过加工处理后使其具有知识性并对人类活动产生有意义的决策作用。1.1.2 数据处理 数据处理是指将数据转换成信息的过程。数据处理主要包括对数据的收集、分类、排序、存储、计算、加工、检索、传输和制表等处理过程,经过处理提炼的数据能够反映事物或过程的本质和内在联系,为我们工作和决策提供必要的信息基础和依据,输出有价值、有意义的信息。,Visual FoxPro面向对象程序设计实用教程电子教案,6,1.2 数据管理技术的发展数据库(Data Base,简写为DB)技术是
5、20世纪60年代末出现的以计算机技术为基础的数据处理技术。数据处理的核心问题是数据管理。数据管理指的是对数据进行组织、编码、分类、存储、检索与维护等操作。随着计算机硬件技术和软件技术的发展和进步,计算机数据管理的水平不断提高,管理方式也发生了很大的变化。发展到现在,数据管理经历了人工管理、文件管理和数据库系统(Data Base System,简写为DBS)三个阶段。.2.1 人工管理阶段人工管理阶段起始于20世纪50年代。当时计算机的存储设备没有磁盘,数据只能存放于卡片、纸带上。在软件方面,也没有专门的管理数据的文件,数据由计算数据的程序携带。,Visual FoxPro面向对象程序设计实用
6、教程电子教案,7,Visual FoxPro面向对象程序设计实用教程电子教案,在人工管理阶段对数据的管理存在的主要问题是:数据不能独立,编写的程序是针对程序中携带的数据,当数据修改时程序也得修改。而程序修改后,数据的格式、类型也得变化以适应处理它的程序。数据不能长期保存,数据被包含在程序中。程序运行结束后,数据和程序一起从内存中释放。没有对数据管理的软件,即当时还没有开发专门进行数据管理的软件。人工管理阶段不仅要设计数据的处理方法,而且还要说明数据在存储器的存储地址。应用程序和数据是一一对应的,各程序之间的数据不能相互传递,数据不能重复使用。1.2.2 文件管理阶段 在20世纪60年代,计算机
7、软、硬件技术得到快速发展,硬件有了磁盘、磁鼓等大容量且能长期保存数据的存储设备,软件有了操作系统。操作系统中有专门的文件系统用于管理外部存储器上的数据文件,数据与程序分开,数据能长期保存。,8,Visual FoxPro面向对象程序设计实用教程电子教案,文件管理阶段可以把有关的数据组织成一个文件,这种数据文件可以脱离程序而独立存储在外存储器上,由一个专门的文件管理系统对其进行管理。与早期人工管理阶段相比,文件管理的效率和数量都有很大提高,但仍存在以下问题:数据没有完全独立:虽然数据和程序分开,但所设计的数据是针对某一特定程序,所以无论是修改数据文件或程序文件都要相互影响。存在数据冗余:文件系统
8、中的数据没有合理、规范的结构,使得数据的共享性极差,哪怕是不同程序使用部分相同的数据,数据结构也有一点不同,都要创建各自的数据文件,造成数据的重复存储。数据不能集中管理:文件系统中的数据文件没有集中的管理机制,数据的安全性和完整性都不能保障。各数据之间、数据文件之间缺乏联系,给数据处理造成不便。,9,Visual FoxPro面向对象程序设计实用教程电子教案,由于文件系统管理数据的缺陷,迫切需要新的数据管理方式,把数据组成合理结构,能集中、统一地进行管理。数据库技术开始于20世纪60年代末,在美国产生了具有商业价值的数据库系统,20世纪80年代随着微型机的普遍应用和数据库系统的不断完善,数据库
9、系统在世界范围内得到了广泛的应用。数据库系统是将所有的数据集中到一个数据库中,形成一个数据中心,实行统一规划,集中管理,用户通过数据库管理系统(DataBase Management System,简写为DBMS)来使用数据库中的数据。1数据库系统的主要特点实现了数据的结构化:在数据库中采用了特定的数据模型组织数据。数据库系统把数据存储于有一定结构的数据库文件中,实现了数据的独立和集中管理,克服了人工管理和文件系统管理的缺陷,大大方便了用户的使用,提高了数据管理的效率。,10,Visual FoxPro面向对象程序设计实用教程电子教案,实现了数据的共享:数据库中的数据能为多个用户服务。实现了数
10、据的独立:用户的应用程序与数据的逻辑结构及数据的物理存储方式无关。实现了数据的统一控制:数据库系统提供了各种控制功能,保证了数据的并发控制、安全性和完整性。数据库作为多个用户和应用程序的共享资源,允许多个用户同时访问。并发控制可以防止多用户并发访问数据时而产生的数据不一致性。安全性可以防止非法用户存取数据,完整性可以保证数据的正确性和有效性。在数据库系统阶段,应用程序和数据完全独立,应用程序对数据管理和访问更加灵活,一个数据库可以为多个应用程序共享,使得程序的编制和效率大大提高,减少了数据的冗余度,实现数据资源共享,提高了数据的完整性、一致性以及数据的管理效率。,11,Visual FoxPr
11、o面向对象程序设计实用教程电子教案,2数据库系统的分类数据库系统的分类有多种形式,按数据的存放地点,数据库系统分为集中式数据库系统和分布式数据库系统。(1)集中式数据库系统集中式数据库系统是将数据集中在一个数据库中。数据在逻辑上和物理上都是集中存放的。所有的用户在存取和访问数据时,都要访问这个数据库。例如,一个银行储蓄系统,如果系统的数据存放在一个集中式数据库中,所有的储户在存款和取款时都要访问这个数据库。这种方式访问方便,但通信量大,速度慢。,12,Visual FoxPro面向对象程序设计实用教程电子教案,(2)分布式数据库系统 分布式数据库系统是将多个集中式的数据库通过网络联接起来,使各
12、个结点的计算机可以利用网络通信功能访问其他结点上的数据库资源,使各个数据库系统的数据实现高度的共享。分布式数据库系统是在20世纪70年代后期开始使用的,由于网络技术的发展为数据库提供了良好的运行环境,使数据库系统从集中式发展到分布式,从主机/终端系统发展到客户机/服务器系统结构。在网络环境中,分布式数据库在逻辑上是一个集中式数据库系统,实际上数据是存储在计算机网络的各个结点上。每个结点的用户并不需要了解他所访问的数据究竟在什么地方,就如同在使用集中式数据库一样,因为在网络上的每个结点都有自己的数据库管理系统,都具有独立处理本地事务的能力,而且这些物理上分布的数据库又是共享资源。分布式数据库特别
13、适合地理位置分散的部门和组织机构,如铁路、民航订票系统,银行业务系统等。分布式数据库系统的主要特点:系统具有更高的透明度;可靠性更高、效率更高;局部与集中控制相结合;系统易于扩展。,13,Visual FoxPro面向对象程序设计实用教程电子教案,1.3 数据库系统基本概念1.3.1 数据库数据库是按一定的组织形式存储在一起的相互关联的数据集合。实际上,数据库就是一个存放大量业务数据的场所,其中的数据具有特定的组织结构。所谓“组织结构”,是指数据库中的数据不是分散的、孤立的,而是按照某种数据模型组织起来的,不仅数据记录内的数据之间是彼此相关的,数据记录之间在结构上也是有机地联系在一起的。数据库
14、具有数据的结构化、独立性、共享性、冗余量小、安全性、完整性和并发控制等基本特点。1.3.2 数据库管理系统数据库管理系统是一种负责数据库的定义、建立、操纵、管理、维护的软件系统,是数据库系统的核心部分。,14,Visual FoxPro面向对象程序设计实用教程电子教案,数据库管理系统是在操作系统的支持下进行工作的,它实现了对数据库资源进行统一管理和控制,使数据结构和数据存储具有一定的规范性,提高数据库应用的简明性和方便性。DBMS为用户管理数据提供了一整套命令,利用这些命令可以实现对数据库的各种操作,如数据结构的定义,数据的输入、输出、编辑、删除、更新、统计、浏览等。数据库管理系统通常由以下几
15、个部分组成:提供了数据定义语言DDL(Data Definition Language)及其编译和解释程序主要是用于定义数据库的结构。数据操纵语言DML(Data Manipulation Language)或查询语言提供了对数据库中的数据存取、检索、统计、修改、删除、输入、输出等基本操作。数据库运行管理和控制例行程序,是数据库管理系统的核心部分用于数据的安全性控制、完整性控制、并发控制、通信控制、数据存取、数据库转储、数据库初始装入、数据库恢复、数据库的内部维护等,这些操作都是在该程序控制和统一管理下进行的。,15,Visual FoxPro面向对象程序设计实用教程电子教案,数据字典DD(D
16、ata Dictionary)提供了对数据库数据描述的集中管理规则,对数据库的使用和操作可以通过查阅数据字典来进行。1.3.3 数据库系统数据库系统是指计算机系统引入数据库后的系统构成,是一个具有管理数据库功能的计算机软硬件综合系统。具体地说,它主要包括计算机硬件、操作系统、数据库、数据库管理系统和建立在该数据库之上的相关软件、数据库管理员和用户等组成部分。数据库系统具有数据的结构化、共享性、独立性、可控冗余度以及数据的安全性、完整性和并发控制等特点。硬件系统:是数据库系统的物理支持,包括主机、键盘、显示器、外存储器、输入输出设备等。,16,Visual FoxPro面向对象程序设计实用教程电
17、子教案,软件系统:包括系统软件和应用软件。系统软件包括支持数据库管理系统运行的操作系统(如Windows)和数据库管理系统(如Visual FoxPro);应用软件是指在数据库管理系统基础上,用户根据实际问题自行开发的应用程序。数据库是数据库系统的管理对象,为用户提供数据的信息源。数据库管理员是负责管理和控制数据库系统的主要维护管理人员。用户是数据库的使用者,他们利用数据库管理系统软件提供的命令访问数据库并进行各种操作。用户包括专业用户和最终用户。专业用户即程序员,是负责开发应用系统程序的设计人员;最终用户是对数据库进行查询或通过数据库应用系统(Data Base Application Sy
18、stems,简写为DBAS)提供的界面使用的数据库人员。1.3.4 数据库应用系统数据库应用系统是在DBMS支持下根据实际问题开发出来的数据库应用软件,通常是由数据库和应用程序组成。,17,Visual FoxPro面向对象程序设计实用教程电子教案,由于数据库的数据要供不同的应用程序共享,因此在设计应用程序前首先要对数据库进行设计,数据库的设计是以“关系规范化”理论为指导,按照实际应用的报表数据,首先定义数据的结构,包括逻辑结构和物理结构的定义,然后输入数据形成数据库。开发应用程序也可采用“功能分析,总体设计,模块设计,编码调试”的步骤实现。1.3.5 数据库系统的数据模式从数据库管理系统的角
19、度看,数据库系统可分为三层,从外到内依次为外模式、模式和内模式。(1)模式模式也称逻辑模式或概念模式,是对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础。,18,Visual FoxPro面向对象程序设计实用教程电子教案,模式是在数据库模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、应用开发工具,以及高级程序设计语言无关。DBMS提供模式定义语言DDL来描述模式。定义模式时要定义数据的逻辑结构,包括记录由哪些数据项构成,数据项的名字、类型、取值范围,数据之间的联系,与数据有关的安全性、完整性
20、要求等。(2)内模式内模式又称为存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。它规定数据在存储介质上的物理组织方式、记录寻址技术、定义物理存储块的大小、溢出处理方法等。一个数据库只有一个内模式。(3)外模式外模式又称子模式或用户模式,是数据库用户和数据库系统的接口,是数据库用户的数据视图,是数据库用户可以看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。,19,Visual FoxPro面向对象程序设计实用教程电子教案,外模式通常是模式的子集。一个数据库可以有多个外模式。同一个外模式可以被某一个用户的多个应用所使用,但一个应用程序只有一个
21、外模式。为了实现三个抽象级别的联系和转换,数据库管理系统在三层结构之间提供了两层映像:外模式/模式映像和模式/内模式映像。映像是一种对应规则,指出映像双方如何进行转换。数据库的三级结构靠映像联结。外模式/模式映像:定义外模式与模式之间的对应关系。当数据库的全局逻辑结构改变时,只需要修改外模式与模式之间的对应关系,而不必修改局部逻辑结构,相应的应用程序也不必修改,可保持外模式不变,实现数据和程序的逻辑独立性。模式/内模式映像:定义数据全局逻辑结构与存储结构之间的对应关系。当数据库的物理存储结构改变时,只需要修改模式与内模式之间的对应关系,可保持模式不变,实现数据和程序的物理独立性。,20,Vis
22、ual FoxPro面向对象程序设计实用教程电子教案,1.4 数据模型1 实体的描述信息世界中的基本概念:实体客观存在并可相互区分的事物称为实体。它是信息世界的基本单位。属性描述实体的特性称为属性。一个实体可由若干个属性来 刻画。码(关键字)惟一标识实体的一个属性或属性集称为码。域属性的取值范围。实体型用实体名及其属性名集合来抽象和刻画同类实体称为 实体型。实体集同类型的实体的集合称为实体集。实体间的联系及联种两个实体间的联系可以分为三类:一对一联系(11)如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。一对多联系(1n)如果对
23、于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每,21,Visual FoxPro面向对象程序设计实用教程电子教案,一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体B有一对多联系。多对多联系(mn)如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体B具有多对多联系。实体型之间的一对一、一对多、多对多联系不仅存在于两个实体型之间,也存在于两个以上的实体型之间。同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系,称为自
24、联系。1.4.3 常用数据模型数据模型是数据库系统中用于提供信息表示和操作手段的结构形式。简单地说,数据模型是指数据库的组织形式,它决定了数据库中数据之间联系的表达方式。,22,Visual FoxPro面向对象程序设计实用教程电子教案,在数据库系统设计时,数据库的性质是由系统支持的数据模型来决定的。不同的数据模型以不同的方式把数据组织到数据库中。组织数据库的数据模型有三种:层次模型、网状模型、关系模型。如果数据库中的数据是依照层次模型进行存储数据,该数据库就称为层次数据库;如果是依照网状模型进行存储数据,该数据库就称为网状数据库;如果是依照关系模型进行存储数据,该数据库就称为关系数据库。1层
25、次模型用树形结构表示实体及其之间联系的模型称为层次模型。层次模型是数据库系统最早使用的一种模型。层次模型像一棵倒挂的树,根结点在上,是最高层,子结点在下,逐层排列。例如学院中的行政机构、企业中的部门编制等以及数据间的联系都是层次模型。支持层次数据模型的数据库管理系统称为层次数据库管理系统。,23,Visual FoxPro面向对象程序设计实用教程电子教案,2网状模型网状模型是一种比较复杂的数据模型,它是以网状结构表示实体与实体之间的联系。网状模型可以表示多个从属关系的联系,也可以表示数据间的交叉关系,即数据间的横向关系与纵向关系,它是层次模型的扩展。例如铁路运行就是一个网状模型。用于支持网状数
26、据模型的数据库管理系统称为网状数据库管理系统。3关系模型用二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。关系模型不像层次模型和网状模型那样使用大量的链接指针把有关数据集合到一起,而是用一张二维表来描述一个关系。关系模型是将数据组织看成一张二维关系表。用关系模型设计的数据库就是关系型数据库。关系数据库中的每一个关系都是一个二维表。在二维表中,每一行称为一个记录,用于表示一组数据项,表中的每一列称为一个字段或属性,用于表示每列中的数据项。表中的第一行称为字段名,用于表示每个字段的名称。表1-1所示是一个学生情况表。,24,Visual FoxPro面向对象程序设计实用教程电子教案,
27、表1-1 学生情况表,25,Visual FoxPro面向对象程序设计实用教程电子教案,在关系模型中二维表应具有的特征是:表中的每一数据项不能再分;表中每一列的数据类型必须相同;表中每一列的字段名不允许相同;表中的记录和字段顺序可以任意排列。关系模型对数据库的理论和实践产生极大的影响,它比层次模型和网状模型有明显的优势,是目前最流行的数据库模型。支持关系模型的数据库管理系统称为关系数据库管理系统。Visual FoxPro系统就是依照关系模型设计的,因此Visual FoxPro是一个关系数据库管理系统。,1.5 关系数据库基础知识关系数据库是由若干依照关系模型设计的二维数据表文件的集合。在V
28、isual FoxPro中,一个关系数据库是由若干个数据表组成,每个数据表又是由若干个记录组成,每个记录由若干个数据项组成。一个关系的逻辑结构就是一个关系的逻辑结构就是一张二维表。,26,Visual FoxPro面向对象程序设计实用教程电子教案,这种用二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。1.5.1 关系术语关系建立在数学集合概念基础之上,它是由行和列的二维表组成。关系:一个关系就是一张二维表。每个关系有一个关系名。在Visual FoxPro中,一个关系就称为一个数据表。元组:二维表中水平方向的行称为元组。每一行是一个元组。在Visual FoxPro中,一行称为一
29、个记录。属性:二维表中垂直方向的列称为属性。每一列有一个属性名。在Visual FoxPro中,一列称为一个字段。域:指表中属性的取值范围。Visual FoxPro中,一个字段的取值称为一个字段的宽度。,27,Visual FoxPro面向对象程序设计实用教程电子教案,主码(关键字):表中的某个属性或属性组合,其值可以惟一确定一个元组。在Visual FoxPro中,具有惟一性取值的字段称为关键字段。外部关键字:如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,这个字段(属性)就称为外部关键字。关系模式:对关系的描述。一个关系模式对应一个关系的结构。其格
30、式为:关系名(属性名1,属性名2,属性名3,属性名n)例如,学生情况表的关系模式描述如下:学生情况表(学号,姓名,性别,出生年月,入校总分,三好生,特长,照片)1.5.2 关系的规范化关系数据库中,每个数据表中的数据如何收集,如何组织,这是一个很重要的问题。因此,要求数据库的数据要实现规范化,形成一个组织良好的数据库。,28,Visual FoxPro面向对象程序设计实用教程电子教案,数据的规范化基本思想是逐步消除数据依赖关系中不合适部分,使得依赖于同一个数据模型的数据达到有效的分离。每一个数据表具有独立的属性,同时又依赖于共同关键字。所谓规范化是指关系数据库中的每一个关系都必须满足一定的规范
31、要求。根据满足规范的条件不同,可以划分为六个等级:第一范式(1NF),第二范式(2NF),第三范式(3NF),修正的第三范式(BCNF),第四范式(4NF)和第五范式(5NF)。通常在解决一般性问题时,只要把数据表规范到第三个范式标准就可以满足需要。关系规范化的三个范式原则如下:第一范式:在一个关系中消除重复字段,且各字段都是不可分的基本数据项。第二范式:若关系模型属于第一范式,且所有非主属性都完全依赖关键字段。,29,Visual FoxPro面向对象程序设计实用教程电子教案,段。第三范式:若关系模型属于第二范式,且关系中所有非主属性都直接依赖关键字段。例如,有下列五张数据表,收集有关学生选
32、课的情况。生情况表记录了有关学号、姓名、性别、出生年月、入校总分、三好生、特长、照片等情况,如表1-2所示。,表1-2 学生情况表,第三范式:若关系模型属于第二范式,且关系中所有非主属性都直接依赖关键字段。例如,有下列五张数据表,收集有关学生选课的情况。生情况表记录了有关学号、姓名、性别、出生年月、入校总分、三好生、特长、照片等情况,如表1-2所示。,表1-2 学生情况表,30,Visual FoxPro面向对象程序设计实用教程电子教案,表1-3 选课表,课表记录了有关学号、课程号、成绩等情况,如表1-3所示。,表1-3 选课表,31,Visual FoxPro面向对象程序设计实用教程电子教案
33、,课表记录了有关教师号、课程号等情况,如表1-4所示。,表1-4 授课表,表1-4 授课表,32,Visual FoxPro面向对象程序设计实用教程电子教案,程表记录了有关课程号、课程名、课时等情况,如表1-5所示。,表1-5 课程表,表1-5 课程表,33,Visual FoxPro面向对象程序设计实用教程电子教案,表1-6 教师情况表,教师情况表记录了有关教师号、姓名、性别、职称、工资、政府津贴等情况,如表1-6所示。,上述五张数据表收集了有关学生情况、授课情况、选课情况、教师情况、课程情况等信息。如果将这些数据集中在一个表中,显然会使得表中的数据字段太宽、数据量大、结构复杂,使数据可能,
34、34,Visual FoxPro面向对象程序设计实用教程电子教案,重复出现,数据的输入、修改和查找都很麻烦,会造成数据存储空间的浪费。在关系数据库中,通过数据库管理系统,可将这些相关的数据表存储在同一个数据库中,将两数据表中具有相同值的字段名之间建立关联关系。如将学生情况表中的“学号”字段与选课表中的“课程号”字段建立关联关系;将选课表中的“课程号”字段与授课表中的“教师号”字段建立关联关系。使每个数据表具有独立性,又使每个数据表保持一定的关联关系。,35,Visual FoxPro面向对象程序设计实用教程电子教案,1传统的集合运算进行并、差、交、积集合运算的两个关系必须具有相同的关系模式,即
35、结构相同。并两个相同结构的关系R和S的“并”记为RS,其结果是由R和S的所有元组组成的集合。差两个相同结构的关系R和S的“差”记为R-S,其结果是由属于R但不属于S的元组组成的集合。差运算的结果是从R中去掉S中也有的元组。交两个相同结构的关系R和S的“交”记为RS,它们的交是由既属于R又属于S的元组组成的集合。交运算的结果是R和S的共同元组。积(笛卡尔积)它是由关系R的第一个元组依次与关系S的所有元组组合,R的第二个元组直到最后一个元组依次与S的所有元组组合,形成新的关系,记为RS。,36,Visual FoxPro面向对象程序设计实用教程电子教案,2专门的关系运算在关系数据库中,经常需要对关
36、系进行特定的关系运算操作。基本的关系运算有三种:选择、投影和连接。(1)选择选择运算是从关系中找出满足条件的记录。选择运算是一种横向操作,它可以根据用户的要求从关系中筛选出满足一定条件的记录,这种运算可以改变关系表中的记录个数,但不影响关系的结构。在Visual FoxPro命令中,可以通过子句FOR、WHILE等实现选择运算。例如,从学生情况表中找出入校总分大于580分的学生,如表1-7所示。通过Visual FoxPro命令可以从学生情况表中找出入校总分大于580分的4个记录(灰色记录)。,37,Visual FoxPro面向对象程序设计实用教程电子教案,表1-7 学生情况表,38,Vis
37、ual FoxPro面向对象程序设计实用教程电子教案,(2)投影投影运算是从关系中选取若干属性(字段)组成新的关系。投影运算是一种列向的操作,它可以根据用户的要求从关系中选出若干字段组成新的关系。其关系模式所包含的字段个数往往比原有关系少,或者字段的排列顺序不同。因此投影运算可以改变关系中的结构。在Visual FoxPro命令中,可以通过子句FIELDS实现投影运算。例如,通过Visual FoxPro命令可以从学生情况表(学号,姓名,性别,出生年月,入校总分,三好生,特长,照片)关系中只显示姓名、性别、入校总分三个字段。如表1-8所示,39,Visual FoxPro面向对象程序设计实用教
38、程电子教案,表1-8 学生情况表,40,Visual FoxPro面向对象程序设计实用教程电子教案,(3)连接连接运算是将两个关系通过共同的属性名(字段名)连接成一个新的关系。连接运算可以实现两个关系的横向合并,在新的关系中可以反映出原来两个关系之间的联系。选择和投影运算都属于单目运算,对一个关系进行操作;而连接运算属于双目运算,对两个关系进行操作。1.5.4 关系的完整性数据库系统在运行的过程中,由于数据输入错误、程序错误、使用者的误操作、非法访问等各方面原因,容易产生数据错误和混乱。为了保证关系中数据的正确、有效使用,需建立数据完整性的约束机制来加以控制。关系的完整性是指关系中的数据及具有
39、关联关系的数据间必须遵循的制约和依存关系,以保证数据的正确性、有效性和相容性。关系的完整性主要包括实体完整性、域完整性和参照完整性。,41,Visual FoxPro面向对象程序设计实用教程电子教案,1实体完整性实体是关系描述的对象,一行记录是一个实体属性的集合。在关系中用关键字来惟一地标识实体,关键字也就是关系模式中的主属性。实体完整性是指关系中的主属性值不能取空值(Null)且不能有相同值。若主属性取空值,则不可区分现实世界存在的实体。例如,学生的学号、职工的职工号一定都是惟一的,这些属性都不能取空值。,2域完整性域完整性约束也称为用户自定义完整性。域完整性约束是针对某一应用环境的完整性约
40、束条件,它反映了某一具体应用所涉及的数据应满足的要求。域是关系中属性值的定义范围。域完整性是对数据表中字段属性的约束,它包括字段的值域、字段的类型及字段的有效规则等约束,42,Visual FoxPro面向对象程序设计实用教程电子教案,它是由确定关系结构时所定义的字段的属性所决定。在设计关系模式时,定义属性的类型、宽度是基本的完整性控制。进一步的控制可保证输入数据的合理有效,如性别属性只允许输入“男”或“女”,其他字符的输入则认为是无效输入,拒绝接受。Visual FoxPro命令中的VALID语句可进行这方面的控制。,3参照完整性在实际的应用系统中,为减少数据的冗余度,常设计几个关系来描述相
41、同的实体,这就存在关系之间的引用参照,也就是说一个关系属性的取值要参照其他关系。如对学生信息的描述常用以下三个关系:学生(学号、姓名、性别、班级)课程(课程号、课程名)成绩(学号、课程号、成绩),43,Visual FoxPro面向对象程序设计实用教程电子教案,上述关系中,课程号不是成绩关系的主关键字,但它是被参照关系课程关系的主关键字,称为成绩关系的外关键字。参照完整性规则是指:外关键字可取空值或取被参照关系中主关键字值。虽然这里规定外关键字课程号可以取空值,但按照实体完整性规则,课程关系中课程号不能取空值,所以成绩关系中的课程号实际上是不能取空值的,只能取课程关系中已存在课程号的值。若取空值,关系之间就失去了参照的完整性。,44,Visual FoxPro面向对象程序设计实用教程电子教案,思考题1解释数据与信息的概念,并说明数据与信息的联系与区别。2几十年来,数据管理技术的发展经历了哪几个主要阶段?每个阶段各有何特点?3解释数据库、数据库管理系统、数据库系统、数据库应用系统等概念。4什么是数据模型?传统的数据模型主要有哪几种?什么是关系模型?关系模型有何特点?5数据库系统与文件系统的主要区别是什么?6关系数据库系统中所使用的数据结构是什么?7关系数据模型主要由哪三个部分组成?8在关系模型中,二维表应具有哪些特征?9数据的完整性的含义是什么?完整性规则包括哪些内容?,
链接地址:https://www.31ppt.com/p-6360505.html