第1章 VFP数据库基础(14学时)
一、【教学目标】
1.理解数据库概念,了解数据处理发展阶段。
2.掌握数据库、数据库管理系统、数据库系统的概念。
3.理解实体、实体集等数据描述和一对一、一对多、多对多等数据联系的概念,掌握层次模型、网状模型、关系模型等数据模型的概念。
4.掌握关系模型、关系模式、关系、元组、属性、域、主关键字和外部关键字等常用关系术语。
5.掌握选择、投影、联接等专门的关系运算。
6.掌握数据库设计的原则、步骤、过程,掌握E-R图转关系表的方法。
二、【重点和难点】
重点:
1.数据库基本概念。
2.数据模型。
3.关系数据库的基本概念。
4.基本关系运算。
5.E-R图转关系表的方法。
难点:
1.数据模型的概念和类型。
2.关系模型中的常用术语。
3.关系模型的基本运算。
4.E-R图转关系表的方法。
三、【学法指导】
1.VFP基础知识是VFP的入门知识,对今后VFP的学习影响很大,要给予足够重视。
2.项目管理器是VFP设计的VFP的控制中心,相关组件的要逐步学习掌握。
四、【教学要点】
1.1VFP数据库理论基础
数据库管理系统是处理数据的工具,因此我们应首先了解数据、数据处理、数据库的概念以及计算机管理的发展历程。
1.1.1数据、信息及数据处理
数据是指存储在某种介质上用来记录客观事物的性质、形态和持征的符号,是对客观存在的实体的一种描述和记载。目前数据的概念被大大拓宽不仅包含各种数值数据,还包括有字符、声音及图画、影像等非数值数据。
信息是经过加工处理后获得的有用的数据,是对数据按一定的目的,采用一定的方法加工处理后的结果。因此,数据处理就是将数据转化为信息的过程。常见的数据处理主要包括数据的收集、存储、传输、加工、排序、检索、维护。
1.1.2计算机数据管理的发展
为了提高数据的信息或数据的价值,就必须用科学的方法对其进行管理。计算机在数据管理方面也经历了由低级到高级的发展过程,计算机数据管理随着计算机硬、软件技术以及计算机应用范围的发展而不断发展,主要历经以下几个阶段:
1.人工管理
20世纪50年代以前,外存储器只有卡片、纸带、磁带,没有像磁盘一样可以随机访问直接存取的外存储设备。软件方面,没有专门管理数据的软件。
这一时期计算机管理的特点是:数据与程序不具有独立性,一组数据对应一组程序。数据不长期保存,程序运行结束后就退出计算机系统,一个程序中的数据无法被其他程序利用。
2.文件系统
20世纪50年代后期至60年代中期,计算机被大量用于管理中的数据处理工作,大量的数据存储、检索、维护成为紧迫的需要。可直接存取的磁盘成为联机的主要外存。在软件面,出现了高级语言和操作系统。操作系统中的文件系统是专门管理外存数据的管理软件。
在文件系统阶段,程序和数据具有一定的独立性,程序和数据分开存储。程序只需用文件名就可以访问数据文件。文件系统中的数据文件是为了满足特定业务领域,数据和程序相互依赖。同一数据项可能重复出现在多个文件中,数据冗余度大。这不仅浪费空间,增加更新开销,更严重的是由于不能统一修改,容易造成数据的不一致性。
文件系统存在的问题阻碍了数据处理技术的发展,这正是数据库技术产生的原动力。
3.数据库系统
从20世纪60年代开始,需要计算机管理的数据量急剧增长,并且对数据共享的需求日益增强,为此发展了数据库技术。数据库技术的主要目的就是为了有效地管理和存取大量的数据资源。主要具有如下优点:实现数据共享、减少数据冗余;采用特定的数据模型;具有较高的数据独立性;有统一的数据控制功能。
1.1.3数据库系统的相关概念
1.数据库
所谓数据库是按照一定的组织方式,相互有关的数据的集合。它不仅包括数据本身,而且包括相关数据之间的联系。
2.数据库应用系统
数据库应用系统是指系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。例如:开发人员利用VFP开发的财务管理系统。
3.数据库管理系统
数据库管理系统是为数据库的建立、使用和维护而配置的软件。它能使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。
4.数据库系统
数据库系统是指引进数据库技术后的计算机系统。数据库系统由五部分组成:硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员和用户。
1.1.4数据库特点
1.数据独立
应用程序不需要了解数据实际的存取方式,通过数据库的存取指令,就可得到所需数据。因此,当数据的存取结构变更时,仅需更改数据库系统的内部程序,外部的应用程序完全不需要改变。
2.数据共享
由数据库的概念可知,数据库中的数据是供所有的程序使用的,因此,数据库具有共享特点是不言而喻的。
(1)减少冗余
由于非数据库系统中,每个应用方法使用自己的数据来处理,经常会造成数据的重复建立,而且彼此之间的数据格式也不同,无法交互应用。在数据库系统中,仅建立公用的数据库,其余的应用程序都使用该数据库,因此,可大大减少数据的冗余。
(2)统一控制
数据库中的数据是各用户的共享资源,即许多用户同时使用数据库,会产生并发操作,因此,数据库系统提供了三方面的数据控制功能:
①安全性控制:防止数据被破坏和泄密设置安全措施,只让合法用户进行有限的操作。
②完整性控制:保证数据库中的数据在输入、修改过程中始终符合原来的定义和规定。保证数据的正确、有效、相容。
③并发控制:当多用户并发进程同时存取、修改数据库时,可能会发生相互干扰使数据库的完整性遭到破坏,因此,数据库系统提供了对并发操作的控制功能。
1.1.5数据模型
1.相关概念
(1)实体
客观存在并且可以相互区别的事物称为实体。实体可以是实在的事物,也可以是抽象事件。例如:商品、客户等属于实体,它们是实际事物,而销售、订购、比赛等活动也是实体,它们是比较抽象的事件。
(2)实体的属性
描述实体的特征称为属性。例如:客户实体(客户编号,姓名,所在地,邮编)等属性来描述。
(3)实体集和实体型
属性值的集合表示一个实体,而属性的集合表示一种实体的类型称为实体型。同类型的实体的集合称为实体集。
例如:客户实体集中,(K001,任云,上海,201100)表示客户实体集中的一个具体的实体
(4)实体间联系及联系的种类
实体间的对应关系称为联系,它反映现实世界事物之间的联系。实体间的联系可以归纳为三种类型:
①一对一联系
一对一联系:实体集A中的每一个实体与实体集B中的一个实体对应,反之亦然。记为1:1
例如:考察车间和车间主任两个实体集,一个车间有一个车间主任,一个车间主任领导一个车间。因此二者是一对一的联系。
②一对多联系
实体集A中的每一个实体与实体集B中的多个实体对应,反之不然。记为1:n
例如:考察商品和商品类别两个实体集,一种商品类别中包含多种商品,而一种商品只属于一个商品类别,因此二者是一对多的联系
③多对多联系:
实体集A中的每一个实体与实体集B中的多个实体对应,反之亦然。记为m:n
实体联系的表示方法
E-R图又被称为实体-联系图,它提供了表示实体、属性和联系的方法,用来描述现实世界的概念模型。
构成E-R图的基本要素是实体、属性和联系,其表示方法为:
实体:用矩形表示,矩形框内写明实体名;
属性:用椭圆形表示,椭圆形框内写明联系的名称并用无向边将其与相应的实体连接起来;
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。
例1.1:用E-R图来表示商品类别和商品之间的联系
步骤:
①用矩形来表示实体,在此有两个实体商品类别和商品。
![]()
②用椭圆表示属性,并用无向边和实体连接起来

