《数据库原理及应用》实验指导书_第1页
《数据库原理及应用》实验指导书_第2页
《数据库原理及应用》实验指导书_第3页
《数据库原理及应用》实验指导书_第4页
《数据库原理及应用》实验指导书_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库原理及应用实验指导书王华香 编广东工业大学大学信息工程学院2011年9月目 录实验1:数据库的定义实验 1实验2:数据库的建立和维护实验8实验3:数据库的简单查询和连接查询15实验4:数据库的嵌套查询 19实验5:数据库的组合查询和统计查询22实验6:视图和图表的定义及使用实验25实验7:数据完整性和数据安全性实验27实验8:数据库备份和恢复实验(兼做)34实验9:数据库编程实验(综合实验)39 PAGE 88实验1:数据库的定义实验实验目的:要求学生熟练掌握和使用SQL、T-SQL、SQL Server 企业管理器(Enterpriser Manager Server )创建数据库、表

2、、索引和修改表结构,并学会使用查询分析器(SQL Server Query Analyzer),接收TSQL语句和进行结果分析。实验内容:)创建数据库和查看数据库属性。)创建表、确定表的主码和约束条件,为主码建索引。)查看和修改表结构。)熟悉SQL Server 企业管理器(Enterpriser Manager)和 查询分析器(Query Analyzer)工具的使用方法具体实验任务如下。基本操作实验1)启动SQL Server200下的企业管理器(Enterpriser Manager)如图1.1所示,点击“数据库”右键,利用“新建数据库”建立图书读者数据库如图1.2所示;图1.1 企业管

3、理器界面图1.2 新建“图书_读者”界面2)在企业管理器(Enterpriser Manager)中查看图书读者数据库的属性,并进行修改,使之符合要求。3)通过企业管理器(Enterpriser Manager),在建好了图书数据库中建立图书、读者和借阅个表,方法是点击“图书_读者”右键“新建”下的“表”,如图1.3所示:图1.3 新建表其结构为:图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话):借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主键,Allow Null(是否允许空值)和Default Value(缺省值)等列级数据约

4、柬。)在Enterpriser Manager建立图书、读者和借阅个表的表级约束:每个表的PrimaryKey(主键)约束;借阅表与图书表间、借阅表与读者表之间的(外码)约束,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表的书号和读者编号的UNIQUE(惟一性)约束;实现读者性别只能是“男”或“女”的check(检查)约束,如图1.4、1.5、1.6、1.7所示。图1.4 图书表图1.5 读者表图1.6 check界面图1.7 借阅表这样,各表就定义好了,接下来要求同学们自己利用“管理关系”将各表的级联关系画出来,注意分清楚主键表与外键表,关系应在主键表上建立。提高操作实验建立

5、学生_课程库操作,在SQL Server 企业管理器(Enterpriser Manager)中实现。库中表结构为:学生(学号,姓名,年龄,性别,所在系):课程(课程号,课程名,先行课);选课(学号,课程号,成绩)。要求:)建库、建表、建立表间联系。)选择合适的数据类型。)定义必要的索引、列级约束和表级约束。选择操作实验(1)将自设计的数据库应用系统中的数据库、库中的表、索引和约束用T-SQL表达,并通过企业管理器或查询分析器实现建库、建表、建立表间联系和建立必要的索引、列级约束和表级约束的操作。(2)内容:1)分别利用企业管理控制台创建方式、向导创建方式及命令行方式将下面各表建立到教学管理数

6、据库中。注意:表创建存在先后顺序,实际操作中注意体会。(1)学生表(student),采用企业管理控制台创建方式。字段名代码类型约束学号s_nochar(6)主键姓名s_namechar(10)非空性别s_sexchar(2)只取男、女出生日期s_birthdaydate入学成绩s_scorenumber(5,1)附加分s_addfnumber(3,1)班级编码class_nochar(5)与班级表中class_no外键关联(2)班级表(class),采用企业管理控制台向导创建方式。字段名代码类型约束班级编码class_nochar(5)主键班级名class_namechar(10)非空所属系

7、部dept_nochar(2)与系部表中dept_no外键关联(3)系部表(department),采用命令行方式。字段名代码类型约束系部编码dept_nochar(2)主键系部名dept_namechar(10)非空(4)课程表(course) ,采用命令行方式。字段名代码类型约束课程编码course_nochar(5)主键课程名course_namechar(20)非空(5)教师表(teacher) ,采用企业管理控制台向导创建方式。字段名代码类型约束教师编码t_nochar(6)主键教师姓名t_namechar(8)非空性别t_sexchar(2)只取男、女出生日期t_birthdayd

