《数据库系统概论》实验指导书(修改_第1页
《数据库系统概论》实验指导书(修改_第2页
《数据库系统概论》实验指导书(修改_第3页
《数据库系统概论》实验指导书(修改_第4页
《数据库系统概论》实验指导书(修改_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库系统概论实验指导书编著:高峰安阳师范学院计算机与信息工程学院2009 年 2 月实验内容介绍一、学时数:16 学时二、授课对象:计算机科学与技术专业、计算机网络专业、软件工程专业(本科)三、内容提要:1 本实验内容作为数据库系统概论的理论联系实际,培养增强学生动手能力,理解并掌握SQL语句的用法。2 实验内容SQL SERVER2000软件的熟悉,数据的定义、查询、修改及控制。3 实验要求以SQL SERVER2000作为基本的调试软件,并有前台的面向对象的开发工具。四、考试方式:实验报告及成绩五、教材及参考书:1数据库系统概论(第四版)萨师煊 王珊 高等教育出版社 2007.4出版2S

2、QL语言应用 Michael Morrison 北京大学出版社 2002.063.Microsoft SQL Server 2000数据库管理 微软公司 著 北京希望电子出版社 2001.5出版六、实验内容安排序号实验项目名称学时实验类型实验要求每组人数1数据库的创建与管理2验证性必 修12表的创建与管理2验证性必 修13数据查询4验证性必 修14数据库的视图定义及维护1验证性必 修15数据安全性控制1验证性选 修16数据完整性控制1验证性必 修17嵌入式SQL和ODBC的使用1验证性选 修18数据库的设计与实现4综合性必 修1实验一 数据库的创建与管理【目的和要求】1巩固数据库的基础知识;2

3、掌握创建数据库的两种方法;3掌握如何查看、修改数据库属性的方法;4掌握数据库的缩小、更名、与删除的方法。【内容和步骤】一、 创建数据库1使用企业管理器直接创建数据库1) 打开企业管理器。2) 右键单击数据库并选择【新建数据库】。3) 会弹出窗体如下图所示,在常规标签中输入数据库名称。4) 然后单击【数据文件】标签,可以输入文件名、文件位置、文件大小以及文件组。在这个标签中还提供了让数据文件在数据需要更多空间时自动扩展的选项和数据文件大小的最大值。5) 单击【事务日志】标签,在此键入日志文件的名字、位置、大小。在这个标签中还提供了让日志文件在日志需要更多空间时自动扩展选项和日志文件大小的最大值。

4、 2使用Transact-SQL语句创建数据库 当我们无法用企业管理器创建生成一个大的数据库,或者用户想用Transact-SQL语句写一段程序自动的计划的生成几个数据库时,可以用Transact-SQL语句向服务器请求创建数据库。使用Transact-SQL语句创建数据库的语法如下:CREATE DATABASE database_name ONPRIMARY( NAME = logical_file_name, FILENAME = os_file_name ,SIZE = size ,MAXSIZE = max_size|UNLIMITED ,FILEGROWTH = growth_in

5、crement),n:=FILEGROUP filegroup_name ,nLOG ON(NAME = logical_file_name,FILENAME = os_file_nameSIZE = size,MAXSIZE = max_size | UNLIMITED,FILEGROWTH = growth_increment)例1:创建一个lfm数据库,主要文件组包含主要数据文件文件lfm1_dat和次要数据文件lfm2_dat。有2个次要文件组:lfmGroup1包含2个次要数据文件lfm1Fi1_dat 和 lfmFi2_dat, lfmGroup2包含lfm2Fi1_dat和lfm

