




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 数据库的创建和使用,本章知识点:数据库的创建、使用与维护 4.1 VFP数据库概述 4.2 数据库的创建 4.3 数据库的使用 4.4 VFP数据字典概述 4.5 数据库表 4.6 永久关系与参照完整性 4.7 有关数据库操作的常用函数,4.1 VFP数据库概述,数据库是一个容器,是许多相关的数据库表及其关系的集合。 数据库中的表并不是彼此独立的。 可借助一个公共字段将关联的表联系起来,建立表与表之间的“关系”。,4.2 数据库的创建,可在数据库中存储一系列的表,在表间建立关系,设置属性和数据有效性规则 创建一个数据库将生成三个文件:数据库文件(.dbc),与数据库关联的数据库备注文件(.dct)和数据库索引文件(.dcx) 数据库文件并不在物理上包含任何附属对象,仅存储了指向表文件的路径指针 数据库的创建 数据库的组成(数据库表,视图,连接,存储过程),数据库的创建,界面方式 (1) “项目管理器”-“数据库”-“新建”, 则打开“新建”对话框-输入数据库名-“保存”, 出现“数据库设计器”窗口和“数据库设计器”工具栏 (2) “新建”-“数据库 (不属于项目) 命令方式 CREATE DATABASE 数据库名|? 数据库名:则创建数据库,并处于打开状态,但不出现数据库设计器 ?:自动打开“新建”对话框 (不属于项目),数据库的组成数据库表,数据库表:从属于某一个数据库的表 与自由表相比,数据表具有许多扩展功能和管理特性 数据库表与数据库之间的相关性是通过双向链接实现的,数据库的组成视图(view),设计表时,要将数据按主题分解到不同的表中,使用时,要将分散在相关表中的数据通过联接条件将它们收集在一起,构成一张“虚表”。 视图就是一种“虚表”,其数据来源于一张或多张表。 视图兼有表和查询的特点:与查询类似可以从一张或多张相关联的表中提取有用信息,与表类似可以更新其中的信息并将更新结果永久保存在磁盘上。 视图可分为本地视图和远程视图,数据库的组成连接(connection),连接是保存在数据库中的一个定义,它指定了远程数据源的名称。 一个远程数据源通常是一个远程数据库服务器或文件,并且已为它在本地安装了ODBC驱动程序和设置了ODBC数据源名称。 建立远程数据连接的目的是为了创建远程视图,通过使用远程视图无需将所有记录下载到本地计算机上即可提取远程ODBC服务器上的数据子集。 连接远程数据源的方法:(1)直接访问在机器上注册的ODBC数据源;(2)用“连接设计器”设计自定义连接。,数据库的组成存储过程,存储过程是保存在数据库中的过程代码,由一系列用户自定义函数或在创建表与表之间参照完整性规则时系统创建的函数组成。 若要经常对数据库中的数据进行一些相似或相同的处理,可将这些代码编写成自定义函数并保存到存储过程中。 创建、修改或移去存储过程的方法有:(1)项目管理器 (2)数据库设计器窗口:数据库菜单-编辑存储过程(3)命令窗口:modify procedure命令 利用存储过程可提高数据库的性能,打开数据库时该数据库包含的存储过程被自动加载到内存中。,4.3 数据库的使用,1、打开数据库 2、设置当前数据库 3、检查数据库的有效性 4、关闭数据库 5、删除数据库,打开数据库,新建的数据库,保存后自动打开 打开数据库表时,系统也会自动打开相应的数据库 项目管理器中打开,同时出现数据库设计器窗口 打开一个项目,系统自动打开项目所包含的数据库(关闭项目时数据库也同时关闭) 命令:open database DataBaseName exclusive|shared noupdate validate exclusive|shared:缺省时以独占方式打开 validate:打开数据库时进行数据库的有效性检验 可多次使用该命令同时打开多个数据库 open database db1 open database db2 open database db3,设置当前数据库,在所有打开的数据库中,只有一个是当前数据库,在打开数据库时,最后一个打开的数据库为当前数据库 当前数据库的设置 (1)界面:常用工具栏 (2)命令:set database to DatabaseName,检查数据库的有效性,若用户移动了数据库文件(.dbc.dct.dcx)或数据库表文件,可能会破坏数据库和库表之间的双向链接。 命令validate database可检查数据库的有效性和更新链接 validate database recover to printer|to file FileName recover:更新链接,缺省时仅检查数据库的有效性,更新链接时若库表文件不在原位,则打开检查数据库对话框,要求进行文件的定位 to:检查结果的去向,缺省时在VFP主窗口显示 注:只能处理以独占方式打开的当前数据库,关闭数据库,界面:项目管理器 命令:close database close database &关闭当前数据库(库表同时被关闭),若没有打开的数据库,则关闭所有工作区内所有打开的自由表、索引和格式文件,将当前工作区设置为1号工作区 close database all &关闭所有打开的数据库,删除数据库,删除数据库将删除存储在数据库中的一切信息(存储过程、视图、表之间的关系、库表的扩展属性等) 项目管理器:移去(库表自动变为自由表) 资源管理器或delete file命令(不会删除库表中的链接信息,可用命令free table 删除后链,使库表成为自由表)最好不用此方式!,4.4 VFP数据字典概述,数据字典:是指存储在数据库中用于描述所管理的表和对象的数据,即关于数据的数据(元数据)。 数据字典使得对数据库的设计和修改更加灵活,可以创建和指定以下内容: 表中字段的标题、注释、默认值、输入掩码和显示格式,以及表单中使用的默认控件类等。 表的主索引关键字。 库表之间的永久性关系 长表名和表注释 字段级和记录级有效性规则 存储过程 插入、更新和删除事件的触发器,4.5 数据库表,1、数据库表的创建 2、数据库表的字段扩展属性 3、数据库表的表属性 4、数据库表的约束机制及其激活时机 5、数据库表的添加与移去 6、数据库表的索引 7、有关数据库及数据库表的几点说明,数据库表的创建,界面: (1) “项目管理器”-“JXSJ数据库”并展开-“表”-“新建”-“库表设计器” (2)数据库处于打开状态,“数据库设计器”工具栏-“新表”按钮 (3)数据库处于打开状态,“数据库”菜单-“新建表”命令 命令:create table-SQL Open database jxsj Create table xsa name 学生表之一 (xh c(7),xb c(2) Create table xsb free(xh c(7),xb c(2) Name子句:指定长表名 Free子句:指定该表为自由表,且不包含在项目中,数据库表的字段扩展属性,字段的基本属性(库表和自由表均具有) 字段名、类型、宽度、小数位数 库表的扩展属性 (1)字段的显示属性:指定输入和显示字段时的格式 字段格式、输入掩码、标题和注释 (2)字段的验证:限定字段的取值及取值范围 字段有效性规则、有效性信息、字段的默认值,扩展属性可在表设计器中设置,有些属性也可用create table-sql,alter table-sql命令设置,字段格式(format),字段格式用于指定字段显示时的格式,包括在浏览窗口、表单或报表中显示时的大小写和样式等。 格式可以由一些字母或字母的组合来表示。 A 只允许字母和汉字,不允许空格或标点符号 E 以英国日期格式编辑日期型数据 K 当光标移动到文本框上时,选定整个文本框 L 显示前导零,只对数值型数据有效 T 删除输入字段前后空格 ! 把字母转换为大写字母 使用科学记数法显示数值型数据 $ 显示货币符号,输入掩码(input mask),用于指定字段中输入数据的格式 可使用字母或字母的组合来表示 X 可输入任何字符 9 可输入数字和正负符号 # 可输入数字、空格和正负符号 $ 在某一固定位置显示当前货币符号 * 在值的左侧显示星号 . 句点分隔符指定小数点的位置 , 逗号可以用来分隔小数点左边的整数部分 $ 在微调控制框或文本框中,货币符号显示时不与数字分开,标题(caption)和注释(comment),标题和注释都是为了使表具有更好的可读性,并不是必需的 字段命名时首先考虑其可读性,但有时为了使字段更为方便地参与运算,字段名常采用简练的形式 若简练的字段名不能明确地表达含义,可为字段设置一个标题,若标题还不能充分地表达含义或需要给字段以详细的说明,还可给字段加上注释,字段有效性规则,有效性信息,有效性规则:控制输入字段的取值范围,是一个包含该字段的逻辑表达式,在字段值改变时发生作用 有效性信息:违反有效性规则时需显示的信息字符表达式,与有效性规则配合使用 有效性规则说明 (1)“表设计器”-“字段”-“字段验证”-输入规则,信息 (2)创建表的同时: CREAT TABLE cj(xh C(6) ,cj N(3,0); CHECK cj=0 AND cj= 0 AND cj = 100 error 成绩应在0-100之间!,说明,表已有记录,设置或修改有效性规则时: 首先必须确保记录满足将要设置的有效性规则,若满足则可顺利设置; 否则,有效性规则无法设置,或在确认保存时选择对现有的数据不做检查。,字段的默认值,默认值:可减少数据输入的工作量(如涉及当前日期的字段默认值可设置为datetime()) 字段允许NULL,可设置默认值为NULL;否则不可设置为NULL 用户未指定字段的默认值且字段不允许为空值,系统则按 (1)“表设计器”-“字段”-“字段验证”-输入默认值 (2) CREAT TABLE cj(xh C(6) default 0500000,cj N(3,0) (3) ALTER TABLE cj ALTER COLUMN xh set default 0500000,字符型:与字段宽度相等的空串 数值, 双精度,浮点,货币,整型:0 逻辑型:.F. 备注型通用型:无 日期型日期时间型:空的日期,数据库表的表属性,长表名与表注释、记录有效性规则及信息、触发器,长表名与表注释,vfp中规定数据库与自由表的表名最大长度为128个字符 如设置了长表名则在各种对话框、窗口中均以长表名代替表名 长表名与文件名可以同样使用 长表名的设置: (1)表设计器 (2)create table 中用name子句指定长表名 表注释:表的说明信息,说明表的含义,表的记录级验证规则,字段有效性规则仅对当前字段有效 记录有效性规则可校验多个字段之间的关系是否满足某种规则 设置: (1) “表设计器”-“表”-“规则”或“信息” (2) Create table命令的 check , error 子句或 Alter table 命令的 set check , error 子句(同字段级验证规则) Alter table js set check year(gzrq)-year(csrq)=18 error 满18岁 删除: 表设计器中或alter table 命令的 drop 子句,如: alter table js drop check 记录级验证规则设置说明,记录级验证规则设置说明,在记录值发生改变时被激活 记录指针移动时检查记录级验证规则,(1)修改记录没移动记录指针,关闭“浏览”窗口时仍然要检查记录级规则 (2)如对一张表增设记录级有效性规则,设置结束时要按此规则对所有记录进行检查,如有记录不符合规则,则该规则不被承认,或在确认保存时选择不对现有数据进行验证,表的触发器,触发器是绑定在表上的逻辑表达式 (.T.允许进行相应操作,.F.不允许进行相应操作) 当表中的记录被修改(插入、更新、删除)时,在进行了其它所有检查(有效性规则,主关键字,null值)之后被激活 分类 插入触发器:每次向表中插入或追加记录时触发该规则 更新触发器:每次在表中修改记录时触发该规则 删除触发器:每次在表中删除记录时触发该规则 设置 表设计器 命令create trigger 删除 表设计器 命令delete trigger,格式:Create trigger on TableName ; for delete|insert|update as lExp 例,create trigger on kc for update .f. create trigger on js for delete gl=50,格式:delete trigger on TableName ; for delete|insert|update 例,delete trigger on kc for update,数据库表的约束机制及其激活时机,数据库表的添加与移去,添加: 自由表添加到数据库中成为数据库表,建立了库与表之间的双向链接 界面:“项目管理器”或“数据库设计器”窗口或“数据库”菜单-“添加表” 命令:add table TableName name LongTableName 移去: 数据库表从数据库中释放出来成为自由表,删除了库与表的双向链接 界面:“项目管理器”或“数据库设计器”窗口 命令:remove table TableName delete,注:一张表在同一时间内只能属于一个数据库,若意外删除了某数据库文件,其包含的库表仍保留对数据库引用的后链,不能被添加到其他的数据库中,需利用free table TableName删除库表中的后链,使之成为自由表,数据库表的索引,1、一切自由表的有关索引均适合于数据库表 2、库表还可以设置主索引,构成主索引的索引表达式的值对各条记录来说必须唯一,且每张库表只能设置一个主索引 3、库表设置主索引的主要用途:为了建立表之间的永久关系 注:主索引与其它索引分别采用不同的图标显示,有关数据库及数据库表的几点说明,1. 单张表来说,库表仅比自由表具有字段扩展属性,可设置主索引。但在实际应用中,系统有多张关联的表组成,且各表的数据都应有一些约束条件,因此应尽可能地使用数据库表。 2. 同时使用多个数据库时,若要打开或说明非当前库中的表,使用!符号,如jxsj!xs。 3. 移动库文件的存储位置时,应相应地考虑该数据库的库表文件的存储位置,否则可能会出现前后链不一致。 4. 不要轻易地从数据库中移去表,因为库表移去时会丢失存储在库中的字段扩展属性,表属性等。 5. 多次修改数据库结构,数据库表结构之后,应进行数据库清理(数据库菜单/清理数据库命令),4.6 永久关系与参照完整性,可为相关的两张表创建永久关系 且基于永久关系可创建者两张表之间的数据完整性规则 表之间关系的种类 表之间的永久关系 参照完整性 VFP 数据完整性综述,表之间关系的种类,关系模型中实体之间的联系有三种:一对一、一对多、多对多的联系 对应于关系数据库中表之间的三种关系 1、一对一关系 特点:甲表的一个记录在乙表中有且仅有一个相应记录 乙表的一个记录在甲表中也有且仅有一个记录与之对应 使用:实际应用中不常使用,因为在许多情况下,两张表可合二为一 2、一对多关系 特点:甲表的任意一个记录在乙表中有多个记录与之对应(父表、一表) 乙表的每个记录在甲表仅有一个记录与之对应(子表、多表) 3、多对多关系 特点:甲表的任意一个记录在乙表中有多个记录与之对应 乙表的每个记录在甲表也有多个记录与之对应 使用:多对多关系不能直接利用,必须建立第三张表称为纽带表 把多对多关系分解为两个一对多的关系, 第三张表存储了两张表的主关键字,其主关键字可有两个外键组成,表之间的永久关系persistent relationship,永久关系是库表之间的一种关系,这种关系不仅在运行时存在,且一直保持,是根据表的索引建立的。 索引的类型决定了要创建的永久关系类型 一对一关系,两张表都必须为主索引或候选索引 一对多关系,主表必须用为主索引或候选索引,子表可用普通索引 永久关系的作用 查询设计器和视图设计器窗口中,自动作为默认联接条件 作为表单和报表的默认关系 用来存储参照完整性信息 创建永久关系的方法 确定两张表的关系类型 建立相应的索引 建立永久关系 编辑永久关系:双击关系连线,打开“编辑关系”对话框 删除永久关系:单击连线,delete,建立永久关系,(1)在数据库设计器窗口中,鼠标拖动即可建立永久关系 (2)CREAT TABLE CJ(xh C(5),kcdh C(6),FOREIGN KEY xh TAG xh REFERENCE xs) (3) ALTER TABLE cj ADD TABLE FOREIGN KEY xh TAG xh REFERENCE xs),参照完整性referential integrity,RI是用来控制数据的完整性,尤其是库中相关表之间的主键和外键之间数据一致性的规则 RI的一般要求 RI的设置 RI规则是建立在永久关系基础之上的 右击关系连线-执行参照完整性菜单命令或 编辑关系对话框中单击“参照完整性”按钮 (出现“参照完整性生成器”对话框) RI规则 RI规则的保存:设置RI规则时,系统会自动生成该规则的程序代码,被保存在数据库的存储过程中 RI规则的实施:由系统自动设置的主表和子表的触发器完成,(1)子表中的每一个记录在对应的主表中必须有一个父 记录 (2)在子表插入记录时,其外部关键字必须是父表主关键字值中的一个 (3)在父表中删除记录,与该记录相关的子表中的记录必须删除 避免出现“孤立记录”,VFP 数据完整性综述,VFP引进关系型数据库的三类完整性: 1、实体完整
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冶金工业技能鉴定真题及完整答案详解(网校专用)
- 2025自考专业(教育管理)经典例题附参考答案详解【综合题】
- 2024-2025学年度施工员试题带答案详解AB卷
- 2025年生物医药制品研发与生产许可合同
- 2025年建筑项目安全评价合同
- 2024安全监察人员考试综合练习(夺冠系列)附答案详解
- 2025年山西省侯马市中考数学考试历年机考真题集附参考答案详解(精练)
- 2025年安全生产考试题库(煤矿行业安全规范)试卷(附答案)
- 刀割伤应急预案演练脚本(2篇)
- 2024-2025学年度粮油食品检验人员考前冲刺练习含答案详解【综合卷】
- 如何唤醒孩子学习的内驱力
- 医学检验技术专业《有机化学》课程标准
- JT-T-1094-2016营运客车安全技术条件
- 村情要素模板
- MOOC 理性思维实训-华南师范大学 中国大学慕课答案
- 煤矿掘进知识课件
- 《陆上风电场工程设计概算编制规定及费用标准》(NB-T 31011-2019)
- 创业投资免责声明范本
- (高清版)TDT 1001-2012 地籍调查规程
- 办案审讯员培训课件模板
- 内部审计管理系统建设需求
评论
0/150
提交评论