
参照完整性
极体-马鞍山长江大桥
2023年2月22日发(作者:a3排版)全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作
六、数据表的索引
1.索引的类型:
①.主索引:
只有数据库表(数据库中的数据表)才能建立主索引,自由表不能建立主索引;
索引字段的值不允许重复,也不允许为空值(.Null.),否则无法创建主索引;
一个数据库表只能建立一个主索引,但可以没有主索引。
②.候选索引:
数据库表、自由表均可建立多个后选索引;
索引字段的值不允许重复,也不允许为空值(.Null.),否则无法创建后选索引;
③.唯一索引:
“唯一性”是指索引项的唯一,不是字段值的唯一;
出现在索引表中的记录为数据表中第一次出现的记录;
一个数据库表与自由表均可建立多个唯一索引。
④.普通索引:
数据库表、自由表均可建立多个普通索引;
索引字段值相同的记录在数据表中相临出现。
2.索引的建立:
1)命令方式建立
格式:INDEXONeExpressionTAGTagName[FORlExpression][ASCENDING|DESCENDING]
[UNIQUE|CANDIDATE]
ONeExpression:索引关键字,用于实现对字段进行排序
TAGTagName:索引名,用于区分同一索引文件中的不同索引
FORlExpression:索引条件,用于排除不参与索引的记录
ASCENDING|DESCENDING:ASCENDING升序,DESCENDING降序
UNIQUE|CANDIDATE:UNIQUE建立“唯一索引”,CANDIDATE建立“侯选索引”,不带
该参数建立“普通索引”;重要提醒:用指令方式不能建立“主索引”
默认升序排列;
索引名(TagName)最长为10个字符;
索引文件扩展名为:.CDX
2)对话框方式建立
3.索引的使用:
①.索引打开:
SETINDEXTOIndexFileList
②.设置当前索引:
SETORDERTO[nIndexNumber|[TAG]TagName]
全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作
③.使用索引快速定位(查找):
SEEKeExpression
注意:SEEK只能检索符合条件的第一条记录,对于符合条件的其它记录,可用SKIP指令指向
(为什么?)
④.删除索引:
DELETETAGTagName|ALL
七、数据的完整性
数据完整性是指保证数据的正确性,数据完整性一般包括实体完整性、域完整性和参照完整性。
1.实体完整性与主关键字:
作用:保证表中记录惟一的特性,即在一个表中不允许有重复的记录。
实现:通过建立主关键字或侯选关键字来实现。
2.域完整性与约束规则:
作用:保证表中字段的正确性
实现:通过限定字段(表)的有效性规则来实现。
【例题1.1】:在“订货管理”数据库职工表中,设定职工的工资有效性规则在1000至3000元之间,
当输入的职工工资不在此范围时给出出错信息。
操作步骤:
在“规则”框中(或表达式生成器)输入表达式:工资>=1000and工资<=3000
在“信息”框中(或表达式生成器)输入表达式:“工资输入错误,应该在1000—3000元之间”
图1.5字段“有效性”规则的建立
注意:“有效性规则”是逻辑表达式,“信息”是字符型表达式。
3.参照完整性与表之间的关联:
作用:保证数据之间的完整性。
实现:通过建立参照完整性约束来实现。
全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作
①.永久关系的类型
一对一关系:主表中任意一条记录,在子表中均最多有一条记录与之对应;
一对多关系:主表中至少存在一条记录,在子表中有多条记录与之对应;
多对多关系:主表中一条记录可能对应子表多条记录,子表中一条记录也可能对应主表中多条
记录。注意,在数据库表中,不能建立多对多关系。
②.永久关系的建立
第一步:在主表中建立主索引或侯选索引;
第二步:在子表中建立主索引、侯选索引或普通索引
第三步:在主表中用鼠标左键拖动所建立的主(侯选)关键字到子表对应索引上,然后松开鼠
标即可。
图1.6数据库表“一对多”永久关系
③.永久关系与索引类型的关系
图1.8永久关系与索引类型之间的关系
注意:主表只能建主索引或侯选索引;子表可以建主索引、侯选索引或普通索引。
④.设置参照完整性约束
设置参照完整性约束之前,必须首先清理数据库。其目的是将数据库中各表逻辑删除的记录进行
清理。清理完数据库后,用鼠标右键单击表之间任意联系(不管单击的是哪个联系,所有联系将都出
现在参照完整性生成器中),打开参照完整性生成器。如下图所示:
全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作
参照完整性规则包括:更新规则、删除规则、插入规则。
更新规则:
主要用于当更新父表中的连接字段(主关键字)值时,如何处理相关的子表中的记录。可选择“级
联”、“限制”、“忽略”等三个选项之一。
级联:用新的关键字值更新子表中的所有相关记录。
限制:若子表中有相关记录则禁止更新。
忽略:允许更新,不管子表中的相关记录。
删除规则:
主要用于当父表中的记录删除时,如何处理相关的子表中的记录。可选择“级联”、“限制”、“忽略”
等三个选项之一。
级联:删除子表中的所有相关记录。
限制:若子表中有相关记录则禁止删除。
忽略:允许删除,不关子表中的相关记录。
插入规则:
主要用于在子表中插入记录时,是否进行参照完整性检查。可选择“限制”、“忽略”等两个选项之一。
注意:父表中插入记录不受任何限制。
限制:若父表中不存在匹配的关键字值,则禁止插入。
忽略:允许插入。
图1.9参照完整性生成器