热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Access关联数据

在这一章中,我们将了解学习相关数据的基础知识。在讨论和创建不同数据之间的关系之前,让我们来看看为什么需要关联数据。这一切都回归规范化。规范化数据库规范化或简单规范化是组织关系数据库

在这一章中,我们将了解学习相关数据的基础知识。 在讨论和创建不同数据之间的关系之前,让我们来看看为什么需要关联数据。 这一切都回归规范化。

规范化

数据库规范化或简单规范化是组织关系数据库的列(属性)和表(关系)以最小化数据冗余的过程。 这是将数据分解到多个表格以提高整体性能,完整性和持久性的过程。

  • 规范化是在数据库中组织数据的过程。
  • 这包括创建表并根据设计的规则在这些表之间建立关系,以保护数据并通过消除冗余和不一致的依赖性来使数据库更加灵活。

下面来看看下面的包含数据的表格,但问题是这个数据是相当多余的,这增加了输入数据时输入错误和不一致的机会。

客户编号名字地址饼干数量价格总计
1Ethel Minsu12 Main St, Arlington, VA 22201 S巧克力片5¥2.00¥10.00
2Tom Wilber1234 Oak Dr., Pekin, IL 61555巧克力片3¥2.00¥6.00
3Ethil Minsuy12 Main St., Arlington, VA 22201巧克力片5¥2.00¥10.00

为了解决这个问题,需要重构数据并将其分解成多个表格,以消除一些冗余,如下三个表格所示。
《Access关联数据》

在这里,有三个表:第一个是:tblCustomers表,第二个是:tblOrders表,第三个是:COOKIEs表。

这里的问题是,仅仅通过拆分多个表中的数据将无助于告诉某个表中的数据如何与另一个表中的数据相关联。要连接多个表中的数据,我们必须将外键添加到tblOrders表中。

定义关系

关系通过匹配主键列中的数据来工作,通常是两个表中具有相同名称的列。 在大多数情况下,该关系与一个表中的主键相匹配,该表为每行提供一个唯一的标识符,在另一个表中的外键中包含一个条目。 表格之间有三种类型的关系。 所创建关系的类型取决于相关列的定义方式。

下面来看看这三种关系 –

1. 一对多的关系

一对多的关系是最常见的关系类型。 在这种类型的关系中,表A中的行可以在表B中具有许多匹配的行,但是表B中的行在表A中只能有一个匹配的行。

例如,客户和订单表具有一对多的关系:每个客户可以有很多订单,但每个订单仅来自(或属于)一个客户。

2. 多对多的关系

在多对多关系中,表A中的一行可以在表B中具有多个匹配的行,反之亦然。

可以通过定义第三个表(称为连接表)来创建这样的关系,该连接表的主键由来自表A和表B的外键组成。

例如,Customers表和COOKIEs表具有多对多的关系,这些关系由从这些表中的每个表到Orders表的一对多关系定义。

3. 一对一的关系

在一对一的关系中,表A中的一行可以在表B中不超过一个匹配的行,反之亦然。 如果相关列是主键或者具有唯一约束,则创建一对一关系。

这种类型的关系并不常见,因为大多数以这种方式相关的信息将全部在一个表中。可以使用一对一的关系来做以下工作 –

  • 将表分成许多列。
  • 出于安全原因隔离表的一部分。
  • 存储短暂的数据,只需删除该表即可轻松删除。
  • 存储仅适用于主表的子集的信息。

    推荐阅读
    • 0x01 Nagios配置文件
      0x01Nagios配置文件,Go语言社区,Golang程序员人脉社 ... [详细]
    • 网上看了很多RFID破解的文章,大部分都是工具使用,一步步该怎么操作,基本上没有讲原理的,估计导致了很多初学者非常迷惑,特别是一旦按照操作步骤操作的时候出错时更加迷惑,不知道是什么状况,国内ra ... [详细]
    • SSL协议、TLS协议,使用哪一种更安全?
      在金融银行业,保护机密信息的安全至关重要。由于财务记录完全通过在线数据库维护,因此实施保护客户、银行和金融机构免受黑客攻击的安全功能比以往任何时候都更加重要。安全套接字层(SSL) ... [详细]
    • Java的核心库提供了大量的现成的类供我们使用。本节我们介绍几个常用的工具类。Math顾名思义,Math类就是用来进行数学计算的,它提供了大量的静态 ... [详细]
    • iOS——应用内调用Face ID、Touch ID
      注意到很多iOS非原生应用都在应用内调用了FaceID,以来辅助登陆和进行隐私操作的确认,下面是如何调用FaceID或TouchID。获取用户隐私权限 ... [详细]
    • 概况spark提供了一些方案来调度资源。首先,每个spark程序都在跑在若干个独立的executor集群上的(其中executor是一个jvm来runtask和storedata) ... [详细]
    • http:www.cnblogs.comComputerGarchive201202012334898.html一:C语言中的内存机制在C语言中,内存 ... [详细]
    • 在网页上发布统计曲线(转)[more]一、引言在寥恋腎nte.NET上制作极富个性化的主页、及时发布令人心动的信息,以便吸引全世界不同肤色、不同职业的人们驻足观看,以致流连忘返 ... [详细]
    • #include#include#includeusingnamespacestd;structTree{intdata;Tr ... [详细]
    • 不懂性能优化,再强的计算机也白玩
      不懂性能优化,再强的计算机也白玩-Python的优秀有目共睹,不过说的性能,还真比不了Java、C、Go,有没有提升性能的技巧或方法呢?今天我们一起学习下提升Python性能的方式 ... [详细]
    • NPDP第五章 工具与度量
      什么是创意开发阶段作用:早起产生初步的产品概念;中期用于解决实施问题;后期用于规划上市。创意开发是创造、发展和传达新创意的创造性过程&# ... [详细]
    • 开发网站你需要知晓的部分专用术语
        越来越多的企业和个人都在拥有属于自己的网站门户,首当其冲的就是你得知晓几个网站方面的专业术语,先是中就有好多的客户不明白这些,造成误会是正常的,那不如我们对它有个大致的了解,这样就不容易感觉 ... [详细]
    • Xamarin.Android-用ZXing实现二维码扫描以及连续扫描
      一、前言本文的内容有两个基础:ZXing.Net和ZXing.Net.MobileZXing.Net:ZXing的C#实现,主要封装了各种二维码的编码、解码等跨平台的算法ZXing.Net.Mo ... [详细]
    • 九宫格计算. ... [详细]
    • 如何提高PHP编程技能及推荐高级教程
      本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
    author-avatar
    营营420_769
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有