实验2.3用户自定义完整性.pdf

实验2.3用户自定义完整性.pdf

ID:58313045

大小:435.29 KB

页数:5页

时间:2020-01-28

实验2.3用户自定义完整性.pdf_第1页
实验2.3用户自定义完整性.pdf_第2页
实验2.3用户自定义完整性.pdf_第3页
实验2.3用户自定义完整性.pdf_第4页
实验2.3用户自定义完整性.pdf_第5页
资源描述:

《实验2.3用户自定义完整性.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、软件C122彭静126226实验2.3用户自定义完整性软件C122彭静1262261.实验目的:学习用户自定义约束,并实践用户自定义完整性,利用SQL查询分析器用短语NOTNULL、UNIQUE、CHECK保证用户定义完整性。2.实验原理:1)用户自定义完整性(User-definedIntegrity)不同的关系数据库系统根据其应用环境的不同,往往需要一些特殊的约束条件。用户自定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。它主要包括:(1)域完整性(DomainIntegrity)[

2、1]域完整性是指数据库中的列必须满足某种特定的数据类型或约束。域约束是最常见的用户自定义完整性约束,当有新数据插入到数据库中,系统可以按照定义进行关系属性取值是否正确的检测。其中,约束又包括取值范围精度等规定。表中的CHECKFOREIGNKEY约束和DEFAULTNOTNULL定义都属于域完整性的范畴。[2]现在的RDBMS中,一般都有域完整性检查功能。SQLServer提供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们。而不是用应用程序来承担这一功能。其他的完整性类型都支持用户定义的完整性。[3]一个属性能否取空值一般由

3、语义决定,也是域约束的内容之一。(2)其他用户自定义完整性不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。其他类型的用户自定义的完整性即是针对某个特定关系数据库的约束条件,它反映某个具体应用所涉及的数据必须满足的语义要求。2)SQL中的约束机制约束主要包括如下两种。静态约束:对静态对约束是反映数据库状态合理性的约束,如实体完整性。动态约束:对动态对约束是反映数据库状态变迁的约束,如触发器。SQL中用于属性约束方面的有NOTNULL、CHECK等子句;而用于全局约束方面的有CREATEASSERTION、CREATE

4、RULE等语句3)一般的规则组成规则一般是由规则标识(可默认)以及规则语句组成。规则语句由约束作用的数据对象、约束定义(如断言Assertion)、触发条件以及违反规则时的响应动作购成。4)规则的一般分类类型属性级元组级关系级静态类型、格式、值域、空值元组的各个属性之间的取值限制实体、引用统计完整性函数依赖动态属性/值改变元组值修改时各属性间的约束关系变化的前后一致性5)自定义数据类型和规则(1)如果多个列使用同一类型的约束,或在一些特殊的情况下,通过自定义的数据类型和规则就为数据库设计提供了更高层抽象,如工资数据类型肯定比smallmo

5、ney能建立更多的特征及更容易被理(2)规则的创建(当约束条件要为多列使用时)。步骤一:CREATERULEruleAScondition_expression-1-软件C122彭静126226步骤二:Sp_bindrule[@rulename=]’rule’,[@objname=]’object_name’规则一般绑定到某一列,或者是用户自己定义的数据类型。6)Check约束(1)CHECK约束是对列或列的组合的取值限制,它采用SQL语句中WHERE子句相同的表达方式来表达,分为表一级和列一级的约束。(2)空值的问题。空值意味着检查约束

6、的值是未知的,所以空值的出现不会违反检查约束的条件。(3)潜在的语义问题。[1]大多数的DBMS不会检查约束和默认值定义的语句,所以要注意语义冲突;[2]check和check之间的冲突。[3]定义了置空删除,但表中检查约束要求此列不能为空;定义该列不能为空,检查约束要求此列为空。7)Rule约束的建立规则可以是WHERE子句中任何有效的表达式,并且可以包括诸如算术运算符、关系运算符和谓词(如IN、LIKE、BETWEEN)之类的元素。规则不能引用列或其他数据库对象。可以包含不引用数据库对内置函数。Condition_expression

7、包括一个变量。每个局部变量的前面都有一个@符号。该表达式引用通过UPDATE或INSERT语句输入的值。在创建规则时,可以使用任何名称或符号表示值,但第一个字符必须是@符号。8)Rule的绑定以及松绑创建规则后,规则仅仅只是一个存在于数据库中的对象,并未发生作用。需要将规则与数据库表或用户自定义对象联系起来,才能达到创建规则的目的。联系的方法称为“绑定”,所谓“绑定”就是指定规则作用于哪个表的哪个列,或哪个用户自定义数据类型。表的一列或一个用户自定义数据类型只能与一个规则相绑定,而一个规则可以绑定多对象。这规则的魅力所在。解除规则与对象的

8、绑定称为“松绑”。(1)存储过程Sp_bindrule绑定规则。存储过程Sp_bindrule可以绑定一个规则到表的一个列或一个用户自定义数据类型上。其语法如下:Sp_bindrule[@ru

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。