信息管理第三章 数据库部分08年_第1页
信息管理第三章 数据库部分08年_第2页
信息管理第三章 数据库部分08年_第3页
信息管理第三章 数据库部分08年_第4页
信息管理第三章 数据库部分08年_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、3.6 数据库的设计数据库的设计 使用自由表还是数据库表来保存要管理的数据,使用自由表还是数据库表来保存要管理的数据,取决于需要管理的数据之间是否存在关系以及关系取决于需要管理的数据之间是否存在关系以及关系的复杂程度。的复杂程度。 如果开发的是一个工资管理系统,要保存的数如果开发的是一个工资管理系统,要保存的数据不能只用一个表存储,而需要多张表,表与表之据不能只用一个表存储,而需要多张表,表与表之间也存在相互关系,这时就有必要设计和建立数据间也存在相互关系,这时就有必要设计和建立数据库,把这些表添加进数据库,并建立表与表之间的库,把这些表添加进数据库,并建立表与表之间的永久关系。永久关系。 用

2、户的数据仍然保存在数据表里,而表与表之用户的数据仍然保存在数据表里,而表与表之间的关系等信息则保存在数据库里。间的关系等信息则保存在数据库里。 Visual FoxPro是关系型数据库管理系统。是关系型数据库管理系统。关系型数据库是由相关的表通过其相互关系组关系型数据库是由相关的表通过其相互关系组合起来的数据集合。合起来的数据集合。 在数据库里,主体是表,除此之外还包括在数据库里,主体是表,除此之外还包括视图、连接和存储过程等,使得数据库中的所视图、连接和存储过程等,使得数据库中的所有信息成为一个有机的整体,为数据库的使用有信息成为一个有机的整体,为数据库的使用者提供极大的方便和强大的处理功能

3、。者提供极大的方便和强大的处理功能。 Visual FoxPro数据库不但提供了存储数据数据库不但提供了存储数据的结构,而且在使用数据库时,可以在表一级的结构,而且在使用数据库时,可以在表一级进行功能扩展。进行功能扩展。3.6.1 数据库设计的目的和方法数据库设计的目的和方法 创建数据库之前,首先对数据库总体设计,明创建数据库之前,首先对数据库总体设计,明确数据库要实现的功能,建立数据库的目的和使用确数据库要实现的功能,建立数据库的目的和使用的方法,以及用户可以从数据库中获取的信息。的方法,以及用户可以从数据库中获取的信息。 首先列出需要数据库解决的问题清单。例如,首先列出需要数据库解决的问题

4、清单。例如,职称不同时,基本工资是否不同;对于不同的用户,职称不同时,基本工资是否不同;对于不同的用户,其使用权限是否不同等等,然后收集系统需要输出其使用权限是否不同等等,然后收集系统需要输出的表和报表等信息。的表和报表等信息。 最后确定需要保存的主题信息(表),以及每最后确定需要保存的主题信息(表),以及每个主题需要保存的信息(表中的字段)。个主题需要保存的信息(表中的字段)。3.6.2 数据库设计的一般过程数据库设计的一般过程 数据库设计过程的关键在于明确关系型数数据库设计过程的关键在于明确关系型数据库管理系统存储数据的方式与关联方式。据库管理系统存储数据的方式与关联方式。数据库设计的一般

5、过程如下:数据库设计的一般过程如下:1、需求分析、需求分析 确定建立数据库的目的,是整个确定建立数据库的目的,是整个数据库设计中最重要的步骤之一,也是后续各数据库设计中最重要的步骤之一,也是后续各阶段的基础。阶段的基础。2、确定需要的表、确定需要的表 在明确了对数据的需求后,在明确了对数据的需求后,就可以着手把所需求的各种信息分成各个独立就可以着手把所需求的各种信息分成各个独立的主题。的主题。 3、确定需要的字段、确定需要的字段 确定在每个表中要保存哪确定在每个表中要保存哪些信息,从而确定表的结构,并对各个字段的些信息,从而确定表的结构,并对各个字段的类型、长度、有效性等进行设定。类型、长度、

6、有效性等进行设定。 4、确定各表之间的关系、确定各表之间的关系 分析每个表,确定一分析每个表,确定一个表的数据和其他表的数据之间的关系,各表个表的数据和其他表的数据之间的关系,各表之间的数据的联接方式(建立永久关系或临时之间的数据的联接方式(建立永久关系或临时关系),最后使用不同的组合来获取来自多个关系),最后使用不同的组合来获取来自多个数据表的信息。数据表的信息。 5、设计求精、设计求精 对设计进一步分析,查找其中的对设计进一步分析,查找其中的不合理处。创建表时,在表中加入几个示例数不合理处。创建表时,在表中加入几个示例数据记录,看能否从表中得到想要的结果。如果据记录,看能否从表中得到想要的

