oracle实验指导XE.docx
- 文档编号:6517506
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:33
- 大小:568.95KB
oracle实验指导XE.docx
《oracle实验指导XE.docx》由会员分享,可在线阅读,更多相关《oracle实验指导XE.docx(33页珍藏版)》请在冰豆网上搜索。
oracle实验指导XE
《数据库原理》
实验指导书
梁永先编
哈尔滨理工大学荣成学院
目录
实验一认识DBMS及其安装………………………………………………………………...…8
实验二交互式SQL(数据定义部分)……………………………………………………...…13
实验三交互式SQL(数据查询部分)………………………………………………………...15
实验四交互式SQL(数据操纵部分)………………………………………………………...17
实验五数据库的完整性与安全性………………………………………………………………18
实验六PL/SQL基础(数据程序设计)…………………………………………………………..17
实验七过程和函数(数据库程序设计)………………………………………………………17
实验八并发控制与恢复…………………………………………………………………………24
实验九数据库应用系统开发……………………………………………………………………20
实验十数据库应用系统开发……………………………………………………………………20
实验说明
数据库原理课程是实践性非常强的课程。
学生应该通过上机实验理解和掌握课堂中讲授的基本原理,同时也为开发实际的应用系统打下坚实的基础。
在实验中应该重点掌握下面内容:
1.认识DBMS和安装DBMS以及启动运行DBMS。
通过实验重点掌握数据库、表和查询的概念,难点是理解DBMS的体系结构。
2.SQL查询语言。
通过实验重点掌握SQL查询语言的语法结构和使用,本部分难点是嵌套查询,学生应仔细体会和理解,并能写出有关的嵌套查询语句。
3.SQL数据操纵语言。
本部分的重点是表的建立、记录的插入、删除和修改,难点是在建立表结构时定义有关完整性的约束条件。
4.数据库的完整性、并发性和安全性。
本部分的重点是理解数据库对完整性的检查机制、安全性的定义如授权和收回权限的控制。
难点是理解数据库的并发控制机制以及事务的概念。
5.简单应用系统开发。
本部分重点是将所学的数据库设计的理论应用到实际的数据库应用的系统的开发上,作到理论和实际相结合。
难点是开发工具的使用和与数据库系统的结合。
数据库原理实验报告
实验题目:
姓名:
学号:
班级:
实验环境:
实验内容与完成情况:
出现的问题:
解决方案(列出遇到的问题及解决办法,列出没有解决的问题):
教师评语:
200年月日
实验一认识DBMS及其安装
一、实验目的
1.通过某个数据库管理系统的安装使用,初步了解DBMS的工作环境和系统架构,为以后实验打下基础。
推荐选择下面数据库之一:
(1)OracleDatabaseXE:
可到Oracle公司免费下载;
二、实验仪器
1.硬件:
PII以上个人计算机,内存要求在256MB以上。
2.操作系统:
Windows2000或WindowsXP;
3.网络:
机房应该具有局域网。
三、实验原理
数据库管理系统(DataBaseManagementSystem,DBMS)是位于用户与操作系统之间的一层数据管理软件。
数据库管理系统与操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
它的主要功能包括以下几个方面:
(1)数据定义功能;
(2)数据组织、存储和管理;
(3)数据操纵功能;
(4)数据库的事务管理和运行管理;
(5)数据库的建立和维护功能;
(6)其他功能。
四、实验内容与步骤
1.根据安装文件的说明安装数据库管理系统。
在安装的过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。
2.学会启动和停止数据库服务。
3.初步了解RDBMS的安全性,这里主要是用户的登录和服务器预定义角色。
可以尝试建立一个新的用户,赋于其数据库管理员角色,今后的实验可以用该用户来创建数据库应用。
4.了解RDBMS的架构。
5.了解RDBMS的管理和使用。
(一)实验内容
下面以OracleDatabaseXE为例说明具体实验内容:
1.安装OracleDatabaseXE数据库系统。
2.启动数据库主页,建立一个名为Student的用户(模式)。
3.学会使用SQL*Plus命令行工具和SQL页操作数据库。
(二)实验步骤
OracleDatabaseXE安装步骤:
(1)双击下载的文件OracleXEUniv.exe即开始安装,首先显示安装向导的欢迎界面,单击“下一步”按钮,在出现的许可证协议界面中选中“我接受本许可协议中的条款”按钮,单击“下一步”按钮,出现如图2.1所示的选择目标位置界面。
在该页面中安装程序给出了系统默认安装位置,默认安装位置为C:
\oraclexe目录。
如果需要改变安装位置,点击“浏览”按钮可以打开“选择文件夹”对话框,改变安装位置。
这里保持默认的安装位置。
图2.1OracleDatabaseXE的选择目标位置界面
(2)单击“下一步”按钮,出现如图2.2所示的指定数据库口令界面。
OracleDatabaseXE在安装时默认创建一个名为XE的数据库。
这里指定的是数据库管理员SYS和SYSTEM用户的口令,假设口令为oracle。
安装完成后应该使用SYSTEM用户和这里指定的口令登录数据库。
图2.2指定数据库口令界面
OracleDatabaseXE提供了一个基于Web的图形用户界面管理工具。
在默认情况下OracleDatabaseXE的HTTP监听程序的端口为8080。
如果该端口已被其他服务占用,安装程序将显示如图2.3所示的选择HTTP监听程序端口界面。
默认情况下安装程序给出一个端口号,用户也可以输入方便的端口号,但要注意不要与本机其他服务器监听程序端口冲突。
图2.3选择HTTP监听程序端口界面
(3)单击“下一步”按钮,出现如图2.4所示的安装向导的概览界面。
在该界面中列出了安装的目标文件夹为C:
\oraclexe;OracleXE数据库监听程序端口为1521;用于MicrosoftTransactionServer的Oracle服务的端口为2023;HTTP监听程序的端口为8080。
这些设置如果不符合要求,可以按“上一步”按钮返回重新配置。
图2.4安装向导的概览界面
(4)单击“安装”按钮,安装程序开始安装OracleDatabaseXE,安装结束后出现如图2.5所示的安装结束界面。
图2.5安装结束界面
单击“完成”按钮结束安装。
如果“启动数据库主页(L)”处于选中状态,则将启动数据库主页。
OracleDatabaseXE数据库主页启动步骤:
(1)选择“开始”→“所有程序”→“OracleDatabase10gExpressEdition”→“移至数据库主页”命令,将启动默认浏览器并显示OracleDatabaseXE登录页面,如图2.6所示:
图2.6数据库主页登录页面
(2)在登录页面的“用户名”文本框中输入管理员帐号SYSTEM,在“口令”文本框中输入在安装时指定的密码oracle,然后单击“登录”按钮,则可进入OracleDatabaseXE控制台界面,该页面就是OracleDatabaseXE数据库主页,如图2.7所示。
图2.7数据库主页页面
在数据库主页中有4个大图标,分别是管理、对象浏览器、SQL和实用程序。
它们的功能如下:
(1)管理图标:
管理数据库用户帐号、管理内存、存储及网络连接、监视数据库活动、查看配置信息等。
(2)对象浏览器:
在这里可以创建、修改、浏览和删除数据库对象;使用PL/SQL编辑器编辑和编译存储过程、函数、触发器和包。
(3)SQL图标:
可以访问下列SQL工具:
∙SQL命令——运行SQL命令和匿名PL/SQL块、运行脚本和保存查询;
∙SQL脚本——创建、编辑、查看、运行和删除脚本文件;从本地文件系统中导入和导出脚本;
∙查询构建器——使用图形用户界面的方式构建SQL查询、查看格式化的查询结果和保存查询。
(4)实用程序图标:
加载和卸载数据、生成DDL、查看对象报表以及恢复删除的数据库对象。
点击某个图标,可以进入下一页,在下一页中列出了各种功能的图标。
也可以点击图标右边的向下箭头,打开菜单,从菜单中选择要完成的操作。
创建新的数据库用户帐户:
创建新的数据库用户帐户的步骤为:
(1)以数据库管理员(SYSTEM)身份登录到数据库主页;
(2)从“管理”→“数据库用户”→“创建用户”,出现“创建数据库用户”页面。
(3)在“用户名”文本框中输入新建用户名STUDENT,在“口令”和“确认口令”文本框中输入新建用户的口令,如student。
保证“用户状态”列表框中为“未锁定”,在“用户权限”区中保证CONNECT和RESOURCE角色被选中,如图1.9所示。
图1.9创建数据库用户页面
(4)点击“创建”按钮,结果在“管理数据库用户”页面中显示新创建的用户。
(5)单击页面右上角的“注销”链接,出现一个新的页面,其中显示“您当前已被注销”,点击下面的“登录”链接,则出现“数据库登录”对话框,在其中输入新用户的用户名和口令,就可以以新的用户登录到数据库中。
五、实验报告要求
1.要求写明实验目的、实验原理、实验内容和实验步骤;
2.对实验中出现的问题和结果进行讨论。
六、思考题
1.在OracleDatabaseXE安装时需要指定哪些信息?
2.如何启动OracleDatabaseXE数据库主页和SQL*Plus工具,如何创建一个数据库用户?
实验二交互式SQL(数据定义部分)
一、实验目的:
熟悉OracleDatabaseXE的SQL命令窗口的启动及使用。
掌握SQL的数据定义语言的使用;理解数据库对象的概念。
二、实验原理:
SQL语言是关系数据库的标准语言。
SQL语言是集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。
数据库的对象可以使用SQL语言DDL加以定义。
三、实验仪器:
PII以上个人计算机
四、实验内容与步骤:
1.在OracleDatabaseXE的SQL命令窗口中,使用SQL语言定义Student表,该表的结构描述如下:
表3.1Student表结构
列名
数据类型
是否为空
约束
Sno
CHAR(9)
否
该列为主码
Sname
VARCHAR2(10)
否
要求性别只能为男或女
Ssex
CHAR(4)
否
Sage
NUMBER
(2)
否
年龄限制在16到25之间(包含)
Sdept
CHAR(4)
可以
注意,主码的定义和约束条件的定义。
2.在SQL*Plus环境下,使用SQL语言定义Course表,该表的结构描述如下:
表3.2Course表结构
列名
数据类型
是否为空
约束
Cno
CHAR
(2)
否
该列为主码
Cname
CHAR(14)
否
Cpno
CHAR
(2)
是
该列为外码
CCredit
NUMBER
(1)
否
注意,要将Cno定义为主码,Cpno定义为外码。
3.在SQL*Plus环境下,使用SQL语言定义Course表,该表的结构描述如下:
表3.3SC表结构
列名
数据类型
是否为空
约束
Sno
CHAR(9)
否
该列为外码
Cno
CHAR
(2)
否
该列为外码
Grade
NUMBER(3)
是
注意,该表的主码为Sno和Cno的组合,同时Sno和Cno都是外码。
要求定义表时定义这些主码和外码。
4.插入数据
使用INSERT语句将下面三个表中的数据插入到相应的表中。
可以使用SELECT语句查看表中的数据。
表3.4Student表数据
Sno
Sname
Ssex
Sage
Sdept
200215121
李勇
男
20
CS
200215122
刘晨
女
19
IS
200215123
王敏
女
18
MA
200215125
张立
男
19
IS
表3.5Course表数据
Cno
Cname
Cpno
Ccredit
1
数据库
5
4
2
数学
2
3
信息系统
1
4
4
操作系统
6
3
5
数据结构
7
4
6
数据处理
2
7
PASCAL语言
6
4
表3.6SC表数据
Sno
Cno
Grade
200215121
1
92
200215121
2
85
200215121
3
88
200215122
2
90
200215122
3
80
200215123
4
87
200215123
5
92
5.使用ALTERTABLE语句修改Student表为其增加一个BirthDay列,类型为DATE。
6.使用CREATEINDEX语句在Student表的Sage列上建立一个名为Age_Index的索引,要求索引为升序。
使用SELECT语句查询Student表,看有什么变化?
为什么?
使用DROPINDEX语句删除该索引。
五、实验报告要求
1.要求写明实验目的、实验原理、实验内容和实验步骤;
2.对实验中出现的问题和结果进行讨论。
六、思考题:
1.使用SQL定义数据库对象时,这些定义存放在哪里?
2.在什么时候会用到这些定义?
实验三交互式SQL(数据查询部分)
一、实验目的:
熟练掌握SQL查询语句的使用。
主要练习各种查询语句的构造,其中包括单表查询、连接查询、嵌套查询和集合查询。
重点掌握连接查询和嵌套查询
二、实验原理:
数据库的查询是数据库的核心操作。
SQL语言提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。
数据库查询主要包括:
单表查询、连接查询、嵌套查询和集合查询几类。
在查询中可以通过WHERE条件语句筛选查询结果、通过GROUPBY子句对查询结果分组、通过ORDERBY子句对查询结果排序。
连接查询是涉及到两个或两个以上的表的查询。
其中连接查询有包括等值连接、自身连接、外连接等。
嵌套查询也叫带子查询的查询。
它是在一个查询语句的WHERE子句或GROUPBY短语中嵌入另一个查询的查询。
三、实验仪器:
PII以上个人计算机
四、实验内容和步骤:
以下操作在学生-课程数据库中完成
1.单表查询
(1)查询全体学生的详细信息;
(2)查询全体学生的姓名,学号和所在系;
(3)查询全体学生的姓名及出生年份;
(4)查询学校共有哪些系;
(5)查询所有年龄在20岁以下的学生姓名及其年龄;
(6)查询年龄不在20~23岁之间的学生姓名、系别和年龄。
(7)查询课程表中课程名中包含“数据”的课程信息。
(8)查询全体学生情况,查询结果按所在系升序排列,系相同按学生年龄降序排列。
(9)查询选修了课程的学生人数。
(10)查询选修了“数据库”课程的人数、最高分、最低分和平均分。
(11)查询男女同学的平均年龄。
(12)查询选修了3门以上课程的学生学号。
(13)查询有10人以上选修的课程名。
2.集合查询
假设有一个Teacher表记录教师的信息,其中包括Tname表示教师名。
用UNION、INTERSECT和MINUS完成下列查询。
(1)求计算机系的学生和年龄不大于19岁的学生的并集。
(2)查询所有在职学生信息。
(3)查询现在没有正在进修的教师信息。
(4)查询学校所有教师和学生姓名。
3.连接查询
(1)查询每个学生的选课情况。
(2)查询每门课程的课程号及间接先修课号。
(3)查询既选修了1号课又选修了3号课的学生学号(用自身连接)。
(4)查询至少有两人选修的课程号(用自身连接)。
(5)查询一门课也没选的学生信息。
(用外连接)
(6)查询选修2号课且成绩在90分以上的学生学号和姓名。
(7)查询选修了“数据库”课且成绩不及格的学生姓名。
4.嵌套查询
(1)查询与“刘晨”同学在一个系学习的学生学号、姓名及所在系。
(2)查询选修了“信息系统”课程的学生学号和姓名。
(3)查询其他系中比信息系某一学生年龄小的学生姓名和年龄。
(4)查询其他系中比信息系所有学生年龄都小的学生姓名和年龄。
(5)查询没有选修1号课的学生姓名。
(6)查询选修了全部课程的学生姓名。
(7)查询至少选修了学生200215122选修的全部课程的学生学号。
五、实验报告要求
1.将实验中的查询语句写到实验报告中;
2.要求写明实验目的、实验原理、实验内容和实验步骤;
3.对实验中出现的问题和结果进行讨论。
六、思考题:
1.各种类型的查询都适用于什么情况?
2.为什么说嵌套查询比连接查询效率高?
实验四交互式SQL(数据操纵与视图部分)
一、实验目的:
熟练掌握SQL数据更新语句,其中包括INSERT、UPDATE、DELETE三个语句。
学会INSERT、UPDATE、DELETE三个语句的使用和注意事项。
熟练掌握使用SQL的CREATEVIEW语句和DROPVIEW语句建立视图和删除视图。
能够区分不同类型的视图,其中包括行列子集视图、带表达式的视图和分组视图。
掌握对视图的查询。
掌握视图更新的限制。
二、实验原理
对数据库中数据的更新需要使用SQL的INSERT、UPDATED和ELETE语句实现。
INSERT语句用来向表中插入数据,UPDATE语句用来修改表中的数据,DELETE语句用来删除表中的数据。
对数据库的更新特别要注意保证数据库数据的一致性。
视图是关系数据库提供给用户以多种角度观察数据库中数据的重要机制。
视图是从一个或几个基本表(或视图)导出的表,虚表。
视图只存放视图的定义,不会出现数据冗余。
基表中的数据发生变化,从视图中查询出的数据也随之改变。
视图操作可以使用SQL的CREATEVIEW、DROPVIEW语句。
视图创建后可以像基本表一样查询。
三、实验仪器:
PII以上个人计算机
四、实验内容和步骤
1.针对学生-课程数据库,完成下列操作:
(1)使用INSERT语句向Student表中插入一学生记录,该学生学号为200215128,姓名为“陈东”,性别为“男”,年龄为18岁,所在系为信息系。
(2)向SC表中插入一行选课记录('200215128','5'),现在还没有成绩。
(3)对每一个系,求学生的平均年龄,并把结果存入数据库。
(4)将学生200215121所在的系改为MA。
(5)将选修“数据库”课程的学生成绩提高10%。
(6)删除计算机系所有学生的选课记录。
2.完成下列关于视图的操作。
(1)建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。
(2)建立信息系选修了1号课的学生的视图IS_S1。
(3)建立信息系选修了1号课且成绩在90分以上的学生视图IS_S2。
(4)将学生的学号及他的平均成绩定义为一个视图S_G。
(5)查询信息系选修1号课的的学生学号和姓名,要求使用视图IS_Student。
(6)将信息系学生视图IS_Student中的学号为200215122的学生姓名该为“刘辰”。
(7)向信息系学生视图IS_Student中插入一个新的学生记录,其中学号为200215130,姓名为赵新,年龄为20岁。
五、实验报告要求
1.要求写明实验目的、实验原理、实验内容和实验步骤;
2.对实验中出现的问题和结果进行讨论。
六、思考题:
1.说明更新操作如何保证数据库的一致性?
2.视图有哪些作用?
3.如何理解对视图的查询最终都转换成对基本表的查询?
4.那些视图可以更新的,哪些视图是不可更新的。
实验五数据库完整性与安全性
一、实验目的:
通过该实验使学生了解和掌握数据库完整性的定义与检查,数据库安全性的定义与检查。
学会通过CREATETABLE语句定义完整性约束,通过使用触发器实现完整性检查。
学会通过GRANT、REVOKE语句进行授权和回收权限。
学会通过建立触发器实现安全性检查。
二、实验原理
DBMS的完整性控制机制具有三方面的功能:
(1)定义功能,提供定义完整性约束条件的机制。
(2)检查功能,检查用户发出的操作请求是否违背了完整性约束条件。
(3)处理功能,如果发现用户操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
在完整性约束中,外码的约束是最重要的一种约束。
这主要涉及到下面四个方面:
(1)外码能否接受空值的问题
(2)在被参照关系中删除元组的问题
(3)在参照关系中插入元组的问题
(4)修改关系中主码的问题
在数据库中,可以通过GRANT和REVOKE语句实现安全性的控制,也可以通过触发器实现安全性检查。
另外,通过视图也可以实现安全性。
三、实验仪器:
PII以上PC计算机
四、实验内容与步骤:
1.通过CREATETABLE语句实现完整性约束的定义
具体步骤:
(1)建立一个部门表DEPT,其中包括的列及约束如下:
Deptno表示部门号,要求取值为1000到9999四位整数,并作为该表的主码;
Dname表示部门名,要求部门名唯一;
Dloc表示部门的地点,类型为VARCHAR2,宽度为20。
(2)建立一个职工表EMP,其中包括的列及约束如下:
Empno表示雇员号,要求取值为100000到999999六位整数,并作为该表的主码;
Ename表示雇员名,要求不能取空值,不要求取值唯一。
Sal表示实发工资,Deduct表示扣除项,要求应发工资不得超过5000元。
应发工资为实发工资和扣除项之和,这两列的数据类型为NUMBER(7,2)。
Deptno表示部门号,它要参照DEPT表中的Deptno列的取值。
(3)在上述两个表中输入一些数据。
(1000,数学系,理工3号楼)
(2000,物理系,理工2号楼)
(3000,化学系,理工1号楼)
再在DEPT表中输入下面记录,看会出现什么结果,为什么?
:
(999,计算机,理工3号楼)
(3000,工商管理系,经法楼)
2.通过触发器实现完整性规则。
(1)建立一个名为Teacher的表,其中包括Tno,Tname,Pos,Sal列,它们的含义分别为教师编号,教师姓名,职称和工资。
(2)使用CREATETRIGGER语句定义触发器,规则是教授的工资不得低于1000元,如果低于1000元,自动改为1000元。
CREATETRIGGERUpdate_Sal
BEFOREINSERTORUPDATEOFSal,PosONTeacher
FOREACHROW
WHEN(new.Pos='教授')
BEGIN
IF:
new.Sal<1000THEN
:
new.Sal:
=1000;
ENDIF;
END;
3.使用GRANT和REVOKE实现安全性控制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 实验 指导 XE