参照完整性规则课件

上传人:痛*** 文档编号:242854900 上传时间:2024-09-08 格式:PPT 页数:31 大小:426.50KB
返回 下载 相关 举报
参照完整性规则课件_第1页
第1页 / 共31页
参照完整性规则课件_第2页
第2页 / 共31页
参照完整性规则课件_第3页
第3页 / 共31页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1,第四章 数据库与多表操作,4.1,关系数据库的基础知识,4.1.1,基本概念,1.,关键字、主关键字、组合关键字与候选关键字,关系表中,其值可以唯一地标识一条记录的字段称为,关键字,。如果几个字段的值组合后可以唯一地标识一条记录,则这几个字段就称为,组合关键字,。表中可能有多个关键字,选取表中的一个关键字作为对该表进行各种操作时,用以区别每条记录的唯一性标志,并作为该表与其他表实现关联的关键字,则该关键字称为,主关键字,或,主码,。其他的关键字,称为,候选关键字,。,2.,数据之间的联系类型,一对多关系;多对多关系;一对一关系。,2,4.1.2,数据库的设计,1.,数据库表之间的联系与外部关键字,表与表之间是一对多的联系:实现该联系需将父表中的主关键字放入子表当中,以实现两表之间的有效关联。,表,1,与表,2,之间是多对多的联系:实现该联系需另外增加一个新表,这个表称为“关联表”,其中包括表,1,和表,2,的主关键字,并且加进两表之间的关联字段。,表与表之间是一对一的联系:实现该联系需要根据实际情况而定,设计时可以分为两个表或合并为一个表,。,第四章 数据库与多表操作,3,第四章 数据库与多表操作,外部关键字,在一对多的关系表中,子表中的某一字段是父表的主关键字,则该字段称为子表的,外部关键字,或,外码,。,数据库表、自由表,属于数据库的表称为,数据库表,;独立存在、不与任何数据库相关联的表称为,自由表,。,4,第四章 数据库与多表操作,2.,关系数据库的完整性,实体完整性。实体完整性是指一个表中主关键字的取值必须是确定的、唯一的,不允许为,null,值。,参照完整性。数据库的参照完整性是指在“子表”当中实现关联的外部关键字,它的取值或者为“空”值、或者为“父表”中实现相应关联的主关键字值的子集。,用户自定义完整性。这部分是由实际应用环境当中的用户需求决定的。通常为某个字段的取值限制、多个字段之间取值的条件等。,5,第四章 数据库与多表操作,4.2,数据库的基本操作,4.2.1,建立数据库,建立数据库主要有如下三种方法:,1.,在“新建”菜单中建立数据库,2.,在项目管理器中建立数据库,3.,使用命令建立数据库,命令格式:,Create Database ,数据库名,/,?,例如,要创建学生“学籍”数据库,可以使用以下命令:,Create Database,学籍,6,第四章 数据库与多表操作,4.2.2,数据库设计器,打开数据库设计器的方法有以下三种:,1.,从项目管理器中打开数据库设计器,2.,从打开菜单中打开数据库设计器,3.,用命令打开数据库设计器,打开数据库设计器的命令的语法格式如下:,MODIFY DATABASE ,文件名,/,?, ,NOWAIT NOEDIT ,7,第四章 数据库与多表操作,4.2.3,数据库的基本操作,1.,打开数据库,打开数据库的方式也有三种:,在“项目管理器”中打开,已存在的数据库:,从“打开”对话框打开数据库:,使用命令方式打开数据库。,格式:,OPEN DATABASE ,文件名,/,?,EXCLUSIVE / SHARED NOUPDATE VALIDATE ,8,第四章 数据库与多表操作,2.,关闭数据库,关闭数据库一般有两种方性:,是在项目管理器中关闭数据库,二是用命令方式关闭数据库,格式:,CLOSE DATABASES ALL,功能:,不带选项:表示关闭当前数据库和表。,带,“,ALL,”,:表示关闭当前打开的数据库和数据库表、自由表及索引文件等。,9,第四章 数据库与多表操作,3.,在打开的多个数据库间切换,Visual FoxPro,在同一时刻可以打开多个数据库,但在同一时刻只有一个当前数据库。也就是说,所有作用于数据库的命令或函数是对当前数据库而言的。,指定当前数据库的命令是:,SET DATABASE TO,DatabaseName,10,第四章 数据库与多表操作,4.,修改数据库,使用,“,项目管理器,”,修改数据库,使用命令修改一个数据库,格式:,MODIFY DATABASE ,数据库名,/,?, ,NOWAIT NOEDIT,例如,要修改学生,“,学籍,”,数据库,可用命令:,MODIFY DATABASE,学籍,11,第四章 数据库与多表操作,5.,删除数据库,在,“,项目管理器,”,中删除数据库,使用命令删除数据库,删除数据库的命令格式是:,DELETE DATABASE,数据库名,|,?,DELETETABLES,RECYCLE,例如,要删除学生,“,学籍,”,数据库,可用命令:,DELETE DATABASE,学籍,12,第四章 数据库与多表操作,4.2.4,数据库表和自由表的相互转换,1.,概念,数据库表:已加入到某个数据库中的表。,自由表:不属于任何数据库的表。,2.,将表加入到数据库,为了把一个已存在的表加入到数据库,可从“数据库”菜单中选择“添加表”,或者单击工具栏中的“添加表”按钮。,使用命令方式,格式:,ADD TABLE,表名,/,?,长表名,例如,打开“学籍”数据库,并向其中添加表“学生,.,DBF”,:,OPEN DATABASE,学籍,ADD TABLE,学生,13,第四章 数据库与多表操作,3.,从数据库中移出表,从“数据库”菜单中选择“移出表”,或者单击工具栏中的“移出表”按钮。,使用,REMOVE TABLE,命令。,格式:,REMOVE TABLE,表名,/,?,DELETE RECYCLE ,例如,打开“学籍”数据库,并将其中的表“学生,.DBF”,移出:,OPEN DATABASE,学籍,REMOVE TABLE,学生,14,第四章 数据库与多表操作,4.,删除表文件,使用,DROP TABLE,命令删除表文件,格式:,DROP TABLE,表名,/,文件名,/,?,RECYCLE ,例如,打开“学籍”数据库,并将其中的表“学生,.DBF”,删除:,OPEN DATABASE,学籍,DROP TABLE,学生,15,第四章 数据库与多表操作,4.2.5,工作区,1, 工作区,工作区,是,Visual FoxPro,在内存中开辟的临时区域。用户可以在不同的工作区中打开多个不同的表,并且可以利用多种方法访问不同工作区中的表。,工作区及工作区编号,每一个工作区都有一个编号区域,它标识一个已打开的表。,Visual FoxPro,中最多允许使用,32767,个工作区,可以用工作区编号,1,、,2,、,3,、,4,、,32767,来标识。,当前工作区及当前表,当前正在操作的工作区为当前工作区,称在当前工作区中打开的表文件为当前表。当前工作区是可变的,可以根据需要选择任意一个工作区做为当前工作区。,16,第四章 数据库与多表操作,工作区的别名,给工作区取一个除工作区编号外的名字,它可以用来标识一个工作区。每个工作区都有两个等效的别名,一种是系统固有指定的,另一种是用户自己定义的(表别名)。通过别名可以引用在工作区中打开的表。,指定在一个工作区中打开的表时,可以使用下列命令为该表定义一个别名:,USE ALIAS ,如果省略, ALIAS ,,则该工作区的用户自己定义默认别名为表文件名。,如果打开表时没有指定别名,或别名发生冲突时,,Visual FoxPro,自动指定表的别名。系统固有指定的别名为:,A,、,B,、,C,、,D,、,J,,分别对应工作区,1,、,2,、,3,、,4,、,10,。,17,第四章 数据库与多表操作,工作区的选择及当前工作区的转换,使用,SELECT,命令可以选择或转换当前工作区。,格式:,SELECT / ,功能:,带,表示激活指定该工作区,带,表示激活表别名代表的表打开时所用的工作区。,工作区之间的联访,指系统在当前工作区访问另一个工作区中表内容(字段)的一种联系形式。工作区之间的联访是通过工作区的别名实现的。即用别名限制访问的对象。具体访问的格式如下:,.,或,-,18,第四章 数据库与多表操作,2, 工作区使用规则,在一个工作区内只能存在一个打开的表文件;,当前工作区只有一个,对非当前工作区中的表文件进行操作时,必须采取引用的方式(别名,.,字段名或别名,-,字段名);,每个工作区中的表文件都有自己独立的记录指针;,一个表文件能在多个工作区中打开;,指定工作区可以使用命令:,SELECT / ,USE IN / ,由系统指定当前可用的最小号工作区可以使用:,SELECT 0,或,USE ,IN 0,3, 工作区操作示例,19,第四章 数据库与多表操作,4.2.6,建立表间的关联,1.,表间的永久关系,在数据库表间建立永久关系,建立永久关系的目的是:,为实现参照完整性提供依据,;,在查询设计器、视图设计器中,作为默认连接条件,;,在数据库设计器、数据环境设计器中直接显示为表索引之间的连线,作为表单和报表之间的默认关系,;,20,第四章 数据库与多表操作,建立永久性关联的方法:,可以通过“数据库设计器”建立永久关系,可以使用命令的方法建立永久关系,例如,要建立“学生”表和“成绩”表之间的永久性关系,假定两表已建索引,使用如下命令:,ALTER TABLE,成绩,ADD FOREIGN KEY,学号,TAG,学号,REFERENCES,学生,21,第四章 数据库与多表操作,删除表间的永久性关联,通过“数据库设计器” 删除永久关系:,在“数据库设计器”中,用鼠标单击连接线使线条变粗(说明已被选中),再按键盘的,DELETE,键即可。,使用命令删除永久性关联:,例如,要删除“学生”表和“成绩”表之间的永久性关系,ALTER TABLE,成绩,DROP FOREIGN KEY TAG,学号,SAVE,22,第四章 数据库与多表操作,2.,表之间的临时关系,表间的永久性关系并不能使子表的记录指针随父表的记录指针产生联动,而这一特性又是实际应用当中非常有用的,建立表间的临时关系可以达到这一目的。在建立了表间的临时关系后,父表可以控制子表。当在父表中移动记录指针时,子表中的记录指针也作相应移动。,创建表间的临时性关联,通过以下两种方法可以创建表间的临时性关联:,通过“数据工作期”窗口创建表间的临时性关联,通过命令,SET RELATION,也可创建表间的临时性关联,命令格式:,SET RELATION TO INTO ,INTO ,IN , ,ADDITIVE ,23,第四章 数据库与多表操作,在建立临时关系之前,子表必须先建立与,相匹配的结构复合索引(,.CDX,)或独立索引(,.IDX,)。,例如,在“学生”表与“成绩”表间建立临时关系,假定“学生”表尚未建立了任何索引文件,则命令代码如下:,USE,成绩,IN 1,USE,学生,IN 2,SELECT,成绩,INDEX ON,学号,TO ICJ,SELECT,学生,SET RELATION TO,学号,INTO,成绩,这时打开“浏览”窗口,同时浏览“学生”表和“成绩”表,改变学生表中的当前记录,可以看到“成绩”表浏览窗口中只显示相关联的记录。,24,第四章 数据库与多表操作,解除表之间的临时性关联,命令格式:,SET RELATION OFF INTO ,例如,要解除上述实例中已经建立的关联,命令代码如下:,USE,学生,IN 2,USE,成绩,IN 1,SELECT,学生,SET RELATION OFF INTO,成绩,也可以使用不带任何参数的,SET RELATION TO,命令,将当前工作区中的所有关系解除。,25,第四章 数据库与多表操作,4.3,有效性、触发器与参照完整性,4.3.1,有效性,1.,表的字段级属性,定义长字段名,设置字段标题,设置字段注解,建立输入掩码,设置字段的默认值,字段级有效性规则,26,第四章 数据库与多表操作,2.,数据库表的其他属性,长表名,数据库表可以使用长达,128,个字符的名称,作为数据库引用该表的名称。,表的记录级有效性规则,表的记录级有效性规则可以在同一条记录的多个字段间进行比较,完成有效性规则的约束。,27,第四章 数据库与多表操作,4.3.2,触发器,1.,触发器,触发器是建立在表上的表达式,当表中的任何记录被指定的操作命令修改时,在执行了字段级、记录级、主关键字等有效性检查后,触发器被激活。,利用触发器的工作原理,可以完成特殊的数据检验、参照完整性实施及数据库更新的维护操作等许多功能。触发器分为插入触发器、更新触发器和删除触发器三种,分别对应于数据库表记录的插入、更新和删除操作。,2.,创建触发器,以创建“插入触发器”为例,“插入触发器”就是当向表中插入或 追加记录时,将执行对应该触发器的一段程序或过程。,28,第四章 数据库与多表操作,3.,删除、移出触发器,直接在“表设计器”的触发器框中,删除指定的触发器即可。,使用如下命令也可实现:,DELETE TRIGGER,学生,FOR INSERT,如果从数据库中移去或删除表,则所有属于该表的触发器都从数据库中删除。,4.,修改触发器,直接在“表设计器”的触发器框中输入新的表达式即可。,29,第四章 数据库与多表操作,4.3.3,参照完整性实现,1.,参照完整性规则,参照完整性规则主要为了保证数据库表中数据的有效性和一致性,防止出现下列问题: ,造成子表中出现“孤立”记录。,当父表中没有关联记录时,将记录添加到相关子表中;,改变父表关键字值,而子表未作相应的改变;,删除父表记录,而子表未作相应的改变。,利用“参照完整性生成器”能很好地实施参照完整性规则的类型、规则实施表等。当更改或删除父表记录时,“参照完整性生成器”自动完成相关子表中的记录的级联操作。,30,第四章 数据库与多表操作,2.,实现参照完整性。,建立参照完整性的方法如下:,打开“数据库设计器”,选择已建立永久性关联的表;,启动“参照完整性生成器”。,可以采用以下两种方法进入到“参照完整性生成器”对话框:,选择菜单“数据库”,“,编辑参照完整性”;,在“数据库设计器”中选中表间连接线,单击鼠标右键后,选择弹出式菜单中的“编辑参考完整性”选项。,第四章结束,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!