Visual Foxpro程序设计 张文祥 主编 主讲教师: 李勤
主要参考书目:《Visual Foxpro程序设计教程》 匡松主编 四川大学出版社 网络资源:计科系教学资源网 (http://210.41.166.233 公共课部分) 其它VFP相关网站 等考资料:省二级、全国二级历届考试题(详见上面网址) 校外访问地址:61.139.52.111
成绩考核:本课程为考试课程,成绩构成如下
第一章数据库 1.1 数据库 1.1.1 信息、数据与数据处理 信息(information):是客观事物属性的反映. 第一章数据库 1.1 数据库 1.1.1 信息、数据与数据处理 信息(information):是客观事物属性的反映. 数据(data):是反映客观事物属性的记录. 总之,信息是有用的数据,数据是信息的表现形式.
数据处理:利用计算机对各种形式的数据进行一系列的采集、存储、加工、计算、分类、检索、传输等处理。 是利用计算机技术将数据转换成信息的过程。 数据处理又分为基本操作(数据的收集、分类、编码、存储、检索、传输等)和应用操作(加工、计算、输入输出等)。 目的:从大量的原始数据中提取有用的数据成份.
1.1.2数据管理技术的发展 数据管理:是对数据进行组织、存储、分类、检索、维护等数据处理的技术,是数据处理的核心。 数据管理技术的三个阶段: 人工管理阶段 文件管理阶段 数据库系统管理阶段
1.2 数据库、数据库管理系统、数据库系统 数据库(DB):按一定数据结构组织并存储在计算机中的一组相关数据的结合. 特点: 数据的结构化 1.2 数据库、数据库管理系统、数据库系统 数据库(DB):按一定数据结构组织并存储在计算机中的一组相关数据的结合. 特点: 数据的结构化 实现数据共享 减少数据冗余度 数据的独立性和完整性
数据库管理系统(Data Base Management System 简称DBMS):是负责数据库的定义、 建立、操纵、管理、维护的软件系统。 组成:数据定义语言DDL及其编译和解释程序; 数据操纵语言DML或查询语言; 数据库运行管理和控制例行程序; 数据字典DD。
数据库系统(Data Base System 简称DBS):一个具有管理数据库功能的计算机软硬件综合系统。 包括:1 硬件系统; 2软件系统(操作系统、数据库管理系统如VFP、应用程序系统); 3数据库; 4数据库管理人员(终端用户、应用程序员、数据管理员)。
1.3 数据模型 事物与事物之间存在一定的联系,数据是反映客观事物属性的记录,数据与数据之间也存在一定的联系。具有联系的相关数据按一定的组织关系排列,从而构成一定的结构,这种结构就是数据模型。 1.3.1数据抽象与实体模型 数据模型的建立过程: 信息抽象 数据抽象 数据模型 现实世界 信息世界的实体模型
实体间联系分三类: 一对一(1:1) 一对多(1:n) 多对多 ( n:n) 其中: 实体:客观世界的任何事物在信息世界中被抽象为实体,实体是客观存在并相互区分的“事物”。 实体模型:按用户观点对现实世界中的事物建立的一种模型。 实体间联系分三类: 一对一(1:1) 一对多(1:n) 多对多 ( n:n)
关系模型:指具有相关性而非从属性的平行数据间按某种序列排列的集合关系. 关系即是一张二维表. 1.3.2 数据模型与数据库分类 1.关系模型与关系数据库 关系模型:指具有相关性而非从属性的平行数据间按某种序列排列的集合关系. 关系即是一张二维表. 某部门专门人才表 某地区专门人才表 姓名 性别 年龄 甲 女 21 乙 男 25 丙 24 部门 姓名 性别 年龄 高校 甲 女 21 乙 男 25 中学 丙 24
二维表构成关系模型应满足的条件: (1)表格中不允许有重复的行和列; (2)表格中各列不允许有相同的字段名; (3)表格中每一列的所有数据类型必须相同或相容; (4)表格中行和列的次序可以任意排列; (5)表格中每个数据项都不可再细分. 数据库的性质是由其中的数据模型决定,由关系模型构成的数据库为关系数据库,VFP即是一种关系数据库.
2.层次数据模型与层次数据库 层次模型:表示数据间的从属关系结构,以有向树结构的形式管理. 特点:层次分明,结构清晰,适于表达一对多型联系. 层次模型构成的数据库为层次数据库.
网状模型:表多个从属关系的层次结构。可表数据间的横向、纵向关系,是层次模型的扩展。 由网状数据模型构成的数据库为网状数据库。 3.网状数据模型与网状数据库 网状模型:表多个从属关系的层次结构。可表数据间的横向、纵向关系,是层次模型的扩展。 由网状数据模型构成的数据库为网状数据库。
对象:是反映客观事物属性及行为特征的描述。 类:是具有共同属性、共同操作性质的对象的集合。 4 面向对象模型 对象:是反映客观事物属性及行为特征的描述。 类:是具有共同属性、共同操作性质的对象的集合。
1.3.3数据库管理系统的分类 1.按数据模型分类(关系 \层次\网状\面向对象) 2.按数据库网络分类 单用户数据库管理系统 主从式数据库管理系统 分布式数据库管理系统 客户/服务器数据库系统 3.按通用性分 通用数据库 专用数据库 4.专用数据库分类 分布式数据库、并行数据库、知识数据库、多媒体数据库、模糊数据库、空间数据库等。
典型的数据库管理系统 Oracle\DB2\Sybase\SQL Server\XBASE与Fox 数据库应用系统开发工具:PB、Delphi
1.4 关系数据库基础 1.4.1 关系术语 (1)关系:指一个二维表.在VFP中一个关系就称为一个数据表。 1.4 关系数据库基础 1.4.1 关系术语 (1)关系:指一个二维表.在VFP中一个关系就称为一个数据表。 (2)元组:二维表中的一行。VFP中一行也称为一条记录。。 (3)属性:指二维表中的一列.每列的名称称为属性名. VFP中一列称为一个字段 (4)值域:列值称为属性值,属性值的取值范围称为值域。 (5)关键字或码:指表中具有惟一标识的属性或属性组合.VFP中具有惟一性取值的字段称为关键字段(如“学号”). 一个关系中关键字的值一般不能为空. (6)关系模式:是对关系的描述,一个关系模式对应一个关系的结构. 即关系名(属性1,属性2,…..属性n).如学生学费(学号,学期,年级,姓名,性别,费用)
1.4.2 关系的规范化 基本思想:逐步消除数据依赖关系中的不适合部份.
1.4.3 关系运算 传统的集合运算: 1.并(Union) :设有两个关系R和S具有相同的关系模式,关系R和S的并定义为属于R或S的元组组成的集合,形式定义为:R∪S={ t|t∈R ∨t∈S} 2.差(Difference) :关系R和S具有相同的关系模式,关系R和S的差定义为属于R但不属于S的元组组成的集合.形式定义为: R-S≡{t|t∈R∧t S} 3.交(Intersection) :关系R和S的交定义为既属于R又属于S的元组组成的集合.记为R∩S={ t|t∈R ∧t∈S} 4.笛卡尔积(Cartesian Product) :由属于R的任一元组和属于S的任一元组连接而成的新元组组成的一个新关系。记为: R×S={t|t=<tm,tn> ∧ tm ∈R ∧ tn∈S} 设R的元为m,S的元为n,则R×S的元为m+n。若R和S中有相同的属性名,则在结果模式中可用位置表示。若R中有n1个元组,S中有n2个元组,则R×S有n1×n2个元组。
b 2 a d 4 f d 4 f c 3 d a 1 c d 4 f c 3 d a 1 c b 2 a c 3 d d 4 f R(A, B, C) a 1 c d 4 f c 3 d S(A, B, C) b 2 a d 4 f R∩S(A,B,C) d 4 f R∪S(A,B,C) a 1 c b 2 a c 3 d d 4 f R×S (R.A,R.B,R.C,S.A,S.B,S.C) a 1 c b 2 a a 1 c d 4 f d 4 f b 2 a d 4 f d 4 f c 3 d b 2 a c 3 d d 4 f R-S(A,B,C) a 1 c c 3 d
专门的关系运算 (1)选择:从关系中选出满足条件的记录,构成一个新关系,。 横向筛选 单目运算 (2)投影:是从关系中取若干字段组成新的关系。 纵向筛选 单目运算 (3).连接:将两 个关系通过相同的字段名连接成一个新的关系, 可实现两个关系的横向合并 双目运算
1.4.4 关系的完整性 完整性约束规定了存入DB的数据应满足的条件。利用完整性约束,DBMS可以阻止不正确的数据的输入。 1、实体完整性约束 要求主关键字的值不能为空且没有重复值。 其意义是:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主键来唯一标识。若两个元组主键相同,则认为是同一实体。若主键为空,则出现不可标识的实体。 空值(null):不知道或无意义,并不指0。 2、域完整性约束: 域是表中属性值的取值范围,域完整性指定义属性的类型、宽度、输入数据的合理性。
3、参照完整性约束(引用完整性约束) 指保持数据的一致性. 意义:参照完整性约束可维护表与表之间的数据一致性,即其中一张表数据的改动,可能要求另一张表对应数据也要做某些改动,以保持数据一致。 学生(学号,姓名,性别,专业号) 专业(专业号,专业名,负责人,简介) 参照完整性规则规定外关键字可取空值或取被参照关系中主关键字的值。 DBMS对完整性约束的支持: ●域完整性自动满足。 ●实体完整性和参照完整性由系统自动支持。 ●系统应提供定义和检验用户定义的完整性的机制
1.5 Visual Foxpro介绍 81年,Ashton-Tate公司推出了dBASEII ,用于统计分析大量数据的需要,84年推出了dBASE III,之后相继推出了dBASE III Plus 以及dBASE IV,其功能逐渐增强。 84年,Fox Software 公司便推出了与dBASE全兼容的FoxBASE,其速度大大快于dBASE,并且在FoxBASE中第一次引入了编译器。86年, Fox公司又推出了升级版本FoxBASE+、87年推出了FoxBASE+ 2.0和2.10。 89年, Fox Software 公司便推出了升级换代产品FoxPro 1.0 ,该产品极大地扩充了XBASE的命令,且完全兼容dBASE、FoxBASE,该产品中引进了DOS下的彩色文本窗口界面,支持鼠标操作.91年又推出了FoxPro 2.0 , 引入了Rushmore 查询优化技术、SQL结构化查询语言等,使 FoxPro的功能发生了质的飞跃. 92年微软收购了Fox 公司,把FoxPro纳入自己的产品中。 93年微软推出了FoxPro2.5跨平台产品,能在DOS和Windows下运行.
本章重点:基本概念、三种数据模型、三种关系运算 95年,微软推出了面向对象的关系数据库Visual FoxPro 3.0版(VFP),是可在Windows3.x、Win95、Win98、WindowsNT下运行的32位数据库开发系统。界面友好,功能强。 97年,微软又推出了Visual FoxPro 5.0及其中文版。 该版本主要引进了对Internet的支持和ActiveX技术。98年推出了可视化编程语言集成包Visual Stadio 6.0 , Visual FoxPro 6.0中文版即其中的一员,也称FoxPro98中文版,使VFP在Internet上的应用得到了全面支持。现在使用的VFP常用版本有:6.0 7.0 8.0 本章重点:基本概念、三种数据模型、三种关系运算 主要掌握以下内容: 1. 数据和信息的概念及区别 2. DBS,DBMS,DB的关系 3. 数据库的四个特点 4. 数据管理的三个阶段 5. 三种基本数据模型 6. DBMS的主要功能 7. 关系数据库的常用名词:属性,域,元组,码 8. 三种基本的关系运算 9. 三种数据库完整性规则