数据库的设计_第1页
数据库的设计_第2页
数据库的设计_第3页
数据库的设计_第4页
数据库的设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

第5章数据库的设计1第五章数据库的设计第一节数据库的建立和使用和第二节数据库表的添加、移去与删除第三节有效性规那么和触发器第四节表之间的关系

第五节参照完整性

25.1数据库的建立与使用

数据库概念在VFP中,数据库是一个以.DBC作为其扩展名的特殊文件,是表、视图、连接、关系、存储过程、有效性规那么、参照完整性等的集合体和管理者。一个数据库总有一个扩展名为.DCT的备注文件与之相关联着。例如:创立一个数据库“STU〞,就有文件: STU.DBC (数据库文件) STU.DCT (数据库备注文件)31.创立数据库—两种方法:菜单:[文件]→[新建]或“新建〞按钮命令:CREATEDATABASE[数据库名]|?产生2个文件:.DBC-----数据库文件.DCT-----数据库备注文件.DCX-----数据库索引文件〔当建立索引后〕例:CREATEDATABASE“学生〞数据库的创立与删除还有一种方法是利用“工程管理器〞创立,将在后面章节中学习4使用命令方式建立一个空的数据库时,并不调出数据库设计器。可通过执行以下命令来为翻开的数据库翻开一个数据库设计器。三种方法:菜单:[文件]→[翻开]工具栏“翻开〞按钮命令:MODIFYDATABASE[数据库名]翻开数据库,并自动进入“数据库设计器〞窗口翻开数据库设计器52、数据库的删除格式:DELETEDATABASE<数据库名>[DELETETABLES]功能:删除已关闭的数据库,如果带“DELETETABLES〞选项,那么把它所包含的表一起删除例如:DELEDATA学生DELE61、翻开数据库①菜单方式1〕[文件]-[翻开],选择数据库名2〕或在工具栏单击“翻开〞按钮后选择数据库名用菜单方式翻开数据库后,会调出数据库设计器②命令方式OPENDATABASES<数据库名>用命令方式翻开数据库后,不会调出数据库设计器例子:OPENDATABASES“教务管理〞数据库的翻开与关闭72、关闭数据库格式:CLOSEDATABASES[ALL]功能:关闭当前数据库或所有数据库。最后翻开的数据库被自动置为当前数据库。同时翻开了多个数据库后,可用SETDATATO<数据库名>命令来指定当前数据库。用SETDATATO命令那么可取消当前数据库。8添加数据库表在翻开数据库之后:〔1〕把一个已有的自由表添加到数据库中①菜单方式1〕[数据库]-[添加表]2〕右击后选择“添加表〞命令项②命令方式ADDTABLE<自由表名>〔2〕新建一个数据表并把它添加到数据库中在翻开了一个数据库后,新建的表都是数据库表。注意:如果一个已有表,它已连接到其他数据库中,就不能顺利地执行上述操作,断开连接后,才能参加当前数据库;5.2数据库表的添加、移去与删除9指将表从数据库中移去,使该表不再属于任何数据库,成为一个自由表。①菜单方式先选择表,然后执行:1〕[数据库]-[移去],“移去〞按钮2〕右击后选择“删除〞命令项,再按“移去〞按钮,②命令方式REMOVETABLE<数据库表名>[DELETE]注意:带有DELETE项时,将会在移去数据表的同时一并删除该表。5.2.2移去数据库表10把一个数据表文件从其存储介质〔如磁盘〕中永久地删除掉。①菜单方式:先选择表,然后执行:1〕[数据库]-[移去],“删除〞按钮2〕右击后选择“删除〞命令项,然后按“删除〞按钮②命令方式:DROPTABLE<数据库表名>REMOVETABLE<数据库表名>DELETEDELETEFILE<数据表名.DBF>或ERASE<数据表名.DBF>

删除数据库表115.3有效性规那么和触发器数据库表的字段属性

数据库表的表属性

