第五部分Access数据库基础 面,通过它们可以直接或间接调用宏或模块,并执行查询、打印、预览、计算等功能,甚至 对数据表进行编辑修改。 宏/模块 窗体 查询 报表/页 表 控制流 数据流 图20-7 Access数据库中各对象间的关系 193
第五部分 Access 数据库基础 193 面,通过它们可以直接或间接调用宏或模块,并执行查询、打印、预览、计算等功能,甚至 对数据表进行编辑修改。 宏/模块 窗体 查询 报表/页 表 控制流 数据流 图 20-7 Access 数据库中各对象间的关系
第五部分Access数据库基础 第21章建立数据库 21.1数据库设计 在建立Access数据库之前,花时间进行数据库设计是非常重要的。合理的设计是新建 一个能够有效、准确、及时完成所需功能的数据库的基础。没有好的设计,用户将会面临经 常修改表格,甚至可能无法从数据库中抽取出想要的信息。 设计数据库的基本步骤如下: (1)确定新建数据库所要完成的任务,即总体设计。 (2)规划数据库中需要建立的表。 (3) 确定表中需要的字段。 (4)明确有唯一值的字段。 (5)确定表之间的关系。 (6)优化设计。 (7)输入数据并新建其他数据库对象。 下面我们以“住院病人管理”数据库为例说明数据库设计的方法。 21.1.1确定新建数据库的目的 在设计数据库之前,必须首先明确需要应用数据库管理哪些信息,如何管理这些信息, 从而确定需要用什么主题来保存有关事件(对应数据库中的表)和需要什么事件来保存每一 个主题(对应于数据库中的字段)。这需要数据库设计者和数据库用户进行充分交流确定。 在“住院病人管理”数据库中,要求应用数据库管理病人入院、治疗、用药、收费等信 息及医生信息。 21.1.2规划数据库的表 规划表可能是数据库设计过程中最难处理的步骤,在整个数据库中需要划分那些表,表 和表之间有那些联系,这些问题在规划表时一定要考虑周到,否则会影响到整个数据库系统 的性能。在设计表时,应按以下设计原则对信息进行分类: (1)表中不应该包含重复信息,并且信息不应该在表之间复制。如果每条信息只保存 在一个表中,只需在一处进行更新。这样效率更高,同时也消除了包含不同信息的重复项的 可能性。例如,要在一个表中只保存一次每个病人的个人资料信息。 (2)每个表应该只包含关于一个主题的信息。如果每个表只包含关于一个主题的事件, 则可独立于其他主题维护每个主题的信息。例如,将病人的个人资料和病人的用药记录存放 在不同表中,这样就可以删除病人的用药记录而仍然保留病人的信息。 根据以上原则,在“住院病人管理”数据库中,设计了“病人信息”、“收费信息”,“药 品信息”、“医生信息”和“用药记录”等5个表。 21.1.3确定字段 每个表中都只包含关于某一主题的信息,并且表中的每个字段应包含关于该主题的各个 方面。在确定字段时,应注意: (1)每个字段直接与表的主题相关。 (2)不包含推导或计算的数据(表达式的计算结果)。 (3)包含所需的所有信息。 (4)以最小的逻辑部分保存信息。 21.1.4明确有唯一值的字段 为了做到这一点,每个表应该包含一个字段或字段组合,且该字段是表中所保存的每一 194
第五部分 Access 数据库基础 194 第 21 章 建立数据库 21.1 数据库设计 在建立 Access 数据库之前,花时间进行数据库设计是非常重要的。合理的设计是新建 一个能够有效、准确、及时完成所需功能的数据库的基础。没有好的设计,用户将会面临经 常修改表格,甚至可能无法从数据库中抽取出想要的信息。 设计数据库的基本步骤如下: (1) 确定新建数据库所要完成的任务,即总体设计。 (2) 规划数据库中需要建立的表。 (3) 确定表中需要的字段。 (4) 明确有唯一值的字段。 (5) 确定表之间的关系。 (6) 优化设计。 (7) 输入数据并新建其他数据库对象。 下面我们以“住院病人管理”数据库为例说明数据库设计的方法。 21.1.1 确定新建数据库的目的 在设计数据库之前,必须首先明确需要应用数据库管理哪些信息,如何管理这些信息, 从而确定需要用什么主题来保存有关事件(对应数据库中的表)和需要什么事件来保存每一 个主题(对应于数据库中的字段)。这需要数据库设计者和数据库用户进行充分交流确定。 在“住院病人管理”数据库中,要求应用数据库管理病人入院、治疗、用药、收费等信 息及医生信息。 21.1.2 规划数据库的表 规划表可能是数据库设计过程中最难处理的步骤,在整个数据库中需要划分那些表,表 和表之间有那些联系,这些问题在规划表时一定要考虑周到,否则会影响到整个数据库系统 的性能。在设计表时,应按以下设计原则对信息进行分类: (1)表中不应该包含重复信息,并且信息不应该在表之间复制。如果每条信息只保存 在一个表中,只需在一处进行更新。这样效率更高,同时也消除了包含不同信息的重复项的 可能性。例如,要在一个表中只保存一次每个病人的个人资料信息。 (2)每个表应该只包含关于一个主题的信息。如果每个表只包含关于一个主题的事件, 则可独立于其他主题维护每个主题的信息。例如,将病人的个人资料和病人的用药记录存放 在不同表中,这样就可以删除病人的用药记录而仍然保留病人的信息。 根据以上原则,在“住院病人管理”数据库中,设计了“病人信息”、“收费信息”,“药 品信息”、“医生信息”和“用药记录”等 5 个表。 21.1.3 确定字段 每个表中都只包含关于某一主题的信息,并且表中的每个字段应包含关于该主题的各个 方面。在确定字段时,应注意: (1) 每个字段直接与表的主题相关。 (2) 不包含推导或计算的数据(表达式的计算结果)。 (3) 包含所需的所有信息。 (4) 以最小的逻辑部分保存信息。 21.1.4 明确有唯一值的字段 为了做到这一点,每个表应该包含一个字段或字段组合,且该字段是表中所保存的每一
第五部分Access数据库基础 条记录的唯一标识,此信息称作表的主关键字(主键)。为表设置主键后,为确保唯一性, Access将避免任何重复值或空值进入主键字段。Access为了链接保存在不同表中的信息, 例如将某个病人与该病人的所有用药记录相链接,数据库中的每个表必须包含表中唯一的确 定每个记录的字段或字段组合。例如,在“病人信息”表中,字段“住院号”被设置为主键。 21.1.5确定表之间的关系 表的关系是关系数据库的灵魂所在,将众多的表通过一定的方法建立关系,那么一个表 中的变动就会影响所有相关表的数据,可以大大节省用户的时间,而且减少在数据输入中因 人为因素而产生的错误。 21.1.6优化设计 在设计完需要的表、字段和关系后,应检查一下该设计并找出任何可能存在的不足。可 以先输入模拟数据,看能不能用该数据库获得预期的结果。Access提供了两个工具来帮助 用户方便地改进数据库的设计,它们是“表分析器向导”和“性能分析器”,可以通过菜单 【工具】→【分析】→【表】或【性能】来实现。 21.1.7输入数据并新建其他数据库对象 如果认为表的结构己经达到了设计目的,就可以输入实际数据,然后建立数据库管理所 需的查询、报表、窗体、宏和模块等对象,完成整个数据库设计。 21.2建立数据库 建立数据库是进行一切数据库管理的前提。欲建立一个新的数据库,可选择菜单:【文 件】一【新建】或选择新建工具:凸,此时激活Access任务窗格的“新建文件”窗格,如 图21-1所示。在该窗格中可以选择三种建立数据库的常用方式:新建空数据库、根据现有 文件新建数据库和根据模板新建数据库。 21.2.1新建空数据库 创建一个空数据库是最简单的建库方法。欲创 建一个空数据库,在“新建文件”窗格上点击“新 中中新建文件 建”组中的“空数据库”项目,系统弹出“文件新 打开文件 建数据库”对话框,在该对话框中的“保存位置” db1 住院病人管理 选项中选定新数据库的存储位置(默认为“我的文 db2 档”),在“文件名”选项中输入新数据库文件名(默 db1 认为b1),我们在此位置输入“住院病人管理”作 它其他文件: 为文件名,然后点击“创建”按钮,即创建了住院 新建 病人管理空数据库,同时打开数据库窗口。 国空数据库 创建空数据库后,必须通过Access提供的各种 列空数据访问页 工具手工创建数据库的各种对象,如表、查询、报 国项目砚有数据) 表等,才能最终完成建立数据库的工作。 小项目新数据) 21.2.2根据现有文件新建数据库 根据现有文件新建 简选择文件. 如果磁盘上己经有了一个现成的数据库,可以 根据榠板新建 通过修改该数据库内容来建立一个新的数据库,而 国通用模板. 不必再重新创建一个。 Microsoft.com上的模板 选择“新建文件”窗格上的“根据现有文件新 建”组中的“选择文件”项目,系统弹出“根据现 图21-1“新建文件”任务窗格 有文件新建”对话框,在该对话框中选中原有的数 据库,然后在“文件名”选项中输入新数据库文件 195
第五部分 Access 数据库基础 195 条记录的唯一标识,此信息称作表的主关键字(主键)。为表设置主键后,为确保唯一性, Access 将避免任何重复值或空值进入主键字段。Access 为了链接保存在不同表中的信息, 例如将某个病人与该病人的所有用药记录相链接,数据库中的每个表必须包含表中唯一的确 定每个记录的字段或字段组合。例如,在“病人信息”表中,字段“住院号”被设置为主键。 21.1.5 确定表之间的关系 表的关系是关系数据库的灵魂所在,将众多的表通过一定的方法建立关系,那么一个表 中的变动就会影响所有相关表的数据,可以大大节省用户的时间,而且减少在数据输入中因 人为因素而产生的错误。 21.1.6 优化设计 在设计完需要的表、字段和关系后,应检查一下该设计并找出任何可能存在的不足。可 以先输入模拟数据,看能不能用该数据库获得预期的结果。Access 提供了两个工具来帮助 用户方便地改进数据库的设计,它们是“表分析器向导”和“性能分析器”,可以通过菜单 【工具】→【分析】→【表】或【性能】来实现。 21.1.7 输入数据并新建其他数据库对象 如果认为表的结构已经达到了设计目的,就可以输入实际数据,然后建立数据库管理所 需的查询、报表、窗体、宏和模块等对象,完成整个数据库设计。 21.2 建立数据库 建立数据库是进行一切数据库管理的前提。欲建立一个新的数据库,可选择菜单:【文 件】→【新建】或选择新建工具: ,此时激活 Access 任务窗格的“新建文件”窗格,如 图 21-1 所示。在该窗格中可以选择三种建立数据库的常用方式:新建空数据库、根据现有 文件新建数据库和根据模板新建数据库。 21.2.1 新建空数据库 创建一个空数据库是最简单的建库方法。欲创 建一个空数据库,在“新建文件”窗格上点击“新 建”组中的“空数据库”项目,系统弹出“文件新 建数据库”对话框,在该对话框中的“保存位置” 选项中选定新数据库的存储位置(默认为“我的文 档”),在“文件名”选项中输入新数据库文件名(默 认为 db1),我们在此位置输入“住院病人管理”作 为文件名,然后点击“创建”按钮,即创建了住院 病人管理空数据库,同时打开数据库窗口。 创建空数据库后,必须通过 Access 提供的各种 工具手工创建数据库的各种对象,如表、查询、报 表等,才能最终完成建立数据库的工作。 21.2.2 根据现有文件新建数据库 如果磁盘上已经有了一个现成的数据库,可以 通过修改该数据库内容来建立一个新的数据库,而 不必再重新创建一个。 选择“新建文件”窗格上的“根据现有文件新 建”组中的“选择文件”项目,系统弹出“根据现 有文件新建”对话框,在该对话框中选中原有的数 据库,然后在“文件名”选项中输入新数据库文件 图 21-1 “新建文件”任务窗格
第五部分Access数据库基础 名,然后点击“创建”按钮,这样就创建了一个与原有数据库同样的一个新数据库。用户可 以通过相应工具修改该数据库使其达到要求。 21.2.3根据模板新建数据库 Access提供了方便的数据库向导来帮助用户在最短的时间内创建一个比较专业的通用 数据库,新建的数据库包含了当前流行的Access数据库的基本对象,可基本满足常用数据 库管理的需要。 选择“新建文件”窗格上的“根据模板新建”组中的“通用模板”项目,系统弹出“模 板”对话框,如图21-2所示。该对话框有两个选项卡:“常用”和“数据库”。“常用”选项 卡对应新建空数据库操作,点击“数据库”选项卡后,显示Access提供的10类模板数据库, 可根据所需建库的目的选用其中一个模板。以“库存控制”为例,点击“库存控制”后按“确 定”按钮,系统弹出“文件新建数据库”对话框,要求用户输入一个数据库文件名后按“创 建”按钮,系统弹出“数据库向导”对话框,如图21-3所示,可通过该向导一步步地完成 创建整个数据库的工作。 模板 ②☒ 常用 数据库 N 的 时 国國園 预览 订单入口 分类总帐 服务请求管工时与帐单 理 N 讲座管理 库存控制 联系管理 支出 资产追踪 资源调度 确定 取消 图21-2模板”对话框 该数据库建立后,Access自动运行该数据库的“主切换面板”窗口,如图21-4所示。 这是Access自动建立的该数据库的一个窗体对象,用户可通过该窗体对象管理整个数据库, 输入、查询数据库中的数据,显示、打印报表,编辑、修改报表与窗体设计,完成所需的数 据库操作。 虽然数据库模板和向导提供了方便的建库方式和强大的功能,但通过模板建立的数据库 往往不能满足我们的实际需要,这需要我们对模板数据库进行修改。而更一般的方法是先创 建一个空数据库,然后手工创建所需的表、查询、报表、窗体等数据库对象。 21.3创建表 数据表是数据库中最基本的对象。在Access数据库中,数据表可以实现保存和组织各 类数据的功能,我们在工作中创建的其他数据库对象,如窗体、报表等,它们调用的所有数 据都是保存在数据表中的。数据表是数据库的基础,也是Access的基础。 创建数据表可通过“表向导”方便地创建通用数据表,也可通过“表设计”视图手工创 196
第五部分 Access 数据库基础 196 名,然后点击“创建”按钮,这样就创建了一个与原有数据库同样的一个新数据库。用户可 以通过相应工具修改该数据库使其达到要求。 21.2.3 根据模板新建数据库 Access 提供了方便的数据库向导来帮助用户在最短的时间内创建一个比较专业的通用 数据库,新建的数据库包含了当前流行的 Access 数据库的基本对象,可基本满足常用数据 库管理的需要。 选择“新建文件”窗格上的“根据模板新建”组中的“通用模板”项目,系统弹出“模 板”对话框,如图 21-2 所示。该对话框有两个选项卡:“常用”和“数据库”。“常用”选项 卡对应新建空数据库操作,点击“数据库”选项卡后,显示 Access 提供的 10 类模板数据库, 可根据所需建库的目的选用其中一个模板。以“库存控制”为例,点击“库存控制”后按“确 定”按钮,系统弹出“文件新建数据库”对话框,要求用户输入一个数据库文件名后按“创 建”按钮,系统弹出“数据库向导”对话框,如图 21-3 所示,可通过该向导一步步地完成 创建整个数据库的工作。 该数据库建立后,Access 自动运行该数据库的“主切换面板”窗口,如图 21-4 所示。 这是 Access 自动建立的该数据库的一个窗体对象,用户可通过该窗体对象管理整个数据库, 输入、查询数据库中的数据,显示、打印报表,编辑、修改报表与窗体设计,完成所需的数 据库操作。 虽然数据库模板和向导提供了方便的建库方式和强大的功能,但通过模板建立的数据库 往往不能满足我们的实际需要,这需要我们对模板数据库进行修改。而更一般的方法是先创 建一个空数据库,然后手工创建所需的表、查询、报表、窗体等数据库对象。 21.3 创建表 数据表是数据库中最基本的对象。在 Access 数据库中,数据表可以实现保存和组织各 类数据的功能,我们在工作中创建的其他数据库对象,如窗体、报表等,它们调用的所有数 据都是保存在数据表中的。数据表是数据库的基础,也是 Access 的基础。 创建数据表可通过“表向导”方便地创建通用数据表,也可通过“表设计”视图手工创 图 21-2 模板”对话框
第五部分Access数据库基础 数据库向导 库存控制数据库将存储 产品信息 买卖存货信息 - 采购订单信息 、 类别 、 雇员信息 三 一供应商 单击“下一步”继续。 取消 〈上一步B) 下一步)习 完成) 图21-3 “数据库向导”对话框 图主切换面板 口▣☒ 库存控制 回输入查看产品 输入查看其他信息., 」预览报表 更改“Switchboard Items'” 退出该数据库 图21-4“主切换面板”窗口 建符合自己需要的数据表。 21.3.1使用表向导创建数据表 “数据表向导”是Access提供的一个创建通用表的快捷途径。可通过以下步骤创建表: (1)打开数据库,在数据库窗口的“对象选择窗格”选中“表”对象。 (2)点击数据库窗口工具栏中的“新建”工具按钮(甸新建)),然后在弹出的“新 197
第五部分 Access 数据库基础 197 建符合自己需要的数据表。 21.3.1 使用表向导创建数据表 “数据表向导”是 Access 提供的一个创建通用表的快捷途径。可通过以下步骤创建表: (1)打开数据库,在数据库窗口的“对象选择窗格”选中“表”对象。 (2)点击数据库窗口工具栏中的“新建”工具按钮( ),然后在弹出的“新 图 21-3 “数据库向导”对话框 图 21-4 “主切换面板”窗口