7、结果。如果发现设计不完备,可对设计作一些调整。发现设计不完备,可对设计作一些调整。3.6.3 3.6.3 建立建立数据库数据库 在在Visual FoxPro中,数据库通过一组系统文件中,数据库通过一组系统文件对相互联系的数据库表及其相关联的数据库对象进对相互联系的数据库表及其相关联的数据库对象进行统一的组织和管理。行统一的组织和管理。 建立数据库时,数据库文件的扩展名为建立数据库时,数据库文件的扩展名为.dbc,同时自动建立与之相关的一个扩展名为同时自动建立与之相关的一个扩展名为.dct的备注的备注文件和一个扩展名为文件和一个扩展名为.dcx的索引文件。的索引文件。 数据库的基本操作包括建立

8、、打开、关闭和删数据库的基本操作包括建立、打开、关闭和删除数据库,浏览数据库文件以及向数据库中增加、除数据库,浏览数据库文件以及向数据库中增加、移去表等操作。移去表等操作。 创建数据库有菜单方式和命令方式。创建数据库有菜单方式和命令方式。1、菜单方式、菜单方式 选择选择“文文件件”菜单中的菜单中的“新建新建”命令,命令,弹出弹出“新建新建”对话框,如右对话框,如右图所示。图所示。 在在“新建新建”对话框中,选择对话框中,选择“数据库数据库”按按钮,然后单击钮,然后单击“新建文件新建文件”按钮,弹出按钮,弹出“创创建建”对话框。对话框。 在在“创建创建”对话框中输入数据库文件名和保存对话框中输入

9、数据库文件名和保存位置。选择位置。选择“保存保存”按钮,将打开数据库设计器。按钮,将打开数据库设计器。 数据库设计数据库设计器是交互修改数器是交互修改数据库对象的界面据库对象的界面和工具,其中显和工具,其中显示数据库中包含示数据库中包含的全部表、视图的全部表、视图和表间联系。和表间联系。 此时,完成创建数据库的操作,并同时打开了此时,完成创建数据库的操作,并同时打开了数据库设计器。数据库设计器。2、命令方式、命令方式格式:格式:CREATE DATABASE |?功能:建立新数据库。功能:建立新数据库。说明:说明:(1) 指定生成的数据库文件,此处指定生成的数据库文件,此处可指定路径及文件名。

10、可指定路径及文件名。 省略扩展名则默认为省略扩展名则默认为.dbc。如果未指定数据库文件名或用如果未指定数据库文件名或用“?”代替数据库文代替数据库文件名,件名,Visual FoxPro会弹出会弹出“创建创建”对话框,以对话框,以便用户选择数据库存放的位置和输入数据库名。便用户选择数据库存放的位置和输入数据库名。(2) 该命令建立数据库后并不打开数据库设计器,而该命令建立数据库后并不打开数据库设计器,而是建立一个新的数据库文件,并自动以独占方式是建立一个新的数据库文件,并自动以独占方式打开此数据库文件。打开此数据库文件。例:例: 在在e:my data下建立文件名为下建立文件名为“工资管理工

11、资管理”的数据库文件。的数据库文件。CREATE DATABASE e:my data工资管理工资管理 系统环境中,若已将系统环境中,若已将Visual FoxPro的默认的默认工作目录设置为工作目录设置为e:my data,则在命令中可以,则在命令中可以省略路径,直接使用命令:省略路径,直接使用命令: CREATE DATABASE 工资管理工资管理数据库的打开数据库的打开 1、菜单方式、菜单方式(1) 选择选择“文件文件”菜单下的菜单下的“打开打开”命令,出现命令,出现“打开打开”对话框。对话框。(2) 在该对话框中的在该对话框中的“文件类型文件类型”下拉列表框中下拉列表框中选择选择“数据

12、库(数据库(*.DBC)”;然后,选择所要打;然后,选择所要打开的数据库文件,单击开的数据库文件,单击“确定确定”按钮,此时,打按钮,此时,打开了数据库文件,同时也打开了数据库设计器。开了数据库文件,同时也打开了数据库设计器。 建立数据库后,若要在库中建立的数据库表建立数据库后,若要在库中建立的数据库表或使用数据库中的表时,都必须先打开数据库。或使用数据库中的表时,都必须先打开数据库。2、命令方式、命令方式格式:格式:OPEN DATABASE | ? NOUPDATE EXCLUSIVE|SHARED功能:功能:打开一个数据库文件,与之相关数据库备注打开一个数据库文件,与之相关数据库备注文件

13、(文件(.dct)与索引文件()与索引文件(.dcx)也一起被打开。)也一起被打开。 说明:说明:(1) 指定要打开的数据库文件。指定要打开的数据库文件。 若省略扩展名,默认为若省略扩展名,默认为.dbc。如果未指定数据库。如果未指定数据库文件名或用文件名或用“?”代替数据库文件名,则出现代替数据库文件名,则出现“打打开开”对话框,在对话框中选择数据库文件并打开。对话框,在对话框中选择数据库文件并打开。(2)NOUPDATE指定以只读方式打开数据库;指定以只读方式打开数据库;EXCLUSIVE指定以独占方式打开数据库,即不指定以独占方式打开数据库,即不允许其他用户在同一时刻也使用该数据库;允许

14、其他用户在同一时刻也使用该数据库;SHARED指定以共享方式打开数据库。指定以共享方式打开数据库。(3)该命令打开了数据库文件,但并不打开)该命令打开了数据库文件,但并不打开数据库设计器。这是与菜单方式不同的地方。数据库设计器。这是与菜单方式不同的地方。若需打开数据库设计器,可以使用若需打开数据库设计器,可以使用MODIFY DATABASE命令。命令。例:打开数据库文件例:打开数据库文件e:my data工资管理工资管理.dbc。 OPEN DATABASE e:my data工资管理工资管理 在在Visual FoxPro中,操作时可以打开多个数中,操作时可以打开多个数据库,但在同一时刻只

