时间:2019-11-12 22:58作者:admin来源:未知人气:1147我要评论(0)
数据库规范化或简单规范化是组织关系数据库的列(属性)和表(关系)以最小化数据冗余的过程。 这是将数据分解到多个表格以提高整体性能,完整性和持久性的过程。
下面来看看下面的包含数据的表格,但问题是这个数据是相当多余的,这增加了输入数据时输入错误和不一致的机会。
客户编号 | 名字 | 地址 | 饼干 | 数量 | 价格 | 总计 |
---|---|---|---|---|---|---|
1 | Ethel Minsu | 12 Main St, Arlington, VA 22201 S | 巧克力片 | 5 | ¥2.00 | ¥10.00 |
2 | Tom Wilber | 1234 Oak Dr., Pekin, IL 61555 | 巧克力片 | 3 | ¥2.00 | ¥6.00 |
3 | Ethil Minsuy | 12 Main St., Arlington, VA 22201 | 巧克力片 | 5 | ¥2.00 | ¥10.00 |
为了解决这个问题,需要重构数据并将其分解成多个表格,以消除一些冗余,如下三个表格所示。
在这里,有三个表:第一个是:tblCustomers
表,第二个是:tblOrders
表,第三个是:Cookies
表。
这里的问题是,仅仅通过拆分多个表中的数据将无助于告诉某个表中的数据如何与另一个表中的数据相关联。要连接多个表中的数据,我们必须将外键添加到tblOrders
表中。
关系通过匹配主键列中的数据来工作,通常是两个表中具有相同名称的列。 在大多数情况下,该关系与一个表中的主键相匹配,该表为每行提供一个唯一的标识符,在另一个表中的外键中包含一个条目。 表格之间有三种类型的关系。 所创建关系的类型取决于相关列的定义方式。
下面来看看这三种关系 -
一对多的关系是最常见的关系类型。 在这种类型的关系中,表A
中的行可以在表B
中具有许多匹配的行,但是表B
中的行在表A
中只能有一个匹配的行。
例如,客户和订单表具有一对多的关系:每个客户可以有很多订单,但每个订单仅来自(或属于)一个客户。
在多对多关系中,表A
中的一行可以在表B
中具有多个匹配的行,反之亦然。
可以通过定义第三个表(称为连接表)来创建这样的关系,该连接表的主键由来自表A
和表B
的外键组成。
例如,Customers
表和Cookies
表具有多对多的关系,这些关系由从这些表中的每个表到Orders
表的一对多关系定义。
在一对一的关系中,表A
中的一行可以在表B
中不超过一个匹配的行,反之亦然。 如果相关列是主键或者具有唯一约束,则创建一对一关系。
这种类型的关系并不常见,因为大多数以这种方式相关的信息将全部在一个表中。可以使用一对一的关系来做以下工作 -
相关阅读 access怎么做点击选择学历的效果access怎么取消冻结字段access怎么冻结字段access怎么删除子数据表access怎么在表格中插入子数据表access设置快速访问栏在功能区下方显示access设置快速访问栏在功能区上方显示access怎么将设计视图加到快速访问栏access怎么将导出Excel表格加到快速访问栏access怎么将数据表视图加到快速访问栏
热门文章 Microsoft Office Access 2019 官方版激活版 免费下载如何设计一个简单的Access登录窗体Access创建数据库实现图解教程access怎么求平均成绩
最新文章
access怎么做点击选择学历的效果access怎么取消冻结字段
access怎么冻结字段access怎么删除子数据表access怎么在表格中插入子数据表access设置快速访问栏在功能区下方显示
人气排行 Microsoft Office Access 2019 官方版激活版 免费下载如何设计一个简单的Access登录窗体Access创建数据库实现图解教程access怎么求平均成绩怎么在Access报表的页面页脚区添加一个计算控件Access 2007、2010、2016三个版本的使用心得Access查询标准(条件)详解电脑没有access怎么办? access文件打不开怎么办?
盖楼回复X
(您的评论需要经过审核才能显示)
查看所有0条评论>>