6实验六-数据库完整性

合集下载

数据库完整性

数据库完整性
数据库原理与应用
实验报告
实验项目名称:数据库完整性
实验概述
1.实验目的
熟悉数据库的保护措施-完整性控制;选择若干典型的数据库管理系统产品,了解他们所提供的数据库完整性控制的多种方式与方法。
2.实验要求
实践实验示例中陈述的例题,在掌握命令操作的同时,也能掌握界面操作的方法,即在SQL Server集成管理器中实践各种完整性的创建与完整性的约束。
sp_unbindefaultphone,'teachers.telphone'
DROP DEFAULT phone
、利用T—SQL创建规则rule_name,使得教工姓名tname的长度必须大于等于4
CREATERULErule_nameAS@id>=4
、把规则rule_name绑定到教工表的教工姓名tname上
2.实验内容与关键SQL语句、实验结果等
(1)、实体完整性
、PRIMARY KEY约束
、UNIQUE约束
、IDENTITY属性
(2)、域完整性
、创建用户定义的数据类型
、NOT NULL
语句:CREATE TABLE ***
(****数据类型NOT NULL)
、CHECK约束
语句:CHECK(Ssex=‘男’OR Ssex=‘女’)
sp_bindrulerule_name,'teachers.tname'
、取消规则tule_name的绑定并删除规则
sp_unbindrulerule_name,'teachers.tname'
DROP RULE rule_name
3.疑难与未解决的问题
默认对象绑定语句无法执行

数据库完整性实验总结(必备6篇)

数据库完整性实验总结(必备6篇)

数据库完整性实验总结第1篇时间流水,短短的两周就流逝了,回想在这两周的实训生活,我从单一,片面的学习进入了全面,系统的学习,学好它更是一项大任务。

而对于如何学好它,光靠理论知识是远远不够的,_同志曾经就说过“实践是检验真理的唯一标准”!正如大师傅炒菜,知道炒菜的程序,主料、调料一清二楚,不真正掌勺,永远也成不了“大厨”。

而学校给我们提供了这样一个机会,让我们自己_掌勺_,使我们从实践中,加深了对数据库的理解。

经过这次的实训,我们对数据库有了更深的了解,从书面的明白到实践的理解,接触到了自己以前没有接触到的东西,并让我加深了数据库知识的学习和理解,也使我进一步了解数据库,这次实训可以为我们以后真正的实际数据库系统设计提供很好的借鉴。

更使我明白遇到什么挫折,不气馁,不放弃,勇于探索,才会让自己离成功越来越近!俗话说:知之为知之,不知为不知!不要不懂装懂,有什么不懂的要敢于向_知之者_请教!知识是慢慢积累而成的,我们学习不仅要学习理论知识,而实践也是非常重要的,只有当两者结合,才会获得收获!我们这次实习对我们的认识起到了很大的启发作用,使我们以后在接触数据库的过程中少走点弯路。

也使我们对人生和社会有了更清楚的认识,任何的成功都有艰辛和汗水铺出来的,没有那么多的意外收获。

我们要学的还有很多,要接触的还不知道有多少,以后的路还很漫长,我相信我会更加努力的,把握现在,为自己的未来而奋斗,展开双翅飞向美好的未来!在这里很感谢xxx老师给我们传授了这么多的知识和经验,让我们在毕业之际更好的填补自己的不足。

数据库完整性实验总结第2篇在学习《数据库原理及应用》这门课之前,就和课本上提到的一个观点一样,认为它只是存放数据的仓库而已,但是现在我深深体会到这个观点是多么的片面。

数据库是长期存储在计算机内,有组织、可共享的大量的数据集合,前者只能表达它的一方面而已。

数据库技术发展到今天已经是一门非常成熟的技术,它的技术水平、应用水平多比初始时都有了很大的改变,但是它的最基本的特征却没有变,概括起来有以下几个方面:第一点:数据库是相互关联的的数据集合;即在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的关系。

数据库实验6数据完整性

数据库实验6数据完整性

实验6数据完整性1.实验目的(1)掌握SQL Server管理平台和Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。

