日期:2014-05-16  浏览次数:20327 次

数据库总结之外键再学习

       之所以称之为再学习,是因为此前曾学习过这些知识,只不过当时没有总结。现在再次遇到它,详细再学习一下,加深印象。

什么是外键?

       如果公共关键字(表中相同的属性)是一个关系中的主关键字(primary key),那么这个公共关键字被称为另一个关系的外键。

相关概念解析:

       公共关键字:多个表中的相同的属性或属性组。

       主关键字:即主键。

       关系:即一张表。

主表与从表

        表A中有ab两个字段,a字段是主键。表Bac两个字段。a字段可以设置外键。此时,表A为主表,表B为从表。

 

外键的作用:

         1、数据完整性的(数据库基础理论书中所说的参照完整性的数据库实现方式。)

         2、保持数据一致性,

         3、控制存储在外键表中的数据

       简而言之:当你对一个表的数据进行操作时和他有关联的一个或更多表的数据能够同时发生改变,这就是外键的作用。

       外键约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。例如,如果在 publishers 表中删除一个出版商,而这个出版商的 ID titles 表中记录书的信息时使用了,则这两个表之间关联的完整性将被破坏,titles 表中该出版商的书籍因为与 publishers 表中的数据没有链接而变得孤立了。

       外键约束防止这种情况的发生。如果主键表中数据的更改使之与外键表中数据的链接失效,则这种更改是不能实现的,从而确保了引用完整性。如果试图删除主键表中的行或更改主键值,而该主键值与另一个表的外键约束值相关,则该操作不可实现。若要成功更改或删除外键约束的行,可以先在外键表中删除外键数据或更改外键数据,然后将外键链接到不同的主键数据上去。

例如:

         a b 两个表

         a表中存有客户号,客户名称

         b表中存有每个客户的订单

       有了外键后,你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x,否则b表中的数据就变得孤立了,即完整性缺失。