《大型数据库系统》课程实验指导书
修订 刘忠民
1
刘晓瑢
实验一 创建、修改和删除表
一、实验目的
? 了解Oracle系统的组织结构 ? 熟悉Oracle企业管理器环境 ? 熟悉SQL*Plus环境
? 掌握用Oracle企业管理器以及SQL*Plus创建、修改、删除表
二、实验环境
一台计算机,安装了WINDOWS 2000 SERVER和Oracle 9i。Oracle帐户(system/manager, sys/change_on_install, scott/tiger)。
三、预备知识
1、复习《数据库系统概论》第三章关系数据库标准语言SQL:
1)学生---课程数据库实例的三张表的ER图。
学生 选修 课程 成绩
2)表的定义3)表的修改 4)表的删除
5)插入、修改、删除数据
2、复习《数据库系统概论》第五章数据库完整性
3、在SQL*Plus中输入完SQL语句后,有3种处理方式: 1)在语句最后加分号(;),并按回车键,则立即执行该语句;
2)语句输入结束后回车换行,然后再按回车键,结束SQL语句输入但不执行该语句; 3)语句输入结束后按回车键,换行后按斜杠(/),则立即执行该语句。 4、编辑缓冲区
由于以命令行的方式编辑SQL缓冲区不太方便,常采用EDIT命令以编辑器打开缓冲区并进行编辑。
四、实验内容
1、查看数据库的系统文件。 2、熟悉Oracle系统环境
3、分别用OEM和SQL*Plus完成以下操作(用SQL语句创建表可参见《数据库系统概论》P85) 注:所有表都创建在scott方案下,在Sql*plus下以scott用户连接数据库
1)创建以下表
◆Student(Sno,Sname,Ssex,Sage,Sdept):学生表
sno是主码,ssex要有CHECK约束
◆Course(Cno,Cname,Cpno,Ccredit):课程表
2
其中,cno是主码, cpno表示先行课,参照本表的cno
(注:在用OEM创建cpno引用cno约束时,要先创建表course,再创建约束)
◆Sc(Sno,Cno,Grade):选课表
主码为(sno,cno), sno和cno都要有外键约束
2)修改表定义
向Student表中增加Sentrance“入学时间”列,定义为date数据类型 3)插入记录
注意,在插入记录时要满足数据完整性约束
Student表
Sno 98001 98002 98003 98004
Course表 Cno 1 2 3 4 5 6 7 Cname 数据库系统 数学分析 信息系统导论 操作系统原理 数据结构 数据处理基础 C语言 Cpno 5 null 1 6 7 null 6 Ccredit 4 2 3 3 4 4 3 Sname 钱横 王林 李民 赵三 Ssex 男 女 男 女 Sage 18 19 20 16 Sdept Sentrance CS CS IS MA 12-3月-92 12-3月-91 12-3月-90 12-3月-94 注:该表中Cpno参照本表的Cno,即Cpno要么为空,要么是已插入的课程记录,所以
注意记录插入的先后顺序。
SC表 Sno Cno Grade 87 67 90 95 88 98001 1 98001 2 98001 3 98002 2 98002 3 4)修改数据
①将SC表中的成绩都增加10% ②将CS系的学生成绩清零
5)删除记录(注在删除记录前检查是否保存插入记录的Sql语句) ①删除Student表的所有记录
②删除SC表中Cno是2的所有记录 6)用Sql语句恢复所删除的记录
4、该实验中的创建表、修改表语句以及插入记录语句保存到脚本文件中,备用于下次实验恢复表和记录。
5、思考其它的备份数据库的方法。
3
实验二 查询语句运用
一、实验目的
1、 熟练掌握查询语句的用法。 2、 进一步熟悉SQL*Plus工作环境
二、实验环境
一台计算机,安装了WINDOWS 2000 SERVER和Oracle 9i。Oracle帐户(system/manager, sys/change_on_install, scott/tiger)。
三、预备知识
1、复习数据查询语句
四、实验内容
1、打开Sql*Plus,用scott用户连接,密码是tiger. 2、用实验一备份的语句还原表和数据。 3、在SQL*Plus中完成以下查询语句: 1)基本查询语句
例:查询全体学生的学号与姓名
2)带ORDER BY子句的查询
例:查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。
3)多表查询(连接操作)
例:查询选修2号课程且成绩在90分以上的所有学生。
4)元组变量的使用查询
例:查询与‘王林’在同一个系学习的学生。
5)查询语句中的集合操作
例:求各个课程号及相应的选课人数。
6)组函数与group by子句(having子句) 例:查询选修了3门以上课程的学生学号
7)嵌套查询
例:查询选修了课程号为“数据库系统”的学生学号和姓名。
4
实验三 权限及角色的设置操作
一、实验目的:
1、理解ORACLE中的各系统权限、对象权限及角色的含义。 2、掌握用户的创建和给用户授予适当的权限。
二、实验环境
一台计算机,安装了WINDOWS 2000 SERVER和Oracle 9i。Oracle帐户(system/manager, sys/change_on_install, scott/tiger)。
三、预备知识
1、 Oracle数据库系统中权限分为两类:系统级和对象级。
1)系统级权限:对某一特定类型实体上执行特定操作的权限 2)对象级权限:针对某个数据库对象(表、视图等)的操作权限 详见课本中权限列表。 2、创建用户
create user testuser --用户名为testuser identified by testpwd --口令为testpwd
default tablespace users --缺省表空间使用users表空间 temporary tablespace temp; --临时表空间使用temp表空间 quota unlimited on users --用户使用表空间users的配额限制 quota 10m on temp --用户使用临时表空间temp的配额限制 profile manager; --指定用户使用的概况名为manager
注意:创建新用户是必须为用户建立表空间配额,否则用户没有使用表空间的空间的权利;当用CREATE USER命令建立一个用户时,该用户的权利范围是空的。必须为用户指定一定的权限,用户才能操作数据库。如:为登录Oracle,用户必须有CREATE SESSION系统特权。 3、用户概要文件
用户概要文件决定对数据库资源的使用的限制,例 Create profile manager limit
sessions_per_user unlimited --可建立的会话数目 cpu_per_session unlimited --单位百分之一秒
cpu_per_call 3000 --执行一条SQL语句可用时间 connect_time 45 --会话建立后允许的持续时间(分) logical_reads_per_session default --会话期间可读数据库块数
logical_reads_per_call 1000 --执行一条SQL语句可读数据库块数 private_sga 15k
composite_limit 5000000 --总的资源限制
5