第4章 数据库创建和使用_第1页
第4章 数据库创建和使用_第2页
第4章 数据库创建和使用_第3页
第4章 数据库创建和使用_第4页
第4章 数据库创建和使用_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 数据库的创建和使用本章知识点:数据库的创建、使用与维护本章知识点:数据库的创建、使用与维护 4.1 VFP数据库概述数据库概述4.2 数据库的创建数据库的创建4.3 数据库的使用数据库的使用4.4 VFP数据字典概述数据字典概述4.5 数据库表数据库表4.6 永久关系与参照完整性永久关系与参照完整性4.7 有关数据库操作的常用函数有关数据库操作的常用函数4.1 VFP数据库概述数据库概述J数据库是一个容器,是许多数据库是一个容器,是许多相关相关的的数据数据库表库表及其及其关系关系的集合。的集合。J数据库中的表并数据库中的表并不是不是彼此彼此独立独立的。的。J可借助一个可借助一个公共字段

2、公共字段将关联的表联系起将关联的表联系起来,建立表与表之间的来,建立表与表之间的“关系关系”。(专业代号)(专业代号)(工号)(工号)(课程代号)(课程代号) (学号)(学号)教师表教师表课程表课程表任课表任课表成绩表成绩表专业表专业表学生表学生表4.2 数据库的创建数据库的创建n可在数据库中存储一系列的可在数据库中存储一系列的表表,在表间建立,在表间建立关系关系,设置,设置属属性性和数据和数据有效性规则有效性规则n创建一个数据库将生成三个文件:数据库文件创建一个数据库将生成三个文件:数据库文件(.dbc),与,与数据库关联的数据库备注文件数据库关联的数据库备注文件(.dct)和数据库索引文件

3、和数据库索引文件(.dcx)n数据库文件并数据库文件并不在物理上不在物理上包含任何附属对象,仅存储了指包含任何附属对象,仅存储了指向表文件的向表文件的路径指针路径指针n数据库的创建数据库的创建n数据库的组成(数据库表数据库的组成(数据库表,视图视图,连接连接,存储过程)存储过程)数据库的创建数据库的创建n界面方式界面方式(1) “项目管理器项目管理器”-“数据库数据库”-“新建新建”,则打开则打开“新建新建”对话框对话框-输入数据库名输入数据库名-“保存保存”,出现出现“数据库设计器数据库设计器”窗口和窗口和“数据库设计器数据库设计器”工具栏工具栏(2) “新建新建”-“数据库数据库 (不属于

4、项目不属于项目)n命令方式命令方式CREATE DATABASE 数据库名数据库名|? 数据库名数据库名:则创建数据库,并处于打开状态,但不出现数据库设计器则创建数据库,并处于打开状态,但不出现数据库设计器?:自动打开自动打开“新建新建”对话框对话框(不属于项目不属于项目)数据库的组成数据库的组成数据库表数据库表n数据库表数据库表:从属于某一个数据库的表从属于某一个数据库的表n与自由表相比,数据表具有许多与自由表相比,数据表具有许多扩展功能扩展功能和和管理特性管理特性n数据库表与数据库之间的相关性是通过数据库表与数据库之间的相关性是通过双向链接双向链接实现的实现的(后链后链)有关数据库文件的路

5、径和数据库名有关数据库文件的路径和数据库名(前链前链)有关表文件的路径和文件名有关表文件的路径和文件名数据库数据库数据库表数据库表数据库的组成数据库的组成视图视图(view)n设计设计表时,要将数据按主题表时,要将数据按主题分解分解到不同的表中,到不同的表中,使用使用时,要将分散在相关表中的数据通过联接条件将它们时,要将分散在相关表中的数据通过联接条件将它们收集收集在一起,构成一张在一起,构成一张“虚表虚表”。n视图视图就是一种就是一种“虚表虚表”,其数据来源于一张或多张表。,其数据来源于一张或多张表。n视图兼有视图兼有表表和和查询查询的特点:与查询类似可以从一张或的特点:与查询类似可以从一张

