Microsoft Access 是一种关系型数据库开发系统。Access 数据存储在相关的表中,一个表中的数据(例如客户〉与另一个表中的数据(例如定单〉是相关的。Access 维护了相关表之间的关系,然后提取客户和该客户的所有定单变得更容易,同时不会导致数据丢失或者提取他人的定单记录。
1.2.1 使用多个表,
多个表可以通过减少冗余数据的输入量来简化数据项和报表。例如,通过为一个需要使用客户信息的应用程序定义两个表,就不需要在客户每次购买商品时存储该客户的名称和地址。
创建完表之后,需要让它们关联起来。例如,如果创建了一个Contacts 表和一个Sales 表,则必须建立Contacts 表和Sales 表之间的联系以便于查看一个联系人的所有销售记录。如果只有一个表,就必须重复查看每个销售记录对应的联系人姓名和地址。使用两个表就可以使用关系字段Contact ID C 在Contacts 中)和Buyer ID C 在Sales 中)来查看Contacts 表中每次销售的对应信息。例如,客户改变地址时,只是在Contact 表中的一个记录中变更了地址; Sales 信息显示在屏幕上时,始终可以看到正确的联系人地址。
由于特定类型的所有记录都在同一表内,所以将数据分离到数据库中的多个表内可以便系统变得更易于维护。花些时间将数据正确放入多个表内,可以大幅缩短设计和工作时间。这一过程称为却/iJIt C 可以在第2 章了解规范化)。
在本章后面的“5 步骤设计方法”小节中,将有机会了解Access Auto Auctions 案例研究,该案例包含了5 个表。
1.2.2 了解创建多个表的原因
创建多个表总会使数据库的初级用户望而却步。通常,他们希望创建一个包含全部所需信息的巨型表,在这个例子中,可以构建一个包含所有客户销售情况以及每个客户的出售和购买情况的Customer 表。
因此,他们就创建)个包含有多个字段的表,其中包含了客户信息(联系人)、销售信息字段(销售日期、销售人员、支付数额、折扣等),以及每次销售的产品信息(销售量、产品描述、单价等)。这种表会迅速增大,包含许多无法管理的字段,并且随着新项目的添加而继续增大。
可以看到,表设计有着自己的生命力。创建完这种单独的表后,维护就会变得更难。就会开始意识到必须为客户进行的每笔销售输入客户信息(一次次地重复输入客户信息)。对于每笔销售的购买项目来说亦是如此,即一笔销售包含多个项目(于是需要再次重复该信息〉。这会使系统变得低效并且易于出现数据输入错误。存储在表中的信息也无法进行有效的维护,因为许多字段可能会不适合每个记录,并且在表的结束处会出现大量空字段。
为了确保系统易用并且具有足够的增长灵活性,创建多个包含最少量信息的表就显得尤为重要。要实现这-点,需要考虑创建多个表,其中每个表都包含很多具有多个字段的记录,记录中的信息只与该表的主要目的有关。这样,创建表之后,就可以把它们进行链接,以便从中收集有用信息。尽管这个过程昕起来很复杂,但实际的实现却相当容易。将一个表的内容创建为多个表的过程称为却应佐(或者说是规范化表)。