VisualFoxPro6.0使用与开发技术_第1页
VisualFoxPro6.0使用与开发技术_第2页
VisualFoxPro6.0使用与开发技术_第3页
VisualFoxPro6.0使用与开发技术_第4页
VisualFoxPro6.0使用与开发技术_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、Visual FoxPro 6.0使用与开发技术使用与开发技术高职高专计算机系列教材高职高专计算机系列教材 谭浩强谭浩强 主编主编总总 目目 录录第第1章章Visual FoxPro系统概述系统概述第第2章走进章走进Visual FoxPro第第3章章Visual FoxPro基本操作及其预备知识基本操作及其预备知识第第4章表章表第第5章数据库章数据库第第6章视图章视图第第7章查询章查询第第8章章 报表报表第第9章程序设计基础章程序设计基础第第10章类章类第第11章表单章表单第第12章应用表单的设计章应用表单的设计第第13章菜单章菜单第第14章应用系统开发章应用系统开发第第1章章Visual

2、FoxPro系统概述系统概述1.1数据库基本概念数据库基本概念1.2数据库系统数据库系统1.3Visual FoxPro数据库管理系统数据库管理系统习题习题 Visual FoxPro系统概述本章主要介绍与系统概述本章主要介绍与Visual FoxPro数据库管理系统相关的一些数据库基础理论数据库管理系统相关的一些数据库基础理论方面的知识,逐一讲解信息、数据、数据库等概念方面的知识,逐一讲解信息、数据、数据库等概念和关系数据库规范化原则,这些是学习和掌握和关系数据库规范化原则,这些是学习和掌握Visual FoxPro技术的基础和前提。技术的基础和前提。1.1 数据库基本概念数据库基本概念 当

3、人们试图走进数据库应用领域时,首先遇到的是信当人们试图走进数据库应用领域时,首先遇到的是信息、数据和数据库等基本概念。这些不同的术语和概息、数据和数据库等基本概念。这些不同的术语和概念贯穿数据处理的全过程,对我们更好地学习和使用念贯穿数据处理的全过程,对我们更好地学习和使用数据库管理系统,有着重要的意义。当我们对这些概数据库管理系统,有着重要的意义。当我们对这些概念有所了解后,学习念有所了解后,学习Visual FoxPro数据库管理系统操数据库管理系统操作与应用,将会更加得心应手。作与应用,将会更加得心应手。 1.1.1 信息、数据信息、数据 1. 信息信息 信息信息(information

4、)是客观事物属性的反映。它所反映是客观事物属性的反映。它所反映的是某一客观系统中,某一事物的某一方面属性或某的是某一客观系统中,某一事物的某一方面属性或某一时刻的表现形式。通俗地讲,信息是经过加工处理一时刻的表现形式。通俗地讲,信息是经过加工处理并对人类客观行为产生影响的数据表现形式。并对人类客观行为产生影响的数据表现形式。 信息是人们在进行社会活动、经济活动及生产活动信息是人们在进行社会活动、经济活动及生产活动时的产物,并用以参与、指导其活动过程。信息是时的产物,并用以参与、指导其活动过程。信息是有价值的,信息是可以感知的。信息可以通过载体有价值的,信息是可以感知的。信息可以通过载体传递,信

5、息可以通过信息处理工具进行存储、加工、传递,信息可以通过信息处理工具进行存储、加工、传播、再生和增值。传播、再生和增值。 在信息社会中,信息一般可与物质和能量相提并论,在信息社会中,信息一般可与物质和能量相提并论,它是一种重要的资源。它是一种重要的资源。2. 数据数据 数据数据(data)是反映客观事物属性的记录,是信息的是反映客观事物属性的记录,是信息的载体。对客观事物属性的记录是用一定的符号来表载体。对客观事物属性的记录是用一定的符号来表达的,因此数据是信息的具体表现形式。数据所反达的,因此数据是信息的具体表现形式。数据所反映的事物属性是它的内容,而符号是它的形式。映的事物属性是它的内容,

6、而符号是它的形式。 数据表现信息的形式可以是多种多样的,不仅有数字、数据表现信息的形式可以是多种多样的,不仅有数字、文字符号,还可以有图形、图像和声音等。用数据记文字符号,还可以有图形、图像和声音等。用数据记录同一信息可以有不同的形式,信息不会随着数据形录同一信息可以有不同的形式,信息不会随着数据形式的不同而改变其内容和价值。式的不同而改变其内容和价值。 数据与信息在概念上是有区别的。从信息处理角度看,数据与信息在概念上是有区别的。从信息处理角度看,任何事物的属性都是通过数据来表示的,数据经过加任何事物的属性都是通过数据来表示的,数据经过加工处理后,使其具有知识性并对人类活动产生决策作工处理后

7、,使其具有知识性并对人类活动产生决策作用,从而形成信息。用,从而形成信息。 用数据符号表示信息,其形式有许多种类型。常见的用数据符号表示信息,其形式有许多种类型。常见的有三种类型,一是数值型数据,即对客观事物进行定有三种类型,一是数值型数据,即对客观事物进行定量记录的符号,如数量、年龄、价格和度数等;二是量记录的符号,如数量、年龄、价格和度数等;二是字符型数据,即对客观事物进行定性记录的符号,如字符型数据,即对客观事物进行定性记录的符号,如姓名、单位、地址的标志等;三是特殊型数据,即对姓名、单位、地址的标志等;三是特殊型数据,即对客观事物进行形象特征和过程记录的符号,如声音、客观事物进行形象特

