《数据库原理》实验教学指导书.docx
- 文档编号:13696372
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:57
- 大小:38.49KB
《数据库原理》实验教学指导书.docx
《《数据库原理》实验教学指导书.docx》由会员分享,可在线阅读,更多相关《《数据库原理》实验教学指导书.docx(57页珍藏版)》请在冰点文库上搜索。
《数据库原理》实验教学指导书
目录
第一部分大纲和计划
1.1实验教学大纲1
1.2实验实施计划表2
第二部分实验说明
2.1实验一:
了解Oracle中的基本知识3
2.2实验二:
Oracle中的查询4
2.3实验三:
Oracle中的表5
2.4实验四:
PL/SQL编程
(一)6
2.5实验五:
PL/SQL编程
(二)7
2.6实验六:
PL/SQL编程(三)8
2.7实验七:
PL/SQL编程(四)9
2.8实验八:
触发器设计10
第三部分实验补充教材
3.1实验一:
了解Oracle中的基本知识11
3.2实验二:
Oracle中的表12
3.3实验三:
Oracle中的查询15
3.4实验四:
PL/SQL编程
(一)15
3.5实验五:
PL/SQL编程
(二)18
3.6实验六:
PL/SQL编程(三)22
3.7实验七:
PL/SQL编程(四)26
3.8实验八:
触发器设计31
第一部分大纲和计划
1.1《数据库原理》实验教学大纲
一、课程名称:
数据库原理(PrincipleofDatabaseSystem)
二、课程编码:
三、课程总学时:
16学时[理论:
0学时;实验:
16学时]
四、课程总学分:
学分
五、适用专业和开课学期:
计算机科学与技术专业,第4学期。
六、实验的目的与任务:
通过ORACLE中用户及表的创建、SQL查询、ORACLE中的表、PL/SQL编程、触发器设计等实验,使学生掌握数据库技术的基本原理在大型数据库中的应用。
七、主要仪器设备及台(套)数:
计算机
八、主要实验教材(指导书)及参考用书:
《数据库原理及应用》(Oracle)实用教程刘甫迎、王道学、党晋蓉主编清华大学出版社2004年10月第1版
九、成绩考核方式及评分标准:
教师根据学生通过FTP上交的实验报告确定其完成数量和质量,进一步综合学生的上机态度进行评分。
实验成绩占课程总成绩的30%。
十、实验开出率:
100%
十一、实验项目与要求:
序号
实验项目名称
时数
项目要求
项目类型
项目性质
每台(套)仪器人数
目的要求
实验耗材定额(按自然班)
1
了解ORACLE的基本知识
2
必修
操作
验证
1
掌握用户及表的创建方法,熟悉ORACLE的运行环境
2
ORACLE中的查询
2
必修
操作
验证
1
重点掌握复杂查询的实现方法
3
ORACLE中的表
2
必修
操作
验证
1
大致了解ORACLE中的各种表
4
PL/SQL编程
8
必修
操作
设计
1
掌握简单的PL/SQL编程的方法
5
触发器设计
2
必修
操作
设计
1
了解各种触发器的设计方法
注:
1.项目要求:
必修、选修、其他;2.项目类型:
演示、操作、模拟;3.项目性质:
验证、综合、设计、研究。
1.2《数据库原理》实验大纲及其实施计划表
课程综述
本课程重点讲解数据模型、数据库系统结构、关系数据库、SQL语言、数据库安全性和完整性、关系数据库设计理论、数据库设计、数据库编程、查询优化、并发控制和恢复、数据库管理系统以及数据库技术新进展等内容。
通过本课程的学习,学生不但可以掌握数据库技术的基本原理,而且还能够大型数据库的基本应用方法。
实验设置
总体说明
本课程设计了八个实验,通过ORACLE中用户及表的创建、SQL查询、ORACLE中的表、PL/SQL编程、触发器设计等实验,学生可以掌握数据库技术的基本原理在大型数据库中的应用。
实验名称
(选做实验
后面加*号)
1
了解Oracle的基本知识
2
Oracle中的表
3
Oracle中的查询
4
PL/SQL编程
(一)
5
PL/SQL编程
(二)
6
PL/SQL编程(三)
7
PL/SQL编程(四)
8
触发器设计
9
实验占课程总课时、学分比例情况
实验占课程总学时的25%
学分占课程总学分的15%
实验资料
存档形式
(纸质/光盘)
光盘
第二部分实验说明
《×××》实验说明
2.1实验一 了解Oracle的基本知识
实验目的:
1.熟悉ORACLE的环境,学习使用SQL*Plus与ORACLE进行交互。
2.掌握用户的建立、删除、角色的授权以及用户密码的修改。
3.掌握连接数据库以及断开连接的方法。
4.建立基本的数据库表,学习简单的查询。
5.学会表结构的修改、显示与删除。
6.学习提交与回滚的方法。
实验环境(硬/软件要求):
安装Oracle9i
实验内容:
1.为自己建立用户帐号,练习如何修改用户参数。
2.以新建的帐号登录数据库,建立教材第75页中的四张表结构并输入相应表内容。
实验主要步骤:
1.建立用户。
2.改变用户参数。
3.建立表结构。
4.修改表结构。
5.显示表结构。
6.记录的输入及修改。
7.提交。
评分标准:
实验报告占70%,上机态度占30%
实验报告形式(纸质/电子):
电子
2.2实验二 Oracle中的表
实验目的:
1.熟悉Oracle中的各种表。
2.熟悉并练习临时表的使用方法。
3.学会修改表属性的方法。
4.熟练掌握表结构的修改和删除、索引的创建与删除。
5.熟悉数据词典中的几个视图的查看方法。
实验环境(硬/软件要求):
安装Oracle9i
实验内容:
1.按补充教材建立临时表,注意?
处的返回结果。
2.把当前用户的默认表空间改为USERS,并把四张表移到USERS表空间中。
3.完成以下与表结构相关的操作:
(1)复制表S的结构生成一张新表,取名为SS;
(2)在SS表中加入属性TEL(CHAR型);
(3)将SS表中的属性STATUS类型改为SMALLINT型。
4.完成以下与索引相关的操作:
(1)在SS表上建立SNAME的唯一索引;
(2)在SS表上按CITY升序、SNAME降序建立唯一索引;
(3)删除以上索引;
(4)删除SS表。
5.熟悉并使用数据词典中的几个视图,查看自己帐户已创建的所有表的信息。
实验主要步骤:
1.实验前根据实验内容做好书面准备。
2.上机验证准备好的命令正确与否,修改错误直至正确。
评分标准:
实验报告占70%,上机态度占30%
实验报告形式(纸质/电子):
电子
2.3实验三 Oracle中的查询
实验目的:
1.熟练掌握各种SQL语句的使用方法。
2.掌握视图的建立与删除。
实验环境(硬/软件要求):
安装Oracle9i
实验内容:
1.实现第三章作业中的第5题的SQL查询。
2.完成以下查询:
(1)按所驻城市升序、供应商号降序显示所有的供应商信息。
(2)显示各供应商供应的零件种类数,要求按供应种类的多少降序显示,显示的内容包括供应商号,零件种类数(提示:
结果中应包括未供应零件的供应商)
(3)显示所有供应了“蓝色”零件数量在200以上(含200)的所有供应商信息,显示内容包括供应商号、供应商名字、所驻城市和供应数量。
(4)找出供应零件总量超过1000(含1000)的所有供应商号,要求按供应总量多少降序排列。
(5)找出零件供应总数量最多的供应商号。
3.实现第三章作业第11题中的视图建立及查询,最后删除新建的视图。
实验主要步骤:
1.实验前根据实验内容做好书面准备。
2.上机验证准备好的命令正确与否,修改错误直至正确。
评分标准:
实验报告占70%,上机态度占30%
实验报告形式(纸质/电子):
电子
2.4实验四 PL/SQL编程
(一)
实验目的:
1.熟悉脚本的编写及执行。
2.了解编程的结构以及变量的声明方法以及记录类型的使用。
实验环境(硬/软件要求):
安装Oracle9i
实验内容:
1.熟悉脚本的使用方式。
2.调试例1、2、3,了解PL/SQL的编程风格、变量的声明方法以及记录类型的使用方法。
3.查询输出’S1’供应商的Sname及City。
实验主要步骤:
1.输入程序。
2.运行程序并分析结果。
3.修改程序,再运行程序,分析结果。
评分标准:
实验报告占70%,上机态度占30%
实验报告形式(纸质/电子):
电子
2.5实验五 PL/SQL编程
(二)
实验目的:
1.掌握索引表的定义及引用。
2.掌握索引表中的记录引用方法。
3.掌握游标的使用方法。
实验环境(硬/软件要求):
安装Oracle9i
实验内容:
1.调试例3,记录显示结果。
2.模仿例5,分别显示供应商S2以及S5的供货情况(包括PNO、JNO、QTY)。
3.模仿例6,显示表S中每一个供应商的号码及名称。
实验主要步骤:
1.编程序并上机调试运行。
2.修改程序再运行,检查结果是否正确。
评分标准:
实验报告占70%,上机态度占30%
实验报告形式(纸质/电子):
电子
2.6实验六 PL/SQL编程(三)
实验目的:
1.掌握游标属性的使用。
2.掌握各种程序控制结构的运用。
实验环境(硬/软件要求):
安装Oracle9i
实验内容:
1.模仿例1,把其中的EMP表改成P表运行一遍,记录显示结果。
2.编程显示J表的前三条记录。
3.编程统计每一个供应商的供应零件总量,要求显示每一个供应商的名称以及供应总量。
实验主要步骤:
1.实验前按实验内容编制程序。
2.调试程序,上机运行。
评分标准:
实验报告占70%,上机态度占30%
实验报告形式(纸质/电子):
电子
2.7实验七 PL/SQL编程(四)
实验目的:
1.掌握运用过程、函数的方法。
2.掌握程序包的编程方法。
实验环境(硬/软件要求):
安装Oracle9i
实验内容:
1.针对SPJ表编一程序包,要求包含以下三个过程实现以下功能:
(1)插入一条新记录(传入各字段参数)
(2)删除一条记录(传入SNO、PNO、JNO)
(3)输出某供应商所提供的所有的零件号、工程号及数量(传入SNO)
实验主要步骤:
1.实验前书面编制程序包。
2.调试程序,上机运行直至程序包无语法错误。
3.调用程序包中的过程,验证其正确性并记录结果。
评分标准:
实验报告占70%,上机态度占30%
实验报告形式(纸质/电子):
电子
2.8实验八 触发器设计
实验目的:
1.掌握ORACLE中各种触发器的设计方法。
实验环境(硬/软件要求):
安装Oracle9i
实验内容:
1.实现教材P162中例18的BEFORE行级触发器的定义,并检测触发器是否执行。
2.模仿教材P162例19,定义AFTER行级触发器,当供应情况表SPJ的供应数量Qty发生变化后就自动在数量变化表Qty_log中增加一条相应记录。
3.在S表上创建一个触发器,要求插入的记录中SNO的内容均为大写字符。
实验主要步骤:
1.按照实验内容设计触发器。
2.调试程序,上机运行并加以验证。
评分标准:
实验报告占70%,上机态度占30%
实验报告形式(纸质/电子):
电子
第三部分实验补充教材
3.1实验一Oracle中的基本知识
一.大型数据库与单用户数据库的区别
1.安全性
(1)用户权限管理
(2)C/S模式,服务器统一处理客户端的请求
(3)没有DBF文件,一个表可以分跨在多个物理文件上,数据存放格式不公开
2.并发性:
用进程或线程同时处理多个用户的请求,自动进行并发控制,封锁的粒度可以到行
3.分布式处理:
多台服务器同时对外服务,提高处理速度及并发度
4.大容量
5.数据词典:
定义了表的逻辑模式和物理模式,用户可以在这里找到了解数据库内容所需的所有对象
二.SQL*Plus
SQL*Plus是一个开发者和管理员用来与Oracle数据库进行交互的客户工具。
它可以让用户发布SQL语句,编译和执行PL/SQL代码,从与Oracle相连接的命令行控制台上管理本地服务器或者网络上任何位置的服务器上的数据库。
三.建立用户
1.如何建立用户?
SQL>connectwzp/wzp@myoracle;
SQL>createuserjxxx
identifiedbyjxxx;
SQL>grantconnect,resource
tojxxx;
2.如何改变用户参数?
(1)修改密码
SQL>connectjxxx/jxxx@myoracle;
SQL>alteruserjxxx
identifiedbyjyyy;
(2)锁定帐号以及解除帐号锁定
SQL>connectwzp/wzp@myoracle;
SQL>alteruserjxxxaccountlock;(锁定帐号)
SQL>alteruserjxxxaccountunlock;(解除帐号锁定)
(3)如何删除用户
SQL>connectwzp/wzp@myoracle;
SQL>dropuserjxxx[cascade];
四.建表
1.Oracle中的基本数据类型
(1)char(n):
定长字符串
(2)varchar2(n):
变长字符串
(3)number(m):
整数
(4)number(m,n):
浮点数或实数
(5)date:
日期
2.改表
altertables
add…/modify…
3.显示表结构
SQL>describes;
4.删除表
droptables;
五.记录的输入及修改
1.输入
SQL>insertintosvalues(…);
2.修改
SQL>updatesset…
六.简单查询 select*froms;
七.提交和回滚 commit/rollback
3.2实验二Oracle中的表
一.Oracle中的表
Oracle已经发布了新类型的表,来适应各种类型的数据存储、数据访问以及性能要求。
对于所有类型的表,Oracle都允许开发人员和管理人员规定各种表特性。
我们应该理解各种表类型,以及用户为什么要选择其中一种类型,而不是其他的类型。
在用户应用中,可能常规关系表就可以完成工作,然而其他类型的表可能会让工作更快速,使用更少的磁盘空间,并占用更少的处理器资源。
常用的表类型有堆表、外部表、索引组织表和临时表,另外还有其他一些表类型。
二.堆表(heaptable):
是最基本的表,采用随机存储的方式,在将行写入数据块的时候不会考虑其他行的存储位置,而是将数据写入第一个具有足够自由空间的段,当更新和删除行的时候,就会为新的插入提供可用空间。
三.外部表(rxternaltables,Oracle9i中才有):
在数据库以外的文件系统上存储的只读表。
通过使用外部表,就无须将数据复制到数据库中,并且强制更新,我们可以让数据保留在普通文件中,并且允许数据库对其进行实地读取。
在这种方法中,外部应用可以采用它认为合适的方法更新数据,而且也不用调用SQL*Loader执行数据载入操作。
四.索引组织表(IOT表)可以存储索引这样的内容,以辅助查询性能。
索引组织表会以牺牲插入和更新性能为代价提供极好的查询性能。
对于总是要通过特定索引访问的表,使用索引组织表来代替堆组织表可以提高性能。
建立方法:
createtables
(sno
sname
status
city
primary
)
organizationindex
/
五.临时表:
只在事务处理或会话进行期间存在数据的表。
数据会在事务处理或者会话开始以后插入临时表,当事务处理或者会话完成之后就会删除。
Oracle中,临时表只需建立一次,建议在需要临时存储数据的应用中使用临时表。
例子:
SQL>createglobaltemporarytables1_tab
oncommitpreserverows*规定了一个专用于会话的临时表
asselect*
froms;
SQL>selectcount(*)
Froms1_tab;
?
SQL>createglobaltemporarytables2_tab
oncommitdeleterows*规定了一个专用于事务的临时表
asselect*
froms
where1=0;
SQL>insertintos2_tab
select*
froms;
SQL>selectcount(*)
froms2_tab;
?
SQL>commit;
SQL>selectcount(*)
froms1_tab;
?
SQL>selectcount(*)
froms2_tab;
?
SQL>disconnect
SQL>connectwzp/wzp@myoracle;
SQL>selectcount(*)
froms1_tab;
?
SQL>selectcount(*)
froms2_tab;
?
六.其它表类型
1.分区表:
可以将非常大的表分割成较小的片段分区存放
2.簇表:
物理上存储在一起的两个或多个表(如SQL中连接的表总是会一起受到查询),以减少磁盘读取量。
3.散列簇表:
类似于簇表,只是存取行的方法不同。
七.表空间
当使用Oracle管理应用数据的时候,表的特性将会决定怎样建立表,怎样在磁盘上存储表,以及当表生成和可以使用之后,应用最终执行方式。
我们可以使用TableSpace子句来规定表的存储位置。
该子句可选,若建表时不写该子句则把新建表放在默认表空间中,初始为system。
但最好改为users。
1.判定默认表空间
selectdefault_tablespace
fromuser_users;
2.改变默认表空间
(1)初建时(用DBA帐号登录)
Createuserj001
identifiedbyj001
defaulttablespaceusers;
(2)初建时未设,后来改(须用DBA帐号登录才可以改)
Alteruserj001
defaulttablespaceusers;
(3)将表移动到新的表空间
Altertablesmovetablespaceusers;
八.数据词典
每一个数据库都有一个数据词典,它是用户的整个Oracle数据库的编目。
当建立用户、表、约束和其他数据库对象的时候,Oracle都会自动维护一个在数据库中存储的项编目。
用户可以通过以下几个视图得到相关的一些信息:
1.User_tables视图:
展示当前用户所拥有的所有表的信息。
SQL>selecttable_name,tablespace_name
fromuser_tables
orderbytable_name;
2.DBA_tables视图:
数据库管理员帐号可以使用它查看数据库中所有用户的表数据。
SQL>selectowner,table_name,tablespace_name
fromdba_tables
whereownerin(‘WZP’,’J101’)
orderbyowner,tablespace_name,table_name;
3.ALL_tables视图:
可以查看有关用户所拥有的表的信息以及用户已经被授予特权的表的信息。
SQL>selectowner,table_name
fromall_tables
orderbyowner,table_name;
3.3实验三ORACLE中的查询
一.复杂查询注意点
a)表别名及列别名的设置
b)连接(*Oracle8i中无法实现连接,只能用笛卡儿积代替)
i.自然连接
ii.内连接
iii.外连接
二.其他DML语句
a)插入多行
insertintos(sno)selectdistinctsnofromspj;
b)生成一张新表
createtable女生
asselect*fromstudentwheresex=’F’;
c)复制表结构
createtable女生
asselect*fromstudentwhere1=0;
d)删除表内容
deletefromswhere…
3.4实验四PL/SQL编程
(一)
一.脚本的编写及执行
1.在记事本中编写并以***.sql保存
2.运行:
@路径\***.sql;
二.PL/SQL的来源及实质
PL/SQL是Oracle的过程化编程语言,用户可以使用它编写用来在数据库中执行的定制程序以及过程代码。
PL/SQL程序能够存储在数据库中,用于用户应用程序和日常操作。
这可以让用户在编程语言中实现与用户数据密切相关的业务逻辑。
三.PL/SQL的块结构
1.PL/SQL代码使用了程序块(block),利用模块化方式进行构建。
每个程序块都是一组逻辑上的变量、可执行代码以及错误控制代码。
例1:
SQL>setserveroutputon
SQL>declare
L_numbernumber:
=1;
Begin
L_number:
=1+1;
Dbms_output.put_line(‘1+1’||to_char(L_number)||’!
’);
Exception
Whenothersthen
Dbms_output.put_line(‘Weencounteredanexception!
’);
End;
/
2.块嵌套:
程序块可以在可执行部分和异常处理部分包含另外的程序块。
例2:
declare
l_textvarchar2(20);
begin
l_text:
=’FirstBlock’;
Dbms_output.put_line(l_text);
declare
l_more_textvarchar2(20);
begin
l_more_text:
=’SecondBlock’;
Dbms_output.put_line(l_more_text);
End;
End;
/
四.声明
1.变量和常量的声明
i.变量的声明
declare
l_number_variablenumber;
begin
l_number_variable:
=50;
end;
以上方式等价于:
declare
l_number_variablenumber:
=50;
begin
null;
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理 数据库 原理 实验教学 指导书