【SQL Server】实验七 数据完整性

【SQL Server】实验七 数据完整性

码农世界 2024-05-21 后端 73 次浏览 0个评论

1 实验目的

  1. 掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。
  2. 掌握完整性约束的运行检查机制。
  3. 掌握参照完整性的级联删除和修改方法。
  4. 掌握正确设计关系模式完整性约束的方法。

2 实验内容

2.1 掌握实体完整性约束的创建和使用方法

  1. 创建表时定义由一个属性组成的主键(给约束命名)。
  2. 创建表时定义由两个或两个以上属性组成的主键(给约束命名)。
  3. 删除以上两个主键约束。
  4. 利用ALTER TABLE语句定义上述两个主键。

2.2 掌握参照完整性约束的创建和使用方法

  1. 创建表时定义一个列级参照完整性约束(给约束命名)。
  2. 创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。
  3. 设计数据更新语句检查参照完整性约束是否起作用。
  4. 删除上述完整性约束。
  5. 利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。
  6. 设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。

2.3 掌握用户自定完整性约束的创建和使用方法

  1. 定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用?
  2. 定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?
  3. 定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?
  4. 定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?
  5. 定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。

3 实验要求

  1. 深入复习教材第五章数据库完整性约束内容。
  2. 根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例做实验。
  3. 实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。
  4. 思考题:完整性约束的违约处理有哪几种方式?

4 实验步骤

4.1 掌握实体完整性约束的创建和使用方法

  1. 创建表时定义由一个属性组成的主键(给约束命名)。

【SQL Server】实验七 数据完整性

  1. 创建表时定义由两个或两个以上属性组成的主键(给约束命名)。

【SQL Server】实验七 数据完整性

  1. 删除以上两个主键约束。

【SQL Server】实验七 数据完整性

【SQL Server】实验七 数据完整性

  1. 利用ALTER TABLE语句定义上述两个主键。

【SQL Server】实验七 数据完整性

 4.2 掌握参照完整性约束的创建和使用方法

  1. 创建表时定义一个列级参照完整性约束(给约束命名)。

【SQL Server】实验七 数据完整性

  1. 创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。

【SQL Server】实验七 数据完整性

  1. 设计数据更新语句检查参照完整性约束是否起作用。

对Partsupp表

Part表

【SQL Server】实验七 数据完整性

Supplier表

【SQL Server】实验七 数据完整性

Partsupp表

【SQL Server】实验七 数据完整性

1.Partsupp表中增加一个元组,该元组的partkey属性的值在part表中找不到一个元组,其partkey属性的值与之相等

【SQL Server】实验七 数据完整性

2. 修改Partsupp表中的一个元组,修改后该元组的partkey属性的值在Part表中找不到一个元组,其partkey属性的值与之相等

【SQL Server】实验七 数据完整性

3. 从Part表中删除一个元组,造成Partsupp表中某些元组的Partkey属性的值在表Part中找不到一个元组,其Partkey属性的值与之相等

【SQL Server】实验七 数据完整性

4. 修改Part表中一个元组的partkey属性,造成Partsupp表中某些元组的partkey属性的值在表Part中找不到一个元组,其partkey属性的值与之相等

【SQL Server】实验七 数据完整性

对Lineitem表

Partsupp表

【SQL Server】实验七 数据完整性

Lineitem表

【SQL Server】实验七 数据完整性

1.Lineitem表中增加一个元组,该元组的partkey,suppkey属性的值在Partsupp表中找不到一个元组,其partkey,suppkey属性的值与之相等

【SQL Server】实验七 数据完整性

2. 修改Lineitem表中的一个元组,修改后该元组的partkey,suppkey属性的值在Partsupp表中找不到一个元组,其partkey,suppkey属性的值与之相等

【SQL Server】实验七 数据完整性

3. 从Partsupp表中删除一个元组,造成Lineitem表中某些元组的partkey,suppkey属性的值在表Partsupp中找不到一个元组,其Partkey,suppkey属性的值与之相等

【SQL Server】实验七 数据完整性

4. 修改Partsupp表中一个元组的partkey,suppkey属性,造成Lineitem表中某些元组的partkey,partsupp属性的值在表Partsupp中找不到一个元组,其partkey,partsupp属性的值与之相等

【SQL Server】实验七 数据完整性

  1. 删除上述完整性约束。

【SQL Server】实验七 数据完整性

【SQL Server】实验七 数据完整性

  1. 利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。

【SQL Server】实验七 数据完整性

  1. 设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。

【SQL Server】实验七 数据完整性

4.3  掌握用户自定完整性约束的创建和使用方法

  1. 定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用?

【SQL Server】实验七 数据完整性【SQL Server】实验七 数据完整性

【SQL Server】实验七 数据完整性

  1. 定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?

【SQL Server】实验七 数据完整性【SQL Server】实验七 数据完整性【SQL Server】实验七 数据完整性

  1. 定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?

【SQL Server】实验七 数据完整性

报错,可能原因为cusphone需为布尔型

【SQL Server】实验七 数据完整性

用like成功执行

【SQL Server】实验七 数据完整性

  1. 定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?

【SQL Server】实验七 数据完整性

【SQL Server】实验七 数据完整性

  1. 定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。

【SQL Server】实验七 数据完整性

【SQL Server】实验七 数据完整性【SQL Server】实验七 数据完整性

 5 总结与体会

5.1 实验中出现的问题及其解决方案

1.测试用户自定义完整性

【SQL Server】实验七 数据完整性

【SQL Server】实验七 数据完整性

【SQL Server】实验七 数据完整性

可得,对Part表无影响

2.忘记如何验证参照完整性,上网查询后得知

5.2 总结

需对参照完整性的验证加以理解记忆,温习了约束的相关语句

转载请注明来自码农世界,本文标题:《【SQL Server】实验七 数据完整性》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,73人围观)参与讨论

还没有评论,来说两句吧...

Top