6、或多张相关联的表中多张相关联的表中提取有用提取有用信息,与表类似可以信息,与表类似可以更新更新其中的信息其中的信息并将更新结果永久保存在磁盘上。并将更新结果永久保存在磁盘上。n视图可分为视图可分为本地视图本地视图和和远程视图远程视图数据库的组成数据库的组成连接连接(connection)n连接连接是保存在数据库中的一个定义,它指定了是保存在数据库中的一个定义,它指定了远程数据远程数据源的名称源的名称。n一个一个远程数据源远程数据源通常是一个通常是一个远程数据库服务器远程数据库服务器或或文件文件,并且已为它在本地安装了并且已为它在本地安装了ODBC驱动程序和设置了驱动程序和设置了ODBC数据源名

7、称。数据源名称。n建立远程数据连接的建立远程数据连接的目的目的是为了是为了创建远程视图创建远程视图,通过使,通过使用远程视图无需将所有记录下载到本地计算机上即可用远程视图无需将所有记录下载到本地计算机上即可提提取远程取远程ODBC服务器上的数据子集。服务器上的数据子集。n连接远程数据源的方法:连接远程数据源的方法:(1)直接访问在机器上注册的直接访问在机器上注册的ODBC数据源;数据源;(2)用用“连接设计器连接设计器”设计自定义连接。设计自定义连接。数据库的组成数据库的组成存储过程存储过程n存储过程存储过程是保存在数据库中的是保存在数据库中的过程代码过程代码,由一系列,由一系列用用户自定义函

8、数户自定义函数或在创建表与表之间或在创建表与表之间参照完整性规则参照完整性规则时时系统创建的函数系统创建的函数组成。组成。n若要若要经常经常对数据库中的数据进行一些相似或相同的处对数据库中的数据进行一些相似或相同的处理,可将这些代码编写成自定义函数并保存到存储过理,可将这些代码编写成自定义函数并保存到存储过程中。程中。n创建、修改或移去存储过程的方法有:创建、修改或移去存储过程的方法有:(1)项目管理器项目管理器 (2)数据库设计器窗口:数据库菜单数据库设计器窗口:数据库菜单-编辑存储过程编辑存储过程(3)命令窗口:命令窗口:modify procedure命令命令n利用存储过程可提高数据库的

9、性能,利用存储过程可提高数据库的性能,打开数据库时打开数据库时该该数据库包含的存储过程被数据库包含的存储过程被自动加载到内存自动加载到内存中。中。4.3 数据库的使用数据库的使用1、打开数据库、打开数据库2、设置当前数据库、设置当前数据库3、检查数据库的有效性、检查数据库的有效性4、关闭数据库、关闭数据库5、删除数据库、删除数据库打开数据库打开数据库新建新建的数据库,保存后的数据库,保存后自动打开自动打开打开打开数据库表数据库表时,系统也会时,系统也会自动打开自动打开相应的数据库相应的数据库项目管理器项目管理器中打开,同时出现中打开,同时出现数据库设计器窗口数据库设计器窗口打开一个打开一个项目

10、项目,系统,系统自动打开自动打开项目所包含的数据库(关闭项目项目所包含的数据库(关闭项目时数据库也同时关闭)时数据库也同时关闭)命令:命令:open database DataBaseName exclusive|shared noupdate validate exclusive|shared:缺省时以独占方式打开:缺省时以独占方式打开 validate:打开数据库时进行数据库的有效性检验:打开数据库时进行数据库的有效性检验 可多次使用该命令同时打开多个数据库可多次使用该命令同时打开多个数据库 open database db1 open database db2 open database

11、 db3设置当前数据库设置当前数据库n在所有打开的数据库中,只有一个是在所有打开的数据库中,只有一个是当前数据库当前数据库,在打开数据库时,在打开数据库时,最后一个最后一个打开的数据库为当前打开的数据库为当前数据库数据库n当前数据库的当前数据库的设置设置(1)界面:界面:常用常用工具栏工具栏(2)命令:命令:set database to DatabaseName检查数据库的有效性检查数据库的有效性n若用户若用户移动移动了数据了数据库文件库文件(.dbc.dct.dcx)或数据)或数据库表库表文文件,可能会破坏数据库和库表之间的双向链接。件,可能会破坏数据库和库表之间的双向链接。n命令命令va

12、lidate database可检查数据库的有效性和更新链接可检查数据库的有效性和更新链接validate database recover to printer|to file FileNamerecover:更新链接,缺省时仅检查数据库的有效性,更新链:更新链接,缺省时仅检查数据库的有效性,更新链接时若库表文件不在原位,则打开接时若库表文件不在原位,则打开检查数据库检查数据库对话框,要对话框,要求进行文件的求进行文件的定位定位to:检查结果的去向,缺省时在:检查结果的去向,缺省时在VFP主窗口显示主窗口显示注:只能处理以注:只能处理以独占独占方式打开的方式打开的当前数据库当前数据库关闭数据

