数据库的创建和使用.ppt_第1页
数据库的创建和使用.ppt_第2页
数据库的创建和使用.ppt_第3页
数据库的创建和使用.ppt_第4页
数据库的创建和使用.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,VFP第4章,数据库的创建和使用,2,本章要点,1.掌握数据库的概念、创建、打开和关闭; 2.掌握数据的组成(库表、永久关系、视图、存储过程); 3.掌握库与表之间的链接以及链接的更新和恢复; 4.掌握永久关系的概念、创建和删除、作用; 5.掌握库表字段的扩展属性(格式、掩码、标题和注释)及其设置方法; 6.掌握字段有效性规则、记录有效性规则、表触发器、库表之间参照完整性概念及其设置方法,以及VFP数据完整性概念; 7. 掌握临时关系的概念、建立与解除,以及与永久关系的区别、联系。,3,目录,4.1 VFP数据库 4.2 数据库的设计过程 4.3 建立数据库文件 4.4 数据字典 4.5 数据库表字段的扩展属性 4.6 数据库表的表属性 4.7 表之间的关系 4.8 参照完整性 4.9 使用多个数据库 4.10 * 查看和设置数据库的属性,4,4.1 VFP数据库,数据库是一个容器,是许多相关的数据库表及其关系的集合。 1、数据库表 数据库表与数据库之间的相关性是通过表文件(.dbf)与库文件(.dbc)之间的双向链接实现的。 前链是保存在库文件中的:表文件的路径和文件名信息;后链是保存在表文件中的:库文件的路径和文件名信息; 2、视图 3、连接 指定了远程数据源的名称 4、存储过程 存储过程是保存在数据库中的过程代码。,5,4.2.1 确定建立数据库的目的 数据库中要保存哪些信息 4.2.2 确定需要的表 数据库设计中技巧性最强的一步 4.2.3 确定表的字段 确定每张表中要保存哪些详细信息 原则: a、每个字段直接和表的主题相关 b、不要包含可推导得到和需计算的数据字段 c、收集所需的全部信息 d、以最小的逻辑单位存储信息 e、每张表都必须明确主关键字,4.2 数据库的设计过程,6,4.2.4 确定表之间的关系 在每张独立的表中存储的数据之间有一定的关系,利用关系来查找数据库中有联系的信息。 一、关系的种类 一对多关系(主表XS,子表CJ) 多对多关系(甲表XS,乙表KC;纽带表CJ) 一对一关系(不常用,可简单合并为一张表) 例 二、 分析并确定表之间关系 确定每张表数据和其它表中数据的关系,必要时,可在表中加入字段或创建新表来明确关系 4.2.5 设计的改进,7,例,一个教学数据库管理系统,涉及到学生、课程、教师、任课、学生成绩、专业等实体。 分别用表表示:学生表、教师表、课程表、任课表、学生成绩表、专业代码表。,cj表是xs和kc的纽带表,2个表的关键字都放在这个表中,返回,8,4.3 建立数据库文件,相关文件: 数据库文件 .DBC 数据库备注文件 .DCT 数据库索引文件 .DCX 一、打开数据库设计窗口 1、菜单: 新建命令 2、工具栏:“新建”按钮 3、项目管理器: 数据库-“新建”,9,新建表,添加表,10,二、CREATE DATABASE 数据库名 * CREATE DATABASE sjk1 三、数据库的打开和关闭 open database sjk &打开数据库sjk open database sjk1 &打开数据库sjk1 set database to sjk &设置当前数据库为sjk close database &关闭当前数据库sjk close database all &关闭所有数据库,11,数据字典 是指存储在数据库中用于描述所管理的表和对象的数据,即关于数据的数据。这些数据称为 元数据。 在数据库中的表可以享受到数据字典的各种功能。数据字典使得对数据库的设计和修改更加灵活。 数据字典可以创建和指定一下内容: 表中字段标题、注释、默认值、输入掩码、 显示格式、表单中使用的默认控件类等。 主索引和候选索引关键字等。 字段级和记录级有效性规则、 数据库表之间的永久关系。 长表名和表注释。 存储过程。 插入、更新、删除触发器 。,4.4 数据字典,12,4.5 数据库表字段的扩展属性,字段扩展属性保存在库表所在的数据库文件中,比较数据库表和自由表 多了4部分属性: 显示 字段有效属性 匹配字段类型到类 字段注释,13,4.5.1 字段的显示属性,字段的格式(Format)(表47) 在”格式“框中输入指定的字符,确定字段显示时大小写和样式。(总体指定) 例: !:把字母字符转换为大写字符 输入掩码(Input Mask)(表48) 指定格式(具体指定)每个位置符号的指定 字段的标题(Caption)和注释(Comment) 使表具有更好的可读性 注意:字段名和字段标题的区别,只能输入数字且6位,接受4个汉字或8个字符,14,4.5.2 字段的有效性规则,一、 字段级规则 用来控制用户输入到字段中的信息类型 在字段值改变时发生作用。,注意几点: 1、字段有效性的作用 2、如何设置 3、何时验证规则,15,Math=0 and math=100,16,二、为字段设置默认值: 可以减少数据输入。 1、界面操作,如图 2、*可以用DEFAULT 子句指定。 例: 建表的时候指定默认值 CREATE TABLE ss(xh c(6),xb C(2) DEFAULT “男“) 表已经建好,指定默认值 ALTER TABLE XS ALTER COLU xb SET DEFAULT “男” 3、系统给字段的默认值 P86 表410,17,返回,18,返回,19,4.6 数据库表的表属性,输入长表名,20,4.6.1 长表名 VFP规定最大长度128个字符。 使用长表名打开表前,必须打开所属的数据库。 长表名和文件名可以同样使用 例如:给sx表设置长表名“学生情况表”,则以后打开此表可有2种方法: use xs &此时表的别名是“xs” use 学生情况表 &此时表的别名是“学生情况表 ” 用命令设置长表名* 用CREATE TABLE 命令时用NAME子句指定长表名,21,4.6.2 表记录的有效规则,什么情况下设置 通常是比较同一记录中两个以上字段的值 例:职工表年满20周岁才能参加工作, 在记录有效性 规则中写入: Year(date() - year(csrq) gl+20 何时被激活 记录验证规则的激活时间是:记录指针离开记录时。 字段验证规则的激活时间是:字段输入完或光标离开时。 可以使用命令设置,22,4.6.3 表的触发器 什么是表的触发器 是记录级事件代码。会在事件(插入、更新或删除操作)之后运行的代码。不同事件对应不同的代码操作。 触发器何时被激活 触发器是绑定在表上的,当表中的任何记录被操作时,触发器被激活。 触发器在记录的验证规则之后运行。 例1) 只招收外语系学生: 插入触发器: ximing =外语系 例2) 只允许删除工龄超过30年的职工记录: 删除触发器: year(date()-year(gzrq) 30 可以用命令创建各触发器,23,有3个触发器 1、插入触发器 插入或追加记录时触发该规则 2、更新触发器 修改记录时触发该规则 3、删除触发器 删除记录时触发该规则,24,4.6.4 约束机制及其激活时机 库表的字段级和记录级规则及触发器,为数据的输入和修改实施了约束。 激活时机(P.89 表 4-11) 1、字段有效规则:字段级 2、记录有效规则:记录级 3、触发器: 表级,25,4.7 表之间的关系,库表之间的永久关系 在数据库表之间建立的关系,并作为数据库的一部分保存起来,称为永久关系。 永久性关系通过索引建立 一对多关系中 主表必须用主索引或侯选索引, 子表则使用普通索引。 一对一关系中 两表都必须是主或侯选索引,26,永久性关系的作用: 1、在查询或视图设计器中自动作为默认联接条件 2、作为表单和报表的默认临时关系 3、用来存储参照完整性信息 永久性关系的建立: 在数据库设计器中建立 通过命令建立,27,永久关系,28,29,4.8 参照完整性,4.8.1 参照完整性(RI)概念 是用来控制数据的一致性,尤其是控制数据库相关表之间的主关键字和外部关键字之间数据一致性的规则。 数据一致性的三个规则: 子表中的每一个记录在对应的主表中必有一个父记录; 在父表中修改记录时,如果修改了主关键字的值,则子表中相关记录的外部关键字值必须同样修改; 在父表中删除记录时,与该记录相关的子表的记录必须全部删除。,30,4.8.2 设置参照完整性 它建立在永久关系基础上,规则代码存于存储过程中 在“数据库设计器”中右击关联线或利用菜单进行设置,31,参照完整性规则有三种:更新、删除、插入。 每一种规则又具体分为:级联、限制、忽略。,32,参照完整性规则(见P.92表4-12),33,注:主表作删除标记,子表也自动加删除标记,34,4.8.3 数据完整性综述 三类完整性:实体、参照和用户自定义完整性。 实体完整性:字段级和记录的完整性;分别通过字段和记录的有效性规则实施。 参照完整性:相关表之间的数据一致性; 用户自定义完整性:用户通过编程实现的对数据完整性的约束。,35,4.9 使用多个数据库,1、打开多个数据库 命令: OPEN DATABASE 库名1 OPEN DATABASE 库名2 OPEN DATABASE 库名3 窗口方式打开,与打开一个数据库相同,多次操作。 open database sjk open database sjk1,36,2、设置当前数据库 最近一次打开的数据库是当前数据库 设置当前数据库 从“常用”工具栏的“数据库”下拉列表中选择 或命令:SET DATABASE TO 库名 测试函数 DBC() &返回当前打开的数据库的文件名 DBUSED() &返回指定的数据库文件是否已经打开,返回值为.t.或.f. 例 : ? DBUSED(sjk) 值为.T. 表示打开,37,3、使用数据库中的表 格式:USE 库名!表名 例: use sjk!xs 注意: 如果数据库sjk是当前的,则可以用use xs 。 如果数据库sjk不是当前的,虽然已打开sjk,必须用 use sjk!xs 打开表,表所在的数据库会随着打开,例: use xs &表在数据库sjk中 ? DBUSED(sjk) & 显示.T.,38,4、关闭数据库 使用“项目管理器” CLOSE DATABASES &关闭当前数据库和表 CLOSE DATABASES ALL &关闭所有的数据库 及自由表、索引 CLOSE ALL &关闭所有的数据库及 自由表、索引、各种设计器,39,4.10 * 查看和设置数据库的属性,一、DBGETPROP()函数 (书 P.93) 返回当前库的属性或库中字段、表或视图的属性 语法:DBGETPROP(cName,cType,cProperty) 例: ? DBGETPROP(“cj.cj”,“FIELD”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论