(2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。

(3)掌握SQL Server管理平台和Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建和删除默认对象的方法。

(4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。

(5)掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。

2.实验内容(1)为xskc数据库中student表的创建一个规则stu_nj_rule,限制“年级”列所输入的数据为2位0~9的数字。

(2)创建一个规则stusex_rule,将其绑定到student_info表的“性别”列上,保证输入的性别值只能是“男”或“女”。

(3)使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。

(4)删除stu_nj_rule规则。

(5)在student_db数据库中,建立日期、货币等数据类型的默认值对象。

①创建默认对象df_date、df_money。

②输入以下代码,在xskc数据库中创建stufee数据表。

CREATE TABLE stufee(学号char(10) NOT NULL,姓名char(8) NOT NULL,学费money,交费日期datetime,)③使用系统存储过程sp_bindefault将默认对象df_money、df_date分别绑定在stu_fee 表的“学费”、“交费日期”列上。

数据库完整性实验报告

数据库完整性实验报告

数据库完整性实验报告数据库完整性实验报告引言数据库完整性是指数据库中数据的准确性、一致性和有效性。

在数据库中,完整性是非常重要的,它保证了数据的可靠性和可信度。

本实验报告旨在介绍数据库完整性的概念、重要性以及实验过程和结果。

一、数据库完整性的概念和重要性数据库完整性是指数据库中的数据应符合规定的约束条件,不应存在冲突、矛盾或不一致的情况。

它包括实体完整性、参照完整性和用户定义的完整性。

1. 实体完整性实体完整性是指数据库中的每个实体都必须具有唯一的标识符。

在关系型数据库中,实体完整性通常通过主键来实现。

主键是一个能唯一标识实体的属性或属性组合,它保证了每个实体的唯一性。

2. 参照完整性参照完整性是指数据库中的外键必须引用已存在的主键。

外键是一个表中的属性,它引用了另一个表的主键。

参照完整性保证了表与表之间的关联关系的正确性和一致性。

3. 用户定义的完整性用户定义的完整性是指用户自定义的约束条件必须满足。

例如,一个表中的某个属性必须满足某种条件,如非空、唯一等。

用户定义的完整性保证了特定业务需求的满足。

数据库完整性的重要性在于保护数据的可靠性和一致性。

它可以防止数据的错误、冲突和不一致,确保数据的准确性和可信度。

同时,数据库完整性也为数据库的安全性提供了基础,防止非法访问和恶意操作。

二、实验过程本实验使用MySQL数据库进行实验。

1. 创建数据库和表首先,创建一个名为"students"的数据库,并在其中创建一个名为"grades"的表。

表"grades"包含三个字段:学生ID、课程名称和成绩。

2. 添加完整性约束在表"grades"中,为学生ID字段添加主键约束,保证每个学生ID的唯一性。

同时,为课程名称字段添加非空约束,保证每个课程都有名称。

3. 添加参照完整性约束在表"grades"中,为学生ID字段添加外键约束,引用了另一个表"students"中的主键。

数据库的完整性和安全性实验报告

数据库的完整性和安全性实验报告

信息工程学院实验报告课程名称:《数据库原理》实验项目名称:数据库的完整性和安全性一、实 验 目 的:(1)掌握数据库约束的概念;(2)熟悉SQL SERVER 的完整性约束技术。

(3)了解SQL SERVER 的违反完整性处理措施。

(4)了解登录账户的管理理念与具体方法。

(5)了解数据库用户的管理的要则。

(6)了解用户权限管理的内涵与方法。

二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤(一)测试完整性运行附录中的SQL 语句,理解SQL 语句中包含的完整性定义。

然后执行下面的SQL 语句,看是否能正常运行,若无法执行,请说明原因。

1.对dept 表进行数据增删改,并检查完整性规则 Dept 已存在的完整性规则如下: dno CHAR(2)PRIMARY KEYdnameV ARCHAR(20) NOT NULL,UNIQUE(1)增加数据INSERT INTO dept V ALUES('D1','计科系');----正常插入INSERT INTO dept V ALUES('D2','电信系');----正常插入INSERT INTO dept V ALUES(NULL,'机械系'); ----违反dno 主键(NOT NULL )规则INSERT INTO dept V ALUES('D2','机械系'); ----违反dno 主键(UNIQUE )INSERT INTO dept V ALUES('D3',NULL); ----违反dname 的NOT NULL 规则INSERT INTO dept V ALUES('D3','计科系'); ----违反dname 的UNIQUE 规则INSERT INTO dept V ALUES('D3','机械系');----正常插入(2)删除数据DELETE FROM dept WHERE dno='D3';----正常删除(3)修改数据UPDA TE dept SET dname='计算机科学系' WHERE dno='D1';----正常修改UPDA TE dept SET dname='电信系' WHERE dno='D1'; ----违反dname的UNIQUE规则UPDA TE dept SET dname=NULL WHERE dno='D1'; 违反dname的UNIQUE规则2.对student表进行数据增删改,并检查完整性规则Student已存在完整性规则如下:sno CHAR(2) PRIMARY KEYsname V ARCHAR(20) NOT NULL,ssex CHAR(2) NOT NULL, CHECK(ssex in('男','女'))sage INT NOT NULL,dno CHAR(2) NOT NULL, FOREIGN KEY REFERENCES dept(dno)ON DELETE CASCADE ON UPDATE CASCADE(1)增加数据INSERT INTO student V ALUES('S1','张刚','男',20,'D1');----正常插入INSERT INTO student V ALUES('S2','李梅','女',21,'D2');----正常插入INSERT INTO student V ALUES('S2','吴敏','男',20,'D1'); ----正常插入INSERT INTO student V ALUES(NULL,'吴敏','男',20,'D1'); ----违反sno 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','男',NULL,'D1'); 违反sage 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','M',20,'D1'); 违反ssex 的CHECK规则INSERT INTO student V ALUES('S3','吴敏','男',20,'D3'); ----正常插入INSERT INTO student V ALUES('S3','吴敏','男',20,'D1');----正常插入(2)删除数据DELETE FROM student WHERE sno='S3'; ----正常删除(3)修改数据UPDA TE student SET sname='赵强',dno='D2' WHERE sno='S1'-----正常修改UPDA TE student SET ssex='F' WHERE sno='S1'; -----违反ssex的CHECK 规则UPDA TE student SET sno='S2' WHERE sno='S1'; -----违反sno的主键(UNIQUE)规则UPDA TE student SET dno='D3' WHERE sno='S1'; 违反dno 的外键规则UPDA TE dept SET dno='D3' WHERE dno='D1';----检查dno的外键ON UPDATE规则,观察运行后效果DELETE FROM dept WHERE dno='D2';----检查dno的外键ON DELETE规则,观察运行后效果(二)使用规则实现数据完整性(1)在查询分析器中,利用命令(CREATE RULE),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0~200之间;然后将所创建的规则绑定到“sage”列(提示:用命令Sp_bindrule)。

实验六 数据库的完整性定义与检查 (2)

实验六  数据库的完整性定义与检查 (2)

实验六数据库的完整性定义与检查实验目的:1.充分理解关系数据库中关于数据库完整性的概念。

2.掌握实体完整性的定义和检查方法。

3.掌握参照完整性的定义和检查方法。

4.掌握用户自定义完整性的定义和检查方法。

实验内容:一、在企业管理器中定义以下数据表中各字段的完整性约束(包括实体完整性、参照完整性和用户定义完整性)。

1.Student表。

记录学生基本信息。

表1-1 Student 表结构[Sno] [char](9)PRIMARY KEY,[Sname] [char](8)NOT NULL,[Ssex] [char](2)CHECK(Ssex IN('女','男')),[Sage] SMALLINT CHECK(Sage>=15 AND Sage<=45),[Sdept] [char](20)default('计算机'))2.Course表。

