数据库VF期末复习材料
发布时间:2024-08-29
发布时间:2024-08-29
数据库
一、数据库相关概念
1、数据库(Database)存储在计算机存储设备上的有组织可共享的相关数据集合。
2、数据库管理系统(Database Management System,DBMS)是专门用于数据库的建立、使用和维护而配臵的软件。
3、数据库应用系统(DBAS)是系统开发人员利用数据库为基础架构平台开发出来的、面向某一类实际应用的应用软件系统。
4、数据库管理员(DBA)是负责全面实施数据库控制和维护的工作人员。
DBA的主要职责:
参与数据库的规划、设计与建立。
负责数据库系统的安装和升级。
规划和实施数据库的备份与恢复。
控制与监控用户对数据库的存取访问,保障数据库的安全性和稳定性。
监控数据库的运行,进行性能分析、实施优化。
对数据库开发与应用提供技术支持。
5、数据库系统(DBS)指引进数据库之后的计算机系统,实现有组织地、动态的存储大量相关数据,提供数据处理和信息资源共享的便利手段。
二、三种模式两级映射
1、三级模式间的映射
1)外模式/模式映像
它定义了该外模式与模式之间的对应关系。当模式改变时,由数据库管理员对各个外模式/模式映像作相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序可以不必修改,保证了数据与程序的逻辑独立性。
2)模式/内模式映像
它定义了数据库的模式与内模式之间的对应关系。当数据库的存储结构改变时,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必修改,保证了数据与程序的物理独立性。
2、三种模式
模式又称概念模式或逻辑模式,对应于概念级。模式是对数据库中全部数据的逻辑结构和特征的总体描述,
是数据库体系结构的中心与关键。一个数据库只有一个模式。模式是由数据库管理系统提供的数据模式描述
语言(Data Description Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。
外模式又称子模式,对应于用户级。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部
分数据。外模式反映了数据库的用户观。
内模式又称存储模式,对应于物理级。内模式是数据库中全体数据的底层描述。一个数据库只有一个内模式。
内模式由内模式描述语言来描述、定义,它是数据库的存储观。
三、数据模型
1、实体:客观存在并可以相互区别的事物。 例:学生、课程
2、属性:实体所具有的特性。 例:学号、姓名、性别、年龄、籍贯
3、实体间的联系类型
一对一的联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦
然,则称实体集A与实体集B具有一对一联系,记为1:1。 例:班级 - 班长
一对多的联系(1:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(n ≥ 0)与之联系,反
之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有
一对多联系,记为1:n。 例:班级 - 学生
多对多的联系(m:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(n ≥ 0)与之联系,反
之, 对于实体集B中的每一个实体,实体集A中也有m个实体(m ≥ 0)与之联系,则称实体集A与实体
集B具有多对多联系,记为m:n。 例:课程 - 学生
4、在DBMS领域常见的三种数据模型:层次模型、网状模型、关系模型
层次模型:使用树形数据结构表示实体之间的联系的模型。有且只有一个节点无父节点,称为根节点。其他
节点有且只有一个父节点。任意一个节点到树根只有唯一的一条通路。适合表现实体之间的一对多联系。
网状模型:使用网状数据结构表示实体及其之间联系的模型。允许一个以上的节点无父节点。一个节点可以
有多个父节点。任意节点间至少有一条以上通路。层次模型实际是网状模型的一种特殊形式。适合表现实体
之间的多对多联系。
关系模型:用二维表表示数据与数据之间的关系。关系模型有很强的数据表达能力和坚实的数学理论基础,
且数据操作方便,最易被用户接受,以关系模型建立的关系数据库管理系统(RDBMS)是目前的主流DBMS
类型。
四、关系模型
1、关系:数据库中的二维表。 e.g. 学生.dbf
2、元组(记录): 二维表中的一行。
3、属性(字段):二维表中的一列。
4、域(有效性规则):属性的取值范围。 e.g. 性别="男".OR.性别="女"
5、关键字(码,键):能够唯一的标识一个元组的属性或属性集合。关键字又可分为主关键字和候选关键字。 e.g. 学号,身份证号
6、外部关键字(外键):本表的一个字段并非本表的关键字,但是是另一个表的关键字。 e.g. 专业
五、关系运算
1、选择运算(Selection):从关系(表)中找出满足指定条件的元组的操作。选择是从行的角度进行的运算。
2、投影运算(Projection):从关系中指定若干个属性来组成新的关系称为投影。投影是从列的角度进行的运算。
3、连接运算(Join):从两个关系中选取满足条件的元组和属性组成新的更宽的关系模式,称为连接。连接是关系的横向结合。
六、常量与变量
1、在VFP的程序设计语言和命令中,常量可以为数值型、货币型、字符型、日期型、日期时间型、逻辑型六种数据类型。
2、字符型(Character)常量 例: "数据库" '技术’ [应用]
3、日期型(Date)常量 例: {^2009-12-30} 例:{12/30/09}
与日期相关的常用命令:
SET STRICTDATE TO 0 | 1
SET DATE TO 日期格式
SET MARK TO 分隔符字符串
SET CENTURY ON | OFF
4、数据值的输出:
? 数据值在输出窗口另起新行输出。
?? 数据值在输出窗口当前行输出。
可以同时输出多个数据对象,各对象之间以逗号分隔。
例:? "Test" , {^2009-12-01}+1
5、清除内存变量
CLEAR MEMORY 用于清除所有自定义的内存变量。
RELEASE 内存变量名表 用于清除特定名称的内存变量。
RELEASE ALL [EXTENDED] 程序中应加入EXTENDED。
RELEASE ALL LIKE 通配符|EXCEPT通配符 用于清除符合指定模式的内存变量。
6、数组(Array)是内存中一片连续的存储区域,它由一系列元素组成,每个数组元素可通过数组名及相应的下标来访问。 每个数组元素相当于一个内存变量,可以给各元素分别赋值。在VFP中,一个数组中各元素的数据类型可以不同。
DIMENSION 数组名 ( [下标上限1] , 下标上限2 )
例:DIMENSION x(5) DIMENSION y(2,3)
DECLARE 数组名 ( [下标上限1] , 下标上限2 ) 例: declare a(n)
七、表达式
使用=运算符时, 结果与SET EXACT ON | OFF命令的设臵有关。
OFF:右侧字符串与左侧字符串的前向内容匹配,则结果为真。
例:SET EXACT OFF ? "abcde"=="abc" -> .T.
ON:自动在短字符串尾部加入空格,使两者长度相等后比较。
例:SET EXACT ON ? "abc "=="abc" -> .T.
八、索引
1、索引是由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。索引不改变当前数据表记录的物理顺序,而是建立一个与数据表相对应的索引文件,其后缀为idx或cdx。
主索引:在指定的索引字段或表达式中不允许出现重复值的索引。主索引可看做关系的主关键字。 候选索引:索引字段或表达式中不允许出现重复值的其他索引。 候选索引可看做关系的候选关键字。 普通索引:允许字段或表达式的值重复的索引。
唯一索引:仅用于保持兼容性。当字段或表达式的值出现重复时,在索引中只保留一个记录。即索引中表达
式的值是唯一的,而数据表中的字段值是可以重复的。
2、索引类型:单索引文件(*.idx)、结构/非结构复合索引文件(*.cdx)
单索引文件(*.idx):每个单索引文件只能存储一个索引,只能用命令方式建立。 结构/非结构复合索引文件(*.cdx)
每个复合索引文件个可以存储多个索引。如果复合索引文件与表名相同,则称为结构复合索引文件,否则,称为
非结构复合索引文件。
经常使用的索引应建立在结构复合索引文件中,而不经常使用的索引可建立在非结构复合索引文件中。
九、数据完整性
1、数据完整性是指数据库中数据的正确性和一致性。数据完整性用来防止数据库中存在不合法的数据,防止错误的数据进入库中。
2、数据完整性包含三个重要方面:
1)实体完整性:实体完整性是保证表中记录的唯一性,即在一个表中不允许有重复的记录。采用主索引(主关键字)或候选索引(候选关键字)保证数据库表中记录的唯一性。如果一个字段或几个字段的组合能够唯一标识表中的每一条记录,则这样的字段或字段的组合为候选关键字。在一个表中可能会有几个候选关键字,从中只能选择一个作为主关键字。
2)域完整性:数据取值的正确性。它包括数据类型、精度、取值范围以及是否允许空值等。在VFP中,域完整性还可通过表设计器中的“字段有效性”选项组进行定义。
3)参照完整性:数据库中表与表之间存在关键字与外部关键字的约束关系,利用这些约束关系可以维护数据的一致性,即在数据库的多个表之间存在某种参照关系。当A表插入、删除或修改表中数据时,通过参照B表中相关数据,来检查数据的操作是否正确。
为了建立两个数据库表间的参照完整性,首先必须通过数据库设计器建立表间的联系。
一对多的联系:父表(一端)建立主索引,子表(多端)建立普通索引,在数据库设计器中将主索引拖动至普通索引上。
一对一联系:两表相关字段分别建立主索引或候选索引,数据库设计器中将两者关联。
多对多联系:使用纽带表将多对多联系拆分成两个一对多联系。
VFP中参照完整性的建立:
1)参照完整性建立主要使用参照完整性生成器实现。
2)设臵参照完整性之前应首先进行清理数据库操作。
VFP的参照完整性规则
1)更新规则:更新父表中记录时,子表相关记录如何处理。
级联:用新的连接字段值自动修改子表中的相关记录。
限制:若子表有相关记录,禁止修改父表连接字段值。
忽略:随意更新父记录的连接字段值
2)删除规则:删除父表记录时,子表相关记录如何处理。
级联:自动删除子表相关记录。
限制:若子表有相关记录,禁止删除父表中的记录。
忽略:删除父表的记录与子表无关
3)插入规则:子表插入记录时,是否进行参照完整性检查。
限制:若父表无相匹配的连接字段值则禁止插入子记录。
忽略:随意插入子记录。
十、自由表与数据表
1、自由表的概念:自由表即不属于任何数据库的表。当没有打开数据库时建立的表就是自由表。
VFP早期版本所创建的表均为自由表。新版VFP为了兼容早期版本所创建的表文件(*.dbf),因而保留了自
由表功能。在新创建项目中建议使用数据库表而非自由表。可以将自由表添加到数据库中,成为数据库表;也可以将数据库表从数据库中移出,成为自由表。
2、数据库表相对于自由表的优势
可以使用长字段名 。
可以为字段指定标题和添加注释 。
可以为字段指定默认值和输入掩码 。
字段有默认的控件类 。
可以规定字段的域完整性规则。
支持主索引和定义表之间的联系 。
可以规定表间的参照完整性规则。
十一、工作区
1、工作区是VFP为了实现多表操作而提供的表工作环境。VFP共提供了32767个工作区,每个工作区中可以打开一个数据表,如果需要在同一时刻打开多个表进行操作,则需要在不同的工作区打开不同的表。通过使用工作区,用户还可在表间建立临时联系。
2、当前工作区:在任意时刻,只有一个工作区是当前工作区,用户只能在当前工作区对打开的当前库进行操作。如果未指定工作区,系统默认当前工作区始终为编号为1的工作区。每一个工作区都可以并且只能打开一个表。同一个表不允许同时在多个工作区被打开,但在其它工作区中被关闭之后,可以在任意一个工作区中被打开。工作区的建立非永久性,当VFP关闭时已建立的工作区自动清空。
3、指定当前工作区 SELECT 工作区号 | 工作区别名
使用USE命令直接在指定工作区打开表 USE 表名 [IN 工作区号|工作区别名] [ALIAS 自定义别名]
十二、查询与视图
1、查询:即预先定义好的一个SQL查询语句,通过将其保存成查询文件,可以在不同场合反复直接使用,从而提高效率。查询文件为扩展名为.QPR的文本文件。
2、视图:可以看作为一个定制的虚拟表,该虚拟表通过从一个或多个相关联的表中提取有用的数据所构成。视图一经建立就可以像基本表一样使用,适用于基本表的命令都可以用于视图,例如可以在视图中更新数据,因此,视图兼有“表”和“查询”的特点。
3、视图/查询的联系与区别
相似之处
① 都可以用于从一个或多个相关表中提取有用数据。
② 视图和查询均只存储数据的定义,并不存储具体数据
不同之处
① 视图除了可查询数据结果集外,还可用于对原始表的更新。
② 视图的数据源可以是本地数据库,也可以是远程数据库,因此在VFP中视图又分为本地视图和远程视图。
③ 查询以.QPR文件保存,而视图设臵保存于数据库文件中。
4、远程视图的建立
远程视图指以远程数据库表为数据源的视图。
通过远程视图,可以访问和更新本机中或远程计算机中XLS、MDB等非VFP数据库格式的数据。 远程视图建立方法为:
1、首先通过连接设计器建立针对目标数据源的连接
2、使用该连接建立远程视图
十三、面向对象
1、对象(Object)是对具体的客观事物的表示,如某一个人、某一台电脑。
现实世界中的对象都有两个共同特性:状态和行为。
2、方法是描述对象行为的过程,是对当某个对象接受了某个消息(一般也将其称为调用对象的某个方法)后采取的一系列操作的描述。方法通常有一定的触发因素,我们称之为事件(Event)。属性表示事物的状态。
3、类(Class)是对同类对象的相同特征和行为的描述,换言之,这些对象具有相同的属性、方法和事件。可以把类看作生成同类对象的模板,我们可以基于这个模板生成对象,基于某个类生成的对象称为这个类的实例。 原有的类称为父类或基类,而派生出的新类称为子类或派生类。一个子类可以拥有其基类的全部属性和方法,
并能够在基类基础上添加其他特有的属性和方法。
十四、连编应用程序
1、连编是当程序各模块设计完毕后,需要对整个项目进行联合编译,使之成为独立的、可投入使用的应用程序。
2、连编的基本步骤:设臵项目信息—设臵项目的主程序—设臵连编选项—连编及运行
设臵项目信息
在程序连编前,可以通过“项目”菜单-“项目信息”设臵项目的基本信息,重要的基本信息包括:
1)项目开发者的版权信息。
2)最终生成的应用程序的图标。
3)应用程序是否包含调试信息及进行混淆处理。
4)哪些项目文件被编译为可执行文件的一部分。
项目中设臵为“包含”的文件将被编译为只读的可执行文件。
项目中设臵为“排除”的文件将保持可读写状态单独存在。
设臵项目的主程序
一个项目中通常包含多个prg程序文件,最终连编的应用程序必须指定其中一个程序(主程序)作为入口点。 设臵主程序的方法:选择作为主程序的prg文件,右键菜单中选择“设臵主文件”。
主程序中通常应放臵应用程序的初始化信息。如果程序为可视化程序,还应加入运行表单的命令及事件循环控制命令。一个典型的项目主程序文件如:
OPEN DATABASE 教学系统
USE 教师
DO FORM 复选框.scx
READ EVENTS
注意:
主程序中打开的表单ShowWindow属性值应设为2(顶层表单)。
设臵连编选项
点击项目管理器中的"连编"按钮即可打开"连编选项"对话框。
VFP可将项目编译为以下三种文件格式:
1)连编为应用程序(.APP格式)
APP格式应用程序必须依托VFP主程序运行。
2)连编为可执行文件(.EXE格式)
EXE格式应用程序可独立运行(推荐使用)。
3)连编为COM DLL文件(.DLL格式)
DLL动态链接库可以被其他可执行文件调用,不可直接运行。
连编及运行应用程序
在"连编选项"对话框中点击"确定"按钮即可连编应用程序,若未产生错误则连编成功。
EXE可执行文件在使用时的注意事项:
1)可执行文件在运行时需要运行库支持
VFP6.0运行库文件为VFP6R.DLL及VFP6RCHS.DLL。
2)默认情况下,可执行文件运行时将自动打开VFP主程序,若希望不显示VFP窗口,则必须在程序运行目录中加入CONFIG.FPW配臵文件,文件内容为:
SCREEN=OFF