认识到物理关系和逻辑关系之间的区别很重要。今天,整个 Internet 和 Web 服务 (SOAP) 在很大程度上实现了一种本质上是多值的数据格式。
当您使用关系数据库(例如 Access)表示多值数据时,您在幕后使用的是传统的(且合法的)关系。我不能强调这样,那么在 Access 中使用多值列实际上是一个合法的关系模型。
表没有暴露的事实并不能否定这个问题。事实上,如果您将发票(主记录和重复详细信息)表示为 XML 数据立方体,那么我们会看到两件事:
1) 您可以使用 Access 等关系数据库构建和表示该发票 2) 这种标准化的关系数据模型也可以表示为单个 xml 字符串。3) 删除 XML 记录(或字符串)意味着子行(发票详细信息)的级联删除必须发生。
因此,虽然确实将多值字段添加到 Access 以处理 SharePoint,但最重要的是要意识到可以将此类数据映射到关系数据库(如果您不能这样做,那么 Access 将无法使用该 XML使用关系数据库表作为 ACCESS CURRENTLY DOES RIGHT NOW 的数据)。
对于 XML 和 SharePoint 等网络,消费、管理和利用此类数据的需求不仅普遍存在,而且实际上是 Internet 的基本内容。
随着越来越多的数据变得复杂,我们发现多值数据在使用中的需求呈爆炸式增长。因此,任何使用所谓的“时尚”互联网的人都在依赖和使用实际上是非常常见的 XML 并且本质上是多值(复杂)的数据。
只要保留逻辑(非物理)关系数据模型,就可以使用多值列来表示此类数据,这正是 Access 正在做的事情(它将关系数据模型映射到复杂模型)。请注意,复杂 (xml) 数据模型本质上不一定是关系模型。但是,如果您要将此类数据映射到 Access,则复杂的多值模型必须符合关系数据模型。
这正是 Access 中发生的事情。
没有公开这样一个正确和合法的数学关系模型这一事实在这里没有什么问题。我们是否建议因为 Excel 不公开使用的二进制代码,所以用户永远不会了解计算机?或者也许我们都必须用汇编程序进行编程,这样我们才能正确地学习计算机的工作原理。
归根结底,谁在乎,为什么这很重要?今天人们驾驶自动驾驶汽车这一事实并没有抛弃他们使用不同齿轮来操作汽车的概念。我们关闭整个社会的想法是因为有人要驾驶自动驾驶汽车,或者在这种情况下使用复杂的数据,这对我们来说是愚蠢的。
因此请记住,Access 中确实存在对 SQL 的扩展来查询多值数据,但这里也指出了这些基础表并未公开。但是,如前所述,公开此类表仍然需要一个不更改或混淆级联删除,因为需要该功能来维护复杂数据模型 (xml) 和使用两个相关表来表示这些数据。
换句话说,如果您取消了用户使用参照完整性选项的能力,您可以使用相关表来表示复杂的数据模型。RI 选项必须保持这些隐藏表中的设置,否则此类数据将无法返回到使用它的 XML 或复杂数据模型。
如前所述,关于用户被教导汽油如何与氧气反应以学习驾驶汽车,或使用文字处理器并被迫学习关系模型并公开基础表在这里没有什么意义。
然而,这里关于这些表被暴露的观点是合理的担忧。
真正的问题是 SQL 服务器和 Oracle 等无法使用或表示复杂数据,而访问可以使用此类数据。
如前所述,复杂的数据船早就启航了!XML、soap 和互联网的基本技术都是基于这种复杂的数据模型。
实际上,SQL Server、Oracle 和大多数数据库无法使用这种多值数据来表示它,而无需用户以关系方式创建和建模此类数据,这是 SQL Server 等的一大缺点。
Access 在使用这些数据的能力方面是独一无二的。
因此,对于使用智能手机、iPad 或网络的任何人,您都在使用围绕复杂数据构建的基本技术,而 Access 现在允许这样做。
鉴于越来越多的数据本质上是复杂的,该行业的其他公司很可能不得不效仿。如果数据库行业不发生变化,那么主流的传统关系数据库系统就不会成为这些数据的安息之地。
目前正在迅速发生一种远离将数据存储在相关表中的趋势,SharePoint 甚至 Google 文档等产品就是这一概念的证明。因此,Access 只是对市场压力做出反应,其他数据库供应商很可能不得不效仿或干脆放弃成为称为互联网的“时尚”的一部分。
XML 和复杂的数据结构现在是我们行业的主要内容和事实——这不是我们都应该逃避的问题,但实际上应该接受。
Albert D. Kallal (Access MVP)
Edmonton, Alberta Canada
kallal@msn.com