收藏 分享(赏)

VFP4 数据库的创建和使用.ppt

上传人:weiwoduzun 文档编号:5165215 上传时间:2019-02-11 格式:PPT 页数:30 大小:263.50KB
下载 相关 举报
VFP4 数据库的创建和使用.ppt_第1页
第1页 / 共30页
VFP4 数据库的创建和使用.ppt_第2页
第2页 / 共30页
VFP4 数据库的创建和使用.ppt_第3页
第3页 / 共30页
VFP4 数据库的创建和使用.ppt_第4页
第4页 / 共30页
VFP4 数据库的创建和使用.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、VFP 第四章,数据库的创建和使用,4.1 VFP数据库,1、概念包括数据库表、视图以及表之间的关系、存储过程等相关内容的集合。,4.2 数据库的设计过程,步骤:1、确定建立数据库的目的2、确定所需的表3、确定所需字段4、确定表之间的关系5、改进设计,1、确定建立数据库的目的数据库中要保存哪些信息 2、确定需要的表数据库设计中技巧性最强的一步要避免在一张表中存储重复的信息 3、确定表的字段确定每张表中要保存哪些详细信息原则:a、每个字段直接和表的主题相关b、不要包含可推导得到和需计算的数据字段c、收集所需的全部信息d、以最小的逻辑单位存储信息e、每张表都必须明确主关键字,4、确定表之间的关系*

2、关系的种类:一对多关系(主表XS,子表CJ)多对多关系(甲表XS,乙表KC;纽带表CJ) 一对一关系(不常用) 5、改进设计,4.3 创建数据库,1、数据库的创建扩展名:库文件.DBC 备注文件.DCT 索引文件.DCX 创建方式:a、界面操作方式 b、命令方式 CREATE DATABASE 数据库名 2、数据库的组成A、数据库表 1、 数据库与表之间的双向链接 ( 前链、后链)2、 在数据库中添加、新建和移去表 a、通过项目管理器 b、通过命令方式 open database 库文件名 ADD TABLE 自由表文件名 REMOVE TABLE 数据库表名 DELETE,3、更新表和数据库

3、之间的链接 * 链接被破坏后,可重建链接或删除链接 * 删除后链 FREE TABLE 表文件名 B、库表之间的永久关系1、定义:永久性关系通过索引建立数据库表所特有的一 种关系*主表必须用主索引或侯选索引 *子表则使用普通索引 *如是一对一关系,则两表都必须是主或侯选索引,永久性关系的作用:1、用来存储参照完整性规则 2、在查询或视图设计器中自动作为默认联接条件 3、作为表单和报表的默认临时关系 永久性关系的建立:1、在数据库设计器中建立2、通过命令建立 在创建表时建立 CREATE TABLE cj(xh c(6),kcdh c(6),cj n(3,0),; FOREIGN KEY xh

4、TAG cjxh REFEREN xs) 两张表都已经存在 ALTER TABLE cj ADD FOREIGN KEY xh; TAG cjxh REFEREN xs,C.视图:把分散在相关表中的数据通过联接条件把它们 收集到一起,构成一张虚表,即视图。特点:基表内容可以更新。 D.存储过程:保存数据库中的过程代码的地方。包括用户自定义函数、参照完整性代码等。代码保存在.DBC文件中。创建、修改或移去存储过程的方法:1、项目管理器2、数据库设计器3、命令MODIFY PROCEDURE,数据字典:是包含数据库中所有信息的一张表, 记录了数据库中数据的一些信息。 元数据:存储在数据字典中的信息

5、,是记录数据的数据 数据字典可创建和指定的内容: 主关键字和侯选索引关键字 表单的默认控件类 永久性关系 字段的输入掩码和显示格式 长表名和表中的长字段名 字段级和记录级有效性规则、触发器 字段的标题、注释、默认值 存储过程,4.4数据字典,4.5数据库表字段的扩展属性,字段基本属性:(字段名、类型、宽度、小数位数) 扩展属性包括:字段的显示格式、输入掩码、默认值、 注释以及字段的验证规则。 字段扩展属性保存在库表所在的数据库文件中,4.5.2 字段验证规则,1.字段级规则 作用: 控制用户输入到字段中的信息类型,或检查其它字段值的字段数据。 *字段级规则在字段值改变时检查规则并发生作用。 *