8、ate职称tech_titlechar(10)(6)选修表(choice) ,采用命令行方式。字段名代码类型约束学生编码s_nochar(6)主键, 与学生表中s_no外键关联,级联删除课程编码course_nochar(5)主键, 与课程表中course_no外键关联成绩scorenumber(5,1)(7)授课表(teaching) ,采用企业管理控制台创建方式。字段名代码类型约束教师编码t_nochar(6)主键, 与教师表中t_no外键关联,级联删除课程编码course_nochar(5)主键, 与课程表中course_no外键关联2)分别利用企业管理控制台和命令行方式查看这些基本表的

9、各种信息。3) 分别利用企业管理控制台和命令行方式为某基本表创建索引,查看其信息,然后删除它。实验报告要求:写出实验目的、实验内容、实验结果和主要实验步骤。列出实验前准备的实验数据表格,指出图书_读者数据库和学生_课程库中各表的属性定义和数据约束。列出实验中出现的问题和解决方法。4写出实验体会。实验2:数据库的建立和维护实验实验目的:要求学生熟练掌握使用SQL、-SQL和SQL Server 企业管理器(Enterpriser Manager)向数据库输入数据、修改数据和删除数据的操作。实验内容:利用SQL Server200企业管理器实现:(1)查看数据库的基本表的结构和数据约束,并将它们调

10、整到正确。(2)在数据库的基本表中正确输入数据。(3)在数据库的基本表中插入、删除和修改数据。(4)浏览数据库中基本表中的数据。实验要求:基本操作实验)通过企业管理器,在图书借阅数据库的图书、读者和借阅个表中各输入10条记录。要求记录不仅满足数据约束要求,还要有表间关联的记录。实验方法:启用SQL Server 2000下的企业管理器,点开“图书_读者”库,点击“表”,分别点击“图书”、“读者”、“借阅”表右键“返回所有行”,就可以输入记录了,当然输入的记录要满足表与表之间的关系,如图2.1、2.2、2.3所示。 图2.1 图书表的记录图2.2 读者表的记录图2.3 借阅表的记录2)图书借阅数

11、据库的三个基本表为图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅日期)。对通过企业管理器实现对图书借阅数据库的图书、读者和借阅个表中数据的插入、删除和修改操作;注意做这些操作前先给数据库或表赋予相应的权限。)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作。要求学生、课程和选课表中各有条以上记录如图2.4、2.5、2.6。 图2.4 学生表图2.5 课程表图2.6 选课表提高操作实验向自设计的数据库应用系统的库中的各表,输入多条实际数据,并实现数据的增、删。改操作。实验方法:启用“查询分析器”,注意当前数据库的选择

12、,也就是在工具栏的中间那个框,默认是“master”库,我们要选择自己的数据库如图2.7所示,这个操作也就相当于命令“USE 图书_读者”,所以接下来做“插入、删除、修改”的操作时就不用再写“USE 图书_读者”这条命令,直接写“插入、删除、修改”命令就OK了,如图2.8,在输入插入命令,并点击工具栏里的“”(命令分析)和“”(执行命令)后的结果。图2.7 在查询分析器窗口选择“图书_读者”库图2.8 插入命令结果请同学们自己继续输入“插入、删除、修改”命令进行练习。选择提高操作实验将用数据修改语句和数据删除语句通过查询分析器。输入给SQL Server数据库,并查看、分析执行的结果,实现正确

13、操作。alter table 读者 add 借阅册数 int;UPDATE 读者 SET 借阅册数 =b.cc from 借阅,(SELECT 读者编号,COUNT(书号) cc from 借阅 group by 读者编号) b where 读者.编号=b.读者编号 and 借阅日期 between 1998-01-01 and 2001-12-31DELETE 借阅 WHERE 读者编号 IN (SELECT 编号 FROM 读者 WHERE 单位=计算机)实验报告要求:写出实验目的、实验内容、实验结果和主要实验步骤。列出实验前准备的实验数据。写出相关的SQL语句。写出实验中出现的问题、注意

14、事项和解决方法。写出实验体会。注意事项:输入数据时要注意数据的类型、主码和数据约束的限制。数据更改和数据删除时要注意外码约束。在用T-SQL语句查询、输入、删除或修改数据时,要先打开数据库,最后执行GO语句结束。思考题:数据库中一般不允许更改主码数据。如果需要更改主码数据时,怎样处理?为什么不能随意删除被参照表中的主码?实验3:数据库的简单查询和连接查询实验实验目的:使学生掌握SQL Server查询分析器的使用方法,加深对SQL和T-SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据连接查询的SQL表达和查询分析操作方法。实验内容:)简单查询操作。该实验包括投影、选择条件表

15、达,数据排序,使用临时表等。)连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。实验方法:将查询需求用T-SQL语言表示;在SQL Server 查询分析器的输入区中输入T-SQL查询语句;设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。实验要求:基本操作实验()简单查询实验在学生选课库中实现其数据查询操作。求数学系学生的学号和姓名:T-SQL语句:select 学号,姓名 from 学

