实验五 数据库完整性一、实验目的掌握SQL Server2000中有关约.

合集下载

数据库SQL Server 2000实验报告

数据库SQL Server 2000实验报告

数据库原理及应用实验报告实验题目:定义表和数据库的完整性和表数据的插入,修改和删除系:经济学班级:、、、、、、、、、、学号:、、、、、、、、、、、姓名:、、、、、、、、任课教师:、、、、、、、、、、时间:2012年11月一、实验目的(1)了解SQL Server 2000的基本数据类型,空值的概念,以及表的结构特点。

(2)学会使用T-SQL语句和企业管理器创建表结构和修改表结构。

(3)学会使用SQL Server 2000提供的数据完整性功能,并在创建表是定义表的数据的完整性。

通过实验进一步理解数据完整性的概念和分类。

(4)掌握使用T-SQL语句和企业管理器对数据表进行插入,修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。

通过本实验,要熟练掌握INSERT,UPDATE,DELETE语句和使用方法。

二、实验环境装有SQL Server 2000的实验机。

三、实验前准备1.要明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。

2.创建数据库必须要确定数据库名、所有者、数据库大小和存储数据的文件。

3.确定数据库包含哪些表以及包含的各表的结构并且弄明白各表之间的关系。

还要了解SQL Server 的常用数据类型,以创建数据库的表。

4.了解常用的创建数据库和表的方法。

企业管理器创建和语句创建都要会。

5 .要会进行数据的插入、删除、修改的操作方法。

四、实验内容(1)用企业管理器在数据库中创建名称为“020李”的数据库,在其中创建学生表student,课程表course,学生选课表sc,根据课本中的表结构创建后,如下图所示Student表Sc表Course表(2)用T-SQL语句在“020李”数据库中创建客户基本信息表customers,货品信息表goods,订单信息表orders,它们定义如下:create table customers(customerID int identity(1,1) primary key,Cname varchar(8) not null,address varchar(50),city varchar(10),tel varchar(50),birthday datetime,type tinyint default 1);create table goods( goodsid int constraint C1 primary key, goodsname varchar (20)not null,price money ,description varchar(200),storage int,provider varchar(50),Status tinyint default(0));create table orders(orderid int identity(1,1) constraint c2 primary key ,goodid int not null references goods(goodsid) on delete cascade,customerid int not null foreign key(customerid)references customers (customerid) on delete no action,quantity int not null constraint c3 check(quantity>0),ordersum money not null,orderdate datetime default(getdate())); customers表Goods表Orders表(3)、使用SQL语句在SPJ数据库中创建第2章习题10中的四张表;供应商表S,零件表P、项目表J和供应情况表SPJ,数据类型自行设计,注意同时定义主键、外键和其他的数据完整性。

数据库安全性和完整性实验【模板范本】

数据库安全性和完整性实验【模板范本】

实验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.实验步骤和实验结果。

实验报告 SQL SERVER 2000的约束、默认和规则

实验报告 SQL SERVER 2000的约束、默认和规则
学号
char
9

主键
CourseID
课程号
int
4

主键
DailyGrade
平时成绩
decimal
5,1
不小于0且不大于20
PracticeGrade
实践成绩
decestGrade
期末成绩
decimal
5,1
不小于0且不大于50
Grade
总评
由平时成绩(20%)、实践成绩(30%)和期末成绩(50%)计算而来
教师
评语
安庆论坛/
(3)使用sp_unbindefault存储过程将DF_GRADE从DailyGrade、PracticeGrade和TestGrade字段上解除。
(4)删除DF_GRADE默认值对象。
实验结果与结论
完成表中的约束、默认和规则等操作,实验很成功.
问题及解决方法
默认值约束和默认值对象是一回事吗?
答:不是一回事.建立和使用约束的目的是保证数据的完整性,约束是SQL Server强制实行的应用规则,他能够限制用户存放到表中数据的格式和可能值。约束作为数据库定义的一部分在CREATE TABLE语句中声明,所以又称做声明完整性约束。约束独立于表结构,可以在不改变表结构情况下,通过ALTER TABLE语句来添加或者删除。在删除一个表时,该表所带的所有约束定义也被随之删除。
grade属性名属性描述数据类型约束备注studentnum学号char主键courseid课程主键dailygrade平时成绩decimal51不小于0不大于20practicegrade实践成绩decimal51不小于0不大于30testgrade期末成绩decimal51不小于0不大于50grade总评由平时成绩20实践成绩30和期末成绩50计算而来2

实验06 答案

实验06 答案