记录课程信息。

表1-2 Course 表结构[Cno] [char](10)PRIMARY KEY,[Cname] [char](20)NOT NULL,[Ccredit] SMALLINT CHECK(Ccredit>0),[Semester] SMALLINT CHECK(Semester>0),[Period] SMALLINT CHECK(Period>0),)3.Sc表。

记录学生选修课程的信息。

表1-3 Sc 表结构[Sno] [char](9)NOT NULL,[Cno] [char](10)NOT NULL,[Grade]SMALLINT CHECK(Grade>=0 and Grade<=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno))二、在查询编辑器中,写出创建表的语句同时写出设置实体完整性、参照完整性和用户自定义完整性的语句。

数据库的完整性实验报告

数据库的完整性实验报告

数据库的完整性实验报告数据库的完整性实验报告引言:数据库的完整性是指数据库中存储的数据必须满足预定的一致性要求,包括实体完整性、域完整性、参照完整性和用户定义的完整性。

本实验旨在通过设计一个简单的数据库,并通过实际操作验证其完整性。

一、实验目的本实验的目的是通过设计和操作数据库,了解数据库的完整性概念,并掌握如何保证数据的完整性。

二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统上进行实验。

三、实验步骤1. 创建数据库首先,我们需要创建一个数据库来存储我们的数据。

在MySQL中,可以使用以下命令创建一个新的数据库:```CREATE DATABASE integrity;```2. 创建数据表接下来,我们需要创建一个数据表来存储我们的数据。

假设我们要创建一个学生信息表,包括学生的学号、姓名和年龄。

可以使用以下命令创建该表:```USE integrity;CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```3. 插入数据现在,我们可以向刚刚创建的数据表中插入一些数据。

例如,我们可以插入几个学生的信息:```INSERT INTO students (id, name, age) VALUES (1, '张三', 20);INSERT INTO students (id, name, age) VALUES (2, '李四', 22);INSERT INTO students (id, name, age) VALUES (3, '王五', 21);```4. 实体完整性实体完整性是指每个实体都必须具有一个唯一的标识符。

在我们的学生信息表中,学生的学号是唯一的标识符。

为了保证实体完整性,我们可以在创建表时使用PRIMARY KEY约束来定义学号为主键:```CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```这样,如果有重复的学号插入到表中,系统会报错并拒绝插入。

数据库实用技术-实验六

数据库实用技术-实验六

实验报告单院(系)计算机学院专业计算机科学与技术班级姓名学号同组人实验室S4305 组号日期课程数据库实用技术指导教师成绩实验项目编号8103203006 实验项目名称索引和数据的完整性一、实验目的(1)掌握索引的使用方法;(2)掌握数据完整性的实现方法;二、实验环境WIN7操作系统SQL Server2008三、实验原理(或要求)(1)了解索引的作用与分类;(2)掌握索引的创建方法;(3)理解数据的完整性的概念与分类;(4)掌握各种数据完整性的实现方法。

四、实验步骤(1)建立索引①使用CREATE INDEX语句创建索引。

●对YGGL数据库的Employees表中的DepartmentID列建立索引。

在查询分析器中输入如下程序并执行:USE YGGLGOCREATE INDEX depart_indON Employees(DepartmentID)GO●在Employees表的Name列和Address列上建立复合索引。

CREATE INDEX Ad_indON Employees(Name,Address)●对Departments表上的DepartmentName列建立唯一非聚集索引。

CREATE UNIQUE INDEX Dep_indON Departments(DepartName)②使用界面方式创建索引。

使用界面方式在Employees表的PhoneNumber列上创建索引。

启动SQL Server Management Studio,在对象资源管理器中展开数据库YGGL,展开表Employees,右击“索引,选择“新建索引”选项。

在新建索引的窗口中填写索引的名称和类型,单击“添加”按钮,在列表框中选择要创建的索引的列,选择完单击“确定”按钮即完成创建工作。

(2)重建索引。

重建表Employees中的所有索引。

USE YGGLGOALTER INDEX ALLON Employees REBUILD(3)删除索引。

实验六数据完整性实验报告

实验六数据完整性实验报告

2011-2012学年第二学期课程实验报告课程名称:数据库系统原理实验名称:数据库控制(二):数据完整性姓名班级学号实验台编号- 同组同学-实验课表现出勤、表现得分25% 25 实验报告得分50%实验总分操作结果得分25% 25实验目的1.掌握数据完整性的概念及分类2.掌握各种完整性的实现方法3.掌握触发器的概念及工作原理4.掌握触发器的创建和使用方法实验内容(实验步骤和实验结果的简单描述,方便同学自己以后阅读)--实验六,数据库控制(二):数据完整性--1. 用户要求:XS表中的学生的专业只能是“计算机”,“数学”,“电子”-- 中的任意一个,请问如何解决该问题?请写出一种具体的解决方法。

