数据库实验报告2-SQL Server完整性验证
数据库安全性和完整性实验【模板范本】
实验9:数据库安全性实验一、实验目的加深对数据库安全性的理解,并掌握SQL Server中有关用户、角色及操作权限的管理方法.二、实验内容1.数据库的安全性实验。
在SQL Server企业管理器中,设置SQL Server的安全认证模式,实现对SQL Server的用户和角色的管理,设置和管理数据操作权限.三、实验原理和步骤1.设置SQL Server的安全认证模式,选择混合模式。
右键服务器属性—安全性:选择SQL Server和Windows身份验证模式.重启服务,生效。
2.账号:sa账号登录3.登录帐号的管理1)将Windows帐号添加到SQL Server 2005中创建操作系统用户-4.数据库用户的管理1)dbo用户;查看banking数据库的dbo用户,查看用户权限。
2)U1用户;创建banking数据库的U1用户,查看用户权限。
5.权限管理1)赋予所创建的U1用户db_datareader角色,查看用户权限2)赋予所创建的U1用户db_datawriter角色,查看用户权限3)赋予所创建的U1用户db_owner角色,查看用户权限4)两种方法赋予所创建的U1用户对banking数据库表customer的select权限,验证并写出sql语句5)两种方法赋予所创建的U1用户对banking数据库表branch的select和对branch_name修改的权限,验证并写出sql语句6)把对loan表的update权限授予所创建的U1用户用户,并允许将此权限再授予其他用户,验证并写出sql语句7)两种方法回收所创建的U1用户对banking数据库表customer的select权限,验证并写出sql语句8)两种方法回收所有用户对banking数据库表loan的update权限,验证并写出sql语句四、实验报告要求要求写出如下设计报告:1.用Transact—SQL写出实验操作的语句2.实验步骤和实验结果。
数据库完整性实验报告
北京理工大学珠海学院实验报告ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级学号姓名指导教师张申勇成绩实验题目数据库完整性实验时间 2012.4.20一实验目的1. 熟悉通过SQL对数据进行完整性控制;2. 针对具体应用要求,设计相应的完整性约束。
二实验工具SQL Server 2005利用SQL Server 2005 SSMS及其SQL查询编辑器。
三实验内容和要求使用SQL对数据进行完整性控制(3类完整性、CHECK短语、CONSTRAIN 子句、触发器)。
用实验证实,当操作违反了完整性约束条件时,系统是如何处理的。
根据以下要求认真填写实验报告,记录所有的实验用例。
具体操作内容:创建以下两个关系模式,并分别插入相应的数据。
职工(职工号,姓名,年龄,职务,工资,部门号)其中职工号为主码;部门(部门号,名称,经理名,地址,电话号码),其中部门号为主码;(1)使用SQL语言定义这两个关系模式,并完成以下完整性约束条件的定义;(a)定义每个模式的主码;(b)定义参照完整性;(c)定义职工的年龄不能小于18岁,并且不能超过60岁;(d)职工的姓名不能为空;(e)职工的工资不能为空,且不能小于800;(f)部门名称不能为空且不能重复,定义约束名为UK_dName;(2)使用SQL语言分别向两个表中插入7行记录,验证上面的各种约束条件;(3)将职工的年龄改为不能小于16岁,并且不能大于65岁;(4)定义一个表tbl_Emp_Log(eNO, eSalary, Username, ModiDate);在职工表上定义修改和插入数据的触发器,将插入的职工号和工资数据填入到Emp_log表中,并记录操作的用户和插入时间;如果修改了职工的工资,也把职工号和修改后的工资数据填入到Emp_log表中,并记录操作的用户和插入时间。
使用SQL语句向职工表中插入数据和修改工资,验证触发器的效果。
数据库实验报告
实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。
实验内容:具体包括如下三部分。
一、熟悉上机环境。
客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。
具体包括:1.了解SQL Server 环境。
鼠标点击开始,进入“Microsoft SQL Server→企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。
点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。
因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。
2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名和口令,进入SQL查询分析器。
如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。
3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。
二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。
1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的关系模式CREA TE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREA TE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno) );CREA TE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) );4在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。
数据完整性在SQL SERVER中的实现(自己做的)
(6)例: CREATE TABLE S_B (学号 CHAR(5), 书号 CHAR(5), 借阅时间 DATATIME, 归还时间 DATATIME, CONSTRAINT P_Y PRIMARY KEY (学号, 书号))
1)列级、表级区别:
在列级定义同时定义的约束称为列级完整性约束定义; 作为表的独立的一项定义的完整性约束称为表级完整性 约束。 如果完整性约束涉及到该表的多个属性列,必须定义在 表级上,否则既可以定义在列级也可以定义在表级。 简而言之: 列级约束:列级约束是行定义的一部分,只能应用于一 列上。 表级约束:表级约束是独立于列的定义,可以应用在一 个表中的多列上
4、用户定义的完整性
(1)用户定义的完整性是应用领域需要遵守 的约束条件,其允许用户定义不属于其他任何 完整性分类的特定业务规则。所有的完整性类 型都支持用户定义完整性。
(2)常见的实现机制: 规则(Rule)、创建数据表时所有约束 (Constraint)、触发器(Trigger)、存 储过程(Stored Produre)
2、参照完整性
(1)参照完整性是指在两个表的主码和外码之 间数据的完整性,含义包括: 参照完整性保证被参照表和参照表之间 数据的一致性 可以防治数据丢失或者无意义的数据 可以禁止在从表中插入被参照表中不存 Байду номын сангаас的关键字的记录
(2)定义FOREIGN KEY 约束
语法: Create table myTB1 ( id nvarchar(32) not null primary key, name nvarchar(32), foreign key(id) references myTB(id) )
(3)定义D EFAULT 约束
实验五 SQL SERVER 完整性与安全性 实验报告
实验五SQL SERVER 完整性与安全性一、实验目的掌握SQL SERVER数据访问控制策略和技术,SQL SERVER数据库管理系统使用安全帐户认证控制用户对服务器的连接,使用数据库用户和角色等限制用户对数据库的访问。
二、实验内容1.在服务器级别上创建三个以SQL Server身份验证的登录名,登录名称自定。
2.分别为三个登录名在“gongcheng”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“gongcheng”数据库。
3.授予用户John创建表和视图的权限。
grant create table,create viewto John在“gongcheng”下,安全性—John—属性,选择安全对象,搜索特定对象,选择“gongcheng”表,在权限中选择“创建表”和“创建视图”,如图:即可赋予John“创建表”和“创建视图”的权限。
4.完成以下授权:(1)把对表S的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。
grant inserton Sto tomwith grant option(2)用户Mary对S,P,J三个表有SELECT和INSERT权力grant select,inserton Sto Marygrant select,inserton Pto Marygrant select,inserton Jto Mary(3)用户Tom对SPJ表有DELETE权力,对QTY字段具有UPDA TE权力。
grant delete,update(qty)on spjto Tom(4)把对用户Tom授予的所有权力收回revoke inserton Sfrom Tom cascaderevoke delete,update(qty)on SPJfrom Tom(5)对用户Mary增加SPJ表的SELECT权力。
grant selecton spjto Mary5.两个同学为一组(自由搭配),在自己的数据库服务器上分别为对方创建一个登录名,并授予一定权力,然后用对方为自己创建的登录名和对方的数据库服务器建立连接,进行登录,对对方的数据库服务器进行操作。
广东海洋大学数据库实验报告
实验四数据的完整性、安全性一、实验目的1.掌握数据安全性和完整性的概念,以及如何保证数据库中数据安全及完整性。
2.掌握SQL Server中有关用户、角色及操作权限的管理方法.3.学会创建和使用规则、缺省。
二、实验内容1 数据库的安全性实验,通过SSMS设置SQL Server的安全认证模式.实现对SQL Server 的用户和角色管理,设置和管理数据操作权限.2数据库的完整性实验。
使用Transact-SQL设计规则、缺省、约束和触发器。
三、实验要求1.数据的完整性实验⑴用SQL语句创建一学生成绩数据库(XSCJ),包括学生(XSQK)、课程(KC)和成绩表(XS_KC):学生情况表(XSQK)列名数据类型长度是否允许为空值学号Char 6 N姓名Char 8 N性别Bit 1 N出生日期smalldatetime 2专业名Char 10所在系Char 10联系电话char 11 Y课程表(KC)列名数据类型长度是否允许为空值课程号Char 3 N课程名Char 20 N教师Char 10开课学期Tinyint 1学时Tinyint 1学分Tinyint 1 N成绩表(XS_KC)列名数据类型长度是否允许为空值学号Char 6 N课程号成绩CharSmallint32N⑵数据的实体完整性实验用SSMS分别将学生情况表(XSQK)的学号字段、课程表(KC)的课程号字段设置为主健②用T-SQL语句将成绩表(XS_KC)的学号、课程号字段设置为主健⑶数据的参照完整性实验①用SSMS为成绩表(XS_KC)创建外键FK_ XSQK_ID,外键FK_ XSQK_ID参照学生情况表(XSQK)表的学号②用T-SQL语句成绩表(XS_KC)创建外键FK_ KC_ID,外键FK_ KC _ID参照课程表(KC)表的课程号⑷数据的用户定义完整性实验用T-SQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束②用SSMS为学生情况表(XSQK)的性别列创建一个检查约束,使得性别的值为男或女③用T-SQL语句为成绩表(XS_KC)的成绩列创建一个检查约束,使得成绩的值在(0~100)之间④用SSMS语句课程表(KC)的学时列创建一个缺省约束,缺省值为60⑤用T-SQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为22.将如下数据分别转换成文本数据或Excel的格式,并分别将其导入数据库的各个表中:学生情况表(XSQK):课程表(KC ):成绩表(XS_KC ):学号 姓名 性别 出生日期 专业 所在系 联系电话 020101 杨颖 0 1980-7-20 计算机应用 计算机 020102 方露露 0 1981-1-15 计算机应用 计算机 020103 俞奇军 1 1980-2-20 信息管理 计算机 020104 胡国强 1 1980-11-7 信息管理 计算机 020105 薛冰 1 1980-7-29 水利工程 水利系 020201 秦盈飞 0 1981-3-10 电子商务 经济系 020202 董含静 0 1980-9-25 电子商务 经济系 020203 陈伟 1 1980-8-7 电子商务 经济系 020204陈新江11980-7-20房建水利系课程号 课程名教师 开课学期 学时 学分 101 计算机原理 陈红 2 45 3 102 计算方法 王颐 3 45 3 103 操作系统 徐格 2 60 4 104 数据库原理及应用 应对刚 3 75 5 105 网络基础 吴江江 4 45 3 106 高等数学 孙中文 1 90 6 107 英语 陈刚 1 90 6 108VB 程序设计赵红韦37053. 理解默认值的概念和作用①用语句创建名为Xi_default,值为“计算机系”的默认值②将默认值Xi_default绑定到学生表中的所在系的属性列上③解除学生表所在系的属性列上的默认值学号课程号成绩④删除默认值Xi_default注:创建默认值的格式:create default 默认值名as ‘默认值’默认值绑定的格式:sp_bindefault 默认值名, <’表名.列名’︱自定义数据类型名称>解除默认值绑定格式:sp_unbindefault <’表名.列名’︱自定义数据类型名称>删除默认值格式:Drop default 默认值名4.理解规则的概念和作用①用语句创建规则“rule_kkxq”,用以限制插入该规则所绑定的列中的值只能取1、2、3、4、5、6②将“rule_ kkxq”规则绑定到课程表的开课学期属性上,并执行以下语句,看看能否正常执行,为什么:Insert into 课程表Values(109,'C语言','李方',8,64,4)不能正常执行,因为数值8不在规则rule_kkxq所绑定的数据范围内③若不解除规则,能否将规则rule_ kkxq直接删除?不能,需先解除规则才能删除规则rule_ kkxq注:创建规则的格式:create rule 规则名as @列名约束条件规则绑定的格式:sp_bindrule 规则名, <’表名.列名’︱自定义数据类型名称>解除规则绑定格式:sp_unbindrule <’表名.列名’︱自定义数据类型名称>删除规则格式:Drop rule 规则名5.数据的安全性实验:(1)设置身份验证模式①写出查看当前SQL Server身份验证模式的过程,即查看当前SQL Server系统到底是采用Windows身份验证还是混合身份验证模式。
数据库的完整性和安全性实验报告
信息工程学院实验报告课程名称:《数据库原理》实验项目名称:数据库的完整性和安全性一、实 验 目 的:(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)。
SQL-Server-数据库的完整性和安全管理
实验(shíyàn)6 SQL Server 数据库的完整性和安全(ānquán)管理专业(zhuānyè)班级学号姓名(xìngmíng) 报告(bàogào)日期 11.13 .实验类型:●验证性实验○综合性实验○设计性实验实验目的:学习构建SQL Server 2012 数据库的完整性约束(实体完整性,参照完整性,用户自定义完整性)实验内容和步骤:1.创建和打开SQL Server 2012数据库。
2.使用SQL Server 2012数据表的设计器设计并创建表, 对表添加主键, 对表添加用户定义的约束条件, 设置字段的非空约束。
3.使用SQL Server 2012在表上查询的查询功能(人机会话查询和手工录入查询命令)。
4. 在SQL Server 2012数据库中建立表间联结5. 在SQL Server 2012数据库中建立表间建立参照关系。
参考.叶符明王松主编. SQL Server 2012 数据库基础及应用.北京理工大学出版社,2013.10第83-106页实验报告:根据实验情况和结果, 撰写并递交实验报告。
实验总结(学会了......; 掌握了......; 训练了......; 发现了......; 今后学习中......有待提高。
)电子报告word文件命名规则:专业班级-学号后两位-实验X-姓名.doc, 如信息123班学号为201212030315的郭海涛同学实验7报告word文件命名则应是:信息123-15-实验7-郭海涛.doc, 其中 .doc是Word文件扩展名。
实验内容1.创建和打开SQL Server 2012数据库2.使用SQL Server 2012数据表的设计器设计并创建表, 对表添加(tiān jiā)主键, 对表添加用户定义的约束条件, 设置字段的非空约束。
3.使用SQL Server 2012在表上查询的查询功能(人机会(jīhuì)话查询和手工录入查询命令)。
SQL SERVER数据库实验报告(详细)
数据库原理及应用实验报告学号:姓名:实验1一、实验目的:熟悉SQL Server使用界面,掌握使用SSMS和SQL语句创建并设置数据库。
二、实验原理:1.使用SSMS创建数据库2.创建数据库语句:CREATE DATABASE 数据库名[ON [PRIMARY] //指定一个文件为主要文件[<文件格式>[,…n]][,<文件组格式>[,…n]] ][LOG ON {<文件格式>[,…n]}]<文件格式>::=([NAME=逻辑文件名,]FILENAME=‘操作系统下的文件名和路径’[,SIZE=文件初始容量][,MAXSIZE={文件最大容量|UNLIMITED}][,FILEGROWTH=递增值])[,…n]<文件组格式>::=FILEGROUP 文件组名<文件格式>[,…n]3.修改数据库语句:ALTER DATABASE 数据库名{ADD FILE <文件格式>[,…n] [TO FILEGROUP 文件组名]|ADD LOG FILE<文件格式>[,…n]|REMOVE FILE 逻辑文件名|ADD FILEGROUP 文件组名|REMOVE FILEGROUP 文件组名|MODIFY FILE<文件格式>|MODIFY FILEGROUP 文件组名文件组属性}<filespec>::=(NAME=逻辑文件名[,FILENAME=‘实际文件名和路径’][,SIZE=容量][,MAXSIZE={最大容量|UNLIMITED}][,FILEGROWTH=递增量])三、实验内容:1. 使用SQL语句完成下题(1)使用CREATE DATABASE语句创建一个名为“st”数据库,要求①主要数据文件:逻辑文件名为“stdata1”,实际文件名为“stdata1.mdf”②事务日志文件:逻辑文件名为“stlog1”,实际文件名为“stlog1.ldf”③初始容量均为3MB,最大容量均为10MB,递增量均为1MB。
数据库完整性实验报告
数据库完整性实验报告第一篇:数据库完整性实验报告实验报告一、实验题目数据库完整性二、实验要求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。
SQLServer的数据库完整性和实现方法
2015
数据库的完整性:数据完整性就是指 存储在数据库中的数据正确无误并且相关 数据具有一致性。数据库中是否存在完整 的数据关系到数据库系统能否真实的反映 现实世界。它是衡量数据库中数据好坏的 一种标志,是确保正确的数据被存放在正 确的位置的一种手段。例如:学校的学生 学号必须是唯一的;性别只能为男或女; 学生所在的系必须是学校已开设的系等。
触发器的用途是维护行级数据的完整性,它不能返回结果集。与CHECK 约束相比,触发器能强制实现更加复杂的数据完整性,能执行操作或 级联操作,能实现多行数据间的完整性约束,能维护非正规化的数据。
you
放映结束 感谢各位观看!
谢 谢!
让我们共同进步
2.数据完整性的两种方式
(1)声明数据完整性 声明数据库完整性通过在对象定义、系统本身自动 强制来实现。声明数据完整性包括各种约束、默认 和规则。 (2)过程数据完整性 过程数据完整性通过使用脚本语言定义,系统在执 行这些语言时,强制完整性实现。过程数据完整性 包括触发器和存储过程等。
3.实现数完整性的具体方法
默认和规则与约束相比,功能较低但开支大。所以,如果默认和规则 可以使用约束方法表示,要尽可能采用约束数据完整性方法处理。
(4)触发器
触发器是一个特殊的存储过程。在创建触发器时通过CREATE TRIGGER 语句定义触发器对应的表、执行的事件和触发器的指令。当发生事件 后,会引发触发器执行,通过执行其指令,保证数据完整性。
1.数据库完整性的分类
(1)域完整性
域完整性为列级和元组级完整性。它为列或列组指定一个有效的数据 集,并确定该列是否允许为空。域完整性要求向表中指定列输入的数 据必须具有正确的数据类型、格式以及有效的数据范围。实现域完整 性的方法主要有CHECK约束、外键约束、默认约束、非空定义、规则以 及在建表时设置的数据类型。
SQL Server的数据库完整性及实现方法
插入数据时,如果没有明确提供列值,则用默认值作 为该列的值。
指定某个列或列组可以接受的范围,或指定数据应满 足的条件。 指定主码,确保主码值不重复,并不允许主码为空值。 指出数据应具有唯一值,防止出现冗余。 定义外码、被参照表和主码。 约束类型和完整性功能
3.实现数完整性的具体方法
(2)声明数据完整性约束的定义 声明数据完整性约束可以在创建表和修改表语句中定 义。约束分列级约束和表级约束两种:列级约束定义时, 直接跟在列后,与列定义子句之间无“,”分隔;元组级 约束和表级约束要作为语句中的单独子句,与列定义子句 或其他子句之间用“,”分隔。
1sqlserver约束的类型约束类型和完整性功能完整性类型约束类型完整性功能描述域完整性默认插入数据时如果没有明确提供列值则用默认值作检查指定某个列或列组可以接受的范围或指定数据应满足的条件
SQL Server的数据库完整性及实现方法
2015
数据库的完整性:数据完整性就是指 存储在数据库中的数据正确无误并且相关 数据具有一致性。数据库中是否存在完整 的数据关系到数据库系统能否真实的反映 现实世界。它是衡量数据库中数据好坏的 一种标志,是确保正确的数据被存放在正 确的位置的一种手段。例如:学校的学生 学号必须是唯一的;性别只能为男或女; 学生所在的系必须是学校已开设的系等。
ቤተ መጻሕፍቲ ባይዱ
you
CREATE TABLE 民族
( 民族代码 民族名称 GO char(2) CONSTRAINT pk_mzdm PRIMARY KEY, varchar(30) NOT NULL)
此例题就是建立了一个列级主键
3.实现数完整性的具体方法
(3)默认和规则 默认(DEFAULT)和规则(RULE)都是数据库对象。当它们被创建后,可以 绑定到一列或几列上,并可以反复使用。当使用INSERT语句向表中插 入数据时,如果设有为绑定有DEFAULT的列指定数据,系统就会将 DEFAULT指定的数据插入;如果绑定有RULE的列,则所插入的数据必须 符合RULE的要求。 默认和规则与约束相比,功能较低但开支大。所以,如果默认和规则 可以使用约束方法表示,要尽可能采用约束数据完整性方法处理。 (4)触发器 触发器是一个特殊的存储过程。在创建触发器时通过CREATE TRIGGER 语句定义触发器对应的表、执行的事件和触发器的指令。当发生事件 后,会引发触发器执行,通过执行其指令,保证数据完整性。 触发器的用途是维护行级数据的完整性,它不能返回结果集。与CHECK 约束相比,触发器能强制实现更加复杂的数据完整性,能执行操作或 级联操作,能实现多行数据间的完整性约束,能维护非正规化的数据。
数据库原理实验报告-数据库的完整性
实验题目四、数据库的完整性一、实验目的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 中还提到了域约束。
02_数据完整性实验(SQL Server)
第3章实验数据完整性实验(SQL Server) 实验目的:加深对数据完整性的理解。
实验内容:数据库的完整性设置。
实验步骤:可视化界面的操作方法:一、实体完整性1.将student表的sno字段设为主键,如图1所示。
图12.将sc表的sno和cno设置为主键,如图2所示:图2二、域完整性3.将ssex字段设置为只能取“男”,“女”两值,如图3所示。
图3三、参照完整性4.将student表和sc表中的sno字段设为参照,见图6.4。
图4命令方式操作方法:一、实体完整性1.将student表的sno字段设为主键:当student表已存在则执行:alter table student add constraint pk_sno primary key (sno) 当student表不存在则执行:Create table student(sno CHAR(5) primary key ,sname CHAR(10),ssex CHAR(2) ,sage int,sdept CHAR(4))2.添加一身份证号字段,设置其惟一性。
Alter table student add id char(18) unique (id)3.将sc表的sno和cno设置为主键:当sc表已存在则执行:alter table sc add constraint PK_SnoCno primary key (sno,cno)当sc表不存在则执行:Create table sc(sno CHAR(5),cno CHAR(2),grade INT NULL,constraint PK_SnoCno primary key (sno,cno))二、域完整性4.将ssex字段设置为只能取“男”,“女”两值:当student表已存在则执行:alter table student add constraint CK_Sex check (ssex in ('男' ,'女'))当student表不存在则执行:Create table student(sno CHAR(5) primary key ,sname CHAR(10),ssex CHAR(2) check (ssex in ('男' ,'女')) ,sage int, sdept CHAR(4))5.设置学号字段只能输入数字:alter table student add constraint CK_Sno_Format check (sno like '[0-9][0-9][0-9][0-9][0-9]') 6.设置身份证号的输入格式:alter table student add constraint CK_ID_Format check((id like '[0-9][0-9][0-9][0-9][0-9][0-9] [1-2][0-9][0-9][0-9][0-1] [0-9][0-3][0-9] 0-9][0-9] [ [0-9]_') or (id like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]')) 7.设置18位身份证号的第7位到第10位为合法的年份(1900-2050)alter table student add constraint CK_ID_Format2 check( not len(id)=18or ( (convert(smallint,substring(id,7,4) )>=1900) and(convert(smallint,substring(id,7,4) )<=2050)) )8.设置男生的年龄必须大于22,女生的年龄必须大于20。
sql server 实验报告
sql server 实验报告SQL Server 实验报告引言:SQL Server 是一种关系型数据库管理系统,广泛应用于企业和组织中的数据管理和处理。
本篇实验报告将探讨 SQL Server 的一些关键功能和特性,并通过实验来验证其性能和可靠性。
一、SQL Server 的基本概念和架构SQL Server 是由 Microsoft 公司开发的一种关系型数据库管理系统。
它采用了客户端/服务器架构,其中客户端应用程序通过网络连接到 SQL Server 数据库服务器,然后发送 SQL 查询语句并接收返回的结果。
SQL Server 的架构包括以下几个核心组件:1. 数据库引擎:负责处理数据库的存储、查询和事务管理等核心功能。
2. Analysis Services:用于数据分析和数据挖掘。
3. Integration Services:用于数据集成和转换。
4. Reporting Services:用于生成和发布报表。
二、SQL Server 的性能优化SQL Server 提供了许多性能优化的功能和技术,以确保数据库的高效运行。
以下是一些常用的性能优化方法:1. 索引优化:通过创建适当的索引来加快查询速度。
2. 查询优化:通过编写优化的查询语句和使用查询执行计划来提高查询效率。
3. 数据分区:将大型表分割为多个较小的分区,以提高查询和维护的效率。
4. 内存管理:通过适当配置内存来提高数据库的性能。
5. 并发控制:通过合理设置事务隔离级别和锁定策略来提高并发性能。
三、SQL Server 的安全性SQL Server 提供了多种安全性功能,以保护数据库的机密性和完整性。
以下是一些常用的安全性措施:1. 访问控制:通过设置用户权限和角色来限制对数据库的访问。
2. 数据加密:通过使用加密算法对敏感数据进行加密,以防止未经授权的访问。
3. 审计跟踪:记录和监控对数据库的访问和操作,以便及时发现异常行为。
SQL-Server课内实验报告
中国地质大学江城学院数据库技术与应用—SQL Server课内实验报告姓名徐新胜班级学号2611110115指导教师宋亚岚2012年11月20日目录实验1 熟悉SQL Server 2000环境 (3)实验2 数据库管理(2学时) (5)实验3 数据库的查询管理 (9)实验4 视图管理 (13)实验1 熟悉SQL Server 2000环境目的和要求(1)掌握SQL Server 服务器的安装(2)掌握企业管理器的基本使用方法(3)掌握查询分析器的基本使用方法(4)对数据库及其对象有一个基本了解实验准备(1)了解SQL Server 2000各种版本安装的软硬件要求(2)了解SQL Server 支持的身份验证模式(3)SQL Server 各组件的主要功能(4)对数据库、表、数据库对象有一个基本了解(5)了解在查询分析器中执行SQL 语句的方法实验内容1.安装SQL Server 2000根据软硬件环境,选择一个合适版本的SQL Server 2000。
2. 利用企业管理器访问系统自带的pubs 数据库。
(1)启动SQL Server 服务管理器。
(2)以系统管理员身份登录到企业管理器并访问pubs数据库。
(3)在企业管理器的目录树中展开文件夹→展开pubs 数据库图标,则将列出该数据库所有对象,如表、视图、存储过程、默认、规则等。
(4)选中pubs 下的“表”图标,将列出pubs 数据库所有的表(系统表和用户表),在此以用户表publishers 为例,打开该表,查看其内容。
(5)在表的尾部插入记录(9943,zhang,Beijing,null,china)和(1408,li,shanghai,null,china),会发生情况?(6)在表中删除步骤(5)插入的记录。
3.查询分析器的使用(1)在查询分析器对象浏览器的的目录树中展开pubs 数据库图标,则将列出该数据库的所有对象,如表、视图、存储过程等。
数据库实验报告数据的完整性
安康学院电子与信息工程系实验报告(供不用记录实验数据、以作品的形式体现、注重操作练习过程的实验或上机课程参考)课程名称数据库原理及应用实验名称数据的完整性成绩姓名学号班级11级计算机科学与技术同组人员实验台号实验日期1.实验目的:(5分)(1)理解数据库完整性约束的概念;(2)掌握SQL Server数据完整性的实现方法。
2.实验内容:(15分)(1)将教学管理数据库中学生表的学号字段,课程表的课程号字段设置为主码,并验证。
(2)将教学管理数据库中选课表的学号和课程号字段设置为主码,并验证。
(3)将学生表中的姓名字段设置为唯一约束,并验证。
(4)给学生表的性别列增加检查约束,要求性别只能为“男”或“女”,给年龄列增加检查约束,要求年龄在18到20岁之间,并验证。
(5)给学生表的性别列增加默认值约束。
(6)给选课表的学号和课程号字段分别创建外码约束,并验证。
3.实验过程:(60分)(1)将教学管理数据库中学生表的学号字段,课程表的课程号字段设置为主码,并验证。
设置学生表中学号字段为主键设置课程表中课程号为主键学生表信息在学生表中添加学号为*****的学生课程表信息在课程表中添加课程号为1的学生(2)将教学管理数据库中选课表的学号和课程号字段设置为主码,并验证。
将选课表的学号和课程号字段设置为主码选课表信息在课程表中插入学号,课程号为98001,1的学生(3)将学生表中的姓名字段设置为唯一约束,并验证。
(5)给学生表的性别列增加默认值约束。
插入之后信息,默认为“男”(6)给选课表的学号和课程号字段分别创建外码约束,并验证。
学生表信息课程表信息学生表中没有的学号,课程表中有的课程号学生表中有的学号,课程表中没有的课程号4.实验总结:(20分)通过本次实验,理解了数据库完整性约束的概念,并且通过实验验证了数据库的完整性。
验证了实体完整性,参照完整性,以及用户自定义完整性并且加深了理解。
更加深刻的了解到了数据库,以及数据完整性的重要性。
SQL Server数据库实验报告(模板)
SQL Server数据库实验报告专业班级姓名1. 实验题目:实验二第3题使用图形界面SSMS创建数据库1.1 实验目的1.掌握使用SSMS图形化界面创建、修改、打开、收缩与删除数据库。
2.掌握使用T-SQL语句创建、修改、打开与删除数据库。
3.熟练查看数据库中的各种对象4.掌握分离与附加数据库1.2 实验要求创建数据库stuinfo,要求如下。
①包含三个数据文件(MF.mdf、F1.ndf、F2.ndf)和两个日志文件(L1.ldf、L2.ldf),②F1.ndf和F2.ndf放到自定义的文件组G1中,③数据文件存储到D:\SQLDATA,日志文件存储到E:\SQLLOG。
文件的其他属性自定义。
1.3 T-SQL程序1.4 运行结果2. 实验题目:实验二第4题使用Transact-SQL语句创建数据库2.1实验目的1.掌握使用SSMS图形化界面创建、修改、打开、收缩与删除数据库。
2.掌握使用T-SQL语句创建、修改、打开与删除数据库。
3.熟练查看数据库中的各种对象4.掌握分离与附加数据库2.2实验要求删除第3题中的数据库,再使用命令CREAT DATABASE创建第3题中的数据库。
2.3T-SQL程序CREATE DATABASE stuinfoON PRIMARY(NAME=MF,FILENAME='D:\SQLDATA\MF.MDF'),FILEGROUP G1(NAME=F1,FILENAME='D:\SQLDATA\F1.NDF'),(NAME=F2,FILENAME='D:\SQLDATA\F2.NDF')LOG ON(NAME=L1,FILENAME='D:\SQLLOG\L1.LDF'),(NAME=L2,FILENAME='D:\SQLLOG\MF.LDF')2.4运行结果3. 实验题目:实验二第5题修改数据库3.1实验目的1)掌握使用SSMS图形化界面创建、修改、打开、收缩与删除数据库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JNU本科实验报告专用纸
课程名称数据库上机实验成绩评定实验项目名称SQL Server完整性验证指导教师
实验项目编号08060113 实验项目类型验证性实验地点C305 学生姓名学号
学院电气信息学院系专业计算机科学与技术实验时间2011年10月30日下午~月日午温度℃湿度(一)实验目的
熟悉通过SQL对数据进行安全性控制,完成作业的上机练习。
(二)实验内容和要求
使用SQL对数据进行安全性控制,包括授权和权力回收。
操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否确实丧失了收回的数据操作的权力。
根据以下要求认真填写实验报告,记录所有的实验用例。
(三)主要仪器设备
仪器:计算机
实验环境:Windows7 +SQL Server2008
(四)实验内容与完成情况
1.创建新登录名以及用户,对用户进行授权。
(1) 先在图形用户界面中创建一个数据库,然后对于这个数据库创建所需要用到的各个用户以及相关的关的登录名。
(参考课本习题,假定有数据库company,库中有两个表职工表a和部门表b)。
创建登录名和创建用户
(2)用图形用户界面尝试对用户进行权限赋予:
a)赋予用户王明对两个表有Select和Insert的权力。
b)赋予用户李勇对职工表具有Select权力,对工资字段具有更新权力:
在安全性下可查看用户当前的权限
(3)接下来使用SQL语句授权对用户进行授权
验证结果如下图,我们可以看到用户李勇的权限增添了插入和删除选项
(4)最后再重新建一个用户昊民,通过SQL语句赋予对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。
验证如下:
2.收回权限并加以验证。
(1)用SQL语句收回用户李勇对表a的插入、删除权限;收回用户王明对表b的选择、插入权限:
验证结果如下图:可以用户李勇没有了插入、删除权限;而用户王明原来具有a、b表的选择、插入权限,收回用户王明对表b的选择、插入权限后,表b不再是王明的安全对象。
(李勇的权限显示)(王明的权限显示)
JNU本科实验报告专用纸(附页)
(五)出现的问题与解决方法
本次实验数据量不大,只有部分关于SQL语句的调试问题。
查询SQL语句帮助后解决,在此不再敖述。
(六)实验结果与结论心得
实验结果如以上截图所示。
通过本次实验,我了解了基本的赋予权限和收回权限的相关操作,能通过SQL语句对数据进行安全性控制,对于数据表与用户间的权限和安全性有了更深一步的理解和认识。