什么是外键为什么要使用外键如何来用不用会怎样

什么是外键为什么要使用外键如何来用不用会怎样,第1张

保证数据的参照完整性外键的作用很重要,最好在数据库中使用。举一个例子比较明白。比如有两张表格,一个是学生档案,另一个是上学期间的成绩单档案中会有:学号,姓名。(学号为主键)成绩单有(简化过的):学期号,学号,平均分数(学期号,学号两个同时为主键,学号同时为外键)为了保证成绩单上的数据有效,所以要求录入学号时,必需保证档案中有这个学号,否则就不能录入。从而保证了成绩单上的成绩数据的引用完整,否则将会是垃圾数据。用程序控制,有很多缺点;录入成绩单时为了保证学号有效,首先要搜索档案,当档案很大时会影响效率。程序控制并不能保证百分之百引用完整性,尤其是并发 *** 作。说一个特例(主要是说明程序控制不好):A录入成绩单,B在编辑档案。当A录入张三的成绩,保存时,搜索张三存在,于是程序下一步就要存盘,但这时B恰好把张三删除了。但A那边的程序并不知道,于是就把一条垃圾数据存进数据库中了。此例的 *** 作流程正确与否不重要,但说明了程序控制并不是好方法。

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。

外键的作用就是可以让表B是来自表A中,也就是保证了数据的规范性;如果要删除A表中的某个数据,那么首先要删除B表中同样的数据,这保证了数据的完整。

数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。

简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等 *** 作。

在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。

严格来说,数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。

这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。

外键是否采用看业务应用场景,以及开发成本的,大致列下什么时候适合,什么时候不适合使用:

1 互联网行业应用不推荐使用外键: 用户量大,并发度高,为此数据库服务器很容易成为性能瓶颈,尤其受IO能力限制,且不能轻易地水平扩展;若是把数据一致性的控制放到事务中,也即让应用服务器承担此部分的压力,而引用服务器一般都是可以做到轻松地水平的伸缩;

2传统行业

1>软件应用的人数有限,换句话说是可控的;

2>数据库服务器的数据量也一般不会超大,且活跃数据有限;

综合上述2句话描述,也即数据库服务器的性能不是问题,所以不用过多考虑性能的问题;另外,使用外键可以降低开发成本,借助数据库产品自身的触发器可以实现表与关联表之间的数据一致性和更新;最后一点,使用外键的方式,还可以做到开发人员和数据库设计人员的分工,可以为程序员承担更多的工作量;

外键也称为外码或外部关键字。如果一个属性集不是所在关系的关键字,但是是其他关系的关键字,则该属性集称为外部关键字。

在关系数据库中可以通过外键使两个关系关联,这种联系通常是一对多的,其中主关系称为被参照关系,从关系称为参照关系。

主键是定义一个表中起主要作用的数据项,这些数据项的数据在表中是唯一的,同时系统按主键为表建立索引。\x0d\\x0d\外键是定义一个表中的某数据项的数据,要参照另一个表的主键数据。既没有在另一个表的主键数据中出现的数据,不允许在这个表的外键数据项中出现。\x0d\\x0d\主键:表中记录的唯一标识\x0d\\x0d\外键:依赖于别的表的数据\x0d\\x0d\唯一键:在表中唯一\x0d\\x0d\键是一个或多个字段的组合\x0d\\x0d\唯一键:可以确定一条记录的字段(或字段组合),一张表可以有多个唯一键,正如可以识别你的身份的可以是身份z,学生证,军人证\x0d\\x0d\主键:你把唯一键的一个选做主键,一张表只能有一个主键\x0d\\x0d\外键:所定义的外键是另一张表的主键,\x0d\\x0d\主键:表中记录的唯一标识,外键:依赖于别的表的数据,唯一键:在表中唯一。\x0d\\x0d\主键和唯一键的一个区别:主键是不允许为NULL的,唯一键则可以,当然你可以加上NOT NULL来限制它\x0d\\x0d\主键:能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键。一个主键是唯一识别一个表的每一行记录,但这只是其作用的一疗分,主键的主要作用是将记录和存放在其他表中的数据进行关联,在这一点上,主键是不同表中各记录间的简单指针,主键约整就是确定表中的每一条记录,主键不能是空值,唯一约束是用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值,所以,主键的值对用户而言是没有什么意义,并且和它赋予的值也没有什么特别联系。\x0d\\x0d\外键:\x0d\\x0d\若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性。\x0d\\x0d\A为基本表,B为信息表。\x0d\\x0d\在数据库中,常常不只是一个表,这些表之间也不是相互独立的,不同的表之间需要建立一种关系,才能将它们的数据相互沟通,而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空白的,通过这个字段中不同的值可以区别各条记录,就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份z号是每个人都不同的,所以可以根据它来区别不同的人,数据库的表中作为主键的段段就要像人的身份z号一样,必须是每个记录的值都不同,这才能根据主键的值来确定不同的记录。\x0d\\x0d\什么是外键?\x0d\\x0d\说明你的表A中的某项a,是引用表B的某列b\x0d\\x0d\为什么要使用外键?\x0d\RDBMS的基本概念,可以维护数据库的完整。\x0d\\x0d\如何来用,涉及到数据库的定义。\x0d\\x0d\唯一约束和主键的区别是什么?\x0d\\x0d\唯一性约束\x0d\\x0d\唯一性约束所在的列允许空值,但是主键约束的列不允空值。\x0d\\x0d\可以把唯一约束放在一个或者多个列上,但是,唯一性约束所在的列并不是表的主键列。\x0d\\x0d\唯一性约束强制在指定的列上创建一个唯一性索引,在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。\x0d\\x0d\主键:\x0d\\x0d\用于标识某行而且与之相关\x0d\\x0d\是不可能更新\x0d\\x0d\不应该允许空\x0d\\x0d\唯一域/字段\x0d\\x0d\用于作为访问某行的可选手段。\x0d\\x0d\只要唯一就可以更新\x0d\\x0d\可以为空\x0d\\x0d\注意唯一和主键的区别,它们都是创建一个唯一的索引,一个表格仅含有一个主键约束列,但是,它有可能在其他列中含有许多的唯一约束。

数据库外键约束:这个是实现表与表之间的约束,从表的字段值必须在主表中。存在外键约束毕竟是一个约束,只是保证数据完整性的一个手段。

外键的概念:外键是关系数据库三个完整性的五个约束条件之一,是表与表之间建立的一种关系。在Oracle数据库的scott/tiger用户中,表Dept和Emp通过外键进行了关联。在这里Dept表叫主表,Emp表叫从表,外键是字段Deptno。

加入外键的条件:

1、两个表有相同属性字段,取值范围相同;

2、外键在主表中是主键或者是唯一字段;

3、外键可以是多个字段的组合。

数据库系统本身约束手段是更可靠的。对于开发来说,可能觉得建立外键关系没必要,但是到了以后维护阶段,或升级阶段,如果没有这个关系,可能不利维护工作的提升。表关系的建立,也阐述着具体的业务逻辑关系,增加了可读性。

在逻辑性,关联性比较强的时候不妨添加。其他时候简单的外键约束也是可以的,不需要一有关系就添加,但是要有其他机制保证数据完整性,毕竟外键对于开发有时候还是有限制。总的来说前期开发可以不管,后期维护尽量转移到数据库本身的约束来建立关系。

以上就是关于什么是外键为什么要使用外键如何来用不用会怎样全部的内容,包括:什么是外键为什么要使用外键如何来用不用会怎样、数据库中外键的概念及作用是什么、大家设计数据库时使用外键吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10153359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存