15、有一个当前数据库,所有据库,但在同一时刻只有一个当前数据库,所有作用于数据库的命令或函数都是对当前数据库而作用于数据库的命令或函数都是对当前数据库而言。打开多个数据库时,最后被打开的数据库为言。打开多个数据库时,最后被打开的数据库为当前数据库,也可从常用工具栏上的数据库下拉当前数据库,也可从常用工具栏上的数据库下拉列表中选择一个打开的数据库作为当前数据库,列表中选择一个打开的数据库作为当前数据库,或使用或使用SET DATABASE命令选择一个数据库作为命令选择一个数据库作为当前数据库。当前数据库。 在数据库被打开的情况下,该数据库中所有在数据库被打开的情况下,该数据库中所有表都可以使用,但这

16、些表并没有自动打开,使用表都可以使用,但这些表并没有自动打开,使用时仍需用时仍需用USE命令打开。命令打开。3.6.4 数据库的数据库的关闭关闭 数据库文件操作完成后,必须将其关闭,数据库文件操作完成后,必须将其关闭,以确保数据的安全性。以确保数据的安全性。格式:格式: CLOSE ALL | DATABASE 说明:说明: (1)ALL用于关闭所有对象,例如,数据用于关闭所有对象,例如,数据库、表、索引等。库、表、索引等。 (2)DATABASE用于关闭当前数据库和用于关闭当前数据库和数据库表。数据库表。 在在Visual FoxPro中,修改数据库实际上是打中,修改数据库实际上是打开数据库

17、设计器,在其中完成各种数据库对象的开数据库设计器,在其中完成各种数据库对象的建立、修改和删除等操作。建立、修改和删除等操作。MODIFY DATABASE | ? 功能:功能:打开指定的数据库文件所对应的数据库设打开指定的数据库文件所对应的数据库设计器,以便对该数据库中的各种数据库对象进行计器,以便对该数据库中的各种数据库对象进行修改操作。修改操作。说明:说明: 指定要修改的数据库文指定要修改的数据库文件。如果未指定数据库文件名或用件。如果未指定数据库文件名或用“?”代替数据代替数据库文件名,则出现库文件名,则出现“打开打开”对话框。对话框。3.6.5 数据库的数据库的修改修改 3.6.6 数

18、据库的数据库的删除删除 DELETE DATABASE | ? DELETETABLES RECYCLE要删除的数据库名,此时要删要删除的数据库名,此时要删除的数据库必须处于关闭状态,除的数据库必须处于关闭状态,被删除的数据库中的表成为自被删除的数据库中的表成为自由表由表删除数据库的同时从删除数据库的同时从磁盘上删除该数据库磁盘上删除该数据库所含的表等相关文件所含的表等相关文件将删除的数据库文件将删除的数据库文件和表文件放入回收站和表文件放入回收站中,需要时可以还原中,需要时可以还原例:彻底删除数据库文件例:彻底删除数据库文件e:my data工资工资管理管理.dbc以及其中的数据表等相关文件

19、。以及其中的数据表等相关文件。 DELETE DATABASE ; e:my data工资管理工资管理 DELETETABLES3.6.73.6.7数据库表的基本操作数据库表的基本操作 在在Visual FoxPro中,表分为数据库表和自由中,表分为数据库表和自由表两种,两种表的扩展名均为表两种,两种表的扩展名均为.dbf。 属于某一数据库的数据表称为数据库表,不属于某一数据库的数据表称为数据库表,不属于任何数据库而独立存在的数据表称为自由表,属于任何数据库而独立存在的数据表称为自由表,两种表可以互相转换。两种表可以互相转换。 当一个自由表添加到某一个数据库时,自由当一个自由表添加到某一个数据

20、库时,自由表就成为数据库表,反之,若将数据库表从某一表就成为数据库表,反之,若将数据库表从某一数据库中移出,该数据库表就成为自由表。数据库中移出,该数据库表就成为自由表。 使用数据库表还是自由表来保存需要管理使用数据库表还是自由表来保存需要管理的数据,取决于管理的数据之间是否存在着关的数据,取决于管理的数据之间是否存在着关系以及关系的复杂度。如果要保存的数据需要系以及关系的复杂度。如果要保存的数据需要多个表,表与表之间又存在相互关系,这时必多个表,表与表之间又存在相互关系,这时必须建立一个数据库,把这些表添加进数据库。须建立一个数据库,把这些表添加进数据库。 需要注意的是,在数据库中,实际只存