8、征和过程记录的符号,如声音、视频、图像等。视频、图像等。 从计算机的角度看,数据泛指可以被计算机接受并能从计算机的角度看,数据泛指可以被计算机接受并能够被计算机处理的符号。够被计算机处理的符号。 总之,信息是有用的数据,数据是信息的表现形式。总之,信息是有用的数据,数据是信息的表现形式。信息是通过数据符号来传播的,数据如不具有知识性信息是通过数据符号来传播的,数据如不具有知识性和有用性则不能称其为信息。和有用性则不能称其为信息。 1.1.2 数据处理数据处理 所谓数据处理实际上就是利用计算机对各种类型的数所谓数据处理实际上就是利用计算机对各种类型的数据进行处理。数据处理也称为信息处理。它包括对

9、数据进行处理。数据处理也称为信息处理。它包括对数据的采集、整理、存储、分类、排序、检索、维护、据的采集、整理、存储、分类、排序、检索、维护、加工、统计和传输等一系列操作。数据处理的目的是加工、统计和传输等一系列操作。数据处理的目的是从大量的、原始的数据中获得我们所需要的资料并提从大量的、原始的数据中获得我们所需要的资料并提取有用的数据成分,作为行为和决策的依据。取有用的数据成分,作为行为和决策的依据。 随着电子计算机软件和硬件技术的发展,数据处理随着电子计算机软件和硬件技术的发展,数据处理过程发生了划时代的变革,而数据库技术的发展,过程发生了划时代的变革,而数据库技术的发展,又使数据处理跨入了

10、一个崭新的阶段。数据的管理又使数据处理跨入了一个崭新的阶段。数据的管理技术的发展经历了人工管理、文件管理和数据库系技术的发展经历了人工管理、文件管理和数据库系统管理三个阶段。统管理三个阶段。 人工管理出现在计算机应用于数据管理的初期。由人工管理出现在计算机应用于数据管理的初期。由于没有必要软件和相应的硬件环境支持,用户只能于没有必要软件和相应的硬件环境支持,用户只能直接在裸机上操作。用户的应用程序中不仅要有设直接在裸机上操作。用户的应用程序中不仅要有设计数据处理的方法,还要阐明数据在存储器上的存计数据处理的方法,还要阐明数据在存储器上的存储地址。在这一管理方式下,用户的应用程序与数储地址。在这

11、一管理方式下,用户的应用程序与数据相互结合不可分割,当数据有所变动时程序则随据相互结合不可分割,当数据有所变动时程序则随之改变,独立性差;另外,各程序之间的数据不能之改变,独立性差;另外,各程序之间的数据不能相互传递,缺少共享性,因而这种管理方式既不灵相互传递,缺少共享性,因而这种管理方式既不灵活,也不安全,编程效率低下。活,也不安全,编程效率低下。 文件管理是利用文件系统管理软件把有关的数据组文件管理是利用文件系统管理软件把有关的数据组织成一个数据文件,并长期地保存在外存储器上,织成一个数据文件,并长期地保存在外存储器上,这种数据文件可以脱离程序而独立存在,由一个专这种数据文件可以脱离程序而

12、独立存在,由一个专门的文件管理系统实施统一管理。文件管理系统是门的文件管理系统实施统一管理。文件管理系统是一个独立的系统软件,是应用程序与数据文件之间一个独立的系统软件,是应用程序与数据文件之间的一个接口。在这一管理方式下,应用程序通过文的一个接口。在这一管理方式下,应用程序通过文件管理系统对数据文件中的数据进行加工处理。应件管理系统对数据文件中的数据进行加工处理。应用程序与数据之间具有一定的独立性。但数据文件用程序与数据之间具有一定的独立性。但数据文件仍高度依赖于与其对应的特定程序,不能被多个程仍高度依赖于与其对应的特定程序,不能被多个程序通用,由于数据文件之间不能建立任何联系,因序通用,由

13、于数据文件之间不能建立任何联系,因而数据的通用性仍然较差,冗余量大。而数据的通用性仍然较差,冗余量大。 数据库系统管理是通过数据库管理系统软件对所用数据库系统管理是通过数据库管理系统软件对所用的数据实行统一规划管理,形成一个数据中心,构的数据实行统一规划管理,形成一个数据中心,构成一个数据成一个数据“仓库仓库”,在这个数据库中的数据能,在这个数据库中的数据能够满足不同用户的要求,供不同用户共享。在这一够满足不同用户的要求,供不同用户共享。在这一管理方式下,应用程序不再只与一个孤立的数据文管理方式下,应用程序不再只与一个孤立的数据文件相对应,可以取整体数据集的某个子集作为逻辑件相对应,可以取整体

14、数据集的某个子集作为逻辑文件与其对应,通过数据库管理系统实现逻辑文件文件与其对应,通过数据库管理系统实现逻辑文件与物理数据之间的协调与互动,从而实现数据处理。与物理数据之间的协调与互动,从而实现数据处理。在数据库系统管理的系统环境下,应用程序对数据在数据库系统管理的系统环境下,应用程序对数据管理和访问灵活方便,而且数据与应用程序之间完管理和访问灵活方便,而且数据与应用程序之间完全独立,使程序的编制质量和效率都有所提高。由全独立,使程序的编制质量和效率都有所提高。由于数据库文件中的各数据子集间可以建立关联关系,于数据库文件中的各数据子集间可以建立关联关系,所以数据的冗余大大减少,数据共享性显著增

15、强。所以数据的冗余大大减少,数据共享性显著增强。1.1.3 数学模型数学模型 现实世界中的客观事物是彼此相互联系的。一方面,现实世界中的客观事物是彼此相互联系的。一方面,某一事物内部的诸因素和诸属性根据一定的组织原某一事物内部的诸因素和诸属性根据一定的组织原则相互具有联系,构成一个相对独立的系统;另一则相互具有联系,构成一个相对独立的系统;另一方面,某一事物同时也作为一个更大系统的一个因方面,某一事物同时也作为一个更大系统的一个因素或一种属性而存在,并与系统的其他因素或属性素或一种属性而存在,并与系统的其他因素或属性发生联系。客观事物的这种普遍联系性决定了作为发生联系。客观事物的这种普遍联系性

