计算机VFP第四章及习题.ppt

上传人:zhu****ei 文档编号:3589781 上传时间:2019-12-18 格式:PPT 页数:62 大小:1.02MB
返回 下载 相关 举报
计算机VFP第四章及习题.ppt_第1页
第1页 / 共62页
计算机VFP第四章及习题.ppt_第2页
第2页 / 共62页
计算机VFP第四章及习题.ppt_第3页
第3页 / 共62页
点击查看更多>>
资源描述
第四章数据库操作,学习数据的管理方法,学习本章的要求,掌握创建数据库、建立表之间的关联和数据完整性操作的各种方法中的一种,能熟练进行数据库方面的各项必要操作;(最低)能记住各种必要操作的相应命令,应付考试能研究各种命令执行的先行条件以及操作后的结果,同一操作的各种实现方法的不同之处以及细节(最高要求),数据库操作,4.1数据库的操作()4.2建立表间的关系()4.3数据完整性(),4.1数据库的操作,数据库的设计(自学)数据库的相关操作:打开、关闭建立、修改数据库表的相关操作添加表、创建数据库表移去或删除表为数据库表建立主索引,操作的可能途径菜单:文件菜单数据库菜单快捷菜单数据库设计器工具栏命令,回目录,数据库的设计基本步骤(自学),需求分析:确定数据库要存储哪些信息(沟通无极限!)确定所需的表确定所需的字段(名字、类型)主关键字:用来唯一地确定表中的每条记录【实体完整性的体现】外部关键字:体现了一个表与另外一个表有联系【参照完整性的体现】考虑实体完整性考虑域完整性考虑参照完整性确定各表之间的关系(ER图在逻辑模型中的体现)完善数据库,对于关系型数据库,这2步通常的做法是:1、用ER图进行概念建模2、然后转化为关系模式:T(R1,R2,Rn),数据库的设计举例(自学),例如:设计“学生成绩管理数据库”需求分析:该库应存放有关学生的基本情况、课程设置情况、考试成绩等方面的信息。要求从中可以查出每个学生各门课程的成绩,某门课程有哪些学生选修了,以及这门课程的考试成绩等数据信息。用表格描述之。(沟通过程中进行)确定需要的表:“学生信息”表,其中存放有关学生的基本情况;“课程信息”表,其中存放开设的各种课程“成绩信息”表,其中存放考试成绩确定需要的字段:学生信息表(学号,姓名,性别,出生日期,专业,年级)课程信息表(课程号,课程名,学分)成绩信息表(学号,课程号,成绩),数据库的设计举例(自学),4.确定各表之间的关系,外部关键字,主关键字,5.完善数据库:重新研究一下设计方案,检查可存在的缺陷,并进行相应的修改,外部关键字,主关键字,数据库的建立、关闭、打开、修改,菜单方式命令方式,数据库的相关操作,createdatabaseclosedatabaseopendatabasemodifydatabase,数据库与表之间的关系,管理的关系(可以把数据库理解为一个容器)数据库管理数据表、视图等对象数据库并不真正含有这些对象,而是只记录了相关的条目信息。数据库中的表、视图和其他对象都单独地存放在磁盘上,有自己对应的文件管理它们的数据库是另外一个文件,不管是“移去”数据库,还是“删除”数据库的操作,都不会删除数据库中的表等对象;,数据库,数据库表1,数据库表2,数据库表3,自由表3,只是失去一些特权而已,数据库表和自由表可以相互转换将数据库表从数据库中移出,数据库表便成了自由表,并且同时失去了数据库表的特点;反之,当将一个自由表加入到某数据库时,自由表便成了数据库表,且同时具有数据库表的诸多特点,数据库表的特点:具有长字段名128个字符可以建立主索引、触发器可以建立有效性规则,数据库表的操作,数据库表3,不在数据库中的表是自由表,在数据库中的是数据库表,一个数据表在同一时刻只能隶属于一个数据库(即:不能同属于多个数据库)。如想将一个数据库中的表移到另一个数据库,必须先将数据表从原数据库中移出,使之成为自由表,然后再添加到另一数据库中。,数据库A,数据库表1,数据库表2,数据库B,自由表2,数据库表2,数据库表3,数据库表的操作,数据库表的操作,创建数据库表的两种方法,例子:创建数据库表,根据第一章ER图习题例五建立图书管理数据库,包含以下4个表:,14,ER图练习:例五、图书借阅管理系统,关系模式:借书人(借书证号,姓名,单位)图书(书号,书名,数量,位置,出版社名)借阅(借书证号,书号,借书日期,还书日期)出版社(出版社名,邮编,Email,电话,地址),借书人(借书证号,姓名,单位),图书(书号,书名,数量,位置,出版社名),借阅(借书证号,书号,借书日期,还书日期),出版社(出版社名,邮编,Email,电话,地址),返回,4.2建立表间的关系,4.2.1基本概念,4.2.3表的连接,4.2.2表间的临时关联(自学),回目录,4.2.1基本概念,表间联系分类,临时关联,永久关联,在使用过程中临时建立的表间联系,也称为关联,退出VFP后将自动解除下次使用时需要重新建立,为了兼容低版本,不建议使用!,主要为建立表之间的数据完整性而引入的,也称为连接,VFP将创建好的永久关联信息保存在数据库中,一旦打开数据库,表间的永久关联就立即生效,ER图的回顾,职工,经历,教育经历,1,n,职工(职工号,姓名,性别,职称,出生日期,婚否,)教育经历(编号,职工号,开始时间,结束时间,描述)工资(编号,职工号,津贴,会费,公积金,),1、职工有职工号、姓名、性别、职称、出生日期、婚否等属性;2、一个职工有多个教育经历,教育经历有编号、开始及结束时间和描述等信息。3、一个职工只对应一个工资单,一个工资单有编号,津贴、会费公积金等,有,1,工资,1,ER图的回顾,两个职工号分别是参照职工表的外部关键字,学生信息,成绩信息,课程信息,m,n,学生信息(学号,)成绩信息(学号,课程号,成绩)课程信息(课程号,),成绩,1,N,1,N,成绩信息中的学号和课程号组合是主键(primarykey)学号是参照学生信息表的外键(foreignkey)课程号是参照课程信息表的外键(foreignkey),ER图的回顾,VFP支持的表间的联系分为:“一对一”关系(1:1)“一对多”关系(1:N),父表,子表,表之间要建立关联必须要有相关联的字段。外部关键字,从ER图到关系模式的转换规则可以看出,ER图中的M:N联系中的联系(Relationship)最后也转化为一个关系模式【关系模式在确定每个属性的类型、长度、有效性规则以后就是表】,所以表和表之间没有M:N的联系。ER图中2个实体之间的M:N联系实际上最终转化为3个表之间的2个1:N联系。,为什么没有M:N?,外部关键字(foreignkey)关系模式R中属性或属性组x不是R的主关键字,但x是另外一个关系模式的主关键字,则称x是R。外部关键字是两个表联系的纽带,职工(职工号,姓名,出生时间,性别,家庭住址)教育经历(编号,职工号,开始时间,结束时间,描述),4.2.3表的连接,1.建立连接(1)建立连接的目的:设置参照完整性的前提建立视图和查询(第六章内容)时涉及到多张表时,要先建立连接,回目录,(2)建立连接的条件:A:父表要建立主索引或候选索引B:子表要建立索引,主索引候选索引,普通索引唯一索引,1:1,1:N,1,N,1,N,Primarykey/主索引,普通索引,两者的组合作为primarykey,主索引Primarykey,普通索引foreignkey,2.编辑与删除永久关系(1)编辑关系。在“数据库设计器”中双击数据库表之间的关系连线,或右键单击关系连线,在弹出的菜单中选择“编辑关系”,会弹出如图4-19所示的“编辑关系”对话框,在该对话框中可修改已建立的关系。,(2)删除关系。单击关系连线,使其变粗,然后按键盘上的Delete键,或右键单击关系连线,在弹出的菜单中选择“删除关系”,可删除已建立的关系,建立表之间连接的总结,分析表之间的联系(1:1or1:N)建立合适的索引:1:1:父子表都对主关键字建立主索引或候选索引1:N:父表对关键字建立主索引或候选索引,子表对外部关键字建立普通索引或唯一索引建立联系,返回,数据完整性,保证数据的正确性,记录级,字段级,表之间,4.3数据完整性,4.3.1实体完整性,4.3.2域完整性,4.3.3参照完整性,记录级,字段级,数据表级,回目录,保证数据的正确性,4.3.1实体完整性,作用:保证表中记录的正确性,保证表中记录的唯一性,设置主关键字或候选关键字,保证表中相关字段满足一定的关系,设置“记录有效性规则”,保证对表中的记录进行插入、删除、修改操作时满足一定的条件,设置“触发器规则”,内容,有效性规则:一个与记录或字段相关的表达式,通过对用户输入的数据加以限制,提供数据有效性检查。按激活方式分类有效性规则只能存在于数据库表中而不能存在于自由表中。,记录有效性规则,字段有效性规则,1、记录有效性规则的设置(1)作用:检验同一记录中一个或多个字段的值组合在一起是否有效。即:通过同一个记录不同字段间应有的逻辑关系,来保证记录的正确性。,整条记录输入或修改完后才开始检查记录有效性规则,(2)触发时机:,规则,信息,通常是一个返回值为逻辑值的表达式,表示检验的规则,当违反检验规则时,显示的错误提示信息,选项,Eg:课程信息表中:规则:学时等于学分18,若不符合此规则就提示“学时应为学分的18倍”的错误信息,规则文本框输入:学时=学分*18信息文本框输入:学时应为学分的18倍,一定要加定界符,否则就出错,2.触发器的设置作用:控制对记录所作的非法操作类型:插入、更新、删除触发规则:通常是一个返回值为逻辑值的表达式当触发规则返回真(.T.)时,允许操作,返回假(.F.)时,显示“触发器失败”信息,以禁止执行插入、更新或删除操作;,1、插入触发器:输入记录的插入规则,当向表中插入或者追加记录时,触发此规则,并进行相应的检查,当检查结果为“真”时,允许插入记录,否则,拒绝插入。,2、更新触发器:输入记录的修改规则当修改表中的记录时被触发,并检查更新的记录是否满足指定的规则,若满足,保存修改内容;否则,提示“触发器失败”信息,拒绝修改。,Eg:只能对男生或通过四级考试的学生记录进行更新,更新触发规则:性别=“男”or四级通过否,3、删除触发器:输入记录的删除规则当从表中逻辑删除记录时,检查删除触发规则。当检查的结果为“真”时,允许删除,否则,禁止删除,并提示“触发器失败”信息。,Eg:只能删除姓名为空的记录,删除触发规则:empty(姓名)表示当姓名为空时可以删除,否则不能删除,返回,3.表名和表注释的设置(1)表名的设置。VFP除支持数据库表使用128个字符的长表名外,还允许在表设计器的“表”选项卡中为正在创建或修改的表指定最长128个字符的别名,方法是在“表名”后的文本框中直接输入别名。但要注意,此处指定的别名不能作为表文件名。(2)表注释的设置。在“表注释”区域可以输入对表的注释信息。一旦为某个表设置了注释,当在“项目管理器”选定该表时,注释信息就会在“项目管理器”的底部显示出。,返回,4.3.2域完整性,作用:保证表中字段的正确性,数据类型的定义,内容,设置字段的默认值,建立表结构时设置,字段输出格式的限制,设置表的显示格式(自学),字段输入格式的限制,设置表的输入掩码,限制字段的取值范围,设置字段有效性规则,设置字段默认值,1.字段“显示”属性的设置(1)格式:设置字段的输出显示格式,浏览窗口,表单,报表,格式码格式码的含义A禁止输出数字、空格和标点符号,只允许文字字符D输出日期时,使用当前设置的格式。L输出数值数据时在有效值前显示填充的前导零,而不是用空格字符。T输出时禁止输入字段的前导空格字符和结尾空格字符的显示。!输出时,把输入的小写字母转换为大写字母。,1、由于A、T、!禁止输出“输入字符”中的相关符号,它们也起到了限制输入的作用,2、输出格式可联合使用,表示同时限制几种输出,注意,eg:,课程号字段的显示格式为:!T;学分字段的显示格式为:L;姓名字段的显示格式为:AT!,2.输入掩码:指定字段输入值的格式、限制数据的输入范围、减少输入错误、提高输入效率。,输入掩码输入掩码的含义X允许输入字符9允许输入数字#允许输入数字、空格与正(+)负(-)号$自动显示setcurrency命令指出的货币号*在指定宽度中,在有效值的左边显示星号.指出数值数据的小数点所在的位置,用逗号分割数值型数据的整数部分,一般用于分割千分位,输入掩码必须按数据的位数指定格式,eg,1.课程号(C,2),输入掩码设置为99,表示只允许输入2位数字2.学号(C,10),输入掩码设置为99999999993.姓名(C,8),输入掩码设置为XXXXXXXX4.成绩(N,5,1),输入可掩码可设置为999.9,(3)标题字段在浏览窗口、表单或报表中显示时设置一个代表字段的标题。可增强字段的可读性。,(4)字段注释说明字段的含义,当在“项目管理器”中选择该字段时,将显示该字段的注释。,3.“字段有效性”的设置,规则:(1)作用:设置对字段输入数据的有效性进行检查条件,若输入的数据不符合条件则显示信息框中的提示信息(2)触发时机:一个字段输入或修改完后检查字段有效性规则,信息:违反规则时的提示信息默认值:字段的默认值,向表中添加记录时,默认值会自动出现。可以是除了通用型外的任何类型的常量、变量、表达式,eg,1、学生的年龄1270year(date()-year(出生日期)=12andyear(date()-year(出生日期)=0and入学成绩0and学分0and学时=0and成绩=100,返回,1.参照完整性的概念参照完整性(ReferentialIntegrity)简称RI。设置RI就是建立一组有永久联系的表之间的规则,当插入、更新或删除表中记录时,以保证各相关表之间数据的完整性。设置参照完整性涉及两个或两个以上的表,当插入、修改或删除一个表的数据时,通过参照引用另一个表中的数据,检查对表的操作是否正确。,4.3.3参照完整性,2.建立参照完整性的原则和规则,建立RI之前必须首先建立表间的连接,并满足如下原则:,原则:在连接的数据表之间,子表中的每一个记录在对应的父表中都必须有一个父记录。父表中的记录可以在相应的子表中不出现子记录,基于以上原则:分析对父表和子表分别进行增、删、改操作,父表,插入,删除,更新,无异常,删除父表中记录可能会导致子表中的记录没有父记录,更新父表中主关键字,可能导致子表中出现没有父记录,子表,插入,删除,更新,在子表中插入一条父表中主关键字不存在的新记录,会导致子表中的记录没有父记录,无异常,更新子表中的记录可能导致外部关键字在父表中对应的主关键字不存在,删除规则,更新规则,插入规则,规则:第一,删除规则:在父表中删除记录时,检查子表中有无对应的记录,若没有则可删除父表中的记录,否则不能被删除;第二,更新规则:若父表中的数据被更新时会导致子表中出现无父记录的记录,则父表中的该数据不能被更新;第三,插入规则:在子表中插入记录或更新记录时,检查父表中有无匹配的记录,若没有则不得在子表中的插入记录;,back1,back2,back3,3.参照完整性的设置在VFP中,通常使用“参照完整性生成器”设置RI规则,以控制在关系表中如何插入、更新或删除记录。打开“参照完整性生成器”的方法如下。方法一:打开“数据库设计器”窗口,单击“数据库”菜单,选择“编辑参照完整性”。方法二:在“数据库设计器”窗口中双击两个表之间的关系连线,或右击关系连线,在快捷菜单中选择“编辑关系”打开“编辑关系”对话框,单击对话框中“参照完整性”按钮。方法三:右击“数据库设计器”中的空白位置,选择快捷菜单中的“编辑参照完整性”。方法四:右键单击关系连线,在弹出的快捷菜单中选择“编辑参照完整性”。注意:第一次打开“参照完整性生成器”之前必须先清理数据库,否则,系统都会给出提示错误信息,参照完整性生成器包含三个选项卡:更新规则删除规则插入规则,(1)“更新规则”选项卡规定,当父表中的关键字值被修改时,应用哪条规则?“级联”:指出修改父表中关键字值时,系统将自动用新的关键字值更新子表中的所有相关记录的值。“限制”:指出修改父表中关键字值时,若子表中有相关的记录,将出现“触发器失败”的提示信息,禁止对父表的更新。“忽略”:允许更新父表,不处理子表中的相关记录,即两表的更新操作将互不影响。,回规则,(2)“删除规则”选项卡,规定当删除父表中的记录时,应用哪条规则?“级联”:删除父表中记录时,系统将自动删除子表中所有相关的记录。“限制”:删除父表中记录时,若子表中有相关的记录,将出现“触发器失败”的提示信息,禁止对父表的删除操作。“忽略”:允许对父表的删除,不处理子表中的相关记录,即两表的删除操作将互不影响。,回规则,(3)“插入规则”选项卡规定,当在子表中插入一个新记录或更新一个已存在的记录时,应用哪条规则?“限制”:若父表中不存在匹配的关键字值,则禁止在子表中的插入操作。“忽略”:允许插入,即两表插入操作将互不影响。,回规则,返回,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


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

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


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