• 1. 第4章 数据库的管理
    • 2. 数据库的设计数据库是一种工作环境 存储了一个“表”的集合 在表之间可以建立关系 对数据字段可以设置属性和触发规则 一个数据库文件具有.DBC的后缀。 不同主题内容的信息保存在不同的表当中
    • 3. 数据库的设计步骤:确立“数据库”的功能: 确定收集信息的范围,并仔细收集这些信息 确定表的种类与表的结构: 根据每个表的信息,确定表中的“字段”,将字段作为“表”中的一列 确定表间的关系: 将所创建的“表”加以分析,确定各个字段之间的“关系” 要明确为“一对一”、“一对多”关系 对于“多对多”关系转化为“一对一”、“一对多”关系
    • 4. 建自由表还是数据库表 自由表 只存储相对独立的信息 没有依靠其它表的信息或被其他表所引用,可以使用自由表 数据库表有更为强大的功能 它可以使用长表名和长字段名 表中的字段可以有标题和注释 表中的字段可以设置“默认值” 能设置字段级和记录级“规则” 对于插入、删除、修改等数据库操作可以设置触发器 它还可以实现同远程数据源的连接,创建本地视图和远程视图
    • 5. 数据库的简单操作可通过 项目管理器 表设计器 数据库设计器
    • 6. 数据库的打开操作步骤如下: 项目管理器,选择想要打开的数据库 选择修改按钮,进入数据库设计器
    • 7. 数据库设计器的操作全部折叠 库设计器上右击鼠标 在出现的快捷键中,选择“全部折叠” 全部展开 库设计器上,右点击鼠标 在快捷键中,选择“全部展开” 在库设计器中,选中表,右点击鼠标,选择折叠或展开
    • 8. 重排: 选择菜单数据库,然后选择重排 重排方式,然后按确定 数据库属性: 右击鼠标 选择属性 可以输入数据库的属性 选择显示的类型 选择“确定” 关闭数据库设计器
    • 9. 把自由表添加到数据库中 方法一 文件---打开,打开项目 选中的数据库是:教工 选中数据库下的“表”文件类型 单击“添加”按钮 选中要加入的表文件,再按“确定” 当自由表添加到数据库中时,其“表设计器”也变成了“数据库设计器”,即也拥有了数据库的所有属性
    • 10. 把自由表添加到数据库中方法二 文件---打开,打开项目 选中的数据库是:教工 选修改按钮,显示数据库设计器 选择数据库菜单 再选“添加表” 选择要加入的表名,按确定 如果所选择的是自由表,就添加到所选中的数据库中 表已经是数据库表,不能添加
    • 11. 数据库中的表删除 文件----打开,打开项目 选中的数据库是:教工 选择修改按钮,屏幕显示“数据库设计器 选中要删除或移去的表,选择移去 如果不想删除此表,就选择“移去”,如果要想删除此表,就选择“删除” 注: 用户向数据库中添加的“表”,只能是自由表 表在同一时间只能属于一个数据库
    • 12. 在数据库中查找表操作步骤如下: 文件--打开,打开项目 选中的数据库是:教工 选择修改,显示数据库设计器-教工窗口 选择“数据库”菜单,选“查找对象”命令 在查找对话框中,选择要查找的表或视图
    • 13. 字段与记录属性的常用概念1.触发器 在数据库表进行一个插入、更新、删除操作之后,运行的记录事件级代码 不同的事件激发不同的动作 触发器在有效规则之后运行 常用于检查已建立永久关系的数据库表之间的数据完整性 触发器只存在于数据库表中 自由表中不存在触发器 触发器是数据库的一部分 受数据库的管理
    • 14. 2.有效性规则 检查输入数据是否满足某些条件的过程 3.记录级规则 一种与记录有关的有效性规则 当插入或修改字段值时被激活 多用于数据输入的正确性 记录被删除时不用使用有效性规则 记录级规则在字段级规则之后和触发器之前被激活
    • 15. 4.字段级规则是一种与字段有关的有效性规则 当插入或修改字段值时被激活 多用于数据输入正确性检查 字段级规则在记录级规则和触发器之前被激活
    • 16. 5.数据字典 包含数据库所有表信息的一个表 存储在数据字典中的信息称为元数据 比如: 长表名 长字段名 有效性规则、触发器 数据库表间的永久关系 数据库有关对象的定义,如视图和命名连接 数据字典使得对数据库的设计和修改更加灵活 使用数据字典,可以设置字段级和记录级的有效性规则保证主关键字字段内容惟一性
    • 17. 设置字段的显示属性字段的显示属性: 显示格式 掩码 标题
    • 18. 1.设置字段的标题定义数据库字段名称时,以英文缩写为多 难以真正理解字段的含义 标题属性,给字段添加一个说明性标题 操作步骤: 项目管理器 选定表 修改,进入表设计器 选定要添加标题的字段,如姓名 单击“是”按钮,保存表结构 此时浏览表,姓名显示为职工姓名
    • 19. 2.设置字段的显示格式格式: 确定一个字段在表单、浏览窗口或报表中的显示格式 输入所需的格式码 格式实际上是字段的输出掩码 常用的格式码: A——表示只允许输出文字字符(禁止数字、空格或标点符号); D——表示使用当前系统设置的日期格式; L——表示在数值前显示填充的前导零,而不是用空格字符; T——表示禁止输入字段的前导空格字符和结尾空格字符; !——表示把输入的小写字母字符转换为大写字母。
    • 20. 3.设置字段的掩码输入掩码: 可以确定字段输入的格式 屏蔽非法输入,减少人为的数据输入错误 常用的输入掩码: X——表示可输入任何字符; 9——表示可输入数字和正负符号; #——表示可输入数字、空格和正负符号; $——表示在固定位置上显示当前货币符号; $$——表示显示当前货币符号; *——表示在值的左侧显示星号; .——表示用点分隔符指定数值的小数点位置; ,——表示用逗号分隔小数点左边的整数部分,一般用来分隔千分位。
    • 21. 例如年龄字段的输入掩码为99 年龄字段只能接受数字输入,而不能输入空格字符、字母等 姓名的显示格式指定为AT 姓名两个字段只能接受字母或汉字输入,而不能输入空格字符、数字 注: 设置格式 一个作用是限制显示输出, 输入掩码: 另一个作用是限制输入
    • 22. 输入字段的注释注释使字段意义更加明确 步骤: 表设计器 “字段注释”文本框中,输入描述信息
    • 23. “表达式生成器”窗口有...按钮,显示一个对话框 表达式: 用运算符把内存变量、字段变量、常数和函数连接起来的式子 表达式用于计算和描述一个操作条件 根据处理结果返回一个值 数值型 字符型 日期型 逻辑型
    • 24. 表达式生成器方便快捷地生成表达式 5个部分: 表达式文本编辑框 函数列表框 变量列表框 表或视图下拉列表框 控制按钮
    • 25. 1.表达式文本编辑框用于编辑表达式 从列表框选择出来的选项将显示在这里, 直接在这里输入和编辑表达式 可以输入各种各样的操作条件 字段级有效性规则 记录级有效性规则 参照完整性规则
    • 26. 2.函数列表框可以选择表达式所需的函数 分为: 字符函数 数学函数 逻辑函数 日期函数 字符函数列表框: 有用于处理字符和字符串的函数及字符运算符
    • 27. 3.变量列表框 列出了当前表或视图的字段变量 变量列表框 内存变量 系统变量 从变量列表框中,可以选择表达式所需的变量 4.表或视图下拉列表框 可以选择当前打开的表或视图
    • 28. 5.控制按钮4个命令按钮: 确定 完成表达式生成,并退出表达式生成器 取消 检验 单击“检验”按钮,可检验生成的表达式是否有效 选项 单击选项,进入表达式生成器选项对话框
    • 29. 字段有效性为了防止这些非法数据的录入 通过显示属性来控制 字段的显示格式 输入掩码 只是码级的限制 通过字段验证方式来控制 合法的字符组合在一起是否合法、是否符合逻辑就无法在此进一步
    • 30. 字段验证数据库表的字段属性之一 字段通过了字段显示格式和输入掩码的限制,输入了数据以后,还要通过字段验证才可以存储到字段中去 字段有效性有3个表达式文本框: 规则 信息 默认值
    • 31. 字段的默认值新记录输入时所默认的字段值 可以简化操作,提示输入格式,减少输入错误,提高输入速度 步骤: 表设计器中的“默认值”属性框中 输入默认值 如: 性别字段输入默认值“女” 单击“正确”按钮
    • 32. 2.设置字段有效性原则一个规则判断输入的数据是否符合字段的要求 在规则文本框中,可以输入字段验证的规则 字段输入完成,系统计算表达式的值 如值为真,输入通过字段规则的验证 否则不允许输入的值存储到字段中去 例如 教工年龄数据必须大于0 小于0,输入的数据是无效的
    • 33. 有效性规则: 字段级有效规则 字段中单个信息输入的数据是否有效 记录级有效性规则 整条记录输入完毕后才开始检查数据的有效性
    • 34. 记录有效性记录级有效性规则属于表的有效性规则 可以控制用户输入到记录中的信息类型 记录级有效性规则检查不同字段在同一记录中的限制,从而保证不违反数据库的商业原则 步骤: 表设计器中,单击“表”选项 规则中,输入规则表达式
    • 35. 注: 记录有效性规则当记录值发生改变时被激活 指针离开记录时,VFP检查记录有效性规则 录值没有改变,规则不被触发 修改了记录,没移动指针,此时关闭窗口,记录有效性规则仍被检查 如: iif(2003-year(工作时间)<年龄,.t.,.f.)
    • 36. 设置触发器触发器: 当表中的记录被指定的操作命令修改时,触发器被激活 触发器能执行数据库应用程序要求的其它操作 触发器可执行: 对记录的修改 进行参照完整性的检查 触发器是作为表的特定属性来存储的 删除表,相关的触发器也将被删除 当进行了其它有效性检查后,触发器被激活 只能删除姓张的记录:“张”$姓名
    • 37. 使用长表名与注释步骤: 表设计器中,可用长表名和表的注释 在“表名”框中,输入长表名 然后选“表属性” 输入表的注释
    • 38. 表名: 可以由字母、数字、下划线或汉字组成 第一个字符必须是字母、下划线或汉字 默认的表名及.DBF文件名 长表名 数据库表,可以建立一个长表名 最多可以包含128个字符 可以用来代替短表名来标识数据库表 定义了长表名,表在界面中,显示长表名 表的注释可以使表的功能易于理解
    • 39. 使用长字段名、标题与注释自由表的字段名最多可包含10个字符 数据库字段名最多可以包含128个字符 从库中移去表,其长字段名将被截断为10个字符 一个表和数据库相关联时,必须使用长字段名来引用该表中的字段
    • 40. 字段的说明: 使表更容易被理解更新 项目管理器中,选择字段后,会显示该字段的注释文本 数据库表中的每个字段可以有一个标题
    • 41. 创建和编辑关系关系: 永久关系 永久关系一旦创建就保存在数据库文件中 在打开数据库时随即被打开 在“库设计器”和数据环境中显示为表索引间的连接线 在永久关系的基础上,可设置表间的参照完整性规则,用以保证数据库各表相关数据的一致性 临时关系 在使用时临时创建的 在“查询与视图设计器”中,是自动作为默认连接条件的数据库表间关系 关闭其中一个表时关系即被自动关闭
    • 42. 临时关系通过主表记录指针的移动来控制子表记录指针的移动 这是临时关系和永久关系不同的特征 在一对多关系表间,建立临时关系以后,在关系的“一”方表中,选择一条记录时,会按关系字段的值自动访问到“多”方表中的相关记录
    • 43. 永久关系: 通过连接不同表的索引可以很方便地建立表之间的关系,被存储在数据库文件中,所以将这种关系称为永久关系 VFP 6.0就自动将永久关系作为查询、视图、表单和报表的默认关系 利用永久关系还可以存储参照完整性信息
    • 44. 建立永久关系主关键字字段与外部关键字字段: 关联的表有一些公共字段 主关键字字段 用于标识主表中的某一特定记录 根据主关键字字段建立一个主索引 外部关键字字段 用于标识相关表中的相关记录 外部关键字字段建立一个普通索引 哪个表包含主记录,哪个表包含相关记录 并且普通索引和主索引必须带有相同的表达式
    • 45. 三种关系: 一对一 表A中的一条记录,在表B只能有一条记录 B的每一条记录也在表A中只能有一条记录与之对应 并不常使用 一对多 最为普通 表A中一条记录,表B中有多条记录对应 表B中的一条记录,在表A中只有一条 一方要建立主关键字或候选关键字 多方要使用普通索引 多对多 转化为“一对一”或“一对多”关系
    • 46. 班级班长领导11班级学生组成1m课程学生选修nm(a)1:1联系 (b)1:m联系 (c)n:m联系
    • 47. 建立永久关系永久性关系并不控制表内记录指针间的关系 步骤如下: (1)建立表的索引 一方要建立主关键字或候选关键字 多方要使用普通索引 (2)拖拽: 在“库设计器”上,“一”方的主索引,拖拽到“多”表的与其对应的普通索引之上
    • 48. 建立临时关系此处少一点
    • 49. 参照完整性表间彼此相关,改一表,可能使其关系发生变化 删除主表中记录,相关表中的记录就找不到与之对应的父记录,就破坏了表之间的原有关系 参照完整性,利用相关表间的制约关系,互相参照,控制相关表数据的完整性
    • 50. 参照完整性规则 更新规则 删除规则 插入规则 控制在相关表中的插入、更改或删除记录
    • 51. 例如当主表中没有相关的记录时,记录不得追加到相关子表中 当主表中某条记录在相关子表中有相关记录时,这条主表记录不允许删除 当主表的关系字段值改变将导致相关子表中出现无关记录时,在主表中不允许做这种改变
    • 52. 步骤如下: 在“库设计器”中,双击关系线,打开编辑关系对话框 单击参照完整性按钮,打开生成器 单击要实施参照完整性的关系行 单击“更新”右边的箭头 选择“级联”、“限制”或“忽略” 单击“确定”按钮
    • 53. 级联: 更新主表关系字段时,同时自动更新子表中的相关记录的关系字段值 限制: 子表中有相关记录时,禁止更新主表相应记录的关系字段值 忽略: 表示忽略主子表间的关系,不限制主表关系字段的更新
    • 54. 使用多个数据库两种方法: 同时打开多个数据库 不打开数据库,而引用其中的表
    • 55. End
    • 56. 图3.4 学校行政机构层次模型学校专业行政研究教学研究科实验公司
    • 57. 系老师专业课程学生成绩聘任开设任课下设招收被选选课图3.5 网状模型
    • 58. 1.选择 从关系中找出满足给定条件的诸元组称为选择。其中的条件是以逻辑表达式给出,该逻辑表达式的值为真的元组被选取。 该运算的一般表示方法为: SELECT <关系名> WHERE <条件>
    • 59. 2.投影 从关系模式中挑选若干属性组成新的关系称为投影。这是从列的角度进行的运算,相当于对关系进行垂直分解。 一般表示方法为: PROJECT <关系名> (属性1,属性2,…)从图书中列出所有书的书名、作者、出版社、单价。 PROJECT 图书(书名,作者,出版单位,单价
    • 60. 3.联接 联接是将两个关系模式的属性名拼接成一个更宽的关系模式,生成新的关系中包含满足联接条件的元组。 该运算的一般表示方法为: JOIN <关系1> AND <关系2> WHERE <条件>