16、决定了作为事物属性记录符号的数据与数据之间也存在着一定事物属性记录符号的数据与数据之间也存在着一定的联系性。具有联系性的相关数据总是按照一定的的联系性。具有联系性的相关数据总是按照一定的组织关系排列,从而构成一定的结构,对这种结构组织关系排列,从而构成一定的结构,对这种结构的描述就是数学模型。的描述就是数学模型。 数学模型是数据库系统的核心,它规范了数据库中数学模型是数据库系统的核心,它规范了数据库中数据的组织形式,表示了数据及数据之间的联系。数据的组织形式,表示了数据及数据之间的联系。数学模型的好坏直接影响数据库的性能。支持数数学模型的好坏直接影响数据库的性能。支持数据库系统的常用的数学模型

17、有层次模型据库系统的常用的数学模型有层次模型(hierarchical model)、网状模型、网状模型(network model)、关系模型关系模型(relational model)及面向对象模型及面向对象模型(object oriented model)。 层次模型和网状模型是早期的数学模型,已逐渐退层次模型和网状模型是早期的数学模型,已逐渐退出市场。由于关系模型有更为简单灵活的特点,因出市场。由于关系模型有更为简单灵活的特点,因此目前流行的数据库软件大多使用关系模型。但是,此目前流行的数据库软件大多使用关系模型。但是,随着信息的大量传播,现实生活中存在许多更复杂随着信息的大量传播,现

18、实生活中存在许多更复杂的数据结构和应用领域,对这些复杂的数据的处理,的数据结构和应用领域,对这些复杂的数据的处理,使用关系模型较为困难,因此产生了面向对象数学使用关系模型较为困难,因此产生了面向对象数学模型。面向对象数学模型是正在发展中的具有广泛模型。面向对象数学模型是正在发展中的具有广泛应用开发价值的模型,目前在此基础上建立的数据应用开发价值的模型,目前在此基础上建立的数据库大都是实验性的。当前社会最为流行的数据库库大都是实验性的。当前社会最为流行的数据库软件产品,大多数是在关系模型基础上发展起来的软件产品,大多数是在关系模型基础上发展起来的数据库管理系统。数据库管理系统。1.1.4 关系模

19、型关系模型 关系模型关系模型(relational model)是用二维表的逻辑结构是用二维表的逻辑结构来表示数据及数据之间的联系。关系模型的所谓来表示数据及数据之间的联系。关系模型的所谓“关系关系”是特指那种虽具有相关性,而非从属性的是特指那种虽具有相关性,而非从属性的平行的数据之间按照某种序列排列的集合关系。平行的数据之间按照某种序列排列的集合关系。 例如有一组数据如下:例如有一组数据如下:1, 甲,女,甲,女,20岁岁2, 乙,男,乙,男,18岁岁3, 丙,女,丙,女,21岁岁4, 丁,男,丁,男,20岁岁 这这4组数据之间是平行的,互不从属,但假如我们组数据之间是平行的,互不从属,但假

20、如我们知道他们是同一个班级的学生,便可以构成某学校知道他们是同一个班级的学生,便可以构成某学校某班学生基本情况表,并建立一个关系。如表某班学生基本情况表,并建立一个关系。如表1-1所示。所示。表表1-1(书第书第4页页) 表表1-1中的数据虽然是平行的,不代表从属关系,中的数据虽然是平行的,不代表从属关系,但却构成了某学校某个班级的学生间的关系结构。但却构成了某学校某个班级的学生间的关系结构。 同样,如果我们假设上述同样,如果我们假设上述4组数据不是来自同一个组数据不是来自同一个班级,而是来自不同的专业系,便可以构成某学校班级,而是来自不同的专业系,便可以构成某学校各专业学生基本情况表,又可以

21、建立一个关系。如各专业学生基本情况表,又可以建立一个关系。如表表1-2所示。所示。表表1-2(书第书第4页页) 以上两表所表现的都是关系模型。表格中的每一列数以上两表所表现的都是关系模型。表格中的每一列数据都是独立的数据项,它们共同构成了该关系的全部据都是独立的数据项,它们共同构成了该关系的全部内容。内容。 表格中的每一行称为一个记录表格中的每一行称为一个记录(record)。记录用来表示。记录用来表示关系模型中若干平行的、相对独立的个体事物,每一关系模型中若干平行的、相对独立的个体事物,每一记录由若干数据项的值组成。记录由若干数据项的值组成。 表格中的每一列称为一个字段表格中的每一列称为一个

22、字段(field)。字段是表示关系。字段是表示关系模型中具有某种属性的一列数据,一般在表格的第一模型中具有某种属性的一列数据,一般在表格的第一行标示属性类型的名称,称为字段名。行标示属性类型的名称,称为字段名。 总体上说,以竖向的数据属性分类的若干个记录的集总体上说,以竖向的数据属性分类的若干个记录的集合,构成一个关系模型,称为一个关系合,构成一个关系模型,称为一个关系(relation)。在。在某种意义上关系模型就是一张二维表,用来描述客观某种意义上关系模型就是一张二维表,用来描述客观事物属性的关系。事物属性的关系。 关系模型有以下主要特点:关系模型有以下主要特点:(1) 关系中每一数据项不

