




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库系统概论实验指导(第六版)计算机学院2010/09改版履历版数改版日期改版者内容第一版2005/08李建良新做成第二版2005/10李宁1)增加作业题部分2)增加实验报告模板第三版2006/09李宁1)增加评分标准2)增加数据备份还原第四版2007/09李宁根据实验次数重新调整实验内容第五版2008/09李宁根据第四版教材的变更进行了如下变动:1) 实验指导中涉及的教材页码2) 实验二的第8,9实验内容第六版2010/09李宁1) 根据实验环境的变更修正相关实验内容(SQL2000 - SQL2008)2) 根据实验次数调整实验内容 目录目录31.实验概要41.1.实验说明41.2.实验
2、环境和配置41.3.上机要求42.实验1:数据库/表的基本操作和表级约束52.1.目的和要求52.2.实验准备52.3.实验内容53.实验2:库级约束和基本表的数据操作103.1.目的和要求103.2.实验准备103.3.实验内容104.实验3:视图操作和安全性控制184.1.目的和要求184.2.实验准备184.3.实验内容19实验5:触发器、存储过程、数据源245.1目的与要求245.2实验准备245.3实验内容24实验5:数据库综合实验374.4.目的与要求374.5.实验准备374.6.实验内容375.3.1.题目一:零件交易中心管理系统385.3.2.题目二:图书管理系统385.3.
3、3.题目三:民航订票管理系统385.3.4.题目四:学生学籍管理系统385.3.5.题目五:车站售票管理系统395.3.6.题目六:企业人事管理系统395.3.7.题目七:电话交费管理系统395.3.8.题目八:医药销售管理系统395.附录:实验报告格式401. 实验概要1.1. 实验说明 内容:本课程实验分5次完成,每次完成一部分。具体内容参考本指导的后半部分。 成绩总成绩为100分,每次实验100分,最后取平均分。评分标准如下:项目具体要求分值考勤正常出勤或请假 (无故缺席者0分)10预习报告(无固定格式,纸版或电子版均可)10实验实验过程结果的正确性()60报告实验相关文档的正确性,整洁
4、性20总分100 实验报告每次实验需提交电子版的实验报告(最后一次实验需提交设计文档,源程序等相关资料)。每次实验结束时,将写好的实验报告,提交给各班辅导老师。如果确有困难没有完成的情况下,课后自己完成之后提交到辅导老师的邮箱里。由辅导老师根据课堂上机实验检查状况和实验报告的内容给出每次实验的成绩。实验报告的内容包括:实验内容、实验步骤、程序源码、运行结果(可以是程序的输出,也可以是运行画面的抓屏,抓屏图片要尽可能的小,否则文件太大)。每份实验报告是一个WORD文档。实验报告命名规则如下:DBx(实验次数)_XXXXXX(学号)_姓名例如:的学生的第一次实验报告文件名: DB1_李宁注意:请每
5、个人保存好自己的实验报告的电子版,直到该门课考试成绩公布之后。1.2. 实验环境和配置SQL Server 2008(Microsoft SQL Server 2008 Express With Advance Service)1.3. 上机要求l 上机之前,请做好预习,需要写一个简单的预习报告,格式不限。l 严格遵守实验室的各项规定。2. 实验1:数据库/表的基本操作和表级约束2.1. 目的和要求1. 了解SQL Server数据库的逻辑结构和物理结构,基本数据类型以及基本使用方法。2. 学会使用图形用户界面以及命令行方式(SQL语言)创建数据库和表。3. 学会使用不同的方法备份和还原数据库
6、。4. 掌握表级约束的定义、使用和删除方法。2.2. 实验准备1 要明确能够创建数据库的用户必须是系统管理员,或是被授权可以使用CREATE DATABASE语句的用户。2 创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长及增长的方式)和存储数据的文件。3 了解常用的创建数据库和表的方法。4 了解数据库备份和还原的基本方法。5 了解表级约束的定义、使用和删除方法。2.3. 实验内容1. 利用图形用户界面创建,备份,删除和还原数据库和数据表 (30分,每小题5分)l 数据库和表的要求(1) 依据课本P127(第四版教材,下同)的第三题,
7、创建一个名为SPJ的数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名和物理文件名均采用默认值。(2) 数据库SPJ包含供应商表,零件表,工程项目表,供应情况表。具体每张表的定义以及数据参看课本P74页的第五题。l 完成以下具体操作:(1) 创建的SPJ数据库。(2) 在SPJ数据库中分别创建上述的四张表(只输入一部分数据示意即可)。(3) 备份SPJ数据库。(4) 删除已经创建的工程项目表(J表)。(5) 删除SPJ数据库。(6) 还原刚才删除的SPJ数据库。2. 利用SQL语言创建
8、和删除数据库和数据表 (30分,每小题5分)l 数据库和表的要求(1) 创建用于学生信息的数据库,数据库名为Student, 初始大小为20MB,最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名和物理文件名,日志文件名请自定义。use masterif exists(select * from sysdatabases where name=student10)drop database student10create database student10on(name=student10,filenam
9、e=F:hykstudent10.mdf,size=20,maxsize=100,filegrowth=10)log on(name=student10_log,filename=F:hykstudent10.idf,size=2,maxsize=5,filegrowth=1)-sysdatabases 是系统视图,if语句里面的条件是布尔型-mdf是主文件idf是日志文件(2) 数据库Student包含学生信息,课程信息和学生选课的信息。包含下列3个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。各表的结构以及数据如下所示: 表 2.1 学生基本信息表(表名:S)snosn
10、amessexsbirthSdept95001李勇男1986/1/1CS95002刘晨女1985/2/1IS95003王敏女1886/10/4MA95004张立男1985/6/8IS表 2.2 课程基本信息表(表名:C)cnocnamecpnoCcredit1数据库242数学33信息系统144操作系统535数据结构636C语言2表 2.3 学生选课信息表(表名:SC)snocnograde9500119295001285950013879500227895002384l 完成以下实际操作:(1) 用T-SQL语句创建数据库Student。用T-SQL语句创建上述的三张表,各个字段的数据类型请自
11、己确定,每张表只要有主键约束即可,不要其他约束。不用输入数据,只要表的结构就可以。create table s(sno char(20) primary key,sname char(20) ,ssex char(20),sbirth char(20),sdept char(20)create table c(cno char(20) primary key,cname char(20) ,cpno char(20),ccredit char(20)create table sc(sno char(20) ,cno char(20) ,grade char(20),primary key(sn
12、o,cno)-可在创建表的时候加入各种约束用T-SQL语句备份数据库Student。-use masterexec sp_addumpdevice disk,student10back,f:hykstudent10.bak;backup database student10 to student10back;-exec是什么意思-备份介质,逻辑名称,备份文件实体(2) 用T-SQL语句删除创建的表。(3) 用T-SQL语句删除创建的数据库。-()删除数据库drop database student10(4) 用T-SQL语句还原刚才备份的数据库Student-()恢复数据库restore da
13、tabase student10 from student10back-注意语句使用的逻辑名称来恢复3. 利用图形用户界面对上题中创建的Student库的S表中,增加以下的约束和索引。(25分,每小题5分) (1) 将学号(sno)设置为主键,主键名为pk_sno。(2) 为性别(ssex)添加默认约束(默认值),其值为“男”。(3) 为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。(4) 为出生日期(sbirth)添加CHECK约束,约束名为ck_sbirth,其检查条件为:出生日期大于1986年1月1日。(5) 为sbirth创建一个降序排列的UNIQUE索引,索引名
14、为IX_Sbirth。4. 用SQL语言为Student数据库中的SC表添加外键约束,要求如下:将sno,cno设 置为外键,其引用表为分别是S表和C表,外键名称分别为fk_sno,fk_cno。(2分)alter table sc add constraint fk_sno foreign key (sno) references s(sno)alter table sc add constraint fk_cno foreign key (cno) references c(cno)alter table sadd constraint pk_snoprimary key (sno)ALT
15、ER TABLE s add CONSTRAINT DF_s_ssexdefault male-如何设置默认值-改变表的属性,sno两边要加括号-5. 利用图形用户界面根据上面的外键定义画出由S,C,SC表构成的数据库关系图。(3分)6. 用SQL语言删除S表中所创建的约束或者索引(第3小题中的(1)-(5)。(10分,每小题2分)ALTER TABLE s DROP CONSTRAINT PK_snoALTER TABLE s DROP CONSTRAINT DF_s_ssexdrop index ix_sbirth on sALTER TABLE s DROP CONSTRAINT uk_
16、snameALTER TABLE s DROP CONSTRAINT ck_sbirth -check约束,唯一键,默认值的设定3. 实验2:库级约束和基本表的数据操作3.1. 目的和要求1. 掌握规则的创建、使用和删除方法。2. 掌握默认对象的创建、使用和删除方法。3. 学会在图形用户界面中对表进行插入、修改和删除数据操作。4. 学会使用T-SQL语句对表进行插入、修改和删除数据操作。5. 掌握SELECT语句的各种查询语句。3.2. 实验准备1 了解规则/默认对象的创建和删除的方法。2 了解绑定规则/默认对象的具体使用方法。3 了解图形用户界面中对表的各种操作方法。4 了解T-SQL中用于
17、对表数据进行插入(INSERT)、修改(UPDATE)和删除(DELETE)命令的用法。5 了解SELECT语句的各种查询语句。3.3. 实验内容1 利用SQL语言创建,验证和删除规则。(10分,每小题5分)(1) 创建一个ssex_rule规则,将其绑定到S表的ssex性别字段上(请验证该规则生效,保证了输入的性别只能是“男”或者“女”)。Create rule ssex_ruleAS ssex IN (男, 女)-带有的变量时什么意思?EXEC sp_bindrule ssex_rule, s.ssex -绑定规则的系统存储过程(2) 删除ssex_rule规则(注意:规则已绑定到ssex
18、表的性别字段上,需要先解除原有的绑定)。2 利用SQL语言创建,验证和删除默认值。(10分,每小题5分)(1) 创建一个ssex_def默认对象,将其绑定到S表的ssex性别字段上,使其默认值为“男”(请验证该默认值生效)。(2) ssex_def(注意:默认对象已绑定到S表的ssex性别字段上)。CREATE DEFAULT ssex_def AS 男-创建默认对象EXEC sp_bindefault ssex_def, S.ssex-绑定drop rule ssex_rule -对列的限制可以采用规则绑定和表级约束两种方法来实现3 在图形用户界面中对表中的数据进行更新操作。(6分,每小题2
19、分)(1) 按照P75页所示数据,输入四张表中的数据。(2) 修改S表的任意一条数据(3) 删除S表的任意一条数据。4 用T-SQL语句对表中的数据进行更新操作。(12分,每小题3分)(1) P127页 5题的8-11小题。-8.把全部红色的零件改成蓝色-SQL代码:update Pset COLOR=蓝where COLOR=红-9.由s5供给J4的零件P6改为由S3供应-SQL代码:update SPJset SNO=S3where sno=s5 and jno=J2 and pno=P6-10.从供应商关系中删除S2的记录,并从相应的供应关系中删除相应的记录-SQL代码:deletefr
20、om Swhere sno=s2delete from spjwhere sno=s2-(会因为外键约束而中断)-11.将(s2,j6,p4,200)插入供应情况关系-SQL代码:insertinto spj(sno,jno,pno,qty)values(s2,j6,p4,200)5 用T-SQL语句完成下面的数据查询(52分,每小题4分)(1) P127页 第4题。(5道小题)-1.求供应工程J1零件的供应商号码sno:-SQL代码:SELECT distinct snofrom spjwhere jno=j1-2. 求供应工程J1零件p1的供应商号码sno:-SQL代码:SELECT sn
21、ofrom spjwhere jno=j1 and pno=p1-3.求供应工程j1零件为红色的供应商号码sno:-SQL代码:SELECT spj.snofrom spj,pwhere p.COLOR=红 andp.pnO=spj.pno andspj.jno=j1-4.求没有使用天津供应商生产的红色零件的工程号jno:-SQL代码:SELECT distinct spj.jnofrom spjexceptSELECT distinct spj.jnofrom spjwhere EXISTS(SELECT *FROM S,PWHERE S.CITY=天津and p.color=红and sp
22、j.pno=p.pnoand spj.sno=s.sno)-5.求至少使用了供应商s1所供应的全部零件的工程号jno:-SQL代码:select distinct jnofrom spj spjxwhere not exists(select *from spj spjywhere spjy.sno=s1 andnot exists(select *from spj spjzwhere spjx.jno=spjz.jnoand spjz.pno=spjy.pno)第二种比较简单的代码:select jnofrom spjwhere pno in(select distinct pnofrom
23、spjwhere sno=s1)group by jnohaving count(distinct pno)=(select count(distinct pno)from spjwhere sno=s1)(2) P127页 第5题的1-7小题。(7道小题)(1) 找出全部供应商所在城市和姓名SQL代码:select sno ,sname ,cityfrom s运行结果:(2) 找出所有零件的名称颜色和重量代码:select pno,pname,color,weightfrom p运行结果:(3) 找出使用供应商所供应零件的工程号码代码:select distinct jnofrom spjw
24、here spj.sno=s1运行结果(4) 找出工程项目使用的各种零件的名称及数量SQL代码:select pname,sum(qty)from spj ,pwhere spj.jno=j2 and p.pno=spj.pnogroup by pname运行结果:(5) 找出上海厂商所供应的所用零件的号码SQL代码:select pnoFrom spjwhere spj.sno in(select distinct snofrom swhere s.city=上海)运行结果:(6) 找出使用上海产的零件的工程名称SQl语句:select distinct jnamefrom spj,jwhe
25、re spj.jno=j.jno and spj.sno in(select distinct snofrom swhere s.city=上海)运行结果:(7) 找出没有使用天津产的零件的工程号码SQl语句:select jnofrom spjexceptselect distinct jnofrom spjwhere spj.sno in(select distinct snofrom swhere s.city=天津)5.查询这样的工程:供给该工程的零件P1的平均供应量大于供给工程J1的任何一种零件的最大供应量。select jnofrom spjwhere pno=p1group by
26、 jnohaving avg(qty)(select max(qty)from spjwhere spj.jno=j1)6 针对实验一创建的Student数据库进行下面的数据查询(10分,每小题5分)(1) 求不选修C语言课程的学生学号。select snofrom sexceptselect snofrom scwhere cno=(select cnofrom cwhere cname=c语言)(2) 求这样的学生姓名:该学生选修了全部课程并且其中一门课在90分以上。select snamefrom swhere sno in(select snofrom scwhere snoin(se
27、lect snofrom swhere not exists(select *from cwhere not exists(select *from scwhere sno=s.snoand cno=o)group by snohaving max(grade)90)4. 实验3:视图操作和安全性控制4.1. 目的和要求1 掌握使用图形用户界面和SQL语言创建,操作和删除视图的方法。2 掌握SQL Server中的安全性相关的登录名,角色以及用户的创建以及使用方法。3 学会使用T-SQL语句对数据库和表操作的灵活控制功能。4.2. 实验准备1 了解与视图相关的各种SQL语句。2 了解登
28、录名,角色以及用户的创建以及使用方法。3 了解T-SQL语句在对数据库和表的控制权限相关命令(GRANT/REVOKE)的用法。4.3. 实验内容1 在Student数据库中,利用图形用户界面,创建一个选修了数据库课程并且是1986年出生的学生的视图,视图中包括学号,性别,成绩这三个信息。(5分)操作工程:右击“视图”,将相关的表添加进去,然后指定视图所依附的表间的连接关系,最后指出视图的输出(即视图的各个属性列),操作界面如下图所示:2 用两种不同的SQL语句创建课本128页第11题中要求的视图(视图名:V_SPJ)(6分,每种方法3分)。 方法一:create view V_SPassel
29、ect sno,pno,qtyfrom spjwhere spj.jno in(select jnofrom jwhere j.jname=三建)方法二:create view V_SPJasselect sno,pno,qtyfrom spj,jwhere j.jno=spj.jno and j.jname=三建3 用SQL语句完成课本128页第11题中对视图V_SPJ的查询(4分,每小题2分)。语句:select pno,sum(qty) 总量 from V_SPJgroup by pno运行界面:语句:select *from V_SPJwhere sno=s1运行界面:4 用T-SQL
30、语句操作视图的数据。(15分,每题5分)(1) 给视图V_SPJ中增加一条数据(基本表中有插入的数据即可)。insert into V_SPJvalues(s5,j3,900)说明:必须将主键约束去掉并且允许为空值以后才可插入(2) 修改视图V_SPJ中的任意一条数据的供应数量。update V_SPJset qty=111where sno=s1 and pno=p1(3) 删除视图V_SPJ中的任意一条数据。delete V_SPJwhere sno=s1 and pno=p1 and aty=111说明:必须添加触发器5 在图形用户界面中创建新登录名以及用户。(20分,每题10分)(1)
31、 对于数据库company创建P148页第 8题中所需要用到的各个用户以及相关的关的登录名。(假定有数据库company,库中有两个表e(职工表)和d(部门表))。操作过程:右击相应数据库下面的“安全性”,选择“新建”,再选择“用户”,输入相关的用户名和登录名即可。(2) 用图形用户界面完成以下的权限勇赋予:a) 用户王明对两个表有Select和Insert的权力。b) 用户李勇对职工表具有Select权力,对工资字段具有更新权力操作过程:右击相应用户名,选择“属性”,选择“安全对象”,单击“搜索”,进入“选择对象”窗口,单击“对象类型”按钮,进入“选择对象类型”窗口,勾选“表”这个复选框,在
32、“选择对象”窗口里单击“浏览”,进入查找对象窗口,选择相应的表,单击后进入下一个窗口,选择相应的权限即可。6 用T-SQL语句授权和收回权限并加以验证。(50分,每题5分)(1) P148页 8题。(除过(a),(e))用户王明对两个表都有select的权利:grant selecton 部门to 王明grant selecton 职工to 王明用户李勇对两个表都有insert和delete的权利:grant insert,deleteon 部门to 李勇grant insert,deleteon 职工to 李勇每个职工对自己的记录都有select的权利:grant selecton 职工to
33、 public用户刘星对职工表有select的权利,对工资字段具有更新的权利:grant update(工资),selecton 职工to 刘星用户张新具有修改这两个表结构的权利:grant alteron 职工to 张新grant alteron 部门to 张新用户周平具有对两个表的所有权利,并具有给其他用户授权的权利:grant all privilegeson 职工to 周平with grand opiniongrant all privilegeson 部门to 周平用户杨澜具有从每个部门职工中selext最高工资,最低工资,平均工资的权利,他不能查看每个人的工资。实现过程:(1)先建
34、立视图V_bb(部门号,职工号,工资)create view V_bb(部门号,职工号,工资)asselect 部门.部门号,职工号,工资from 部门,职工where 部门.部门号=职工.部门号(2)在视图V_bb的基础上建立视图V_x(部门号,最大,平均,最低)create view V_x(部门号,最大,平均,最低) asselect 部门号,max(工资),avg(工资),min(工资)from V_bbgroup by 部门号(3)将select视图的权利授权给杨兰grant selecton V_xto 杨兰(2) P148页 9题的c),d),f),g)。(提示:P148页 第9
35、题的(c)和(g)小题可以创建合适的视图,针对视图进行授权。)C)C)revoke selecton V_everyuserto 李勇d) revoke update(工资),selecton 职工to 刘星f) revoke all privilegeson 职工to 周平with grand opinionrevoke all privilegeson 部门to 周平g) revoke selecton V_xto 杨兰实验5:触发器、存储过程、数据源5.1目的与要求1. 掌握查看一些系统存储过程的用法。2. 掌握存储过程的创建和使用方法以及步骤。3. 掌握触发器的创建和使用方法以及步骤。
36、4. 掌握ODBC数据源的配置,了解ODBC编程技术。5.2实验准备1. 了解存储过程(系统存储过程以及用户自定义存储过程)基本概念和类型。2. 了解创建存、查看、执行、修改和删除储过程的SQL语句的基本语法。3. 了解触发器的基本概念和类型。4. 了解创建、查看、修改和删除触发器触发器的SQL语句的基本语法。5. 了解ODBC数据库配置和编程知识。5.3实验内容1. 使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分)1)准备工作,建立V_SPJ视图。2)用sp_rename重命名视图。SQL:EXEC sp_rename V_SPJ, V_SPJ_
37、三建截图:2. 存储过程的创建与使用:(共计45分)(1) 使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程jsearch。该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10分)1)创建存储过程:create procedure jsearch(search_jno nchar(20) )asbeginselect j.jname,s.sname,p.pnamefrom s,p,j,spjwherespj.jno=
38、search_jno and spj.jno=j.jno and spj.sno=s.sno and spj.pno=p.pnoendUSE SPJGODECLAREreturn_value int 2)执行存储过程EXECreturn_value = dbo.jsearchsearch_jno = Nj1SELECTReturn Value = return_valueGO3)运行结果(2) 创建一个带有输出游标参数的存储过程jsearch2,功能同1),执行jsearch2,查询“J1”对应信息,并且将得到的结果用print语句输出到控制台。(10分)1)创建存储过程:create pro
39、cedure jsearch2(JNO char(10),names_cursor cursor varying output)asset names_cursor=cursor forselect SNAME,PNAME,JNAMEfrom S,P,J,SPJwhere SPJ.JNO=JNO and J.JNO=SPJ.JNO and SPJ.SNO=S.SNO and SPJ.PNO=P.PNOopen names_cursorbegindeclare SNAME char(10),PNAME char(10),JNAME char(10)declare mycursor cursore
40、xec jsearch2 J1,names_cursor=mycursor outputfetch next from mycursor into SNAME,PNAME,JNAMEprint SNAME+ +PNAME+ +JNAMEwhile (FETCH_STATUS=0)beginprint SNAME+PNAME+JNAMEfetch next from mycursor into SNAME,PNAME,JNAMEendclose mycursordeallocate mycursorend2)运行结果:(3) 使用SPJ数据库中的S表,为其创建一个加密的存储过程jmsearch。
41、该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。(10分)1)创建存储过程create procedure jmsearchWITH ENCRYPTIONasbeginselect *from swhere city=北京end(4) 使用系统存储过程sp_helptext查看存储过程jsearch, jmsearch的文本信息。(5分)1)执行结果:EXEC sp_helptext jsearchEXEC sp_helptext jsearch(5) 执行jmsearch存储过程,查看北京供应商的情况。(5分)1)执行存储过程:USE SPJGODECLAREreturn
42、_value intEXECreturn_value = dbo.jmsearchSELECTReturn Value = return_valueGO2)运行结果:(6) 删除jmsearch存储过程。(5分)drop procedure jmsearch2.触发器的创建与使用。(6) 在student数据库中建立一个名为insert_s的INSERT触发器,存储在S表中。该触发器的作用是:当用户向S表中插入记录时,如果插入的sdept值为CS ,IS ,MA以外的值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。触发器创建成功之后,向S表插入记录,验证触发器是否正常工作。
43、T-SQL:use studentgocreate trigger insert_son safter insertasif (exists(select *from insertedwhere sdept!=CS or sdept!=IS or sdept!=MA)beginprint 不能插入这样的记录!rollback transactionendelseprint 记录插入成功!测试:插入的代码:USE studentGOINSERT INTO s(sno,sname,ssex,sbirth,sdept)values(95007,李四,男,1989-01-08,UI)弹出的消息:若更改
44、数据,插入成功时,消息:(7) 为student数据库中的S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表中的记录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。T-SQL:use studentgocreate trigger dele_s1on safter deleteasrollback transactionprint 不能删除表s中的记录go截图:手动删除记录弹出的提示框为:(8) 为student数据库中的S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删除S表中的记录时删除SC表中该学生的选课纪录。触发器创建成
45、功之后,删除S表中的记录删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。T-SQL:use studentgocreate trigger dele_s2on safter deleteasdelete from scwhere sno in(select sno from deleted)Go实现了级联删除。(9) 为student数据库中的S表创建一个名为update_s的UPDATE触发器,该触发器的作用是禁止更新S表中“sdept”字段的内容。触发器创建成功之后,更新S表中“sdept”字段的内容,验证触发器是否正常工作。T-SQL:use studentgocr
46、eate trigger update_son safter updateasif update(sdept)/注意此处条件beginraiserror(sdept 不能被修改,10,1)/注意此处语法rollback transaction/回滚end截图:手动修改sdept时弹出框。(10) 禁用update_s触发器。禁用之后,更新S表中的“sdept”字段的内容,验证触发器是否还继续正常工作。T-SQL:use studentgodisable trigger update_son sgo截图:成功更改sdept:(11) 删除update_s触发器。T-SQL:use student
47、godrop trigger update_sgo删除成功。1. ODBC配置以及程序调试:(1) 配置一个ODBC数据源,要求数据源名称:student,其中包含s(学生信息)表。用系统工具配置ODBC,点击“添加”:出现以下对话框,选中SQL Sever,点击完成:在出现的对话框中设置属性,如图,点击下一步:点击下一步后出现如下,更改默认数据库,点击下一步。在出现的对话框中点击测试连接后出现测试成功的对话框:点击确定退出ODEC数据源管理器。(2) 阅读并运行实验给出的程序,理解ODBC编程,要求简单写出自己对这段程序的理解或者流程图,并且请给出程序运行结果示例图。运行MFC程序:点击在“
48、执行”后弹出的消息框现实了查询结果:一. 实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)1)问题:游标的创建在使用时出现了错误,导致虽然创建了游标,但是并没有把它当做输出参数,而是直接在存储过程内部使用。解决方案:通过 阅读相关的书籍,熟悉了游标的使用,成功将游标用作了输出参数。2)问题:触发器开始在语法上出现了很多的错误,导致编译无法通过。解决方法:通过与其他同学交流解决了此问题。3)问题:刚开始的时候,在配置ODBC数据源的时候出问题,出了无法连接的问题。发现时因为SQL Sever的登录名和密码的设置有问题。解决方案:在对登录名sa进行了重新设置后解决了问题,也对ODBC数
49、据源的工作方式有了更深的认识。 实验5:数据库综合实验从下列实验中选取一个或者自己选题进行实验,并书写实验报告。4.4. 目的与要求1. 目的:通过完成从用户需求分析、概念结构设计,逻辑结构设计等一系列的数据库设计到上机编程、调试和应用等全过程,进一步理解和掌握教材中的相关内容。2. 要求:(1) 先对选定的实验做简单的需求分析;(2) 做出数据流图和数据字典;(3) 在数据流图和字典的基础上做出E-R图(概念结构设计);(4) 在E-R图基础上进行关系模式设计(至少满足3NF)(逻辑结构设计);(5) 根据需求分析中的各种数据请求得出各种视图以及各种约束、规则、触发器脚本描述;(6) 根据第
50、(5)的内容在SQL-SERVER中设计中实例的数据库;(7) 用自己熟悉的一门语言进行设计的功能的实现(最低要求:实现设计中的一部分与数据库操作相关的功能,例如查询/删除等)。(8) 整理前面几步的文档和程序源码,可执行程序,形成最终的实验报告。(9) 实验报告的最后写出本次实验完成中遇到的问题及解决方法4.5. 实验准备1. 了解数据库设计的全过程。2. 了解数据流图与数据字典的描述方法。3. 了解E-R图的画法以及E-R图向关系模式转化的方法。4. 了解数据库关系理论的基础,特别是范式的概念与判断。5. 事先进行思考,选定题目,进行需求调查与分析。6. 学习数据库编程的知识。4.6. 实验内容评分标准:数据流图与数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 废旧材料建筑改造方案
- 车贷业务风险预警及应急处理合同
- 餐饮品牌加盟与运营管理合同
- 岩石开挖施工方案
- 别墅庄园管理方案
- 特斯拉裁员面试题及答案
- 腹腔镜胆结石术后护理
- 育苗大棚装修方案(3篇)
- 秘密法考试题及答案
- 2026版《全品高考》选考复习方案生物0525 非选择题强化练(二)含答案
- 华为门禁出入管理办法
- 流行病学的试题及答案
- 2025年四川省高考生物试卷真题(含答案解析)
- 2024年辽宁省高校毕业生“三支一扶”计划考试真题
- 北京市大兴区2025年初中学业水平考试地理真题(含答案)
- 第三代社保卡培训
- 幼儿游泳活动方案
- 基于机器学习构建减重代谢手术效果的预测模型
- 显微外科术后护理
- 办公室应聘题库及答案
- oracle考试试题及答案
评论
0/150
提交评论