实验2 设计数据完整性

上传人:油条 文档编号:33232104 上传时间:2018-02-14 格式:DOC 页数:11 大小:365KB
返回 下载 相关 举报
实验2  设计数据完整性_第1页
第1页 / 共11页
实验2  设计数据完整性_第2页
第2页 / 共11页
实验2  设计数据完整性_第3页
第3页 / 共11页
实验2  设计数据完整性_第4页
第4页 / 共11页
实验2  设计数据完整性_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《实验2 设计数据完整性》由会员分享,可在线阅读,更多相关《实验2 设计数据完整性(11页珍藏版)》请在金锄头文库上搜索。

1、 南 昌 大 学 实 验 报 告学生姓名: 华国平 学 号: 6100411092 专业班级: 计算机科学与技术 112 班 实验类型: 验证 综合 设计 创新 实验日期: 2013.11.2 实验成绩: 实验二 设计数据完整性一、实验目的(1)掌握使用约束实现数据完整性的方法。(2)掌握使用触发器实现数据完整性的方法。二、实验内容(1)定义客户表 customer、供应商表 supplier、商品信息表 goods、订单信息表 order、信誉等级表 creditgrade 和商品类型表 goodstype 的主键。(2)定义以上各表的外键约束。(3)定义惟一约束:customer 表的 l

2、oginname 字段;supplier 表的 loginname 字段和suppliername 字段;creditgrade 表的 creditgradename 字段;goodstype 表的goodstypename 字段。(4)定义检查约束,各字段的约束要求如表所示。字 段 名 约 束 要 求passwordzipcodeemailloginname密码长度至少 3 位邮编为 6 位数字至少有一个登录名不能以_#.符号开头(5)定义默认值,各字段的默认值如表所示。字 段 名 默 认 值passwordlogindatecreditgradeidgoodstypeid000当前时间 G

3、ETDATE()21(6)在 order 表上建立一个 INSERT 触发器,在添加一个订单时,减少 goods 表相应商品记录中的库存量。三、实验环境(1)个人计算机或局域网。(2)Windows 2000 操作系统。(3)SQL Server 2000 数据库管理系统。四、实验步骤4.1 设置主键约束启动企业管理器,利用表设计器分别定义客户表 customer、供应商表 supplier、商品信息表 goods、订单信息表 order、信誉等级表 creditgrade 和商品类型表 goodstype 的主键。设置主键约束的操作步骤如下。(1)执行“开始”“程序”“Microsoft S

4、QL Server”“企业管理器”命令,即可启动企业管理器。在企业管理器窗口中,依次展开“Microsoft SQL Server”, “SQL Server 组” , “服务器” , “数据库” ,选择数据库 market 并展开。(2)在数据库 market 的列表中选择“表”并展开,找到要设置约束的表(如customer 表) ,右击该表,然后在弹出的快捷菜单中选择“设计表”选项,打开表设计器。(3)右击要设置主键的列(如“customerid” ) ,然后在弹出的快捷菜单中执行“设置主键”命令,如图所示。此时在“customerid”列前有一个钥匙样的图标,表示在“customerid

5、”列上完成了主键约束的设置,如图所示。也可直接单击工具栏中的“钥匙”设置主键约束。用同样的方法把 supplier 表的“supplierid”列设置为主键,把 goods 表的“goodsid”列设置为主键,把 order 表的“orderid”列设置为主键,把 creditgrade 表的“creditgradeid”列设置为主键,把 goodstype 表的“goodstypeid”列设置为主键,并将它设置为标识列(identity) 。用户不能对标识列赋值,系统自动生成能够标识每条记录的惟一序列值。4.2 设置惟一约束在 market 数据库的数据表中需要建立惟一约束的列有客户表 cu

6、stomer 的customername 列、供应商表 supplier 的 suppliername 列、商品信息表 goods 的 goodsname列等。4.2.1 为客户表 customer 的 customername 列建立惟一约束为客户表 customer 的 customername 列建立惟一约束的操作步骤如下。(1 )在企业管理器中,选择要设置惟一约束的表 customer,然后右击,在弹出的快捷菜单中执行“设计表”命令,打开表设计器。(2 )单击工具栏中的“表和索引属性 ”按钮,打开“属性 ”对话框,然后选择“索引/键”选项。(3 )在“索引/键”选项中,单击“添加”按钮

7、, “类型”选择为“唯一键” ,在“列名”下拉列表框中选择要设置惟一约束的列 customername。单击“关闭”按钮,即完成了惟一约束的设置。和添加主键一样,向表中添加惟一键约束时,SQL Server 也将检查现有记录的列值,以确保有数据符合惟一键的规则,所以在添加惟一键之前要保证惟一键列没有重复值,但可以有空值,如图所示。4.2.2 以客户表 customer 为例,对新建的惟一约束进行检验对新建的惟一约束进行检验的操作步骤如下。(1)启动查询分析器,选择数据库 market 为当前数据库。(2)在编辑窗口中输入如下 SQL 语句:INSERT INTO customer(custom

8、erid, customername) VALUES (100,张三 )INSERT INTO customer(customerid, customername) VALUES (101,张三 )注意:在 customer 表中已经存在一条客户名是张三的记录。(3)按 F5 键执行该语句,系统报错,如图所示,说明 customer 表中 customername列的惟一约束已起作用。4.3 设置外键约束4.3.1 为 order 表的 customerid 列设置外键约束为 order 表的 customerid 列设置外键约束的操作步骤如下。(1)在企业管理器中,选中要设置外键约束的表 o