ALTER TABLE XS WITH NOCHECKADD CONSTRAINT C1CHECK (专业IN('计算机','数学','电子'))--2. 用户要求:XS表中的学生的年龄必须在岁到岁之间,请问如何解决-- 该问题?请写出一种具体的解决方法。

ALTER TABLE XS WITH NOCHECKADD CONSTRAINT C2CHECK (2012 -YEAR(出生日期)BETWEEN 18 AND 30)--3. 用户要求:在输入XS表中的数据时,若“专业”列没有提供数据,系统应-- 自动取值“计算机”,请问如何解决该问题?请写出一种具体的解决方法。

USE stu10EXEC sp_helpconstraint XSALTER TABLE XSDROP CONSTRAINT DF__XS__专业__023D5A04ALTER TABLE XS ADD CONSTRAINT DF_专业DEFAULT'计算机'FOR专业--4. 用户要求:XS_KC表中的成绩列的取值只能为—之间的整数,且在用户-- 没有输入数据时自动取值,请问如何解决该问题?请写出一种具体的解决-- 方法。

数据库完整性实验报告

数据库完整性实验报告

数据库完整性实验报告引言数据库完整性是数据库管理系统中的一个重要概念,用于确保数据库中数据的准确性、有效性和一致性。

本实验旨在通过设计和实现一系列完整性约束,来验证数据库完整性的实际应用。

实验目标本实验的目标是设计并实现以下几种完整性约束:1.实体完整性约束2.参照完整性约束3.用户自定义完整性约束实验环境本实验使用了以下工具和环境:•数据库管理系统:MySQL•编程语言:Python•集成开发环境:Jupyter Notebook实验步骤步骤一:数据库设计首先,我们需要设计一个符合实验需求的数据库。

我们选择一个简单的学生管理系统作为示例,包含以下两个实体:1.学生(Student):包含学生的学号、姓名和年龄。

2.课程(Course):包含课程的课程号、课程名和学分。

步骤二:实体完整性约束实体完整性约束用于保证每个实体在数据库中都有唯一的标识。

在本实验中,我们将为学生实体添加一个主键约束,保证每个学生的学号是唯一的。

CREATE TABLE Student (id INT PRIMARY KEY,name VARCHAR(50),age INT);步骤三:参照完整性约束参照完整性约束用于保证关系数据库中的引用一致性。

在本实验中,我们将为课程实体添加一个外键约束,引用学生实体的主键。

CREATE TABLE Course (id INT PRIMARY KEY,name VARCHAR(50),credits INT,student_id INT,FOREIGN KEY (student_id) REFERENCES Student(id));步骤四:用户自定义完整性约束用户自定义完整性约束是根据具体业务需求自定义的约束条件。

在本实验中,我们将为课程实体添加一个自定义约束,保证学分必须大于等于0。

ALTER TABLE CourseADD CONSTRAINT chk_credits CHECK (credits >=0);实验结果通过以上步骤,我们已经成功设计并实现了实体完整性约束、参照完整性约束和用户自定义完整性约束。

数据库完整性实验报告

数据库完整性实验报告

数据库完整性实验报告第一篇:数据库完整性实验报告实验报告一、实验题目数据库完整性二、实验要求1)建立一个被参照关系test_main,其中id为主键。

.CREATE TABLE test_main(idINT, valueVARCHAR(10), PRIMARY KEY(id));2)建立一个参照关系test_sub,其中id为主键。

CREATE TABLE test_sub(idINT, main_id INT, valueVARCHAR(10), PRIMARY KEY(id));3)使用如下SQL语句插入数据--插入测试主表数据.INSERT INTO test_main(id, value)VALUES(1, 'ONE');INSERT INTO test_main(id, value)VALUES(2, 'TWO');--插入测试子表数据.INSERT INTO test_sub(id, main_id, value)VALUES(1, 1, 'ONEONE');INSERT INTO test_sub(id, main_id, value)VALUES(2, 2, 'TWOTWO');4)使用add constraint语句建立test_ sub表main_id到test_main表id的外键约束 5)删除test_main表中id=1的记录 6)测试完毕后,删除外键约束重新建立外键约束,要求删除主表的记录时候,同时删除子表中相应引用它的记录7)重新尝试第5步中的操作,之后检索test_sub 表,会出现什么结果?测试完毕后,删除外键约束8)重新建立外键约束,要求更新主表的主键时候,同时更新子表外键9)测试更新主表数据,将id=1的记录的id值设为5。

检查test_sub表中的数据是否被同步更新,测试完毕后,删除外键约束10)再次创建外键约束,要求删除主表的时候,同时将子表的main_id 设置为 NULL 11)测试删除主表test_main中id=2的数据,测试检索子表test_sub 测试完毕后,删除外键约束三、实验内容1)CREATE TABLE test_main(idINT, valueVARCHAR(10), PRIMARY KEY(id));2)CREATE TABLE test_sub(idINT, main_id INT, valueVARCHAR(10), PRIMARY KEY(id));3)INSERT INTO test_main(id, value)VALUES(1, 'ONE');INSERT INTO test_main(id, value)VALUES(2, 'TWO');INSERT INTO test_sub(id, main_id, value)VALUES(1, 1, 'ONEONE');INSERT INTO test_sub(id, main_id, value)VALUES(2, 2, 'TWOTWO');4)ALTER TABLE test_subADD CONSTRAINT main_id_cons FOREIGN KEY(main_id)REFERENCES test_main(id);5)delete from test_main where id='1' 无法执行6)alter table test_subdrop constraint main_id_consALTER TABLE test_subADD CONSTRAINT main_id_cons FOREIGN KEY(main_id)REFERENCES test_main(id)on delete cascade;7)delete from test_main where id='1';结果是test_main,和test_sub中的id=1的都被删除了altertable test_subdrop constraintmain_id_cons;8)首先我把上面操作所删除的加上了INSERT INTO test_main(id, value)VALUES(1, 'ONE');INSERT INTO test_sub(id, main_id, value)VALUES(1, 1, 'ONEONE');ALTER TABLE test_subADD CONSTRAINT main_id_cons FOREIGN KEY(main_id)REFERENCES test_main(id)on update cascade;9)update test_main set id='5' where id='1' 结果是main_id也变为了5。