13、库关闭数据库界面:界面:项目管理器项目管理器命令:命令:close database close database &关闭当前数据库(库表同时被关关闭当前数据库(库表同时被关闭),若没有打开的数据库,则关闭所有工作区内所闭),若没有打开的数据库,则关闭所有工作区内所有打开的自由表、索引和格式文件,将当前工作区设有打开的自由表、索引和格式文件,将当前工作区设置为置为1号工作区号工作区close database all &关闭所有打开的数据库关闭所有打开的数据库删除数据库删除数据库n删除数据库将删除存储在数据库中的一切信息删除数据库将删除存储在数据库中的一切信息(存储过程、视图、

14、表之间的关系、库表的扩(存储过程、视图、表之间的关系、库表的扩展属性等)展属性等)n项目管理器:移去(项目管理器:移去(库表自动变为自由表库表自动变为自由表)n资源管理器或资源管理器或delete file命令(命令(不会删除库表中不会删除库表中的链接信息,可用命令的链接信息,可用命令free table 删除后链,使库表删除后链,使库表成为自由表成为自由表)最好不用此方式!最好不用此方式!4.4 VFP数据字典概述数据字典概述 数据字典数据字典:是指存储在数据库中用于描述所管理的表和对象的:是指存储在数据库中用于描述所管理的表和对象的数据,即关于数据的数据(数据,即关于数据的数据(元数据元数

15、据)。)。 数据字典使得对数据库的设计和修改更加数据字典使得对数据库的设计和修改更加灵活灵活,可以创建和指,可以创建和指定以下内容:定以下内容:u表中字段的标题、注释、默认值、输入掩码和显示格式,以及表中字段的标题、注释、默认值、输入掩码和显示格式,以及表单中使用的默认控件类等。表单中使用的默认控件类等。u表的主索引关键字。表的主索引关键字。u库表之间的永久性关系库表之间的永久性关系u长表名和表注释长表名和表注释u字段级和记录级有效性规则字段级和记录级有效性规则u存储过程存储过程u插入、更新和删除事件的触发器插入、更新和删除事件的触发器4.5 数据库表数据库表1、数据库表的创建、数据库表的创建

16、2、数据库表的字段扩展属性、数据库表的字段扩展属性3、数据库表的表属性、数据库表的表属性4、数据库表的约束机制及其激活时机、数据库表的约束机制及其激活时机5、数据库表的添加与移去、数据库表的添加与移去6、数据库表的索引、数据库表的索引7、有关数据库及数据库表的几点说明、有关数据库及数据库表的几点说明数据库表的创建数据库表的创建n界面界面:(1) “项目管理器项目管理器”-“JXSJ数据库数据库”并展开并展开-“表表”-“新建新建”-“库表设计器库表设计器”(2)数据库处于打开状态数据库处于打开状态,“数据库设计器数据库设计器”工具栏工具栏-“新表新表”按钮按钮(3)数据库处于打开状态数据库处于

17、打开状态,“数据库数据库”菜单菜单-“新建表新建表”命令命令n命令命令:create table-SQLOpen database jxsjCreate table xsa name 学生表之一学生表之一 (xh c(7),xb c(2)Create table xsb free(xh c(7),xb c(2)Name子句:子句:指定指定长表名长表名Free子句:子句:指定该表为指定该表为自由表自由表,且不包含在项目中,且不包含在项目中数据库表的字段扩展属性数据库表的字段扩展属性n字段的基本属性字段的基本属性(库表和自由表均具有)(库表和自由表均具有)字段名、类型、宽度、小数位数字段名、类型、

18、宽度、小数位数n库表的扩展属性库表的扩展属性(1)字段的显示属性:指定)字段的显示属性:指定输入输入和和显示显示字段时字段时的格式的格式字段格式、输入掩码、标题和注释字段格式、输入掩码、标题和注释(2)字段的验证:限定字段的)字段的验证:限定字段的取值取值及及取值范围取值范围字段有效性规则、有效性信息、字段的默认值字段有效性规则、有效性信息、字段的默认值扩展属性可在表设计器中扩展属性可在表设计器中设置,有些属性也可用设置,有些属性也可用create table-sql,alter table-sql命令设置命令设置字段格式(字段格式(format)n字段格式用于指定字段显示时的格式,包括在浏览

19、窗口、字段格式用于指定字段显示时的格式,包括在浏览窗口、表单或报表中显示时的大小写和样式等。表单或报表中显示时的大小写和样式等。n格式可以由一些字母或字母的组合来表示。格式可以由一些字母或字母的组合来表示。A 只允许只允许字母字母和和汉字汉字,不允许空格或标点符号,不允许空格或标点符号E 以以英国英国日期格式编辑日期型数据日期格式编辑日期型数据K 当光标移动到文本框上时,选定当光标移动到文本框上时,选定整个整个文本框文本框L 显示显示前导零前导零,只对,只对数值型数值型数据有效数据有效T 删除输入字段前后删除输入字段前后空格空格! 把字母转换为把字母转换为大写字母大写字母使用使用科学记数法科学

20、记数法显示数值型数据显示数值型数据$ 显示货币符号显示货币符号输入掩码(输入掩码(input mask)n用于指定字段中输入数据的格式用于指定字段中输入数据的格式n可使用字母或字母的组合来表示可使用字母或字母的组合来表示X 可输入可输入任何任何字符字符 9 可输入可输入数字数字和和正负正负符号符号# 可输入可输入数字数字、空格空格和和正负正负符号符号$ 在某一固定位置显示当前货币符号在某一固定位置显示当前货币符号* 在值的左侧显示星号在值的左侧显示星号. 句点分隔符指定小数点的位置句点分隔符指定小数点的位置, 逗号可以用来分隔小数点左边的整数部分逗号可以用来分隔小数点左边的整数部分$ 在微调控

21、制框或文本框中,货币符号显示时不与数字分开在微调控制框或文本框中,货币符号显示时不与数字分开标题标题(caption)和注释和注释(comment)n标题和注释都是为了使表具有更好的标题和注释都是为了使表具有更好的可读性可读性,并不是必需的并不是必需的n字段字段命名命名时首先考虑其时首先考虑其可读性可读性,但有时为了使,但有时为了使字段更为方便地参与运算,字段名常采用简练字段更为方便地参与运算,字段名常采用简练的形式的形式n若简练的字段名不能明确地表达含义,可为字若简练的字段名不能明确地表达含义,可为字段设置一个段设置一个标题标题,若标题还不能充分地表达含,若标题还不能充分地表达含义或需要给字

22、段以详细的说明,还可给字段加义或需要给字段以详细的说明,还可给字段加上上注释注释字段有效性规则,有效性信息字段有效性规则,有效性信息n有效性规则:控制输入字段的取值范围,是一个有效性规则:控制输入字段的取值范围,是一个包含该字段包含该字段的逻辑表达式,的逻辑表达式,在在字段值改变时字段值改变时发生作用发生作用n有效性信息:违反有效性规则时需显示的信息字符表达式,有效性信息:违反有效性规则时需显示的信息字符表达式,与有效性规则配合使用与有效性规则配合使用n有效性规则说明有效性规则说明(1)“表设计器表设计器”-“字段字段”-“字段验证字段验证”-输入规则输入规则,信息信息(2)创建表的同时:创建

23、表的同时: CREAT TABLE cj(xh C(6) ,cj N(3,0);CHECK cj=0 AND cj=0 AND cj=100 error 成绩应在成绩应在0-100之间!之间!说明说明表已有记录,设置或修改有效性规则时:表已有记录,设置或修改有效性规则时:n首先必须确保记录满足将要设置的有效首先必须确保记录满足将要设置的有效性规则,若满足则可顺利设置;性规则,若满足则可顺利设置;n否则,有效性规则无法设置,或在确认否则,有效性规则无法设置,或在确认保存时选择保存时选择对现有的数据不做检查对现有的数据不做检查。字段的默认值字段的默认值n默认值:可减少数据输入的工作量(如涉及当前日

24、期的字默认值:可减少数据输入的工作量(如涉及当前日期的字段默认值可设置为段默认值可设置为datetime())n字段允许字段允许NULL,可设置默认值为,可设置默认值为NULL;否则不可设置为;否则不可设置为NULLn用户未指定字段的默认值且字段不允许为空值,系统则按用户未指定字段的默认值且字段不允许为空值,系统则按(1)“表设计器表设计器”-“字段字段”-“字段验证字段验证”-输入默认值输入默认值(2) CREAT TABLE cj(xh C(6) default 0500000,cj N(3,0)(3) ALTER TABLE cj ALTER COLUMN xh set default

25、0500000字符型:与字段宽度相等的空串数值, 双精度,浮点,货币,整型:0逻辑型:.F.备注型通用型:无日期型日期时间型:空的日期数据库表的表属性数据库表的表属性长表名与表注释、记录有效性规则及信息、触发器长表名与表注释、记录有效性规则及信息、触发器长表名与表注释长表名与表注释vfp中规定数据库与自由表的表名最大长度为中规定数据库与自由表的表名最大长度为128个字符个字符如设置了长表名则在各种对话框、窗口中均以长表名如设置了长表名则在各种对话框、窗口中均以长表名代替代替表名表名长表名与文件名可以长表名与文件名可以同样使用同样使用长表名的设置:长表名的设置:(1)表设计器)表设计器(2)cr

26、eate table 中用中用name子句指定长表名子句指定长表名 表注释表注释:表的说明信息,说明表的含义:表的说明信息,说明表的含义表的记录级验证规则表的记录级验证规则字段有效性规则仅对当前字段有效字段有效性规则仅对当前字段有效记录有效性规则可校验多个字段之间的关系是否满足某种规则记录有效性规则可校验多个字段之间的关系是否满足某种规则设置:设置:(1) “表设计器表设计器”-“表表”-“规则规则”或或“信息信息”(2) Create table命令的命令的 check , error 子句子句或或Alter table 命令的命令的 set check , error 子句子句(同字段级验

27、证规则)(同字段级验证规则)Alter table js set check year(gzrq)-year(csrq)=18 error 满满18岁岁删除:删除: 表设计器中表设计器中或或alter table 命令的命令的 drop 子句,如:子句,如: alter table js drop check记录级验证规则设置说明记录级验证规则设置说明记录级验证规则设置说明记录级验证规则设置说明在记录在记录值值发生发生改变改变时被激活时被激活记录记录指针移动指针移动时检查记录级验证规则时检查记录级验证规则 (1)修改记录没移动记录指针,关闭修改记录没移动记录指针,关闭“浏览浏览”窗口时仍然要窗

28、口时仍然要检查记录级规则检查记录级规则(2)如对一张表增设记录级有效性规则,设置结束时要按此如对一张表增设记录级有效性规则,设置结束时要按此规则对所有记录进行检查,如有记录不符合规则,则该规规则对所有记录进行检查,如有记录不符合规则,则该规则不被承认,或在确认保存时选择不对现有数据进行验证则不被承认,或在确认保存时选择不对现有数据进行验证表的触发器表的触发器n触发器是绑定在表上的触发器是绑定在表上的逻辑逻辑表达式表达式(.T.允许进行相应操作,允许进行相应操作,.F.不允许进行相应操作不允许进行相应操作)n当表中的记录被修改(插入、更新、删除)时,在进行了其当表中的记录被修改(插入、更新、删除

29、)时,在进行了其它所有检查(有效性规则,主关键字,它所有检查(有效性规则,主关键字,null值)之后被值)之后被激活激活n分类分类插入触发器:插入触发器:每次向表中插入或追加记录时触发该规则每次向表中插入或追加记录时触发该规则更新触发器:更新触发器:每次在表中修改记录时触发该规则每次在表中修改记录时触发该规则删除触发器:删除触发器:每次在表中删除记录时触发该规则每次在表中删除记录时触发该规则n设置设置表设计器表设计器命令命令create triggern删除删除表设计器表设计器命令命令delete trigger格式:格式:Create trigger on TableName ;for de

30、lete|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 数据库表的约束机制及其激活时机数据库表的约束机制及其激活时机约束机制约束机制级别级别激活机制激活机制Null有效性有效性字段字段|列列从浏览中离开字段从浏览中离开字段|列列,或执行插入或执行插入,更改字段值

31、时更改字段值时字段有效性规则字段有效性规则字段字段|列列从浏览中离开字段从浏览中离开字段|列列,或执行插入或执行插入,更改字段值时更改字段值时记录有效性规则记录有效性规则记录记录发生记录更新时发生记录更新时候选候选|主索引主索引记录记录发生记录更新时发生记录更新时Valid子句子句表单表单移出记移出记录时录时触发器触发器表表在插入在插入,更改更改,删除事件中,表中值改变时删除事件中,表中值改变时数据库表的添加与移去数据库表的添加与移去添加添加: 自由表添加到数据库中成为数据库表,自由表添加到数据库中成为数据库表,建立了库与表之间的双向链接建立了库与表之间的双向链接界面:界面:“项目管理器项目管

32、理器”或或“数据库设计器数据库设计器”窗口窗口或或“数据库数据库”菜单菜单-“添加添加表表”命令:命令:add table TableName name LongTableName移去移去: 数据库表从数据库中释放出来成为自由表,数据库表从数据库中释放出来成为自由表,删除了库与表的双向链接删除了库与表的双向链接界面:界面:“项目管理器项目管理器”或或“数据库设计器数据库设计器”窗口窗口命令:命令:remove table TableName delete注:注:一张表在同一时间内只能属于一个数据库,一张表在同一时间内只能属于一个数据库,若意外删除了某数据库文若意外删除了某数据库文件,其包含的库

33、表仍保留对数据库引用的后链,不能被添加到其他的数据件,其包含的库表仍保留对数据库引用的后链,不能被添加到其他的数据库中,需利用库中,需利用free table TableName删除库表中的后链,使之成为自由表删除库表中的后链,使之成为自由表数据库表的索引数据库表的索引1、一切自由表的有关索引均、一切自由表的有关索引均适合适合于数据库表于数据库表2、库表还可以设置、库表还可以设置主索引主索引,构成主索引的索引表达式的值对,构成主索引的索引表达式的值对各条记录来说必须各条记录来说必须唯一唯一,且每张库表只能设置,且每张库表只能设置一个一个主索引主索引3、库表设置主索引的主要用途:为了建立表之间的

34、、库表设置主索引的主要用途:为了建立表之间的永久关系永久关系注:主索引与其它索引分别采用不同的注:主索引与其它索引分别采用不同的图标图标显示显示有关数据库及数据库表的几点说明有关数据库及数据库表的几点说明1. 单张表来说,库表仅比自由表具有字段扩展属性,可设置主单张表来说,库表仅比自由表具有字段扩展属性,可设置主索引。但在实际应用中,系统有多张索引。但在实际应用中,系统有多张关联关联的表组成,且各表的的表组成,且各表的数据都应有一些数据都应有一些约束约束条件,因此应尽可能地使用条件,因此应尽可能地使用数据库表数据库表。2. 同时使用多个数据库时,若要打开或说明非当前库中的表,同时使用多个数据库

35、时,若要打开或说明非当前库中的表,使用使用!符号,如符号,如jxsj!xs。3. 移动库文件的存储位置时,应相应地考虑该数据库的库表文移动库文件的存储位置时,应相应地考虑该数据库的库表文件的存储位置,否则可能会出现件的存储位置,否则可能会出现前后链不一致前后链不一致。4. 不要轻易地从数据库中移去表,因为库表移去时会不要轻易地从数据库中移去表,因为库表移去时会丢失丢失存储存储在库中的在库中的字段扩展属性字段扩展属性,表属性表属性等。等。5. 多次多次修改修改数据数据库结构库结构,数据库,数据库表结构表结构之后,应进行数据库清之后,应进行数据库清理(理(数据库数据库菜单菜单/清理数据库清理数据库

36、命令)命令)4.6 永久关系与参照完整性永久关系与参照完整性可为相关的两张表创建永久关系可为相关的两张表创建永久关系且基于永久关系可创建者两张表之间的数据完整性规则且基于永久关系可创建者两张表之间的数据完整性规则n表之间关系的种类表之间关系的种类n表之间的永久关系表之间的永久关系n参照完整性参照完整性nVFP 数据完整性综述数据完整性综述表之间关系的种类表之间关系的种类关系模型中实体之间的联系有三种:一对一、一对多、多对多的联系关系模型中实体之间的联系有三种:一对一、一对多、多对多的联系对应于关系数据库中表之间的三种关系对应于关系数据库中表之间的三种关系1、一对一关系一对一关系特点:甲表的一个

37、记录在乙表中有且仅有一个相应记录特点:甲表的一个记录在乙表中有且仅有一个相应记录 乙表的一个记录在甲表中也有且仅有一个记录与之对应乙表的一个记录在甲表中也有且仅有一个记录与之对应使用:实际应用中使用:实际应用中不常使用不常使用,因为在许多情况下,两张表可,因为在许多情况下,两张表可合二为一合二为一2、一对多关系一对多关系特点:甲表的任意一个记录在乙表中有多个记录与之对应(父表、一表)特点:甲表的任意一个记录在乙表中有多个记录与之对应(父表、一表) 乙表的每个记录在甲表仅有一个记录与之对应(子表、多表)乙表的每个记录在甲表仅有一个记录与之对应(子表、多表)3、多对多关系多对多关系特点:甲表的任意

38、一个记录在乙表中有多个记录与之对应特点:甲表的任意一个记录在乙表中有多个记录与之对应 乙表的每个记录在甲表也有多个记录与之对应乙表的每个记录在甲表也有多个记录与之对应使用:多对多关系不能直接利用,必须建立第三张表称为使用:多对多关系不能直接利用,必须建立第三张表称为纽带表纽带表 把多对多关系把多对多关系分解分解为两个一对多的关系,为两个一对多的关系, 第三张表存储了两张表的主关键字,其主关键字可有第三张表存储了两张表的主关键字,其主关键字可有两个外键两个外键组成组成表之间的永久关系表之间的永久关系persistent relationshipn永久关系是库表之间的一种关系,这种关系不仅在运行时

39、存在,且一直永久关系是库表之间的一种关系,这种关系不仅在运行时存在,且一直保持,是根据表的索引建立的。保持,是根据表的索引建立的。n索引的类型决定了要创建的永久关系类型索引的类型决定了要创建的永久关系类型一对一一对一关系,两张表都必须为关系,两张表都必须为主主索引或索引或候选候选索引索引一对多一对多关系,关系,主表主表必须用为必须用为主主索引或索引或候选候选索引,索引,子表子表可用可用普通普通索引索引n永久关系的作用永久关系的作用查询设计器和视图设计器窗口中,自动作为查询设计器和视图设计器窗口中,自动作为默认联接条件默认联接条件作为表单和报表的作为表单和报表的默认关系默认关系用来存储用来存储参

40、照完整性信息参照完整性信息n创建永久关系的方法创建永久关系的方法确定确定两张表的关系类型两张表的关系类型建立相应的建立相应的索引索引建立永久关系建立永久关系n编辑永久关系编辑永久关系:双击关系连线,打开:双击关系连线,打开“编辑关系编辑关系”对话框对话框n删除永久关系删除永久关系:单击连线,:单击连线,delete建立永久关系建立永久关系(1)在数据库设计器窗口中,鼠标拖动即可)在数据库设计器窗口中,鼠标拖动即可建立永久关系建立永久关系(2)CREAT TABLE CJ(xh C(5),kcdh C(6),FOREIGN KEY xh TAG xh REFERENCE xs)(3) ALTER

41、 TABLE cj ADD TABLE FOREIGN KEY xh TAG xh REFERENCE xs)参照完整性参照完整性referential integritynRI是用来控制数据的完整性是用来控制数据的完整性,尤其是库中相关表之间的尤其是库中相关表之间的主键主键和和外键外键之间数之间数据一致性的规则据一致性的规则nRI的一般要求的一般要求nRI的设置的设置RI规则是建立在永久关系基础之上的规则是建立在永久关系基础之上的右击关系连线右击关系连线-执行参照完整性菜单命令执行参照完整性菜单命令或或编辑关系对话框中编辑关系对话框中单击单击“参照完整性参照完整性”按钮按钮(出现(出现“参照完整性生成器参照完整性生成器”对话框)对话框)nRI规则规则RI规则的保存:设置规则的保存:设置RI规则时,系统会自动生成该规则的程序代码,被保规则时,系统会自动生成该规则的程序代码,被保存在数据库的存在数据库的存储过程存储过程中中RI规则的实施:由系统自动设置的主表和子表的规则的实施:由系统自动设置的主表和子表的触发器触发器完成完成(1)子表中的每一个记录在对应的主表中必须有一个父子表中的每一个记录在对应的主表中必须有一个父 记录记录(2)在子表插入记录时在子表插入记录时,其外部关键字必须是父表主关键字

温馨提示

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

评论

0/150

提交评论