1 / 83

第 3 章 数据库与表的创建及使用

第 3 章 数据库与表的创建及使用. 3.1 数据库概述. Visual FoxPro 中构建数据库也包含创 建表。在设计应用数据库时,其 主要内容 就是 确定 表 、 字段 以及 关系 等数据库中所 需的项目。. 3.1.1 数据库设计的过程. 在一个数据库应用系统中,数据库的设计是非常关键 的。数据库设计的好坏,将直接影响到数据的使用、存 储以及应用系统中的程序设计。在基于 Visual FoxPro 开发小型的信息处理系统的过程中,数据库的设计一般 按如下步骤进行: 确定建立数据库的目的,进行数据需求分析。

Download Presentation

第 3 章 数据库与表的创建及使用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第3章 数据库与表的创建及使用

  2. 3.1 数据库概述 Visual FoxPro中构建数据库也包含创 建表。在设计应用数据库时,其主要内容 就是确定表、字段以及关系等数据库中所 需的项目。

  3. 3.1.1 数据库设计的过程 在一个数据库应用系统中,数据库的设计是非常关键 的。数据库设计的好坏,将直接影响到数据的使用、存 储以及应用系统中的程序设计。在基于Visual FoxPro 开发小型的信息处理系统的过程中,数据库的设计一般 按如下步骤进行: • 确定建立数据库的目的,进行数据需求分析。 • 确定需要的各种表(将信息分为若干个独立的主题,每个主题都是数据库中的一个表) • 确定所需字段,也就是将在表中保存的信息。 • 确定表之间的关系,形象而又直观的反映现实世界中各实体间的真正关系。 • 改进设计、优化设计、

  4. 1.分析数据需求 数据需求分析的目标是对现实世界中要处理 的对象进行详细调查,并在了解整个系统概况、 确定新系统功能的过程中,收集支持系统目标的 信息。这个步骤将最终确定应在数据库中存储何 种信息以及他们之间的关系等。明确目的之后, 就可以确定需要保存哪些主题的信息(表),以 及每个主题需要保存哪些信息(表中的字段)。

  5. 2.确定需要的表 表是存储数据的容器,也是数据库的主要管 理对象。 在一个应用系统中,往往需要管理各方面的 数据。

  6. 例如:在一个教学数据信息系统中可能涉及到学生、课程、成绩、专业等多方面的信息。为了高效准确地提供信息,应将不同主题的信息保存到不同的表中。例如:在一个教学数据信息系统中可能涉及到学生、课程、成绩、专业等多方面的信息。为了高效准确地提供信息,应将不同主题的信息保存到不同的表中。 在设计数据库的时候,需要分离那些需要作为单个主题而独立保存的信息,然后说明主题之间有何关系,以便在需要时把正确的信息组合在一起。通过将不同的信息分散到不同的表中,可以使数据的组织和维护工作更简单,同时也保证建立的应用系统具有较高的性能。

  7. 一个教学数据系统中表及表之间联系的示意图 学生表 成绩表 专业表 课程表 用xs(学生)表保存学生的信息,用cj(成绩)表保存学生的考试成绩信息,用kc(课程)表保存课程信息,用zy(专业)表保存相关的专业信息。

  8. 确定数据库中的表是数据库设计过程中最具技巧性的一步。在确定表时要注意尽量避免在一个表中存储重复的信息。将相同的信息只保存一次能加少错误出现的概率,包括降低数据的冗余度,避免数据的异常插入、异常删除等操作。确定数据库中的表是数据库设计过程中最具技巧性的一步。在确定表时要注意尽量避免在一个表中存储重复的信息。将相同的信息只保存一次能加少错误出现的概率,包括降低数据的冗余度,避免数据的异常插入、异常删除等操作。

  9. 3.确定表的字段

  10. 确定字段时,应遵从以下设计原则: • 每个字段直接和表的主题相关。 • 不要包含可推导得到或需要计算的字段。 • 收集所需的全部信息、确保所需的信息都已包括在表中,或者可由表中字段推导出来。 • 尽量以最小的逻辑单位存储信息。 • 每个表都必须包含主关键字。

  11. 4.确定表之间的关系 要在两个表之间正确地建立关系,首先必须 明确这两个表之间存在何种关系。在关系模型中 实体之间的联系有三种关系:一对一关系、一对 多关系和多对多关系。 • “一对一”关系:在实际应用中不常见。如果两个表之间是“一对一”关系,则通常可以将它们合并成一个表,除非字段总数超过255. • “一对多”关系:是最常见、也是最常用的关系。 • “多对多”关系:

  12. 主关键字 外部关键字 一对多关系

  13. 多对多 来自kc表的主关键字 来自xs表的主关键字 一对多 一对多 纽带表

  14. 5.设计的优化 确定了所需要的表、字段和关系之后,应该来研究一 下设计方案,并且检查可能存在的缺陷。 • 表中是否带有大量并不属于某主题的字段? • 是否有大量表包含许多同样的字段? • 是否遗忘字段? • 是否为每个表选择了合适的主关键字? • 是否在某个表中重复输入了同样的信息? • 是否存在“字段很多而记录很少”的表,而且许多记录中的字段值为空?

  15. 3.1.2 数据库的组成

  16. 1.表(Table) 表及表之间的关系是数据库管理的主要 内容,从属于某一个数据库的表,通常也称 为“数据库表”。 表与数据库之间的相关性是通过表文件 与库文件之间的双向链接实现的。

  17. 前链(Forward Link)是保存在数据库文件中的表文件的路径和文件名信息,它将数据库与表文件相链接 是存放在表(.dbf)的表头中的数据库文件的路径和文件名,用以将该表与拥有该表的数据库容器相链接。

  18. 2.视图 在设计表时,要把数据按主题分解到不同的 表中,在使用这些表示,常常要把分散在相关表 中的数据通过链接条件把它们收集到一起,构成 一个“虚表”。在Visual FoxPro中,视图就是一 种“虚表”类型,其数据来源于一个或多个表。

  19. 3.连接 连接是保存在数据库中的一个定义,它指定 了数据源的名称。这里所述的数据源是指远程数 据源,一个远程数据源通常是一个远程数据库服 务器或文件,并且已为它在本地安装了ODBC驱 动程序和设置了ODBC数据源名称。

  20. 4.存储过程 存储过程是在数据库数据上执行特定操作 并储存在数据库文件中的程序代码,并且在数据 库打开时被加载到内存中。存储过程有一系列用 户自定义函数或在创建表与表之间参照完整性规 则时系统创建的函数组成。当用户对数据库中的 数据经常要进行一些相似或相同的处理时,可以 把这些处理代码编写成自定义函数并保存到储存 过程中。

  21. 3.1.3 数据字典 数据字典是指存储在数据库中用于描述所管理的表和对象 的数据,即关于数据的数据,这些数据称为元数据(Meta Data)。在VFP中,数据字典可以创建和指定以下内容: • 表中字段的标题、注释、默认值、输入掩码和显示格式,以及字段在表单中使用的默认控件类。 • 表的主索引关键字。 • 数据库表之间的永久性关系。 • 长表名和表注释。 • 字段级和记录集有效性规则。 • 存储过程。 • 插入、更新和删除事件的触发器器。

  22. 3.2 数据库的创建、打开与使用 在VFP中,每创建一个新的数据库都将 在磁盘上以三个文件进行保存: • 数据库文件(.DBC) • 关联的数据库备注文件(.DCT) • 关联的数据库索引文件(.DCX)

  23. 3.2.1 数据库的创建 VFP为数据库设计提供了两个工具: • 数据库向导 • 数据库设计器

  24. 1.界面操作方式创建数据库 方式一: 1

  25. 2 3

  26. 4

  27. 方式二:

  28. 这样新建的数据库不会自动加到项目中去。

  29. 2.命令方式创建数据库 CREATEDATABASE[DatabaseName|?]

  30. 3.数据库设计器与“数据库”菜单 • MODIFY DATABASE命令打开数据库设计器

  31. 3.2.2 数据库的打开与关闭 当创建数据库时,Visual FoxPro创建 并以独占方式打开数据库(与独占方式相 对的是共享方式)

  32. 1.打开数据库 • 使用之前必须打开。(对于新建的数据库,保存后将自动地以独占方式打开;打开数据库中的表,数据库也自动打开) OPEN DATABASE [DatabaseName][EXCLUSIVE|SHARED][NOUPDATE] [VALIDATE] 打开后不可修改 打开后进行数据库的有效性检验 默认值

  33. SET DATABASE TO 设置当前默认数据库。系统默认最后一 个打开的数据库是当前数据库。 例如:SET DATABASE TO SJK

  34. 2.检查数据库的有效性 • VALIDATE DATABASE

  35. 3.关闭数据库 • 关闭已打开的数据库jxsj SET DATABASE TO jxsj CLOSE DATABASE • 可关闭所有打开的数据库 CLOSE DATABASE ALL

  36. 4.删除数据库 删除数据库意味着删除存储在该数据库 中的一切数据,包含存储过程、视图、表 时间的关系、数据字典等。 从项目管理器中通过“移去”操作进行 删除。这样数据库中包含的数据库表将自 动地变为自由表。

  37. 3.3 表的创建与使用 表的两种类型: • 数据库表(拥有自由表的全部特性,还有数据库管理的其他特性) • 自由表 文件类型(.dbf) 命名规则: • 遵守Windows系统对文件名的约定 • 不可使用A-J中的单个字符做文件名 • 文件存取路径最好不使用空格字符

  38. 3.3.1 表结构概述 建立表的一般步骤: • 设计表的结构 • 使用表设计器或命令建立表的结构并保存为表文件。 字段及其属性(字段名<=255,数据类型,宽度)

  39. 1.字段名(Field Name) 表中的每一个字段必须取一个名字,称为“字段 名”。必须满足命名规则。在实际应用中,字段命 一般要与其对应的实体的属性名相同、相近或关 联,以便于记忆和使用。例如:学生表的“姓名”字 段可以取名为“姓名”(汉字),或“xingming” (拼音)或“xm”(拼音字头),或“name”(英 文)等。

  40. 2.字段的数据类型(Type)

  41. 3.字段宽度 字段所能容纳数据的最大字节数。 需要设置宽度的数据类型 • 字符型 • 数值型(宽度为:整数部分宽度+小数点1位+小数位数宽度) • 浮点型(同上) 宽度固定的数据类型 • 货币型、日期型、日期时间型和双精度型(8字节) • 逻辑型(1字节) • 整型、备注型、通用型(4字节) 仅存储引用信息,备注型字段指向备注文件中的备注内容,通用型字段指向所管理的数据对象 如果有,生成相应的备注文件,主文件名与表文件名相同,扩展名为.fpt

  42. 4.空值支持 空值(NULL)是用来只是记录中的一个 字段“有或没有”数据的标识。

  43. 3.3.2 利用表设计器创建和修改表结构 两种方法: 利用表设计器 使用命令

  44. 1.利用表设计器创建表结构 例:利用“表设计器”创建学生表(xs.dbf)。 其中包含5个字段: csrq(日期型), zzmmdm(字符型,宽度为2), mzdm(字符型,宽度为2,允许输入空值), jg(字符型,宽度为10), rxrq(日期型)

  45. 步骤一(1)(以建立数据库中的表为例,如果自由表则不需这一步)步骤一(1)(以建立数据库中的表为例,如果自由表则不需这一步)

  46. 步骤一(2)(数据库取名sjk.dbc)

  47. 步骤一(3)(sjk.dbc建立完毕,并打开了数据库设计器)步骤一(3)(sjk.dbc建立完毕,并打开了数据库设计器)

  48. 步骤二(1):新建表

More Related