实验六 数据库的完整性

实验六 数据库的完整性

《数据库系统原理》实验报告六题目:实验六数据库的完整性学号:xxxxxxxxxxxxx 姓名:lrm_1036 日期:2010-12-28一、实验环境:SQL server 2005二、实验目的:1. 熟悉通过 SQL 对数据进行完整性控制;2. 完成上机练习。

三、实验内容与完成情况:1. 实体完整性(1)定义表Student(Sno, Sname, Ssex, Sage, Sdept),并将其中的Sno 属性定义为主码,如图1.1所示;(2)定义表SC(Sno, Cno, Grade),将其中的属性Sno 和Cno 定义为主码,如图1.2所示;图1.1 定义表Student图1.2 定义表SC2. 参照完整性(1)定义表SC 的外码,其中Sno 参照表Student 的主码Sno,Cno 参照表Course 的主码Cno,如图2所示。

图2 定义表SC3. 用户定义完整性(1)在定义表SC 时,Sno、Cno 和Grade 属性都不允许取空值,如图3.1所示;(2)建立部门表DEPT(Dno, Dname, Location),要求部门名称Dname 取值唯一,部门编号Dno 属性为主码,如图3.2所示;(3)定义表Student,属性Ssex 的值只允许取“男”或“女”,如图3.4所示;(4)定义表SC,属性Grade 的值定义在0-100 之间,如图3.3所示;(5)定义表Student,要求当学生性别为男时,其名字不能以MS.打头,如图3.4所示。

图3.1 定义表SC图3.2 定义表DEPT图3.3 定义表SC(Grade)图3.4 定义表Student4. CONSTRAINT 完整性约束命名子句(1)定义表Student,要求学号在0001-1000 之间,姓名不能取空值,年龄小于30,性别只能是“男”或“女”。

要求全部用约束命名子句实现;(2)修改表Student 中的完整性限制,去掉对性别的限制,并将年龄的限制由小于30 改为小于40;图4.1 定义表Student图4.2 修改表Student。

数据库实验6 -数据完整性约束(表约束)

数据库实验6 -数据完整性约束(表约束)

实验六数据完整性约束姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:2022.5【实验目的与要求】1.熟练掌握实体完整性的实现。

2.熟练掌握参照完整性的实现。

3.熟练掌握域完整性的实现。

【实验内容与步骤】实验准备:(1)对于SalesDB数据库,若在产品表、销售表和客户表上已有约束,请先删除之;(2)删除掉表中重复的行。

6.1.实体完整性的实现(1) 对产品表,定义主键约束(用企业管理器实现)。

写出相应过程:(1)在对象资源管理器中的数据库节点下找到数据库SalesDB,找到表Product。

右击-修改(2)按住Ctrl键选中Price和Stocks,右键-设置主键-保存测试:试着对产品表插入一条与原表中数据行具有相同主键值的数据。

给出测试结果:(2)客户表(CUSTOMER),定义名为PK_Cstm的主键约束,设定客户号(Cno)为主键。

(用SQL语句实现,写出相应语句)。

给出相应的SQL语句:alter table Customeraddconstraint PK_Cstm primary key(Cno)给出测试结果:(3)对销售表,定义名为PK_Sales的主键约束,设定主键为(Pno,Cno)的组合(用SQL语句实现,写出相应语句)。

给出相应的SQL语句:alter table Salesaddconstraint PK_Sales primary key(Pno,Cno)给出测试结果:(1)利用企业管理器建立产品表(Product)与销售表(Sales)之间的参照关系,当对主表产品表进行更新和删除操作时,从表Sales采用NO ACTION方式,写出其过程。

给出相应的过程:测试:试着删除主表中与从表有关联的一条记录,而后分别查看主表和从表中数据记录,给出测试结果。

(2)利用SQL语句建立销售表(SALES)与客户表(CUSTOMER)之间的参照关系,设定外键约束名为FK_SC,使得当对主表客户表(CUSTOMER)进行更新和删除操作时,从表销售表(SALES)采用CASCADE(级联)方式处理,给出相应的SQL语句和测试结果。

数据库原理实验报告-数据库的完整性

数据库原理实验报告-数据库的完整性

实验题目四、数据库的完整性一、实验目的1、掌握使用约束实现数据完整性的方法;2、掌握使用触发器实现数据完整性的方法;二、实验内容和要求1、设置主键约束、外键约束、唯一约束、非空约束、CHECK约束等;2、使用图形用户界面创建触发器、使用SQL语言创建触发器,实现完整性控制;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/XP或更高版本;2.数据库管理系统:SQL Server 2005或更高版本;四、实验方法、步骤及结果测试(一)、根据实验一中的基本表,使用约束创建数据完整性。

要求:1、删除teaching中的基本表。

按实验一中的各表的定义,重新创建student表、course1)创建各基本表的先后顺序有什么影响?2)在创建各表过程中,遇到了什么问题,是如何解决的?3、通过“ALERT TABLE”语句,完成下列操作:1)为student表的sname列添加唯一约束,并命名。

2)删除course表的非空约束。

