您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第4章vfp数据库基础
第4章数据库和表的进一步讨论第4章数据库和表的进一步讨论学习目的与要求:数据模型是数据库管理系统建立的依据,其中的关系模型是目前绝大多数数据库管理系统(包括VisualFoxPro)使用的数据模型;而数据库设计又是建立数据库系统的核心技术。本章对三种数据模型的特点及关系数据库的相关概念进行了简单介绍,并阐述了数据库设计的基本过程。另外针对VisualFoxPro可多表同时操作的特点,介绍了工作区和多表操作的有关概念及相关操作。要求在理解并掌握本章介绍的概念的同时,学会使用多种方法打开表、建立表间的各种关系,为后续的学习奠定基础。第4章数据库和表的进一步讨论4.1有关数据库的一些理论知识4.2工作区和多表操作4.3本章习题4.1有关数据库的一些理论知识数据模型是数据库管理系统建立的依据,数据模型不同,相应的数据库系统就完全不同,任何一个数据库管理系统都是基于某种数据模型的。数据模型中的关系模型是目前绝大多数数据库管理系统使用的数据模型;通过关系数据模型建立的数据库称为关系数据库。4.1.1数据模型和关系数据库1.数据模型客观世界存在着各种事物,而事物与事物之间是彼此相互联系的。我们把现实世界中客观存在并且相互区别的事物称为实体。实体可以是具体的事物,也可以是抽象的事物。比如教师、学生是具体事物,而讲一门课、学生选课则是抽象的事物。实体之间的对应关系称为联系,它反映了现实世界各个事物之间的相互关系。实体之间的联系可分为三种类型,即一对一联系、一对多联系和多对多联系。例如一个班有一个班长,班和班长之间就是一对一的联系;一个班有多名学生,而这些学生都属于同一个班,班和学生之间就存在一对多的联系;一名学生可以选修多门课程,一门课程又可以被多名学生选修,学生和课程之间就是多对多联系。数据模型是客观事物及其联系的数据描述,它应具有描述数据和数据联系的两方面功能。数据模型是定义数据库的依据,数据模型不同,相应的数据库系统就完全不同,任何一个数据库管理系统都是基于某种数据模型的。数据库管理系统常用的数据模型有下列三种:层次模型、网状模型和关系模型。(1)层次模型用树形结构表示数据及其联系的数据模型称为层次模型。层次模型的基本特点为:有且仅有一个节点无父节点,称其为根节点。根节点以外的其他节点有且只有一个父节点。支持层次数据模型的DBMS称为层次数据库管理系统,在这种系统中建立的数据库是层次数据库。层次模型可以直接方便地表示一对一联系和一对多联系,但不能用它直接表示多对多联系。(2)网状模型用网络结构表示数据及其联系的数据模型称为网状模型。网状模型是层次模型的拓展,网状模型的节点间可以任意发生联系,能够表示各种复杂的联系。网状模型的基本特点:有一个以上的节点无父节点。至少有一节点有多于一个的父节点。支持网状模型的DBMS称为网状数据库管理系统,在这种系统中建立的数据库是网状数据库。网络结构可以直接表示多对多联系,这也是网状模型的主要优点。(3)关系模型人们习惯用表格形式表示一组相关的数据,既简单又直观。如由行与列构成的二维表,在数据库理论中称为关系,用关系表示的数据模型称为关系模型。在关系模型中,实体和实体间的联系都是用关系表示的,也就是说,二维表格中既存放着实体本身的数据,又存放着实体间的联系。关系不但可以表示实体间一对多的联系,通过建立关系间的关联,也可以表示多对多的联系。在关系模型中,关系具有以下基本特点:关系中的每一列(属性)都是不可再分的基本元素,称为关系的规范化。在同一关系中不允许出现相同的属性(列)名。在同一关系中元组及属性(即各行之间、各列之间)的顺序可以任意变动,不影响表格信息。每列具有相同的数据类型。任意两行的内容不能完全相同。与层次模型和网状模型相比,关系模型具有数据结构单一、理论严密、使用方便、易学易用的特点,因此,目前绝大多数数据库系统的数据模型,都是采用关系数据模型,关系模型成为数据库应用的主流。2.关系数据库用二维表的形式表示事物之间的联系的数据模型就称为关系数据模型,通过关系数据模型建立的数据库称为关系数据库。VisualFoxPro就是一种典型的关系型数据库管理系统。(1)关系术语①关系一个关系就是一张二维表,每个关系都有一个关系名,如学生成绩、选课等。②元组二维表的每一行在关系中称为元组。在VisualFoxPro中,一个元组对应表中一个记录。③属性二维表的每一列在关系中称为属性,每个属性都有一个属性名,属性值则是各个元组属性的取值。在VisualFoxPro中,一个属性对应表中一个字段,属性名对应字段名,属性值对应于各个记录的字段值。④域属性的取值范围称为域。域作为属性值的集合,其类型与范围具体由属性的性质及其所表示的意义确定,同一属性只能在相同域中取值。⑤关键字关系中能唯一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。单个属性组成的关键字称为单关键字,多个属性组合的关键字称为组合关键字。需要强调的是,关键字的属性值不能取“空值”,所谓空值就是“不知道”或“不确定”的值,因而无法唯一地区分、确定元组。⑥候选关键字关系中能够成为关键字的属性或属性组合可能不是惟一的。凡在关系中能够唯一区分、确定不同元组的属性或属性组合,称为候选关键字。⑦主关键字在候选关键字中选定一个作为关键字,称为该关系的主关键字。关系中主关键字是唯一的。⑧外部关键字关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,称此属性或属性组合为本关系的外部关键字。关系之间的联系是通过外部关键字实现的。⑨关系模式对关系的描述称为关系模式,其格式为:关系名(属性名1,属性名2,…,属性名n)关系既可以用二维表格描述,也可以用数学形式的关系模式来描述。一个关系模式对应一个关系的数据结构,也就是表的数据结构。(2)关系运算在关系数据库中查询用户所需数据时,需要对关系进行一定的关系运算。关系运算主要有选择、投影和联接三种。选择(Selection)运算是从关系中查找符合指定条件元组的操作。投影(Projection)运算是从关系中选取若干个属性的操作。联接(Join)运算是将两个关系模式的若干属性拼接成一个新的关系模式的操作,对应的新关系中,包含满足联接条件的所有元组。①选择(Selection)选择运算是从二维表格中选取若干行的操作,在数据库表中则是选取若干个记录的操作。在VisualFoxPro中,通过命令子句FOR逻辑表达式、WHILE逻辑表达式和设置记录过滤器实现选择运算。②投影(Projection)投影是从二维表格中选取若干列的操作,在数据库表中则是选取若干个字段。在VisualFoxPro中,通过命令子句FILEDS字段表和设置字段过滤器,实现投影运算。③联接(Join)联接是将两个二维表格中的若干列,按同名等值的条件拼接成一个新二维表格的操作。在数据库表中则是将两个表的若干字段,按指定条件(通常是同名等值)联接生成一个新的表。在VisualFoxPro中,联接运算是通过JOIN命令和SELECT–SQL命令来实现的。4.1.2关系数据库设计理论初步数据库应用系统的设计是指创建一个性能良好的、能满足不同用户使用要求的、又能被选定的数据库管理系统所接受的数据库以及该数据库上的应用程序,而其中的核心问题是数据库的设计。数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建立中的核心技术。具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。数据库设计的主要内容包括结构特性设计和行为特性设计。前者是指数据库总体概念的设计,它应该是具有最小数据冗余的、能反映不同用户数据需求的、能实现数据共享的系统。后者是指实现数据库用户业务活动的应用程序的设计,用户通过应用程序来访问和操作数据库。按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下6个阶段:需求分析阶段概念结构设计阶段逻辑结构设计阶段物理结构设计阶段数据库实施阶段数据库运行和维护阶段4.1.3数据库设计的基本过程1.需求分析需求分析是数据库设计的第一阶段。需求分析的任务是通过调查研究,了解用户的数据要求和处理要求,与用户达成共识,然后分析与表达这些需求,进而形成需求说明书。2.概念结构设计概念结构设计是数据库设计的第二阶段,其目标是对需求说明书提供的所有数据和处理要求进行抽象与综合处理,按一定的方法构造反映用户环境的数据及其相互关系的概念模型,它是整个数据库设计的关键。3.逻辑结构设计逻辑结构设计阶段的设计目标是把上一阶段得到的概念数据模型转换成等价的、为某个特定的数据库管理系统所接受的概念模式,并以此为基础建立相应的外部模式。在转换过程中要进一步落实需求说明,并满足数据库管理系统的各种限制。逻辑设计阶段的结果是选定的数据库管理系统提供的数据定义语言(DDL)写成的数据模式。逻辑结构设计的具体方法与数据库管理系统的逻辑数据模型有关。4.物理结构设计逻辑设计完成后,下一步的任务就是进行系统的物理结构设计。物理结构设计是在计算机的物理设备上确定应采取的数据存储结构和存取方法,以及如何分配存储空间等问题。当确定下来之后,应用系统所选用的DDL把逻辑设计的结果描述出来,并将源模式变成目标模式。由于目前使用的DBMS基本上是关系型的,物理设计的主要工作是由系统自动完成的,用户只要关心索引文件的创建即可。5.数据库的实施和维护该阶段的主要工作有以下几个方面:(1)应用程序设计与编写(2)组织数据入库(3)应用程序的调试与运行(4)数据库的运行和维护4.2工作区和多表操作用USE命令可以打开一个新的表文件,但同时也就关闭了前面已打开的表文件。在实际应用中,用户常常需要同时打开多个表文件,以便对多个表文件的数据进行操作。为了解决这一问题,VisualFoxPro引入了工作区的概念。VisualFoxPro允许用户对多个表文件同时进行操作,在表间建立临时关系和永久关系。4.2.1工作区1.工作区的概念VisualFoxPro允许最多可以同时打开32767个数据表文件,每个打开的表文件都在内存中开辟一个存储区域,这个存储区域就叫做工作区。VisualFoxPro规定在一个工作区只能打开一个表文件,因此共有32767个工作区可以使用。系统任何时候只能选择一个工作区进行操作,当前正在操作的工作区称为当前工作区,在当前工作区打开的数据表称为当前表。VisualFoxPro启动后,系统默认第一个工作区为当前工作区,也可以通过工作区选择命令选择其他工作区为当前工作区。另外还可以不关闭已打开的数据表,在其他工作区打开另一个数据表文件。2.工作区的选择每一个工作区可用工作区号或别名来标识。(1)工作区号利用数字1~32767来标识32767个不同的工作区。(2)别名•前10个工作区用A~J10个字母来标识。•采用该工作区中已打开的表文件名或库名来作别名。•用户在打开表文件的同时自己定义别名。打开表文件的同时定义工作区别名的命令格式如下:【命令格式】:USE表文件名[ALIAS工作区别名][NOUPDATE]【说明】:命令中的可选项[ALIAS工作区别名]即为用户自定义的工作区别名,若无此可选项,则表文件名被默认为当前工作区的别名;[NOUPDATE]可选项表示不允许修改打开的表文件的结构。当系统启动时,1号工作区是当前工作区,若想改变当前工作区,则可使用SELECT命令来转换当前工作区。【命令格式】:SELECT工作区号|工作区别名【功能】:选择一个工作区作为当前工作区。【说明】:选择工作区时,可以直接指定工作区号,也可以通过工作区别名指定工作区,二者是等效的。执行该命令后,对任何工作区中的表文件及记录指针均不发生影响,仅实现各个工作区之间的切换。此命令允许选用0号工作区,即命令SELECT0,表示选用当前未使用过的工作区中编号最小的工作区作为当前工作区。【例4.1】在第2区打开“学生”表,使其记录指针指向第2
本文标题:第4章vfp数据库基础
链接地址:https://www.777doc.com/doc-2156392 .html