16、生 where 所在系=数学求选修了课程的学生学号:T-SQL语句:select distinct 学号 from 选课求选修C1课程的学生学号和成绩,结果按成绩降序排列,如成绩同按学号升序排列:T-SQL语句:select 学号,成绩 from 选课 where 课程号=C1order by 成绩desc,学号asc求选修课程C1成绩在8090之间的学生学号和成绩,并将成绩乘以0.8输出:T-SQL语句:select 学号,成绩*0.8 from 选课 where 课程号=C1and 成绩 between 80 and 90求数学或计算机系姓张的学生的信息:T-SQL 语句:select *

17、 from 学生 where 所在系 in(数学,计算机)and 姓名 like 张%求缺少了成绩的学生的学号和课程号T-SQL 语句:select 学号,课程号 from 选课 where 成绩 is NULL()连接查询实验在学生选课库中实现其数据连接查询操作。查询每个学生的情况以及他(她)所选修的课程:T-SQL 语句:select 学生.*,选课.* from 学生,选课 where 学生.学号=选课.学号求学生的学号、姓名、选修的课程及成绩:T-SQL 语句:select学生.学号,姓名,课程名,成绩 from 学生,课程,选课 where学生.学号=选课.学号 and 课程.课程号

18、=选课.课程号求选修课程C1且成绩在90分以上的学生学号、姓名及成绩:T-SQL语句:select 学生.学号,姓名,成绩 from 学生,选课 where 学生.学号=选课.学号 and 课程号=C1and 成绩90查询每一门课的间接先行课(即先行课的先行课):T-SQL语句:select A.课程号,A.课程名,B.先行课 from 课程 A,课程 B where A.先行课=B.课程号提高操作实验)建立职工部门库和职工、部门表,并向表中输入数据 职工表职工号姓名性别年龄所在部门1010李勇男20111011刘晨女19141012王敏女22121014张立男2113部门表部门号部门名称电话

19、11生产科56612计划科57813一车间46714科研所2 )用T-SQL语句在职工部门库中实现其数据内连接和各种外查询操作。选择操作实验(1) 设职工社团库有三个基本建立职工社团数据库和基本表,向库中输入一定的记录。 职工(职工号,姓名,负责人,活动地点) 社会团体(编号,名称,负责人,活动地点) 参加(职工号,编号,参加日期)按以下要求用T-SQL语句表示。1定义职工表、社会团体表和参加表,并说明其主码和参照关系。2参加唱歌队或篮球队的职工事情和姓名。3查找没有参加任何社会团的职工情况。4查找参加了职工号为“1001”的职工所参加的全部社会团体的职工号。)通过SQL Server 查询分

20、析器实现查询操作。()设工程零件库有四个表)建立工程零件数据库和基本表,向库中输入一定的记录。 供应商(供应商代码,姓名,所在城市,联系电话); 工程(工程代码,工程名,负责人,预算); 零件(零件代码,零件名,规格,产地,颜色); 供应零件(供应商代码,工程代码,零件代码,数量)。2)以下要求用-SQL语句表示。(1)找出天津市供应商的姓名和电话。(2)查找使用预算在50000100000元之间的工程的信息,并将结果按预算降序排列。(3)找出使用供应商S1所供零件名称及其数量。 (4)找出工程项目J2使用的各种零件名称及其数量。)通过SQL Server 查询分析器实现查询操作。实验报告要求

21、:写出实验目的、实验内容、实验结果和主要实验步骤。写出实验操作的T-SQL查询语句、实验结果。写出实验中出现的问题、注意事项和解决方法。写出实验体会。注意事项:查询分析器设置。T-SQL语句结束时不加“;”.内连接、左外部连接和右外部连接的含义及表达方法。输入SQL语句时应注意,语句中使用西文操作符号,包括引号、等号、逗号等。思考题:如何提高数据查询和连接速度?如何存储SQL代码和查询结果?实验4:数据库的嵌套查询实验实验目的:使学生进一步掌握SQL Server Query Analyzer的使用方法,加深SQL和T-SQL语言的嵌套查询语句的理解。实验内容:在SQL Server Quer

22、y Analyzer中使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。实验方法:将查询需求用T-SQL语言表示;在SQL Server Query Analyzer的输入区中输入T-SQL查询语句;设置 Query Analyzer的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果.用T-SQL语句表示,在学生选课库中实现其数据嵌套查询操作,如果结果不正确,要进行修改,直到正确为止。实验要求:基本操作实验求选修了高等数学的学生学号和姓名。T-SQL语句:select 学号,姓名 f

