数据冗余与外键

1.数据冗余的问题:
1>造成了存储空间的浪费。

2>更新异常、删除异常。

所以一般情况不允许在表中出现数据冗余。

2如何避免数据冗余?
       把原来表中的数据拆分成多个表来存储。
       当把表中的信息拆分成多个表来存储的时候会有一个问题:如何将这两张表中的数据关联起来?

       答:使用主键和外键来进行关联。使用主外键就能将不同表中的数据关联起来。

3什么是外键,如何通过主外键将表中的数据关联起来?

        当把数据拆分成两张表来存储的时候,每个表中都有自己的主键。

       其中一张表中,除了主键外,又多了一列,这列用来引用另外一张表中的主键,那么这列就是第一张表中“外键列”,有外键列的表就叫做“外键表”,相对来说,主键被引用的那张表就叫做“主键表”。 或者:假设两张表中都有主键,A表,B表。A表中的主键为AId。B表中的主键为Bid. 这时,A表中引用了B表中的Bid作为一列,这时,我们就叫A表位B表的外键表,而B表叫做主键表。 因为外键列中引用的是另外一张表中的主键列的数据,所以外键列中的数据是不能随便写的,必须是在另外一张表中的主键列中已经存在的数据。

例如:商品表的主键是:商品Id, 厂家表的主键是:厂家Id 但是,在商品表中需要引用厂家表,所以在商品表中增加一列,这一列是用来引用厂家表中的主键(厂家Id)的。所以在商品表中增加的这列就叫“外键”,商品表就叫外键表,厂家表就叫主键表。.销售记录表如果再引用商品表,这时,销售记录表就是“外键表”,商品表又成了“主键表”

3有目的的数据冗余的好处:

  1)重复存储或传输数据以防止数据的丢失。

  2)对数据进行冗余性的编码来防止数据的丢失、错误,并提供对错误数据进行反变换得到原始数据的功能。

  3)为方便处理而使同一信息在不同地点有不同的表现形式,如一本书的不同语言的版本。

  4)为了提高数据的检索速度。

原文地址:https://www.cnblogs.com/hao-1234-1234/p/7168635.html