1、1授课授课-5 -5 数据库管理(一)数据库管理(一)5.1 创建数据库创建数据库5.2 数据字典的编辑数据字典的编辑5.3 建立表索引与表间关系建立表索引与表间关系2任务(高新考试第任务(高新考试第3.33.3题):题):将将C:2006vfpUnit3C:2006vfpUnit3文件夹中的文件夹文件夹中的文件夹Y3-03Y3-03复制复制到考生文件夹中,重命名为到考生文件夹中,重命名为“X3-03”“X3-03”,然后新建项目,然后新建项目管理器,并命名为管理器,并命名为“项目项目3-3”3-3”,保存在文件夹,保存在文件夹X3-03X3-03中完成下列操作。中完成下列操作。1.1.建立数
2、据库建立数据库|在在“项目项目3-3”3-3”中新建数据库中新建数据库“X3-03.dbc”X3-03.dbc”,保存到,保存到文件夹文件夹X3-03X3-03中;中;|将表将表Y3_03A.dbfY3_03A.dbf、Y3_03B.dbfY3_03B.dbf、Y3_03C.dbfY3_03C.dbf添加到数添加到数据库据库X3-03.dbcX3-03.dbc中。中。2.2.设置字段属性设置字段属性 在数据表在数据表 Y3_03A.dbfY3_03A.dbf,完成以下操作,完成以下操作:|设置设置“民族代码民族代码”字段的默认值为字段的默认值为“01”01”;。;。|为为“民族代码民族代码”字
3、段添加字段注释字段添加字段注释“0101代表汉族代表汉族”。33.3.设置表属性设置表属性 对数据表对数据表 Y3_03B.dbfY3_03B.dbf完成以下操作完成以下操作|添加表注释添加表注释“该表为考生报名表该表为考生报名表”;|设置设置“民族代码民族代码”字段的字段的“记录有效性记录有效性”,要求为该字段输入的值,要求为该字段输入的值必须为必须为“01”01”、“02”02”、“03”03”或或“04”04”;|当输入字段当输入字段“民族代码民族代码”的值不是的值不是“01”01”、“02”02”、“03”03”或或“04”04”时,时,“信息信息”则提示则提示“民族代码必须用民族代码
4、必须用0101、0202、0303或或0404代表,请重代表,请重新输入新输入”,结果如样文,结果如样文3-03A3-03A所示。所示。4.4.建立字段索引和表之间的关系建立字段索引和表之间的关系|在数据表在数据表Y3_03A.dbfY3_03A.dbf中设置字段中设置字段“民族代码民族代码”为主索引,为主索引,Y3_03B.dbfY3_03B.dbf中设置字段中设置字段“报名序号报名序号”为主索引,设置字段为主索引,设置字段“民族代民族代码码”为普通索引。为普通索引。Y3_03C.dbfY3_03C.dbf中设置字段中设置字段“报名序号报名序号”为主索引。为主索引。|选择正确的关联字段,为表
5、选择正确的关联字段,为表Y3_03A.dbfY3_03A.dbf与与Y3_03B.dbfY3_03B.dbf建立一对多关建立一对多关系,为表系,为表Y3_03B.dbfY3_03B.dbf与表与表Y3_03C.dbfY3_03C.dbf建立一对一关系。结果如样文建立一对一关系。结果如样文3-03B3-03B所示。所示。4 样文样文3-03A 样文样文3-03B 55.1 创建数据库创建数据库【学习目标】【学习目标】创建数据库的基本操作创建数据库的基本操作【关键概念】【关键概念】建立数据库建立数据库 添加数据库表添加数据库表 6【授课】【授课】P865.1.1 5.1.1 建立数据库建立数据库V
6、FPVFP提供了提供了3 3种建立数种建立数据库的方法:据库的方法:1.1.用项目管理器用项目管理器 在在 数据数据 选项中选项中选择选择 数据库数据库,然后,然后点击点击 新建新建 钮,打开钮,打开“新建新建”对话框,如对话框,如下图所示下图所示,点击点击 新建新建文件文件 钮。钮。72.菜单方式菜单方式 在在文件文件菜单中菜单中选择选择新建新建命令,命令,或单击或单击常用常用工工具栏中的具栏中的新建新建按钮,打开按钮,打开“新新建建”对话框,如对话框,如右图所示。右图所示。83.3.命令方式命令方式 格式:格式:CREATE DATABASE CREATE DATABASE 数据库名数据库
7、名/?功能:创建一个数据库并打开它。功能:创建一个数据库并打开它。若命令中包含可选项或可选项选择了若命令中包含可选项或可选项选择了“?”,则系统显示一个对话框,请求用户指,则系统显示一个对话框,请求用户指定新数据库的存取路径和名称。定新数据库的存取路径和名称。例如例如 建立建立cjk.dbccjk.dbc的命令如下:的命令如下:CREA DATA cjkCREA DATA cjk9【相关知识】【相关知识】5.1.2 5.1.2 使用数据库使用数据库 1.1.打开数据库打开数据库 打开数据库的方式有三种:打开数据库的方式有三种:通过通过“项目管理器项目管理器”打开打开 通过通过“打开打开”对话框
8、打开对话框打开 使用命令打开使用命令打开 格式:格式:OPEN DATABASE EXCLUSIVE/SHARED;OPEN DATABASE EXCLUSIVE/SHARED;NOUPDATEVALIDATE NOUPDATEVALIDATE 例例 打开数据库打开数据库cjk.dbccjk.dbc的命令如下:的命令如下:OPEN DATA cjkOPEN DATA cjk只读检查合法性10 2.指定当前数据库:指定当前数据库:VFPVFP可以打开多个数据库,但在同一时刻只有可以打开多个数据库,但在同一时刻只有一个当前数据库。一个当前数据库。使用命令使用命令 命令:命令:SET DATABAS
9、E TO SET DATABASE TO 数据库名数据库名 使用工具栏使用工具栏 通过通过“常用常用”工具栏上的数据库下拉列表选择工具栏上的数据库下拉列表选择113.3.修改数据库修改数据库 修改数据库实际上是打开数据库设计器进行修改修改数据库实际上是打开数据库设计器进行修改 通过通过“项目管理器项目管理器”打开打开 通过通过“打开打开”对话框打开对话框打开 使用命令使用命令 格式:格式:MODIFY DATABASE MODIFY DATABASE 数据库名数据库名/?NOWAITNOEDITNOWAITNOEDIT 参数说明:参数说明:NOWAITNOWAIT:打开数据库设计器后继续执行程
10、序打开数据库设计器后继续执行程序 (只在程序中使用,在命令窗口中无效)(只在程序中使用,在命令窗口中无效)NOEDITNOEDIT:禁止对数据库进行修改禁止对数据库进行修改124.4.关闭数据库关闭数据库 命令格式:命令格式:CLOSE DATABASECLOSE DATABASE5.5.删除数据库删除数据库 使用项目管理器中使用项目管理器中“移去移去”按钮按钮 注:此种方法只删除数据库,对库中的表注:此种方法只删除数据库,对库中的表及其他对象不进行删除及其他对象不进行删除 使用命令使用命令 格式:格式:DELETE DATABASE DELETE DATABASE 库文件名库文件名/?;DE
11、LETETABLESRECYCLE DELETETABLESRECYCLE参数说明:参数说明:DELETETABLES:删除该数据库中所含的表文件删除该数据库中所含的表文件 RECYCLE:将删除的文件放入回收站中将删除的文件放入回收站中13任务的第任务的第1 1点:点:|在在“项目项目3-3”3-3”中新建数据库中新建数据库“X3-03.dbc”X3-03.dbc”,保存到文,保存到文件夹件夹X3-03X3-03中;中;|将表将表Y3_03A.dbfY3_03A.dbf、Y3_03B.dbfY3_03B.dbf、Y3_03C.dbfY3_03C.dbf添加到数据添加到数据库库X3-03.db
12、cX3-03.dbc中。中。操作:操作:|先打开项目管理器先打开项目管理器“项目项目3-3”3-3”,在在数据数据选项中选择选项中选择数据库数据库,然后点击,然后点击新建新建钮,打开钮,打开“新建新建”对话框,对话框,点击点击新建文件新建文件钮。钮。|在建立好的数据库中,再点击在建立好的数据库中,再点击 添加添加,添加各数据表。,添加各数据表。145.2 5.2 数据字典的编辑数据字典的编辑【学习目标】【学习目标】数据字典的编辑操作数据字典的编辑操作【关键概念】【关键概念】数据字典数据字典 有效性规则有效性规则 15【任务第任务第3.33.3题(上机题(上机-4-4)】2.设置字段属性:在数据
13、表设置字段属性:在数据表 Y3_03A.dbf,完成以下操作,完成以下操作:|设置设置“民族代码民族代码”字段的默认值为字段的默认值为“01”;。;。|为为“民族代码民族代码”字段添加字段注释字段添加字段注释“01代表汉族代表汉族”。3.设置表属性:设置表属性:对数据表对数据表 Y3_03B.dbf完成以下操作完成以下操作|添加表注释添加表注释“该表为考生报名表该表为考生报名表”;|设置设置“民族代码民族代码”字段的字段的“记录有效性记录有效性”,要求为该字段输,要求为该字段输入的值必须为入的值必须为“01”、“02”、“03”或或“04”;|当输入字段当输入字段“民族代码民族代码”的值不是的
14、值不是“01”、“02”、“03”或或“04”时,时,“信息信息”则提示则提示“民族代码必须用民族代码必须用01、02、03或或04代表,请重新输入代表,请重新输入”,结果如样文,结果如样文3-03A所示。所示。样文样文3-03A3-03A16【授课】【授课】5.2.1 5.2.1 数据字典的编辑数据字典的编辑(P91)(P91)1.1.进入表设计器进入表设计器(方法方法?)?)(1 1)使用项目管理器)使用项目管理器 (2 2)使用数据库设计器)使用数据库设计器 (3 3)使用命令)使用命令 数据字典数据字典17【相关知识】【相关知识】显然,与自由表相比,显然,与自由表相比,数据库表数据库表
15、的表设计的表设计器多了数据字典等内容。器多了数据字典等内容。数据字典数据字典(P91)(P91)就是包含数据库中所有表信息的一个表。就是包含数据库中所有表信息的一个表。存储在数据字典中的信息称之为存储在数据字典中的信息称之为元数据元数据,包括:长表名、长字段名、有效性规则、触发器,表包括:长表名、长字段名、有效性规则、触发器,表间永久关系以及数据库对象的定义等。间永久关系以及数据库对象的定义等。使用数据字典,可以设置使用数据字典,可以设置字段级字段级和和记录级记录级的有效的有效性检查,保证主关键字字段内容的唯一性。性检查,保证主关键字字段内容的唯一性。18“格式”文本框中输入格式化代码,确定该
16、字段在浏览窗口、表单和报表中显示的格式,它是对字段格式进行整体控制的。字段级规则设置“输入掩码”文本框中键入掩码代码,输入掩码是按位来控制格式的。显示的标题改为自己希望的标题 字段有效性规则就是用于数据输入正确性的检验。说明该字段的用途、特性、使用说明等补充信息 字段有效性信息是用于数据检验发现不符合规则显示的信息。192.2.设置字段级规则设置字段级规则(重点重点)字段级规则主要包括:显示属性、字段有效性字段级规则主要包括:显示属性、字段有效性和字段注释等。和字段注释等。(1 1)设置字段显示属性)设置字段显示属性 格式:格式:指定字段在浏览窗口、表单或报表中显指定字段在浏览窗口、表单或报表
17、中显示和输入数据的样式;示和输入数据的样式;输入掩码:输入掩码:用以限制或控制用户输入数据的格用以限制或控制用户输入数据的格式,对非法输入进行屏蔽;式,对非法输入进行屏蔽;标题:标题:该字段在显示时的名称,可达该字段在显示时的名称,可达128128个字个字符。符。202.2.设置字段级规则设置字段级规则(重点重点)(2 2)对字段进行有效性检验)对字段进行有效性检验 字段有效性检查是在完成特定字段的数据项输字段有效性检查是在完成特定字段的数据项输入后,系统自动检查所输入的数据项是否符合规则入后,系统自动检查所输入的数据项是否符合规则(3 3)匹配字段类型)匹配字段类型(4 4)为字段输入注释)
18、为字段输入注释21(5 5)设置)设置记录记录的有效性规则的有效性规则 (6 6)设置触发器)设置触发器223.3.设置记录级规则设置记录级规则记录级规则主要包括记录有效性、触发器的设置和表注释。记录级规则主要包括记录有效性、触发器的设置和表注释。“教授的基本工资要1650元,其他职工为:550基本工资3000 职称=教授.AND.基本工资=1650.OR.职称#教授.AND.(基本工资=550.AND.基本工资=3000)每逢星期一才可做插入、追加、更新和删除记录的操作:CDOW(DATE()=Monday 23任务的第任务的第2 2、3 3点操作示范:点操作示范:2.设置字段属性:(设置字
19、段属性:(2分)分)选选Y3_03A.DBF,进入表设计器;选,进入表设计器;选“字段字段”选项,选选项,选“民民族代码族代码”字段;字段;在在“默认值默认值”内输入内输入“01”;“字段注释字段注释”内输入内输入“01代表代表汉族汉族”3.设置表属性:(设置表属性:(4分)分)选选Y3_03B.DBF,进入表设计器;选,进入表设计器;选“表表”选项,在表注释选项,在表注释内输入内输入“该表为考生报名表该表为考生报名表”;选选“字段字段”选项,选选项,选“民族代码民族代码”字段,在字段有效性的规字段,在字段有效性的规则内输入则内输入:民族代码民族代码=01.OR.民族代码民族代码=02.OR.
20、民族代码民族代码=03.OR.民族代码民族代码=04;“信息信息”内输入字符:内输入字符:民族代码的值必须用民族代码的值必须用01、02、03或或04代表,请重新输入代表,请重新输入245.3 5.3 建立表索引和表间关系建立表索引和表间关系【学习目标】【学习目标】建立表索引和表间关系数据库的操作建立表索引和表间关系数据库的操作【关键概念】【关键概念】索引的种类索引的种类 索引的建立和应用索引的建立和应用 表间永久关系的建立表间永久关系的建立25【任务第【任务第3.33.3题(上机题(上机-4-4)】4.4.建立字段索引和表之间的关系建立字段索引和表之间的关系 :|在数据表在数据表Y3-03A
21、.dbfY3-03A.dbf中设置字段中设置字段“民族代码民族代码”为主索引,为主索引,Y3-03B.dbfY3-03B.dbf中设置字段中设置字段“报名序号报名序号”为主索引,设置字为主索引,设置字段段“民族代码民族代码”为普通索引。为普通索引。Y3-03C.dbfY3-03C.dbf中设置字段中设置字段“报名序号报名序号”为主索引。为主索引。|选择正确的关联字段,为表选择正确的关联字段,为表Y3-03A.bf与与Y3-03B.dbf建建立一对多关系,为表立一对多关系,为表Y3-03B.dbf与表与表Y3-03C.dbf建立建立一对一关系。结果如样文一对一关系。结果如样文3-03B所示。所示
22、。样文样文3-03B3-03B26【授课】【授课】5.3.1 5.3.1 索引索引 1.1.基本概念基本概念 索引是按索引表达式使数据表中的记录有序地进索引是按索引表达式使数据表中的记录有序地进行逻辑排列的技术。行逻辑排列的技术。索引不改变当前数据表记录的物理顺序,而是建索引不改变当前数据表记录的物理顺序,而是建立一个与数据表相对应的索引文件。立一个与数据表相对应的索引文件。按文件扩展名分为按文件扩展名分为2 2类:类:单索引文件(单索引文件(*.IDX.IDX)和复合索引文件()和复合索引文件(*.CDX.CDX)按索引功能分为按索引功能分为4 4类:类:主索引、候选索引、普通索引和惟一索引
23、。主索引、候选索引、普通索引和惟一索引。27 按文件结构形式分为按文件结构形式分为2 2类:类:结构复合索引文件:结构复合索引文件:复合索引文件名与表名相复合索引文件名与表名相同,打开表时,索引文件将自动打开。同,打开表时,索引文件将自动打开。非结构复合索引(独立索引)文件:非结构复合索引(独立索引)文件:复合索引复合索引文件名与相关表不同(扩展名仍为文件名与相关表不同(扩展名仍为.CDX.CDX)。)。我们把表中记录实际排列次序称为我们把表中记录实际排列次序称为物理顺序物理顺序,此,此顺序在输入记录时已确定;顺序在输入记录时已确定;把由索引决定的顺序称为把由索引决定的顺序称为逻辑顺序逻辑顺序
24、或或索引顺序索引顺序。因此,因此,索引只是改变了记录的逻辑顺序。索引只是改变了记录的逻辑顺序。282.2.简单索引的建立简单索引的建立l 用表设计器建立索引(见后)用表设计器建立索引(见后)l 用命令建立索引用命令建立索引 格式:格式:INDEX ON INDEX ON TO TO 索引文件名;索引文件名;.IDXUNIQUEFOR.IDXUNIQUEFOR 条件条件COMPACTCOMPACT 功能:给当前表中符合条件的记录按给定的关键字功能:给当前表中符合条件的记录按给定的关键字表达式建立索引文件。表达式建立索引文件。参数说明:参数说明:UNIQUEUNIQUE:表示建立惟一索引;表示建立
25、惟一索引;COMPACTCOMPACT:表示建立一个压缩的表示建立一个压缩的.IDX.IDX索引文件。索引文件。注意:目前,简单索引已很少使用。注意:目前,简单索引已很少使用。293.3.简单索引的打开与关闭简单索引的打开与关闭 索引的打开:索引的打开:格式格式1 1:USE USE INDEX INDEX 功能:打开表的同时打开多个简单索引功能:打开表的同时打开多个简单索引 格式格式2 2:SET INDEX ON SET INDEX ON 功能:先打开数据表,然后才打开简单索引文件功能:先打开数据表,然后才打开简单索引文件 索引的关闭:索引的关闭:格式:格式:SET INDEX TO SE
26、T INDEX TO 304.4.复合索引的建立复合索引的建立l 在表设计器中建立索引(结构复合索引)在表设计器中建立索引(结构复合索引)在在“索引名索引名”文本文本框中输入索引标识框中输入索引标识名名 在在“类型类型”列表框列表框中,选定索引类型中,选定索引类型在在“表达式表达式”文本框中,文本框中,输入索引关键字表达式输入索引关键字表达式 向上箭头为升序索引,向上箭头为升序索引,向下箭头为降序索引向下箭头为降序索引如果需要,可输入如果需要,可输入筛选条件表达式筛选条件表达式 31l 用命令建立索引用命令建立索引 格式:格式:INDEX ON INDEX ON 关键字表达式关键字表达式 TA
27、G TAG 索引标记;索引标记;OF OF 独立索引文件名独立索引文件名FOR FOR 条件条件;ASCENDING/DESCENDINGUNIQUEASCENDING/DESCENDINGUNIQUE;CANDIDATEADDITIVECANDIDATEADDITIVE 功能:对当前表按给定的关键表达式建立索引。功能:对当前表按给定的关键表达式建立索引。参数说明:参数说明:OF OF 独立索引文件名:独立索引文件名:缺省此项,则建立结构复合索引,文缺省此项,则建立结构复合索引,文件名同表名,扩展名为件名同表名,扩展名为.CDX.CDX FOR FOR 条件:条件:只索引符合条件的记录。只索引
28、符合条件的记录。ASCENDING/DESCENDINGASCENDING/DESCENDING:说明建立升序或降序,默认升序。说明建立升序或降序,默认升序。CANDIDATECANDIDATE:建立候选索引。建立候选索引。ADDITIVEADDITIVE:关闭以前的索引,使新建立的索引成为当前索关闭以前的索引,使新建立的索引成为当前索引。引。325.5.主控索引的设置主控索引的设置 若同时打开多个索引,则有一个起着主要若同时打开多个索引,则有一个起着主要作用,它决定着表的当前逻辑顺序,这个索引作用,它决定着表的当前逻辑顺序,这个索引称为主控索引。称为主控索引。格式:格式:SET ORDER
29、TO SET ORDER TO 或或 6.6.删除索引删除索引 格式:格式:DELETE TAG DELETE TAG 索引标识索引标识 OF OF 非结构索非结构索引文件名引文件名 功能:删除指定的索引。功能:删除指定的索引。337.7.复合索引打开与关闭复合索引打开与关闭 结构复合索引文件随表的打开而自动打开,非结构复合结构复合索引文件随表的打开而自动打开,非结构复合索引文件的打开、关闭同简单索引文件,使用命令:索引文件的打开、关闭同简单索引文件,使用命令:格式格式1 1:USE USE 表名表名 INDEX INDEX 独立复合索引文件名表独立复合索引文件名表 功能:打开表同时打开索引。
30、功能:打开表同时打开索引。格式格式2 2:SET INDEX TO SET INDEX TO 非结构复合索引文件名表非结构复合索引文件名表 功能:单独打开索引。功能:单独打开索引。格式格式3 3:SET ORDER TO TAG SET ORDER TO 功能:指定主控索引。功能:指定主控索引。34 例例5.15.1 为为rsb.dbfrsb.dbf按下列要求建立结构复合索引文件。按下列要求建立结构复合索引文件。(1 1)记录以姓名降序排列,索引标识)记录以姓名降序排列,索引标识xmxm,索引类型为普,索引类型为普通索引;通索引;(2 2)记录以出生日期升序排列,索引标识)记录以出生日期升序排
31、列,索引标识csrqcsrq,索引类,索引类型为唯一索引;型为唯一索引;(3 3)记录以职称降序排列,职称相同的按出生日期降序)记录以职称降序排列,职称相同的按出生日期降序排列,索引标识排列,索引标识zccsrqzccsrq,索引类型为候选索引;,索引类型为候选索引;USE rsbUSE rsb INDE ON INDE ON 姓名姓名 TAG xm DESCTAG xm DESC LIST LIST INDE ON INDE ON 出生日期出生日期 TAG csrq UNIQTAG csrq UNIQ LIST LIST INDE ON INDE ON 职称职称+DTOC(+DTOC(出生日
32、期出生日期)TAG zccsrq;)TAG zccsrq;DESC CAND DESC CAND LIST LIST35【相关知识】【相关知识】索引的应用:索引的应用:快速查找记录快速查找记录 需要建立索引的查找:需要建立索引的查找:FINDFIND、SEEKSEEK 不需要建立索引的查找:不需要建立索引的查找:LOCA LOCA lFIND FIND 查找:查找:查找关键字段与所给查找关键字段与所给常量表达式的值常量表达式的值相符合的第相符合的第一个记录,若找到,指针指向该记录;否则指向文件一个记录,若找到,指针指向该记录;否则指向文件尾。尾。格式:格式:FIND FIND 功能:在当前索引
33、中快速查找并定位到与查找内功能:在当前索引中快速查找并定位到与查找内容相匹配的记录。容相匹配的记录。说明:见书。说明:见书。36lSEEKSEEK查找:查找:查找关键字段与所给查找关键字段与所给表达式的值表达式的值相相符合的第一个记录,若找到,指针指向符合的第一个记录,若找到,指针指向该记录;否则指向文件尾。该记录;否则指向文件尾。格式:格式:SEEK SEEK 功能:在当前索引中快速查找并定功能:在当前索引中快速查找并定位到与查找内容相匹配的记录。位到与查找内容相匹配的记录。说明:见书说明:见书37 例例5.25.2假设假设GZJ.DBFGZJ.DBF中有两个以上的讲师,并已按中有两个以上的
34、讲师,并已按“职称职称”字段建立了索引,若字段建立了索引,若abc=“abc=“讲师讲师”,分别用,分别用FINDFIND、SEEKSEEK 两种方法查找第一个讲师。两种方法查找第一个讲师。用用FINDFIND查找:查找:ABC=ABC=讲师讲师 USE GZJUSE GZJ SET ORDE TO TAG ZCSET ORDE TO TAG ZC FIND&ABCFIND&ABC DISP DISP用用SEEKSEEK查找:查找:ABC=ABC=讲师讲师 USE GZJUSE GZJ SET ORDE TO TAG ZCSET ORDE TO TAG ZC SEEK ABC SEEK ABC
35、 DISP DISP由此例看出由此例看出:FINDFIND查找查找的是常量的是常量,SEEKSEEK查找查找的是表达式。的是表达式。385.3.2 5.3.2 表间关系表间关系1.1.关系的类型关系的类型 (1 1)永久关系:)永久关系:在数据库表之间建立的一种关系,这种关系不仅在运在数据库表之间建立的一种关系,这种关系不仅在运行时存在,而且一直保留。行时存在,而且一直保留。永久关系是数据库表间的关系,它们存储在数据库文永久关系是数据库表间的关系,它们存储在数据库文件中。件中。永久关系不能控制相关表中记录指针的移动。永久关系不能控制相关表中记录指针的移动。(2 2)临时关系:)临时关系:在任意
36、表之间建立的一种关系,自由表之间只能建立在任意表之间建立的一种关系,自由表之间只能建立临时关系,表一旦被关闭,则临时关系不存在。临时关系,表一旦被关闭,则临时关系不存在。在建立表间的临时关系之后就会使得一个表(子表)在建立表间的临时关系之后就会使得一个表(子表)的记录指针自动随另一个表(父表)的记录指针移动而的记录指针自动随另一个表(父表)的记录指针移动而移动。移动。392.2.父表和子表父表和子表 父表:父表:一对一或一对多的表关系中的主表或主控表。一对一或一对多的表关系中的主表或主控表。子表:一对一或一对多的表关系中的相关表或受控子表:一对一或一对多的表关系中的相关表或受控 (跟随)表。(
37、跟随)表。在临时关系中,父表中记录指针的移动将导致子在临时关系中,父表中记录指针的移动将导致子表中的当前记录指针也依据建立的关系而随之移动。表中的当前记录指针也依据建立的关系而随之移动。在永久关系中,在永久关系中,由子表建立的索引类型由子表建立的索引类型决定两表决定两表之间之间是一对一还是一对多是一对一还是一对多的关系。若所建索引为主索的关系。若所建索引为主索引或候选索引,则为一对一;若所建索引为普通索引,引或候选索引,则为一对一;若所建索引为普通索引,则为一对多。则为一对多。403.3.建立表间永久关系建立表间永久关系(1 1)在数据库表间建立永久关系必须注意的事项)在数据库表间建立永久关系
38、必须注意的事项 只能在只能在数据库数据库表间建立永久关系。表间建立永久关系。两表必须就共同的字段建立索引,且父表索引类型两表必须就共同的字段建立索引,且父表索引类型必须为主索引或候选索引。必须为主索引或候选索引。所建关系的类型依据子表索引类型而定。所建关系的类型依据子表索引类型而定。(2 2)建立表间永久关系)建立表间永久关系 在在“数据库设计器数据库设计器”中,用鼠标从一个表的主索中,用鼠标从一个表的主索引或候选索引拖到另一个表的任一索引,当出现表间引或候选索引拖到另一个表的任一索引,当出现表间关联连线时就表示关系已建立。用鼠标右键单击连线,关联连线时就表示关系已建立。用鼠标右键单击连线,弹
39、出快捷菜单,可以进行删除关系、编辑关系和编辑弹出快捷菜单,可以进行删除关系、编辑关系和编辑参照完整性操作。参照完整性操作。41一对一关系连线一对一关系连线 一对多关系连线一对多关系连线 425.3.3 5.3.3 数据完整性数据完整性1.1.实体完整性与主关键字实体完整性与主关键字 实体完整性是保证表中实体(即记录)惟一的特实体完整性是保证表中实体(即记录)惟一的特性,即在一个表中不允许有重复的记录。在性,即在一个表中不允许有重复的记录。在VFPVFP中利用中利用主关键字或候选关键字来保证表中记录惟一。主关键字或候选关键字来保证表中记录惟一。2.2.域完整性与约束规则域完整性与约束规则 域完整
40、性是表中域(即字段)的特性。对字段的域完整性是表中域(即字段)的特性。对字段的限定都认为是域完整性的范围,如字段的类型、字段限定都认为是域完整性的范围,如字段的类型、字段的宽度和字段的有效性规则等。的宽度和字段的有效性规则等。实体完整性实体完整性和和域完整性域完整性通过后面讲述的表的数据通过后面讲述的表的数据字典进行设置。字典进行设置。433.3.参照完整性参照完整性 参照完整性是控制数据库中不同表的主关键字和外部关键字之间参照完整性是控制数据库中不同表的主关键字和外部关键字之间数据一致性的关系规则。参照完整性则属于表间规则。数据一致性的关系规则。参照完整性则属于表间规则。用户可以通过用户可以
41、通过“参照完整性生成器参照完整性生成器”来进行规则设置,从而控制来进行规则设置,从而控制相关表的更新、删除和插入记录的数据完整性。相关表的更新、删除和插入记录的数据完整性。打开打开“参照完整性生成器参照完整性生成器”窗口窗口 双击两表之间的连线,在双击两表之间的连线,在“编辑关系编辑关系”对话框中选定【参照完整对话框中选定【参照完整性】按钮。性】按钮。设置更新、删除、插入三个规则设置更新、删除、插入三个规则 更新规则:更新规则:是指修改是指修改父表中父表中关键字值时所使用的规则,包括级联、关键字值时所使用的规则,包括级联、限制和忽略限制和忽略3 3种。种。删除规则:删除规则:是指删除是指删除父
42、表中父表中的记录时使用的规则,包括级联、限的记录时使用的规则,包括级联、限制和忽略制和忽略3 3种。种。插入规则:插入规则:是指在是指在子表中子表中插入新的记录,或更新已存在的记录时插入新的记录,或更新已存在的记录时所用的规则,包括限制和忽略所用的规则,包括限制和忽略2 2种。种。44更新规则更新规则删除规则删除规则插入规则插入规则级联级联当父表中的关键字当父表中的关键字值被修改时,系统值被修改时,系统用新的关键字值更用新的关键字值更新子表中所有相关新子表中所有相关记录记录当父表的记录被删当父表的记录被删除时,系统相应的除时,系统相应的删除子表中所有相删除子表中所有相关记录关记录限制限制若子表
43、有相关记录,若子表有相关记录,则系统禁止父表中则系统禁止父表中的关键字值被修改的关键字值被修改若子表有相关记录,若子表有相关记录,则系统禁止父表的则系统禁止父表的记录被删除记录被删除若父表中不存在若父表中不存在匹配的关键字值,匹配的关键字值,则禁止在子表插则禁止在子表插入一个新记录或入一个新记录或更新一个已存在更新一个已存在的记录的记录忽略忽略允许更新允许更新允许删除允许删除允许插入允许插入45在浏览在浏览bmbbmb表时将计算机系的代码修表时将计算机系的代码修改为改为“A05”A05”,则子表,则子表rsbrsb中部门是计中部门是计算机系的所有记录的部门代码字段值算机系的所有记录的部门代码字
44、段值都被更新为都被更新为“A05”A05”。46任务的第任务的第4 4点:点:建立字段索引和表之间的关系:建立字段索引和表之间的关系:|在数据表在数据表Y3-03A.dbfY3-03A.dbf中设置字段中设置字段“民族代码民族代码”为主索为主索引,引,Y3-03B.dbfY3-03B.dbf中设置字段中设置字段“报名序号报名序号”为主索引,为主索引,设置字段设置字段“民族代码民族代码”为普通索引。为普通索引。Y3-03C.dbfY3-03C.dbf中设中设置字段置字段“报名序号报名序号”为主索引。为主索引。|选择正确的关联字段,为表选择正确的关联字段,为表Y3-03A.bfY3-03A.bf与
45、与Y3-03B.dbfY3-03B.dbf建建立一对多关系,为表立一对多关系,为表Y3-03B.dbfY3-03B.dbf与表与表Y3-03C.dbfY3-03C.dbf建立建立一对一关系。结果如样文一对一关系。结果如样文3-03B3-03B所示。所示。操作:操作:|先打开数据库,用表设计器建立各个表的索引。先打开数据库,用表设计器建立各个表的索引。|按照要求建立数据库表的表间关系。按照要求建立数据库表的表间关系。47任务的第任务的第4 4点的操作示范:点的操作示范:修改数据库修改数据库X3_03;用表设计器建立表的索引用表设计器建立表的索引;建立数据库表的表间关系建立数据库表的表间关系(拖曳
46、拖曳)。48【本课小结】【本课小结】1.1.创建和使用数据库:菜单或工具钮,项目管理器,命令。创建和使用数据库:菜单或工具钮,项目管理器,命令。2.2.数据库设计器的使用:添加表,删除表。数据库设计器的使用:添加表,删除表。3.3.编辑表的数据字典:编辑表的数据字典:设置字段、表的有效性规则设置字段、表的有效性规则 编辑数据库的属性编辑数据库的属性 4.4.表索引的分类和建立表索引的方法:表索引的分类和建立表索引的方法:分类:分类:主索引、候选索引、普通索引、惟一索引;主索引、候选索引、普通索引、惟一索引;建立索引的方法:建立索引的方法:表设计器、命令。表设计器、命令。5.5.建立表间关系的操作建立表间关系的操作:拖曳。拖曳。6.6.设置参照完整性的操作。设置参照完整性的操作。【作业】【作业】上机上机5(5(计算机高新考试第计算机高新考试第3.33.3题题)返回本课目录返回本课目录