23、rom 学生 where 学号 in (select 学号 from 选课 where 课程号 in(select 课程号 from 课程 where 课程名=高等数学)求C1课程的成绩高于张三的学生学号和成绩。T-SQL语句:select 学号,成绩 from 选课 where 课程号=C1 and 成绩(select 成绩 from 选课 where 课程号=C1 and 学号=(select 学号 from 学生 where 姓名=张三) ;求其他系中比计算机系某一学生年龄小的学生(即求年龄小于计算机系年龄最大者的学生)T-SQL语句:select * from 学生 where 年龄a

24、ny(select 年龄 from 学生 where 所在系=计算机) and 所在系计算机求其他系中比计算机系学生年龄都小的学生。T-SQL语句:select * from 学生 where 年龄all(select 年龄 from 学生 where 所在系=计算机) and 所在系计算机求进修了C2课程的学生姓名。T-SQL语句:Select 姓名 from 学生 where exists(select * from 选课 where 学生.学号=学号 and 课程 =C2)求职没有选修C2课程的学生姓名。T-SQL语句:Select 姓名from 学生 where not exists(

25、select * from 选课 where 学生.学号=学号 and 课程号=C2)查询送修了全部课程的学生姓名。T-SQL语句:Select 姓名 from 学生 where not exists(select * from 课程 where not exists(select * from 选课 where 学生.学号=学号 and 课程.课程号=课程号)求职至少选修了学生为“S2”的学生所选修的全部课程的学生学号的姓名。T-SQL语句: Select 学号,姓名 from 学生 where not exists(select * from 选课 选课1 where 选课1.学号=S2a

26、nd not exists(select * from 选课 选课2 where 学生.学号=选课2.学号 and 选课2.课程号=选课1.课程号)提高操作实验按以下要求用T-QL语句表示并通过SQL Server查询分析器实现查询操作。找出上海厂商供应的所有零件号码。找出使用上海产的零件的工程名称。找出没有使用天津产零件的工程号码。选择操作实验将自设计的数据库应用项目中的数据查询操作分类,用T-SQL语句表示其中的简单、连接和嵌套查询,并通过SQL Server Query Analyzer实现其查询操作。实验报告要求:写出实验目的、实验内容、实验结果和主要实验步骤。列出实验前准备的实验数据

27、。写出相关的T-SQL语句。写出实验中出现的问题、注意事项和解决方法。写出实验体会。注意事项:子句where表示元组筛选条件,子句having表示组选条件。组合查询的子句间不能有语句结束符或GO语句。子句having必需和group by子句配合使用。思考题:组合查询语句是否可以用其他语句代替,有什么不同?使用group by子句后,语句中的统计函数的运行结果有什么不同?实验5:数据库的组合查询和统计查询实验实验目的:使学生熟练掌握SQL Server 查询分析器的使用方法,加深对SQL和-SQL语言查询语句的理解。熟练掌握数据查询中分组、统计、计算和组合的操作方法。实验内容:1)分组查询实验

28、。该实验包括分组条件表达、选择组条件表达的方法。2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。3)组合查询实验。4)计算和分组计算查询的实验。实验方法:将查询需求用T-SQL语言表示;在SQL Server 查询分析器的输入区中输入T-SQL查询语句;设置 查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。1基本操作实验(在图书借阅库中实现其查询操作)1)查找这样的图书类别:要求类别最高的图书定价不低于全部按类别分组的图书平均定

29、价的0.8倍.T-SQL语句:Select A.* from 图书A group by A.类别 having max(A.定价)=all(select 0.8*avg(B.定价) from 图书B group by A.类别)2)求机械工业出版社出版的各类图书的平均定价,用Group By表示.T-SQL语句:Select 类别,avg(定价) 平均价 from 图书 where 出版社=机械出版社group by 类别 oder by 类别 asc3)列出计算机类图书的书号,名称及价格,最后求出册数和总价格.T-SQL语句:Select 书号,书名,定价 from 图书 where 类别=

30、计算机oder by 书号asc compute count(*),sum(定价)4)列出计算机类图书的书号,名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格.T-SQL语句:Select 书号,书名,定价 from 图书 where 类别=计算机类order by 出版社 compute count(*),sum(定价) by 出版社 compute count (*),sum(定价)5)查询计算机类和机械工业出版社出版的图书.T-SQL语句:Select * from 图书 where 类别=计算机类union all select * from 图书 where 出版社

31、=机械工业出版式提高操作实验求学生的总人数.求选修课程的学生人数.求课程和选修该课程的人数.求选修课超过3门的学生学号.转换为T-SQL语句,在学生选课库中实现其数据查询操作。选择操作实验)按以下要求用-SQL语句表示,并通过SQL Server 查询分析器实现查询操作。在工程零件库中把全部红色零件的颜色改为蓝色将由供应商S5供给工程代码为J4的零件P6改为由S3供应由S3供应,并作其他必要修改.)将自设计的数据库应用项目中的分组、统计、计算和组合查询,用T-SQL语句表示,并通过SQL Server 查询分析器实现其查询操作。实验报告要求:写出实验目的、实验要求、实验结果和主要实验步骤。列出

