创建表的索引与表间关系.ppt_第1页
创建表的索引与表间关系.ppt_第2页
创建表的索引与表间关系.ppt_第3页
创建表的索引与表间关系.ppt_第4页
创建表的索引与表间关系.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1,设置数据库表属性创建数据库表的索引及表间关系,设置数据库表属性建立数据库表索引建立数据库表间的关系,2,设置数据库表的属性的作用:,根据前面所学的知识内容已经知道,组成数据模型的三要素是:1、数据结构用于描述现实世界数据(系统)的静态特性即描述所研究的对象的逻辑组成以及它们之间的逻辑关系。2、数据操作用于描述现实世界数据(系统)的动态特性是数据库中各种数据的操作集合以及相应的操作规则。3、数据的约束条件一组完整性规则的集合是给定的数据模型中的数据及其联系所具有的制约和依存关系,用以保证数据的正确、有效、相容。,3,数据的约束条件(数据模型的完整性规则),为了维护数据库中的数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性。1.实体完整性指主关键字的值不能为空。若取了空值说明存在某个不可标识的实体。例如:学生关系中主关键字“学号”不能为空,选课关系中的主关键字“学号+课程号”,两个属性都不能为空。,4,2、参照完整性规定两个相关联的表之间的主关键字和外部关键字必须保持一致性,不能因为一个表的记录改变时,造成另一个表的内容变成无效的值。含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表中的数据操作是否正确。在VFP中,用“参照完整性生成器”设置两表之间的参照完整性。,3、用户定义的完整性(域完整性)某一具体应用所涉及的数据必须满足的语义要求。如:“课程”关系中,“周学时”和“学分”均不能为负数;某些数据的输入格式要有一些限制等。数据类型的定义就是属于用户定义完整性的范畴。在VFP中,用“有效性规则”和“触发器”设置用户定义完整性。,5,与自由表相比,数据库表具有以下特点:,1、数据库表可以使用长表名,表中字段可使用长字段名;2、可以为数据库表中的字段指定标题和添加注释;3、可以为数据库表中的字段指定默认值和输入掩码;4、数据库表的字段有默认的控件类;5、可以为数据库表规定字段级规则和记录级规则;6、数据库表支持主关键字、参照完整性和表之间的联系;7、支持insert、update和delete事件的触发器。因此,一旦某个表从数据库中移出,那么与之联系的所有主索引、默认值及有关的规则都随之消失。因此,将某个表移出的操作会影响到当前数据库中与该表有联系的其他表,6,设置表属性(参看P117-124),数据库表的属性可以分为两类:一类是涉及表的字段属性以及字段的有效性规则,通过数据库表设计器中的“字段”选项卡设置;另一类涉及记录的有效性规则和触发器,通过数据库表设计器中的“表”选项卡设置;,有效性规则是一个与字段或纪录相关的逻辑表达式。当用户往表中插入新记录或修改记录值时,将利用此规则检验输入数据的正确性。通过对用户输入的值加以限制,达到数据有效性检查。,7,“字段”选项卡,字段值在“浏览”窗口、表单或报表中显示时的风格。,输入该字段值时使用的格式。,字段显示时使用的名称。,提醒用户该字段的确切含义。用于对数据库的维护,8,例题:设置“学生”表的显示属性(P119),1)“学号”字段设置“输入掩玛”“9999999”2)“姓名”字段设置“格式”“AT”3)“出生日期”字段设置“标题”“学生生日”4)“简历”字段设置“字段注释”“学生入学前的简历”注意:设置属性时,先选中要设置属性的字段。,9,字段有效性规则:控制用户输入到字段中的信息。,字段值的有效范围,字段值不符合规则时,显示的提示信息,没有输入字段值时该字段的默认值,例如:为学生表的“性别”字段设置有效性规则。性别=“男”.or.性别=“女”,10,“表”选项卡记录有效性规则:用于记录更新时对整个记录进行检验,例如:为“课程”表设置记录有效性规则。规则:周学时学分信息:”一门课程学分的设置应小于周学时”,例如:“教员”表中教员参加工作时间不能小于出生日期规则:参加工作出生日期信息:参加工作时间不能在出生日期之前,11,设置“触发器”,触发器也是一个逻辑表达式。在发生插入记录、修改记录和删除记录这些事件时,触发执行这个表达式。是保证数据完整性控制的另一种形式。,例如:为“教员”表定义了规则:更新记录时,“教授的年龄应大于或等于35岁”即可。触发器设置完毕后,如果将一个小于35岁的职工的职称修改为教授,系统将给出“触发器失败”的提示信息。,25,12,使用触发器的注意事项,1、不能对有触发器的表使用insert命令,但可以使用insert-SQL命令;2、发出PACK不会激发任何触发器;3、发出ZAP不会激发删除触发器;4、如果更新具有删除标记的记录,不会激发触发器。,13,课堂练习,1、为“成绩”表设置有效性规则:“期末成绩”字段的取值范围为0100。2、为“学生”表设置有效性规则:限制“学号”字段前两位只能是“04”,并且输入的学号必须7位。3、为“教员”表设置有效性规则:参加工作的时间必须大于出生日期。4、为“教员”表设置触发器:禁止删除1945年以后出生的教员纪录。,1、设置字段有效性规则期末成绩=0,2、设置字段有效性规则(SUBSTR(学号,1,2)=04“.AND.LEN(ALLTRIM(学号)=7,3、设置记录有效性规则工作时间出生日期,4、设置删除触发器year(出生日期)1945或:出生日期1944-12-31,14,建立表索引,主要内容:索引的概念索引的类型索引文件的类型索引的创建及使用,15,一、索引的概念,以书为例:,快速找到某个章节的方法,16,索引的概念,按“学号”排序的索引文件,“学生”文件,17,索引的概念,所谓索引,是对表中的数据根据关键字(如学号)进行逻辑排序的一组指针(指向原始记录号),由此对表中的数据建立一种逻辑顺序。在VFP中,表的索引保存在索引文件中。当表打开时相应的索引文件也一起被打开,如果设置某一索引文件的指针处于作用状态,此时,表的数据操作就按逻辑顺序进行。,为表建立索引可以达到以下目的:1、为处理或输出信息时对数据进行某种排序2、实现在表中快速查询3、强制实现表中记录的唯一性4、建立表之间的联系。,18,二、VFP索引的类型,19,1、主索引,主索引:作为主索引的字段或索引表达式,其值必须是唯一。例如:同一班级的同学的学号不可能一样,则“学号”字段就可以做主索引。同姓名的同学,专业可能不同,因此也可以用“姓名+专业”做主索引表达式注意:主索引只能创建于数据库表中,且对一个数据表只能建一个主索引。,20,主索引的标志,主索引标志,21,2、候选索引,候选索引:和主索引具有相同的特性,建立候选索引的字段可以看作是候选关键字,所以可以为每个表建立多个候选索引。,注意:候选索引可以在数据库表和自由表中创建。,22,3、普通索引,普通索引:也可决定记录的处理顺序,允许字段中出现重复值。可以为每个表建立多个普通索引。,例如:“学生”表中,“姓名”字段有两个值是相同的。则“姓名”字段只能作普通索引。,23,4、唯一索引,唯一索引:在唯一索引中,系统只在索引文件中保存第一次出现的索引值,即只能找到第一次出现的记录。对于该字段重复的记录,尽管它们仍然保留在表中,但在唯一索引的表中是看不到它们的。,24,三、索引文件的类型,在VFP中,表的索引被保存在索引文件中。索引文件是一个只包含:索引字段的值和记录号一一对照的表。按索引的组织方式共有两类索引文件:传统索引文件(.IDX)只包含一个索引关键字表达式,且文件不能随着表的打开而打开。复合索引文件(.CDX)可包含多个索引表达式,如同是多个.IDX文件合成在一个文件中一样。,25,两类复合索引文件的区别:,结构复合索引文件名与相应的表文件名相同(扩展名不同),并且打开表时,索引文件会自动打开。关闭表时自动关闭。当在表中进行修改时,系统会自动对全部索引记录进行维护。非结构复合索引文件名由用户确定,但不能与表同名。它不会因表的打开而自动打开,必须用命令打开。,通常只使用结构复合索引,26,四、创建索引,以“学生”表为例,介绍操作步骤:(1)选定要建立索引的表,选定表,单击,27,(2)在“字段”选项卡中,定义字段是否索引,在“字段”选项卡中定义是否索引,单击,28,(3)在“索引”选项卡中确定索引类型,索引类型,排序顺序,索引标识名,默认字段名就是索引名,给出索引表达式。如:STR(入学成绩)+专业。最多可有240个字符,给出筛选表达式。即只对表中满足条件的记录根据指定的索引表达式建立索引,在索引列表中删除选中索引,设置完毕,单击。,29,五、使用索引(打开索引文件),注意:索引建立后,必须选定,才能发挥作用。选定方法是:在表的“浏览”方式下,单击“表”“属性”,在“工作区属性”对话框中选定索引顺序。,30,单击“工作区属性”对话框中“确定”按钮,则表中记录按指定顺序排列。,31,注意:,表中记录的实际位置(物理顺序)与建不建索引及索引文件是否被打开没有任何关系,当建立并选择了索引文件后,系统仅仅是根据索引要求的记录顺序(逻辑顺序)来处理表中记录。如浏览、编辑修改、计算等等对表的操作。在浏览窗口中看到的就是记录的逻辑顺序。你可认为对表中记录排了序,并非把存放在磁盘上记录的位置作了重新的安排。,32,例如:下面“学生”表,使用GOTOP命令将指向不同的记录;而GO1指向同一条记录。,4,33,表间关系与参照完整性,主要内容:表间关系的类型表之间的永久关系表之间的临时关系参照完整性第三章小结,34,表间关系的类型,关系是表之间的一种链接,它允许用户不仅能从当前表中访问数据,而且可以访问其他表中的数据。表之间创建关系时,相关联的表中一定要有公共的字段并已在这些字段上建立了索引,通过连接这些字段来表示表间的联系,最常见的联系类型是一对多的联系。其中:一方称为主表(主控表),多方称为子表(受控表)。,在VFP中根据所建关系能否长久保存在数据库中,两表之间的关系分为永久关系和临时关系两种。,35,表之间的永久关系,永久关系在数据库表之间创建的关系,这些关系被作为数据库的一部分保存起来,随数据库的存在而存在。永久关系的作用:在“查询设计器”和“视图设计器”中,自动作为默认连接条件;在“数据库设计器”中,显示为联系表索引的线;作为表单和报表的默认关系,在“数据环境设计器”中显示;用来存储参照完整性信息。创建永久关系的前提:两个表之间要有公共字段,并在公共字段上已建立了索引;在公共字段上,父表必须是主索引,子表为普通索引。,36,永久关系的建立与编辑,例如:在“学生”表与“成绩”表之间建立关系,首先打开“数据库设计器”,在两表之间的索引标识上拖动鼠标。注意:父表的索引一定是主索引。,(2)关系的编辑,单击关系线,使其选中状态,再单击右键,调出快捷菜单,选择“编辑关系”命令。,(1)关系的建立,37,注意:,38,表之间的临时关系,永久关系并不控制各表内记录指针间的关系,在开发VFP应用程序时,有时需要当父表中的记录指针移动时,能控制子表中的记录指针自动移动到对应记录上,这种控制方式的实现需要使用到表之间的临时关系。建立临时关系可用SETRELATION命令,也可使用数据工作期的方式。,39,使用数据工作期的方式建立临时关系,建立临时关系前,子表必须在建立关系的字段上建立索引。例:在“课程”表与“成绩”表之间建立临时关系。先在“成绩”表的“课程代号”字段上建立普通索引,然后单击“窗口”“数据工作期”,打开“数据工作期”对话框。,40,小结,临时关系在表打开的期间建立并生效,表关闭后该关系自动解除。永久关系只适用于数据库表,而临时关系既适用于数据库表,也适用于自由表。在VFP中永久关系和临时关系各有长处,所以在一个应用程序中,对数据库中的表可能即要建立永久关系,又要建立临时关系。,41,参照完整性,在数据库中,保证数据正确的特性叫做数据完整性。数据完整性由三部分组成:实体完整性、域完整性、参照完整性。实体完整性是保证表中记录的唯一性,用主关键字(主索引)来保证;域完整性主要用于数据输入正确性的检验,用有效性规则来保证;,42,1、参照完整性的概念,参照完整性是数据编辑时的约束规则,建立在具有永久性关系的数据库表之间。用于控制数据一致性,尤其是不同表的主关键字和外部关键字之间的一致性。建立参照完整性就是建立一系列规则,以便在插入、修改或删除记录时,能保持已定义的表之间的永久关系。,43,设置参照完整性应满足三个规则:,1、在相关联的数据表之间,子表中的每一个记录在对应的主表中都必须有一个父记录;2、对子表作插入记录操作时,必须确保主表中存在一个父记录;3、对主表作删除记录操作时,其对应的子表中必须没有子记录存在。,44,2、设置参照完整性,用下面几种方法都可以打开“参照完整性生成器”:“数据库”“编辑参照完整性”在“数据库设计器”中双击两表之间的关系连线,显示的“编辑关系”对话框中,单击“参照完整性”按钮在数据库设计器中单击右键,在快捷菜单中选择“编辑参照完整性”命令,注意:不管单击的是哪个联系,所有联系都将出现在参照完整性生成器中。,45,设置参照完整性前应先清理数据库。,打开“参照完整性”生成器之前,有时需要使用该命令清理数据库。命令的作用是:删除带有删除标记的行,以减少数据库的大小。,46,设置“更新规则”,用于指定修改父表中索引字段的值时所用的规则,级联对父表索引字段的更改,会在相关的子表中反映出来。如果选择了该选项,不论何时更改父表中的某个记录的索引字段,系统将自动更改所有相关子表记录中的对应字段。,限制禁止更改父表中的索引字段的值,这样在子表中就不会出现孤立的记录,忽略更新父表中某记录的索引字段的值而不管子表中是否有相关的记录,47,设置“删除规则”,用于指定在删除父表的记录时所用的规则,级联指定在父表中进行的删除在相关的子表中反映出来。如果在删除规则中选择了级联,则无论何时删除父表中的记录,相关子表中的记录自动删除。,限制当在子表中有相关记录时,不允许在父表中删除记录。,忽略允许删除父表中的记录,不管子表中是否有其相关的记录,48,设置“插入规则”,用于指定在子表中插入或更新记录时所用的规则,限制如果在父表中没有相匹配的记录,则禁止在子表中添加新记录。,忽略允许向子表中插入记录,而不管父表中是否有匹配的记录,49,设置完毕,50,第三章小结,所学的主要内容:1、表的基本操作,包括:表结构的概念、表结构的建立、显示、修改与复制、表中记录的追加、插入与显示记录指针的概念,文件开始标志与文件结束标志,记录指针的绝对移动和相对移动。数据的编辑方式和浏览方式修改,记录的物理删除与逻辑删除。,51,2、建立数据库,设置数据库表的属性输入、输出格式、默认值、注释等有效性规

温馨提示

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

评论

0/150

提交评论