23、可再分,是最基本的单位。关系中每一数据项不可再分,是最基本的单位。(2) 每一列数据项具有相同的类型,称其为数据的属每一列数据项具有相同的类型,称其为数据的属性。列数根据需要而设,各列都有唯一的属性名和性。列数根据需要而设,各列都有唯一的属性名和对应的属性值。对应的属性值。(3) 每一列的顺序是任意的。每一列的顺序是任意的。(4) 每一行数据是一个个体事物诸多属性值的集合,每一行数据是一个个体事物诸多属性值的集合,称其为记录。称其为记录。(5) 记录的顺序可以是任意的。记录的顺序可以是任意的。(6) 在一个关系中,不允许有相同的字段名,也不允在一个关系中,不允许有相同的字段名,也不允许有相同的

24、记录行。许有相同的记录行。1.1.5 数据库数据库 数据库数据库(data base)是以一定的组织方式将相关的数是以一定的组织方式将相关的数据组织在一起存放在计算机外存储器上,并能为多据组织在一起存放在计算机外存储器上,并能为多个用户共享的、与应用程序彼此独立的一组相关数个用户共享的、与应用程序彼此独立的一组相关数据的集合。据的集合。 数据库是数据库应用系统的核心和管理对象。前面数据库是数据库应用系统的核心和管理对象。前面介绍的数学模型是对数据库如何组织的一种模型表介绍的数学模型是对数据库如何组织的一种模型表示,它不仅包括客观事物本身的信息,还包括各事示,它不仅包括客观事物本身的信息,还包括

25、各事物间的联系。数学模型的主要特征是数据结构,因物间的联系。数学模型的主要特征是数据结构,因此,确定了数学模型,就等于确定了数据间的关系,此,确定了数学模型,就等于确定了数据间的关系,即数据库的框架。有了数据间的关系框架,再把表即数据库的框架。有了数据间的关系框架,再把表示客观事物具体特征的数据装入框架中,就形成了示客观事物具体特征的数据装入框架中,就形成了数据库。数据库。 通俗地讲,数据库就是有条理、有组织、合理地存通俗地讲,数据库就是有条理、有组织、合理地存放大量数据的放大量数据的“数据仓库数据仓库”。 数据库的性质是由其依赖的数学模型所决定的。在数据库的性质是由其依赖的数学模型所决定的。

26、在数据库中,如果依照层次模型进行数据存储,则该数据库中,如果依照层次模型进行数据存储,则该数据库为层次数据库;如果依照网络模型进行数据数据库为层次数据库;如果依照网络模型进行数据存储,则该数据库为网络数据库;如果依照关系模存储,则该数据库为网络数据库;如果依照关系模型进行数据存储,则该数据库为关系数据库;如果型进行数据存储,则该数据库为关系数据库;如果依照面向对象模型进行数据存储,则该数据库为面依照面向对象模型进行数据存储,则该数据库为面向对象数据库。向对象数据库。 Visual FoxPro数据库管理系统所创造的数据库,是数据库管理系统所创造的数据库,是依照关系模型进行数据存储的,因此称其数

27、据库为依照关系模型进行数据存储的,因此称其数据库为关系数据库。关系数据库。1.1.6 关系数据库关系数据库 1. 关系数据库关系数据库 关系数据库关系数据库(relation database)是若干个依照关系模是若干个依照关系模型设计的若干关系的集合。也就是说,关系数据库型设计的若干关系的集合。也就是说,关系数据库是由若干张完成关系模型设计的二维表组成的。是由若干张完成关系模型设计的二维表组成的。 我们称一个我们称一个“关系关系”(一张二维表一张二维表)为一个数据表文为一个数据表文件件(简称数据表简称数据表)。数据表是由数据及数据结构组成。数据表是由数据及数据结构组成的。对数据结构的描述,形

28、成了数据表的框架,而的。对数据结构的描述,形成了数据表的框架,而数据则是按照数据结构填充的有着关系排列的数据数据则是按照数据结构填充的有着关系排列的数据项,它是数据表的内容。项,它是数据表的内容。 一个关系数据库由若干个数据表组成,一个数据表一个关系数据库由若干个数据表组成,一个数据表又由若干个记录组成,而每一个记录则由若干个以又由若干个记录组成,而每一个记录则由若干个以字段属性加以分类的数据项组成。字段属性加以分类的数据项组成。 在关系数据库中,每一个数据表都具有相对的独立在关系数据库中,每一个数据表都具有相对的独立性,这一独立性的唯一标志是数据表的名字,称为性,这一独立性的唯一标志是数据表

29、的名字,称为表文件名。也就是说,每一个数据表是靠自身的文表文件名。也就是说,每一个数据表是靠自身的文件名与其他文件保持独立,一个文件名代表一个独件名与其他文件保持独立,一个文件名代表一个独立的表文件。一个数据库中不允许有重名的数据表,立的表文件。一个数据库中不允许有重名的数据表,因为对数据表中数据的访问首先是通过表文件名来因为对数据表中数据的访问首先是通过表文件名来导引的。导引的。 在关系数据库中,有些数据表之间是具有相关性的,在关系数据库中,有些数据表之间是具有相关性的,数据表之间的这种相关性是依靠每一个独立的数据数据表之间的这种相关性是依靠每一个独立的数据表内部具有相同属性的字段建立的。以

30、关系模型设表内部具有相同属性的字段建立的。以关系模型设计的数据表为基本文件的关系数据库,不但每个数计的数据表为基本文件的关系数据库,不但每个数据表之间具有独立性,而且若干个数据表之间又具据表之间具有独立性,而且若干个数据表之间又具有相关性,这一特点使其具有很大的越性。有相关性,这一特点使其具有很大的越性。 2. 关系数据库的特点关系数据库的特点 关系数据库有以下主要特点:关系数据库有以下主要特点:(1) 关系数据库以面向系统的观点组织数据,使数据关系数据库以面向系统的观点组织数据,使数据具有最小的冗余度,支持复杂的数据结构。具有最小的冗余度,支持复杂的数据结构。(2) 关系数据库具有高度的数据