32、实验前准备的实验数据。写出相关的T-SQL语句。写出实验中出现的问题、注意事项和解决方法。写出实验体会。注意事项:子句where表示元组筛选条件,子句having表示组选择条件。组合查询的子句不能有语句结束符或GO语句。子句having必需和group by 子句配合使用。思考题:组合查询语句是否可以用其他语句代替,有什么不同?使用group by 子句后,语句中的统计函数的运行结果有什么不同?实验6:数据库的视图和图表的定义及使用实验实验目的:使学生掌握SQL Server中的视图创建向导和图表创建向导的使用方法,加深对视图和SQL Server图表作用的理解。实验内容:)创建、查看、修改和

33、删除视图。)创建、编辑和删除数据库图表。用视图创建向导创建视图,用工具和向导创建数据库图表基本操作实验)在SQL Server 企业管理器中利用视图向导来创建视图,打开企业管理器,选中图书数据库,点击“工具”下面的“向导”,创建借阅计算机图书视图;如图6.1所示,点击“创建视图向导”就可以一步步创建所要的视图了,注意创建的视图不要有重复列,最好考虑清楚所创建的视图要有一定的意义。图6.1视图向导也可以在查询分析器中写SQL 命令来创建:Create View借阅_计算机图书As select 图书.*,借阅.读者编号,借阅.借阅日期From 图书,借阅Where 图书编号=借阅.书号 AND

34、图书.类别=计算机提高操作实验在SQL Server 企业管理器中,用视图创建向导创建这个视图。建立计算机系学生的视图由学生、课程和选修课三个表,定义一个计算机系的学生成绩视图,其属性包括学号、姓名、课程名和成绩将学生的学号、总成绩、平均成绩定义成一个视图选择操作实验将自设计的数据库应用项目中的子模式,用T-SQL描述其视图定义,并在SQL,SQL Server 企业管理器中,用视图创建向导创建这些视图。实验报告要求:写出实验目的、实验内容、实验结果和主要实验步骤。列出实验前准备的实验数据:相关的T-SQL语句;视图结构信息;关系图信息。列出实验中出现的问题、注意事项和解决方法。写出实验体会。

35、注意事项:参照表和主表之间的关系。主码和外码间的关系。视图中字段名的重命名问题。思考题:为什么要建立视图?视图和基本表有什么不同?视图和关系图有什么不同?实验7:数据完整性和数据安全性实验实验目的:通过实验使学生加深对数据安全性和完整性的理解,了解SQL Server的数据安全性和完整性控制机制,掌握SQL Server中有关用户、角色及操作权限的创建和管理方法,学会通过T-SQL表达触发器和创建触发器的方法。实验内容:)数据库的安全性实验。在SQL Server企业管理器中,设置SQL Server的安全认证模式,实现对SQLerver的用户和角色管理,设置和管理数据操作权限。2)数据库的完

36、整性实验。使用T-SQL设计规则、缺省、约束和触发器,通过SQL Server 企业管理器定义它们。实验要求:基本操作实验1)在SQL Server 企业管理器中为所属的SQL服务器设置WindowsNT安全认证模式。2)在SQL Server 企业管理器中为自己建立一个服务器用户、数据库用户和数据库角色。并将自己创建的学生选课库、图书借阅库的所有操作权赋予它们,将自设计的数据库的操作权赋予新建的数据库用户。(1)设置安全认证模式在企业管理器中扩展开SQL 服务器组,用鼠标右键单击需要设置的SQL服务器,在弹出的菜单中选择“属性”项,选择“安全性”,如图7.1。图7.1 设置安全认证模式(2)

37、登录(服务器用户)的创建和管理1)安全性文件夹进入企业管理器,打开SQL服务器组和SQL服务器,选择“安全性”文件夹,可以看出“安全性”文件夹包含4个对象:登录、服务器角色、链接服务器和远程服务器,如图7.2所示。 图7.2 安全性文件夹图2)用鼠标右键单击登录对象,出现的弹出菜单,在弹出菜单中选择”新登录“,就会出现一个”登录属性“对话框,如图7.3所示。 图7.3 登录属性3)选择“常规”选项卡,输入登录用户的一般特征,包括输入用户名,选择该用户的安全认证模式,选择默认数据库和默认语言。设置时,如果使用SQL Server身份验证,可直接在名称栏中输入新登录名;如果选择Windows身份验

38、证,则要单击“名称”文本框右边的“按钮,调出windows预设的登录用户表,从中选择添加的登录名称。4)选择“服务器角色“选项卡,选中”服务器角色“,使该登录用户成为相应的服务器角色成员,在下面的“描述”栏中,列出了当前被选中的服务器角色的权限,如图7.4所示。 图7.4 服务器角色权限5)选择“数据库访问”选项卡,在页面上部的列表中确定用户能访问的数据库,在下部的列表中确定登录用户所属的数据库角色,如图7.5所示,通过单击前端的复选框实现。 图7.5 登录用户的数据库角色选择6)操作完成后,单击“确定”按钮(3)数据库用户的创建1)在企业管理器中扩展SQL 服务器及数据库文件夹;用鼠标右键单