12数据库表的字段属性1.设置“标题〞属性如果用户不设置字段标题,那么该表的标题显示的是字段名。设置标题的作用:比方西文的字段名〔编程较方便〕可以用中文标题显示。操作:1〕在数据库设计器中,选择表,2〕如图,进入表设计器;3〕再选择“字段〞,4〕“显示〞框的“标题〞中定义演示:为表STU2设置字段标题132.为字段加上注释操作步骤如下:〔1〕翻开数据库,激活需要设置字段注释的表,选择【数据库】-【修改】,进入“表设计器〞窗口。〔2〕在“表设计器〞窗口,选择“字段〞选项卡,再在“字段注释〞文本框中,输入字段注释信息,并确认操作。143.设置字段的默认值操作步骤:〔1〕翻开数据库,激活要设置字段默认值的表,选择【数据库】-【修改】,进入“表设计器〞窗口。〔2〕在“表设计器〞窗口,选择“字段〞选项卡,再选定设置默认值的字段,输入默认值,并确认操作。作用:使得以后新增记录时,自动为字段填上值154.设置字段的显示格式操作步骤:〔1〕翻开数据库,激活要设置字段显示格式的表,选择【数据库】-【修改】,进入“表设计器〞窗口。〔2〕在“表设计器〞窗口,选择“字段〞选项卡,再选定设置显示格式的字段,输入格式字符,并确认操作。作用:利用“格式〞文本框可以设定字段内容的显示格式164.设置字段的显示格式表5-1

格式设置字符说明格式字符格式效果使用!输出格式为大写使用E按照欧洲格式(MDY)显示日期使用I按字符型的定义宽度中间对齐显示字段内容使用J按字符型的定义宽度右对齐显示字段内容使用$以货币格式显示数值使用^以科学计数法显示数值使用L数值的先导空格用0代替175.输入掩码

操作步骤:〔1〕翻开数据库,激活要设置字段显示格式的表,选择【数据库】-【修改】,进入“表设计器〞窗口。〔2〕在“表设计器〞窗口,选择“字段〞选项卡,再选定设置输入掩码的字段,输入“输入掩码〞,并确认操作。作用:设置输入掩码可以使用字段值的输入有统一格式

18表5-2常用掩码格式

格式字符意义输入掩码示例显示示例9对数值字段可以输入数值或正负号;对字符字段只允许输入数字字符,一个9代表一位数字或一个数字字符。如学号长度为11位,则在掩码中需要用11个9,即:9999999999输入:20088255101显示:20088255101如果中间输入非数字字符,则被屏蔽#允许输入数值、正负号、空格和小数点如长度为14的字符型电话号码,在掩码中输入(####)########输入:075786687888显示:(0757)86687888$数值字段显示时如未占满指定宽度则加上$前缀符号如货币型长度为8,在掩码中输入8个$输入11345显示:$11345.指定小数点的位置如在字符型中输入掩码:###.###.###.###输入:127001显示:127.0.0.1,在整数值的指定位置加入分割符在数值型字段中输入掩码:99,999.99输入:12345.56显示:12,345.56A只允许输入字母字符长度为8的字符型字段,在掩码中输入AAAAAAAA在输入数据时,如果输入非字母字符,则被屏蔽。195.输入掩码

