77范文网 - 专业文章范例文档资料分享平台

《数据库系统原理》实验报告(5)

来源:网络收集 时间:2018-12-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

一、 实验目的

1、 掌握实体完整性的定义和维护方法; 2、 掌握参照完整性的定义和维护方法; 3、 掌握用户自定义完整性的定义和维护方法;

二、 实验内容和要求

1、定义实体完整性,删除实体完整性。能够写出两种方式定义实体完整性的SQL语句:创建表时定义实体完整性、创建表后定义实体完整性。设计SQL语句验证完整性约束是否起作用。

2、定义参照完整性,定义参照完整性的违规处理,删除参照完整性。写出两种方式定义参照完整性的SQL语句:创建表时定义参照完整性、创建表后定义参照完整性。

3、针对具体应用语义,选择NULL/NOT NULL、DEFAULT、UNIQUE、CHECK等,定义属性上的约束条件。

三、实验过程

1、实体完整性实验

(1)创建表时定义实体完整性(列级实体完整性) 定义供应商表的实体完整性。 CREATE TABLE Supplier(

suppkey INSERT CONSTRAINT PK_supplier PRIMARY KEY, name CHAR(25),

address VARCHAR(40), nationkey INSERT, phone CHAR(15), acctbal REAL,

comment VARCHAR(101));

(2)创建表时定义实体完整性(表级实体完整性) 定义供应商表的实体完整性。

CREATE TABLE Supplier( suppkey INSERT, name CHAR(25),

address VARCHAR(40), nationkey INSERT, phone CHAR(15), acctbal REAL,

comment VARCHAR(101),

CONSTRAINT PK_supplier PRIMARY KEY(suppkey));

(3)创建表后定义实体完整性 定义供应商表。

CREATE TABLE Supplier( suppkey INSERT, name CHAR(25),

address VARCHAR(40), nationkey INSERT, phone CHAR(15), acctbal REAL,

comment VARCHAR(101));

ALTER TABLE Supplier /*再修改供应商表,增加实体完整性*/ ADD CONSTRAINT PK_Supplier PRIMARY KEY(suppkey);

(4)定义实体完整性(主码由多个属性组成) 定义供应关系表的实体完整性。

CREATE TABLE PartSupp( partkey INTEGER, suppkey INTEGER, availqty INTEGER, supplycost REAL,

comment VARCHAR(199),

PRIMARY KEy (partkey,suppkey));

/*主码由多个属性组成,实体完整性必须定义在表级*/

(5)有多个候选码时定义实体完整性

定义国家表的实体完整性,其中nationkey和name都是候选码,选择nationkey作为主码,name上定义唯一性约束。

CREATE TABLE nation (

nationkey INTEGERCONSTRAINT PK_nation PRIMARY KEY, name CHAR (25) UNIQUE, regionkey INSERT,

comment VARCHAR(152));

(6)删除实体完整性 删除国家实体的主码。

ALTER TABLE nation DROP CONSTRAINT PK_nation;

(7)增加两条相同记录,验证实体完整性是否起作用 /*插入两条主码相同的记录就会违反实体完整性约束*/

INSERT INTO Supplier(suppkey,name,address,nationkey,phone,acctbal,comment) VALUES(11,'test1','test1',101,'12345678',0.0,'test1');

INSERT INTO Supplier(suppkey,name,address,nationkey,phone,acctbal,comment) VALUES(11,'test2','test2',102,'23456789',0.0,'test2');

2、参照完整性实验

(1)创建表时定义参照完整性

先定义地区表的实体完整性,再定义国家表上的参照完整性。

CREATE TABLE region(

regionkey IINTEGER PRIMARY KEY, name CHAR(25),

comment VARCHAR(152));

CREATE TABLE nation(

nationkey IINTEGER PRIMARY KEY, name CHAR(25),

regionkey INTEGER REFERENCES Region(regionkey),/*列级参照完整性*/ comment VARCHAR(152)); 或者

CREATE TABLE nation(

nationkey INTEGER PRIMARY KEY, name CHAR(25), regionkey INTEGER,

comment VARCHAR(152),

CONSTRAINT FK_Nation_regionkey FOREIGN KEY (regionkey) REFERENCES Region(regionkey));/*表级参照完整性*/

(2)创建表后定义参照完整性 定义国家表的参照完整性。

CREATE TABLE nation(

nationkey INTEGER PRIMARY KEY, name CHAR(25), regionkey INTEGER,

comment VARCHAR(152));

ALTER TABLE Nation

FOREIGN KEY (regionkey)REFERENCES Region(regionkey);

(3)定义参照完整性(外码由多个属性组成) 定义订单项目表的参照完整性。

CREATE TABLE PartSupp( partkey INTEGER, suppkey INTEGER, availqty INTEGER, supplycost REAL,

comment VARCHAR(199),

PRIMARY KEy (partkey,suppkey));

CREATE TABLE Lineitem(

orderkey INTEGER REFERENCES Orders(orderkey), partkey INTEGER REFERENCES Part(partkey),

suppkey INTEGER REFERENCES Supplier(suppkey), linenumber INTEGER, quantity REAL, extendedprice REAL, discount REAL, tax REAL,

returnflag CHAR(1), linestatus CHAR(1), shipdate DATE, commitdate DATE, receiptdate DATE,

shipinstruct CHAR(25), shipmode CHAR(10), comment VARCHAR(44),

PRIMARY KEY (orderkey,linenumber),

FOREIGN KEY (partkey,suppkey) REFERENCES PartSupp(partkey,suppkey));

(4)定义参照完整性的违约处理

定义国家表的参照完整性,当删除或修改被参照表时,设置参照表中相应记录的值为空值。

CREATE TABLE nation(

nationkey INTEGER PRIMARY KEY, name CHAR(25), regionkey INTEGER,

comment VARCHAR(152),

CONSTRAINT FK_Nation_regionkey FOREIGN KEY (regionkey)

REFERENCES Region(regionkey) ON DELETE SET NULL ON UPDATE SET NULL);

(5)删除参照完整性 删除国家表的外码

ALTER TABLE nation DROP CONSTRAINT FK_Nation_regionkey;

(6)插入一条国家纪录,验证参照完整性是否起作用

/*插入一条国家纪录,如果‘1001’号地区记录不存在,违反参照完整性约束。*/

INSERT INTONation(nationkey,name,regionkey,comment) VALUES(1001,'nation1',1001,'comment1');

3、用户自定义完整性实验

(1) 定义属性NULL/NOT NULL约束

定义地区表各属性的NULL/NOT NULL属性.

CREATE TABLE region(

regionkey INTEGER NOT NULL PRIMARY KEY, name CHAR (25) NOT NULL, comment VARCHAR(152) NULl);

(2) 定义属性DEFAULT约束

定义国家表的regionkey的缺省属性值为0值,表示其他地区。

CREATE TABLE nation(

nationkey INTEGER PRIMARY KEY, name CHAR(25),

regionkey INTEGER DEFAULT 0, comment VARCHAR(152), CONSTRAINT FK_Nation_regionkey FOREIGN KEY(regionkey) REFERENCES Region(region));

(3)定义属性UNIQUE约束

定义国家表的名称属性必须唯一的完整性约束。

CREATE TABLE nation(

nationkey INTEGER PRIMARY KEY, name CHAR (25) UNIQUE,

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《数据库系统原理》实验报告(5)在线全文阅读。

《数据库系统原理》实验报告(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/344400.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: