您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第03次课(数据表的索引参照完整性多表操作)
全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作-8–六、数据表的索引p1091.索引的类型:简单索引、复合索引1).简单索引:每个索引对应一个文件;索引文件扩展名为:IDX;数据库表与自由表均可建立;使用不方便,即将被淘汰。2).复合索引①.主索引:只有数据库表(数据库中的数据表)才能建立主索引,自由表不能建立主索引;索引字段的值不允许重复,也不允许为空值(.Null.),否则无法创建主索引;一个数据库表只能建立一个主索引,但可以没有主索引。②.候选索引:数据库表、自由表均可建立多个后选索引;索引字段的值不允许重复,也不允许为空值(.Null.),否则无法创建后选索引;③.唯一索引:“唯一性”是指索引项的唯一,不是字段值的唯一;出现在索引表中的记录为数据表中第一次出现的记录;一个数据库表与自由表均可建立多个唯一索引。④.普通索引:数据库表、自由表均可建立多个普通索引;索引字段值相同的记录在数据表中相临出现。表1.2数据表中不同类型索引比较比较项目简单索引复合索引主索引候选索引唯一索引普通索引能够建立的索引数量多个一个多个索引文件数量多个一个索引字段内容是否允许重复允许不允许允许索引后,记录是否全部可见全部可见全部可见全部可见不一定全部可见索引文件扩展名IDXCDX能够建立本索引的文件所有表数据库表所有表是否可以通过命令建立可以不可以可以2.索引的建立:p111①.简单索引:格式:INDEXONeExpressionTOIDXFileName[FORlExpression]默认升序排列其扩展名为:IDX全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作-9–例如:Indexon姓名toxmfor性别=”男”&&对性别是男性的所有人按升序排序listIndexon性别+姓名toxmxb&&同时按性别与姓名对所有人升序排列listIndexon基本工资*-1tojbgz&&按“基本工资”降序排列listIndexondate()-出生日期tocsrq&&按“出生日期”降序排列listIndexonnot是否在职tosfzz&&按“是否在职”降序排列list②.复合索引:格式:INDEXONeExpressionTAGTagName[OFCDXFileName][FORlExpression][ASCENDING|DESCENDING][UNIQUE|CANDIDATE]可对“数据库表”与“自由表”进行复合索引;默认升序排列;索引名(TagName)最长为10个字符;其扩展名为:CDX复合索引分为:“结构化复合索引”与“非结构化复合索引”两种。表1.3复合索引比较结构化复合索引非结构化复合索引主文件名与数据表文件名相同主文件名与数据表文件名不同建立时不加OFCDXFileName选项建立时使用OFCDXFileName选项随数据表打开而打开数据表打开时不会打开索引文件,需要单独使用命令打开例如:Indexon姓名tagxm例如:Indexon姓名tagxmofxingming例如:Indexon姓名tagxmfor性别=”男”unique&&对性别是男性的所有人按升序排序索引类型为唯一索引索引的使用:①.索引打开:SETINDEXTOIndexFileList②.设置当前索引:SETORDERTO[nIndexNumber|[TAG]TagName]③.使用索引快速定位:SEEKeExpression全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作-10–注意:SEEK只能检索符合条件的第一条记录,对于符合条件的其它记录,可用SKIP指令指向(为什么?);④.删除索引:DELETETAGTagName|ALL七、数据的完整性p113数据完整性是指保证数据的正确性,数据完整性一般包括实体完整性、域完整性和参照完整性。1.实体完整性与主关键字:【通过索引实现】作用:保证表中记录惟一的特性,即在一个表中不允许有重复的记录。实现:使用主关键字....或侯选关键字.....。2.域完整性与约束规则:【通过设置数据库表结构实现】作用:保证表中字段的正确性实现:通过限定字段的类型.......与宽度..、字段..(.表.).有效性规则.....、默认值...来实现。【例题1.1】:在“订货管理”数据库职工表中,设定职工的工资有效性规则在1000至3000元之间,当输入的职工工资不在此范围时给出出错信息,职工的默认工资值是1200。操作步骤:在“规则”框中(或表达式生成器)输入表达式:工资=1000and工资=3000在“信息”框中(或表达式生成器)输入表达式:“工资输入错误,应该在1000—3000元之间”在“默认值”框中(或表达式生成器)输入表达式:1200注意:“有效性规则”是逻辑表达式,“信息”是字符型表达式,“默认值”的类型则以字段类型确定。3.参照完整性与表之间的关联:【通过限定参照完整性规则实现】作用:保证数据之间的完整性。实现:当插入、删除或修改表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。①.建立表之间的联系:在数据库设计器中设计表之间的联系时,要在父表中建立主索引或侯选索引,在子表中建立普通索引,然后通过父表的主索引(侯选索引)和子表的普通索引建立起两个表之间的联系。【例题1.2】:在订货管理数据库中(如图1.5所示),分别建立仓库和职工之间,职工和订购单之间,供应商和订购单之间的一对多联系。操作步骤:图1.5订货管理数据库全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作-11–用鼠标左键选中仓库表中的主索引仓库号,保持按住不放并拖动到职工表的仓库索引上,鼠标箭头会变成小矩形,最后释放鼠标。同样的方法建立职工表和订购单表,供应商表与订购单表的关系(如图1.6所示)。②.修改表之间的联系:如果在建立联系时操作有误,随时可以编辑修改联系。方法是:用鼠标右键单击要修改的联系,连线变粗,从弹出的快捷菜单中选择“编辑关系”,打开如图1.7所示的对话框,然后根据需要修改。注意:1.只有主索引与侯选索引才能与其它索引建立联系;2.只有主索引与主索引、主索引与侯选索引之间建立的联系才能是一对一关系,主索引(侯选索引)与其它索引之间只能建一对多联系。③.设置参照完整性约束:设置参照完整性约束之前,必须首先清理数据库。其目的是将数据库中各表逻辑删除的记录进行清理。清理完数据库后,用鼠标右键单击表之间任意联系(不管单击的是哪个联系,所有联系将都出现在参照完整性生成器中),打开参照完整性生成器。如下图所示:参照完整性规则包括:更新规则、删除规则、插入规则。更新规则:如图1.8所示主要用于当更新父表中的连接字段(主关键字)值时,如何处理相关的子表中的记录。可选择“级图1.6订货管理数据库各表之间的关系图1.7关系编辑对话框图1.8参照完整性生成器全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作-12–联”、“限制”、“忽略”等三个选项之一。级联:用新的关键字值更新子表中的所有相关记录。限制:若子表中有相关记录则禁止更新。忽略:允许更新,不管子表中的相关记录。删除规则:如图1.9所示主要用于当父表中的记录删除时,如何处理相关的子表中的记录。可选择“级联”、“限制”、“忽略”等三个选项之一。级联:删除子表中的所有相关记录。限制:若子表中有相关记录则禁止删除。忽略:允许删除,不关子表中的相关记录。插入规则:如图1.10所示主要用于当在子表中插入记录时,是否进行参照完整性检查。可选择“限制”、“忽略”等两个选项之一。注意:父表中插入记录不受任何限制。限制:若父表中不存在匹配的关键字值,则禁止插入。忽略:允许插入。【例题1.3】:为“学生管理”数据库的学生、课程、成绩三个表设计参照完整性规则。操作步骤:首先在学生管理数据库中建立表之间的联系,如图1.11所示;然后执行清理数据库操作;将它们的插入规则设定为“限制”,即插入成绩记录时检查相关的学生和课程是否存在,如果不存在则禁止插入成绩记录;将它们的删除规则设定为“级联”,即在删除学生记录和课程记录时,自动删除相关的成绩记录;将它们的更新规则也设定为“级联”,即当修改学生的学号或课程的课程号,也自动修改相关的成绩记录。(如下图所示)八、工作区的使用1.工作区的概念:对数据表处理加工时所用的工作区间。图1.9“删除规则”编辑图1.10“插入规则”编辑图1.11“学生管理”数据库关系编辑图1.12“学生管理”数据库参照完整性编辑全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作-13–2.工作区的特点:●一个工作区只能打开一个数据表;●如果不指定工作区,则系统默认在当前工作区操作;●VFP启动时,系统默认当前工作区为第1工作区;●系统工作区共有32767个工作区;除了工作区编号以外,每个工作区都有一个“别名”。前10个工作区的别名是A—J,工作区11—32767工作区的别名为W11—W32767。3.工作区的切换命令:格式:SELECTnWorkArea|cTableAlias如:SELECT3&&选择第三工作区SELECTA&&选择A工作区SELECT成绩&&选择“成绩”表所在的工作区注:检测当前工作区区号可用函数SELECT()4.使用及访问工作区的三种方法:方法一:INnWorkArea|cTableAlias&&例如Useabcinc方法二:.&&例如?基本信息.xm方法三:-&&例如?基本信息-.xm5.数据表之间的关联:①.数据表之间的“永久联系”:通过数据库设计器建立的联系。②.数据表之间的“临时联系”:通过命令建立的联系。格式:SETRELATIONTOeExpressionINTOnWorkArea|cTableAlisa例如:OPENDATABASE基本信息库USE基本信息IN1USE成绩表IN2SELECT1SETRELATIONTO考生号INTO2③.取消临时联系:格式:SETRELATIONOFFINTOnWorkArea|cTabkeAlias&&取消某个临时关系或SETRELATIONTO&&取消全部临时关系九、数据表排序①.格式:SORTTOTableNameONFieldName1[/A|/D|/C][,FieldName2[/A|/D|/C]…][FORlExpression][FIELDSFieldsNameList][ASCENDING|DESCENDING]例如:SORTTOD:\XMONXM&&将当前数据表按XM字段升序排列,并生成数据表XM②.索引与排序的区别:表1.4索引与排序的比较比较项目索引排序全国计算机等级考试(二级VisualFoxPro)VisualFoxPro数据库及其操作-14–是否产生新文件是是新产生文件的类型索引文件数据库文件索引或排序后是否自动生效生效不生效新生成文件中的内容索引字段内容选择的所有内容
本文标题:第03次课(数据表的索引参照完整性多表操作)
链接地址:https://www.777doc.com/doc-2211369 .html