39、击“用户”,出现用户弹出菜单,选择“新建数据库用户”项,出现“新建数据库用户”对话框,如图7.6。 图7.6 新建数据库用户2)在对话框“登录名”列表框图选择一个SQL服务器登录用户名,并在它下面的“用户名”文本框中输入数据库用户名,在下面的“数据库角色成员”列表中选择参加的角色。3)单击“确定”按钮。(4)登录用户加入服务器角色1)在企业管理器中,扩展指定的SQL服务器、安全性文件夹,单击“服务器角色”后,就会在右面的细节窗口中出现8个预定义的服务器级角色。选中一个服务器角色,例如Database creators,单击鼠标右键,出现弹出菜单,如图7.7所示。 图7.7 数据库用户访问许可2

40、)选择“属性”项后,出现“服务器角色属性”对话框,选择“常规”选项卡,单击“添加”按钮后出现“选择登录用户”对话框;在对话框中选择登录用户名后,单击“确定”回到“常规”选项卡,如图7.8所示。 图7.8 服务器角色常规选项卡3)选择“权限”选项卡,可以看到该服务器角色可以执行的全部操作权限,如图7.9。 图7.9 服务器角色权限4)单击“确定”。)用企业管理器创建存储过程和触发器的方法:建立缺省和捆绑缺省,为选课表建立一个插入触发器,保证学生_课程库选课表的参照完整性的触发器:T-SQL语句:Create TRIGGER SC_insert ON 选课 for insert as if(sel

41、ect count(*) from 学生,inserted,课程 where 学生.学号码=inserted.学号 and 课程.课程号=inserted.课程号)=0 rollback transaction提高操作实验1)仿照上题为图书读者库中的借阅表建立一个保证参照完整性以维护外码与被参照表中的主码一致的触发器:T-SQL语句:Create TRIGGER 借阅_insert ON 借阅 for insert as if(select count(*) from 图书,inserted,读者 where 图书.书号=inserted.书号 and 读者.编号=inserted.读者编号)

42、=0 rollback transaction2)建立一个学生与选课表间,为维护参照完整性而使用的联级删除触发器、联级修改触发器和受限插入触发器:T-SQL语句:Create TRIGGER 学生_delete ON 学生 for delete as delete 选课 from 选课,deleted where 选课.学号=deleted.学号GOCreate TRIGGER 学生_update ON 学生 for update as update 选课 set 学号=inserted.学号 where 选课.学号=deleted.学号GoCreate TRIGGER 选课_insert O

43、N 选课 for insert as if(select count(*) from 学生,inserted where 学生.学号=inserted.学号)=0 rollback transaction选择操作实验针对自设计的数据库应用项目中完整性要求,用-SQL进行定义并通过 企业管理器实现。实验方法:1)启动企业管理器,选定相应的数据库进行以上的各项实验。 2)启动查询分析器,选定数据库,输入相应的T-SQL语句,进行分析运行,得出结果。实验报告要求:1)写出实验目的、实验内容、实验结果和主要实验步骤,目前SQL Server安全认证模式、新建的登录用户、数据库角色和用户属性及权限情况。

44、2)列出实验前准备的实验数据:设置权限和相关的T-SQL语句。3)写出实验中出现的问题、注意事项和解决方法。4)写出实验体会。注意事项:1)用户、角色和权限的职能和它们之间的关系。SQL Server中两样角色和用户的特点。2)各种触发器的含义和T-SQL表示方法。 3)两种SQL Server的安全认证模式及特点。思考题: 1)SQLServer 中有哪些数据安全性功能?性能怎样?有哪些不足之处? 2)SQLServer 中有哪些数据完整性功能?性能怎样?有哪些不足之处? 3)什么是触发器?触发器的主要功能是什么?实验8:数据库备份和恢复实验实验目的:使学生了解SQLerver的数据备份和恢

45、复机制,掌握SQL Server中数据库备份和恢复的方法。实验内容:1)为学生选课库设置一个备份计划,要求每当CPU空闲时进行数据库备份2)为图书馆阅览库设置一个备份计划,要求每月一号进行备份在企业管理器中恢复学生选课数据库修改学生选课库备份计划,要求每星期对库备份一次实验方法:参照SQL Server参考书中数据备份和恢复机制的内容进行。启动企业管理器,选中要进行备份的数据库,按右键选“所有任务”下面的“备份数据库”如图8.1所示,备份的名称可改,选择完全备份,点击“备份到”下的“添加(A)”将选择备份路径或备份设备,如图8.2所示,在图8.3中输入备份文件名即可,注意文件名不用后缀,然后确