实验六安全性和完整性控制【实验目的】1.掌握SQL Server2000的安全性机制2.掌握SQL Server2000中有关用户、角色及权限的管理方法3.掌握数据库的保护措施-----完整性控制。

【实验内容】1.使用样本数据库同实验一。

2.实行如下要求查询或操作:在student表SNO属性上创建主键;在C表的Cno属性上定义主键;在SC 表的Sno,cno属性上定义主键;定义SC表的外键其中SC表的Sno参照S表的Sno,SC表的Cno参照C表的Sno。

在SC表的成绩列上创建检查约束要求成绩的取值范围为0~100(用SQL语句添加约束的方法)1)aLter table students add constraint pk_students primary key(sno)2) alter table sc add constraint pk_sc primary key(sno,cno)3) alter table c add constraint pk_c primary key(cno)4) alter table sc add constraint fk_sc_c foreign key(cno) references c(cno),constraint fk_sc_students foreign key(sno) references students(sno) 5) alter table sc add constraint ck_sc check(grade>=0 and grade<=100)3.建立学生登记表Student,要求姓名不能取空值,年龄小于30,性别只能是“男”或“女”。

*/alter table students add constraint ck_student check(sname<>null and age<30 and sex in( '男','女'))4.使用企业管理器或sp_addlogin创建SQL Server帐号U1,U2,并分配他们访问数据库的权限 exec sp_grantdbaccess ‘U1’。

《数据库系统原理》实验指导书

《数据库系统原理》实验指导书

《数据库系统原理》实验指导书《数据库系统原理》实验指导书实验1 熟悉SQL Server 2000环境及数据库⽂件管理⼀、实验⽬的1、掌握登录SQL Server 2000的⽅法,熟悉SQL Server实⽤⼯具的使⽤;2、了解SQL Serve数据库的存储结构,掌握估算数据库⼤⼩技术;3、掌握创建数据库技术,掌握扩⼤和压缩数据库技术;4、掌握使⽤企业管理器⼯具和T-SQL语句及系统存储过程对数据库进⾏管理。

⼆、实验要求1、熟悉SQL Server 2000的⼯作环境,了解SQL Server主要管理⼯具的⽤途和使⽤⽅法。

2、掌握在SQL Server 2000环境下,利⽤企业管理器和T-SQL语⾔创建和管理数据库的⽅法。

三、实验设备、环境设备:奔腾II或奔腾II以上计算机环境:WINDOWS 98或WINDOWS NT、SQL SERVER 2000中⽂版四、实验原理、⽅法上机操作五、实验步骤及内容(⼀)实验步骤1、教师讲授2、教师演⽰3、学⽣实际操作(⼆)实验内容1、熟悉SQL Server 2000管理⼯具(1)企业管理器(Enterprise Manager)(2)查询分析器(Query Analyzer)(3)服务管理器(Service Manager)(4)事件探查器(Profiler)(5)导⼊和导出数据(Import and Export Data)(6)SQL Server其他管理⼯具2、数据库⽂件管理(1)数据库的创建和删除。

①在企业管理器中建⽴⼀个图书读者库。

图书读者数据库中将包括⼀个数据⽂件和⼀个⽇志⽂件,各⽂件的属性见表1-1。

②删除上题所建的数据库然后⽤T-SQL语句重新创建。

(2)修改数据库①查看图书读者数据库的属性及数据⽂件和⽇志⽂件的空间使⽤情况。

②在企业管理器中,⾸先扩⼤图书读者数据库的主数据⽂件的⼤⼩,然后查看扩⼤后的数据库属性,接着收缩主数据⽂件到定义时的⼤⼩。

实验5数据库的安全性控制(含答案)

实验5数据库的安全性控制(含答案)

实验五数据库的安全性控制一、实验目的:1. 通过实验加深对数据安全性的理解,并掌握SQL Server中有关用户登录的认证以及管理办法;2. 通过实验加深对数据库存储控制机制的理解,通过自主存取控制进行权限管理,熟悉SQL Server中角色管理;3.通过实验加深对数据安全性的理解,熟悉视图机制在自主存取控制上的应用。

二、实验内容1.设置SQL Server的混合安全认证模式。

在SQL Server中的对象资源管理器中设置安全认证模式。

2.在SQL Server中,利用“对象资源管理器”创建一个名为“U1”的登录用户和数据库用户,密码为111,并允许其登录S-T数据库。

3.在SQL Server中,利用代码创建一个名为“U2”的登录用户,密码为111;其相应的数据库用户名为lucky,并允许其登录S-T数据库。

