1、1Visual FoxPro基础教程(第基础教程(第3版)版)周永恒 编2第第1章章 Visual FoxPro系统概述系统概述Visual FoxProVisual FoxPro是专门为数据库应用而设计的一种可视是专门为数据库应用而设计的一种可视化的面向对象程序设计语言化的面向对象程序设计语言.即即Visual FoxProVisual FoxPro既具有数既具有数据库管理系统的功能据库管理系统的功能,又具有强大的可视化程序开发功能又具有强大的可视化程序开发功能.因此本课程的学习将为因此本课程的学习将为利用利用 Visual FoxPro Visual FoxPro 开发数据库开发数据库应用
2、程序应用程序打下基础打下基础.目前,有很多管理方面的计算机应用系统是用目前,有很多管理方面的计算机应用系统是用Visual Visual FoxProFoxPro开发的开发的,如财务管理系统、库存管理系统、人事管如财务管理系统、库存管理系统、人事管理系统、图书管理系统、选课管理系统、生产计划管理系理系统、图书管理系统、选课管理系统、生产计划管理系统、统、教务管理系统、财务综合查询系统等等。教务管理系统、财务综合查询系统等等。利用关系数据库管理系统利用关系数据库管理系统Visual FoxPro Visual FoxPro 的开发环境的开发环境,用户可以方便地设计数据库结构用户可以方便地设计数据
3、库结构,管理数据库管理数据库,设计应用设计应用程序界面程序界面,设计查询、报表及菜单;利用设计查询、报表及菜单;利用Visual FoxPro Visual FoxPro 的项目管理器对数据库和程序进行管理,生成可执行文件,的项目管理器对数据库和程序进行管理,生成可执行文件,发布应用程序等。发布应用程序等。本课程的教学重点是本课程的教学重点是介绍关系数据库管理系统介绍关系数据库管理系统Visual Visual FoxPro FoxPro 的基础知识的基础知识,以及,以及数据库技术的基本概念数据库技术的基本概念。3前前 言言 Visual FoxPro 关系数据库管理系统是新一代数据库管理系统
4、的杰出代表,以它强大的性能、完整而又丰富的工具、超高速的速度、友好的界面,以及完备的兼容性等特点,吸引众多的国内外用户,倍受广大用户的欢迎。本课程根据教育部计算机基础课程教学指导分委员会制订的数据库技术与应用课程的教学基本要求,配合全国计算机等级考试“Visual FoxPro 二级”考试大纲的知识要点,以Visual FoxPro关系数据库软件为知识背景,介绍关系数据库管理系统基础理论及应用系统开发的方法、步骤。并用一个数据库应用系统实例“教学管理”贯穿全书的内容,将理论教学与实验教学有机地结合起来。4 第一章 Visual FoxPro系统概述 第二章 数据与数据运算 第三章 表与数据库
5、第四章 SQL语言 第五章 查询和视图 第六章 程序设计基础 第七章 表单设计 第八章 建立报表与标签 第九章 菜单与工具栏设计 第十章 数据库应用程序开发目 录5第一章第一章 Visual FoxPro系统概述系统概述1.1 数据库系统的基本数据库系统的基本知识知识1.2 关系数据库基础理论关系数据库基础理论 1.3 Visual FoxPro 的安装和运行的安装和运行 1.4 Visual FoxPro 的功能与特点的功能与特点1.5 用户界面用户界面1.6 项目管理器项目管理器6第第1章章 Visual FoxPro系统概述系统概述 人类社会现已进入信息时代,计算机也已广泛应用于信息(数
6、据)处理领域。数据处理的特点是:数据量大、类型多、结构复杂,对数据的存储、检索、分类和统计的要求也比较高。为了适应这一要求,把数据从过去附属于程序的做法改变为数据与程序相对独立,并对数据加以组织和管理,使其能被更多的程序所共享,这是数据库的基本特点之一。数据库系统有数据库系统有3个重要的组成部分:个重要的组成部分:经组织后可被多个用户使用的数据库;介于数据库与应用经组织后可被多个用户使用的数据库;介于数据库与应用程序之间的数据库管理系统;提供给用户使用的各类应用程序。程序之间的数据库管理系统;提供给用户使用的各类应用程序。本书将介绍运行于微机上的目前最流行的关系数据库管理系关系数据库管理系统统
7、Visual FoxPro 6.0,利用Visual FoxPro的开发环境用户可以方便地设计数据库的结构、建立和管理数据库,设计应用程序界面,设计查询、报表及菜单。目前,很多管理方面的计算机应用系统是用中文Visual FoxPro开发的,如财务管理系统、库存管理系统、人事管理系统、图书管理系统等。71.1 1.1 数据库系统的基本知识数据库系统的基本知识1.1.1 数据、信息与数据处理数据、信息与数据处理1.数据数据(Data):用来描述事物特征的某种符号记录。:用来描述事物特征的某种符号记录。在计算机中,数据又分为许多类型:数值型数据、字符型数据;在计算机中,数据又分为许多类型:数值型数
8、据、字符型数据;此外,还有图形、图像、声音等多媒体数据。此外,还有图形、图像、声音等多媒体数据。2.信息信息(Information):是指事物状态及其运动方式的表现形式:是指事物状态及其运动方式的表现形式.通俗地讲通俗地讲:信息是经过加工处理的、对人类社会实践和生产活动产生决信息是经过加工处理的、对人类社会实践和生产活动产生决策性影响的数据表现形式。策性影响的数据表现形式。数据与信息在概念上是有区别的:不是所有的数据都能成为信数据与信息在概念上是有区别的:不是所有的数据都能成为信息,只有加工处理之后具有新知识的数据才能成为信息因此:息,只有加工处理之后具有新知识的数据才能成为信息因此:信息信
9、息=数据数据+处理处理3.数据处理:数据处理是指将数据转换为信息的过程。即对数据进行收数据处理:数据处理是指将数据转换为信息的过程。即对数据进行收集、存储、分类、计算、加工、检索和传输等一系列活动总和。集、存储、分类、计算、加工、检索和传输等一系列活动总和。8人类处理数据是社会活动的需要和社会信息化的必然结果。随着计算机人类处理数据是社会活动的需要和社会信息化的必然结果。随着计算机技术的发展,技术的发展,数据处理技术的发展经历了以下三个主要阶段:数据处理技术的发展经历了以下三个主要阶段:(1)程序管理程序管理(即(即20世记世记50年代中期)年代中期)计算机用于数据处理的早期,这一阶段计算机主
10、要用于科学计算,还没计算机用于数据处理的早期,这一阶段计算机主要用于科学计算,还没有用于其他领域,还没有出现可以直接存贮数据的存贮设备,只有卡片、有用于其他领域,还没有出现可以直接存贮数据的存贮设备,只有卡片、纸带等。对数据的管理是由程序员个人考虑和安排的,即把数据处理纳入纸带等。对数据的管理是由程序员个人考虑和安排的,即把数据处理纳入程序设计的过程中程序设计的过程中,程序中包含要处理的数据(如程序中包含要处理的数据(如C语言中提出:语言中提出:程序程序=数数据结构据结构+算法)。其特点是:没有软件系统对数据进行管理,数据依附于应算法)。其特点是:没有软件系统对数据进行管理,数据依附于应用程序
11、而且有大量的重复。用程序而且有大量的重复。(2)文件系统文件系统(即(即20世记世记60年代初期)年代初期)文件系统是一种专门管理数据的软件,即按一定的规则将数据组织为一文件系统是一种专门管理数据的软件,即按一定的规则将数据组织为一个文件,应用程序通过文件系统对文件中的数据进行存取。其特点是:应个文件,应用程序通过文件系统对文件中的数据进行存取。其特点是:应用程序和数据都有了一定的独立性,数据的存贮量有所降低;但文件系统用程序和数据都有了一定的独立性,数据的存贮量有所降低;但文件系统仍然存在数据冗余度大、文件不易扩充和应用程序编写比较繁琐等缺点。仍然存在数据冗余度大、文件不易扩充和应用程序编写
12、比较繁琐等缺点。(3)数据库技术数据库技术(即(即20世记世记60年代末期)年代末期)数据库技术是在文件系统的基础上发展起来的最新技术,它有效地解决数据库技术是在文件系统的基础上发展起来的最新技术,它有效地解决了数据的独立性问题,实现了数据的统一管理,达到了数据共享的目的。了数据的独立性问题,实现了数据的统一管理,达到了数据共享的目的。本书正是从数据库技术的角度讨论基于本书正是从数据库技术的角度讨论基于VFP的数据建模、存储查询及应用的数据建模、存储查询及应用技术。技术。91.1.2 数据库系统数据库系统 数据库系统数据库系统是指引进数据库技术后的计算机系统是指引进数据库技术后的计算机系统。数
13、据库系统(数据库系统(DBS)主要由数据库、数据库管理系统和应用程序组)主要由数据库、数据库管理系统和应用程序组成。成。数据库数据库(Data Base,简称,简称DB)指按一定数据模型组织、描述和存储在计算机内的、有组织的、可指按一定数据模型组织、描述和存储在计算机内的、有组织的、可共享的数据集合。共享的数据集合。数据库管理系统数据库管理系统(Data base Management System,简称简称DBMS)是指帮助用户建立、使用和管理数据库的软件系统。它由一系列软件是指帮助用户建立、使用和管理数据库的软件系统。它由一系列软件组成,是数据库系统的核心部分。组成,是数据库系统的核心部分
14、。应用程序应用程序 是由用户编写,用来调用数据库中所存贮的数据的命令文件。是由用户编写,用来调用数据库中所存贮的数据的命令文件。Visual FoxPro将过程化程序设计与面向对象程序设计结合在一起(第将过程化程序设计与面向对象程序设计结合在一起(第4代语言),可以帮助用户创建功能强大、灵活多变的应用程序。代语言),可以帮助用户创建功能强大、灵活多变的应用程序。人机系统,包含:用户、计算机硬件、数据库、数据库管理系统和为人机系统,包含:用户、计算机硬件、数据库、数据库管理系统和为用户编写的应用程序,以便对数据库进行操作。用户编写的应用程序,以便对数据库进行操作。10数据库系统数据库系统主要特性
15、:主要特性:(1)数据的独立性数据的独立性在数据库系统中,数据库管理系统把数据与应用程序隔离开来,在数据库系统中,数据库管理系统把数据与应用程序隔离开来,使数据独立于应用程序,当数据的存储方式和逻辑结构发生改使数据独立于应用程序,当数据的存储方式和逻辑结构发生改变时,并不需要改变用户的应用程序。变时,并不需要改变用户的应用程序。所以数据的独立性分为逻辑独立性和物理独立性。物理独立所以数据的独立性分为逻辑独立性和物理独立性。物理独立性是指用户的应用程序和存贮在磁盘上的数据是相互独立的,性是指用户的应用程序和存贮在磁盘上的数据是相互独立的,用户程序不需了解数据在磁盘上是如何存贮的;逻辑独立性是用户
16、程序不需了解数据在磁盘上是如何存贮的;逻辑独立性是指用户的应用程序和数据库的逻辑结构是相互独立的,数据的指用户的应用程序和数据库的逻辑结构是相互独立的,数据的逻辑结构发生变化时,应用程序可以不变。(逻辑结构发生变化时,应用程序可以不变。(思考题思考题29)(2)数据的共享性数据的共享性存储在数据库中的数据能作出多种组合,以最优方式满足不同存储在数据库中的数据能作出多种组合,以最优方式满足不同用户的需求。用户的需求。数据共享可以提高数据的利用率,减少数据的冗数据共享可以提高数据的利用率,减少数据的冗余度,有利于保持数据的一致性。余度,有利于保持数据的一致性。11(3)可修改与可扩充性可修改与可扩
17、充性数据库系统在结构和组织技术上是易于修改和扩充的。数据库系统在结构和组织技术上是易于修改和扩充的。由于用由于用户需求的不断变化,数据也需要不断的扩充和更新,数据库是户需求的不断变化,数据也需要不断的扩充和更新,数据库是逐步建立和完善起来的。逐步建立和完善起来的。(4)统一管理与控制统一管理与控制数据库系统能对数据进行必要的完整性管理与控制,确保数据数据库系统能对数据进行必要的完整性管理与控制,确保数据的正确、有效。的正确、有效。在多用户环境下,由于多个用户同一时刻访问在多用户环境下,由于多个用户同一时刻访问同一数据库时,可能造成数据更新失控及数据可靠性降低等问同一数据库时,可能造成数据更新失
18、控及数据可靠性降低等问题,数据库系统的并发控制功能及事务机制提供了避免出现这题,数据库系统的并发控制功能及事务机制提供了避免出现这种错误的能力。种错误的能力。(5)安全与保密性安全与保密性数据库系统可以提供安全性与保密性措施,使得数据不被破坏数据库系统可以提供安全性与保密性措施,使得数据不被破坏与窃用。与窃用。数据的安全性涉及数据的保护措施,也就是要避免无数据的安全性涉及数据的保护措施,也就是要避免无权限使用的人或无权限修改的人对数据进行有意或无意的破坏权限使用的人或无权限修改的人对数据进行有意或无意的破坏或泄露。数据的保密性涉及个人或机构自身的权利,它决定何或泄露。数据的保密性涉及个人或机构
19、自身的权利,它决定何时、何地、何种程度的传递。时、何地、何种程度的传递。121.1.3 数据库系统的内部结构体系数据库系统的内部结构体系 数据库系统在其内部数据库系统在其内部具有三级模式和两级映射,从而保证了数据的物理独具有三级模式和两级映射,从而保证了数据的物理独立性和逻辑独立性。立性和逻辑独立性。1三级模式三级模式(1)概念模式概念模式(也称为(也称为逻辑模式逻辑模式或或模式模式)概念模式是概念模式是数据库系统中全局数据逻辑结构(数据流图)的描述,是数据库系统中全局数据逻辑结构(数据流图)的描述,是全体用户公共数据视图全体用户公共数据视图。一个数据库只有一个概念模式。此种描述是。一个数据库
20、只有一个概念模式。此种描述是一种抽象的描述,不涉及具体的硬件环境与平台,也与具体的软件环一种抽象的描述,不涉及具体的硬件环境与平台,也与具体的软件环境无关。境无关。(2)外模式外模式也称子模式或也称子模式或用户模式用户模式,它是用户的数据视图,也就是用户所见到的,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。概念模式给出了系统全局的数据数据模式,它由概念模式推导而出。概念模式给出了系统全局的数据描述,描述,而外模式则给出了每个用户的局部数据描述而外模式则给出了每个用户的局部数据描述。一个概念模式可。一个概念模式可以有若干个外模式以有若干个外模式,每个用户只关心与其有关的
21、外模式每个用户只关心与其有关的外模式,这样不仅可以这样不仅可以屏蔽大量无关信息屏蔽大量无关信息,而且有利于数据保护。而且有利于数据保护。(3)内模式内模式也称物理模式,给出了也称物理模式,给出了数据库物理存储结构与物理存取方法数据库物理存储结构与物理存取方法。内模式。内模式的设计直接影响数据库的性能。一个数据库也只有一个内模式。的设计直接影响数据库的性能。一个数据库也只有一个内模式。132两级映射两级映射(1)(1)概念模式到内模式的映射概念模式到内模式的映射 该映射给出了概念模式中数据的全局逻辑结构到数该映射给出了概念模式中数据的全局逻辑结构到数据的物理存储结构间的对应关系,一般由数据库管理
22、系据的物理存储结构间的对应关系,一般由数据库管理系统实现。统实现。它保证了数据的物理独立性,即概念(逻辑)模式不受它保证了数据的物理独立性,即概念(逻辑)模式不受内模式的影响。内模式的影响。(2)(2)外模式到概念模式的映射外模式到概念模式的映射 该映射给出了外模式与概念模式的对应关系,这种该映射给出了外模式与概念模式的对应关系,这种映射一般也是由数据库管理系统来实现的。映射一般也是由数据库管理系统来实现的。它保证了数据的逻辑独立性,即外模式不受概念(逻辑)它保证了数据的逻辑独立性,即外模式不受概念(逻辑)模式的影响。模式的影响。数据库系统的三级模式结构 数据库的三级模式结构 应用程序1外模式
23、1外模式2数据库用户(模式)级用户视图概念级全局视图(全局数据逻辑结构的描述)物理(模式)级存储视图(数据库物理存储结构与物理存储方法)概念模式内模式外模式映射映射应用程序2应用程序3外模式3概念模式内模式151.2 关系数据库的基础理论1.2.1 数据模型数据模型 数据库研究的对象是客观事物数据库研究的对象是客观事物(实体实体)以及反映客观以及反映客观事物事物(实体实体)间相互联系的数据间相互联系的数据.描述客观事物(实体)描述客观事物(实体)特征及其相互关系特征及其相互关系的各种数据类型称为的各种数据类型称为数据模型。数据模型。1.数据模型所描述的内容数据模型所描述的内容 数据是现实世界符
24、号的抽象,而数据模型是数据特数据是现实世界符号的抽象,而数据模型是数据特征的抽象,它从抽象层次上描述了系统的征的抽象,它从抽象层次上描述了系统的静态特征、静态特征、动态行为和约束条件动态行为和约束条件,为数据库系统的信息表示与操为数据库系统的信息表示与操作提供一个抽象的框架。作提供一个抽象的框架。数据模型所描述的内容有数据模型所描述的内容有3部分:部分:161 1、数据结构、数据结构 数据结构描述数据库的组成对象以及对象之间的联系。数据结构数据结构描述数据库的组成对象以及对象之间的联系。数据结构是数据模型的基础,数据操作与约束均建立在数据结构上。不同数是数据模型的基础,数据操作与约束均建立在数
25、据结构上。不同数据结构有不同的操作与约束,因此一般据结构有不同的操作与约束,因此一般数据模型的分类数据模型的分类均以数据结均以数据结构的不同而划分构的不同而划分(层次数据模型、网状数据模型、关系数据模型层次数据模型、网状数据模型、关系数据模型)。数据结构是对系统静态特性的描述。数据结构是对系统静态特性的描述。2 2、数据操作、数据操作 数据操作主要描述在相应数据结构上的操作及有关操作规则数据操作主要描述在相应数据结构上的操作及有关操作规则。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作
26、符号、操作规则以及数据模型必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言。数据操作是对系统实现操作的语言。数据操作是对系统动态特性动态特性的描述。的描述。3 3、数据完整性约束、数据完整性约束 完整性约束条件是一组完整性规则。数据完整性约束主要是描述完整性约束条件是一组完整性规则。数据完整性约束主要是描述数据结构内数据间的语法、语义联系,它们之间的制约与依存关系,数据结构内数据间的语法、语义联系,它们之间的制约与依存关系,以及数据动态变化的规则,以以及数据动态变化的规则,以保证数据的正确、有效与相容保证数据的正确、有效与相容。172.数据模型按应用层次的分类:数据模型按应用层
27、次的分类:概念数据模型、逻辑数据模型、物概念数据模型、逻辑数据模型、物理数据模型理数据模型-该分类代表的是数据库设计过程的三个阶段该分类代表的是数据库设计过程的三个阶段 在数据库设计过程中在数据库设计过程中,数据模型按不同的设计阶段可分成数据模型按不同的设计阶段可分成3个应用层次个应用层次:(1)概念数据模型概念数据模型 概念数据模型是一种面向客观世界、面向用户的模型;概念数据模型是一种面向客观世界、面向用户的模型;它与具体的数它与具体的数据库管理系统无关,与具体的计算机平台无关。概念模型着重于对客观世据库管理系统无关,与具体的计算机平台无关。概念模型着重于对客观世界复杂事物的结构描述及它们之
28、间的内在联系的刻画。界复杂事物的结构描述及它们之间的内在联系的刻画。描述概念数据模型的主要工具就是描述概念数据模型的主要工具就是E-R图图(实体实体-联系图联系图).(2)逻辑数据模型逻辑数据模型 逻辑数据模型是一种面向数据库管理系统的模型逻辑数据模型是一种面向数据库管理系统的模型,该模型着重于在数,该模型着重于在数据库系统一级的实现。概念模型只有在转换成逻辑数据模型后才能在数据据库系统一级的实现。概念模型只有在转换成逻辑数据模型后才能在数据库中得以表示。对于库中得以表示。对于Visual FoxPro来说,就是把描述概念数据模型的来说,就是把描述概念数据模型的E-R图转换为关系数据模型。我们
29、以下讨论的数据模型大都属于这一类。图转换为关系数据模型。我们以下讨论的数据模型大都属于这一类。(3)物理模型物理模型 物理模型是一种面向物理模型是一种面向计算机物理表示的模型计算机物理表示的模型,此模型给出了数据模型,此模型给出了数据模型在计算机上物理结构的表示。在计算机上物理结构的表示。183.数据库管理系统支持的数据模型数据库管理系统支持的数据模型-数据模型按数据模型按数据结构的分类数据结构的分类数据库不仅管理数据本身,而且要使用数据模型表示数据库不仅管理数据本身,而且要使用数据模型表示数据数据之间的联系之间的联系。数据库管理系统支持。数据库管理系统支持3种数据模型:层次数据模种数据模型:
30、层次数据模型、网状数据模型、关系数据模型。在数据库发展的早期(型、网状数据模型、关系数据模型。在数据库发展的早期(20世纪世纪70年代),层次数据库和网状数据库占领了整个市场;年代),层次数据库和网状数据库占领了整个市场;20世纪世纪80年代以后,关系数据库已成为最流行的数据库。年代以后,关系数据库已成为最流行的数据库。(1)层次数据模型层次数据模型用用树状结构树状结构表示若干实体及其之间联系的模型称为层次模表示若干实体及其之间联系的模型称为层次模型型。层次模型表示了实体之间一对多联系的从属关系结构。在。层次模型表示了实体之间一对多联系的从属关系结构。在这种模型中,数据被组织成由这种模型中,数
31、据被组织成由“根根”开始的倒置的树,根结点开始的倒置的树,根结点在上,子结点在下,每个实体由根开始沿着不同的分支放在不在上,子结点在下,每个实体由根开始沿着不同的分支放在不同的层次上,上级结点(父结点)与下级结点之间为一对多联同的层次上,上级结点(父结点)与下级结点之间为一对多联系。系。支持层次模型的支持层次模型的DBMS称为层次数据库管理系统,在这种称为层次数据库管理系统,在这种系统中建立的数据库是层次数据库系统中建立的数据库是层次数据库。19(2)网状数据模型网状数据模型用用网状结构网状结构表示若干实体及其之间联系的模型称为网状模型表示若干实体及其之间联系的模型称为网状模型。它。它允许一个
32、结点有多于一个的父结点,也允许有一个以上的结点没有父允许一个结点有多于一个的父结点,也允许有一个以上的结点没有父结点。结点。网状模型表示了实体之间网状模型表示了实体之间多对多联系多对多联系的关系结构。支持网状模型的关系结构。支持网状模型的的DBMS称为网状数据库管理系统,在这种系统中建立的数据库是网称为网状数据库管理系统,在这种系统中建立的数据库是网状数据库。状数据库。(3)关系数据模型关系数据模型关系数据模型是指关系数据模型是指用用二维表结构二维表结构来表示实体以及实体之间来表示实体以及实体之间联系的模型联系的模型。在关系数据模型中,数据具有相关性而非从属性,。在关系数据模型中,数据具有相关
33、性而非从属性,操作的对象和结果都是二维表,这种二维表就是操作的对象和结果都是二维表,这种二维表就是关系关系。关系数据模型把数据库表示为关系的一个集合。通俗地说,关系数据模型把数据库表示为关系的一个集合。通俗地说,每个关系都类似一张表,或者在某种程度上类似一个每个关系都类似一张表,或者在某种程度上类似一个“平面平面”记录文件。记录文件。201.2.2 关系数据模型关系数据模型关系模型由关系数据结构、数据操作集合和数据完整性关系模型由关系数据结构、数据操作集合和数据完整性3部分部分组成组成。关系数据结构是一张平面的关系数据结构是一张平面的二维数据表二维数据表;数据操作对象和结果都是集合,主要指检索
34、(查询)操作数据操作对象和结果都是集合,主要指检索(查询)操作和更新(增加、删除和修改)操作;和更新(增加、删除和修改)操作;数据完整性包括数据完整性包括3个方面的内容:实体完整性、参照完整性、个方面的内容:实体完整性、参照完整性、域(用户自定义)完整性。域(用户自定义)完整性。对关系的描述称为对关系的描述称为关系模式关系模式。一个关系模式对应一个。一个关系模式对应一个关系的结关系的结构构,表示为:,表示为:关系名(属性名关系名(属性名1,属性名,属性名2,属性名属性名 n)Visual FoxPro中数据中数据表表的结构表示为:的结构表示为:表名(字段名表名(字段名1,字段名,字段名2,字段
35、名字段名n)21 表表1.1表示了关系模型中的一个表示了关系模型中的一个”学生学生”关系:关系:22 在表在表1.1的的“学生学生”关系中:关系中:表格中的表格中的行称为元组行称为元组,用来表示同一实体中若干平行的、相关,用来表示同一实体中若干平行的、相关的个体属性。在的个体属性。在Visual FoxPro中,元组对应于数据库表中的一中,元组对应于数据库表中的一个具体个具体记录记录。表格中的表格中的列称为属性列称为属性,每个属性都有一个名字,称为,每个属性都有一个名字,称为属性名属性名,如学号、姓名、性别等。在如学号、姓名、性别等。在Visual FoxPro中,中,属性属性称为称为字段,字
36、段,属性名属性名即为即为字段名字段名;属性的取值范围称为属性的取值范围称为域域,例如姓名的取值范围是文字字符。,例如姓名的取值范围是文字字符。若属性(或属性的组合)的值能惟一标识一个元组,称为若属性(或属性的组合)的值能惟一标识一个元组,称为码码(或(或关键字)关键字),如果码的任意真子集都不能成为码,这样的,如果码的任意真子集都不能成为码,这样的“最小码最小码”称为称为“侯选码侯选码(候选关键字候选关键字)”,侯选码可以有多,侯选码可以有多个,被选中用来区别不同元组的侯选码称为个,被选中用来区别不同元组的侯选码称为主码主码(主关键字主关键字),),如学生表中的学号。在如学生表中的学号。在Vi
37、sual FoxPro中,中,主关键字主关键字和和候选关键候选关键字字都能惟一表示一个记录。都能惟一表示一个记录。23 如果表中的一个字段不是本表的主关键字或候选关键字,如果表中的一个字段不是本表的主关键字或候选关键字,但用于和其它表的关键字或候选关键字进行关联,这个字但用于和其它表的关键字或候选关键字进行关联,这个字段(属性)就称为段(属性)就称为外部关键字外部关键字。表格中表格中所有元组的集合就构成一个关系所有元组的集合就构成一个关系。从集合论的观点来看,从集合论的观点来看,一个具体的关系模型(数据库)就一个具体的关系模型(数据库)就是若干个有联系的关系模式的集合是若干个有联系的关系模式的
38、集合。在。在Visual FoxPro中,中,把相互之间有联系的表放到一个数据库中统一管理。例如,把相互之间有联系的表放到一个数据库中统一管理。例如,在在“教学管理教学管理”数据库中加入了学生、专业、成绩、课程数据库中加入了学生、专业、成绩、课程等等7个表。个表。学生(学生(学号学号,姓名,性别,出生日期,专业,入学成绩,贷款否,照片),姓名,性别,出生日期,专业,入学成绩,贷款否,照片)成绩(成绩(学号学号,课程号,成绩),课程号,成绩)课程(课程(课程号课程号,课程名,周学时,学分),课程名,周学时,学分)24 关系模型的主要特点表现在关系的规范化、集合性操作关系模型的主要特点表现在关系的
39、规范化、集合性操作及数据描述的统一性上。在关系模型中,所描述对象间的联及数据描述的统一性上。在关系模型中,所描述对象间的联系只能用关系来表示系只能用关系来表示。如对学生、成绩、课程。如对学生、成绩、课程3个关系个关系(表表),可以用同名属性:学号、课程号表示它们之间的联系。可以用同名属性:学号、课程号表示它们之间的联系。学生(学生(学号学号,姓名,性别,出生日期,专业,入学成绩,贷款否,照片),姓名,性别,出生日期,专业,入学成绩,贷款否,照片)成绩(成绩(学号学号,课程号课程号,成绩),成绩)课程(课程(课程号课程号,课程名,周学时,学分),课程名,周学时,学分)一张由二维表构成的关系模型应
40、满足以下条件:一张由二维表构成的关系模型应满足以下条件:表中不允许有重复的属性名,也不允许有完全相同的表中不允许有重复的属性名,也不允许有完全相同的元组;元组;表中每列数据属于同一类型。表中每列数据属于同一类型。表中每一个数据项应是最基本的数据单位,不可以再表中每一个数据项应是最基本的数据单位,不可以再分解。分解。表中行和列的顺序可以任意。表中行和列的顺序可以任意。251.2.3 概念数据(概念数据(E-R)模型到关系数据模型的转换)模型到关系数据模型的转换 在数据库的设计过程中,由于概念数据模型概念数据模型是对客观世界的第一次抽象,因此需要先建立概念数据模型,再将概念数据模型转换为数据库管理
41、系统所支持的关系数据模型关系数据模型。实体-联系模型是一种常用的高级概念模型,实体(Entity)-联系(Relationship)图(简称E-R图图)是实体-联系模型中的核心。E-R图可用于描述数据流图数据流图中数据存储及其间的关系,它是数据库概念设计的最常用工具(实例见10.2.3 系统设计阶段)。E-R图由实体、实体的属性和实体之间的联系3个要素组成,而关系模型的逻辑结构则是一组关系模式的集合。将将E-R图表图表示的概念模型转换为关系模型就是要将实体、实体的属性和实示的概念模型转换为关系模型就是要将实体、实体的属性和实体之间的联系转化为关系模式体之间的联系转化为关系模式。26将将E-R图
42、转换为关系模型的转换方法如下:图转换为关系模型的转换方法如下:(1)一个实体型转换为一个关系模式;(2)一个m:n联系转换为一个关系模式;(3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并;(4)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端(一般为全部参与方)对应的关系模式合并;(5)3个或3个以上实体间的一个多元联系m:n:p转换为一个关系模式;(6)同一实体集的实体间的联系(即自联系),也可按上述1:1、1:n和m:n三种情况分别处理;(7)具有相同码的关系模式可合并。271.2.4 关系运算关系运算 从集合论的观点来定义关系,每个关系是一个具
43、有从集合论的观点来定义关系,每个关系是一个具有K个属性个属性的元组集合,即这个关系有若干个元组,每个元组有的元组集合,即这个关系有若干个元组,每个元组有K个属性值。个属性值。关系运算关系运算是在关系上对元组或属性进行运算的操作,运算结果仍然是在关系上对元组或属性进行运算的操作,运算结果仍然是是关系关系。在介绍关系代数之前,先来介绍一些有关关系代数运算的术语在介绍关系代数之前,先来介绍一些有关关系代数运算的术语和记号:和记号:元组元组。给定关系模式。给定关系模式R(A1,A2,An),tR是关系的一个元组。是关系的一个元组。分量分量。设。设tR,则,则tAi表示元组表示元组t中相应于属性中相应于
44、属性Ai的一个分量的一个分量.属性列属性列。若。若A=Ai1,Ai2,Aik 为为A1,A2,An的的子集子集,称,称A为为属性列或域列。属性列或域列。关系的基本运算有两类,一类是集合运算(并、差、交等),关系的基本运算有两类,一类是集合运算(并、差、交等),另一类是关系数据库的运算(选择、投影、联接等)。另一类是关系数据库的运算(选择、投影、联接等)。281.集合运算集合运算 假设假设R和和S是两个关系,则有以下操作:是两个关系,则有以下操作:(1)并并。两个元组集合的并操作表示为。两个元组集合的并操作表示为RS,它是一个,它是一个关系,包括或者在关系,包括或者在R中、或者在中、或者在S中、
45、或者同时在中、或者同时在R和和S中的所有元组。中的所有元组。注注:为了使操作有意义为了使操作有意义,关系必须具有关系必须具有并的相容性并的相容性,即即R和和S必须要有相必须要有相同的属性和域。同的属性和域。(2)交交。两个元组集合的交操作表示为。两个元组集合的交操作表示为RS,它是一个,它是一个关系,包括既在关系,包括既在R中又在中又在S中的所有元组。中的所有元组。(3)差差。两个元组集合的差操作表示为。两个元组集合的差操作表示为RS,它是一个,它是一个关系,包括在关系,包括在R中,但是又不在中,但是又不在S中的所有元组。中的所有元组。292.关系关系(数据库的数据库的)运算运算 (1)选择选
46、择(Select)从关系中找出满足给定条件的从关系中找出满足给定条件的“元组元组”称为选择称为选择。选。选择是从择是从行行的角度进行运算,即从水平方向选取元组,记为:的角度进行运算,即从水平方向选取元组,记为:(R)。其中条件是逻辑表达式,逻辑表达式值为。其中条件是逻辑表达式,逻辑表达式值为真(真(.T.)的元组被选取。经过选择运算选取的元组可以形成)的元组被选取。经过选择运算选取的元组可以形成新的关系,它是原关系的一个子集,其关系模式不变。新的关系,它是原关系的一个子集,其关系模式不变。本书第本书第4章介绍的章介绍的SQL SELECT语句中的选项语句中的选项WHERE,就是对表进行选择运算
47、。,就是对表进行选择运算。例例1.1 从表从表1.1中查询所有男生的档案情况。中查询所有男生的档案情况。SELECT*FROM 学生学生 WHERE 性别性别=男男30(2)投影(投影(Project)从关系中选取若干属性组成新的关系称为投影从关系中选取若干属性组成新的关系称为投影,记,记为:为:A(R),其中,其中A为为R的属性名表。投影是从的属性名表。投影是从列列的角的角度进行运算,相当于对关系进行垂直分解。度进行运算,相当于对关系进行垂直分解。SQL SELECT语句中的语句中的选项选项,对表进行,对表进行投影运算。投影运算。例例1.2 从表从表1.1中显示所有学生的学号,姓名,性别,中
48、显示所有学生的学号,姓名,性别,入学成绩。入学成绩。SELECT 学号学号,姓名姓名,性别性别,入学成绩入学成绩 FROM 学生学生31(3)联接运算(联接运算(Join)联接是将两个或两个以上关系的属性横向联接成一个新的关联接是将两个或两个以上关系的属性横向联接成一个新的关系系,记为:,记为:R S。新的关系中包含满足联接条件的元组。新的关系中包含满足联接条件的元组。条件条件 例例1.3 设有教员(表设有教员(表1.2)和通讯录(表)和通讯录(表1.3)两个关系,用)两个关系,用SQL SELECT语句将两个关系的部分属性联接成一个新的关系。语句将两个关系的部分属性联接成一个新的关系。联接条
49、件是:教员联接条件是:教员.教师代号教师代号 通讯录通讯录.教师代号教师代号 SELECT 教员教员.教师代号教师代号,教员教员.姓名姓名,教员教员.性别性别,通讯录通讯录.邮编邮编,通讯录通讯录.地址地址,通讯录通讯录.电话电话;FROM 教员教员 INNER JOIN 通讯录通讯录 ON 教员教员.教师代号教师代号=通讯录通讯录.教师教师代号代号 又例又例 select 学生学生.学号学号,学生学生.姓名姓名,学生个人情况学生个人情况.身份证号身份证号码码,学生个人情况学生个人情况.家庭住址家庭住址;from 学生学生 inner join 学生个人情况学生个人情况 on 学生学生.学号学
50、号=学生个人学生个人情况情况.学号学号321.2.5 关系模式的规范化关系模式的规范化 关系规范化理论是研究如何将一个一般的关系模型转化为一关系规范化理论是研究如何将一个一般的关系模型转化为一个个最佳最佳的关系模型的理论,它为数据库中数据处理及程序设计提的关系模型的理论,它为数据库中数据处理及程序设计提供了规范化准则,达到供了规范化准则,达到减少数据冗余、保证数据一致性减少数据冗余、保证数据一致性的目的。的目的。关系规范化理论指出,关系数据库中的每一个关系都要满足一定关系规范化理论指出,关系数据库中的每一个关系都要满足一定的规范的规范。根据满足规范的条件不同,划分了。根据满足规范的条件不同,划