数据库实验报告完整性约束

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大连海事大学

数据库原理课程实验大纲

实验名称:实验七完整性实验学时: 2

适用专业:智能科学与技术

实验环境: Microsoft SQL server 2014

1实验目的

(1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。

(2)掌握完整性约束的运行检查机制。

(3)掌握参照完整性的级联删除和修改方法。

(4)掌握正确设计关系模式完整性约束的方法。

2实验内容

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

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

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

(3)删除以上两个主键约束。

(4)利用ALTER TABLE语句定义上述两个主键。

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

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

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

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

(8)删除上述完整性约束。

(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDA TE/DELETE时的动作。(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。

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

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

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

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

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

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

3实验要求

(1)深入复习教材第五章数据库完整性约束内容。

(2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例做实验。(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。

(4)思考题:完整性约束的违约处理有哪几种方式?

4实验步骤

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

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

CREATE TABLE PART

(PARTKEY INTEGER,

MFGR CHAR(100),

TYPE CHAR(25),

SIZE INTEGER,

NAME CHAR(55),

CONTAINER CHAR(10),

BRAND CHAR(10),

RETAILPRICE REAL,

COMMENT V ARCHAR(23),

CONSTRAINT PARTY PRIMARY KEY(PARTKEY)

);

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

CREATE TABLE PARTSUPP

(PARTKEY INTEGER,

A V AILQTY INTEGER,

SUPPKEY INTEGER,

COMMENT V ARCHAR(199),

SUPPL YCOST REAL,

FOREIGN KEY (PARTKEY) REFERENCES PART,

FOREIGN KEY (SUPPKEY) REFERENCES SUPPLIER,

CONSTRAINT PARTSUPPY PRIMARY KEY(PARTKEY,SUPPKEY)

);

(3)删除以上两个主键约束。

ALTER TABLE PARTSUPP

DROP CONSTRAINT PARTSUPPY;

(4)利用ALTER TABLE语句定义上述两个主键。

SELECT *

FROM information_schema.table_constraints;

ALTER TABLE LINEITEM

ADD CONSTRAINT LINEITEMKEY PRIMARY KEY (ORDERKEY,LINENUMBER);

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

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

ALTER TABLE PARTSUPP

ADD CONSTRAINT C1 check(partkey between 1 and 999999);

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

ALTER TABLE lineitem

add constraint linepartkey foreign key(partkey) references part;

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

insert

into lineitem(orderkey,partkey,suppkey,linenumber,quantity)

values('222010','234','1234','2','34');

(8)删除上述完整性约束。

alter table lineitem

drop constraint LINEITEM_ORDERKEY_FKEY;

(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDA TE/DELETE时的动作。

alter table lineitem

add constraint LINEITEM_ORDERKEY_FKEY foreign key(orderkey) references orders(orderkey)

on delete cascade;

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

delete

from lineitem

where orderkey='915811';

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

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

ALTER TABLE lineitem ADD CONSTRAINT discountk CHECK (discount between 0 and 1 ); (12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?

alter table nation

add constraint namek check(name like'%国');

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

alter table customer

add constraint puonek check(phone similar to'__________');

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

ALTER TABLE nation

相关文档
最新文档