《数据库系统原理》实验指导书计算机科学与技术与学院计算机科学与技术系二○一二年目录实验一认识DBMS ..................................................................................... 错误!未定义书签。
实验二交互式SQL(4小时) ................................................................. 错误!未定义书签。
实验三数据库完整性(2小时) ........................................................... 错误!未定义书签。
实验四数据库安全性(2小时) ........................................................... 错误!未定义书签。
实验一认识DBMS一、实验目的1.通过对某个商用数据库管理系统的安装使用,初步了解DBMS的工作环境和系统构架。
在此推荐SQL SERVER2005。
2.熟悉DBMS的安装、配置及使用。
3.搭建今后实验的平台。
二、实验平台操作系统:Windows XP。
数据库管理系统:SQL SERVER2005。
选择安装各个数据库管理系统之前,请仔细看清硬件的配置要求。
三、实验内容和要求1.根据安装文件的说明安装数据库管理系统。
在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。
2.学会启动和停止数据库服务。
在正确安装SQL SERVER2005后,SQL SERVER数据库引擎服务会在系统启动时自动启动。
如果要手动地启动和停止数据库引擎服务,可以通过SQL SERVER配置管理器(SQLSERVER CONFIGURATION MANAGER)来进行管理。
SQL SERVER配置管理器综合了SQLSERVER 2000中的服务管理器、服务器网络适用工具和客户端网络实用工具的功能。
打开 SQL SERVER配置管理器工具,单击“SQL SERVER2005服务”节点,其中的“SQL SERVER”服务就是我们所说的数据库引擎。
与SQL SERVER 2000一样,可以通过这个配置管理器来启动、停止所安装的服务,如“SQLSERVER(MSSQLSERVER)”。
3.了解RDBMS系统的体系结构。
SQL SERVER2005是一款具有“客户机/服务器”架构的关系型数据库管理系统,它使用T-SQL语言在客户机和服务器之间传递客户机的请求和服务器的响应。
数据库体系结构:又划分为数据库逻辑结构和数据库物理结构。
数据库逻辑结构主要应用于面向用户的数据组织和管理,如表、视图、存储过程和触发器、约束等。
数据库物理结构主要应用于面向计算机的数据组织和管理,如数据以表文件的形式存放在硬盘上。
4.了解RDBMS的管理和使用。
例如SQL SERVER Management Studio是SQL SERVER 2005种最重要的管理工具,它融合了SQL SERVER2000的查询分析器和企业管理器、OLAP分析器等多种工具的功能,为管理人员提供了一个简单的实用工具,使用这个工具既可以用图形化的方法,也可以通过编写SQL语句来实现数据库的操作。
5.初步了解RDBMS的安全性,这里主要是服务器用户的登录和服务器预定义角色。
可以尝试建立一个新的登录名,赋予其数据库管理员的角色,今后的实验可以用该登录名来创建数据库用户。
实验二交互式SQL(4小时)一、实验目的熟悉通过SQL对数据库进行操作。
二、实验工具利用实验一中安装的RDBMS及其交互查询工具来操作SQL语言。
三、实验内容和要求1.在RDBMS中建立一个学生-课程数据库,进行实验所要求的各种操作,所有的SQL操作均在此建立的新库里进行。
2.根据以下要求认真进行实验,记录所有的实验用例及执行结果。
数据定义:基本表的创建、修改及删除;索引的创建和删除。
数据操作:完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询);完成各类更新操作(插入数据,修改数据,删除数据)。
视图的操作:视图的定义(创建和删除),查询,更新(注意更新的条件)。
特别说明:实验中注意特定数据库系统(如SQL SERVER)的SQL语句格式与SQL-3标准的区别。
参考实验用例:(一)数据定义:一.基本表的操作1.建立基本表1)创建学生表Student,由以下属性组成:学号Sno(char型,长度为9,主码),姓名Sname(char型,长度为20,唯一),性别Ssex(char型,长度为2),年龄(smallint),所在系(char型,长度为20)。
create table Student(Sno char(9) primary key,Sname char(20) unique,Ssex char(2),Sage smallint,Sdept char(20));2)创建课程表Course,由以下属性组成:课程号Cno(char型,主码,长度为4),课程名Cname(char型,长度为40),先行课Cpno(char型,长度为4,外码),学分Ccredit(smallint)。
create table Course(Cno char(4) primary key,Cname char(40),Cpno char(4),Ccredit smallint);3)创建学生选课表SC,由以下属性组成:学号Sno(char型,长度为9),课程号Cno(char型,长度为4),成绩Grade(smallint),其中Sno和Cno构成主码。
create table sc(Sno char(9),Cno char(4),Grade smallint,primary key(Sno,Cno),foreign key (Sno) references student(Sno),foreign key (Cno) references course(Cno));2.修改基本表:1)向Student表增加“入学时间列”,其数据类型为日期型。
alter table Student add S_entrance date;2)将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
alter table Student alter column Sage int;3)增加课程名称必须取唯一值的约束条件。
alter table Course add unique(Cname);3.删除基本表:1)在所有的操作结束后删除Student表。
drop table Student;2)在所有的操作结束后删除Course表。
drop table Course;3)在所有的操作结束后删除SC表。
drop table SC;二.索引操作1.建立索引1)为学生—课程数据库中的Student,Course,SC 3个表建立索引。
其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。
create unique index Stusno on Student(Sno);create unique index Coucno on Course(Cno);create unique index SCno on SC(Sno ASC,Cno DESC);2.删除索引1)删除Student表的Stusname索引。
drop index Stusname;(二)数据操作一.更新操作1,插入数据1)在Student表中插入下列数据:,李勇,男,20,CS,刘晨,女,19,CS,王敏。
女,18,MA,张立,男,19,ISinsert into student(Sno,Sname,Ssex,Sage,Sdept)values('','李勇','男',20,'CS');insert into student(Sno,Sname,Ssex,Sage,Sdept)values('','刘晨','女',19,'CS');insert into student(Sno,Sname,Ssex,Sage,Sdept)values('','王敏','女',18,'MA');insert into student(Sno,Sname,Ssex,Sage,Sdept)values('','张立','男',19,'IS')2)在Course表中插入以下数据:1,数据库,5,42,数学,null,26,数据处理,null,24,操作系统,6,37,PASCAL语言,6,45,数据结构,7,41,数据库,5,43,信息系统,1,4insert into course(Cno,Cname,Cpno,Ccredit)values('1','数据库','5',4);insert into course(Cno,Cname,Ccredit)values('2','数学',2);insert into course(Cno,Cname,Ccredit)values('6','数据处理',2);insert into course(Cno,Cname,Cpno,Ccredit)values('4','操作系统','6',3);insert into course(Cno,Cname,Cpno,Ccredit)values('7','PASCAL语言','6',4);insert into course(Cno,Cname,Cpno,Ccredit)values('5','数据结构','7',4);insert into course(Cno,Cname,Cpno,Ccredit)values('1','数据库','5',4);insert into course(Cno,Cname,Cpno,Ccredit)values('3','信息系统','1',4);3) 在SC表中插入以下数据:,1,92,2,85,3,88,2,90,3,80insert into sc (Sno,Cno,Grade) values ('','1',92);insert into sc (Sno,Cno,Grade) values ('','2',85;insert into sc (Sno,Cno,Grade) values ('','3',88);insert into sc (Sno,Cno,Grade) values ('','2',90);insert into sc (Sno,Cno,Grade) values ('','3',80);4)将一个新学生元祖(学号:;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。