31、和程序的相互独立性,关系数据库具有高度的数据和程序的相互独立性,使应用程序与数据的逻辑结构和数据的物理存储方使应用程序与数据的逻辑结构和数据的物理存储方式无关。式无关。(3) 关系数据库中的数据由于具有共享性,使其能为关系数据库中的数据由于具有共享性,使其能为多个用户服务。多个用户服务。(4) 关系数据库允许多个用户访问数据库中的数据,关系数据库允许多个用户访问数据库中的数据,同时提供了各种控制功能,保证数据获得安全性、同时提供了各种控制功能,保证数据获得安全性、完整性和并发性控制。其中,安全性控制可防止未完整性和并发性控制。其中,安全性控制可防止未经允许的用户存取数据;完整性控制可保证数据的

32、经允许的用户存取数据;完整性控制可保证数据的正确性、有效性和相容性;并发性控制可防止多正确性、有效性和相容性;并发性控制可防止多用户并发访问数据时由于相互干扰而产生的数据不用户并发访问数据时由于相互干扰而产生的数据不一致。一致。1.1.7 关系模型的规范化原则关系模型的规范化原则 数据怎样存入关系数据库是数据库最重要的操作之数据怎样存入关系数据库是数据库最重要的操作之一,也是应用程序开发的关键。通常,我们首先要一,也是应用程序开发的关键。通常,我们首先要把收集来的相关的数据存放到数据表中,在实际应把收集来的相关的数据存放到数据表中,在实际应用中,有许多相关的数据集合到一个数据表后,数用中,有许

33、多相关的数据集合到一个数据表后,数据的关系会变得很复杂,数据表中的字段个数和数据的关系会变得很复杂,数据表中的字段个数和数据的数量很大。很多时候为了使一个事物表达清楚,据的数量很大。很多时候为了使一个事物表达清楚,又不违背关系模型的理论,数据表中会有大量数据又不违背关系模型的理论,数据表中会有大量数据重复出现的现象。特别是在进行应用程序设计重复出现的现象。特别是在进行应用程序设计时,组织的数据表如不理想,轻者会大大增加编时,组织的数据表如不理想,轻者会大大增加编程和维护程序的难度,重者会使应用程序无法实现。程和维护程序的难度,重者会使应用程序无法实现。 一个组织良好的数据库,不仅应该有利于方便

34、地解一个组织良好的数据库,不仅应该有利于方便地解决应用问题,而且还应为解决一些不可预测的问题决应用问题,而且还应为解决一些不可预测的问题带来便利,同时要尽可能地降低编程的难度,这就带来便利,同时要尽可能地降低编程的难度,这就要求数据库中的数据一定要通过相应的约束条件实要求数据库中的数据一定要通过相应的约束条件实现数据规范化。现数据规范化。1. 数据规范化数据规范化 数据规范化数据规范化(data normalization)理论认为,关系数理论认为,关系数据库中的每一个关系都要满足一定的规范。根据满据库中的每一个关系都要满足一定的规范。根据满足规范的条件不同,可以划分为五个等级,分别称足规范的

35、条件不同,可以划分为五个等级,分别称为第一范式为第一范式(1NF),第二范式,第二范式(2NF),第五范,第五范式式(5NF),其中,其中,NF是是(normal form)的缩写。的缩写。 需要特别指出的是,在实际操作中,不是数据规范需要特别指出的是,在实际操作中,不是数据规范的等级越高就越好,具体问题还要具体分析。在解的等级越高就越好,具体问题还要具体分析。在解决一般性问题时,通常只要把数据规范到第三个范决一般性问题时,通常只要把数据规范到第三个范式标准就可以满足需要。式标准就可以满足需要。 关系模型数据规范化的原则如下:关系模型数据规范化的原则如下:(1) 第一范式:第一范式: 在一个关

36、系中,要满足关系模型的基在一个关系中,要满足关系模型的基本性质,消除重复字段,且各字段都是不可分的基本性质,消除重复字段,且各字段都是不可分的基本数据项。本数据项。(2) 第二范式:第二范式: 若关系模型属于第一范式,则关系中若关系模型属于第一范式,则关系中每一个字段都完全依赖于主关键字段。每一个字段都完全依赖于主关键字段。(3) 第三范式:第三范式: 若关系模型属于第二范式,且关系中若关系模型属于第二范式,且关系中所有非主关键字段都直接依赖于主关键字段。所有非主关键字段都直接依赖于主关键字段。 数据规范化的基本思想是逐步消除数据依赖关系中数据规范化的基本思想是逐步消除数据依赖关系中不合适的部

37、分,使含有不完全依赖或函数依赖的数不合适的部分,使含有不完全依赖或函数依赖的数学模型的数据达到有效的分离。学模型的数据达到有效的分离。 例例1.1有某高校的人事档案管理信息表,如表有某高校的人事档案管理信息表,如表1-3所所示。示。表表1-3(书第书第7页页) 它没有满足关系模型的性质,不是一种关系二维表它没有满足关系模型的性质,不是一种关系二维表的形式,用户要根据关系模型规范化,在保护原有的形式,用户要根据关系模型规范化,在保护原有信息内容的基础上,规范这组信息,使其满足关系信息内容的基础上,规范这组信息,使其满足关系模型的性质。模型的性质。 根据数据规范化原则和关系模型的性质,我们可以根据

