数据库毕业课程设计报告教材管理系统.docx
《数据库毕业课程设计报告教材管理系统.docx》由会员分享,可在线阅读,更多相关《数据库毕业课程设计报告教材管理系统.docx(89页珍藏版)》请在冰豆网上搜索。
数据库毕业课程设计报告教材管理系统
(此文档为word格式,下载后您可任意编辑修改!
)
Oracle数据库管理与设计报告
目录I
前言II
第1部分Oracle管理技术1
实验1数据库管理1
实验2角色和用户管理17
实验3表和视图管理19
实验4索引和序列管理27
实验5PLSQL编程29
实验6使用游标、存储过程和触发器37
实验7表空间管理40
实验8文件管理48
第2部分Oracle开发技术62
1.本系统模块功能介绍………………………………………………………………………64
2.数据库设计………………………………………………………………………………64
3.代码部分…………………………………………………………………………………67
4.数据库连接………………………………………………………………………………71
5.界面………………………………………………………………………………………71
课程设计体会…………………………………………………………………74
前言
数据库技术是计算机科学中发展最快的领域之一。
随着网络技术的不断发展,数据库技术与网络技术相结合,已经广泛应用于工作和生活的各个领域。
同时,数据库技术及其应用已经成为国内外高校计算机专业和许多非计算机专业的必修或选修课程。
Oracle是当前最流行的大型关系数据库之一,支持包括32位Windows、64位Windows、OS、HP-UX、AIX5L、Solaris和Linux等多种操作系统,拥有广泛的用户和大量的应用案例,已成为大型数据库应用系统的首选后台数据库系统。
本实验课程要求学生全面了解Oracle数据库的特点和功能。
从安装配置、安全性、可用性、互操作性、PLSQL、可开发性、商业智能等多个方面,对Oracle数据库的各项技术进行学习和实验。
通过学习Oracle数据库安装、管理及开发,为今后从事Oracle数据库管理和开发工作打下良好的基础。
本实验课程共分2个部分。
第1部分为Oracle的管理技术,由实验1~实验6组成,包括数据库管理、角色和用户管理、表和视图管理、索引和序列管理、PLSQL编程、以及使用游标、存储过程和触发器等内容。
第2部分为Oracle开发技术,要求完成基于一定背景的管理信息系统的数据库设计,如学生信息管理系统、图书管理系统、人事信息管理系统、网上购物系统等。
第1部分为基础题、必做题,第2部分为提高题、选做题。
第1部分Oracle管理技术
实验1数据库管理
目的和要求
(1)了解Oracle数据库的逻辑结构和物理结构;
(2)了解OracleEnterpriseManager的使用情况;
(3)学习关闭和启动数据库实例的方法;
(4)学习使用SQL语句创建数据库的方法;
(5)学习使用SQL语句删除数据库的方法。
实验准备
首先要了解Oracle数据库的逻辑结构,包括方案(schema)对象、数据块(datablock)、区间(extent)、段(segment)和表空间(tablespace)等。
数据库由若干个表空间组成,表空间由表组成,段由区间组成,区间则由数据块组成。
Oracle数据库的物理结构由构成数据库的操作系统文件所决定。
每个Oracle数据库都由3种类型的文件组成:
数据文件、日志文件和控制文件。
这些数据库文件为数据库信息提供真正的物理存储。
EnterpriseManager9i是Oracle9i提供的新的管理工具,简称EM。
使用它可以完成启动、关闭数据库,创建、删除数据库等功能。
只有系统管理员或拥有CREATEDATABASE权限的用户才能创建数据库。
可以在EnterpriseManager中通过图形界面创建数据库,也可以使用CREATEDATABASE语句创建数据库。
实验内容
本实验主要包括以下内容。
(1)练习使用不同方法启动和关闭数据库实例。
(2)练习使用不同方法创建和删除数据库,要使操作的数据库为用户管理数据库UserMan。
1.使用SHUTDOWN命令关闭数据库实例
练习使用SHUTDOWN命令关闭数据库实例,分别按以下方式启动数据库实例。
(1)正常关闭。
等待当前所有已连接的用户断开与数据库的连接,然后关闭数据库。
正常关闭的语句如下:
SHUTDOWNNORMAL
(2)立即关闭。
回退活动事务处理并断开所有已连接的用户,然后关闭数据库。
立即关闭的语句如下:
SHUTDOWNIMMEDIATE
(3)事务处理关闭。
完成事务处理后断开所有已连接的用户,然后关闭数据库。
事务处理关闭的语句如下:
SHUTDOWNTRANSACTIONAL
(4)中止关闭。
中止数据库实例,立即关闭数据库。
中止关闭的语句如下:
SHUTDOWNABORT
每次执行SHUTDOWN语句关闭数据库实例之前,请执行STARTUP命令启动数据库。
2.使用STARTUP命令启动数据库实例
练习使用STARTUP命令启动数据库实例,分别按以下方式启动数据库实例。
(1)启动数据库实例时不装载数据库。
执行此操作的命令如下:
STARTUPNOMOUNT
(2)启动数据库实例,装载数据库,但不打开数据库。
通常在数据库维护时执行此操作,对应的命令如下:
STARTUPMOUNT
(3)启动数据库实例,装载数据库,打开数据库。
执行此操作的命令如下:
STARTUPOPEN
(4)强制实例启动。
在遇到特殊异常的情况时,可以强制启动实例。
强制启动实例的语句如下:
STARTUPFORCE
该语句将数据库强行启动到OPEN模式。
(5)启动后限制对数据库实例的访问。
执行此操作的命令如下:
STARTUPRESTRICT
每次执行STARTUP语句启动数据库实例之前,请执行SHUTDOWN命令关闭数据库。
3.使用ORACLEEnterpriseManager关闭数据库实例
按照下面的步骤关闭数据库实例。
(1)在数据库处于打开状态时,使用SYS用户以SYSDBA身份登录到EnterpriseManager。
在主目录页面的“一般信息”栏目中,可以看到“关闭”按钮。
(2)单击“关闭”按钮,可以打开“主机和目标数据库身份证明”页面。
用户需要拥有管理员的权限才能关闭数据库实例,包括主机操作系统的管理员和当前数据库实例的SYSDBA用户。
(3)输入完成后,单击“确定”按钮,打开“确认关闭”页面。
(4)单击“是”按钮,开始关闭数据库。
关闭操作完成后,单击“刷新”按钮,打开“启动数据库实例”页面。
4.使用ORACLEEnterpriseManager启动数据库实例
按照下面的步骤启动数据库实例。
(1)使用SYS用户以SYSDBA身份登录到EnterpriseManager。
(2)单击“启动”按钮,打开“主机和目标数据库身份证明”页面。
用户需要拥有管理员的权限才能启动数据库实例,包括主机操作系统的管理员和当前数据库实例的SYSDBA用户。
(3)输入完成后,单击“确定”按钮,打开“确认打开”页面。
(4)单击“是”按钮,开始打开数据库。
5.使用SQL语句创建数据库
按照如下条件创建数据库OracleDB(以SYSDBA的用户身份连接到数据库)。
(1)设置SYS用户的密码为SYSPWD,设置SYSTEM用户的密码为SYSTEMPWD。
(2)使用已有的控制文件。
(3)指定日志文件组redo01.log,大小为100MB;指定日志文件组redo02.log,大小为100MB。
设置最大的日志文件数量为10。
(4)定义日志文件组中最大的日志文件数量为5。
(5)定义最大的数据文件数量为100。
(6)定义数据库中最大的实例数量为1。
(7)定义存储数据的字符集为US7ASCII。
(8)定义数据文件名称为SYS01.dbf,初始大小为100MB。
(9)定义默认的表空间为tbs_1。
(10)定义临时表空间为tempts1。
(11)定义临时文件为temp01.dbf,大小为10MB。
CREATEDATABASE语句实例:
CREATEDATABASEOracleDB
USERSYSIDENTIFIEDBYSYSPWD
USERSYSTEMIDENTIFIEDBYSYSTEMPWD
CONTROLFILEREUSE
LOGFILEGROUP1(‘redo01.log’)SIZE100M,
GROUP2(‘redo02.log’)SIZE100M
MAXLOGFILES10
MAXLOGMEMBERS5
MAXDATAFILES100
MAXINSTANCES1
CHARACTERSETUS7ASCII
DATAFILE‘sys01.dbf’SIZE100MREUSE
EXTENTMANAGEMENTLOCAL
DEFAULTTABLESPACEtbs_1
DEFAULTTEMPORARYTABLESPACEtempts1
TEMPFILE‘temp01.dbf’SIZE10MREUSE;
6.使用SQL语句删除数据库
按照如下步骤删除数据库UserMan。
(1)在删除数据库之前,需要用户以SYSDBA或SYSOPER身份登录,代码如下:
CONNECTSYSSYSPWDASSYSDBA;
其中SYSPWD为SYS用户的密码,请根据实际情况输入。
(2)关闭数据库,再以MOUNT模式启动数据库,代码如下:
SHUTDOWNIMMEDIATE;
STARTUPMOUNT;
(3)删除数据库,代码如下:
DROPDATABASE;
7.使用OEM平台建数据库
8.监听数据库操作:
实验2角色和用户管理
目的和要求
(1)了解Oracle数据库用户和角色的概念;
(2)学习使用SQL语句创建Oracle用户;
(3)学习使用SQL语句创建Oracle角色;
(4)学习使用SQL语句指定用户的角色。
实验准备
(1)了解Oracle数据库用户可以分为6种类型,即数据库管理员、安全官员、网络管理员、应用程序开发员、应用程序管理员和数据库用户;
(2)了解角色是对用户的一种分类管理办法,不同权限的用户可以分为不同的角色;
(3)了解使用CREATEROLE语句创建角色的方法;
(4)了解使用DROPROLE语句删除角色的方法;
(5)了解使用GRANT语句指定用户角色的方法;
(5)了解使用CREATEUSER语句创建用户的方法;
(4)了解使用DROPUSER语句删除用户的方法。
实验内容
本实验主要包括以下内容。
(1)练习使用SQL语句创建数据库角色;
(2)练习使用SQL语句为数据库角色授予权限;
(3)练习使用SQL语句指定用户角色;
(4)练习使用SQL语句创建数据库用户。
1.使用SQL语句创建数据库角色
参照下面的步骤练习使用CREATEROLE语句创建数据库角色。
(1)以SYSTEM用户登录到SQL*PLUS。
(2)使用CREATEROLE语句创建角色UserManRole,密码为myrolepwd,代码如下:
CREATEROLEUserManRoleIDENTIFIEDBYmyrolepwd;
2.使用SQL语句为数据库角色授权
参照下面的步骤练习使用GRANT语句为数据库角色授权。
(1)以SYSTEM用户登录到SQL*PLUS。
(2)使用GRANT语句将角色UserManRole授予CONNECT和RESOURCE权限,代码如下:
--设置角色权限
GRANTCONNECTTOUserManRole;
GRANTRESOURCETOUserManRole;
3.使用SQL语句创建数据库用户
参照下面的步骤练习使用CREATEUSER语句创建数据库用户。
(1)以SYSTEM用户登录到SQL*PLUS。
(2)使用CREATEUSER语句创建用户UserManAdmin,密码为UserPwd,代码如下:
CREATEUSERUserManAdminIDENTIFIEDBYUserPwd
DEFAULTTABLESPACEUSERS
TEMPORARYTABLESPACETEMP;
(3)使用GRANT语句对用户UserManAdmin授予系统权限UNLIMITEDTABLESPACE,代码如下:
--设置系统权限
GRANTUNLIMITEDTABLESPACETOUserManAdmin;
4.使用SQL语句指定用户角色
参照下面的步骤将用户UserMan指定为角色UserManRole。
(1)以SYSTEM用户登录到SQL*PLUS。
(2)使用GRANT语句将用户UserMan指定为角色UserManRole,代码如下:
GRANTUserManRoleTOUserManAdmin;
实验3表和视图管理
目的和要求
(1)了解Oracle表和视图的概念;
(2)学习使用SQL语句创建表;
(3)学习使用SELECT语句查询数据;
(4)学习使用SQL语句创建视图。
实验准备
(1)了解表是数据库中最常用的数据存储单元,它包括所有用户可以访问的数据。
作为关系型数据库,Oracle表由行和列组成。
(2)视图是一个虚拟的表,它在物理上并不存在。
视图可以把表或其它视图的数据按照一定的条件组合起来,所以也可以把它看成是一个存储的查询。
视图并不包含数据,它只是从基表中读取数据。
(3)了解使用CREATETABLE语句创建表的方法。
(4)了解使用SELECT语句查询数据的方法。
(5)了解使用SQL语句创建视图的方法。
实验内容
本实验主要包括以下内容。
(1)练习使用SQL语句创建表;
(2)练习使用SQL语句向表中插入数据;
(3)练习使用SQL语句修改表中的数据;
(4)练习使用SQL语句删除表中的数据;
(5)练习使用SELECT语句查询数据;
(6)练习使用SQL语句创建视图。
1.使用SQL语句创建表
使用CREATETABLE语句创建用户信息表Users,结构如表1所示。
表1表Users的结构
编号
字段名称
数据结构
说明
1
UserId
NUMBER
用户编号
2
UserName
VARCHAR240
用户名
3
UserType
NUMBER1
用户类型(1管理员用户,2普通用户)
4
UserPwd
VARCHAR240
参照下面的步骤练习使用CREATETABLE语句创建表Users。
(1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。
Connectusermanadmin****ASSYSDBA
(2)使用CREATETABLE语句创建表Users,代码如下:
CREATETABLEUserManAdmin.Users
(UserIdNumberPrimaryKey,
UserNameVarchar2(40)NOTNULL,
UserTypeNumber
(1),
UserPwdVarchar2(40)
);
使用CREATETABLE语句创建用户登录信息表LoginInfo,结构如表2所示。
表2表LoginInfo的结构
编号
字段名称
数据结构
说明
1
UserId
NUMBER
用户编号
2
LoginTime
CHAR(20)
登录时间
参照下面的步骤练习使用CREATETABLE语句创建表LoginInfo。
(1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。
(2)使用CREATETABLE语句创建表LoginInfo,代码如下:
CREATETABLEUserManAdmin.LoginInfo
(UserIdNumber,
LoginTimeCHAR(20)NOTNULL
);
2.使用SQL语句向表中插入数据
使用INSERT语句向表Users中插入用户数据,内容如表3所示。
表3表Users中的数据
UserId
UserName
UserType
UserPwd
1
Admin
1
AdminPwd
2
User
2
UserPwd
3
Zhangsan
2
ZhangsanPwd
4
Lisi
2
LisiPwd
参照下面的步骤练习使用INSERT语句向表Users中插入数据。
(1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。
(2)使用INSERT语句向表Users中插入数据,代码如下:
INSERTINTOUserManAdmin.UsersVALUES(1,'Admin',1,'AdminPwd');
INSERTINTOUserManAdmin.UsersVALUES(2,'User',2,'UserPwd');
INSERTINTOUserManAdmin.UsersVALUES(3,'Zhangsan',2,'ZhangsanPwd');
INSERTINTOUserManAdmin.UsersVALUES(4,'Lisi',2,'LisiPwd');
COMMIT;
使用INSERT语句向表LoginInfo中插入数据。
内容如表4所示。
表4表LoginInfo中的数据
UserId
LoginTime
1
10:
33:
02
1
08:
34:
13
1
09:
13:
11
2
07:
35:
02
2
08:
11:
54
2
09:
13:
11
3
08:
34:
02
3
09:
34:
13
3
10:
13:
09
4
11:
34:
02
4
13:
34:
13
4
15:
13:
12
参照下面的步骤练习使用INSERT语句向表LoginInfo中插入数据。
(1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。
(2)使用INSERT语句向表LoginInfo中插入数据,代码如下:
INSERTINTOUserManAdmin.LoginInfoVALUES(1,'10:
33:
02');
INSERTINTOUserManAdmin.LoginInfoVALUES(1,'08:
34:
13');
INSERTINTOUserManAdmin.LoginInfoVALUES(1,'09:
13:
11');
INSERTINTOUserManAdmin.LoginInfoVALUES(2,'07:
35:
02');
INSERTINTOUserManAdmin.LoginInfoVALUES(2,'08:
11:
54');
INSERTINTOUserManAdmin.LoginInfoVALUES(2,'09:
13:
11');
INSERTINTOUserManAdmin.LoginInfoVALUES(3,'08:
34:
02');
INSERTINTOUserManAdmin.LoginInfoVALUES(3,'09:
34:
13');
INSERTINTOUserManAdmin.LoginInfoVALUES(3,'10:
13:
09');
INSERTINTOUserManAdmin.LoginInfoVALUES(4,'11:
34:
02');
INSERTINTOUserManAdmin.LoginInfoVALUES(4,'13:
34:
13');
INSERTINTOUserManAdmin.LoginInfoVALUES(4,'15:
13:
12');
COMMIT;
3.使用SQL语句修改表中的数据
使用UPDATE语句可以修改表Users中的数据。
参照下面的步骤练习将表Users中Admin用户的密码修改为AdminPassword。
(1)以SYSTEM用户登录到SQL*PLUS。
Connectsystem****ASSYSDBA
SELECT*FROMUSERMANADMIN.USERS;
SELECT*FROMUSERMANADMIN.LOGININFO;
(2)使用UPDATE语句将表Users中Admin用户的密码修改为AdminPassword,代码如下:
UPDATEUserManAdmin.UsersSETUserPwd='AdminPassword'WHEREUserName='Admin';
(3)使用SELECT语句查看用户Admin的密码,代码如下:
SELECTUserPwdFROMUserManAdmin.UsersWHEREUserName='Admin';
SELECT*FROMUSERMANADMIN.USERS;
4.使用SQL语句删除表中的数据
使用DELETE语句可以删除表Users中的数据。
参照下面的步骤练习将表Users中Zhansan用户的记录删除。
(1)以SYSTEM用户登录到SQL*PLUS。
(2)使用DELETE语句将表Users中Zhangsan用户的记录删除,代码如下:
DELETEFROMUserManAdmin.UsersWHEREUserName='Zhangsan';
(3)使用SELECT语句查看表Users中的数据,确认用户Zhangsan的记录是否被删除,代码如下:
SELECT*FROMUserManAdmin.Users;
5.使用SELECT语句查询数据
使用SELECT语句查询数据库中的用户数据,分别按以下方式查询数据库。
(1)查询表Users中的所有数据。
以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:
SELECT*FROMUserManAdmin.Users;
*代表UserManAdmin.Users中的所有字段。
(2)在返回结果中使用自定义标题。
以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:
SELECTUserNameAS用户名,UserPwdAS密码FROMUserManAdmin.Users;
(3)设置查询条件。
查询所有普通用户的信息。
以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:
SELECT*FROMUserManAdmin.UsersWHEREUserType=2;
查询用户Admin的密码信息。
以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:
SELECTUserPwdFROMUserManAdmin.UsersWHEREUse