6、2Fi2_dat两个次要数据文件。日志的逻辑文件名为lfm_log,此日志文件存储在c:mssqldatalfmlog.ldf中。CREATE DATABASE lfmON PRIMARY(NAME = lfm1_dat, FILENAME = c:lfm1_dat.mdf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15%), (NAME = lfm2_dat, FILENAME = c:lfm2_dat.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15%), FILEFROUP lfmGroup1 ( NAME =

7、 lfm1Fi1_dat, FILENAME = c:lfm1Fildt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5) ,( NAME = lfm1Fi2_dat, FILENAME = c:lfm2Fildt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5), FILEGROUP lfmGroup2(NAME = lfm2Fil_dat, FILENAME = c:SG2Fi1dt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5),(NAME = lfm2Fi2_

8、dat, FILENAME = c:SG2Fi1dt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5)LOG ON (NAME = lfm_log, FILENAME = c:lfmlog.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB)二、 查看数据库、修改数据库的属性 SQLSERVER2000有许多选项可以改变数据库的行为。因此,在使用数据库之前,可以考虑其中一些选项的设置。 进入企业管理器,用鼠标右键单击数据库test,再单击“属性”,然后选择“选项”标签即可进入如下图所示test数据库的选项

9、窗体。访问控制:用于控制哪些用户能访问该数据库只读:这个选项使数据库只能读取不能写入模型:指定数据库的恢复模型类型ANSI NULL默认设置:指定将数据库列默认定义为NULL还是NOT NULL。递归触发器:启用触发器的递归触发。自动更新统计信息:指定在优化期间自动生成查询优化所需的过时统计信息。残缺页检测:指定可以检测不完整页。自动关闭:指定数据库资源被释放以及所有用户退出之后关闭数据库。自动收缩:指定数据库文件可以周期性自动收缩。自动创建统计信息:指定在优化期间自动生成优化查询所需的任何缺少的统计信息。使用引用的标识符:指定SQLSERVER将强制执行关于引号的ANSI规则。级别:指定数据

10、库兼容性级别。2 整数据库大小点击“数据文件”或“事物日志”标签,可以得到如下图所示test数据库的窗体文件自动增长:选中表示数据库自动,这时可以选择按兆增长还是按百分比增长。文件增长不受限制:意味着数据库没有最大限制,可以一直充满磁盘将文件增长限制为,为数据库选择一个最大限制。分配空间:用户可以直接增加数据库文件大小扩大数据库的另外一个方法是增加辅助数据文件。3 加文件组生成一辅助文件后,可将其逻辑组织到文件组中,帮助管理磁盘空间分配。增加文件组的方法是:在文件组列中输入一个新的文件组名称,如“next”,单击“确定”,然后右击数据库,选择“属性”,选择“文件组”标签会看到增加的文件组。如图

11、示: 缩小数据文件右击数据库,单击“所有任务”,选择收缩数据库,会弹出下图所示窗体,利用该窗体可以输入数据库大小,并且可以定制任务,让SQL Server自动定期收缩数据库大小。三、利用T-SQL语句查看、修改数据库属性语法为: sp_dboption dbname = database,optname = option_name,optname = option_name dbname = database 设置指定选项的数据库名称optname = option_name 设置的选项名称optname = option_name 可以示ture、false、on或off 修改日志文件的最大

12、值将test1_log日志文件的最大值更改为150M,SQL脚本程序如下:USE testGOALTER DATABASE testMODIFY FILE(NAME=test1_log,MAXSIZE=150MB)GO 修改日志文件的初始值将test1_log日志文件的初始值由5M更改为20M,SQL脚本程序如下:USE testGOALTER DATABASE testMODIFY FILE(NAME=test1_log,SIZE=20MB)GO 查看数据库信息执行系统存储过程sp_helpdb,可以查看test数据库信息,并验证数据库是否已经修改成功。Sp_helpdb test 更改数据

13、库更改数据库test时为test添加一个辅助文件,文件名为testfz,存储在c: testfz.ndf中,初始大小为3MB,最大值为50MB,增长量为3MB。USE testALTER DATABASE testADD FILE(NAME = testfz,FILENAME=c:testfz.ndf,SIZE=3MB,MAXSIZE=50,FILEGROWTH=3)向数据库test中添加一个含有2个文件的文件组USE testGOALTER DATABASE testADD FILEGROUP testfg1GOALTER DATABASE testADD FILE(NAME=testfz1

14、, FILENAME=C:testfz1.ndf, SIZE =5MB, MAXSIZE=50MB, FILEGROWTH =5),(NAME=testfz2, FILENAME=C:testfz2.ndf, SIZE =5MB, MAXSIZE=50MB, FILEGROWTH =5) TO FILEGROUP testfg1向test数据库中添加2个5MB的日志文件USE testGOALTER DATABASE testADD LOG FILE(NAME =testlog2, FILENAME=c:testlog2.ldf, SIZE =5MB, MAXSIZE = 10MB, FILE

15、GROWTH =5),(NAME =testlog3, FILENAME=c:testlog3.ldf, SIZE =5MB, MAXSIZE = 10MB, FILEGROWTH =5)删除数据库test中的一个文件testfz.ndfUSE testGOALTER DATABASE testREMOVE FILE testfz删除test数据库USE testDROP DATABASE test练习题练习1:创建数据库 用企业管理器创建数据库1) 创建数据库Test:2) 右击数据库,单击【新建数据库】3) 输入数据库名称Test4) 选择【数据文件】标签,增加一个文件test1,设置初始

16、大小为5MB5) 选择【事务日志】标签,增加一个日志文件test1_log,初始大小为5MB6) 单击【确定】按钮,开始创建数据库练习2:用Transact-SQL语句创建数据库打开查询分析器,创建数据库Test1。数据库的参数如下表所示。参数参数值数据库名称Test1数据库逻辑文件名Test1_dat操作系统数据文件名C:mssqldataTest1_dat.mdf数据文件的初始大小10MB数据文件最大大小50MB数据文件增长量原来的20%日志逻辑文件名Test_log操作系统日志文件名C:mssqldataTest1_log.ldf日志文件初始大小5MB日志文件的最大大小25MB日志文件增

17、长增量5MB1) 设置数据库选项:使用企业管理器修改数据库选项。右击数据库,单击“属性”,选择“选项”标签,弹出如图所示窗体,选中“只读”复选框。这样数据库就变为只读数据库。然后打开查询分析器使用T-SQL语句更改数据库选项。EXEC SP_DBOPTION test, read only, TRUE2)压缩数据库:使用企业管理器压缩数据库。右击数据库,选择“所有任务”,单击“收缩数据库”,弹出图示窗体。键入收缩量。使用T-SQL语句压缩数据库。打开查询分析器键入DBCC SHRINKDATABASE(test,2)将test数据库压缩成为2M。3)更改数据库:打开查询分析器更改数据库test

18、,参数如下:参数参数值数据库名Test增加的文件组名TestFG1增加的文件1的逻辑名Testdat3文件1在磁盘中的目录C:tdat3.ndf文件1的初始大小5MB文件1的最大值50MB文件1的增长量5MB增加的文件2逻辑名Testdat4文件2磁盘中的目录C:tdat3.ndf文件2初始大小5MB文件2最大值50MB文件2增长量5MB新增日志逻辑文件名Testlog2日志文件在磁盘中的目录D:testlog.ldf日志文件初始值5MB日志文件最大值100MB日志文件增长量5MB实验二 表的创建与管理【目的和要求】1巩固数据库的基础知识;2掌握创建与删除表的两种方法;3掌握修改表结构的方法。

19、【内容和步骤】一、创建表1利用企业管理器创建表 1) 打开企业管理器。2) 选中创建好的数据库,单击数据库中的表对象,然后右击窗口右侧选择新建表,弹出如图所示窗体。3) 在这个窗体中,列名列就示表的字段名,可以在这个窗体中为字段选择数据类型和长度以及是否可以为空值。4) 在此处可以为表选择文件组,在表中单击右键,选择属性,如果已经为数据库创建了一个次要组,可以在属性窗体的表文件组中为此表选择文件组。应该把一些竞争使用的表放于不同的文件组中,并且让文件组属于不同磁盘,这样可以在表竞争读写时提高并发性能。5) 创建完成后,单击磁盘图标,并为表取一个名字,注意,应该为表取一个有意义的名字。2用Tra

20、nsact_SQL语句创建表 语法为: CREATE TABLE database_name.owner. table_name ( column_name data_type DEFAULT default_value| CONSTRAINT constraint_name , n IDENTITY (seed, increment ) ) ON filegroup | DEFAULT TEXTIMAGE_ON filegroup | DEFAULT 例1:生成一个表名为学生表的表例2:创建一张名为Ta1的表,此表中有3列,第一列Pid定义为主键,并且自动增长。第二列Name默认值为Unkn

21、own,第三列定义一个约束,即此列中的日期不能大于输入当天的日期,插入一条记录并进行查询,显示如下图。二、表的修改1 用企业管理器修改表 右键点击所要修改的表student,选择“设计表”,会弹出如图所示的窗体,在这个窗体中可以更改数据表的字段。在空白处点右键,选择“属性”,弹出另一窗体,在此可以更改约束,也可以增加约束。 利用T-SQL语句修改表向表中添加新的字段:在student表中添加一个“籍贯”字段,数据类型为字符型。ALTER TABLE student add 籍贯 char 删除表中的旧列:将student表中的“电话”字段删除。ALTER TABLE student DROP

22、column 籍贯更改表以添加具有约束的列:给student表的增加“年级”字段并加上CHECK约束,让其不可以大于100。ALTER TABLE student ADD 年级 int Constraint chname check(年级100)Exec sp_help chname给student表中添加“出生日期”字段,并且这个日期不能在录入当天的日期之后。Alter table studentAdd 出生日期 DATETIME NULLCONSTRAINT ch_birthday CHECK (出生日期getdate()添加具有默认值的可为空的列:在student表中加入“进校日期”字段

23、,并且这一字段的默认值为录入当天的日期。Alter table studentAdd 进校日期 smalldatetime NULLConstraint adddatefltDefault getdate()三、表的删除删除表对象,我们可以在企业管理器中选择要删除的表直接删除,也可以通过T-SQL语句DROP 删除表的定义及表中的所有数据、索引、出发器、约束和权限规范。删除table2表。DROP TABLE table2练习题练习1:在Test数据库中创建教工表1) 打开查询分析器,用sa登录2) 在数据库列表中单击test数据库3) 写出并执行语句创建教工表。条件如下: 列名数据类型允许为

24、空?约束IDENTITY属性?教工号Int否主键姓名Varchar(20)是无家庭地址Char(30)是无电话Int是无性别Char(2)否默认为男课程名称Varchar(10)否必须在(数学、语文、化学、英语、物理)中4) 根据条件在查询分析器中输入以下语句: CREATE TABLE 教工表(教工号 INT PRIMARY KEY IDENTITY(1,1),姓名 VARCHAR(20) NULL,家庭住址 CHAR(30) NULL,电话 INT NULL,性别 CHAR(2) DEFAULT 男,课程名 VARCHAR(10)CONSTRAINT chaname1CHECK(课程名 I

25、N (数学,语文,化学,英语,物理)5) 删除此表:在查询分析器中输入语句DROP TABLE 教工表6) 自己试着用企业管理器重新创建此表。练习2:表的管理 用企业管理器创建教工表teacher,条件如下列名数据类型允许为空?约束IDENTITY属性教工号Int否主键无姓名Varchar(20)是无无家庭住址Char(30)是无无电话Int是无无性别Char(2)否默认为男无系别Varchar(16)否必须是(计算机软件、计算机体系结构、计算机网络)之一无 在查询分析器中用命令:DROP TABLE teacher删除该表。 根据条件在查询分析器中输入以下语句:CREATE TABLE te

26、acher ( 教工号 INT PRIMARY KEY IDENTITY(1,1), 姓名 VARCHAR(18) NULL, 家庭住址 CHAR(30) NULL, 电话 INT NULL, 职称 CHAR(14) DEFAULT 讲师, 所在专业 VARCHAR(16) CONSTRAINT chname1 CHECK(所在专业 IN (计算机体系结构,计算机网络,计算机软件) )实验三 数据查询【目的和要求】 1 了解查询的概念和方法;2 掌握查询分析器的使用方法;3 掌握SELECT语句在单表查询中的应用;4 掌握复杂查询的使用方法;5 掌握多表连接的方法;6 掌握SELECT语句在多

27、表查询中的应用。【内容和步骤】一、 单表查询1基本查询打开查询分析器,从teacher表中分别检索出教师的所有信息,以及教工号、姓名和职称。语句及查询结果如下:select * from teacherselect 教工号,姓名 from teacher2查询时改变列标题的显示从teacher表中分别检索出教师教工号、姓名、家庭住址信息并分别加上教师姓名、教工号、家庭住址等标题信息,语句及查询结果如下:3基于WHERE语句进行数据查询 基于比较条件。从teacher表中查询出教工号小于2130的教师资料。语句如下:select * from teacher where 教工号2800 orde

28、r by 工资 ASC二、 多表查询数据库的各个表中存放着不同的数据,用户经常需要用多个表中的数据来组合提炼出所需要的信息,如果一个查询需要对多个表进行操作,就称为联表查询,联表查询的结果集或结果表称为表之间的连接。联表查询实际上是通过各各表之间共同列的关联来查询数据的,它是关系数据库查询最基本的特征。按照下表所示,分别在数据库test中构造student、course和student_course三张表,并写入记录。Student表列名称类型宽度允许为空缺省值主键学号Char8否是学生姓名Nvarchar8否性别Bit否出生年月Smalldatetime否班级号Char6否入学时间Small

29、datetime否家庭住址Nvarchar40是Course表:列名称类型宽度允许为空缺省值主键课程号char10否是课程名称Nvarchar20否书标识Char13否课程总学时Tinyint是周学时Tinyint是课程学分Tinyint是Student_course表列名称类型宽度允许为空缺省值主键课程号Char10否是学号Char8否是成绩Tinyint否学分Tinyint否学期Bit是学年Char9是SQL 2000兼容2种连接形式:用于FROM子句的ANSI连接语法和用于WHERE子句的SQL SERVER连接语法形式。1 进行多表查询从student、course和student_c

30、ourse三张表中检索学生的学号、姓名、学习课程号、学习课程名及课程成绩。语句如下:select student学号,student_course学生姓名,student_course课程号,course课程名,student_course成绩from student, student_course,course where student学号student_course学号andcourse课程号student_course课程号使用UNION子句进行查询使用UNION子句可以将一个或者多个表的某些数据类型相同的列显示在同一列上。如从teacher表中列出教工号、姓名并从student表中列

31、出学号及学生姓名。语句及查询结果如下:select 学号 AS 代码,学生姓名 AS 姓名 from student union select 教工号,姓名 from teacher3 用GROUP子句进行查询如果要在数据检索时对表中数据按照一定条件进行分组汇总或求平均值,就要在SELECT语句中与GROUP BY子句一起使用集合函数。使用GROUP BY子句进行数据检索可得到数据分类的汇总统计、平均值或其他统计信息。 使用不带HAVING的GROUP BY子句。使用不带HAVING 的GROUP BY子句汇总出student_course表中的学生的学号及总成绩,语句如下:select 学号

32、=student学号,总成绩=SUM(成绩) from student_coursegroup by 学号 使用带HAVING 的GROUP BY子句。使用带HAVING 的GROUP BY子句汇总出student_course表中总分大于450分的学生的学号及总成绩,语句如下:select 学号=学号,总成绩=SUM(成绩)FROM student_courseGROUP BY 学号 HAVING SUM(成绩)4504.使用COMPUTE和COMPUTE BY子句进行查询使用COMPUTE和COMPUTE BY 既能浏览数据又能看到统计的结果。 用COMPUTE子句汇总出student_c

33、ourse表中每个学生的学号及总成绩,语句如下:select 学号=学号,成绩=成绩 from student_course ORDER BY 学号 COMPUTE SUM(成绩) 用COMPUTE BY 子句按学号汇总出student_course表中每个学生的学号及总成绩,语句如下:select 学号=学号,成绩=成绩 from student_course ORDER BY 学号COMPUTE SUM(成绩)BY 学号观察执行COMPUTE和COMPUTE BY子句的结果有什么不同?三、 进行嵌套查询1使用IN或NOT IN关键字使用IN关键字查询出j10011班所有男生的学号、课程号及

34、相应的成绩,语句如下:select student_course.学号, student_course.课程号,student_course.成绩FROM student_course WHERE 学号 IN (SELECT 学号 FROM student WHERE 班级=j10011AND 性别=1)2 使用EXISTS 或NOT EXISTS关键字。使用EXISTS关键字查询出j10011班的学生的学号、课程号及相应的成绩,语句如下:SELECT student_course.学号,student_course.课程号,student_course.成绩 FROM student_cou

35、rseWHERE EXIST (SELECT * FROM student WHERE student_course.学号=student.学号 AND student.班级=j10011)练习题练习1:从PUBS(SQL Server样本数据库)中的authors,titleauthor,titles表中选择出当年图书销量大于10000册的图书作者名称和图书名称。练习2:统计各类图书的平均价格。练习3:列出business类的图书名称和价格,结果按价格降序、书名升序排列。练习4:列出所有作者为Oakland籍的图书。练习5:查询所在州没有出版社的那些作者及其所在州名。实验四 数据库的视图定义

36、及维护【实验目的】1、 使学生掌握视图的定义与维护操作2、 加深对视图在关系数据库中的作用的理解 【相关知识】视图是根据子模式建立的虚拟表。一个视图可以由一个表构造,也可以由多个表构造。利用企业管理器和视图创建向导进行创建,查看和修改视图就如同对表的操作一样,非常容易。【实验内容】本实验的主要内容是:1、创建和删除视图2、查询和更新视图具体完成以下例题。例1 建立信息系学生的视图例2 建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。例3 建立信息系选修了C1号课程的学生视图例4 建立信息系选修了C1号课程且成绩在90分以上的学生视图例5 定义一个反映学生出生年份

37、的视图【实验步骤】1 创建视图下面利用了SQL Server中提供的视图创建向导,来实现例3(建立信息系选修了1号课程的学生视图)。1) 打开企业管理器窗口,确认服务器,打开数据库文件夹,选中新视图所在的数据库(此例为学生选课数据库)。2) 选择菜单:工具|向导3) 在如图1所示的向导选择对话框中,单击数据库左边的“+”号,使之展开。选择“创建数据库向导”项,单击“确定”按键。 图1 向导选择对话框4) 进入创建视图向导后,首先出现的是欢迎使用创建视图向导对话框,其中简单介绍了该向导的功能。单击“下一步”后,就会出现选择数据库对话框。5) 在选择数据库对话框中,选择视图所属的数据库。本例的数据

38、库为“学生选课”。单击“下一步”按键,则进入选择表对话框。6) 在选择表对话框中,列出了指定数据库中所有用户定义的表。用户可以从中选择构造视图所需的一个表或者多个表,被选中的表成为构造视图的参考表。选择构造视图参考表的方法是:用鼠标单击表后的“包含在视图中”列,使复选框为选中状态。本例的数据库中只有学生表和选课表,它们都应当被选中。单击“下一步”按键,则进入选择对话框。7) 列选择对话框中以表格形式列出了创建视图参考表的全部属性,每个属性占表的一行,创建视图参考属性可以在表格中选出。选择视图参考属性的方法是用鼠标单击属性名后边的“选择列”列,使复选框为选中状态。本例中学生.学号,学生.姓名和选

39、课.成绩属性要被选中。单击“下一步”按键,进入创建视图的定义限制对话框,如图2所示。 图2 定义限制对话框8) 在定义限制对话框中,输入表的连接和元组选择条件。本例输入“所在系=信息系 AND 学生.学号 = 选课.学号 AND 选课.课程号 = C1”。单击“下一步”按键,出现视图名对话框。9) 在输入视图名对话框中输入所建视图的标识名。本例的视图名为“信息系选课1”。单击“下一步”按键,则出现视图创建完成对话框。在完成对话框中给出了根据前面对话框输入的内容译成的SQL语句。您可以认真阅读该SQL语句,如果发现与要求有不符合之处可以直接进行修改。确认无误后单击“完成”按钮。随后出现一个通知用

40、户已成功创建视图的信息框,单击“确认”按钮后,整个创建视图工作就完成了。2 查看和修改视图视图创建好后,就可以利用它进行查询信息了。如果发现视图的结构不能很好地满足要求,还可以在企业管理器对它进行修改。在企业管理器中修改视图结构需要首先选择服务器,数据库,并使数据库展开,然后用鼠标右击要修改的视图,在弹出的菜单上选择“设计视图”项,则弹出一个视图设计对话框,如图3所示。当对其修改完毕后关闭窗口,新的视图结构就会取代原先的结构。 3将查询需求用SQL语言表示;在SQL查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为Standard Execute(标准执行)或Execute to

41、 Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。实验五 数据安全性控制【实验目的】1、 通过实验使学生加深对数据安全性的理解2、 掌握SQL Server中有关用户,角色及操作权限的管理方法【相关知识】 SQL Server提供以下四种防线:l Windows NT操作系统的安全防线Windows NT的网络管理员负责建立用户组,设置帐号并注册,同时决定不同的用户对不同的系统资源的访问级别。用户只有拥有了一个有效的Windows NT登录帐号,才能对网络资源进行访问。l SQL Server的运行安全防线SQL Server 通过另

42、外一种帐号设置来创建附加安全层。SQL Server具有标准登录和集成登录两种用户登录方式,用户只有登录成功,才能与SQL Server建立一次连接。l SQL Server数据库的安全防线 SQL Server的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角色访问,其他用户无权访问其数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。l SQL Server数据库对象的安全防线 SQL Server可以对权限进行管理,SQL的DCL功能保证合法用户即使进了数据库也不能有超越权限的数据操作,即合法用户必须在自己的权限范围内进行数据操作。

43、【实验内容】本实验的实验内容为:l 在SQL Server企业管理器中,设置SQL Server的安全认证模式。l 通过SQL Server企业管理器,实现对SQL Server的用户和角色管理。l 分别通过SQL Server企业管理器和SQL的数据控制功能,设置和管理数据操作权限。【实验步骤】l 在SQL Server企业管理器中为所属的SQL 服务器设置为SQL Server和Windows NT混合安全认证模式。其步骤如下:1) 在企业管理器窗口中展开服务器组,用鼠标右击需要设置的SQL服务器,在弹出的菜单中选择“属性”项,则出现SQL Server属性对话框,如图1所示。 图1 SQ

44、L Server属性对话框2) 在SQL Server属性对话框中选择“安全性”选项卡。3) 身份验证选择“SQL Server和Windows”单选项。l 在SQL Server企业管理器中为自己建立一个服务器用户、数据库用户和数据库角色。1) 在企业管理器窗口中展开服务器组,展开服务器,用鼠标单击“安全性”文件夹右侧的+,用鼠标右击“登录”,在弹出的菜单中选择“新建登录”项,则出现新建登录对话框,如图2所示。 图2 新建登录对话框2) 在新建登录对话框中有常规,服务器角色和数据库访问三个选项卡。在常规选项卡中,输入用户名(本例为王平),选择SQL Server安全验证,输入用户口令。在服务

45、器角色选项卡中,需要确定用户所属的服务器角色,在本例中采用缺省值即可。在数据库访问选项卡中,需要指定此登录可以访问的数据库(本例选中学生选课数据库)和“学生选课”的数据库角色(在本例中采用缺省值即可)。单击“确定”按钮,既完成了创建登录用户的工作。l 关闭SQL Server企业管理器,打开SQL查询分析器。选择SQL Server安全验证,用户名为王平,输入用户口令,连接到SQL Server。在“查询”窗口中可以输入SQL语句。如“SELECT * FROM 学生”。运行后,得到消息“拒绝了对对象学生(数据库学生选课,所有者dbo)的SELECT权限。”。可见用户王平没有对学生表的SELE

46、CT权限。l 要想将学生选课数据库的操作权限赋予数据库用户王平,有两种方法。方法一:通过企业管理器1) 在企业管理器窗口中展开服务器组,展开服务器,用鼠标单击“数据库”文件夹右侧的+,用鼠标单击学生选课数据库文件夹右侧的+,用鼠标右击“用户”。在屏幕右侧的“用户”窗口中选择“王平”项,用鼠标右击,在弹出的菜单中选择“属性”项,则出现数据库用户属性对话框,如图3所示。 图3 数据库用户属性对话框2) 单击图3中的权限按钮,则出现数据库用户权限对话框,如图4所示。对话框的下面是有关数据库用户和角色所对应的权限表。这些权限均以复选框的形式表示。复选框有三种状态:“”为授权;“”为废除权;空为撤权。在

47、表中可以对用户或角色的各种对象操作权(SELECT,INSERT,UPDATE,DELETE,EXEC和DRI)进行授予或撤消。 图4 数据库用户权限对话框3) 在图4中找到学生表,授予SELECT权限,即让学生表与SELECT列交叉的复选框为“”即可。方法二:通过SQL的数据控制功能对用户王平授权,必须是数据库对象拥有者以上用户授予。我们可以以系统管理员或sa用户登录进入查询分析器。在查询分析器中输入授权语句“GRANT SELECT ON 学生 TO 王平;”,然后执行即可。实验六 数据完整性控制【实验目的】1、 通过实验使学生加深对数据完整性的理解2、 学会创建和使用触发器。【相关知识】

48、SQL Server实现数据完整性的具体方法有4种:约束、缺省、规则和触发器。其中约束和缺省在实验一中已接触过。本实验重点学会创建和使用触发器。触发器是实施复杂完整性的特殊类型的存储类型。触发器不需要专门语句调用,当对它所保护数据进行修改时自动激活,以防止对数据进行不正确,未授权或不一致的修改。创建触发器的语法为:CREATE TRIGGER ON WITH ENCRYPTIONFOR DELETE,INSERT,UPDATEWITH APPENDNOT FOR REPLICATIONAS 其中:1) WITH ENCRYPTION 为加密选项。2) DELETE 选项为创建DELETE 触发

49、器。DELETE触发器的作用是当对表执行DELETE操作时触发器被激活,并从指定表中删除元组,同时将删除的元组放入一个特殊的逻辑表(delete表)中。触发器的动作可以检查delete表中的数据,以确定下一步该如何处理。3) INSERT选项为创建INSERT触发器。INSERT触发器在对指定表中执行插入数据操作时激活,激活后将插入表中的数据拷贝并送入一个特殊的逻辑表(inserted 表)中,触发器会根据INSERT表中的值决定如何处理。4) UPDATE选项为创建UPDATE触发器。UPDATE触发器仅在对指定表中进行更新数据操作时激活。UPDATE触发器激活后把将要被更新的原数据移入delete表中再将要被更新后的新数据的备份送入insert表中,UPDATE触发器对delete和inserted表进行检查,并决定如何处理。5) NOT FOR REPLICATION 选项说明当一个复制过程在修改一个触发器表时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论