38、数据规范化原则和关系模型的性质,我们可以将表将表1-3修改成如表修改成如表1-4所示的形式。所示的形式。表表1-4(书第书第7页页) 例例1.2某旅行社组团信息表如表某旅行社组团信息表如表1-5所示。所示。表表1-5(书第书第7页页) 从表从表1-5不难看出,它是不符合数据规范化原则的。不难看出,它是不符合数据规范化原则的。为了方便、有效地使用这些信息资源,我们可以根为了方便、有效地使用这些信息资源,我们可以根据数据规范化原则,规范这些信息资源。据数据规范化原则,规范这些信息资源。 一种方法是将表一种方法是将表1-5分成两个独立的数据表,如表分成两个独立的数据表,如表1-6和表和表1-7。每一

39、个数据表都具有独立的属性,同时又。每一个数据表都具有独立的属性,同时又依赖于共同的关键字段依赖于共同的关键字段“团队编号团队编号”,使这些数据,使这些数据表间保持一定的关联关系,且两个数据表中的数据表间保持一定的关联关系,且两个数据表中的数据又能体现表又能体现表1-5中的全部信息。中的全部信息。 两个独立的数据表的内容如下。表两个独立的数据表的内容如下。表1-6为团队基本情为团队基本情况一览表,表况一览表,表1-7为某团队团员基本情况一览表。为某团队团员基本情况一览表。表表1-6(书第书第8页页)表表1-7(书第书第8页页) 表表1-6和表和表1-7两个表中的数据,包含了表两个表中的数据,包含

40、了表1-5中所有中所有的信息。可以看出,若将这些数据集中在一个表中的信息。可以看出,若将这些数据集中在一个表中(表表1-5),则表中数据的结构十分复杂,有许多数据,则表中数据的结构十分复杂,有许多数据重复出现,造成数据的冗余,这必然导致数据存储重复出现,造成数据的冗余,这必然导致数据存储空间的浪费,使数据的输入、查找和修改更加麻烦。空间的浪费,使数据的输入、查找和修改更加麻烦。相反,我们遵循数据规范化的准则,建立多个相互相反,我们遵循数据规范化的准则,建立多个相互关联的数据表,并让这些分开的数据表依靠关键字关联的数据表,并让这些分开的数据表依靠关键字段保持一定的关联关系,就可以有效地改进上述缺

41、段保持一定的关联关系,就可以有效地改进上述缺点。点。 例例1.3某旅行社业务管理信息系统数据库设计。某旅行社业务管理信息系统数据库设计。 对于一个旅行社业务管理单位来说,如果想在表对于一个旅行社业务管理单位来说,如果想在表1-6和表和表1-7提供的数据管理基础上,进一步扩大业务提供的数据管理基础上,进一步扩大业务范围,就要不断地开发数据资源的类型、范围和潜范围,就要不断地开发数据资源的类型、范围和潜力,增强数据处理的能力。基于这一点,我们可以力,增强数据处理的能力。基于这一点,我们可以把某旅行社业务管理信息系统数据库,设计成为含把某旅行社业务管理信息系统数据库,设计成为含多数据表的数据库,并使

42、各数据表之间通过对应的多数据表的数据库,并使各数据表之间通过对应的字段建立关联关系,使其既具有独立性,又有其关字段建立关联关系,使其既具有独立性,又有其关联性。联性。 表表1-8为旅行社团队组建业务管理信息。为旅行社团队组建业务管理信息。表表1-8(见书第见书第8页页) 表表1-9为旅行社团队行程业务管理信息。为旅行社团队行程业务管理信息。表表1-9(见书第见书第8页页) 表表1-10为旅行社旅游路线相关信息。为旅行社旅游路线相关信息。表表1-10(见书第见书第9页页) 表表1-11为旅行社旅游团员的相关信息。为旅行社旅游团员的相关信息。表表1-11(见书第见书第9页页) 从以上各数据表中,我

43、们可以获取不同的数据信息,从以上各数据表中,我们可以获取不同的数据信息,并用于相关的业务管理。由于旅行社内部的各种业并用于相关的业务管理。由于旅行社内部的各种业务是相互联系的,作为一个管理者就更需要综合、务是相互联系的,作为一个管理者就更需要综合、全面地进行信息处理,而数据库管理系统环境给我全面地进行信息处理,而数据库管理系统环境给我们提供了这样的便利。们提供了这样的便利。 我们可将这些相关联的数据表存储在同一个数据库我们可将这些相关联的数据表存储在同一个数据库中中(见图见图1.1),并保持一定的关联关系,一个旅行社,并保持一定的关联关系,一个旅行社业务管理数据库就建立起来了。使用时如同一个数

44、业务管理数据库就建立起来了。使用时如同一个数据表一样,对数据进行操作非常方便。据表一样,对数据进行操作非常方便。图图1.12. 数据表之间的关联关系数据表之间的关联关系 从理论上讲,把这些依赖于关系模型建立的数据表从理论上讲,把这些依赖于关系模型建立的数据表组织在一起,可以反映客观事物数据间的多种对应组织在一起,可以反映客观事物数据间的多种对应关系。一般情况下,在同一个数据库中,相关联的关系。一般情况下,在同一个数据库中,相关联的数据表之间的关系有一对一、一对多、多对一和多数据表之间的关系有一对一、一对多、多对一和多对多的关系。对多的关系。(1) 一对一关系一对一关系 一对一关系,即在两个数据