3)为sc表的score列添加约束,取值范围为[0,100]。

4)定义域title_domain,取值为{助教,讲师,副教授,教师},检查SQL Server是否3、检查student表sname列的唯一约束插入新的数据记录对新建的唯一约束进行检查,写出相应的SQL语句,并将检查的执4、检查sc表score列的CHECK约束插入不在定义范围的数据记录检查约束。

写出相应的SQL语句,并将检查执行结果截(二)、通过图形用户界面的方式创建各类约束,定义数据的完整性1、删除sc表的外键约束。

在表设计器中,单击工具栏中的“表和索引属性”按钮,打开2、删除speciality的spname字段唯一约束。

然后在表设计器中,单击工具栏中的“表和3、在表设计器中,单击工具栏中的“表和索引属性”按钮,打开“属性”对话框,在“CHECK 约束”选项中,为teacher表中的title列设置检查约束,定义取值范围为{助教、讲师、副(三)、使用触发器实现数据的完整性1、在student表中创建触发器,实现student和sc表的级联删除。

数据库原理数据的完整性实验报告.

数据库原理数据的完整性实验报告.

***大学计算机科学与信息学院软件工程系上机实验报告《数据库原理》实验报告题目实验8 数据的完整性姓名***班级***日期***实验环境:SQL Server 2000一、实验目的熟悉通过SQL对数据进行完整性控制,通过实验加深对数据完整性的理解。

相关知识触发器是实施复杂完整性的一种机制。

触发器不需要专门的语句调用,当对它所保护数据进行修改时由DBMS自动激活,以防止对数据进行不正确,未授权或不一致的修改。

创建触发器的语法为:CREATE TRIGGER < 触发器> ON <表名>[WITH ENCRYPTION]FOR {[DELETE][,][INSERT][,][UPDATE]}[WITH APPEND][NOT FOR REPLICATION]AS <SQL 语句组>其中:1)WITH ENCRYPTION 为加密选项。

2)DELETE 选项为创建DELETE 触发器。

DELETE触发器的作用是当对表执行DELETE操作时触发器被激活,并从指定表中删除元组,同时将删除的元组放入一个特殊的逻辑表(delete表)中。

触发器的动作可以检查delete表中的数据,以确定下一步该如何处理。

3)INSERT选项为创建INSERT触发器。

INSERT触发器在对指定表中执行插入数据操作时激活,激活后将插入表中的数据拷贝并送入一个特殊的逻辑表(inserted 表)中,触发器会根据INSERT表中的值决定如何处理。

4)UPDATE选项为创建UPDATE触发器。

UPDATE触发器仅在对指定表中进行更新数据操作时激活。

UPDATE触发器激活后把将要被更新的原数据移入delete表中,再将要被更新后的新数据的备份送入inserted表中,UPDATE触发器对delete和inserted表进行检查,并决定如何处理。

5)NOT FOR REPLICATION 选项说明当一个复制过程在修改一个触发器表时,与该表相关联的触发器不能被执行。

数据库完整性实验报告

数据库完整性实验报告

1实验八:数据库完整性1.1实验背景“存储在数据库中的所有数据值均是正确的状态。

如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。

”这是SQL Server2000中给出数据库完整性的解释,但是我们要问两个问题:●什么是数据正确的状态?●如何确保数据是正确的?对于第一个问题,确实很难回答,因为:“世界上所有事物本无正确与错误”,但是一些不符合逻辑的、前后矛盾的、没有满足人们需求的,可以说是“不正确的”。

如:一个人的年龄是“-20岁”,这就是不符合逻辑的;在一个地方,这个人叫“张三”,但是换了个地方却记成“张山”,这就是矛盾;如果一笔订单金额没有达到1万元,却给记成打了8折,实际只能打9折,这就是不满足需求。

造成上述各种不正确的原因是什么呢?无外乎是人们输入错误、业务不熟悉、或者是捣乱分子故意为之。

那么关键问题是我们如何在数据库中预防这种不正确的情况呢?这就是要问的第二个问题。

这需要靠数据库管理系统(DBMS)提供一套完整性约束机制来预防这种情况的发生。

但是人们常说一句话“人无完人,金无足赤”,同样,要完全靠DBMS帮我们防住所有的不正确,本身就是不正确的,这不符合辩证哲学的观点。

这说明DBMS只能是尽可能的预防。

那么人们要深入研究有哪些完整性约束,DBMS应该提供哪些保障机制。

首先,完整性约束主要有以下几种:●实体完整性约束●参照完整性约束●用户定义完整性约束其次,在关系型数据库中保证上述完整性约束的方法有以下几种:表 1 数据库提供的约束我们可以看出主码、外码是我们经常接触到的数据库提供的约束方法,也是最重要的约束。

但是,外码约束并没有我们想象那样简单,即只要把外码关系建立起来就行了,还要考虑到约束强度的问题:表2参照完整性约束的类型与强度那么,用户定义的参照完整性如何实现?一般的DBMS都提供了相应的对策,如:Check约束、Null约束、索引约束、触发器、存储过程等。

SQL Server 中还提到了域约束。

实验六实现数据完整性

实验六实现数据完整性

实验六实现数据完整性实验六实现数据完整性班级:__________ 姓名:________ 学号:____________ 专业:___________一、实验目的1)实现数据完整性的概念及实施数据完整性的重要性。

2)掌握数据完整性的分类。

3)掌握完整性约束的添加、删除方法。

4)掌握通用默认值的创建、实施与删除方法。

5)掌握规则的创建、实施与删除方法。

6)掌握级联删除、级联修改方法。