6、把所输入的值用所定义的规则表达式进行验证,如 输入的值不满足规则要求,则拒绝该值。 *字段规则表达式必须返回.T.或.F. 字段验证中的信息框内容可作为出错信息(演示) 设置方法: 表设计器 CREATE TABLE 命令带CHECK子句 ALTER TABLE 命令带SET CHECK子句,2.默认值 作用: 添加记录时,字段所具有的最初的值 是系统自动的默认值;可将之置为 .NULL. 可减少用户的输入工作量创建字段默认值 表设计器 “字段属性” CREATE TABLE命令带DEFAULT子句 ALTER TABLE命令带SET DEFAULT子句,4.6 数据库表的表属性,数据库表不仅

7、可以设置字段的扩展属性,且可为表设置属性。表属性: 长表名 表注释 表记录的有效性规则及说明 触发器,4.6.1 长表名,命名规则 第一字符必须是字母、下划线或汉字 表长度规定 受操作系统的限制,最长128个字符 关于表的打开 使用长表名打开表,表所属数据库必须打开并且是当前数据库,否则将不能成功打开。 而使用表文件名打开表时,如果所属数据库未打开,将会自动打开数据库 如未指定表的别名,则USE 命令打开的表名称即为别名,4.6.2 表记录的验证规则,何时设置 用来控制用户输入到记录中的信息,通常比较同一记录中的两个或多个字段值。 记录规则表达式必须返回.T.或.F. 何时被激活 在记录指针移

8、离记录时。 增加记录有效规则,默认要对现有记录进行检查 如何设置 表设计器“表”选项卡 CREATE TABLE 表名(字段描述,CHECK子句) ALTER TABLE 表名 SET CHECK子句,4.6.3 表的触发器,1. 基本概念:“表触发器” (Trigger)是在一个插入、更新或删除操作后运行的记录级事件代码。 Trigger是绑定在表上的规则表达式(触发器必须返回.T.或.F.),当表中的任何记录被指定的操作命令修改时,触发器被激活。触发器在进行了其它所有检查之后被激活。 与字段级规则和记录级规则不同,触发器不对缓冲数据起作用。,2. 创建表的触发器: 三个触发器 插入(INS

9、ERT)触发器: 每次向表中插入或追加记录时触发该规则; 更新(UPDATE)触发器: 每次在表中修改记录时触发该规则; 删除(DELETE)触发器: 每次在表中删除记录时触发该规则。 创建方法 表设计器 “表”选项卡 命令 CREATE TRIGGER ON 表名 FOR INSERT AS 逻辑表达式 CREATE TRIGGER ON 表名 FOR UPDATE AS 逻辑表达式 CREATE TRIGGER ON 表名 FOR DELETE AS 逻辑表达式 *当逻辑表达式值为.F.时激发触发器 例:在JS 表中创建更新触发器,防止GL字段值大于50(不大于)CREATE TRIGGE

10、R ON JS FOR UPDATE AS GL=50,3. 移去或删除触发器: 操作方法 表设计器 “表”选项卡 命令 DELETE TRIGGER ON 表名 FOR DELETE|INSERT|UPDATE 如果从数据库中移去或删除表, 则所有属于该表的触发器都从数据库中删除,Ex:当库表移出数据库后,仍然有效的是 。 A字段的默认值 B字段的验证规则 C结构复合索引 D记录的验证规则,数据库表的字段级和记录级规则以及表的触发器,为数据的输入和修改实施了约束。,4.6.4 库表的约束机制及激活时机,4.7 相关表之间的参照完整性,参照完整性(Referential Integrity),

