Oracle课程设计 图书管理系统.docx

上传人:b****4 文档编号:3807836 上传时间:2023-05-06 格式:DOCX 页数:58 大小:637.86KB
下载 相关 举报
Oracle课程设计 图书管理系统.docx_第1页
第1页 / 共58页
Oracle课程设计 图书管理系统.docx_第2页
第2页 / 共58页
Oracle课程设计 图书管理系统.docx_第3页
第3页 / 共58页
Oracle课程设计 图书管理系统.docx_第4页
第4页 / 共58页
Oracle课程设计 图书管理系统.docx_第5页
第5页 / 共58页
Oracle课程设计 图书管理系统.docx_第6页
第6页 / 共58页
Oracle课程设计 图书管理系统.docx_第7页
第7页 / 共58页
Oracle课程设计 图书管理系统.docx_第8页
第8页 / 共58页
Oracle课程设计 图书管理系统.docx_第9页
第9页 / 共58页
Oracle课程设计 图书管理系统.docx_第10页
第10页 / 共58页
Oracle课程设计 图书管理系统.docx_第11页
第11页 / 共58页
Oracle课程设计 图书管理系统.docx_第12页
第12页 / 共58页
Oracle课程设计 图书管理系统.docx_第13页
第13页 / 共58页
Oracle课程设计 图书管理系统.docx_第14页
第14页 / 共58页
Oracle课程设计 图书管理系统.docx_第15页
第15页 / 共58页
Oracle课程设计 图书管理系统.docx_第16页
第16页 / 共58页
Oracle课程设计 图书管理系统.docx_第17页
第17页 / 共58页
Oracle课程设计 图书管理系统.docx_第18页
第18页 / 共58页
Oracle课程设计 图书管理系统.docx_第19页
第19页 / 共58页
Oracle课程设计 图书管理系统.docx_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Oracle课程设计 图书管理系统.docx

《Oracle课程设计 图书管理系统.docx》由会员分享,可在线阅读,更多相关《Oracle课程设计 图书管理系统.docx(58页珍藏版)》请在冰点文库上搜索。

Oracle课程设计 图书管理系统.docx

Oracle课程设计图书管理系统

 

数据库课程设计

设计名称:

图书管理系统

组员:

尚靖伟(122068)

张红凯(122072)

班级:

计G121班

信息工程学院计算机系

2013年6月27日

前言

数据库技术是计算机科学中发展最快的领域之一。

随着网络技术的不断发展,数据库技术与网络技术相结合,已经广泛应用于工作和生活的各个领域。

同时,数据库技术及其应用已经成为国内外高校计算机专业和许多非计算机专业的必修或选修课程。

Oracle是当前最流行的大型关系数据库之一,支持包括32位Windows、64位Windows、OS、HP-UX、AIX5L、Solaris和Linux等多种操作系统,拥有广泛的用户和大量的应用案例,已成为大型数据库应用系统的首选后台数据库系统。

本实验课程要求学生全面了解Oracle数据库的特点和功能。

从安装配置、安全性、可用性、互操作性、PL/SQL、可开发性、商业智能等多个方面,对Oracle数据库的各项技术进行学习和实验。

通过学习Oracle数据库安装、管理及开发,为今后从事Oracle数据库管理和开发工作打下良好的基础。

本实验课程共分2个部分。

第1部分为Oracle的管理技术,由实验1至实验8组成,内容包括:

(1)数据库管理;

(2)角色和用户管理;(3)表和视图管理;(4)索引和序列管理;(5)PL/SQL编程;(6)使用游标、存储过程和触发器;(7)表空间;(8)文件管理。

第2部分为Oracle开发技术,要求完成基于一定背景的管理信息系统的数据库设计,如学生信息管理系统、图书管理系统、人事信息管理系统、网上购物系统等。

第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

USERSYSIDENTIFIEDBYbipt123

USERSYSTEMIDENTIFIEDBYbipt123

CONTROLFILEREUSE

MAXLOGFILES10

MAXLOGMEMBERS5

MAXDATAFILES100

MAXINSTANCES1

LOGFILEGROUP1(‘E:

\redo01.log’)SIZE100M,

GROUP2(E:

\redo02.log’)SIZE100M,

CHARACTERSETUS7ASCII

DATAFILE‘E:

