720 likes | 903 Views
普通高等教育 “ 十一五 ” 国家级规划教材. Visual FoxPro 程序设计. 主编: 刘卫国 出版社:北京邮电大学. 任课教师:付媛媛. 湖南城市学院信息与计算机科学系. 课程名称: 计算机语言 B(0604004) 使用教材: 《Visual FoxPro 程序设计教程 》 主 编: 刘卫国 出 版 社: 北京邮电大学出版社 出版时间: 2008 年 11 月 专业班级: 1006601602
E N D
普通高等教育“十一五”国家级规划教材 Visual FoxPro 程序设计 主编:刘卫国 出版社:北京邮电大学 任课教师:付媛媛 湖南城市学院信息与计算机科学系
课程名称: 计算机语言B(0604004) 使用教材:《Visual FoxPro 程序设计教程》 主 编: 刘卫国 出 版 社: 北京邮电大学出版社 出版时间: 2008年11月 专业班级: 1006601\602 授课时数: 总 64 课时 理论:32课时;实践:32课时 授课教师: 付媛媛 授课时间: 2010 至 2011 学年度 第 2 学期 主要参考文献 2
考核办法: 期末考试:70%笔试 机试 课堂纪律 平时成绩:30%考勤(迟到、早退) 上机实验(任务完成、违 纪) 课后作业 3
主 要 内 容 • 第一章 数据库系统基础知识 • 第二章 Visual Foxpro 操作基础 • 第三章 Visual Foxpro 的数据及其运算 • 第四章 表的基本操作 • 第五章 数据库的基本操作 • 第九章 结构化程序设计 • 第十章 面向对象程序设计基础 4
第一讲数据库系统的基础知识 • 课题:数据库系统基础知识 • 教学目的:学会数据库系统基础知识 • 教学要求:了解数据库的相关概念,掌握数据模型及关系型数据库系统 • 教学重点:关系型数据库系统 • 教学难点:关系型数据库系统 • 教学课时:2学时 • 教学方法:讲授法、演示法 5
第一章 数据库系统的基础知识 1.1 数据管理技术的发展 1.2 数据库系统 1.3 数据模型 1.4 关系数据库 1.5 数据库系统的体系结构与开发工具 返 回 6
1.1 数据管理技术的发展 §1.1.1 数据与数据处理 1. 数据 ——人们用于记录事物情况的物理符号。就是数据化后的信息,它是一种物理符号序列,泛指一切可以被计算机处理的符号及符号组合,是信息的一种量化表示。有两种基本形式的数据:数值型数据、字符型数据。此外,还有图形、图像、声音等多媒体数据。 2.信息 —— 就是客观世界在人们头脑中的反映。按其存在形式的不同,可以分为现实世界、观念世界和数据世界三种。信息是数据中所包含的意义。通俗地讲,信息是经过加工处理并对人类社会实践和生产活动产生决策影响的数据。 7
数据与信息既有区别,又有联系。数据是表示信息的,但并非任何数据都能表示信息,信息只是加工处理后的数据,是数据所表达的内容。另一方面信息不随表示它的数据形式而改变,它是反映客观现实世界的知识,而数据则具有任意性,用不同的数据形式可以表示同样的信息。数据与信息既有区别,又有联系。数据是表示信息的,但并非任何数据都能表示信息,信息只是加工处理后的数据,是数据所表达的内容。另一方面信息不随表示它的数据形式而改变,它是反映客观现实世界的知识,而数据则具有任意性,用不同的数据形式可以表示同样的信息。 3. 数据处理 ——将数据转换成信息的过程。是对各种类型的数据进行收集、整理、传输、加工、存储、更新和维护等一系列的活动。其基本目的是从大量的、杂乱无章的、难以理解的数据中整理出对人们有价值、有意义的数据(即信息),作为决策的依据。 8
§1.1.2 数据管理技术 • 在信息时代数据共享是资源共享的主要组成部分,作为数据共享技术的数据库技术,已成为了计算机应用领域的重要技术之一。 • 计算机应用领域: • 1. 科学计算 2. 数据处理(80%) 3. 过程控制 • 数据管理技术发展的三个阶段及主要特点 • 1、人工管理阶段(无管理阶段)50年代以前 • 出现在计算机早期,无操作系统和文件管理系统时代。 • 特点: • 数据的不独立性 • 数据的不共享性 • 数据的不保存性 • 数据采用批处理方式处理 9
2、文件系统管理阶段 60~70年代 小规模集成电路出现,存储设备出现,操作系 统出现。 特点: • 数据相对于程序有了一定的独立性 • 数据文件可以长期独立保存 • 允许文件为单位的数据共享 • 文件的物理结构、存储方式出现多样化 不足: ⑴ 数据的冗余度大 ⑵ 数据独立性差 ⑶ 缺乏对数据的统一控制管理 10
3、数据库系统管理阶段 70年代至今 计算机硬件功能进一步增强,人们对数据处理的需求加大,因而产生了专门的数据库管理系统。特点:数据结构化——数据库在描述数据时,不仅要定义数据本身还要描述数据间的关系,文件对记录操作,记录间并无联系。数据相对独立——数据的定义和描述从程序中分离,用户程序与数据库中的数据的逻辑组织和物理存储方式无关。 11
用户 数据库 数据 文件 数据库管理系统 用户 用户 数据共享减少冗余 由于数据库面向整个系统应用,因此减少了冗余,同时由于数据库系统提供了一整套数据控制功能(安全性控制、数据完整性控制、并发控制等等),因而多个用户可以同时共享数据。 12
数据管理技术的发展 人工管理 文件系统 数据库管理 13
新型数据库系统 • 分布式数据库系统 • 面向对象数据库系统 • 多媒体数据库系统 • 数据仓库 14
1.2 数据库系统 1.2.1 数据库系统的组成 数据库系统是把有关计算机硬件、软件、数据和人员组合起来为用户提供信息服务的系统。因此,数据库系统是由计算机系统、数据库及其描述机构、数据库管理系统和有关人员组成,是由这几个方面组成的具有高度组织性的总体。 1. 硬件 数据库系统对计算机硬件的要求除要求CPU的处理速度高、内存容量大以外,还要求有足够的外存空间以存储数据库中的数据。 15
2. 软件 数据库系统中的软件包括操作系统、数据库管理系统及数据库应用系统等。 数据库管理系统是数据库系统的核心软件之一。它提供数据定义、数据操作、数据库管理、数据库建立和维护以及通信等功能。 数据库应用系统是指系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。它分为两类: (1)管理信息系统。这是面向机构内部业务和管理的数据库应用系统。 (2)开放式信息服务系统。这是面向外部、提供动态信息查询功能,以满足不同信息需求的数据库应用系统。 16
数据库管理系统(DBMS) 从信息处理的理论角度讲,如果我们把利用数据库进行信息处理的工作过程,或把掌握、管理和操纵数据库的数据资源的方法看作是一个系统的话,则称这个系统为数据库管理系统(Data Base Management System,简称DBMS)。数据库管理系统提供对数据库资源进行统一管理和控制的功能,使数据与应用程序隔离,数据具有独立性;它可以使数据结构及数据存储具有一定的规范性,减少了数据的冗余,并有利于数据共享;它提供了安全性和保密性措施,使数据不被破坏、不被窃用。 数据库管理系统通常由三个部分组成:数据描述语言(DDL)及其编译程序、数据操纵语言(DML)或查询语言及其编译或解释程序、数据库管理例行程序。 17
无论是哪一类信息系统,从实现技术角度而言,都是以数据库技术为基础的计算机应用系统。 无论是哪一类信息系统,从实现技术角度而言,都是以数据库技术为基础的计算机应用系统。 3. 数据库 数据库系统中的数据库是按一定法则存储在计算机外存储器中的大批数据。它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。 数据库中的数据往往不是像文件系统那样,只面向某一项特定应用,而是面向多种应用,可以被多个用户、多个应用程序共享。其数据结构独立于使用数据的程序,对于数据的增加、删除、修改和检索由系统软件进行统一的控制。 18
4. 数据库系统的有关人员 数据库系统的有关人员主要有3类:最终用户、数据库应用系统开发人员和数据库管理员(DBA:Database Administrator)。最终用户指通过应用系统的用户界面使用数据库的人员,他们一般对数据库知识了解不多。数据库应用系统开发人员包括系统分析员、系统设计员和程序员。系统分析员负责应用系统的分析,他们和用户、数据库管理员相配合,参与系统分析;系统设计员负责应用系统设计和数据库设计;程序员则根据设计要求进行编码。数据库管理员是数据管理机构的一组人员,他们负责对整个数据库系统进行总体控制和维护,以保证数据库系统的正常运行。 19
1.2.2 数据库的三级模式结构 为了有效地组织、管理数据,提高数据库的逻辑独立性和物理独立性,人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括模式、外模式和内模式。 20
美国国家标准协会将数据库结构分为3级:面向用户或应用程序员的用户级、面向建立和维护数据库人员的概念级、面向系统程序员的物理级。用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。美国国家标准协会将数据库结构分为3级:面向用户或应用程序员的用户级、面向建立和维护数据库人员的概念级、面向系统程序员的物理级。用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。 所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中”的反映,很显然,不同层次(级别)用户所“看到”的数据库是不相同的。 21
1.模式 模式又称概念模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库系统提供的数据模式描述语言(DDL:Data Description Language)来描述、定义的,体现、反映了数据库系统的整体观。 22
2.外模式 外模式又称子模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言(外模式DLL)来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(DML:Data Manipulation Language)对这些数据记录进行。外模式反映了数据库的用户观。 23
3.内模式 内模式又称存储模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言(内模式DLL)来描述、定义,它是数据库的存储观。 在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛、多样的,故对应的外模式不是唯一的,也不可能唯一。 24
1.2.3 数据库系统的特点 1.数据共享 数据共享是指多个用户可以同时存取数据而不相互影响,数据共享包括以下三个方面: 所有用户可以同时存取数据; 数据库不仅可以为当前的用户服务,也可以为将来的新用户服务; 可以使用多种语言完成与数据库的接口。 25
2.减少数据冗余 数据冗余就是数据重复,数据冗余既浪费存储空间,又容易产生数据的不一致。在非数据库系统中,由于每个应用程序都有自己的数据文件,所以数据存在着大量的重复。 数据库从全局观念来组织和存储数据,数据已经根据特定的数据模型结构化,在数据库中用户的逻辑数据文件和具体的物理数据文件不必一一对应,从而有效地节省了存储资源,减少了数据冗余,增强了数据的一致性。 26
3.具有较高的数据独立性 所谓数据独立是指数据与应用程序之间的彼此独立,它们之间不存在相互依赖的关系。 在数据库系统中,数据库管理系统通过映像,实现了应用程序对数据的逻辑结构与物理存储结构之间较高的独立性。数据库的数据独立包括两个方面: (1)物理数据独立:数据的存储格式和组织方法改变时,不影响数据库的逻辑结构,从而不影响应用程序。 (2)逻辑数据独立:数据库逻辑结构的变化(如数据定义的修改,数据间联系的变更等)不影响用户的应用程序。 27
4.增强了数据安全性和完整性保护 数据库加入了安全保密机制,可以防止对数据的非法存取。由于实行集中控制,有利于控制数据的完整性。数据库系统采取了并发访问控制,保证了数据的正确性。另外,数据库系统还采取了一系列措施,实现了对数据库破坏的恢复。 28
1.3 数据模型 数据库结构模型 实体及实体间的联系 实体 ——现实世界中的客观事物 实体间的联系(事物之间的联系)通常有3种: 一对一、一对多、多对多 数据模型—— 表示数据与数据之间联系的方法。 29
班长 班长 教师 1 1 m 班长-班级 班长-学生 教师-学生 1 n n 班级 学生 学生 (a) (b) (c) 实体间的联系 30
(1)一对一联系(1:1) 若两个不同型实体集中,任一方的一个实体只与另一方的一个实体相对应,称这种联系为一对一联系。如班长与班级的联系,一个班级只有一个班长,一个班长对应一个班级。 (2)一对多联系(1:n) 若两个不同型实体集中,一方的一个实体对应另一方若干个实体,而另一方的一个实只对应本方一个实体,称这种联系为一对多联系。如班长与学生的联系,一个班长对应多个学生,而本班每个学生只对应一个班长。 (3)多对多联系(m:n) 若两个不同型实体集中,两实体集中任一实体均与另一实体集中若干个实体对应,称这种联系为多对多联系。如教师与学生的联系,一位教师为多个学生授课,每个学生也有多位任课教师。 31
学校 R1 处 院 系 R22 R21 R31 R32 R33 科 教研室 班 级 1. 层次模型(树状) 层次模型 ——是用树型结构来表示数据之间的联系。 可以表示一对多的联系 特点: ● 最高层只有一个节点,称为根节点 ● 除根节点之外的其它每个结点向上 只能与一个节点连接。 层次模型示例 32
R1 R2 R3 R4 R5 R6 R7 2. 网络模型 网状模型 ——是用网络结构来表示数据之间的联系, 可以表示多对多的联系。 网状模型和层次模型在本质上是一样的,层次模型是网络模型的特殊形式。 特点: (1)可以有一个以上的结点 无父结点; (2)至少有一个子结点有一 个以上的父结点; (3)在两个结点之间有两个 或两个以上的联系。 网络模型示例 33
R1 R2 L2 L1 L3 R3 L4 R4 R为实体L为节点间的联系 网络型的特点是: 没有唯一的根节点,每个节点可以和其它任意节点相连,构成网络。 网络模型和层次模型统称为非关系模型,它们的关系可以和图相对,从物理上看,层次模型和网络模型都是用指针来实现两个节点之间的关系。 34
3. 关系模型 关系模型——用二维表格的形式来表示数据和数据之间关系 的模型。 即把数据结构看成一个二维表格,每个二维表格就 是一个关系,关系模型是由若干个二维表格组成的集合。 关系模型是当前最流行的数据库模型。 特点: (1)表格中的每一列都是不可再分的基本属性,不能出现表中表; (2)各列被指定一个相异的名字,字段名不能相同; (3)各行不允许重复,不能存在两条完全一样的记录; (4)行、列的次序无关,行、列顺序可以任意调换; (5)同一字段的数据类型必须一致 。 35
1.3.2 数据模型 数据模型是对客观事物及其联系的数据描述,反映实体内部和实体之间的联系。由于采用的数据模型不同,相应的数据库管理系统也就完全不同。在数据库系统中,常用的数据模型有层次模型、网状模型和关系模型3种。 36
层次模型用树形结构来表示实体及其之间的联系。在这种模型中,数据被组织成由“根”开始的“树”,每个实体由根开始沿着不同的分支放在不同的层次上。树中的每一个结点代表实体型,连线则表示它们之间的关系。根据树形结构的特点,建立数据的层次模型需要满足两个条件:层次模型用树形结构来表示实体及其之间的联系。在这种模型中,数据被组织成由“根”开始的“树”,每个实体由根开始沿着不同的分支放在不同的层次上。树中的每一个结点代表实体型,连线则表示它们之间的关系。根据树形结构的特点,建立数据的层次模型需要满足两个条件: (1)有一个结点没有父结点,这个结点即根结点。 (2)其他结点有且仅有一个父结点。 37
层次模型具有层次清晰、构造简单、易于实现等优点。但由于受到如上所述的两个条件的限制,它可以比较方便地表示出一对一和一对多的实体联系,而不能直接表示出多对多的实体,对于多对多的联系,必须先将其分解为几个一对多的联系,才能表示出来。因而,对于复杂的数据关系,实现起来较为麻烦,这就是层次模型的局限性。层次模型具有层次清晰、构造简单、易于实现等优点。但由于受到如上所述的两个条件的限制,它可以比较方便地表示出一对一和一对多的实体联系,而不能直接表示出多对多的实体,对于多对多的联系,必须先将其分解为几个一对多的联系,才能表示出来。因而,对于复杂的数据关系,实现起来较为麻烦,这就是层次模型的局限性。 采用层次模型来设计的数据库称为层次数据库。 38
2.网状模型 网状数据模型用以实体型为结点的有向图来表示各实体及其之间的联系。其特点是: (1) 可以有一个以上的结点无父结点。 (2) 至少有一个结点有多于一个的父结点。 由于树形结构可以看成是有向图的特例,所以网络模型要比层次模型复杂,但它可以直接用来表示“多对多”联系。然而由于技术上的困难,一些已实现的网状数据库管理系统(如DBTG)中仍然只允许处理“一对多”联系。 39
在以上两种数据模型中,各实体之间的联系是用指针实现的,其优点是查询速度高。但是当实体集和实体集中实体的数目都较多时(这对数据库系统来说是理所当然的),众多的指针使得管理工作相当复杂,对用户来说使用也比较麻烦。在以上两种数据模型中,各实体之间的联系是用指针实现的,其优点是查询速度高。但是当实体集和实体集中实体的数目都较多时(这对数据库系统来说是理所当然的),众多的指针使得管理工作相当复杂,对用户来说使用也比较麻烦。 40
3.关系模型 关系模型与层次模型和网状模型相比有着本质的差别,它是用二维表格来表示实体及其相互之间的联系。在关系模型中,把实体集看成一个二维表,每一个二维表称为一个关系。每个关系均有一个名字,称为关系名。 虽然关系模型比层次模型和网状模型发展得晚,但是因为它建立在严格的数学理论基础上,所以是目前比较流行的一种数据模型。自20世纪80年代以来,新推出的数据库管理系统几乎都支持关系模型,本书讨论的Visual FoxPro就是一种关系数据库管理系统。 41
1.4 关系数据库 1.关系:一个关系就是一个二维表格 2.元组:二维表格每一行的所有数据称为一个元组。在数据 库中称为一个记录(Record)。 3.属性:二维表格每一列的所有数据称为属性。在数据库中 称为一个字段(Fields)。 4.域:属性的取值范围。 5.关键字:属性或属性组合。其值能唯一地标识一个元组。 在关系型数据库中,字段的个数、每个字段的名称、字 段的类型和宽度等要素决定了二维表格的结构,即数据库的 结构,二维表格的记录个数随着数据的增加而增加。 42
关系的特点 关系型数据库应遵循的要求: • 同一数据库中字段名不能相同 • 同一字段的数据类型必须一致 • 在同一数据库中,不能存在两条完全一样的记录 • 行、列顺序可以任意调换 • 数据库中每一项不可再分,即不能出现表中表 43
关系运算 关系数据库中提供了三种关系操作:选择、投影 和 连接。 ⑴ 选择(Selecting)从关系中查找符合指定条件记录的操作。在二维表格的水平方向上选取一个子集,即在数据库中挑出满足条件或范围的记录(用For、While、Next等子句实现) ⑵ 投影(Projection)从关系中选取若干个属性的操作。 在二维表格垂直方向上选取一个子集,即将数据库中指定字段挑出(用Fields子句实现) ⑶ 联接(Join)将两个关系模式的若干属性拼接成一个新的关系模式的操作。按照某个条件将两个数据库文件联接生成一个新的数据库文件(用Join命令实现) 44
1.4 关系数据库 1.4.1 关系模型 1.关系模型的基本概念 (1)关系 一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。在Visual FoxPro中,一个关系对应于一个表文件,其扩展名为.dbf。 (2)元组 二维表的每一行在关系中称为元组。在Visual FoxPro中,一个元组对应表中一个记录。 45
(3)属性 二维表的每一列在关系中称为属性,每个属性都有一个属性名,属性值则是各个元组属性的取值。在Visual FoxPro中,一个属性对应表中一个字段,属性名对应字段名,属性值对应于各个记录的字段值。 (4)域 属性的取值范围称为域。域作为属性值的集合,其类型与范围具体由属性的性质及其所表示的意义确定。同一属性只能在相同域中取值。 46
(5)关键字 关系中能惟一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。单个属性组成的关键字称为单关键字,多个属性组合的关键字称为组合关键字。需要强调的是,关键字的属性值不能取“空值”,所谓空值就是“不知道”或“不确定”的值,因而无法惟一地区分、确定元组。 (6)候选关键字 关系中能够成为关键字的属性或属性组合可能不是惟一的。凡在关系中能够惟一区分、确定不同元组的属性或属性组合,称为候选关键字。 47
(7)主关键字 在候选关键字中选定一个作为关键字,称为该关系的主关键字。关系中主关键字是惟一的。 (8)外部关键字 关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,称此属性或属性组合为本关系的外部关键字。关系之间的联系是通过外部关键字实现的。 (9)关系模式 对关系的描述称为关系模式,其格式为: 关系名(属性名1,属性名2,…,属性名n) 关系既可以用二维表格描述,也可以用数学形式的关系模式来描述。一个关系模式对应一个关系的结构。在Visual FoxPro中,也就是表的结构。 48
2.关系的基本特点 在关系模型中,关系具有以下基本特点: (1)关系必须规范化,属性不可再分割。 规范化是指关系模型中每个关系模式都必须满足一定的要求,最基本的要求是关系必须是一张二维表,每个属性值必须是不可分割的最小数据单元,即表中不能再包含表。 (2)在同一关系中不允许出现相同的属性名。Visual FoxPro不允许同一个表中有相同的字段名。 (3)关系中不允许有完全相同的元组,即冗余。 49
(4)在同一关系中元组的次序无关紧要。也就是说,任意交换两行的位置并不影响数据的实际含义。(4)在同一关系中元组的次序无关紧要。也就是说,任意交换两行的位置并不影响数据的实际含义。 (5)在同一关系中属性的次序无关紧要。任意交换两列的位置也并不影响数据的实际含义,不会改变关系模式。 以上是关系的基本性质,也是衡量一个二维表格是否构成关系的基本要素。在这些基本要素中,有一点是关键,即属性不可再分割,也即表中不能套表。 50