数据库主键和外键的作用.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
v1.0 可编辑可修改 数据库主键和外键的作用 首先介绍一下什么是主键、什么是外键。 1 什么是主键 外键 学生表 ( 学号,姓名,性别,班级 ) 学号是一个主键 课程表 ( 课程号,课程名,学分 ) 课程号是一个主键 成绩表 ( 学号,课程号,成绩 ) 学号和课程号的属性组构成一个主键 成绩表中的学号不是成绩表的主键, 不过是学生表的主键, 成绩表的外键, 同理课程号也 是成绩表的外键 定义:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关 系的外键 以一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表 2 外键的作用 外键用于保持数据一致性,完整性 主要目的是控制存储在外键表中的数据 3 主键的设计原则 1)主键应当是对用户没有意义的 2 )主键应该是单列的,以提高连接和筛选操作的效率 复合键的使用通常出于两点考虑: a)主键应当具有意义 这为认为的破坏数据库提供了方便 b)在描述多对多关系的连接表中可以使用两个外部键作为主键 该表可能成 为其他从表的主表,并成为从表的主键的一部分,使得之后的从表包含更多的列 3 )永远不要更新主键 4 )主键不应该包含动态变化的数据(时间戳等) 5 )主键应当由计算机自动生成 1 v1.0 可编辑可修改 4 数据库主键选取策略 建立数据库的时候, 需要为每张表指定一个主键 (一个表只能有一个主键, 但是可以有多 个候选索引) 常见的主键选取方式有: 1)自动增长型字段 自动增长型主键会省略很多繁琐的工作, 但在数据缓冲模式下, 不能预先填写主键与外 键的值 Order(OrderID ,OrderDate) // 主键 OrderID 是自动增长型字段 OrderDetail(OrderID ,LineNum,ProductID ,Price) 如果要在 Order 表中插入一条记录,在 OrderDetail 表中插入若干条记录,为了能在 OrderDetail 表中插入正确的 OrderID 字段,必须先更新 Order 表以获得系统系统分配的 OrderID ,但是为了确保数据一致性, Order 表和 OrderDetail 表必须在事务保护下同时进 行更新,这显然是矛盾的 除此之外, 当需要在多个数据库之间进行数据复制时, 自动增长型字段可能造成主键冲 突 2 )手动增长型字段 3 )使用 UniqueIdentifier SQLServer 提供一个 UniqueIdentifier 数据类型 (16 字节) , 并提供一个生成函数 NEWID(),生成一个唯一的 UniqueIdentifier 4 )使用 COMB类型 保留 UniqueIdentifier 的前 10 字节,后 6 字节表示生成时间 1 外键 外键( FK)是用于建立或加强两个表数据之间的链接的一列或多列。 2 v1.0 可编辑可修改 通过将表中主键值的一列或多列添加到另一个表中, 可创建两个

文档评论(0)

195****5386 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档