45、表中选一个相同字段作一对一关系,即在两个数据表中选一个相同字段作为关联关键字段,把其中一个数据表中的关键字段为关联关键字段,把其中一个数据表中的关键字段称为原始关键字段,该字段值是唯一的,而另一个称为原始关键字段,该字段值是唯一的,而另一个数据表中的关键字段称为外来关键字段,该字段值数据表中的关键字段称为外来关键字段,该字段值也是唯一的。也是唯一的。 在例在例1.3中,如果通过中,如果通过“团队编号团队编号”这一相同字段,这一相同字段,将表将表1-8与表与表1-9两表建立关联关系,把表两表建立关联关系,把表1-8中的中的“团队编号团队编号”视为原始关键字段视为原始关键字段(该字段值是唯一该字段

46、值是唯一的的),表,表1-9中的中的“团队编号团队编号”视为外来关键字段视为外来关键字段(该该字段值也是唯一的字段值也是唯一的),两个数据表便构成了一对一,两个数据表便构成了一对一的关系。如图的关系。如图1.2所示。所示。图图1.2(2) 一对多关系一对多关系 一对多关系,即在两个数据表中选一个相同的字段一对多关系,即在两个数据表中选一个相同的字段作为关联关键字段,把其中一个数据表的关键字段作为关联关键字段,把其中一个数据表的关键字段称为原始关键字段,该字段值是唯一的,而把另一称为原始关键字段,该字段值是唯一的,而把另一个数据表中的关键字段称为外来关键字段,该字段个数据表中的关键字段称为外来关

47、键字段,该字段值是重复的。值是重复的。 在例在例1.2中,如果通过中,如果通过“团队编号团队编号”这一相同字段,这一相同字段,将表将表1-6与表与表1-7两表建立关联关系,表两表建立关联关系,表1-6中的中的“团团队编号队编号”视为原始关键字段视为原始关键字段(该字段值是唯一的该字段值是唯一的),而表而表1-7中的中的“团队编号团队编号”视为外来关键字段视为外来关键字段(该字该字段值是重复的段值是重复的),两个表便构成了一对多的关系。,两个表便构成了一对多的关系。如图如图1.3所示。所示。图图1.3 在例在例1.3中,如果通过中,如果通过“团队编号团队编号”这一相同字段,这一相同字段,将表将表

48、1-9与表与表1-11两表建立关联关系,表两表建立关联关系,表1-9中的中的“团队编号团队编号”视为原始关键字段,而表视为原始关键字段,而表1-11中的中的“团队编号团队编号”视为外来关键字段,两个表便构成了视为外来关键字段,两个表便构成了一对多的关系。如图一对多的关系。如图1.4所示。所示。图图1.4 在例在例1.3中,如果通过中,如果通过“路线编号路线编号”这一相同字段,这一相同字段,将表将表1-10与表与表1-9两表建立关联关系,表两表建立关联关系,表1-10中与表中与表1-9两个表便构成了一对多的关系。如图两个表便构成了一对多的关系。如图1.5所示。所示。图图1.5 从上面的例子可以得

49、知,把一个复杂的表分成一对多从上面的例子可以得知,把一个复杂的表分成一对多的关系,尽管重复还存在,但仅仅是外来关键字段的的关系,尽管重复还存在,但仅仅是外来关键字段的重复,这就大大减少了数据输入及数据存储的复杂性。重复,这就大大减少了数据输入及数据存储的复杂性。(3) 多对一关系多对一关系 多对一关系与一对多关系是类似的,唯一的区别是在多对一关系与一对多关系是类似的,唯一的区别是在两个相关联的数据表中,先选择哪一个数据表中的关两个相关联的数据表中,先选择哪一个数据表中的关键字段为原始关键字段,该字段值是重复的,而与它键字段为原始关键字段,该字段值是重复的,而与它关联的另一个数据表中的关键字段称

50、为外来关键字段,关联的另一个数据表中的关键字段称为外来关键字段,该字段值是唯一的。该字段值是唯一的。 在例在例1.3中,如果把表中,如果把表1-9中的中的“路线编号路线编号”视为原始关视为原始关键字段键字段(该字段值是重复的该字段值是重复的),而表,而表1-10中的中的“路线编号路线编号”视为外来关键字段视为外来关键字段(该字段值是唯一的该字段值是唯一的),表,表1-9与表与表1-10两表间便构成了多对一的关系。如图两表间便构成了多对一的关系。如图1.6所示。所示。图图1.6(4) 多对多关系多对多关系 多对多关系,即在两个数据表中选一个相同字段作多对多关系,即在两个数据表中选一个相同字段作为

51、关联关键字段,把其中一个数据表关键字段视为为关联关键字段,把其中一个数据表关键字段视为原始关键字段,该字段值是重复的,而把另一个数原始关键字段,该字段值是重复的,而把另一个数据表中的关键字段视为外来关键字段,该字段值也据表中的关键字段视为外来关键字段,该字段值也是重复的,这样两个数据表间就有了多对多的关系。是重复的,这样两个数据表间就有了多对多的关系。通常处理数据表间多对多的关系,是把多对多的关通常处理数据表间多对多的关系,是把多对多的关系化解分成两个多对一或两个一对多的关系进行操系化解分成两个多对一或两个一对多的关系进行操作。作。 通过上面对数据规范化和数据表间关系建立的观点通过上面对数据规

52、范化和数据表间关系建立的观点阐述,可以得知,在数据规范化原则指导下,既可阐述,可以得知,在数据规范化原则指导下,既可以把复杂问题简单化,综合问题个体化,同样也可以把复杂问题简单化,综合问题个体化,同样也可以把个体问题综合化。这样可以大大提高数据的使以把个体问题综合化。这样可以大大提高数据的使用率,同时为系统程序设计提供了很大的方便。用率,同时为系统程序设计提供了很大的方便。1.2 数据库系统数据库系统 数据库是数据库系统的核心和管理对象。数据库中数据库是数据库系统的核心和管理对象。数据库中数据的存储、维护以及为应用系统提供数据支持,数据的存储、维护以及为应用系统提供数据支持,都是在数据库系统都