46、定就行了。图8.1 数据库备份界面图8.2选择备份路径或备份设备图8.3 选择备份路径及输入备份文件名 数据库的恢复即还原的操作方法如下: 启动企业管理器,点击“数据库”,如图8.4所示,右键选“所有任务”下的“还原数据库”,如图8.5,在“还原为”里默认为“master”,我们要输入自己想要还原的数据库名,再选中“从设备”,然后点击“从设备”如图8.6,点击“添加”选择自己原来的备份,如图8.7,然后确定,回到图8.5,点击“选项”,选中“现有数据库基础上强制还原”,如图8.8,就可以顺利还原了。图8.4企业管理器界面图8.5填写还原数据库名称及选择界面图8.6添加还原路径界面图8.7选择要

47、还原的文件名界面图8.8选择用来还原的数据库备份图8.9 还原数据库的选项界面实验9 数据库编程实验(综合实验)实验目的:利用VB、VC或delphi做用户界面,实现数据的输入、删除、查询等功能。实验内容: 1、利用企业管理器创建学生_课程库,库名用英文字母表示(注意起个“望文生义”的数据库名)student_course, student_course 包括三个表:学生表(student)、课程表(course)和选课表(sc),各表结构、字段名及表关系如下表示:1)学生表(student): 字段名代码类型约束学号snochar(7)主键姓名snamechar(10)非空性别ssexcha

48、r(2)只取男、女年龄sageTinyint(1)所在系sdeptChar(20)2)课程表(course) :字段名代码类型约束课程编码coursenochar(5)主键课程名coursenamechar(20)非空 3)选课表(sc):字段名代码类型约束学号snochar(7)主键, 与学生表中sno外键关联,级联删除课程编码coursenochar(5)主键, 与课程表中courseno外键关联成绩scorenumber(9,1) 2、每个表输入10条记录。 3、利用VC或VB编程工具,编程实现对数据库中的表进行管理:可以实现数据记录的添加、修改、删除和浏览等功能。附录:VC与数据库编程

49、实验参考数据库访问控件: 使用控件访问数据库是一种比较简单的访问数据库的方法,因为控件中已经完成了访问数据库的功能,而且有比较友好的用户界面,只需要简单配置就可以使用。在使用Visual Basic开发数据库应用程序的时候,会经常使用数据库访问控件。常用的数据库访问控件包括:ADO Data控件DataList控件/DataCombo控件DataGrid控件下面对这些控件的主要功能用使用方法进行介绍。ADO Data控件 ADO Data 控件是使用ADO技术访问数据库的具体实现,可以通过以下几点了解ADO Data控件的基本情况。可以使用ADO Data控件快速地创建一个到数据库的连接;AD

50、O Data控件使用Recordset对象提供对存储在数据库中数据的访问,并允许从一个记录移动到另一个记录,显示和操纵记录数据。ADO Data控件可以执行大部分数据库访问操作,但是它并不能够显示数据库中数据的内容,ADO Data控件通常需要与其他控件结合使用。这些与ADO Data控件结合使用的控件,可以称之为“数据觉察控件”。常用的数据觉察控件包括DataList控件、DataCombo控件和DataGrid控件等。当ADO Data控件中当前记录发生变化时,数据觉察控件的内容也会随之发生变化。本节将通过一个实例介绍ADO Data控件的注册和使用方法。利用VC创建一个基于对话框的工程,

51、工程名为ADOData。在默认情况下,ADO Data控件并不出现在Visual C+的控件工具栏中,需要用户手动将其添加到工程中。可以使用下面的方法将ADO Data控件添加到工程中。在系统菜单中选择“Project”/”Add to Project”/”Components and Controls”,打开”Components and Controls Gallery”对话框,如图9.1所示。图9.1 “Components and Comtrols Gallery”对话框双击”Registered ActiveX Controls”目录,可以看到已经注册的ActiveX控件,如图9.2

52、所示。图9.2 选择ADO Data控件双击”Microsoft ADO Data Control,version 6.0(OLEDB)”,将会弹出如图9.3所示的提示对话框,询问用户是否插入控件。图9.3 提示是否插入控件单击“确定”按钮,打开”Confirm Classes”窗口,如图9.4所示图9.4 打开”Confirm Classes”窗口为了使用户能够在工程中ADO Data中控件,系统将在工程中自动添加7个类包括Cadodc、Cfields、ColeFont、Cproperties、Cproperty和C_Recordset。其中C_Recordset是记录集类,Cfields是

53、字段组类,Cfield字段类,它们是ADO Data控件中比较常用的类。单击”OK”,返回如图9.2所示的对话框,再单击”Close”,关闭窗口呵以看到,在控件工具栏中新增了一个按钮,这就是ADO Data控件,如图9.5所示。 图9.5在控件工具栏中的ADO Data控件按钮ADO Data控件的常用属性及说明如下:BOF如果当前记录位于Recordset对象的第一个记录之前,则BOF等于true,否则BOF等于false。ConnectionString指定连接字符串,用于建立到数据源的连接。ConnectionTimeout指定连接数据库的等待时间,如果超过此时间还没有连接到数据库,则产