21、储需要注意的是,在数据库中,实际只存储指向数据库表的路径指针,而数据库中的表或指向数据库表的路径指针,而数据库中的表或者其他数据库对象是独立存放在磁盘上的。者其他数据库对象是独立存放在磁盘上的。3.6.8 添加数据库表添加数据库表 首先打开需要添加表的数据库文件,然后就首先打开需要添加表的数据库文件,然后就可以建立一个新的数据表或将自由表添加到该数可以建立一个新的数据表或将自由表添加到该数据库中而使之成为数据库表。据库中而使之成为数据库表。 操作步骤是:操作步骤是: 打开数据库设计器,在数据库设计器中,单打开数据库设计器,在数据库设计器中,单击工具栏的击工具栏的“添加表添加表”按钮。按钮。 在

22、在“打开打开”对话框中选择要添加的表名,单对话框中选择要添加的表名,单击击“确定确定”按钮。这样,自由表就被添加进数据库按钮。这样,自由表就被添加进数据库中,成为数据库表。中,成为数据库表。3.6.9 建立新数据库表建立新数据库表 1、菜单方式、菜单方式 操作步骤是:操作步骤是:(1)打开数据库设计器后,在)打开数据库设计器后,在 “数据库数据库”菜单菜单或数据库设计器的快捷菜单中,选择或数据库设计器的快捷菜单中,选择“新建新建表表”命令,出现命令,出现 “新建表新建表”对话框中。对话框中。(2)从)从“新建表新建表”对话框中选择对话框中选择“新建表新建表”,出现出现“创建创建”对话框;在对话

23、框;在“创建创建”对话框可对话框可以输入表名、选择保存表的位置,然后单击以输入表名、选择保存表的位置,然后单击“保存保存”按钮,便出现数据库表的按钮,便出现数据库表的“表设计表设计器器”对话框。对话框。2、命令方式、命令方式注意:注意:如果已打开了数据库,则如果已打开了数据库,则CREATE命令命令在数据库中直接建立表。如果没有打开数据库,在数据库中直接建立表。如果没有打开数据库,则则CREATE命令建立的表是自由表。命令建立的表是自由表。 数据库表的表设计器对话框的下部,有显数据库表的表设计器对话框的下部,有显示、字段有效性、匹配字段类型到类和字段注示、字段有效性、匹配字段类型到类和字段注释

24、释4个输入区域,而这些设置在自由表的表设计个输入区域,而这些设置在自由表的表设计器中并未包含。器中并未包含。 用用CREATE命令建立新数据库表:命令建立新数据库表: CREATE DATABASE |?数据库表的表设计器数据库表的表设计器 数据库表所具有,而自由表不具备的几个属性:数据库表所具有,而自由表不具备的几个属性:(1)数据库表可以使用长表名和长字段名。)数据库表可以使用长表名和长字段名。(2)可为数据库表中的字段指定标题和添加注释。)可为数据库表中的字段指定标题和添加注释。(3)可为数据库表的字段指定默认值和输入掩码。)可为数据库表的字段指定默认值和输入掩码。(4)数据库表的字段有

25、默认的控件类。)数据库表的字段有默认的控件类。(5)可为数据库表规定字段级规则和记录级规则。)可为数据库表规定字段级规则和记录级规则。(6)数据库表支持参照完整性的主关键字索引和)数据库表支持参照完整性的主关键字索引和 表间关系。表间关系。(7)支持)支持INSERT、UPDATE和和DELETE事件的触事件的触 发器等。发器等。 在在Visual FoxPro中,自由表的字段名最多包中,自由表的字段名最多包含含10个字符,数据库表的字段名最多包含个字符,数据库表的字段名最多包含128个个字符。字符。 建立数据库表时,不仅要确定字段名、类型、建立数据库表时,不仅要确定字段名、类型、宽度等内容,

26、还可给字段和表定义属性。当自由宽度等内容,还可给字段和表定义属性。当自由表添加到数据库后,便可以设置许多自由表中得表添加到数据库后,便可以设置许多自由表中得不到的属性,这些属性作为数据库的一部分保存不到的属性,这些属性作为数据库的一部分保存起来,并且一直为其所拥有。然而,一旦数据库起来,并且一直为其所拥有。然而,一旦数据库表移出成为自由表,则这些属性就被取消。表移出成为自由表,则这些属性就被取消。1、设置字段属性、设置字段属性 数据库表设计器中,在字段选项卡的数据库表设计器中,在字段选项卡的“显示显示”区域来设置字段属性,包括显示和格式、输入掩码区域来设置字段属性,包括显示和格式、输入掩码和标