③用菱形表示,并用无向边分别与有关实体连接起来

2.
数据模型
即数据库结构,可分为三种:层次型、网状型、关系型。
(1)层次数据模型
层次数据模型如树状结构,具有父子关系,每个父接点可以有很多子节点。若需要子节点有很多父节点或不同的父节点的子节点间联系,则无法使用次模式,必须改用其它模式。
层次数据模型结构的优点是:结构简单,易于操作;从上而下寻找数据容易;与日常生活的数据类型相似。
其缺点是:寻找非直系的接点非常麻烦,必须通过多个父接点由下而上,再向下寻找,搜寻的效率太低。
(2)网状数据模型
网状数据模型比层次数据模型更有弹性,允许子节点有多个父节点。
其优点是子节点间的关系比较接近,联系容易。但缺点是路径太多,当添加或删除数据时,牵动的相关数据很多,重建和维护数据比较麻烦。
(3)关系数据模型
关系模型中仅存在唯一的结构类型——关系,所谓关系型数据库就是用关系模型组织的数据库结构。我们可将关系型数据库结构看成是一个二维表,这种二维表就是关系,无论是实体本身还是实体之间的联系均用二维表表示,使得实体中的数据本身能自然地反映它们之间的联系。
1.1.6关系数据库
自20世纪80年代以来,新推出的数据库管理系统几乎都支持关系模型。VFP就是一种关系数据库管理系统。
1.关系模型
一个关系的逻辑结构就是一张二维表。这种用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。
(1)相关概念
在VFP中一个表就是一个关系。如图1.1所示给出一个商品表和一个客户表两个关系。

