- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SQL Server 2005外键技术教学实践
基于SQL Server 2005外键技术教学实践
摘 要: 外键(FOREIGN KEY,简称FK)可以建立表于表之间的联系,方便程序的编写,同时外键也是实现数据库参照完整性的重要保障,外键在SQL Server 2005表设计环节起着至关重要的作用。
关键词: 外键;参照完整性;约束
中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2011)1220015-01
1 外键概述
外键是指一个表中的一列或列组合,它虽不是该表的主键,却是另外一个表的主键。通过主键约束可以为相关联的两个表建立联系,实现数据的参照完整性。外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。例如,有“学生”表(学号,姓名,性别,出生日期,入学时间,班级代码,系部代码,专业代码)和“班级”表(班级代码,班级名称,专业代码,系部代码),如果要求“学生”表中“班级代码”列的取值,必须是“班级”表的“班级代码”列的列值之一,就应该在“学生”表的“班级代码”上创建外键约束,从而使“学生”表和“班级”表中的“班级代码”具有一致性。
外键约束不仅可以与另一张表上的主键约束建立联系,也可以与另一张表上的UNIQU约束建立联系。外键约束上允许存在为NULL的值,则针对该列的外键约束核查将被忽略。外键同时也限制了对主键所在表的数据进行修改。当主键所在的表的数据被另一张表的外键所引用时,用户将无法对主键里的数据进行修改或删除。除非事先删除或修改引用的数据。当一个新的数据加入到表格中,或对表格中已经存在的外键上的数据进行修改时,新的数据必须存在于另一张表的主键上。
外键约束它还可以控制对主键表中数据的修改。外键约束并不仅仅只可以与另一表的主键约束相链接,它还可以定义为引用另一表的UNIQUE约束。外键约束不允许空值,但是,如果任何组合外键约束的列包含空值,则将跳过外键约束的校验。外键约束可以引用同一表中的其它列(自引用)。一个表最多可包含253个外键约束。每个表在其外键约束中最多可以引253个不同的表。
2 外键的创建
1)使用SSMS创建外键约束。右击“学生”表在弹出的快捷菜单中选择“修改”命令,打开“表设计器”对话框。在“表设计器”中,右键单击任意字段,在弹出的快捷菜单中单击“关系”命令,打开“外键关系”对话框。单击“添加”命令按钮,系统给出默认的外键约束名:“FK_学生_学生”,显示在“选定的关系”列表中。单击“FK_学生_学生”外键约束名,在其右侧的“属性”窗口中单击“表和列规范”属性,然后,再单击该属性右侧的“…”按钮,打开“表和列”对话框。在“表和列”对话框中,修改外键的名称,选择主键表及表中的主键,以及外键表中的外键。单击“确定”命令按钮,回到“外键关系”对话框。
2)使用T-SQL语句创建外键约束,在“student”数据库的“学生”表上,为“班级代码”创建外键约束,从而保证在“学生”表中输入有效的“班级代码”。代码如下:
Use student
Alter table 学生
ADD CONSTRAINT FK_bjdm FOREIGN KEY(班级代码)
REFERENCES 班级(班级代码)
3 外键的意义
1)外建保证表与表之间的完整性和一致性,这是数据固有的,由数据库进行自动管理。2)使用外建,简单直观,可以直接在数据模型中体现,无论是设计、维护等回有很大的好处,特别是对于分析现有的数据库的好处时非常明显的,用触发器也可以实现数据的参照完整性,但是触发器则可能会有一些隐患,如设计上的缺陷、批量数据的导入、删除等等都会影响系统性能。但是外键就非常明显和直观,而且简单易学。3)存在就有道理,创建外键还要考虑设计层面,不同的层面使用不同的业务逻辑。在数据层上规定一些业务规范和约束,同时数据库设计师已经设计了一个很好的数据模型,那么可以通过数据库管理系统带的主键、外键、缺省和约束等条件来实现一些业务逻辑。当然现在流行3层或N层结构,业务逻辑都搬到业务层,数据层只提供数据存储,那么这些约束和表之间的关联,可以在业务层去处理,就不用创建外键。4)外键的存在增加了ER图的可读性,这也同样是在后台数据库表非常多的时候能够体现出来的,外键能够明确的两个表之间的关系。例如一个单据的主表和单据的商品的子表,如果两个表没有拉出外键表明关系,且两个表的位置在ER图中很远,对于一个对这个系统不是非常了解的人来说,让他去理出两个表之间的关系是很麻烦的。如果设置了外键,我们能通过他们之间的外键连接找出他们之间的关系来,ER图的可读性对于一个刚刚接触数据库的新手来说是极为重要的。
4 外键的设计难点
1)由
您可能关注的文档
- 基于SNMP配置管理系统设计与实现.doc
- 基于SNMP远程设备监控模块设计.doc
- 基于SNOMED术语编码两节点之间多路径算法实现及其对中医术语编码意义.doc
- 基于Snort入侵检测系统研究与改进.doc
- 基于SNO网络舆情信息扩散模型构建分析.doc
- 基于SNSLiving Library虚拟社区构建研究.doc
- 基于SNROLSR协议链路质量优化算法研究.doc
- 基于SNS学习共同体交互特征社会网络分析.doc
- 基于SNS大学英语混合式学习模式研究.doc
- 基于SNS平台品牌传播策略研究.doc
- 基于SQL Server 2005数据挖掘系统优势分析.doc
- 基于SQL Server 2008数据挖掘系统在违法犯罪人员信息分析上应用.doc
- 基于SQL SERVER 2008数据库内容服务研究与实现.doc
- 基于SQL Server Reporting Services报表平台分析与设计.doc
- 基于SQL Server 后台数据库安全性策略与应用.doc
- 基于SQL Server2000高校图书管理系统数据备份与恢复.doc
- 基于SQL Server2005高职数据库教学改革研究与实践.doc
- 基于SQL Server与JavaPC端学生选课评分系统开发与应用.doc
- 基于SQL Server和Delphi客房预订系统设计.doc
- 基于SQL Server技术教学资源库设计.doc
最近下载
- 信息处理技术员教程(第三版)第10章 计算机网络与互联网.pptx VIP
- [超分子化学与晶体工程基础]-晶体结构分析.pptx VIP
- 《中国心力衰竭诊断和治疗指南2024》解读.pptx VIP
- 中级宏观经济学知到课后答案智慧树章节测试答案2025年春浙江大学.docx VIP
- 2025-2026学年小学科学四年级上册粤教粤科版(2024)教学设计合集.docx
- [超分子化学与晶体工程基础]-超分子化学.pptx VIP
- 2013款上汽通用雪佛兰赛欧_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- E+H200涡街流量计说明书.pdf VIP
- 20_WD_2021001981_大坝安全监测系统验收规范.pdf VIP
- 信息处理技术员教程(第三版)第9章 数据库应用基础知识.pptx VIP
文档评论(0)