4.用“u1”用户名登录后,执行对students表的查询操作,说明执行结果,并分析原因(建议:在启动一个SQL Server 2008窗口)。

分析:没有对u1进行其他操作的授权,只能登录而不能进行插入,修改等操作5.将students表的操作权限select和insert赋予数据库用户u1,并允许其向其它用户授权。

6.以“u1”用户名登录,执行对students和teacher表的查询操作,将该运行结果进行分析。

分析:对比第4题,对U1进行授权后可以进行相应的操作7.执行下列代码后,分析用户u2能否对s_t数据库的student表进行select 和update操作,为什么?并用相应的语句验证。

分析:首先grant给public组赋予了查询,插入,更新权限,然后给lucky用户赋予了对S表的所有权限,然后又revoke收回了lucky的权限,但并没有收回public组的权限,而deny却收回了lucky的更新权限,故查询可实现,而更新不可实现8.以sa登录数据库,在s_t数据库的stc表上创建选修了课程B001的视图st_view。

实验五 SQL SERVER 完整性与安全性 实验报告

实验五 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.两个同学为一组(自由搭配),在自己的数据库服务器上分别为对方创建一个登录名,并授予一定权力,然后用对方为自己创建的登录名和对方的数据库服务器建立连接,进行登录,对对方的数据库服务器进行操作。

实验五数据库的完整性实验(含代码)

实验五数据库的完整性实验(含代码)

实验五数据库的完整性实验(含代码)实验五数据库的完整性与安全性实验⼀、实验⽬的使学⽣了解SQL Server 2005的完整性与安全性机制,并掌握SQL Server 2005中完整性控制和安全管理的⽅法。

⼆、实验内容1、在“图书读者数据库”(Book_Reader_DB)中完成完整性控制的相关操作;2、“图书读者数据库”(Book_Reader_DB)中完成安全性控制的相关操作。

三、实验环境与实验准备⼯作实验环境:Microsoft Windows操作系统,Microsoft SQL Server 2005数据库管理系统标准版或企业版。

实验准备⼯作:在开始本实验之前,请回顾教科书的相关内容(数据库的完整性)。

四、实验⽅法与步骤1、使⽤sql脚本⽅式删除Book_Reader_DB数据库内的所有键和约束。

Sql脚本⽰例:Use Book_Reader_DB;Goalter table表名drop constraint键名|约束名;2、使⽤sql脚本定义刚刚删除的所有键和约束(实体完整性、参照完整性和⽤户⾃定义完整性约束)。

Sql脚本⽰例:alter table 表名add constraint 键名|约束名(三类完整性约束)要求:参照完整性要定义违约处理策略。

3、定义Defaul约束将Read表中“性别”的默认值改为“男”,然后输⼊数据验证。

(1)在企业管理器中完成。

(2)在查询分析器中完成(sql脚本完成)。

4、Unique 约束将Book表中“作者”加上唯⼀性约束,然后输⼊数据验证,并分析唯⼀性约束与主键约束的区别。

(1)在企业管理器中完成。

(2)在查询分析器中完成。

5、使⽤sql语句操作数据库,验证以上定义的所有约束,掌握DBMS的完整性控制机制。

上述每项实验内容相应的实验步骤必须进⾏详细的记录,并将其整理后写在实验报告中。

五、实验报告要求1、根据实验内容和每⼀步骤实验的结果,按课程实验报告的撰写规范完成实验报告。

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

