470 likes | 631 Views
授课 -5 数据库管理(一). 5.1 创建数据库 5.2 数据字典的编辑 5.3 建立表索引与表间关系. 任务(高新考试第 3.3 题): 将 C:2006vfpUnit3 文件夹中的文件夹 Y3-03 复制到考生文件夹中,重命名为 “ X3-03 ” ,然后新建项目管理器,并命名为 “ 项目 3-3 ” ,保存在文件夹 X3-03 中完成下列操作。 1. 建立数据库 在 “ 项目 3-3 ” 中新建数据库 “ X3-03.dbc ” ,保存到文件夹 X3-03 中;
E N D
授课-5 数据库管理(一) 5.1 创建数据库 5.2数据字典的编辑 5.3 建立表索引与表间关系
任务(高新考试第3.3题): • 将C:\2006vfp\Unit3文件夹中的文件夹Y3-03复制到考生文件夹中,重命名为“X3-03”,然后新建项目管理器,并命名为“项目3-3”,保存在文件夹X3-03中完成下列操作。 • 1. 建立数据库 • 在“项目3-3”中新建数据库“X3-03.dbc”,保存到文件夹X3-03中; • 将表Y3_03A.dbf、Y3_03B.dbf、Y3_03C.dbf添加到数据库X3-03.dbc中。 • 2. 设置字段属性 • 在数据表 Y3_03A.dbf,完成以下操作: • 设置“民族代码”字段的默认值为“01”;。 • 为“民族代码”字段添加字段注释“01代表汉族”。
3. 设置表属性 • 对数据表 Y3_03B.dbf完成以下操作 • 添加表注释“该表为考生报名表”; • 设置“民族代码”字段的“记录有效性”,要求为该字段输入的值必须为“01”、“02”、“03”或“04”; • 当输入字段“民族代码”的值不是“01”、“02”、“03”或“04”时,“信息”则提示“民族代码必须用01、02、03或04代表,请重新输入”,结果如样文3-03A所示。 • 4. 建立字段索引和表之间的关系 • 在数据表Y3_03A.dbf中设置字段“民族代码”为主索引,Y3_03B.dbf中设置字段“报名序号”为主索引,设置字段“民族代码”为普通索引。Y3_03C.dbf中设置字段“报名序号”为主索引。 • 选择正确的关联字段,为表Y3_03A.dbf与Y3_03B.dbf建立一对多关系,为表Y3_03B.dbf与表Y3_03C.dbf建立一对一关系。结果如样文3-03B所示。
样文3-03A 样文3-03B
5.1创建数据库 【学习目标】 创建数据库的基本操作 【关键概念】 建立数据库 添加数据库表
【授课】 5.1.1 建立数据库 VFP提供了3种建立数据库的方法: 1. 用项目管理器 在[数据]选项中选择[数据库],然后点击[新建]钮,打开“新建”对话框,如下图所示,点击[新建文件]钮。
2. 菜单方式 • 在[文件]菜单中选择[新建]命令,或单击[常用]工具栏中的[新建]按钮,打开“新建”对话框,如右图所示。
3. 命令方式 • 格式:CREATE DATABASE [数据库名/?] • 功能:创建一个数据库并打开它。 • 若命令中包含可选项或可选项选择了“?”,则系统显示一个对话框,请求用户指定新数据库的存取路径和名称。 • [例如] 建立cjk.dbc的命令如下: • CREA DATA cjk
【相关知识】 • 5.1.2 使用数据库 • 1.打开数据库 • 打开数据库的方式有三种: • •通过“项目管理器”打开 • •通过“打开”对话框打开 • •使用命令打开 • 格式:OPEN DATABASE [[EXCLUSIVE/SHARED]; • [NOUPDATE][VALIDATE]] • [例]打开数据库cjk.dbc的命令如下: • OPEN DATA cjk
2. 指定当前数据库: • •使用命令 • VFP可以打开多个数据库,但在同一时刻只有一个当前数据库。 • 命令:SET DATABASE TO 数据库名 • •使用工具栏 • 通过“常用”工具栏上的数据库下拉列表选择
3. 修改数据库 • 修改数据库实际上是打开数据库设计器进行修改 • •通过“项目管理器”打开 • •通过“打开”对话框打开 • •使用命令 • 格式:MODIFY DATABASE [数据库名/?][NOWAIT];[NOEDIT] • 参数说明: • NOWAIT:打开数据库设计器后继续执行程序 • (只在程序中使用,在命令窗口中无效) • NOEDIT:禁止对数据库进行修改
4. 关闭数据库 • 命令格式:CLOSE DATABASE • 5. 删除数据库 • •使用项目管理器中“移去”按钮 • 注:此种方法只删除数据库,对库中的表及其他对象不进行删除 • •使用命令 • 格式:DELETE DATABASE [库文件名/?]; • [DELETETABLES][RECYCLE] • 参数说明: • DELETETABLES:删除该数据库中所含的表文件 • RECYCLE:将删除的文件放入回收站中
任务的第1点: • 在“项目3-3”中新建数据库“X3-03.dbc”,保存到文件夹X3-03中; • 将表Y3_03A.dbf、Y3_03B.dbf、Y3_03C.dbf添加到数据库X3-03.dbc中。 • 操作: • 先打开项目管理器“项目3-3”,在[数据]选项中选择[数据库],然后点击[新建]钮,打开“新建”对话框, • 点击[新建文件]钮。 • 在建立好的数据库中,再点击[添加],添加各数据表。
5.2 数据字典的编辑 • 【学习目标】 • 数据字典的编辑操作 • 【关键概念】 • 数据字典 • 有效性规则
【任务第3.3题(上机-4)】 • 2. 设置字段属性:在数据表 Y3_03A.dbf,完成以下操作: • 设置“民族代码”字段的默认值为“01”;。 • 为“民族代码”字段添加字段注释“01代表汉族”。 • 3. 设置表属性: 对数据表 Y3_03B.dbf完成以下操作 • 添加表注释“该表为考生报名表”; • 设置“民族代码”字段的“记录有效性”,要求为该字段输入的值必须为“01”、“02”、“03”或“04”; • 当输入字段“民族代码”的值不是“01”、“02”、“03”或“04”时,“信息”则提示“民族代码必须用01、02、03或04代表,请重新输入”,结果如样文3-03A所示。 样文3-03A
【授课】 • 5.2.1 数据字典的编辑 • 1. 进入表设计器 • (1)使用项目管理器 • (2)使用数据库设计器 • (3)使用命令 数据字典
【相关知识】 • 显然,与自由表相比,数据库表的表设计器多了数据字典等内容。 • 数据字典 • 数据字典就是包含数据库中所有表信息的一个表。存储在数据字典中的信息称之为元数据,包括长表名、长字段名、有效性规则、触发器,表间永久关系以及数据库对象的定义等。 • 使用数据字典,可以设置字段级和记录级的有效性检查,保证主关键字字段内容的唯一性。
“格式”文本框中输入格式化代码,确定该字段在浏览窗口、表单和报表中显示的格式,它是对字段格式进行整体控制的。“格式”文本框中输入格式化代码,确定该字段在浏览窗口、表单和报表中显示的格式,它是对字段格式进行整体控制的。 字段级规则设置 “输入掩码”文本框中键入掩码代码,输入掩码是按位来控制格式的。 字段有效性规则 就是用于数据输入正确性的检验。 显示的标题改为自己希望的标题 说明该字段的用途、特性、使用说明等补充信息 字段有效性信息是用于数据检验发现不符合规则显示的信息。
2. 设置字段级规则(重点) 字段级规则主要包括:显示属性、字段有效性和字段注释等。 • (1)设置字段显示属性 • 格式:指定字段在浏览窗口、表单或报表中显示和输入数据的样式; • 输入掩码:用以限制或控制用户输入数据的格式,对非法输入进行屏蔽; • 标题:该字段在显示时的名称,可达128个字符。 • (2)对字段进行有效性检验 • 字段有效性检查是在完成特定字段的数据项输入后,系统自动检查所输入的数据项是否符合规则 • (3)匹配字段类型
(4)为字段输入注释 • (5)设置记录的有效性规则 • (6)设置触发器
3. 设置记录级规则 • 记录级规则主要包括记录有效性、触发器的设置和表注释。 职称="教授".AND.基本工资>=1650.OR.职称#"教授".AND.(基本工资=>550.AND.基本工资<=3000) 每逢星期一才可做插入、追加、更新和删除记录的操作: CDOW(DATE())="Monday" “教授的基本工资要≥1650元,其他职工为: 550≤基本工资≤3000"
任务的第2、3点操作示范: • 2. 设置字段属性:(2分) • 选Y3_03A.DBF,进入表设计器;选“字段”选项,选“民族代码”字段; • 在“默认值”内输入 “01”; “字段注释”内输入“01代表汉族” • 3. 设置表属性:(4分) • 选Y3_03B.DBF,进入表设计器;选“表”选项,在表注释内输入“该表为考生报名表”; • 选“字段”选项,选“民族代码”字段,在字段有效性的规则内输入……; • “信息”内输入字符:"民族代码的值必须用01、02、03或04代表,请重新输入"
5.3 建立表索引和表间关系 【学习目标】 建立表索引和表间关系数据库的操作 【关键概念】 索引的种类 索引的建立和应用 表间永久关系的建立
【任务第3.3题(上机-4) 】 • 4.建立字段索引和表之间的关系 : • 在数据表Y3-03A.dbf中设置字段“民族代码”为主索引,Y3-03B.dbf中设置字段“报名序号”为主索引,设置字段“民族代码”为普通索引。Y3-03C.dbf中设置字段“报名序号”为主索引。 • 选择正确的关联字段,为表Y3-03A.bf与Y3-03B.dbf建立一对多关系,为表Y3-03B.dbf与表Y3-03C.dbf建立一对一关系。结果如样文3-03B所示。 样文3-03B
【授课】 • 5.3.1 索引 • 1. 基本概念 • 索引是按索引表达式使数据表中的记录有序地进行逻辑排列的技术。索引不改变当前数据表记录的物理顺序,而是建立一个与数据表相对应的索引文件。 • •按文件扩展名分为2类: • 单索引文件(*.IDX)和复合索引文件(*.CDX) • •按索引功能分为4类: • 主索引、候选索引、普通索引和惟一索引。
•按文件结构形式分为2类: • ①结构复合索引文件:复合索引文件名与表名相同,打开表时,索引文件将自动打开。 • ②非结构复合索引(独立索引)文件:复合索引文件名与相关表不同(扩展名仍为.CDX)。 • 我们把表中记录实际排列次序称为物理顺序,此顺序在输入记录时已确定;把由索引决定的顺序称为逻辑顺序或索引顺序。因此,索引只是改变了记录的逻辑顺序。
2. 简单索引的建立 • 用表设计器建立索引(见后) • 用命令建立索引 • 格式:INDEX ON <关键字表达式> TO 索引文件名; • [.IDX][UNIQUE][FOR 条件][COMPACT] • 功能:给当前表中符合条件的记录按给定的关键字表达式建立索引文件。 • 参数说明: • UNIQUE:表示建立惟一索引; • COMPACT:表示建立一个压缩的.IDX索引文件。 • 注意:目前,简单索引已很少使用。
3. 简单索引的打开与关闭 • •索引的打开: • 格式1:USE <表名> INDEX <索引文件名清单> • 功能:打开表的同时打开多个表 • 格式2:SET INDEX ON <索引文件名清单> • 功能:先打开数据表,然后才打开单索引文件 • •索引的关闭: • 格式: SET INDEX TO
4. 复合索引的建立 • 在表设计器中建立索引(结构复合索引) 在“索引名”文本框中输入索引标识名 在“类型”列表框中,选定索引类型 在“表达式”文本框中,输入索引关键字表达式 向上箭头为升序索引,向下箭头为降序索引 如果需要,可输入筛选条件表达式
用命令建立索引 • 格式:INDEX ON 关键字表达式 TAG 索引标记; • [OF 独立索引文件名][FOR 条件]; • [ASCENDING/DESCENDING][UNIQUE]; • [CANDIDATE][ADDITIVE] • 功能:对当前表按给定的关键表达式建立索引。 • 参数说明: • OF 独立索引文件名:缺省此项,则建立结构复合索引,文件名同表名,扩展名为.CDX • FOR 条件:只索引符合条件的记录。 • ASCENDING/DESCENDING:说明建立升序或降序,默认升序。 • CANDIDATE:建立候选索引。 • ADDITIVE:关闭以前的索引,使新建立的索引成为当前索引。
5. 主控索引的设置 • 若同时打开多个索引,则有一个起着主要作用,它决定着表的当前逻辑顺序,这个索引称为主控索引。 • 格式: SET ORDER TO <数值表达式>或<索引文件名> • 6. 删除索引 • 格式:DELETE TAG 索引标识 [OF 非结构索引文件名] • 功能:删除指定的索引。
7. 复合索引打开与关闭 • 结构复合索引文件随表的打开而自动打开,非结构复合索引文件的打开、关闭同简单索引文件,使用命令: • 格式1:USE 表名 INDEX 独立复合索引文件名表 • 功能:打开表同时打开索引。 • 格式2:SET INDEX TO 非结构复合索引文件名表 • 功能:单独打开索引。 • 格式3:SET ORDER TO <TAG 索引标识/数值表达式> • 功能:指定主控索引。
[例5.1]为rsb.dbf按下列要求建立结构复合索引文件。[例5.1]为rsb.dbf按下列要求建立结构复合索引文件。 • (1)记录以姓名降序排列,索引标识xm,索引类型为普通索引; • (2)记录以出生日期升序排列,索引标识csrq,索引类型为唯一索引; • (3)记录以职称降序排列,职称相同的按出生日期降序排列,索引标识zccsrq,索引类型为候选索引; • USE rsb • INDE ON 姓名 TAG xm DESC • LIST • INDE ON 出生日期 TAG csrq UNIQ • LIST • INDE ON 职称+DTOC(出生日期) TAG zccsrq; • DESC CAND • LIST
【相关知识】 • 索引的应用: • 快速查找记录 • 需要建立索引的查找:FIND、SEEK • 不需要建立索引的查找:LOCA • FIND 查找: • 查找关键字段与所给常量表达式的值相符合的第一个记录,若找到,指针指向该记录;否则指向文件尾。 • 格式:FIND <常量表达式> • 功能:在当前索引中快速查找并定位到与查找内容相匹配的记录。 • 说明:见书。
SEEK查找: • 查找关键字段与所给表达式的值相符合的第一个记录,若找到,指针指向该记录;否则指向文件尾。 • 格式:SEEK <表达式> • 功能:在当前索引中快速查找并定位到与查找内容相匹配的记录。 • 说明:见书
[例5.2]假设GZJ.DBF中有两个以上的讲师,并已按“职称”字段建立了索引,若abc=“讲师”,分别用FIND、 SEEK两种方法查找第一个讲师。 • 用FIND查找:ABC=‘讲师’ • USE GZJ • SET ORDE TO TAG ZC • FIND &ABC • DISP • 用SEEK查找:ABC=‘讲师’ • USE GZJ • SET ORDE TO TAG ZC • SEEK ABC • DISP 由此例看出: FIND查找的是常量, SEEK查找的是表达式。
5.3.2 表间关系 • 1.关系的类型 • (1)永久关系: • 在数据库表之间建立的一种关系,这种关系不仅在运行时存在,而且一直保留。 • 永久关系是数据库表间的关系,它们存储在数据库文件中。 • 永久关系不能控制相关表中记录指针的移动。 • (2)临时关系: • 在任意表之间建立的一种关系,自由表之间只能建立临时关系,表一旦被关闭,则临时关系不存在。 • 在建立表间的临时关系之后就会使得一个表(子表)的记录指针自动随另一个表(父表)的记录指针移动而移动。
2.父表和子表 • 父表:一对一或一对多的表关系中的主表或主控表。 • 子表:一对一或一对多的表关系中的相关表或受控 • (跟随)表。 • 在临时关系中,父表中记录指针的移动将导致子表中的当前记录指针也依据建立的关系而随之移动。 • 在永久关系中,由子表建立的索引类型决定两表之间是一对一还是一对多的关系。若所建索引为主索引或候选索引,则为一对一;若所建索引为普通索引,则为一对多。
3. 建立表间永久关系 • (1)在数据库表间建立永久关系必须注意的事项 • ①只能在数据库表间建立永久关系。 • ②两表必须就共同的字段建立索引,且父表索引类型必须为主索引或候选索引。 • ③所建关系的类型依据子表索引类型而定。 • (2)建立表间永久关系 • 在“数据库设计器”中,用鼠标从一个表的主索引或候选索引拖到另一个表的任一索引,当出现表间关联连线时就表示关系已建立。用鼠标右键单击连线,弹出快捷菜单,可以进行删除关系、编辑关系和编辑参照完整性操作。
一对一关系连线 一对多关系连线
5.3.3 数据完整性 • 1.实体完整性与主关键字 • 实体完整性是保证表中实体(即记录)惟一的特性,即在一个表中不允许有重复的记录。在VFP中利用主关键字或候选关键字来保证表中记录惟一。 • 2.域完整性与约束规则 • 域完整性是表中域(即字段)的特性。对字段的限定都认为是域完整性的范围,如字段的类型、字段的宽度和字段的有效性规则等。 • 实体完整性和域完整性通过后面讲述的表的数据字典进行设置。
3.参照完整性 参照完整性是控制数据库中不同表的主关键字和外部关键字之间数据一致性的关系规则。参照完整性则属于表间规则。 用户可以通过“参照完整性生成器”来进行规则设置,从而控制相关表的更新、删除和插入记录的数据完整性。 打开“参照完整性生成器”窗口 双击两表之间的连线,在“编辑关系”对话框中选定【参照完整性】按钮。 设置更新、删除、插入三个规则 • 更新规则:是指修改父表中关键字值时所使用的规则,包括级联、限制和忽略3种。 • 删除规则:是指删除父表中的记录时使用的规则,包括级联、限制和忽略3种。 • 插入规则:是指在子表中插入新的记录,或更新已存在的记录时所用的规则,包括限制和忽略2种。
在浏览bmb表时将计算机系的代码修改为“A05”,则子表rsb中部门是计算机系的所有记录的部门代码字段值都被更新为“A05”。在浏览bmb表时将计算机系的代码修改为“A05”,则子表rsb中部门是计算机系的所有记录的部门代码字段值都被更新为“A05”。
任务的第4点: • 建立字段索引和表之间的关系: • 在数据表Y3-03A.dbf中设置字段“民族代码”为主索引,Y3-03B.dbf中设置字段“报名序号”为主索引,设置字段“民族代码”为普通索引。Y3-03C.dbf中设置字段“报名序号”为主索引。 • 选择正确的关联字段,为表Y3-03A.bf与Y3-03B.dbf建立一对多关系,为表Y3-03B.dbf与表Y3-03C.dbf建立一对一关系。结果如样文3-03B所示。 • 操作: • 先打开数据库,用表设计器建立各个表的索引。 • 按照要求建立数据库表的表间关系。
任务的第4点的操作示范: • 修改数据库X3_03; • 用表设计器建立表的索引; • 建立数据库表的表间关系(拖曳)。
【本课小结】 • 1. 创建和使用数据库:菜单或工具钮,项目管理器,命令。 • 2. 数据库设计器的使用:添加表,删除表。 • 3. 编辑表的数据字典: • 设置字段、表的有效性规则 • 编辑数据库的属性 • 4. 表索引的分类和建立表索引的方法: • 分类: 主索引、候选索引、普通索引、惟一索引; • 建立索引的方法: 表设计器、命令。 • 5. 建立表间关系的操作: 拖曳。 • 6. 设置参照完整性的操作。 • 【作业】 • 上机5(计算机高新考试第3.3题) 返回本课目录