图1.1商品表及客户表
①关系:一个关系就是一张二维表。每个关系都有一个关系名。在VFP中一个关系存储为一个文件,文件扩张名为.dbf,称为表。
一个关系模式对应一个关系的结构。其格式为:
关系名(属性1,属性2,…,属性n)
在VFP总 表示为一个表结构,其格式为:
表名(字段1,字段2,…,字段n)
②元组:在一个二维表中,水平方向的行称为元组,每一行就是一个元组。一个元组对应存储文件中的一条记录。例如:商品表包括多条记录(元组)
③
④域:属性的取值范围
⑤关键字:属性或属性的组合,其值可以唯一标识一个元组。例如:在商品表中,商品编号可以唯一标识一个元组,因此商品编号是商品表的关键字。
⑥外部关键字:如果表中一个字段不是本表的主关键字,而是另外一个表的主关键字,这个字段就成为外部关键字。
2.关系运算
(1)并
两个相同结构关系的并是由属于这两个关系的元组组成的集合。
(2)差
设有两个相同结构的关系R和S,R差S的结果是由属于R但不属于S的元组组成的集合,即从R中去掉S中也有的元组。
(3)交
两个具有相同结构的关系R和S,它们的交是由既属于R又属于S的元组组成。
的集合。交运算的结果是R和S共同的元组。
(4)选择
所谓选择是指在关系中找出满足给定条件的数据操作。选择的条件以逻辑表达式给出,是逻辑表达式条件为真的数据被选取。例如:查找编号为S10001的商品
(5)投影
所谓投影是指在在关系中选取某些属性列组成新的关系,相当于对关系进行垂直分解,在新关系中包含的属性个数比原来关系少。
(6)联结
所谓联接运算是将两个关系模式拼接成一个更宽的关系模式,新关系中包含满足条件的元组。两个关系模式的联接是通过联接条件实现的,联接的结果是满足条件的所有记录。
1.1.7数据库设计基础
1.数据库设计原则:
(1)多数据库,少数据量
如果所组织的数据库记录非常大,程序对数据库操作时所用的时间就特别长。此时,应该根据需要和数据库中的数据类型将该数据库拆分成多个数据库,从而减少每个数据库记录。这是为了程序执行时能快速访问数据,有利于查询、统计的一种设计方法。
(2)尽量减少多个表间的重复字段
除了保证各个表之间存在联系的外部关键字段外,尽量减少各表之间的重复字段,其目的是尽量减少数据的冗余,防止在插入、删除和更新时造成数据的不一致。
(3)表中必须保持正确和原始的基本数据
程序利用数据库中的数据进行各种各样的操作必然会产生中间或最终结果,但保证数据库中数据的正确性和原始性是非常重要的。若需要时,可将中间结果或最终结果保存在另外的数据库中,以保证其它程序操作的正确性。
(4)用外部关键字保证有关联的表之间的联系
各表间的关联是依靠外部关键字实现的,因此,在尽量减少重复字段的情况下,设计时还要考虑关联时所用到的相同的关键字段,使得表具有合理的结构。
2.数据库设计步骤:
(1)需求分析
根据用户提出的要求、要完成的任务和要达到的个项指标,全面汇总、详细分析数据资料对数据库的设计十分重要。在以上的工作中总结出用户要从数据库所获得的信息内容,定义数据库结构、数据类型以及数据的方法等。
(2)定制需要的表
根据用户对数据库的要求,查询、统计、报表等功能所需数据,将信息分门别类地建立各种各样的表,以满足各种功能的需要。例如在商品进货销售系统中遵从一事一地的原则,把商品、供应商、客户、类别、销售、订购单等每个试题设计成一个表
(3)确定联系
根据要求所设计的数据库,不仅存储了所需实体信息,同时还要反映出实体之间客观存在的关联。确定联系的方法如下:
①一对多联系
建立一对多联系的规律为:在1:n联系的n端实体所对应的表中,新增一个(或几个)属性,它(们)是1端实体的主码。

图1.2
转换为:商品类别(类别编码,类别名称)
商品(商品编号,商品名称,类别编码,单位,图片,简介)
②多对多联系
建立多对多联系的规律为:通过引入一个新表来表达二个实体集间多对多联系,新表的主码由联系两端实体的主码组合而成。