11、是用来控制数据的一致性,尤其是控制数据库相关表之间的主关键字和外部关键字之间数据一致性的规则。三个规则: 1.子表中的每一个记录在对应的父表中必须有一个父记录。 (如XS(主表),CJ(子表) 2.在父表中修改记录时,如果修改了主关键字的值,则子表中相关 记录的外部关键字值必须同样修改。(否则也会违反规则1) 3.在父表中删除记录时,与该记录相关的子表中的记录必须全部删 除。(否则也会违反规则1)孤立记录:在一对多关系中,当用户对主表进行添加、修改或删除记录 时,或修改子表的记录时,子表中的某些记录在主表中没有对应的父记录,4.7.1 基本概念,注意事项: 相关表之间的参照完整性规则是建立在永

12、久关系基础上的 参照完整性规则被设置在主表或子表的触发器中 规则的代码被保存在数据库的存储过程中。 设置 右击永久关系的连线选“参照完整性” 三种规则 更新规则(父动)、删除规则(父动)、插入规则(子动) 三种设置 级联、限制、忽略 例:建立JS和RK间的永久性关系、 设置参照完整性(更新/级联),4.7.2 设置参照完整性,4.7.3 VFP数据完整性综述,三类完整性 实体完整性(系统自动支持) 字段的数据完整性字段的有效性规则 记录的数据完整性记录的有效性规则 参照完整性(系统自动支持) 相关表之间的数据一致性 用户自定义完整性(用户编程) 由用户通过编程实现对数据完整性的约束,Ex:以下

13、哪一操作将造成相关表之间数据的不一致 。 A在主表中插入记录的主关键字的值是子表所没有的 B在主表中删除了记录,而在子表中没有删除相关记录C在子表中删除了记录,而在主表中没有删除相关记录D用主表的主关键字字段的值修改了子表中的相关字段值,4.8 使用多个数据库,1.打开多个数据库 OPEN DATABASE 2.设置当前数据库 所有打开的数据库中,只有一个是当前数据库 在打开数据库时,最后一个打开的数据库为当前数据库 也可以把其它数据库设置为当前数据库,设置方法: 界面(工具栏) SET DATABASE TO 相关函数 测试当前数据库名DBC( ) 测试数据库是否打开DBUSED( ),3.

14、使用数据库中的表 使用USE命令可以打开数据库表和自由表 如果打开的是数据库表,则系统会首先自动打开表所属的数据库(但不是当前数据库) USE 打开非当前数据库中的表 USE ! 4.关闭数据库 项目管理器中先选中数据库名,然后关闭 CLOSE DATABASES &关闭当前数据库和表 说明:若没有当前数据库,则关闭所有工作区内所有打开的自由表、索引和格式文件,并选择工作区1为当前工作区 CLOSE DATABASE ALL CLOSE ALL,4.9 查看和设置数据库的属性,返回当前数据库的属性,或者返回当前数据库中字段、表或视图的属性 例: ?dbgetprop(“js“, “Table“

15、, “PrimaryKey“) ?dbgetprop(“js.gh“, “field“, “caption“) ?dbgetprop(“js.gh“, “field“, “Comment“) ?dbgetprop(“js.gh“, “field“, “default“),4.9.1 DBGETPROP ( ) 函数,可以给当前数据库或当前数据库中表的字段、表或视图设置属性。 该函数只能设置部分属性,对于表来说可以设置字段的标题和注释。 例: dbsetprop(“zy.zydh“,“field“,“caption“,“专业代号“) dbsetprop(“zy.zydh“,“field“,“co

16、mment“,“标识专业“),4.9.2 DBSETPROP ( ) 函数,4.10 建立表之间的临时关系,在打开的表之间用SET RELATION建立的临时性关系 作用:父表指针的移动会使子表指针相应移动; 注意:子表指针移动不会使父表指针相应移动。 临时关系和永久关系之间的联系区别 联系: 默认性:永久关系常被作为默认的临时关系 区别: 1、临时关系用于控制表之间的记录访问;永久关系用来存储表之间的参照完整性 2、临时关系在表打开之后使用SET RELATION创建,随表关闭而解除;永久关系永久保存在数据库中 3、临时关系可在任何表间建立;永久关系只存在于库表间 4、临时关系中一张表不能有两张主表,永久关系则不然。,4.10.1 临时关系,4.10.2 建立临时关系,建立临时关系的条件 两表必须为一对多关系或一对一关系子表必须按照与主表相关联的字段建立索引 利用“数据工作期”窗口建立 使用 SET RELATION 命令 SET RELATION TO 字段表达式 INTO 区号|别名 步骤: SELE 0 USE CJ ORDER CJXH &如无索引则需创建 SELE 0 USE XS SET RELA TO XH INTO CJ,4.10.3 解除临时关系,SET RELATION TO SET RELATION OFF INTO 工作区 |别名 关闭主表或子表,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 数据库

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报