54、生一个错误。EOF如果当前记录位于Recordset对象的第一个记录之后,则EOF等于true,否则EOF等于false。通常用BOF和EOF属性判断记录集的当前游标位置是否存在有效数据。MaxRecords返回Recordset对象中记录的数量。Mode指定对数据尖的访问权限。AdModeUnknown是默认值,表明权限尚未设置或无法确定;AdModeRead表明权限为只读;AdModeWrite表明权限为只写;AdModeReadWrite表明权限为读/写;AdModeShareDenyRead防止其他用户使用读权限打开连接;AdModeShareDenywrite防止其他用户使用写权限打

55、开连接;AdModeShareExclusive防止其他用户打开连接;AdModeShareDenyNone防止其他用户使用使用任何权限打开连接。Password设置连接到数据源时指定用户的口令。RecordSource设置一个数据记录源,可以是表、视图或SELECT语句等。查询结果保存在Recordset属性中。UserName 设置连接到数据源的用户。工程默认创建的对话框为IDD_ADODATA_DIALOG,在控件工具栏中选中ADO Data控件,将其添加到对话框IDD_ADODATA_DIALOG中。右键单击ADO Data控件,打开控件属性窗口如图9.6所示。图9.6 设置ADO D

56、ata控件的属性可以看到,默认的控件ID为IDC_ADODC1。通常ADO Data控件是不可见的,所以要取消Visible属性的选择。单击“通用”选项卡,可以设置连接属性,如图9.7所示。图9.7 设置连接属性可以通过ODBC数据源连接到数据库,创建ODBC数据源的方法可以通过控制面板进行。如果读者不希望在安装程序的客户端都配置ODBC数据源,可以选择“使用连接字符串”。单击“生成”,打开“数据链接属性”窗口,如图9.8所示。图9.8 “数据链接属性”窗口选择”Microsoft OLE DB Provide for SQL Server”,单击“下一步”,打开“连接”页面,如图9.9所示。

57、图9.9“连接”界面选择SQL Server数据库服务器的名称,本例中为NTSERVER,用户可以根据自己的实际情况选择;输入登录服务器的信息,可以使用sa用户登录;在数据库列表中选择要连接的数据库。配置完成后,单击“测试连接”,如果连接成功,可以看到一个“测试连接成功”的消息框。单击“确定”,完成设置。在ADO Data控件的属性窗口中,单击“身份认证”选项卡,如图9.10所示。图9.10 设置“身份验证”信息单击“记录源”选项卡,在“命令类型”组合框中选择“2-adCmdTable”,然后在“表或存储过程名称”组合框中选择“Employees”,如图9.11所示。图9.11 设置记录源此时

58、运行程序,还无法看到效果,因为ADO Data控件只起到连接数据源的作用还需要借助其他控件显示数据。此功能将在下一小节介绍。DataGrid控件 DataGrid控件以表格形式显示结果集中的数据,它需要ADO Data控件提供数据源。在默认情况下,DataGrid控件并没有出现在Visual C+的控件工具栏中,参照前面说过的方法将其添加到工程ADOData中,在“registered ActiveX Controls”目录下双击”Microsoft DataGrid Control,Version 6.0(OLEDB)”,如图9.12所示。图9.12 添加DataGrid控件 双击”Micr

59、osoft DataGrid Control,Version 6.0(OLEDB)”,在弹出的对话框中单击“确定”,打开”Confirm Classess”窗口,如图9.13所示。图9.13 “Confirm Classes”窗口为了使用户能够在工程中使用DataGrid控件,系统将在工程中自动添加10个类,包括CDataGrid、CColumns、Cspliit、CDataFormatDisp、CStdDataFormatsDisp、CColumn和CSplits、COleFont、CSetBookmarks和CPicture等。单击“OK”,返回如图9.12所示的对话框,再单击“Close

60、”关闭窗口。可以看到,在控件工具栏中新增了一个按钮,这就是DataGrid控件,如图9.14所示。 图9.14 在控件工具栏中的DataGrid控件按钮在控件控件栏中DataGrid控件,在对话框IDD_ADOATA_DIALOG中拉动鼠标,添加DataGrid控件,界面如图9.15所示。 图9.15 在对话框中添加DataGrid控件右键单击DataGrid控件,在弹出的菜单中选择“Properties”,打开属性窗口。单击“All”选项卡,可以查看和设置DataGrid控件的所有属性,如图9.16所示。图9.16 设置DataGrid控件的所有属性在DataSource属性中,选择IDC_

温馨提示

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

评论

0/150

提交评论