《第4章数据库讲解学习》由会员分享,可在线阅读,更多相关《第4章数据库讲解学习(32页珍藏版)》请在金锄头文库上搜索。
1、第4章 数据库,4.1 设计数据库,4.2 数据库的创建及基本操作,4.4 查看和修改数据库结构,4.3 在数据库中添加和移去数据表,4.5 数据字典,退出,4.1 设计数据库,4.1.3 确定所需字段,退出,4.1.2 将需求分类放入表,4.1.1 分析数据需求,4.1.5 设计优化,4.1.4 确定关系,4.1.1 分析数据需求,1)明确数据库的目的,即需要从数据库中得到哪些信息。2)确定需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中的字段)。 3)和数据库使用人员多交换意见。,1)仔细研究需要从数据库中提取的信息,并把这些信息分成各种基本主题,每个主题都是一个独立的表。
2、 2)注意防止删除有用的信息,同一信息尽量只保存一次,这样将减少出错的可能性。,4.1.2 将需求分类放入表,数据库设计的步骤: 1)明确目的 2)确定需要的表 3)确定所需字段 4)确定关系 5)设计求精,4.1.3 确定所需字段,确定字段的技巧: (1)每个字段直接和表的主题相关 (2)不要包含可推导得到或需计算的数据 (3)收集所需的全部信息 (4)以最小的逻辑单位存储信息 (5)使用主关键字段:即可以唯一确定存储在表中每个记录的一个或一组字段,它能够迅速关联多个表中的数据,并把数据组合在一起 在选择主关键字时需要注意: 1)Visual FoxPro 不允许在主关键字段中有重复值或 n
3、ull 值 2)主关键字段不能太长,以方便记忆和键入 3)主关键字段值最好使用能满足存储要求的最小长度,4.1.5 设计优化,数据库设计好之后,还需要注意的问题: (1)字段:是否遗忘了字段?是否有需要的信息没包括进去? (2)主关键字:是否为每个表选择了合适的主关键字?在使用这个主关键字查找具体记录时,它是否很容易记忆和键入?要确保主关键字段的值不会出现重复。 (3)重复信息:是否在某个表中重复输入了同样的信息?如果是,需要将该表分成两个一对多关系的表。 (4)表:是否有这么一个字段很多而记录项却很少的表,而且许多记录中的字段值为空?如果有,就要考虑重新设计该表,使它的字段减少,记录增多。,
4、4.2 数据库的创建及基本操作,4.2.3 打开数据库,退出,4.2.2 在项目中添加数据库,4.2.1 创建数据库,4.2.5 删除数据库,4.2.4 关闭数据库,4.2.1 创建数据库,1)命令方式:CREATE DATABASE 2)数据库向导 3)数据库设计器,4.2.3 打开数据库,1)命令方式:OPEN DATABASE 说明:使用SET命令可以将某一打开的数据库指定为当前数据库,格式为:SET DATABASE TO 2)菜单方式:,4.2.2 在项目中添加数据库,可以使用项目管理器中的“添加”按钮将数据库添加到项目中。,4.2.4 关闭数据库,1)命令方式:CLOSE DATA
5、BASE ALL或CLOSE ALL 说明:CLOSE DATABASE关闭当前数据库和它所有的表 2)菜单操作:,4.2.5 删除数据库,1)命令方式:DELETE DATABASE DELETE TABLES 2)项目管理器,4.3 在数据库中添加和移去数据表,4.3.3 从数据库中移去数据表,退出,4.3.2 向数据库中添加数据表,4.3.1 在数据库中建立新表,4.3.4 访问其他数据库中的表,4.3.1 在数据库中建立新表,1)当数据库处于打开状态时,可以使用建立自由表的方法在数据库中建立新表,所建立的新表将自动添加到打开的数据库中 2)数据库设计器,4.3.2 向数据库中添加数据表
6、,1)命令方式:ADD TABLE 示例:OPEN DATABASE 教学管理 ADD TABLE 学生表 2)数据库设计器,数据库表:与数据库相关联的表 自由表:与数据库无关联的表 数据库表与自由表之间可以相互转化。,4.3.3 从数据库中移去数据表,1)命令方式:REMOVE TABLE DELETE DROP TABLE NORECYCLE 示例:OPEN DATABASE 教学管理 REMOVE TABLE 学生表 OPEN DATABASE 教学管理 DROP TABLE 学生表 NORECYCLE 2)数据库设计器,4.3.4 访问其它数据库中的数据表,使用USE命令和“!”符号可
7、以访问一个不在当前数据库中的表 示例:USE 教学管理!学生表 LIST,4.4 查看和修改数据库结构,4.4.3 扩展数据库文件,退出,4.4.2 浏览数据库文件,4.4.1 查看数据库分层结构,4.4.4 检查数据库,4.4.5 更新表和数据库的链接,4.4.1 查看数据库的分层结构,1)命令方式:MODIFY DATABASE 示例:MODIFY DATABASE 教学管理 2)菜单方式,4.4.2 浏览数据库文件,1)数据库文件为与数据库关联的每个表、视图、索引、标识、永久关系以及连接保存了一个记录; 2)保存了每个具有附加属性的表字段或视图字段的记录; 3)还包含一个单独的记录,保存
8、数据库的所有存储过程。 4)如果浏览数据库文件本身的内容,可以使用USE命令打开.DBC文件。 示例: CLOSE ALL USE 教学管理.DBC EXCLUSIVE BROWSE,4.4.3 扩展数据库文件,1)每个.DBC文件都包含一个备注字段(命名为 User),可用来保存用户自己的有关数据库中每个记录的信息。 2)也可以扩展.DBC文件,添加字段,但字段必须加在库结构的末尾。 3)要修改.DBC文件的结构,必须以独占方式访问它。 4)在.DBC文件中添加字段,使用 MODIFY STRUCTURE 命令。 5)向数据库文件中添加一个新字段并对其命名时,最好用“U”打头,指明它是一个用
9、户自定义字段。 6)不要更改.DBC文件中任何已存在的Visual FoxPro定义的字段,对.DBC文件所做的任何改动都可能影响到数据库的完整性。 示例:USE 教学管理.DBC EXCLUSIVE MODIFY STRUCTURE,4.4.4 检查数据库,检查数据库,确定数据库每个记录都与它所代表的数据库中的表和对象准确对应,可使用 VALIDATE DATABASE 命令。 示例:OPEN DATABASE 教学管理 EXCLUSIVE VALIDATE DATABASE,4.4.5 更新表和数据库的链接,1)双向链接包括前链链接和后链链接 2)前链指向数据库中包含的表,由各个表文件的相
10、对路径和文件名称构成,保存在数据库文件(.DBC)中; 3)后链指向拥有该表的数据库,由数据库的相对路径和数据库名称构成,保存在表文件(.DBF)的头记录中。 4)链接被破坏后,可使用VALIDATE DABASE中的RECOVER子句重新建立。 示例:OPEN DATABASE 教学管理 VALIDATE DATABASE RECOVER,4.5 数据字典,4.5.3 设置数据表中字段的默认值,退出,4.5.2 设置数据表中字段的标题和注释,4.5.1 长表名和表中的长字段名,4.5.4 指定输入掩码和定义字段格式,4.5.5 设置数据库表的有效规则,4.5.6 设置触发器,4.5.8 创建
11、永久关系,4.5.7 主关键字值和侯选关键字值,4.5.9 设置参照完整性,4.5.10 建立存储过程,4.5.1 长表名和表中的长字段名,1.长表名,(1)数据库表可具有长表名,最多可包含128个字符,能够更真实的反映数据表的内容。 (2)创建方式: 1)表设计器 2)命令格式:CREATE TABLE NAME (字段名 字段类型(字段宽度),) 示例:OPEN DATABASE 教学管理 CREATE TABLE 教材 NAME 全校99级学生使用教材 (班级 C(10),教材 C(20),价格 N(5,2),2.长字段名,1)适用于数据库表中的字段,可长达128个字符,自由表的字段名最
12、多只能为10个字符。 2)从数据库中移去一个数据表时,数据表的长字段名被截为前10个字符。 3)当一个数据表与数据库相关联时,必须使用长字段名来引用该表中的字段,不能使用长度为10个字符的字段名来引用。 4)在索引文件中也可以使用长字段名。但是,如果把用长字段名创建索引的表从数据库中移去时,该索引文件将不会工作。此时,需要删除此索引文件,并用短字段名重新建立索引文件。,4.5.2 设置数据表中字段的标题和注释,设置方式: 1)“表设计器”的“字段注释”编辑区域中输入注释文本; 给数据库表中的字段添加标题,可在“表设计器”“显示”区域的“标题”文本框中输入标题。 2)使用DBSETPROP()函
13、数: 格式1:DBSETPROP(数据表名.字段名,FIELD,CAPTION,标题名) 格式2:DBSETPROP(数据表名.字段名,FIELD, COMMENT,注释内容) 说明:函数返回值为逻辑值,如果添加成功,返回真值。 示例:OPEN DATABASE 教学管理 DBSETPROP(“学生表.班级”,“FIELD”,“CAPTION”,“全校99级的班级”),4.5.3 设置数据表中字段的默认值,设置方式: (1)使用“表设计器”; (2)使用CREATE TABLE命令的DEFAULT子句。 示例:CREATE TABLE 分数 (学号 C(8),课程号 C(4),成绩 N(6,2
14、) DEFAULT 100) (3)如果数据表已经存在,也可使用ALTER TABLE命令。 示例:ALTER TABLE 分数 ALTER COLUMN 成绩 SET DEFAULT 100 完整格式:ALTER TABLE ALTER COLUMN NULL/NOT NULL SET DEFAULT SET CHECK ERROR DROP DEFAULT DROP CHECK,4.5.4 指定输入掩码和定义字段格式,(1)指定输入掩码就是定义字段中的值必须遵守的标点、空格和其他格式要求。 (2)设置方式: 1)使用“表设计器” 2)使用函数DBSETPROP()设置 示例:DBSETPR
15、OP(学生表.电话,FIELD,INPUTMASK, 9999-9999),4.5.5 设置数据库表的有效规则,1)有效性规则:通过创建字段级和记录级规则,可以控制输入到数据库表的记录和字段中的数据,这些规则称为有效性规则 1)字段级和记录级规则将把所输入的值与所定义的规则表达式进行比较,如果输入的值不满足规则要求,则拒绝该值。 3)有效性规则只在数据库表中存在。 4)如果从数据库中移去或删除一个表,所有属于该表的字段级和记录级规则都会从数据库中删除。,1.字段级规则,设置方式: (1) 表设计器:在“规则”文本框中输入表达式来建立字段的有效性规则,在“信息”文本框中,定制错误信息提醒用户;
16、(2)命令格式:CREATE TABLE ( () CHECK ERROR 或 ALTER TABLE ALTER COLUMN SET CHECK ERROR 说明:1)设置字段的有效性规则,可以控制输入到字段中的数据类型,以便能检验输入的数据是否正确。 2)字段级规则在字段值改变时发生作用,如果字段值没有改变,不检查规则。 3)表达式必须是逻辑表达式。 示例:ALTER TABLE 分数 ALTER COLUMN 成绩 SET CHECK 成绩=100,2.记录级规则,设置方式: (1)表设计器:在“表”选项卡的“记录有效性”的“规则”文本框中输入表达式,在“信息”文本框中输入错误提示信息; (2)命令方式 格式:CREATE TABLE (字段名 字段类型(字段宽度) CHECK ERROR 或:ALTER TABLE SET CHECK ERROR 说明:1)使用记录的有效性规则,可以控制用户输入到记录中的信息类型,来检验输入的数据是否正确。 2)记录的有效性规则通常在输