没有合适的资源?快使用搜索试试~ 我知道了~
实验四:数据库完整性 1.理解数据完整性的概念及分类 2.掌握各种数据完整性的实现方法 3.掌握触发器的使用方法
资源推荐
资源详情
资源评论
实验四:数据库完整性
一、实验目的
1.理解数据完整性的概念及分类
2.掌握各种数据完整性的实现方法
3.掌握触发器的使用方法
二、实验平台
1.操作系统:Windows XP 或者 Windows 7
2.数据库管理系统:SQL Server 2008
三、实验内容和要求
使 用 SQL 对 数 据 进 行 完 整 性 控 制 ( 3 类 完 整 性 、 CHECK 短 语 、
CONSTRAINT 子句、触发器)。用实验证实,当操作违反了完整性约束条件时,
系统是如何处理的。在实验 2 中已经建立了一个数据库 students,继续在此数据
库上进行实验所要求的各种操作。认真填写实验报告,记录所有的实验用例。
四、实验步骤
在本实验中,我们将对完整性进行讨论,包括 3 类完整性、CHECK 短语、
CONSTRAIN 子句、触发器。因为完整性约束绝大部分是在定义表结构时进行
的,因此可能需要多次定义表,如果表名发生重复的话,可以先将旧表删除后
再建立。
1. 实体完整性
[例 1]定义表的主码。
关系模型的实体完整性在 CREATE TABLE 中用 PRIMARY KEY 定义。定
义主码的方法分为定义为列级约束条件和定义为表级约束条件两种。
[例 1-1]定义表 Student,并将其中的 Sno 属性定义为主码。
CREATE TABLE STUDENT(
SNO CHAR(7) PRIMARY KEY,
SNAME CHAR(8) NOT NULL,
SSEX CHAR(2),
SAGE SMALLINT,
SDEPT CHAR(20));
或者:
CREATE TABLE STUDENT(
SNO CHAR(7),
SNAME CHAR(8),
SSEX CHAR(2),
SAGE SMALLINT,
SDEPT CHAR(20),
PRIMARY KEY (SNO));
[例 1-2]定义表 SC,将其中的属性 Sno,Cno 定义为主码。
对于多个属性构成的码,只能够将其定义为表级约束条件,而无法用列级
约束条件来实现。
CREATE TABLE SC(
SNO CHAR(7) NOT NULL,
CNO CHAR(4) NOT NULL,
GRADE SMALLINT,
PRIMARY KEY (SNO,CNO));
2. 参照完整性
[例 2]定义表的外码。
关系模型的参照完整性是在 CREATE TABLE 中用 FOREIGN KEY 语句来
定义的,并用 REFERENCES 来指明外码参照的是哪些表的主码。
定义表 SC,其中 Sno 参照表 Student 的主码 Sno,Cno 参照表 Course 的主
码 Cno。
CREATE TABLE SC(
SNO CHAR(7) NOT NULL,
CNO CHAR(4) NOT NULL,
GRADE SMALLINT,
PRIMARY KEY (SNO,CNO),
FOREIGN KEY (SNO) REFERENCES STUDENT(SNO),
FOREIGN KEY (CNO) REFERENCES COURSE(CNO));
3.用户定义完整性
[例 3]用户定义的属性上的约束条件。
[例 3-1]列值非空。在定义 SC 表时,Sno、Cno 和 Grade 属性都不允许取空值。
在不特别声明的情况下,非码属性的值是允许取空值的。
CREATE TABLE SC(
SNO CHAR(7) NOT NULL, /*列值非空的约束 NOT NULL*/
CNO CHAR(4) NOT NULL,
GRADE SMALLINT NOT NULL);
[例 3-2]列值唯一。建立部门表 DEPT,要求部门名称 Dname 取值唯一,部门编
号 Deptno 属性为主码。
CREATE TABLE DEPT(
DEPTNO NUMERIC(7) PRIMARY KEY,
DNAME VARCHAR(9) UNIQUE, /*UNIQUE 约束要求 Dname 取值
唯一*/
LOCATION VARCHAR(10));
[例 3-3]CHECK 短语指定列值应该满足的条件。定义表 Student,属性 Ssex 的值
只允许取“男”或“女”;定义表 SC,属性 Grade 的值定义在 0-100 之间。
CREATE TABLE STUDENT(
SNO CHAR(7) PRIMARY KEY,
SNAME CHAR(8) NOT NULL,
SSEX CHAR(2) CHECK(SSEX IN(‘男’,’女’)), /*CHECK 语句约束条件*/
SAGE SMALLINT,
SDEPT CHAR(20));
剩余12页未读,继续阅读
资源评论
qq_37956530
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2025年 UiPath AI和自动化趋势:代理型AI的崛起及企业影响
- 基于Java的环境保护与宣传网站的设计与实现毕业论文.doc
- 2025年人形机器人产业发展蓝皮书-量产及商业化关键挑战
- 互联网金融发展指数 (第二期,2014年1月-2015年12月).zip
- 百度智能云千帆大模型平台推进企业多模态生成式AI应用
- 形状检测32-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma数据集合集.rar
- qwewq23132131231
- 2024年智算云市场发展与生态分析报告
- 冒泡排序算法解析及优化.md
- MySQL中的数据库管理语句-ALTER USER.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功