




已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 数据库的创建和使用,几点说明,自由表:主要为了与FOXBASE兼容 建立的都是自由表 数据库表在自由表的基础上进行了功能扩充(演示),4.1 VFP数据库,数据库=数据库表+本地视图+远程视图+连接+存储过程(演示) 数据库是许多相关的数据库表的集合 数据库包含表及表之间的联系(数据库表之间有联系(关系) 举例:教学数据库管理系统,4.2 数据库的设计过程,确定建立数据库的目的,确定需要的表,确定表的结构,确定表间关系,设计求精,设 计 数 据 库 的 步 骤,一、 确定建立数据库的目的 明确数据库中应保存哪些信息 充分了解用户的需求,明确数据库的目的 确定各主题,二、确定需要的表,尽量避免在一个表中存储重复的数据(冗余度最小) 重复信息的后果 增加数据量、工作量 数据的不一致性 删除异常,技巧性最强的一步,三、 确定表的字段 每个字段直接和表的主题相关; 不要包含推导得到或需计算的数据字段(年龄,出生日期) 收集所需的全部信息(不要太多) 以最小的逻辑单位存储信息(原子) 每个表都必须包含主关键字(学号、课程代号),四、 确定表之间的关系 1.关系的种类 (1)一对多关系(主表、子表) 例:学生表与成绩表 (2)多对多关系(纽带表) 例:学生表与课程表 (3)一对一关系(不常用) 2.分析并确定表之间关系,五、设计求精,是否遗忘了字段? 是否有的信息未包括进去? 主关键字是否合适? 是否有重复信息?,4.3 建立数据库文件,一、创建数据库 1、界面方式 (1)在项目管理器中新建数据库 (2)通过“新建”对话框新建,这样新建的数据库不会自动加到项目中去,2、命令方式 CREATE DATABASE |? 数据库文件: 扩展名为 .DBC 数据库备注文件: 扩展名为 .DCT 数据库索引文件: 扩展名为 .DCX,二、数据库的组成,1、数据库表 数据库与数据库表间的双向链接,(2)在数据库中添加、新建和移去表 添加表:自由表数据库表(建立库与表之间的双向链接) 新建数据库表 移去(不同于删除)表:数据库表自由表(删除库与表之间的双向链接),(3)命令方式 OPEN DATABASE ADD TABLE NAME 长表名 注:使用新建表的方法所创建的表,都属于该数据库 REMOVE TABLE 表名DELETE 注意:一张表在同一时间内只能属于一个数据库,2.视图(VIEW) 把分散在相关表中的数据通过联接条件把它们收集到一起。构成一个“虚表”。这个“虚表”就是视图。 可以用来从一个或多个相关联的表中提取有用信息;与表相类似的地方是,可以用来更新其中的信息,并将更新结果永久保存在磁盘上。 3. 存储过程 数据库中的数据经常要进行一些相似或相同的处理 对于这些处理,可以编写成自定义函数或过程,并保存到存储过程.,4.4 数据字典,数据字典:包含数据库中所有表信息的一张表 元数据:存储在数据字典中的信息,是记录 数据的数据 数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员提供帮助。,4.5 数据库表字段的扩展属性,数据库表的字段除了具有字段的基本属性(字段名、类型、宽度、小数位数)外,还具有以下扩展属性:,字段的显示属性 字段的有效性属性,一、字段的显示属性,字段的格式 输入掩码 字段的标题和注释,1、字段的格式 格式: 确定一个字段在表单、浏览窗口或报表 中的显示格式 输入所需的格式码 格式实际上是字段的输出掩码 常用的格式码: A D L T ! p84 表4-7,2、输入掩码 输入掩码: 可以确定字段输入的格式 屏蔽非法输入,减少人为的数据输入错误 常用的输入掩码 (p84),例如,年龄字段的输入掩码为99 年龄字段只能接受数字输入,而不能输入空格字符、字母等 姓名的显示格式指定为AT 姓名两个字段只能接受字母或汉字输入,而不能输入空格字符、数字 注: 设置格式: 限制显示输出, 输入掩码:是限制输入,3、设置字段标题 系统默认,字段的标题显示的是字段名。(字段名的最大长度只有10个字符长),如果用户不进行字段标题的设置,难以概括清楚该名下数据的属性;,标题的长度可达128个字符 为了在显示表中数据时浏览的清晰、方便,用户可以自定义字段标题。,二、字段验证规则,1.字段级规则 作用: 用来控制用户输入到字段中的信息类型,或检查其他字段值的字段数据。 实现数据库数据的完整性和固有的商业规则。 用字段验证中的“信息”作为出错信息 设置:表设计器 CREATE TABLE 命令带CHECK子句 ALTER TABLE 命令的SET CHECK子句 检查:字段值改变时发生作用,例子: create table stu (student_id c(10),sex c(2) check sex=“男”or sex=“女”) Alter table stu alter sex set check sex=“男”or sex=“女”,2.默认值 作用: 添加记录时,字段所具有的最初的值 系统自动的默认值;亦可将之置为 .NULL. 可减少用户的输入工作量 当添加新记录时,可确保验证规则生效之前,先用默认值来填充。 创建字段默认值 表设计器 “字段属性” CREATE TABLE DEFAULT子句 ALTER TABLESET DEFAULT子句,例子: create table teacher(teacher_id c(10) default “0000“,name c(10) alter table 教师表 alter column teacher_id set default “0000“,4.6 数据库表的表属性,库表不仅可以设置字段的高级属性, 而且可为表设置属性。 表属性: (演示) 长表名 表注释 表记录的有效性规则及说明 触发器,一、 长表名,表文件名(表名)长度规定 受操作系统的限制(DOS8.3、Windows255) 自由表, 数据库表最长128个字符 设计长表名(128): 1、表设计器/表/表名 2、create table student name “学生表”( ) 注意:自由表不能设置长表名(演示),打开数据库表 长表名:表所属数据库必须打开并且是当前数据库,否则将不能成功打开。 表文件名:如果所属数据库未打开,将会自动打开数据库。(演示) js表的长表名为 教师 use 教师 -要求打开所属数据库 use js-不需要,二、 表记录的有效性规则,记录级有效性验证规则:用来检查同一记录中不同字段之间的逻辑关系 如何设置 表设计器“表”选项卡 CREATE TABLE CHECK子句 ALTER TABLE SET CHECK子句,1、表设计器 规则文本框:设置有效性规则 信息文本框:指定出错提示信息,当校验 与规则不符,显示此信息 教师表设置记录级规则: 例1:教师的工龄(gl)小于(教师的年龄-15) glyear(date()-year(csrq)-15,例2:教授工资要大于1500,其它职称教师工资 要小于1500 IIF(TITLE=“教授”,WAGE1500,WAGE1500) 2、命令方式 create table js() check glyear(date()-year(csrq)-15 alter table js() set check glyear(date()-year(csrq)-15,规则何时检查记录的有效性呢? 在记录指针移离记录时。 增加记录有效规则,要对现有记录进行检查,三、表的触发器,1. 概念: “表触发器” (Trigger)是在一个插入、更新或删除操作后运行的记录级事件代码。 2.类型: 插入(INSERT)触发器:; 更新(UPDATE)触发器: 删除(DELETE)触发器:,每次向表中插入或追加记录时触发该规则,每次在表中修改记录时触发该规则;,每次在表中删除记录时触发该规则。,触发器每次必返回“真”(T)或者“假”(F),3. 创建表的触发器: 表设计器 “表”选项卡 命令 CREATE TRIGGER ON 表名 ; FOR AS 逻辑表达式,例:在教师表中创建插入触发器,防止gl=50 CREATE TRIGGER ON JS FOR ; UPDATE AS GL50,INSERT,UPDATE,DELETE,4. 移去或删除触发器: 操作方法 表设计器 “表”选项卡 命令 DELETE TRIGGER ON 表名 FOR; DELETE|INSERT|UPDATE,注意: 如果从数据库中移去或删除表,则所有属于该 表的触发器都从数据库中删除,四、约束机制及其激活时机,数据库表的字段级和记录级规则以及表的触发器,为数据的输入和修改实施了约束。,4.7 表之间的关系,一、关系类型 按关系本身的性质来划分 永久关系 临时关系,永久关系是数据库表之间的一种关系 可以永久保存在数据库中 不论库表是否打开,此关系都存在,临时关系可以存在于任何表之间 表关闭后临时关系消失,关系类型: 一对多关系(1:M) 多对多关系(M:N) 一对一关系(1:1),一/主表;一个记录在子表中有几个记录与之对应 多/子表;一个记录在主表中仅有一个记录与之对应,建立“纽带表”(Junction Table), 多对多的关系分成两个一对多的关系。,二、建立一对多永久关系(1:M),(1)建立表的索引 主表要建立主索引或候选索引; 子表要使用普通索引 (2)拖拽: 打开数据库设计器 拖动父表主索引或候选索引到子表的普通索引 (3)建立一对一索引,例子:学生表与成绩表建立索引 学生表与成绩表是一对多的关系,学生表 是主表,成绩表是子表,删除表间的永久关系: 在数据库设计器中,单击两表间的关系线 关系线变粗,表明已选择了该关系 选择点右击鼠标,选择删除关系。 按下 delete 键 编辑关系: 单击关系线,右击鼠标,从快捷菜单中选择编 辑关系,打开编辑关系对话框进行编辑,三、删除、编辑关系,4.8 参照完整性,一、 基本概念 参照完整性(Referential Integrity),是用来控制数据的一致性,尤其是控制数据库相关表之间的主关键字和外部关键字之间数据一致性的规则。,主(父)表中的索引关键字值发生改变,不改变子表中相应纪录的外关键值时,出现孤立纪录。,三类问题:,主(父)表中删除一条记录,子表中有相关纪录时,出现孤立纪录子表中的记录在(主)父表中没有相应的纪录,子表中增加纪录时,增加纪录的外关键值,在主(父)表中没有,出现孤立纪录。,二、三个规则(避免出现孤立记录) 1.子表中的每一个记录在对应的父表中必须有一个父记录; 2.在父表如果修改了主关键字的值,则子表中相关记录的外部关键字值必须同样修改。(否则也会违反规则1) 3.在父表中删除记录时,与该记录相关的子表中的记录必须全部删除(否则也会违反规则1),三、设置参照完整性 注意事项: 相关表之间的参照完整性规则是建立在永久关系基础上的 参照完整性规则被设置在主表或子表的触发器中 规则的代码被保存在数据库的存储过程中。,设置(演示) 右击永久关系的连线选“参照完整性” 三种规则(p92 表4-12) 更新规则(父动)、删除规则(父动)、插入规则(子动) 三种设置(p92 表4-12) 级联、限制、忽略 例:建立学生表和成绩表间的永久性关系、设置参照完整性(更新/级联),四、VFP数据完整性综述,三类完整性 实体完整性(系统自动支持) 参照完整性(系统自动支持) 用户自定义完整性(用户编程),字段的数据完整性字段的有效性规则 记录的数据完整性记录的有效性规则,相关表之间的数据一致性,由用户通过编程实现对数据完整性的约束,4.9 使用多个数据库,一.打开多个数据库(演示) OPEN DATABASE open database db1 open database db2 open database db3,二.设置当前数据库 只有一个是当前数据库 最后一个打开的数据库为当前数据库 设置为当前数据库 设置方法: 界面(工具栏) SET DATABASE TO set database to db1,几个函数 测试当前数据库名DBC() 测试数据库是否打开DBUSED( ) ?dbc() ?dbused(“db1”),三.使用数据库中的表 使用USE命令可以打开数据库表和自由表 如果打开的是数据库表,则系统会首先自动打开表所在的数据库(但不是当前数据库) USE USE !,四.关闭数据库 项目管理器(单击数据库名左面的“+”展开,然后才能关闭) CLOSE DATABASES:关闭当前数据库和表 CLOSE DATABASES ALL CLOSE ALL,4.10 查看和设置数据库的属性,一、DBGETPROP ( ) 函数 返回当前数据库的属性,或者返回当前数据库中字段、表或视图的属性 DBGETPROP(cName,cType,cProperty),例: ?dbgetprop(“教师表“, “Table“, “PrimaryKey“) ?dbgetprop(“教师表.teacher_id“, “field“, “caption“) ?dbgetprop(“教师表.teacher_id“, “field“, “Comment“) ?dbgetprop(“教师表.sex“, “field“, “rulexpression“) ?dbgetprop(“教师表.workt“, “field“, “default“),二、DBGETPROP ( ) 函数 可以给当前数据库或当前数据库中表的字段、表或视图设置属性。该函数只能设置部分属性,对于表来说可以设置字段的标题和注释。 caption、comment、ruleexpression、ruletext DBSETPROP(cName,cType,cProperty,ePropertyValue),例: =dbsetprop(“教师表.name”, “field”, “caption”,“教师姓名“) =dbsetprop(“教师表.name“,“field“, “comment“,“教师的姓名“),一、 临时关系 在打开的表之间用SET RELATION建立的临时性关系 临时关系会使子表的指针随父表指针的移动而移动 临时关系和永久关系之间的联系区别 联系: 有意义:建立关系的两表在客观上确实有关系 (一对多,一对一) 默认性:永久关系常被作为默认的临时关系,4.11 建立表之间的临时关系,永久关系与临时关系的区别: 1、临时关系用于控制表之间的记录访问;永久关系用来存储表之间的参照完整性 2、临时关系在表打开之后使用SET RELATION创建,随表关闭而解除;永久关系永久保存在数据库中 3、临时关系可在任何表间建立;永久关系只存在于库表间 4、临时关系中一张表不能有两张主表,永久关系则不然。,二、建立临时关系,建立临时关系的条件 两表必须为一对多关系或一对一关系 子表必须按照与主表相关联的字段建立索引 利用“数据工作期”窗口建立 使用 SET RELATION 命令 SET RELATION TO 关系表达式 INTO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旧物东西购买协议书
- 桩基工程咨询协议书
- 木工师傅安全协议书
- 排好沟槽班组协议书
- 欠款过户车辆协议书
- 无偿提供租赁协议书
- 智慧停车推广协议书
- 教师入股合同协议书
- DB3710T 236-2024牙鲆耐高温专门化品系选育技术规范
- DB41T 2793-2024小型水利工程施工质量验收评定规范
- 2022年陕西省普通高中学业水平考试生物试题 含答案
- 新汉语水平考试HSK三级真题(附答案)
- 国家义务教育质量监测科学模拟测试题附答案
- 中考语文复习之图文转换课件
- 2021版检定和校准实验室程序文件
- Excel模板-中国地图填色图
- Q∕GDW 13236.8-2019 导、地线采购标准 第8部分:钢芯铝合金绞线专用技术规范.pdf
- 连铸工艺培训讲义(PPT86张)课件
- 印后加工工艺培训课件(共61页).ppt
- 有理数混合运算100题有答案
- 译林版六下英语Unit 7 Summer holiday plans 同步练习2
评论
0/150
提交评论