认值即可。
图1
外键约束: 例:将SC表的Sno字段设置为外键,该外键参考表Student中的主键Sno。
【提示】
如果你用的是前几次实验所创建的数据库及表,为了能使这里所有操 作得以进行,你可以重新建一个Student表,里面不加任何约束.或先删除 已建立的约束.
在企业管理器中,展开服务器中的数据库文件夹,再展开Student数据库,单击 “表”。右击要设置外键的表SC,在弹出的快捷菜单中选择“设计表”,在打开的表 结构对话框中,单击右键,然后点击“关系”,系统将弹出下图所示窗口,单击“新 建”按钮,系统给出默认的关系名,选择要参考主键的表名Student及表中的主键Sno, 要设置外键的表名SC及外键列名Sno,单击¹关闭¹按钮,外键约束创建完成。
例:为Student表的“Sname”字段增加一个唯一性约束 Alter table Student Add constraint IX_constraint unique nonclustered (Sname)
例:为SC表建立外键,依赖于Student表的fk_S_c约束。
Alter table SC Add constraint fk_S_c Foreign key(Sno) Student(Sno) 例:禁用Student表的“Sdept”的CHECK约束ck_student。 Alter table Student 2规则: 规则是数据库对象之一。它指定向表中某列插入或更新数据时,限制输入新值的 取值范围。规则可以是值的清单、值的范围或值必须满足的条件。 Nocheck constraint ck_student References
②将规则绑定到指定的字段上:然后点击¹绑定列¹,在弹出的对话框中的¹表¹中选 择对应的表,然后在左边的窗格中选择欲被捆绑规定的列,点击¹添加¹按钮,最后选 择¹确定¹,完成规则的绑定。如图4
③删除规则:在企业管理器中,展开服务器中的数据库文件夹,再展开Student数
据库,单击¹规则¹,右击右边窗格里的规则Rule1,单击¹删除¹按钮即可。 ⑵使用T_SQL语句实施规则 ①创建规则:为Student表中的Sage字段创建一个规则Rule1,使Sage的值大于0且 小于120。 create rule rule1 as @Sage>00000 and @Sage<99999 ②将规则rule1绑定到表Student的Sno字段Sp_bindrule rule1, 'Student.Sage ' ③解除规则rule1到Sage的绑定 sp_unbindrule 'Student.Sage' ④将规则rule1删除drop rule rule1
【提示】
例:为 “Sdept”字段创建一个检查约束,使得所在系必须是¹计算机¹、¹数学¹或¹ 信息¹之一。 Alter table Student Add constraint ck_student Check (Sdept in ('计算机','
数学','信息'))
这里添加检查约束时和下面的实验内容中,如果表中原有的 数据与所添加的约束不符,则会出错!所以,操作前请将原表 中的Sdept字段内容改为'计算机','数学','信息'之一。 【注意】 更改内容时请注意,因为Sdept定义为char(20),所以原来比如 Sdept的值为’CS’的话,实际上值为CS+18个空格,如下图3所示, 请同学们更改时注意。
⑴利用企业管理器进行规则操作 ①创建规则:为Student表中的Sage字段创建一个规则Rule1,使其值大于0且小于
120。
在企业管理器中,展开Student数据库,右击¹规则¹,在弹出的快捷菜单中单击选 择¹新建规则¹,弹出 ¹规则属性¹窗口;在¹名称¹输入框中输入规则名称Rule1,在¹
文本¹输入框中输入规则的文本:@Sage>0 and @Sage<120。
实验五
数据库完整性
一、实验目的 掌握SQL Server2000中有关约束、规则、默认值的使用等完整性技术。
二、实验内容
1)使用SQL Server2000企业管理器和T_SQL两种方法进行检查约束、缺省约束、 唯一约束、非空约束、主键约束和外键约束等6种操作 2)使用SQL Server2000企业管理器和T_SQL两种方法进行规则设置操作: 三、实验要求: 掌握域完整性、实体完整性和参照完整性的设置方法和有关语句 四、实验学时:2学时 五、实验步骤: 完整性是指数据的正确性和有效性,是为防止数据库中存在不符合语义规定的数 据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性可
图2
用T_SQL语句实施约束
例:为Student表的 “Sex”字段创建一个缺省约束,缺省值为¹男¹
Alter table student Add constraint default_sex Default '男' for Ssex
为了观察添加了缺省约束的效果,你可以用以下方法: 插入一条数据,不指定Ssex的值,如 INSERT INTO Student(Sno,Sname,Sdept,Sage) VALUES ('200215140','Jim','CS',22) 接着用 select * from student where sno='200215140' 查看刚才插入的记录的Ssex字段的值是什么
空约束、主键约束和外键约束等6种。 默认值:是数据库对象之一,它指在向数据库中的表插入数据时,如果用户没有明 确给出某列的值,SQL Server将自动指定该列使用默认值。 使用企业管理器实施约束 例:为Student表的“性别”字段创建一个缺省约束,缺省值为¹男¹ 在企业管理器中,展开服务器中的数据库文件夹,再展开要操作的数据库,如 Student数据库,单击“表”,在右边窗口中显示所有在Student数据库中的表。右击 要设置缺省值的表Student,在弹出的快捷菜单中选择“设计表”,单击设置缺省值 的字段,将弹出下图1所示窗口,在下边属性设置栏的默认值输入框中输入相应的默
以分为3类:
域完整性:是指一个列的输入有效性,是否允许为空值; 实体完整性:是指将行定义为特定表中的唯一实体;
参照完整性:也叫引用完整性,是指在输入或者删除记录时,保持表之间已经定
义的关系,它涉及到多表之间数据一致性的维护。 1.约束:
约束是强制数据完整性的第一选择。约束有:检查约束、缺省约束、唯一约束、非
相关文档
最新文档