27、题。和标题。(1)格式)格式 在在“显示显示”区域的区域的“格式格式”文本框用文本框用于键入格式表达式,确定当前字段在浏览窗口、表于键入格式表达式,确定当前字段在浏览窗口、表单或报表中输出显示时的格式,包括大小写、字体单或报表中输出显示时的格式,包括大小写、字体大小和样式等。大小和样式等。 例如,如果在例如,如果在“格式格式”文本框中键入文本框中键入“!”号,号,则在输出显示该字段内容时,将所有字母转换为大则在输出显示该字段内容时,将所有字母转换为大写字母;如果键入字母写字母;如果键入字母A表示仅允许输出文字字符,表示仅允许输出文字字符,不允许输出数字、空格和标点符号。不允许输出数字、空格和标

28、点符号。部分格式字符及功能如下表所示:部分格式字符及功能如下表所示:格式码格式码功能功能格式码格式码功能功能A只允许输出文字字符,只允许输出文字字符,不允许输出数字、空格不允许输出数字、空格和标点符号和标点符号!小写字符转换为大写字小写字符转换为大写字符符L在数值前显示前导在数值前显示前导0,而不是用空格字符而不是用空格字符用科学计数法表示数值用科学计数法表示数值数据数据D使用当前系统设置的日使用当前系统设置的日期格式期格式$显示货币符号显示货币符号(2)输入掩码)输入掩码 在在“显示显示”区的区的“输入掩码输入掩码”文本框中键文本框中键入输入掩码,用来指定字段的输入格式,从而入输入掩码,用来

29、指定字段的输入格式,从而减少人为的数据输入错误,控制数据输入的正减少人为的数据输入错误,控制数据输入的正确性。需要注意的是,输入掩码必须按位指定。确性。需要注意的是,输入掩码必须按位指定。例如,将输入掩码设置为例如,将输入掩码设置为999,999,表示在输入,表示在输入时,只能输入数字且最多输入时,只能输入数字且最多输入6位数字,中间的位数字,中间的“,”号不是掩码,不必输入,保持原样,输入时号不是掩码,不必输入,保持原样,输入时光标会自动跳过。光标会自动跳过。 部分输入掩码字符功能如下表所示:部分输入掩码字符功能如下表所示:输入输入掩码掩码功功 能能输入掩输入掩码码功功 能能X允许输入任何字

30、符允许输入任何字符9允许输入数字和正负号允许输入数字和正负号#允许输入数字、空格和允许输入数字、空格和正负号正负号.指出小数点位置指出小数点位置*在值的左边显示在值的左边显示*号号,用逗号分隔小数点左边用逗号分隔小数点左边的整数部分的整数部分(3)标题)标题 “标题标题”文本框中用来指定字段显示时的文本框中用来指定字段显示时的字段标题。字段标题。 在定义数据库表的字段名时,一般都比较在定义数据库表的字段名时,一般都比较简练,例如,代表学生姓名的字段可使用姓名、简练,例如,代表学生姓名的字段可使用姓名、XM、NAME等作为字段名,但在输出显示时等作为字段名,但在输出显示时难于表现字段的含义。所以

31、,标题就是设置当难于表现字段的含义。所以,标题就是设置当前字段在浏览窗口、表单或报表的标题中所显前字段在浏览窗口、表单或报表的标题中所显示的内容。示的内容。 (4) 字段注释 给选定字段的一些注释信息,在项目管理器中选定改字段时,会在底部显示出来。 (5)字段的默认值 给新加入数据库表中的纪录提前指定的一个数值或字符串。2设置有效性规则设置有效性规则 有效性规则是一个与字段或记录相关的表达有效性规则是一个与字段或记录相关的表达式,通过对用户的值加以限制,提供数据有效性式,通过对用户的值加以限制,提供数据有效性检查。建立有效性规则时,必须建立一个有效的检查。建立有效性规则时,必须建立一个有效的规

32、则表达式,以此来控制输入到数据库表的字段规则表达式,以此来控制输入到数据库表的字段和记录的数据有效性。数据输入时,有效性规则和记录的数据有效性。数据输入时,有效性规则把所输入的值与所定义的规则表达式进行比较,把所输入的值与所定义的规则表达式进行比较,如果输入的值不满足规则要求,则拒绝该值。如果输入的值不满足规则要求,则拒绝该值。 有效性规则分两种:字段有效性规则和记有效性规则分两种:字段有效性规则和记录有效性规则。录有效性规则。 字段有效性规则用来对当前字段输入数据的有字段有效性规则用来对当前字段输入数据的有效性、合法性进行检验,它是对字段的约束,用以效性、合法性进行检验,它是对字段的约束,用

33、以检查单个字段中输入的数据是否有效。检查单个字段中输入的数据是否有效。 记录有效性规则用来对同一记录中不同字段之记录有效性规则用来对同一记录中不同字段之间的逻辑关系进行验证,它是对记录的约束。当插间的逻辑关系进行验证,它是对记录的约束。当插入或修改记录时,记录有效性规则被激活,用来检入或修改记录时,记录有效性规则被激活,用来检查数据输入的正确性。查数据输入的正确性。记录有效性规则只有在整条记录有效性规则只有在整条记录输入完毕后才开始检查数据的有效性。记录输入完毕后才开始检查数据的有效性。 注:注:有效性规则只在数据库表中存在。如果从有效性规则只在数据库表中存在。如果从数据库中移去或删除一个表,

