实验作业.docx
《实验作业.docx》由会员分享,可在线阅读,更多相关《实验作业.docx(35页珍藏版)》请在冰豆网上搜索。
![实验作业.docx](https://file1.bdocx.com/fileroot1/2023-4/18/236398dc-888d-49b1-bb95-23aa13dc0017/236398dc-888d-49b1-bb95-23aa13dc00171.gif)
实验作业
《数据库原理》课程上机
适用专业:
计算机科学与技术、网络工程
上机学时:
16学时
上机次数:
8次
实验一认识DBMS系统
一.实验目的
1.通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。
在此推荐国产金仓数据库管理系统KingbaseES或SQLServer2005,也可以选择其他的,如ORACLE。
2. 熟悉对DBMS的操作
3. 搭建今后实验的平台
二.实验准备
每位学生配备1台计算机,安装有Windows2000或者WindowsXP操作系统。
注:
使用Professional版的操作系统建议安装数据库管理系统的教学版,Server版的操作系统建议安装数据库管理系统的企业版。
三.实验时间
2学时
四.实验内容
1. 安装:
启动根据安装文件的说明安装数据库管理系统。
在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。
2.启动:
学会启动、暂停和停止数据库服务,思考可以用哪些方式来完成启动和停止。
3.初步了解DBMS的安全性,这里主要是用户的登录和服务器预定义角色。
可以尝试建立一个新的用户,赋予其数据库管理员的角色,今后的实验可以用该用户来创建数据库应用。
4.了解数据库系统的构架:
了解数据库系统的逻辑组件,它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等,今后将学习如何操作这些数据库对象;解数据库的物理组件,思考数据库物理存储的存储单位是什么,数据主要以什么方式存放,如何确定数据的存放位置。
5.了解你安装的DBMS的管理和使用:
了解DBMS如何通过它提供的工具对数据和数据库服务器进行管理和使用的。
学会运用控制管理器和企业管理器进行操作。
初步了解DBMS的主要工具和它们的功能,为今后的实验做准备。
例如,数据迁移工具:
导入和导出数据使用的;企业服务器和作业调度管理器:
可以用该工具对数据库服务器进行管理,管理和监视服务器性能和活动;查询分析器:
给出数据库查询语句的查询计划和执行时间,帮助用户分析查询过程,进行查询优化。
等等
五.实验报告
《数据库系统概论》实验报告
题目:
SQL2005的安装
姓名
日期
实验环境:
软件:
WindowsXPSP3
硬件:
CPU:
intelcorei3;硬盘:
500G;内存:
2G
实验内容与完成情况:
实验内容:
1. 安装:
启动根据安装文件的说明安装数据库管理系统。
在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。
2.启动:
学会启动、暂停和停止数据库服务,思考可以用哪些方式来完成启动和停止。
3.初步了解DBMS的安全性,这里主要是用户的登录和服务器预定义角色。
可以尝试建立一个新的用户,赋予其数据库管理员的角色,今后的实验可以用该用户来创建数据库应用。
4.了解数据库系统的构架:
了解数据库系统的逻辑组件,它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等,今后将学习如何操作这些数据库对象;解数据库的物理组件,思考数据库物理存储的存储单位是什么,数据主要以什么方式存放,如何确定数据的存放位置。
5.了解你安装的DBMS的管理和使用:
了解DBMS如何通过它提供的工具对数据和数据库服务器进行管理和使用的。
学会运用控制管理器和企业管理器进行操作。
初步了解DBMS的主要工具和它们的功能,为今后的实验做准备。
例如,数据迁移工具:
导入和导出数据使用的;企业服务器和作业调度管理器:
可以用该工具对数据库服务器进行管理,管理和监视服务器性能和活动;查询分析器:
给出数据库查询语句的查询计划和执行时间,帮助用户分析查询过程,进行查询优化。
等等
完成情况:
经过亲自动手安装SQLserver2005过程中遇到了些问题,经过查询资料一一得到解决,最终得以成功安装。
达到了实验要求。
出现的问题:
1、IIS警告2、版本更新警告3、COM+目录要求警告
解决方案(列出遇到的问题和解决办法,列出没有解决的问题):
1、IIS警告:
1》退出安装程序
2》从控制面板中->添加windows组件->Internet信息服务(IIS)安装相关组件
2、版本更新问题:
1》,退出安装程序,
2》,通过开始-->运行-->cmd
3》,输入你的安装程序(step.exe)的路径+空格+SKUUPGRADE=1
3、COM+目录要求(警告):
1》在Windows桌面上,单击“开始”,然后单击“运行”。
2》在“打开”框中,键入MMC,然后单击“确定”。
3》在“控制台”窗口中,单击菜单栏上的“文件”,然后单击“添加/删除管理单元”。
4》在“添加/删除管理单元”窗口,单击“添加”。
5》在“添加独立管理单元”窗口,从管理单元列表中选择“组件服务”,然后单击“添加”。
6》单击“关闭”以关闭“添加独立管理单元”窗口,然后单击“确定”以关闭“添加/删除管理单元”窗口。
7》在“控制台根节点\组件服务”窗口,展开“组件服务”树。
这就是当COM+出现问题时,错误消息可能发生的地方。
8》再次运行SQLServer2005安装程序。
如果收到错误消息,请重新安装COM+。
重新安装COM+
9》从控制面板的“添加或删除程序”中,单击“添加/删除Windows组件”。
10》在“Windows组件向导”中,不对选择做任何更改,单击“下一步”。
一直单击以完成向导,然后再次运行SQLServer2005安装程序。
解决了COM+问题后,在后面的“检测已经安装的IIS服务”假死现象也随之解决了。
实验二:
交互式SQL
一.实验目的
1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL对数据库进行操作。
3.完成教材中的上机练习
二.实验准备
每位学生配备1台计算机,安装有SQLServer2005数据库系统。
三.实验时间
4学时
四.实验内容
1. 在SQLServer中建立一个数据库,进行实验所要求的各种操作,所有的SQL操作均在此建立的新库里进行。
2.数据定义:
练习基本表的创建、修改及删除;练习索引的创建和删除;练习视图的创建和删除。
3.数据操作:
练习并完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询);完成各类更新操作(插入数据,修改数据,删除数据)。
4.视图操作:
视图的定义(创建和删除),查询,更新(注意更新的条件)。
五.实验报告
1、数据定义:
--建立一个学生管理类库
createdatabase学生管理
--删除学生管理类库
dropdatabase学生管理
----------------------------------
--进入学生管理库
use学生管理
----------------------------------
--建表操作--
----------------------------------
--建立学生信息表
createtable学生信息表(
学号char(8)primarykey,
姓名char(8),
性别char
(2),
出生时间char(10),
专业char(12),
总学分smallint,
备注text,
);
--删除学生信息表
droptable学生信息表
----------------------------------
--建立课程表
createtable课程表(
课程号char(3)primarykey,
课程名char(16),
开课学期char
(2),
学时char(10),
学分smallint,
);
--删除课程表
droptable课程表
----------------------------------
--建立成绩表
createtable成绩表(
学号char(8),
课程号char(3),
成绩smallint,
primarykey(学号,课程号)
);
--删除成绩表
droptable成绩表
2、数据操作
----------------------------------
--插入记录--
----------------------------------
--想学生信息表中插入数据
insertinto学生信息表
values('081101','王林','男','1991-02-20','计算机',50,NULL);
insertinto学生信息表
values('081102','程明','男','1991-08-21','计算机',50,NULL);
insertinto学生信息表
values('081103','李铭','男','1992-11-12','计算机',40,'有一门课程不及格,待补考');
insertinto学生信息表
values('081104','王丽','女','1992-08-07','计算机',50,NULL);
insertinto学生信息表
values('081105','张伟','男','1989-12-31','计算机',50,'提前修完《数据结构》,并获得学分');
insertinto学生信息表
values('081106','孙岩','男','1993-09-02','计算机',54,'已提前修完一门科目');
insertinto学生信息表
values('081107','严红','女','1991-12-21','计算机',52,NULL);
insertinto学生信息表
values('081108','吴伟华','男','1991-12-29','计算机',48,'三好学生');
insertinto学生信息表
values('081109','刘艳敏','女','1991-03-25','计算机',50,NULL);
insertinto学生信息表
values('081110','罗琳琳','女','1989-08-04','计算机',40,'有一门课程不及格,待补考');
insertinto学生信息表
values('081111','李芳芳','女','1990-04-05','计算机',50,NULL);
insertinto学生信息表
values('081113','赵燕','女','1990-11-28','计算机',50,NULL);
insertinto学生信息表
values('081201','王玉民','男','1990-12-17','通信工程',44,'三好学生');
insertinto学生信息表
values('081202','孙翔','男','1991-05-04','通信工程',42,NULL);
insertinto学生信息表
values('081203','高琳','女','1991-09-18','通信工程',50,NULL);
insertinto学生信息表
values('081204','胡图','女','1992-10-01','通信工程',42,NULL);
insertinto学生信息表
values('081206','王祥林','男','1990-07-07','通信工程',42,'已转专业');
----------------------------------
--向课程表中插入数据
insertinto课程表values('101','计算机基础','1','80',5);
insertinto课程表values('102','计算机原理','2','68',4);
insertinto课程表values('206','操作系统','4','68',4);
insertinto课程表values('208','数据库原理','5','68',4);
insertinto课程表values('210','离散数学','6','68',5);
insertinto课程表values('209','数据结构','3','85',4);
insertinto课程表values('212','高级程序设计','5','68',4);
insertinto课程表values('301','计算机网络','7','51',3);
insertinto课程表values('302','软件工程','7','51',3);
-----------------------------------
--想成绩表中插入数据
insertinto成绩表values('081101','101',80);
insertinto成绩表values('081101','102',78);
insertinto成绩表values('081101','206',76);
insertinto成绩表values('081103','101',76);
insertinto成绩表values('081103','102',65);
insertinto成绩表values('081103','206',78);
insertinto成绩表values('081104','101',98);
insertinto成绩表values('081104','102',76);
insertinto成绩表values('081104','206',76);
insertinto成绩表values('081102','101',77);
insertinto成绩表values('081102','102',98);
insertinto成绩表values('081102','206',87);
insertinto成绩表values('081106','101',76);
insertinto成绩表values('081106','102',66);
insertinto成绩表values('081106','206',74);
insertinto成绩表values('081107','101',82);
insertinto成绩表values('081107','102',92);
insertinto成绩表values('081107','206',91);
insertinto成绩表values('081108','101',71);
insertinto成绩表values('081108','102',81);
insertinto成绩表values('081108','206',84);
insertinto成绩表values('081109','101',71);
insertinto成绩表values('081109','102',93);
insertinto成绩表values('081109','206',83);
insertinto成绩表values('081110','101',90);
insertinto成绩表values('081110','102',80);
insertinto成绩表values('081110','206',76);
insertinto成绩表values('081111','101',78);
insertinto成绩表values('081111','102',84);
----------------------------------
--建立索引--
----------------------------------
--在学生信息表上建立关于学号的唯一索引。
createuniqueindex学生学号ON学生信息表(学号);
--在课程表上建立关于课程号的升序索引。
createuniqueindex课程号ON课程表(课程号);
----------------------------------
--删除索引--
----------------------------------
--删除学生表上的索引学生学号
dropindex学生学号on学生信息表;
--删除课程表上的索引课程表
dropindex课程号on课程表;
----------------------------------
--视图操作--
----------------------------------
--在学生表上为计算机专业的学生记录建立一个视图:
计算机_学生表
createview计算机_学生表
as
Select*
from学生信息表
where专业='计算机';
--删除一个已存在的视图:
计算机_学生表
dropview计算机_学生表;
----------------------------------
--修改数据--
-----------------------------------
--将计算机系的学生成绩全部加1分
update成绩表
SET成绩=成绩+1
where学号IN
(Select学号
from学生信息表
where专业='计算机');
--删除罗琳琳同学的成绩表中的记录
DELETEfrom成绩表
where学号IN
(Select学号
from学生信息表
where姓名='罗琳琳');
----------------------------------
3、数据查询
----------------------------------
--查询--
----------------------------------
--------单表查询----------
--查询所有学生的信息。
Select*
from学生信息表;
--结果:
--081101王林男1991-02-20计算机50NULL
--081102程明男1991-08-21计算机50NULL
--081103李铭男1992-11-12计算机40有一门课程不及格,待补考
--081104王丽女1992-08-07计算机50NULL
--081105张伟男1989-12-31计算机50提前修完《数据结构》,并获得学分
--081106孙岩男1993-09-02计算机54已提前修完一门科目
--081107严红女1991-12-21计算机52NULL
--081108吴伟华男1991-12-29计算机48三好学生
--081109刘艳敏女1991-03-25计算机50NULL
--081110罗琳琳女1989-08-04计算机40有一门课程不及格,待补考
--081111李芳芳女1990-04-05计算机50NULL
--081113赵燕女1990-11-28计算机50NULL
--081201王玉民男1990-12-17通信工程44三好学生
--081202孙翔男1991-05-04通信工程42NULL
--081203高琳女1991-09-18通信工程50NULL
--081204胡图女1992-10-01通信工程42NULL
--081206王祥林男1990-07-07通信工程42已转专业
----------------------------------
--查询成绩大于的学生学号
Selectdistinct学号
from成绩表
where成绩>85;
--结果:
--081102
--081104
--081107
--081109
----------------------------------
--查询姓王的同学
Select*
from学生信息表
where姓名like'王%'
--结果:
--081101王林男1991-02-20计算机50NULL
--081104王丽女1992-08-07计算机50NULL
--081201王玉民男1990-12-17通信工程44三好学生
--081206王祥林男1990-07-07通信工程42已转专业
-----------------------------------
--查询各个专业的学生人数。
Select专业,count(学号)
from学生信息表
groupby专业;
--结果:
--计算机12
--通信工程5
------------------------------------
-----------连接查询---------------
--查询选修课程的学生学号,姓名,成绩
select学生信息表.学号,姓名,成绩
from学生信息表,成绩表
where学生信息表.学号=成绩表.学号and课程号='206';
--结果:
--081101王林77
--081102程明88
--081103李铭79
--081104王丽77
--081106孙岩75
--081107严红92
--081108吴伟华85
--081109刘艳敏84
--嵌套查询
--查询选修了计算机基础学生的全部信息
select学生信息表.*
from学生信息表,成绩表
where学生信息表.学号=成绩表.学号and成绩表.课程号in
(select课程号
from课程表
where成绩表.课程号=成绩表.课程号and课程名='计算机基础'
);
--结果:
--081101王林男1991-02-20计算机50NULL
--081102程明男1991-08-21计算机50NULL
--081103李铭男1992-11-12计算机40有一门课程不及格,待补考
--081104王丽女1992-08-07计算机50NULL
--081106孙岩男1993-09-02计算机54已提前修完一门科目
--081107严红女1991-12-21计算机52NULL
--081108吴伟华男1991-12-29计算机48三好学生
--081109刘艳敏女1991-03