53、是在数据库系统(data base system)环境下运行完环境下运行完成的。这一节将介绍有关数据库系统的一些相关内成的。这一节将介绍有关数据库系统的一些相关内容。容。 1.2.1 数据库系统的体系结构数据库系统的体系结构 所谓数据库系统的体系结构,就是数据库系统的总所谓数据库系统的体系结构,就是数据库系统的总体框架。尽管实际数据库系统的软件产品多种多样,体框架。尽管实际数据库系统的软件产品多种多样,并且支持不同的数学模型,不同的数据库语言,建并且支持不同的数学模型,不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不立在不同的操作系统之上,数据的存储结构也各不相同,但绝大多数的

54、数据库系统在总的体系结构上相同,但绝大多数的数据库系统在总的体系结构上具有三级模型的结构特征。具有三级模型的结构特征。 从数据管理的角度看,与数据库打交道的有三类人从数据管理的角度看,与数据库打交道的有三类人员:用户、应用程序员和系统程序员。由于他们对员:用户、应用程序员和系统程序员。由于他们对数据库的认识、理解和接触范围各不相同,从而形数据库的认识、理解和接触范围各不相同,从而形成了各自的数据库视图,所谓视图是指其观察、认成了各自的数据库视图,所谓视图是指其观察、认识和理解数据的范围、角度和方法。识和理解数据的范围、角度和方法。 根据各类人员与数据库的不同关系,可把视图分为根据各类人员与数据

55、库的不同关系,可把视图分为三种:三种: 即对应于用户的外部视图,对应于应用程即对应于用户的外部视图,对应于应用程序员的概念视图,对应于系统程序员的内部视图。序员的概念视图,对应于系统程序员的内部视图。 由此形成数据库系统的三级模式结构:由此形成数据库系统的三级模式结构: 外模式、外模式、概念模式和内模式。如图概念模式和内模式。如图1.7所示。所示。图图1.7 外模式又称子模式或用户模式,对应于用户级,是某个外模式又称子模式或用户模式,对应于用户级,是某个或几个数据库用户所看到的数据库的数据视图。外模式或几个数据库用户所看到的数据库的数据视图。外模式是从概念模式导出的子模式,用户可以通过子模式描

56、述是从概念模式导出的子模式,用户可以通过子模式描述语言来描述用户级数据库的记录,还可以利用数据操纵语言来描述用户级数据库的记录,还可以利用数据操纵语言对这些记录进行操作。语言对这些记录进行操作。 概念模式又称逻辑模式,对应于概念级,它是由数据库概念模式又称逻辑模式,对应于概念级,它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图。它是用概念的总体描述,是所有用户的公共数据视图。它是用概念模式描述语言来描述的

57、,是应用程序员的数据视图。模式描述语言来描述的,是应用程序员的数据视图。 内模式又称存储模式,对应于物理级,是全体数据库数内模式又称存储模式,对应于物理级,是全体数据库数据的内部表示或底层描述,是真正存放在外存储器上的据的内部表示或底层描述,是真正存放在外存储器上的数据库,它描述了数据在存储介质上的存储方式与物理数据库,它描述了数据在存储介质上的存储方式与物理结构。结构。 数据库系统的三级模式是数据的三个抽象级别,使数据库系统的三级模式是数据的三个抽象级别,使用户能够逻辑地、抽象地处理数据,而不必关心数用户能够逻辑地、抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了实现三个抽象层据在

58、计算机中的表示和存储。为了实现三个抽象层次间的联系和转换,数据库系统在三个模式间提供次间的联系和转换,数据库系统在三个模式间提供了两级映射:了两级映射: 外模式与概念模式间的映射、概念外模式与概念模式间的映射、概念模式与内模式间的映射。模式与内模式间的映射。1.2.2 数据库管理系统数据库管理系统 从信息处理的理论角度讲,如果把利用数据库进行从信息处理的理论角度讲,如果把利用数据库进行信息处理的工作过程,或把掌握、管理和操纵数据信息处理的工作过程,或把掌握、管理和操纵数据库的数据资源的方法看作是一个系统,则称这个系库的数据资源的方法看作是一个系统,则称这个系统为数据库管理系统统为数据库管理系统

59、(data base management system,简称,简称DBMS)。 数据库管理系统提供对数据库资源进行统一管理和数据库管理系统提供对数据库资源进行统一管理和控制的功能,使数据与应用程序隔离,数据具有独控制的功能,使数据与应用程序隔离,数据具有独立性。它可以使数据结构及数据存储具有一定的规立性。它可以使数据结构及数据存储具有一定的规范性,减少了数据的冗余,并有利于数据共享。它范性,减少了数据的冗余,并有利于数据共享。它提供了安全性和保密性措施,使数据不被破坏和窃提供了安全性和保密性措施,使数据不被破坏和窃用。用。 数据库管理系统通常由三个部分组成:数据库管理系统通常由三个部分组成:

60、 数据描述数据描述语言语言(DDL)及其编译程序、数据操纵语言及其编译程序、数据操纵语言(DML)或或查询语言及其编译或解释程序、数据库管理例行程查询语言及其编译或解释程序、数据库管理例行程序。序。 数据描述语言用于定义数据库的各级模式数据描述语言用于定义数据库的各级模式(外模式、外模式、概念模式、内模式概念模式、内模式),各种模式通过数据描述语言,各种模式通过数据描述语言编译器翻译成相应的目标模式,保存在数据字典中。编译器翻译成相应的目标模式,保存在数据字典中。 数据操纵语言提供对数据库数据存取、检索、插入、数据操纵语言提供对数据库数据存取、检索、插入、修改和删除等基本操作。数据操纵语言一般

温馨提示

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

评论

0/150

提交评论