34、则所有属于该表的字数据库中移去或删除一个表,则所有属于该表的字段有效性规则和记录有效性规则都会从数据库中删段有效性规则和记录有效性规则都会从数据库中删除。除。 (1)字段有效性)字段有效性 字段有效性区域包含规则、字段有效性区域包含规则、信息和默认值三个文本框,各文本框均可以直信息和默认值三个文本框,各文本框均可以直接键入数据,也可以通过单击其右边的对话按接键入数据,也可以通过单击其右边的对话按钮钮 。字字段段有有效效性性的的设设置置 “规则规则” 文本框:输入对字段数据有效性进行检文本框:输入对字段数据有效性进行检查的逻辑表达式。如:性别查的逻辑表达式。如:性别=”男男” OR 性别性别=”

35、女女”。其设置过程可直接在文本框中输入也可以在其设置过程可直接在文本框中输入也可以在“表达表达式生成器式生成器”对话框中进行。对话框中进行。表表达达式式生生成成器器“信息信息”文本框:用于输入出错提示信息。在文本框:用于输入出错提示信息。在进行字段有效性校验时,发现输入的字段内容有进行字段有效性校验时,发现输入的字段内容有错时,显示出错提示信息,例如错时,显示出错提示信息,例如“性别字段内容性别字段内容只能输入男或女只能输入男或女”。“默认值默认值” 文本框:用于指定字段的默认值。文本框:用于指定字段的默认值。在增加新记录时,字段默认值会自动在新记录中在增加新记录时,字段默认值会自动在新记录中

36、显示出来,当该字段为默认值时,不用输入,从显示出来,当该字段为默认值时,不用输入,从而提高输入速度。例如,在性别字段中,设置默而提高输入速度。例如,在性别字段中,设置默认值为认值为“男男”。(2)记录有效性)记录有效性 在数据库表的表设计器中,在数据库表的表设计器中,“表表”选项卡中包选项卡中包含记录有效性区域,其中包含含记录有效性区域,其中包含“规则规则”和和“信信息息”两个文本框,文本框的内容输入均可通过两个文本框,文本框的内容输入均可通过单击其右边按钮,在弹出的对话框中输入信息。单击其右边按钮,在弹出的对话框中输入信息。 “规则规则”文本框用于指定记录级有效性检查规文本框用于指定记录级有