二、实验内容说明:在所有库文件名与表名取名时,请各位同学在所给定的文件名后加上下划线及学号后四位数字构成自己的实验数据库名与表名。

如:XSGL1_20051101或XSGL1_1101.数据完整性是指数据的正确性、完备性和一致性,是衡量数据库质量好坏的重要标准。

数据完整性分为以下3类:域完整性:是指一个列的输入有效性,如是否允许为空值等。

通常由Check约束来实现。

实体完整性:是指保证表中所有的行惟一。

由主键约束来实现。

参照完整性:也叫引用完整性。

参照完整性总是保证主关键字(被引用表)和外部关键字(引用表)之间的参照关系。

它涉及两个或两个以上表数据的一致性维护。

由外键约束来实现。

1、完整性约束的添加、删除约束是强制数据完整性的首选方法。

约束有6种类型:非空约束、默认值约束、Check 约束、主键约束、外键约束、唯一性约束。

(1)使用企业管理器实施约束1>为表student的birth字段创建检查约束,使输入的生日日期小于系统日期。

添加检查约束操作步骤:删除该检查约束操作步骤:2>为表student的Sdept字段即所在系字段,设置默认值约束,默认值取’CS’。

添加默认约束的操作步骤:删除默认约束的操作步骤:3>(若原有约束,请在企业管理器中删除student表的主键约束)在企业管理器中将sno重设为主键。

(会操作即可,操作步骤可略)4>为student表的sname字段添加唯一性约束。

添加唯一性约束操作步骤:删除唯一性约束操作步骤:5>(若原有约束,请在企业管理器中删除原有的外键约束)在企业管理器中删除SC原有的外键约束,在企业管理器中对sno,cno字段设置外键约束,约束名自已取。

数据库安全性及完整性实验报告

数据库安全性及完整性实验报告

数据库安全性及完整性实验报告
一、实验简介
一般来说,数据库的安全性及完整性是指数据库实际上实施的安全性、有效性、正确性和可靠性的控制。

当下的关注点是能够确保数据的有效性、正确性与可靠性,以及确保数据的安全性与完整性。

除此之外,还必须尽
量减少数据被篡改及窃取的可能性,使得数据向客户端分发及共享时不会
受到攻击。

本文旨在测试数据库的安全性及完整性,以及评估对于数据库
的安全性及完整性的影响。

二、实验目的
实验的目的是测试数据库的安全性及完整性,以及评估对于数据库的
安全性及完整性的影响。

三、实验内容
1、建立测试环境
为了测试数据库的安全性及完整性,首先我们需要建立一个测试环境,该测试环境包括:安装和配置数据库服务器,建立数据库,建立表、字段,插入一些测试数据,建立客户端访问数据库的程序。

2、测试数据库的安全性
在测试阶段,我们需要测试数据库的安全性,这个测试有两个方面:(1)授权:测试用户是否可以正确访问指定的数据库和表,而不受
限制。

(2)身份认证:测试数据库服务器的安全性,检查服务器是否能够正确实施身份认证,保证只有授权用户可以访问数据库。

3、测试数据库的完整性。

数据库安全性与完整性实验

数据库安全性与完整性实验

一、 实验目的与要求目的:使学生加深对数据安全性与完整性实验的理解,并掌握 SQL Server 中有关用户,角色及操作权限的管理方法,熟悉通过 SQL 语句副i 数据进行完整性控制。

要求:1. 数据库的安全性实验,在 SQL Server 企业管理器中设置 SQL server 的安全认证模式,实现 对SQL server 的用户和角色管理,设置和管理数据操作权限。

2. 指出用户和角色的区别二、 实验内容1. 设置SQL server 的安全认证模式(windows 或SQL server 和 Windows ( s )认证模式)、。

2. 登陆的管理 创建一个登录用户3. 数据库用户的管理登录用户只有成为数据库(Database User )后才能访问数据库。

每个数据库的用户信息都存放在 系统表Sysusers 中,通过查看 Sysusers 表可以看到该数据库所有用户的情况。

SQLServer 的数据库中都有两个默认用户: dbo (数据库拥有者用户)和(dba )。

通过系统存储过程或企业管理器可以创建新的数据库用户。

4. 角色的管理创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。

5. 在学生表中定义主键、外键约束6. 在课程表的“课程名”字段上定义唯一约束7. 在选课表的“成绩”字段上定义 check 约束,使之必须大于等于0且小于等于100.“课程号”字段只能输入数字字符8. 定义规则,并绑定到学生表的“性另『字段,使之只能取“男、女”值9. 在学生表中增加出生年月字段,定义缺省,并绑定到学生表的出生日期上,使之只能取当前日 期。

数据库原理及应用实验报告题 目: 数据库安全性与完整性实验 专 业:网络工程班 级:学号:姓名:太原工业学院计算机工程系 2016年 10月15日2..登陆的管理创建一个登录用户sp_addlogin,BBBlogin,,' *, ' BBB*exec sp_addsrvrolemember J BBBlogin* , * sysadmin5三、解决方案和实验结果1.创建一个SQL Server身份验证的登录(命名方式:数据库名称+Login ),默认数据库是新创建的数据库,并为该登录指定sysadmin服务器角色已创堡新登录*〒rn BBBlogin R已瘁加至Q帚色f sysa(iniin n中 *舉据库用户匡性—EBBUser他登录即用户名0J)数据库角色成员Q):BB BloginBBBUser权限的…确走|3•在已有数据库中创建一个数据库用户(命名方式:数据库名称+ User),与上面的登录关联exec sp_grantdbaccess 'BBBlogin' ,' EBBUser^< I 已向'BBBlogiiV授予数IB库访同稅*4•角色的管理创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。