9、rder,然后右击,在弹出的快捷菜单中执行“设计表”命令,打开表设计器。(2)单击工具栏中的“表和索引属性”按钮,打开“属性”对话框,然后选中“关系”选项卡。(3)在“关系”选项卡中,单击“添加”按钮,在“在表和列规范”下拉列表框中选择外键引用的表(如 customer) ,并在其下的列表框中选择外键引用的列(如 customerid) ;在“外键表”下拉列表框中选择要定义外键的表(如 order) ,并在其下的列表框中选择要定义外键约束的列(如 customerid) ,如图所示。(4)在“关系名”文本框中输入约束的名称,或接受默认的名称。(5)在“关系”选项卡下部的复选框中进行相应的选择。

10、若选中“在创建或重新启用时检查现有数据”复选框,则表示设置约束前,先要对表中已经存在的数据进行检查,若不满足“外键列的列值是引用列的列值之一”这一规则,则不允许定义外键约束;若不选中该项,表示对表中已经存在的数据不检查,总允许定义外键约束。(6)设置完毕后,单击“关闭”按钮。4.3.2 以 order 为例,通过插入新的数据记录来检验外键约束通过插入新的数据记录来检验外键约束的操作步骤如下。(1)启动查询分析器,选择 market 为当前数据库。(2)在编辑窗口中输入如下 SQL 语句:INSERT INTO order(orderid,customerid,goodsid) VALUES (

11、100,200,300) 注意:customer 表中没有客户编号为 200 的客户记录。(3)按 F5 键执行该语句,系统报错,如图所示,说明表 order 中的 customerid 列的外键约束已起作用。4.4 设置检查约束4.4.1 为 customer 表的 zipcode 列设置检查约束为 customer 表的 zipcode 列设置检查约束的操作步骤如下。(1)在企业管理器中,选中要设置检查约束的 customer 表,然后右击,在弹出的快捷菜单中选择“设计表” ,打开表设计器。(2)单击工具栏中的“表和索引属性”按钮,以打开“属性”对话框,然后选中“CHECK约束”选项。(3

12、)在“CHECK 约束”选项中,单击“新建”按钮,在“约束表达式”文本框中输入相应的约束条件。例如,若要设置表的 zipcode 字段检查约束,则可以输入表达式zipcode like 0-90-90-90-90-90-9(4)单击“关闭”按钮,即设置检查约束完成,如图所示。4.4.2 以 customer 为例,通过插入新的数据记录来检验检查约束通过插入新的数据记录来检验检查约束的操作步骤如下。(1)启动查询分析器,选择数据库 customer 为当前数据库。(2)在编辑窗口中输入如下 SQL 语句:INSERT INTO customer(customerid,customername,z

13、ipcode) VALUES(10,李四, 1234567)(3)按 F5 键执行该语句,系统报错,如图所示,说明表 customer 中的 zipcode 列的检查约束已起作用。4.5 设置默认值约束数据库中每一行记录中的每一列都应该有一个值,当然这个值也可以是空值。但是向一个表中添加数据(添加一行记录)时不知道某列的值或该列的值当时还不能确定,这时可以将该列为允许接受空值或给该列定义一个默认值。默认值就是当向表中插入数据时,如果用户没有明确给出某一列的值,则 SQL Server 自动为该列添加值。设置默认值约束的操作步骤如下。在企业管理器中,选择要创建默认值的数据库 market,右击该

14、数据库下的“默认值”图标,在弹出的快捷菜单中,执行“新建默认值”命令,弹出“默认属性”对话框。在该对话框中分别输入默认值的名称和值。单击“确定”完成默认值对象的建立。4.6 使用触发器实现数据的完整性触发器同约束一样是用来维护数据完整性的,但使用触发器可以实现比约束更为复杂的处理逻辑。触发器实际上是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录、更新记录或者删除记录时,被自动地激活,从而防止对数据的不正确修改。我们使用 4.6.1 使用 SQL 语句来创建触发器在 customer 表中创建触发器,实现 customer 表和 order 表的级联删除。在 customer表中创

15、建触发器的操作步骤如下。(1)启动查询分析器,选择数据库 market 为当前数据库。(2)在编辑窗口中输入如下 SQL 语句:CREATE TRIGGER goodsinsert ON goods FOR INSERT ASDELETE FROM order WHERE customerid IN (SELECT customerid FROM deleted)(3)按 F5 键执行该语句,结果如图所示。4.6.2 检验触发器检验触发器的操作步骤如下。(1)启动查询分析器,选择 market 为当前数据库。(2)在编辑窗口中输入如下 SQL 语句:DELETE FROM customer W

16、HERE customerid=500 select *from order(3)按 F5 键执行该语句,然后显示 order 表中的数据,如图所示。可以看到当删除customer 表中 customerid 值为 500 的数据时,order 表中 customerid 值为 500 的数据也被删除,说明定义的触发器已起作用。五、实验体会或对改进实验的建议通过本次试验使得我懂得了如何使用约束来实现数据完整性的方法,即设置主键约束、设置惟一约束、设置外键约束、设置检查约束和设置默认值约束。数据完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。同时我还掌握了触发器的创建,以及

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号