37、效性检查规则,是一个逻辑表达式。则,是一个逻辑表达式。 “信息信息”文本框用于指定出错提示信息。在检文本框用于指定出错提示信息。在检验记录级有效性规则时,发现输入与规则不符验记录级有效性规则时,发现输入与规则不符时该信息将会显示出来。时该信息将会显示出来。例如:设置员工表的记录有效性。在例如:设置员工表的记录有效性。在“规则规则“文本文本框中输入:框中输入:SUBSTR(部门编号,(部门编号,2,1)=SUBSTR(员工编号,(员工编号,4,1)。在)。在“信息信息”文本框输入文本框输入“ 部部门编号的第门编号的第2位数字与员工编号的第位数字与员工编号的第4位数字要相位数字要相同同”。3. 触

38、发器触发器 字段级有效性和记录有效性规则主要限制非字段级有效性和记录有效性规则主要限制非法数据的输入,而数据输入后还要进行修改、删法数据的输入,而数据输入后还要进行修改、删除等操作。若要控制对已经存在的记录所作的非除等操作。若要控制对已经存在的记录所作的非法操作,则应使用数据库表的记录级触发器。法操作,则应使用数据库表的记录级触发器。 触发器是在某些事件发生时触发执行的一个触发器是在某些事件发生时触发执行的一个表达式或一个过程。这些事件包括插入记录、修表达式或一个过程。这些事件包括插入记录、修改记录和删除记录。改记录和删除记录。 “表表”选项卡中有选项卡中有3个触发器,分别用于指定个触发器,分

39、别用于指定记录插入、更新、删除的规则。记录插入、更新、删除的规则。插入触发器:每次向数据库表中插入或追加记插入触发器:每次向数据库表中插入或追加记录时,触发该规则,以检查插入的记录是否满足录时,触发该规则,以检查插入的记录是否满足规则。规则。更新触发器:每次更新记录时,触发该规则。更新触发器:每次更新记录时,触发该规则。删除触发器:每次对表记录进行逻辑删除时,删除触发器:每次对表记录进行逻辑删除时,触发该规则。触发该规则。5.4.3 从数据库中移去表从数据库中移去表 在数据库设计器中,先选择要移去的表,然后在数据库设计器中,先选择要移去的表,然后单击单击 “移去表移去表”按钮,或在按钮,或在“

40、数据库数据库”菜单中选择菜单中选择“移去移去”命令,将弹出命令,将弹出“系统提示系统提示”对话框对话框 : 选择选择“移去移去”按钮,数据表仅从数据库中移去,按钮,数据表仅从数据库中移去,该数据表仍存在磁盘上;选择该数据表仍存在磁盘上;选择“删除删除”按钮,则数据按钮,则数据表不但从该数据库中移去,而且也进行了物理删除。表不但从该数据库中移去,而且也进行了物理删除。 5.4.4 修改数据库表修改数据库表 在数据库设计器中可以直接修改表的内容和表在数据库设计器中可以直接修改表的内容和表结构,右击要修改的数据库表,弹出快捷菜单:结构,右击要修改的数据库表,弹出快捷菜单: 若选择若选择“浏览浏览”命

41、令,即进入表的浏览窗口,命令,即进入表的浏览窗口, 以后的操作和对自由表的浏览操作相同;以后的操作和对自由表的浏览操作相同; 若选择若选择“删除删除”命令,即可删除表;命令,即可删除表; 若选择若选择“修改修改”命令,即打开相应表的表设命令,即打开相应表的表设计计 器,在表设计器中可以修改表结构、建立索器,在表设计器中可以修改表结构、建立索 引以及设置字段属性和表的有效性规则。引以及设置字段属性和表的有效性规则。 4 表注释 给选定表的一些注释信息,在项目管理器中选定改表时,会在底部显示出来。与字段注释类似。3.5 建立表间的永久关系建立表间的永久关系 在在Visual FoxPro中,可以建

42、立数据库表之间的中,可以建立数据库表之间的永久关系,使相互关联的表协同工作,使数据得到永久关系,使相互关联的表协同工作,使数据得到更充分的利用。更充分的利用。 多表间的永久关系在查询和视图中能作为多表多表间的永久关系在查询和视图中能作为多表联接的条件,也可作为表单和报表的默认关系,永联接的条件,也可作为表单和报表的默认关系,永久关系被存储在数据库文件中,可以一直使用,除久关系被存储在数据库文件中,可以一直使用,除非该永久关系被删除或更改。而多表间的临时关系非该永久关系被删除或更改。而多表间的临时关系仅用于控制关联表之间的指针联动,这种关系不能仅用于控制关联表之间的指针联动,这种关系不能被保存在

43、文件中,每次要使用时都需要重新建立。被保存在文件中,每次要使用时都需要重新建立。 3.5.1 为数据库表建立索引为数据库表建立索引1. 索引的概念索引的概念物理顺序物理顺序:指记录存储在磁盘上的顺序。在执行排序:指记录存储在磁盘上的顺序。在执行排序 命令后,新生成的文件形成新的物理顺序。命令后,新生成的文件形成新的物理顺序。逻辑顺序逻辑顺序:指索引文件中记录的排列顺序。在执:指索引文件中记录的排列顺序。在执行索引命令后,形成一个索引关键表达式值与记行索引命令后,形成一个索引关键表达式值与记录号之间的对照表,这个对照表就是索引文件。录号之间的对照表,这个对照表就是索引文件。2. 索引文件的种类索

44、引文件的种类(1)单索引文件单索引文件。单索引文件是指一个索引文件中。单索引文件是指一个索引文件中只能保存一个索引,其扩展名为只能保存一个索引,其扩展名为IDX。(2)复合索引文件复合索引文件。复合索引文件可以存储多个索。复合索引文件可以存储多个索引,其扩展名为引,其扩展名为CDX。复合索引文件中的每个索引用一个索引标志来表复合索引文件中的每个索引用一个索引标志来表示,代表一种记录的逻辑次序示,代表一种记录的逻辑次序。复合索引分为结构和非结构两种:复合索引分为结构和非结构两种:结构复合索引文件:结构复合索引文件:文件主名与表的主名同名,它随文件主名与表的主名同名,它随表的打开而打开,在表进行维

45、护时能自动维护。表的打开而打开,在表进行维护时能自动维护。非结构复合索引文件:非结构复合索引文件:在建立时由用户定义索引文件在建立时由用户定义索引文件名。使用时,需要用打开索引文件的命令打开。名。使用时,需要用打开索引文件的命令打开。3. 索引文件的类型索引文件的类型 依据是否允许相同的索引关键值在不同记录中重依据是否允许相同的索引关键值在不同记录中重复出现来划分。复出现来划分。 (1)主索引主索引-不允许在指定字段或表达式中出现重复不允许在指定字段或表达式中出现重复值的索引值的索引 。每个表只能建立一个主索引,且只能。每个表只能建立一个主索引,且只能是数据库表。是数据库表。 (2)候选索引候

46、选索引-不允许在指定字段或表达式中出现重不允许在指定字段或表达式中出现重复值的索引复值的索引 。每个表可以建立多个候选索引,数。每个表可以建立多个候选索引,数据库表和自由表均可建立。据库表和自由表均可建立。 (3)惟一索引惟一索引-索引文件中只保留第一次出现的索引索引文件中只保留第一次出现的索引关键字值。数据库表和自由表均可建立。关键字值。数据库表和自由表均可建立。 (4)普通索引普通索引-允许索引关键字值重复出现,数据库允许索引关键字值重复出现,数据库表和自由表均可建立。表和自由表均可建立。 主索引主索引候选索引候选索引惟一索引惟一索引普通索引普通索引 具有索引的功能以及关键字的功具有索引的

47、功能以及关键字的功能。可以保证字段值的唯一性,排除能。可以保证字段值的唯一性,排除关键值的重复值。关键值的重复值。 两种索引都与表文件同时打开和两种索引都与表文件同时打开和关闭,且存储在关闭,且存储在结构复合索引文件结构复合索引文件中,中,而不能存储在非结构复合索引文件和而不能存储在非结构复合索引文件和单索候选索引文件中。单索候选索引文件中。 只具有索引排序的功能。只具有索引排序的功能。 数据库表和自由表均可建立。数据库表和自由表均可建立。4. 为数据库表建立索引为数据库表建立索引 选择需要建立索引的数据库表,单击数据库设选择需要建立索引的数据库表,单击数据库设计器工具栏的计器工具栏的“修改表

48、修改表”按钮,弹出表设计器按钮,弹出表设计器窗口,单击索引选项卡,在各栏输入有关内容。窗口,单击索引选项卡,在各栏输入有关内容。 5、永久关系的建立与使用、永久关系的建立与使用 在数据库的两个表间建立永久联系时,必在数据库的两个表间建立永久联系时,必须先选择父表的主索引或候选索引,而子表中须先选择父表的主索引或候选索引,而子表中的索引类型决定了要建立的永久联系类型。如的索引类型决定了要建立的永久联系类型。如果子表中的索引类型是主索引或候选索引,则果子表中的索引类型是主索引或候选索引,则建立建立一对一一对一关系;如果子表中的索引类型是普关系;如果子表中的索引类型是普通索引,则建立通索引,则建立一

49、对多一对多关系。关系。 建立过程:在数据库设计器中,用鼠标左建立过程:在数据库设计器中,用鼠标左键选中父表中的主索字段,然后拖至与其建立键选中父表中的主索字段,然后拖至与其建立联系的子表中的对应索引字段处,再松开鼠标联系的子表中的对应索引字段处,再松开鼠标左键,两表间就建立了永久关系。左键,两表间就建立了永久关系。数据库设计器中建立永久关系数据库设计器中建立永久关系 永久关系在数据库设计器中表现为表索引之永久关系在数据库设计器中表现为表索引之间的连线,若连线的一端为一根线,另一端也为间的连线,若连线的一端为一根线,另一端也为一根线,代表一对一关系,若连线的一端为一根一根线,代表一对一关系,若连

50、线的一端为一根线,另一端也为三根线,代表一对多关系。线,另一端也为三根线,代表一对多关系。 如果需要编辑修改已建立的联系,可以单击如果需要编辑修改已建立的联系,可以单击表之间的永久关系连线,此时连线变粗,然后从表之间的永久关系连线,此时连线变粗,然后从“数据库数据库”菜单项中选择菜单项中选择“编辑关系编辑关系”命令。或命令。或者用鼠标右键单击连线,在弹出的快捷菜单中选者用鼠标右键单击连线,在弹出的快捷菜单中选择择“编辑关系编辑关系”或或“删除关系删除关系”命令。或者双击命令。或者双击连线,打开连线,打开“编辑关系编辑关系”对话框,在对话框中进对话框,在对话框中进行修改。行修改。6、 设置参照完

51、整性设置参照完整性 前面介绍了数据库表的字段级、记录级间的表前面介绍了数据库表的字段级、记录级间的表内验证规则,而参照完整性是表间规则。对于具有内验证规则,而参照完整性是表间规则。对于具有永久关系的两个数据库表,当对一个表更新、删除永久关系的两个数据库表,当对一个表更新、删除或插入记录时,另一个表并未作相应变化,这就破或插入记录时,另一个表并未作相应变化,这就破坏了数据的完整性。坏了数据的完整性。Visual FoxPro中提供参照完整中提供参照完整性生成器供用户指出保证数据完整性的要求。性生成器供用户指出保证数据完整性的要求。 在建立参照完整性之前必须首先清理数据库,在建立参照完整性之前必须

52、首先清理数据库,既物理删除数据库各个表中所有带有删除标志的记既物理删除数据库各个表中所有带有删除标志的记录。操作方法是选择录。操作方法是选择“数据库数据库”菜单项中的菜单项中的“清理清理数据库数据库”命令。命令。 ( 1)、打开参照完整性生成器)、打开参照完整性生成器 打开参照完整性生成器窗口有三种方法:打开参照完整性生成器窗口有三种方法: 从数据库设计器快捷菜单中选择从数据库设计器快捷菜单中选择“编辑参照完编辑参照完 整性整性”命令。命令。 选择数据库菜单中的选择数据库菜单中的“编辑参照完整性编辑参照完整性”命令。命令。 在数据库设计器中双击两个表之间的连线,在在数据库设计器中双击两个表之间的连线,在 编辑关系对话框中选择参照完整性按钮。编辑关系对话框中选择参照完整性按钮。(2)、设置参照完整性)、设置参照完整性 参照完整性生成器窗

温馨提示

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

评论

0/150

提交评论