欢迎来到天天文库
浏览记录
ID:13872131
大小:362.50 KB
页数:46页
时间:2018-07-24
《《网络数据库开发技术》全套ppt电子课件教案第8章sqlserver的完整性控制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章SQLSERVER的完整性控制8.1SQLSERVER完整性概述8.2约束8.3规则8.4默认值8.5标识列主要内容:本章从约束,规则,默认值,标识列几方面介绍数据库完整性控制的实现方法。8.1SQLSERVER完整性概述数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误的信息。保证数据符合规定,成了数据库系统关注的问题,数据完整性因此而提出。8.1.1完整性分类1实体完整性2域完整性3参照完整性实体完整性实体完整性将行定义为特定表的惟一实体。实体完整性强制表的标识符列或主键的完整性(通过索引、UNIQUE约束、PRIMARYKEY约束或IDENTI
2、TY属性)。域完整性域完整性是指给定列的输入有效性。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过CHECK约束和规则)或可能值的范围(通过FOREIGNKEY约束、CHECK约束、DEFAULT定义、NOTNULL定义和规则)。参照完整性在输入或删除记录时,参照完整性保持表之间已定义的关系。在SQLServer2000中,参照完整性基于外键与主键之间或外键与惟一键之间的关系(通过FOREIGNKEY和CHECK约束)。参照完整性确保键值在所有表中一致。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。8.1.2
3、数据库完整性的实现机制SQLSERVER中实现数据库完整性的机制主要有:约束、规则、默认值、标识列、数据类型、索引、触发器和存储过程。8.2约束1主键(PRIMARYKEY)约束2外键(FOREIGNKEY)约束3CHECK约束4惟一(UNIQUE)约束1主键(PRIMARYKEY)约束PRIMARYKEY约束标识列或列集,这些列或列集的值惟一地标识表中的行。在一个表中,不能有两行包含相同的主键值。不能在主键内的任何列中输入NULL值。在数据库中NULL是特殊值,代表不同于空白和0值的未知值。建议使用一个小的整数列作为主键。每个表都应有一个主键。一个表中可以有一个以上的列组合,这些
4、组合能惟一标识表中的行,每个组合就是一个候选键。数据库管理员从候选键中选择一个作为主键。【例1】在part_sample表中,part_nmbr和part_name都可以是候选键,但是只将part_nmbr选作主键。createtablepart_sample(part_nmbrintprimarykey,part_namechar(30),part_weightdecimal(6,2),part_colorchar(15))2外键(FOREIGNKEY)约束FOREIGNKEY约束标识表之间的关系。一个表的外键指向另一个表的候选键。当外键值没有候选键时,外键可防止操作保留带外键值
5、的行。【例2】order_part表建立一个外键引用前面定义的part_sample表。通常情况下,order_part在order表上也有一个外键,下面只不过是一个简单示例。createtableorder_part(order_nmbrint,part_nmbrintforeignkeyreferencespart_sample(part_nmbr)ondeletenoaction,qty_orderedint)go如果一个外键值没有候选键,则不能插入带该值(NULL除外)的行。如果尝试删除现有外键指向的行,ONDELETE子句将控制所采取的操作。ONDELETE子句有两个选项
6、:NOACTION指定删除因错误而失败。CASCADE指定还将删除包含指向已删除行的外键的所有行。如果尝试更新现有外键指向的候选键值,ONUPDATE子句将定义所采取的操作。它也支持NOACTION和CASCADE选项。3CHECK约束CHECK约束对可以放入列中的值进行限制,以强制执行域的完整性。CHECK约束指定应用于列中输入的所有值的布尔(取值为TRUE或FALSE)搜索条件,拒绝所有不为TRUE的值。可以为每列指定多个CHECK约束。【例3】显示名为chk_id约束的创建,该约束确保只对此关键字输入指定范围内的数字,以进一步强制执行主键的域。createtablecust_
7、sample(cust_idintprimarykey,cust_namechar(50),cust_addresschar(50),cust_credit_limitmoney,constraintchk_idcheck(cust_idbetween0and10000))4惟一(UNIQUE)约束UNIQUE约束在列集内强制执行值的惟一性。对于UNIQUE约束中的列,表中不允许有两行包含相同的非空值。主键也强制执行惟一性,但主键不允许空值。UNIQUE约束优先于惟一
此文档下载收益归作者所有