实验6 数据库完整性实验

实验6 数据库完整性实验

《数据库原理与应用》课程实验报告
学院:物光学院班级:07网工姓名:学号:
实验设备:计算机1台实验日期:年月日
实验项目名称数据库完整性
实验目的 1.掌握使用SQL语句定义与删除DEFAULT约束。

2.掌握使用SQL语句定义与删除CHECK约束。

3.掌握使用SQL语句定义与删除PRIMARY KEY约束。

4.掌握使用SQL语句定义与删除FOREIGN KEY约束。

实验要求:
1.熟悉查询分析器的操作,以及执行T-SQL语句的方法。

2.理解数据完整性的概念,熟悉约束的实现方法。

实验内容(包括步骤):
1.实施worker表的“性别”字段默认值为“男”得约束。

2.实施salary表的“工资”字段值限定在0~9999得约束。

3.实施depart表的“部门号”字段值唯一的非聚集索引的约束。

4.为worker表建立外键“部门号”,参考表depart的“部门号”列。

5.删除(1)小题所建立的约束。

6.删除(2)小题所建立的约束。

7.删除(3)小题所建立的约束。

8.删除(4)小题所建立的约束。

调试与结果测试:
代码注释:

――――――――――――以下内容为教师填写―――――――――――――――教师评阅:
成绩:
年月日。

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

实验报告书
课程名《数据库原理与应用A 》题目:数据库完整性
班级:
学号:
姓名:
1、实验内容或题目
数据库完整性
2、实验目的与要求
(1)掌握sql server 2005 数据库完整性的机理,理解并掌握约束。

(2)进行实验操作。

3、实验步骤与源程序
⑴实验步骤
掌握Sql server 2005基本语句的使用,主要是PRIMARY KEY约束、FOREIGN KEY约束、UNIQUE 约束、CHECK约束、NOT NULL。

练习Sql server 2005基本语句的使用。

完成实验报告。

⑵编写源代码
SQLQuery1(例13.1,在test数据库中创建department表,其中指定dno为主键):
use test
go
create table department
( dno int primary key,
dname char(20),
)
go
SQLQuery2(例13.2,使用FOREIGN KEY子句进行相关操作):
use test
go
create table worker
(no int primary key,
name char(8),
sex char(2),
dno int
foreign key references department(dno)
on delete no action,
address char(30)
)
go
SQLQuery3(例13.3,在test数据库中创建table5表,其中指定c1列不能包含重复的值):
use test
go
create table table5
( c1 int unique,
c2 int
)
go
insert table5 values(1,100)
go
/*插入下一行,则会出现错误消息*/
insert table5 values(1,200)
SQLQuery4(例13.4,在test数据库中创建table6表,其中使用CHECK约束限定f2列为0-100分): use test
go
create table table6
( f1 int,
f2 int not null check(f2>=0 and f2<=100)
)
go
/*插入下一行,则会出现错误消息*/
insert table6 values(1,120)
SQLQuery5(例13.5,在test数据库中创建table7表,其主键为c1和c2,将其中插入两个记录,输出这些记录):
use test
go
create table table7
( c1 int,
c2 int,
c3 char(5),
c4 char(10),
constraint c1 primary key(c1,c2)
)
go
use test
insert table7 values(1,2,'ABC1','XYZ1')
insert table7 values(1,2,'ABC2','XYZ2')
go
select*from table7
go
SQLQuery6(例13.6,在test数据库中创建table8表,其中c2指定默认值为10,c3指定默认值为当前日期):
use test
go
create table table8
( c1 int,
c2 int default 2*5,
c3 datetime default getdate()
)
go
use test
insert table8(c1)values(1)
select*from table8
go
SQLQuery7(例13.7,在test数据库中创建table9表,并设置默认值,插入4个记录,输出所有行): use test
go
create table table9
( c1 smallint,
c2 smallint default 10*2,
c3 char(10),
c4 char(10)default'xyz',
)
go
create default con5 as'China'
go
exec sp_bindefault con5,'table13.c3'
go
insert into table9(c1)values(1)
insert into table9(c1,c2)values(2,50)
insert into table9(c1,c3)values(3,'Wuhan')
insert into table9(c1,c3,c4)values(4,'Beijing','Good')
select*from table9
go
SQLQuery8(例13.8,创建名为rule1的规则,限定输入的值在0-10之间):
use test
go
create rule rule1 as @c1 between 0 and 10
go
SQLQuery9(例13.9,创建名为rule2的规则,限定输入到该规则所绑定的列中的实际值只能是该规则列中的值):
use test
go
create rule rule2 as @c1 in('2','5','8') go
SQLQuery10(绑定规则):
use test
go
exec sp_unbindrule'rule1','table9.c1' go
SQLQuery11(例13.10,解除绑定规则):
use test
go
exec sp_unbindrule'table9.c1'
go
SQLQuery12(例13.11删除规则):
use test
go
drop rule rule1
go
4、测试数据与实验结果(可以抓图粘贴)13.1PRIMARY KEY约束:
13.2FORIGN KEY约束:
13.3UNIQUE约束:
13.4CHECK约束:
13.5列约束和表约束:
13.6在创建表时指定默认值:
5、结果分析与实验体会
这次实验练习的是数据库完整性,由于有了之前T-SQL语言的学习经验,理解起来好很多,在老师的演示下,我对数据库的完整性有了更深刻的理解,同时对约束、默认值、规则的相关定义有了更深入的认识,和数据库完整性的目的:确保数据库中的数据
的一致性和完整性。

并能较熟练的使用T-SQL语句进行有关方面的操作。

相关文档
最新文档