【例5-1】翻开数据库表“学生〞,并为“学号〞字段指定其掩码以实现:学号由7位数字字符组成。操作如下:在“学生〞表的表设计器的字段选项卡中,选择“学号〞字段,然后在“输入掩码〞文本框中输入7个9。【例5-2】翻开数据库表“教师信息表〞,并为“根底工资〞字段指定其掩码以实现:显示时在工资前面加上$。操作如下:在“教师信息〞的表设计器的字段选项卡中,选择“根底工资〞字段,然后在“输入掩码〞文本框中输入10个$。【例5-3】翻开数据库表“教师信息表〞,并为“〞字段指定其掩码以实现:显示的格式为(0757)86687888。操作如下:在“教师信息表〞的表设计器的字段选项卡中,选择“〞字段,然后在“输入掩码〞文本框中输入(####)########。206.设置字段有效规那么有效性规那么和有效性说明设置字段的有效性规那么来对输入到该字段的数据的合理性进行控制。只有当字段的值符合规那么要求时,字段值才会被接受。有效性说明那么是:当字段的更新数据不符合有效性规那么时发出的提示信息〔文字〕。有效性规那么是一个逻辑表达式。当为.T.值时那么符合规那么要求,否那么视之为违反规那么。当焦点要离开字段时,有效性规那么被触发。注意:有效性规那么对相应字段原有的值也进行验证。21字段有效性规那么实例【例1】为学生表的性别字段设置有效性规那么为:性别=“男〞OR性别=“女〞,意为性别值非“男〞即“女〞【例2】为教师信息表的根底工资字段设置有效性规那么为:在5000到900之间根底工资>=900.and.根底工资<=5000字段级的有效性规那么只涉及到一个字段,当需要对多个字段的值同时进行限制时,就必须设置记录级的有效性规那么。225.3.2数据库表的表属性

1.表名表名指的是长表名,其中最多可包含128个字符,假设输入了长表名,那么在数据库翻开时就以此名标识该表,假设不定义长表名,表文件名就是表名。235.3.2数据库表的表属性

2.设置表注释操作步骤如下:〔1〕翻开数据库,激活需要设置字段注释的表,选择【数据库】-【修改】,进入“表设计器〞窗口。〔2〕在“表设计器〞窗口,选择“表〞选项卡,再在“表注释〞文本框中,输入注释信息,并确认操作。24数据库表的表属性

3.记录有效性操作步骤如下:〔1〕翻开数据库,激活要设置有效规那么的表,选择【数据库】-【修改】,进入“表设计器〞窗口。〔2〕在“表设计器〞窗口,选择“表〞选项卡,再按“规那么〞后面的按钮,进入“表达式生成器〞窗口。〔3〕在“表达式生成器〞窗口,输入条件表达式,再按“确定〞按钮,返回“表设计器〞窗口,并确认操作。25记录级的有效性规那么1〕有效性规那么〔记录级〕在向表添加、插入新记录或修改原有记录时,要想设置两个或两个以上的字段之间的关系,便可为表设置有效性规那么。只有当记录的值符合规那么要求时,该记录才会被接受。实例见下两页记录有效性触发器262〕有效性说明:当记录的更新数据不符合有效性规那么时发出的提示信息〔文字〕。有效性规那么是一个逻辑表达式。当为.T.值时那么符合规那么要求,否那么视之为违反规那么。当焦点要离开记录时,有效性规那么被触发。要注意的是:有效性规那么也对记录原有的值进行验证。记录级的有效性说明27记录级的有效性规那么实例【例5-1】翻开数据库表“教师信息表〞,并为“根底工资〞指定其记录级有效性规那么:职称为“助教〞的老师的“根底工资〞不大于1000。相应的有效性信息为:助教的根底工资小于等于1000。操作如下:翻开表设计器,选择“表〞选卡,选择“根底工资〞字段,在规那么文本框中输入:IIF(职称="助教",根底工资<=1000,.T.)在信息文本框中输入:“助教的根底工资小于等于1000〞28记录级的有效性规那么实例限制暂缓入学〔保存学籍〕最多1年:由于学号的前2位代表入学的年份,因此,只有当入学的年份与学号相同,或者最多第2年入学才符合要求,因此有效性规那么如下:SUBSTR(学号,1,2)=SUBSTR(STR(YEAR(入学日期),4),3,2).OR.SUBSTR(学号,1,2)=SUBSTR(STR(YEAR(入学日期)-1,4),3,2)有效性说明可写为:入学时间超时!294.设置表触发器对于每个数据库表,可为插入、更新或删除记录这3种操作各创立一个触发器。触发器也是一个逻辑表达式,当插入、更新或删除表中的记录时被激活。如果触发器表达式的值为假,那么不允许执行这种操作。触发器的工作原理类似于有效性规那么,但触发器不对表中已有的记录进行验证,只有在对表进行添加记录、更新记录或删除记录操作时,相应的触发器才开始工作,即计算逻辑表达式的值,为真时操作可以顺利进行,否那么系统将提示“触发器失败〞且不执行对记录的这些操作。30设置触发器操作步骤〔1〕翻开数据库,激活要设置触发器的表,选择【数据库】-【修改】,进入“表设计器〞窗口。〔2〕在“表设计器〞窗口,选择“表〞选项卡,再按“触发器〞后面的按钮,进入“表达式生成器〞窗口。〔3〕在“表达式生成器〞窗口,输入条件表达式,再按“确定〞按钮,返回“表设计器〞窗口,并确认操作。31设置触发器实例【例5-1】使用触发器把“教师信息表〞变为只读。操作如下:翻开数据库表“教师信息表〞,将其插入、更新、删除触发器都设置为.F.,那么该表变为只读。以后对该表只能读取,无法进行添加、修改、删除操作。32设置触发器实例另一种定义触发器的方法是先建立一个存储过程,然后在触发器框中调用该存储过程。【例5-2】在“教务管理〞数据库中创立一个名为TT的存储过程,每当在“学生〞表中插入记录时,就会弹出消息框显示当前记录数。操作如下:选择“数据库〞菜单中的“编辑存储过程〞,然后输入以下代码:PROCEDURETTMESSAGEBOX("现有记录:"+STR(RECCOUNT()))ENDPROC然后在“学生〞表中的“插入触发器〞框中输入表达式TT()即可。33设置触发器实例对于表sss建立一个“更新触发器〞,条件限定性别只能是男或女。性别=“男〞.OR.性别=“女〞当对表进行修改违反上述限定时被触发。单击“复原〞可恢复原值345.4表之间的关系

表间的关系主要有两种,即一对一关系和一对多关系。

一对一关系与一对多关系

一对一:父表中的一个记录只与子表的一个记录相关联;

一对多:父表中的一个记录可与子表的多个记录相关联; 多对多:表与表之间的多对多是用两个一对多关系的关联来实现的,他们之间要通过一个中间表来连接。355.4表之间的关系

表间的关系又可分为永久关系和临时关系两种。

36数据库表间的永久关系

永久关系是数据库表间的关系,只有数据库表之间才可以建立永久关系。永久关系一旦建立,就存储在数据库文件中,作为数据库的一局部而存在。永久关系建立后,在“查询设计器〞和“视图设计器〞中或在创立表单时所用的数据环境设计器中,这种永久关系将被作为默认的联接条件。一个永久关系存在于两个数据库表之间,其中一个表作为父表,另一个作为子表,这两个表要有公共字段,并在公共字段上建立索引。对于父表要建立好主索引或候选索引,而对于子表按外键字段建立任意索引。37数据库表的主索引主索引是数据库表所特有的。创立主索引可在表设计器的索引选项卡中完成,也可以通过执行命令来定义主索引。格式:ALTERTABLE数据库表名ADDPRIMARYKEY关键字TAG索引标记功能:为指定的表创立一个主索引说明: 1〕创立主索引时,要求索引字段的字段值不能重复的,且不能为空值(取NULL)。 2〕只有数据库表才能创立主索引,而自由表不能。381、建立“一对一〞关系建立两个表之间的“一对一〞关系:先要确定两个表中都具有相同属性(字段名、类型、宽度〕的字段;然后定义二表该字段为主索引〔或候选索引〕字段在“数据库设计器〞中,按左键将索引字段拖到另一个表39建立两个表之间的“一对多〞关系,先要使两个表都具有相同属性的字段;然后定义父表中该字段为主索引字段〔字段值是唯一的〕,子表中与其同名的字段定义为普通索引字段或唯一索引字段〔其字段值是重复的〕。由于两个表中的相同属性的字段值具有一对多的对应关系,因此两个表之间便可以建立“一对多〞的关系。2、建立“一对多〞关系40建立“一对多〞关系操作步骤建立环境:数据库设计器对“一方〞定义该字段为主索引对“多方〞定义该字段为普通索引〔字段名的类型与

温馨提示

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

评论

0/150

提交评论