第5章数据库和表 目前,采用关系数据模型建立的关系数据库是数据库系统的主流。Aces 是一种基 于Windows平台的小型关系数据库管理系统,具有界面友好、易学易用、开发简单、接口 灵活等特点,是学习关系数据库的入门级软件。本书后面章节将以建立一个药品进、销、 存管理系统为例,详细介绍应用Aces2019(后面简称Aces)建立数据库并管理数据的 基本方法。作为基础,本章介绍应用Aces 设计、建立数据库和表的基本操作,包括数据 库和表的设计、数据库的创建、表的建立和表的编辑等内容。 5.1 Aces 概述 由Aces 创建的数据库简称Aces 数据库,该数据库以扩展名为acdb的磁盘文 件形式存在。为了实现数据库管理的各项功能,Aces 提供了表、查询、窗体、报表、宏、 模块6种数据库对象,并将它们放置在一个数据库文件中。本节依次介绍Aces 的工作 界面、Aces 数据库对象和数据类型以及设计数据库和表的一般方法。 5.1Ass数据库工作界面 1. ce 作为MicrosoftOfice组件之一,Aces 具有与Word、Excel一致的界面风格,在基 本操作方面也有很多共性。如果直接运行Aces 应用程序,1所示的欢迎 将显示如图5. 界面。该界面提供了一些选项,用于打开一个现有的数据库或创建新的数据库。 图5. s 欢迎界面 1 Ace 要创建新的空白数据库,可单击欢迎界面上的“ 选项,2所 空白数据库” 将显示如图5. 示的对话框,在该对话框中,可以指定新数据库的名称和存放位置。 图5.创建空白数据库 2 若要改变新建数据库文件存放的位置和默认的数据库文件名,可以单击“文件名”文 本框右边的“浏览到某个位置来存放数据库” 图标。在弹出如图5. 3所示“文件新建数 据库”对话框中,确定数据库文件的“保存位置”,并在“文件名”文本框中输入新建的数据 库文件名,如图中所示“ 销、, 确定” 返回图5. 药品进、存管理”然后单击“ 命令, 2。再单击 “创建”按钮,就完成了存放在D:\YPJXC文件夹中“药品进销存管理”数据库的创建。同 时,该数据库也将自动创建默认名为“表1的(”) 表对象,并显示如图5.药品进销存管 4所示“ 理”数据库数据表视图。 图5.“文件新建数据库”对话框 3 数据库数据表视图由上方的功能区、左侧的导航窗格、选项卡式文档编辑区3部分组 成。功能区由一系列命令选项卡/选项组组成。导航窗格中列出了当前Aces 中已建立 的数据库对象或分组。双击其中一个对象,就会打开该对象。分组提供了一种管理对象 的方法,可以把那些关系比较紧密的对象分为同一组,或把不同类别的对象归到同一组 中。在数据库中,随着对象数量的增多,用分组的方法可以更方便地管理各种对象。选项 98 图5.“药品进销存管理”数据库数据表视图 4 卡式文档编辑区则是对数据库对象进行操作的区域。 要设置或改变Aces 数据库的外观和默认属性,可单击功能区的“文件”选项卡切换 到如图5.5所示Backstage视图,再单击Backstage视图中左侧的“选项”命令,打开如 图5.6所示“Aces 选项”对话框,选择该对话框中左侧项目列表,可以进行相应的设置。 图5.e视图 5 Backstag 5.2Ass数据库对象和数据类型 1. ce 在Aces 中创建一个数据库对象,就是将空数据库转变成可以使用的数据库,是建 立空数据库后的第一步工作。掌握数据类型则是建立关系数据库表的基础。 99 图5.“ ces 选项”对话框 6A 1.Acess数据库对象 1 表 ) ( 表 Table)就是指关系数据库中的二维表,它是Aces 数据库中用来存储数据的对 象,是实现数据库管理的基础。表作为数据库最基本的对象是因为它既是整个数据库系 统的数据源,又是数据库其他对象的基础。Aces 允许一个数据库中包含多个表,用户 可以在不同表中存储不同性质的数据。 2)查询 查询(Query)是通过设置某些条件,从表中获取所需要的数据。按照指定规则,查询 可以从一个表、一组相关表或其他查询中选取全部或部分数据,将其集中起来形成一个数 据集合供用户浏览。将查询保存为一个数据库对象后,就可以随时利用它来查询数据库 中的数据。使用查询可以根据需要按照不同的方式查看、更改和分析数据表中的数据。 3)窗体 窗体(Form)是用户和数据库之间的人机交互界面,是数据库对象中最具有灵活性的 一个对象。其数据源是来自表或查询中的数据。在窗体中可以显示数据表中的数据,也 可以将数据库中的表链接到窗体中,利用窗体作为数据记录的界面。在窗体中不仅包含 普通的数据,还可以包含图片、图形、声音、视频等多种数据对象。 4)报表 Repor 报表(t)是数据库中数据输出的形式之一,是以打印格式显示或打印数据的数 据库对象。用户可以在一个表或查询的基础上创建一个报表,也可以在多个表或查询的 100 基础上创建一个报表。利用报表可以将需要的数据进行整理和计算,并将数据按指定的 样式显示或打印,是展示数据的有效方式。 5 宏 ) ( 宏 Macro)是指一个或多个操作的集合,其中每个操作实现特定的功能。操作是宏 的基本组成部分,是一种自含式指令,可以与其他操作结合起来自动执行任务。操作在其 他宏语言中有时也称为命令。每个操作都实现特定的功能,例如打开某个窗体或打印某 个报表。 6)模块 模块(Module)是由Aces 内置的VBA(VisualBasicforApplication)编程语言编写 的程序集合,或一个函数过程。Aces 通过VBA提供了宏无法完成的、较为复杂的,或 是关于整个数据对象的整合操作等高级功能。 Aces 提供的上述6种对象分工非常明确,从功能和彼此间的关系角度考虑,这6 种对象可以分为3个层次:第一层次是表对象和查询对象,它们是数据库的基本对象,用 于在数据库中存储数据和查询数据;第二层次是窗体对象、报表对象,它们是直接面向用 户的对象,用于数据的输入输出和应用系统的驱动控制;第三层次是宏对象和模块对象, 它们是代码类型的对象,用于通过组织宏操作或编写程序来完成复杂的数据库管理工作 并使得数据库管理工作自动化。 2.Acess常用的数据类型 根据关系数据库理论,一个二维表中的同一列数据必须具有相同的数据特征,即字段 的数据类型相同。数据类型决定了数据的存储方式和使用方式。Aces 常用的数据类 型包括短文本、长文本、数字、日期/时间、货币、自动编号、是/否、OLE对象、超链接、附件 等十余种;查阅向导则是一种特别的数据输入形式。 1)短文本 短文本型字段可以保存文本或文本与数字的组合,例如姓名、地址;也可以保存不需 要计算的数字,例如电话号码、邮政编码、学号等。短文本型字段默认大小可以在“Aces 选项”对话框中设置,但一般输入时,系统只保存实际输入到字段中的字符。设置“字段大 小”属性可控制能输入的最大字符个数。短文本型字段的取值最多可达到255个字符,如 果字段值中的字符个数超过255个,可使用长文本型。 2)长文本 长文本型字段可保存较长的文本,最多可达1GB 。如果要存储带格式文本或长文 档,可以创建OLE对象字段代替“长文本”字段。在长文本型字段中可以搜索文本,但搜 索速度较有索引的短文本字段慢。不能对长文本型字段进行排序和索引。 3)数字 数字型字段用来存储进行算术运算的数字数据。一般可以通过设置“字段大小”属 性,定义一个特定的数字型。 4)日期/时间 日期/时间型字段用来存储日期、时间或日期时间的组合。 10 5)货币 货币型是数字型的特殊类型,等价于具有双精度属性的数字型。向货币型字段输入 数据时,不必输入美元符号和千位分隔符,Aces 会自动显示这些符号,并在此类型字段 中添加两位小数。 6)自动编号 自动编号型比较特殊。每次向表中添加新记录时,Aces 会自动插入唯一顺序号, 即在自动编号字段中指定某一数值。自动编号型一旦被指定,就会永久地与记录连接。 如果删除了表中含有自动编号型字段的一条记录,Aces 并不会对表中自动编号型字段 重新编号。当添加某一条记录时,Aces 不再使用已被删除的自动编号型字段的数值, 而是按递增的规律重新赋值。还应注意,不能对自动编号型字段人为地指定数值或修改 其数值,每个表只能包含一个自动编号型字段。 7)是/否 是/否型常被称为布尔型或逻辑型数据,是针对只包含两种不同取值的字段而设置 的,例如“婚否”字段。通过设置是/否型的格式,可以选择是/否型字段的显示形式,使其 显示为Yes/No 、True/False或On/Of,不允许为Nul 值,存储1位。 8)OLE对象 OLE对象型是指字段允许单独地“链接”或“嵌入”OLE对象。添加数据到OLE对 象型字段时,Aces 给出以下选择:插入(嵌入)新对象、插入某个已存在的文件内容或链 接到某个已存在的文件。每个嵌入对象都存放在数据库中,而每个链接对象只存放于最 初的文件中。可以链接或嵌入表中的OLE对象是指在其他使用OLE协议程序创建的 对象,例如Word文档、Excel电子表格、图像、声音或其他二进制文件等。在窗体或报表 中必须使用“对象框”来显示OLE对象。OLE对象字段最大可为1GB,它受磁盘空间限 制。例如“照片”字段一般设置成OLE对象型。 9)超链接 超链接型字段是用来保存超链接指向的。超链接型字段包含作为超链接地址的文本 或以文本形式存储的字符与数字的组合。超链接地址是指向对象、文档、Web页或其他 目标的路径。超链接地址也可能包含其他特定的地址信息。例如,数据库对象、书签或该 地址所指向的Excel单元格范围。当单击一个超链接时,Web浏览器或Aces 将根据超 链接地址到达指定的目标。 10)附件 任何Aces 支持的文件都可以作为附件型字段存放在数据库中,与“OLE对象”型 字段相比,附件型字段有着更大的灵活性,而且可以更高效地使用存储空间。 11)计算 计算型字段不是数据类型,该字段的值是通过计算一个表达式的结果得到,其数据类 型是由计算得到的值数据类型决定。 12)查阅向导 查阅向导也不是数据类型,它允许用户使用列表框或组合框,选择来自列表项或其他 表的值。在数据表设计视图的数据类型列表中选择“查阅向导”,将会启动“查阅向导”对 102 话框进行设置。以后在进行数据输入操作时,可以通过选择一个列表或组合框中所显示 的数据项作为输入值,而不再通过手工输入,从而减少输入错误,查阅向导可以使数据库 系统的操作界面更方便、更人性化。 5.3 数据库和表的设计 1. 数据库和表的设计是一项重要而复杂的工作,需要有经验的系统分析人员和系统设 计人员根据用户需求对数据库应用系统进行整体考虑和全盘的分析和规划。合理而周密 的设计是创建有效、准确、及时地完成所需功能的数据库的基础。数据库和表的设计一般 应遵循以下步骤。 (1)根据需求分析,设计并确定数据库所需要的表。 (2)确定表中数据的字段和记录。 (3)确定主键并建立表之间的联系 。 下面以药品进销存管理数据库为例介绍数据库和表设计的一般过程 。 1.分析数据需求确定概念模型元素 根据药品进销存管理数据库的实际功能和数据体现,在分析需求的基础上初步确定 概念模型元素。首先,需要确定符合应用需求的实体,这里包括了药品基本信息、药品进 货情况、药品销售情况、相关的业务员信息和药品生产厂商等。其次,需要确定各个实体 相关的,并且是根据需要体现实体特征的属性(即字段),以及便于实现运算和存储处理的 数据类型。然后,再确定可以唯一标识一条记录的字段或字段集,即主键。最后,需合理 调配数据归属,确定各个实体之间的联系,使数据具有最小冗余度和最大共享性。 2.用E- R 图表示概念模型 采用4.2.3节中介绍的E-R图表示方式,画出“药品进销存管理”的实体联系(E-R)模 型图如图5. 7所示。 3.构架关系数据库 Aces 以二维表的形式来定义数据表的数据结构。Aces 表由表结构(也称数据字 典)和表内容(也称记录或元组)两部分构成。在建立表之前,首先要从表结构方面考虑如 何设计表。表结构是指数据表的框架,主要包括表名和表中字段组成两部分。 表名是该表存储在磁盘上的唯一标识,也可以理解为是用户访问数据的唯一标识。 明确建立表的目的,确定好表名,表名应与用途相符。例如,要建立保存药品相关信息的 表,表名就可直接命名为“药品信息”。 字段是表的组织形式,它包括表中字段的个数和每个字段的属性。字段的属性包括 字段名称、数据类型、字段大小、格式、输入掩码、验证规则等。 在Aces 中,字段名称的命名规则有3条:字段名长度为1~64个字符;字段名可 以包含字母、汉字、数字、空格和其他字符,但不能以空格开头;字段名不能包含句号(.)、 103 104 !!"#!!"#$%&'(")*+,-#$%&$./! 惊叹号(!)、方括号([]) 和单引号()。 ' 根据“药品进销存管理”的实体联系(E-R)模型图,构架“药品进销存管理”数据库表 对象及其相关元素,如表5. 1所示。 表5.构架“药品进销存管理”数据库表对象及其相关元素 1 项药品信息进货情况销售情况业务员信息药品厂商 字段 药品代码、药品名 称、药品类型、规 格、药品单位、保 存条件、有效期、 厂商编号、药品 说明 进货日期、药品代 码、进货数量、进 货单价、生产日 期、经手人编号 销售日期、药品代 码、销售数量、销 售单价、经手人 编号 业务员编号、姓 名、性别、出生日 期、籍贯、政治面 貌、学历、婚否、联 系电话、电子邮 箱、照片、简历 厂商编号、 厂商名称、 地址、邮政 编码、电话、 电子邮箱、 联系人姓名 主键药品代码 进货日期+药品 代码 无业务员编号厂商编号 记录集所有药品信息所有进货信息所有销售信息所有业务员信息 所有药品厂 商信息 联系 药品信息表与进货情况表是一对多联系,一种药品可以多次进货 药品信息表与销售情况表是一对多联系,一种药品可以分多次销售 业务员信息表与进货情况表是一对多联系,一名业务员可以多次进货 业务员息表与销售情况表是一对多联系,一名业务员可以多次销售药品 4. 确定字段的数据类型 在表5.可以建立如图5.药品信息”“ “销售情况” 业 1基础上,8所示的“ 进货情况”和“ 务员信息”和“药品厂商”5个数据表的结构,并设置每个表对象中相关字段的数据类型。 图5.“药品进销存管理”数据库中5个表对象的结构列表 8 至此,“药品进销存管理”数据库及其包含的5个数据表对象的设计基本完成,终端用 户就可以根据结构样本并利用下面各节介绍的方法创建数据库及表,并录入相应的数据 信息。 注意:由于Aces 是主要应用于Windows操作系统中面向个人和小型企业的数据 库管理系统,也是MSOfice组件之一。对管理员用户,具有Aces 操作的全部权限。 读者在使用Aces 时,常常会混淆管理员和终端用户的角色,为此,本教程约定,拥有创 建数据表、查询、窗体、报表、宏和模块权限的管理员用户,本教程后面章节统称设计者,其 他则是终端用户,统称用户。 5.操作与管理数据库 2 Aces 对数据库的操作与管理主要包括创建数据库、打开和关闭数据库、备份数据 库、数据库版本转换等。 5.1 创建数据库 2. 创建Aces 数据库,首先应根据用户需求对数据库应用系统进行分析和研究,全面 规划,然后再根据数据库系统的设计规范创建数据库。Aces 提供两种创建数据库的方 法:一是先建立一个空白数据库,然后向其中添加表、查询、窗体、报表和其他数据库对 象;二是使用“模板”,利用系统提供的模板进行一次操作来选择数据库类型,并创建所需 的表、窗体、报表等对象,这是创建数据库最直接的方法。无论哪一种方法,在数据库创建 之后,都可以在任何时候修改或扩展数据库。创建数据库的结果是在磁盘上生成一个扩 展名为acdb的数据库文件。 1.自定义创建数据库 常用创建数据库的方法是先创建一个空白数据库,然后再创建其他数据库对象。 5.1.1节已使用该方法建立了一个名为“药品进销存管理”的空白数据库,在此基础上可以 根据需要在该数据库中创建或从外部导入数据库对象。 2.使用“模板”创建数据库 模板是现存的数据库,其中包含执行特定任务时所需的所有表、查询、窗体和报表等 s 或在如图5.aktg 数据库对象。在如图5.1所示Ace欢迎界面,5所示Bcsae视图中,单 击“新建”命令后,均显示Aces 中可选用的数据库模板列项,此外,通过“搜索联机模板” 可获得更多的数据库模板。通过这些模板可以方便、快速地创建基于模板的数据库。一 般情况下,应先从数据库所提供的模板中找出与所建数据库相似的模板。如果所选模板 不满足实际要求,可以在建立之后再进行修改。 Aces 同一时间只能处理一个数据库,每新建一个数据库时会自动关闭前面打开的 数据库。 106