\sys01.dbf’SIZE100MREUSE

EXTENTMANAGEMENTLOCAL

DEFAULTTABLESPACEtbs_1

DEFAULTTEMPORARYTABLESPACEtempts1

TEMPFILE‘E:

\temp01.dbf’SIZE10MREUSE;

6.使用SQL语句删除数据库

按照如下步骤删除数据库UserMan。

(1)在删除数据库之前,需要用户以SYSDBA或SYSOPER身份登录,代码如下:

CONNECTSYS/SYSPWDASSYSDBA;

其中SYSPWD为SYS用户的密码,请根据实际情况输入。

(2)关闭数据库,再以MOUNT模式启动数据库,代码如下:

SHUTDOWNIMMEDIATE;

STARTUPMOUNT;

(3)删除数据库,代码如下:

DROPDATABASE;

实验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。

(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所示。

参照下面的步骤练习使用INSERT语句向表LoginInfo中插入数据。

(1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。

(2)使用INSERT语句向表LoginInfo中插入数据,代码如下:

INSERTINTOUserManAdmin.LoginInfoVALUES(1,‘2012-5-1510:

33:

02’);

INSERTINTOUserManAdmin.LoginInfoVALUES(1,‘2012-5-1608:

34:

13’);

INSERTINTOUserManAdmin.LoginInfoVALUES(1,‘2012-5-1709:

13:

11’);

INSERTINTOUserManAdmin.LoginInfoVALUES(2,‘2012-5-1507:

35:

02’);

INSERTINTOUserManAdmin.LoginInfoVALUES(2,‘2012-5-1608:

11:

54’);

INSERTINTOUserManAdmin.LoginInfoVALUES(2,‘2012-5-1709:

13:

11’);

INSERTINTOUserManAdmin.LoginInfoVALUES(3,‘2012-5-1508:

34:

02’);

INSERTINTOUserManAdmin.LoginInfoVALUES(3,‘2012-5-1609:

34:

13’);

INSERTINTOUserManAdmin.LoginInfoVALUES(3,‘2012-5-1710:

13:

09’);

INSERTINTOUserManAdmin.LoginInfoVALUES(4,‘2012-5-1511:

34:

02’);

INSERTINTOUserManAdmin.LoginInfoVALUES(4,‘2012-5-1613:

34:

13’);

INSERTINTOUserManAdmin.LoginInfoVALUES(4,‘2012-5-1715:

13:

12’);

COMMIT;

表4表LoginInfo中的数据

UserId

LoginTime

1

2012-5-1510:

33:

02

1

2012-5-1608:

34:

13

1

2012-5-1709:

13:

11

2

2012-5-1507:

35:

02

2

2012-5-1608:

11:

54

2

2012-5-1709:

13:

11

3

2012-5-1508:

34:

02

3

2012-5-1609:

34:

13

3

2012-5-1710:

13:

09

4

2012-5-1511:

34:

02

4

2012-5-1613:

34:

13

4

2012-5-1715:

13:

12

3.使用SQL语句修改表中的数据

使用UPDATE语句可以修改表Users中的数据。

参照下面的步骤练习将表Users中Admin用户的密码修改为AdminPassword。

(1)以SYSTEM用户登录到SQL*PLUS。

(2)使用UPDATE语句将表Users中Admin用户的密码修改为AdminPassword,代码如下:

UPDATEUserManAdmin.UsersSETUserPwd=‘AdminPassword’WHEREUserName=‘Admin’

(3)使用SELECT语句查看用户Admin的密码,代码如下:

SELECTUserPwdFROMUserManAdmin.UsersWHEREUserName=‘Admin’

修改表

ALTERTABLEUSERMANADMIN.LOGININFOMODIFY(LOGINTIMEDATE)

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.UsersWHEREUserName=‘Admin’

(4)对查询结果进行排序。

查询所有普通用户的信息,并按用户名的降序排列结果集。

以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:

SELECT*FROMUserManAdmin.UsersORDERBYUserNameDESC

(5)对记录进行统计。

统计表Users中共有多少个用户记录。

以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:

SELECTCOUNT(*)FROMUserManAdmin.Users

(6)实现连接查询。

查看每个用户的登录记录。

以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:

SELECTu.UserName,1.LoginTimeFROMUsersuINNERJOINL

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2