首页 数据库系统原理课程设计---Oracle数据库管理与设计

数据库系统原理课程设计---Oracle数据库管理与设计

举报
开通vip

数据库系统原理课程设计---Oracle数据库管理与设计数据库系统原理课程设计---Oracle数据库管理与设计 Oracle数据库管理与设计 核准通过,归档资料。 未经允许,请勿外传~ Oracle数据库管理与设计 姓名: 学号: 班级: 计算机 Oracle数据库管理与设计 信息工程学院计算机系 2012年3月1日星期四 目 录 目 录...........................................................................................................

数据库系统原理课程设计---Oracle数据库管理与设计
数据库系统原理课程设计---Oracle数据库管理与设计 Oracle数据库管理与设计 核准通过,归档资料。 未经允许,请勿外传~ Oracle数据库管理与设计 姓名: 学号: 班级: 计算机 Oracle数据库管理与设计 信息工程学院计算机系 2012年3月1日星期四 目 录 目 录........................................................................................................................ 1 前 言........................................................................................................................ 2 第1部分 Oracle管理技术 ........................................................................................ 1 实验1 数据库管理 .................................................................................................. 1 实验2 角色和用户管理 ........................................................................................... 7 实验3 表和视图管理 .............................................................................................10 实验4 索引和序列管理 ..........................................................................................20 实验5 PL/SQL编程 ...............................................................................................23 实验6 使用游标、存储过程和触发器 .....................................................................35 实验7 表空间管理 .................................................................................................39 实验8 文件管理 ....................................................................................................51 第2部分 Oracle开发技术 ...................................................................................... 65 Oracle数据库管理与设计 前 言 数据库技术是计算机科学中发展最快的领域之一。随着网络技术的不断发展,数据库技术与网络技术相结合,已经广泛应用于工作和生活的各个领域。同时,数据库技术及其应用已经成为国内外高校计算机专业和许多非计算机专业的必修或选修课程。 Oracle是当前最流行的大型关系数据库之一,支持包括32位Windows、64位Windows、OS、HP-UX、AIX5L、Solaris和Linux等多种操作系统,拥有广泛的用户和大量的应用案例,已成为大型数据库应用系统的首选后台数据库系统。 本实验课程要求学生全面了解Oracle数据库的特点和功能。从安装配置、安全性、可用性、互操作性、PL/SQL、可开发性、商业智能等多个方面,对Oracle数据库的各项技术进行学习和实验。 通过学习Oracle数据库安装、管理及开发,为今后从事Oracle数据库管理和开发工作打下良好的基础。 本实验课程共分2个部分。第1部分为Oracle的管理技术,由实验1~实验8组成,包括数据库管理、角色和用户管理、表和视图管理、索引和序列管理、PL/SQL编程、以及使用游标、存储过程和触发器、表空间和文件管理等内容。第2部分为Oracle开发技术,要求完成基于一定背景的管理信息系统的数据库设计,如学生信息管理系统、图书管理系统、人事信息管理系统、网上购物系统等。第1部分为基础 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 、必做题,第2部分为提高题、选做题。 2 Oracle数据库管理与设计 第1部分 Oracle管理技术 实验1 数据库管理 目的和要求 (1)了解Oracle数据库的逻辑结构和物理结构; (2)了解Oracle Enterprise Manager的使用情况; (3)学习关闭和启动数据库实例的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ; (4)学习使用SQL语句创建数据库的方法; (5)学习使用SQL语句删除数据库的方法。 实验准备 首先要了解Oracle数据库的逻辑结构,包括 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 (schema)对象、数据块(data block)、区间(extent)、段(segment)和表空间(tablespace)等。数据库由若干个表空间组成,表空间由表组成,段由区间组成,区间则由数据块组成。Oracle数据库的物理结构由构成数据库的操作系统文件所决定。每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。这些数据库文件为数据库信息提供真正的物理存储。 Enterprise Manager 9i是Oracle 9i提供的新的管理工具,简称EM。使用它可以完成启动、关闭数据库,创建、删除数据库等功能。只有系统管理员或拥有CREATE DATABASE权限的用户才能创建数据库。可以在Enterprise Manager中通过图形界面创建数据库,也可以使用CREATE DATABASE语句创建数据库。 实验内容 本实验主要包括以下内容。 (1)练习使用不同方法启动和关闭数据库实例。 (2)练习使用不同方法创建和删除数据库,要使操作的数据库为用户管理数据库UserMan。 1(使用SHUTDOWN命令关闭数据库实例 练习使用SHUTDOWN命令关闭数据库实例,分别按以下方式启动数据库实例。 (1)正常关闭。等待当前所有已连接的用户断开与数据库的连接,然后关闭数据库。正常关闭的语句如下: SHUTDOWN NORMAL Oracle数据库管理与设计 (2)立即关闭。回退活动事务处理并断开所有已连接的用户,然后关闭数据库。立即关闭的语句如下: SHUTDOWN IMMEDIATE (3)事务处理关闭。完成事务处理后断开所有已连接的用户,然后关闭数据库。事务处理关闭的语句如下: SHUTDOWN TRANSACTIONAL (4)中止关闭。中止数据库实例,立即关闭数据库。中止关闭的语句如下: SHUTDOWN ABORT Oracle数据库管理与设计 每次执行SHUTDOWN语句关闭数据库实例之前,请执行STARTUP命令启动数据库。 2(使用STARTUP命令启动数据库实例 练习使用STARTUP命令启动数据库实例,分别按以下方式启动数据库实例。 (1)启动数据库实例时不装载数据库。执行此操作的命令如下: STARTUP NOMOUNT (2)启动数据库实例,装载数据库,但不打开数据库。通常在数据库维护时执行此操作,对应的命令如下: STARTUP MOUNT (3)启动数据库实例,装载数据库,打开数据库。执行此操作的命令如下: STARTUP OPEN (4)强制实例启动。在遇到特殊异常的情况时,可以强制启动实例。强制启动实例的语句如下: Oracle数据库管理与设计 STARTUP FORCE 该语句将数据库强行启动到OPEN模式。 (5)启动后限制对数据库实例的访问。执行此操作的命令如下: STARTUP RESTRICT 每次执行STARTUP语句启动数据库实例之前,请执行SHUTDOWN命令关闭数据库。 3(使用ORACLE Enterprise Manager关闭数据库实例 按照下面的步骤关闭数据库实例。 (1)在数据库处于打开状态时,使用SYS用户以SYSDBA身份登录到Enterprise Manager。在主目录页面的“一般信息”栏目中,可以看到“关闭”按钮。 (2)单击“关闭”按钮,可以打开“主机和目标数据库身份证明”页面。用户需要拥有管理员的权限才能关闭数据库实例,包括主机操作系统的管理员和当前数据库实例的SYSDBA用户。 (3)输入完成后,单击“确定”按钮,打开“确认关闭”页面。 (4)单击“是”按钮,开始关闭数据库。关闭操作完成后,单击“刷新”按钮,打开“启动数据库实例”页面。 4(使用ORACLE Enterprise Manager启动数据库实例 按照下面的步骤启动数据库实例。 Oracle数据库管理与设计 (1)使用SYS用户以SYSDBA身份登录到Enterprise Manager。 (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。 CREATE DATABASE语句实例: CREATE DATABASE OracleDB USER SYS IDENTIFIED BY SYSPWD USER SYSTEM IDENTIFIED BY SYSTEMPWD CONTROLFILE REUSE LOGFILE GROUP 1 (‘redo01.log’) SIZE 100M , GROUP 2 (‘redo02.log’) SIZE 100M , MAXLOGFILES 10 MAXLOGMEMBERS 5 MAXDATAFILES 100 MAXINSTANCES 1 Oracle数据库管理与设计 CHARACTER SET US7ASCII DATAFILE ‘sys01.dbf’ SIZE 100M REUSE EXTENT MANAGEMENT LOCAL DEFAULT TABLESPACE tbs_1 DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE ‘temp01.dbf’ SIZE 10M REUSE; 6(使用SQL语句删除数据库 按照如下步骤删除数据库UserMan。 (1)在删除数据库之前,需要用户以SYSDBA或SYSOPER身份登录,代码如下: CONNECT SYS/SYSPWD AS SYSDBA; 其中SYSPWD为SYS用户的密码,请根据实际情况输入。 (2)关闭数据库,再以MOUNT模式启动数据库,代码如下: SHUTDOWN IMMEDIATE; STARTUP MOUNT; (3)删除数据库,代码如下: DROP DATABASE; Oracle数据库管理与设计 实验2 角色和用户管理 目的和要求 (1)了解Oracle数据库用户和角色的概念; (2)学习使用SQL语句创建Oracle用户; (3)学习使用SQL语句创建Oracle角色; (4)学习使用SQL语句指定用户的角色。 实验准备 (1)了解Oracle数据库用户可以分为6种类型,即数据库管理员、安全官员、网络管 理员、应用程序开发员、应用程序管理员和数据库用户; (2)了解角色是对用户的一种分类管理办法,不同权限的用户可以分为不同的角色; (3)了解使用CREATE ROLE语句创建角色的方法; (4)了解使用DROP ROLE语句删除角色的方法; (5)了解使用GRANT语句指定用户角色的方法; (5)了解使用CREATE USER语句创建用户的方法; (4)了解使用DROP USER语句删除用户的方法。 实验内容 本实验主要包括以下内容。 (1)练习使用SQL语句创建数据库角色; (2)练习使用SQL语句为数据库角色授予权限; (3)练习使用SQL语句指定用户角色; (4)练习使用SQL语句创建数据库用户。 1(使用SQL语句创建数据库角色 参照下面的步骤练习使用CREATE ROLE语句创建数据库角色。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)使用CREATE ROLE语句创建角色UserManRole,密码为myrolepwd,代码如下: CREATE ROLE UserManRole IDENTIFIED BY myrolepwd; 2(使用SQL语句为数据库角色授权 参照下面的步骤练习使用GRANT语句为数据库角色授权。 (1)以SYSTEM用户登录到SQL*PLUS。 Oracle数据库管理与设计 (2)使用GRANT语句将角色UserManRole授予CONNECT和RESOURCE权限,代 码如下: --设置角色权限 GRANT CONNECT TO UserManRole ; GRANT RESOURCE TO UserManRole ; 3(使用SQL语句创建数据库用户 参照下面的步骤练习使用CREATE USER语句创建数据库用户。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)使用CREATE USER语句创建用户UserManAdmin,密码为UserPwd,代码如下: CREATE USER UserManAdmin IDENTIFIED BY UserPwd DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; (3)使用GRANT语句对用户UserManAdmin授予系统权限UNLIMITED TABLESPACE,代码如下: --设置系统权限 GRANT UNLIMITED TABLESPACE TO UserManAdmin ; Oracle数据库管理与设计 4(使用SQL语句指定用户角色 参照下面的步骤将用户UserMan指定为角色UserManRole。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)使用GRANT语句将用户UserMan指定为角色UserManRole,代码如下: GRANT UserManRole TO UserManAdmin ; Oracle数据库管理与设计 实验3 表和视图管理 目的和要求 (1)了解Oracle表和视图的概念; (2)学习使用SQL语句创建表; (3)学习使用SELECT语句查询数据; (4)学习使用SQL语句创建视图。 实验准备 (1)了解表是数据库中最常用的数据存储单元,它包括所有用户可以访问的数据。作 为关系型数据库,Oracle表由行和列组成。 (2)视图是一个虚拟的表,它在物理上并不存在。视图可以把表或其它视图的数据按 照一定的条件组合起来,所以也可以把它看成是一个存储的查询。视图并不包含数据,它只 是从基表中读取数据。 (3)了解使用CREATE TABLE语句创建表的方法。 (4)了解使用SELECT语句查询数据的方法。 (5)了解使用SQL语句创建视图的方法。 实验内容 本实验主要包括以下内容。 (1)练习使用SQL语句创建表; (2)练习使用SQL语句向表中插入数据; (3)练习使用SQL语句修改表中的数据; (4)练习使用SQL语句删除表中的数据; (5)练习使用SELECT语句查询数据; (6)练习使用SQL语句创建视图。 1(使用SQL语句创建表 使用CREATE TABLE语句创建用户信息表Users,结构如表1所示。 表1 表Users的结构 编 号 字段名称 数据结构 说 明 用户编号 1 UserId NUMBER 用户名 2 UserName VARCHAR2 40 3 UserType NUMBER 1 用户类型(1 管理员用户,2 普通用户) 4 UserPwd VARCHAR2 40 参照下面的步骤练习使用CREATE TABLE语句创建表Users。 (1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。 (2)使用CREATE TABLE语句创建表Users,代码如下: CREATE TABLE UserManAdmin.Users (UserId Number Primary Key, UserName Varchar2(40) NOT NULL, UserType Number(1), Oracle数据库管理与设计 UserPwd Varchar2(40) ); 使用CREATE TABLE语句创建用户登录信息表LoginInfo,结构如表2所示。 表2 表LoginInfo的结构 编 号 字段名称 数据结构 说 明 用户编号 1 UserId NUMBER 登录时间 2 LoginTime CHAR(20) 参照下面的步骤练习使用CREATE TABLE语句创建表LoginInfo。 (1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。 (2)使用CREATE TABLE语句创建表LoginInfo,代码如下: CREATE TABLE UserManAdmin.LoginInfo (UserId Number, LoginTime CHAR(20) NOT NULL ); Oracle数据库管理与设计 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中插入数据,代码如下: INSERT INTO UserManAdmin.Users VALUES(1, ‘Admin’, 1, ‘AdminPwd’); INSERT INTO UserManAdmin.Users VALUES(2, ‘User’, 2, ‘UserPwd’); INSERT INTO UserManAdmin.Users VALUES(3, ‘Zhangsan’, 2, ‘ZhangsanPwd’); INSERT INTO UserManAdmin.Users VALUES(4, ‘Lisi’, 2, ‘LisiPwd’); COMMIT; 使用INSERT语句向表LoginInfo中插入数据。内容如表4所示。 参照下面的步骤练习使用INSERT语句向表LoginInfo中插入数据。 (1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。 Oracle数据库管理与设计 (2)使用INSERT语句向表LoginInfo中插入数据,代码如下: INSERT INTO UserManAdmin.LoginInfo VALUES(1, ‘2010-5-15 10:33:02’,); INSERT INTO UserManAdmin.LoginInfo VALUES(1, ‘2010-5-16 08:34:13’,); INSERT INTO UserManAdmin.LoginInfo VALUES(1, ‘2010-5-17 09:13:11’,); INSERT INTO UserManAdmin.LoginInfo VALUES(2, ‘2010-5-15 07:35:02’,); INSERT INTO UserManAdmin.LoginInfo VALUES(2, ‘2010-5-16 08:11:54’,); INSERT INTO UserManAdmin.LoginInfo VALUES(2, ‘2010-5-17 09:13:11’,); INSERT INTO UserManAdmin.LoginInfo VALUES(3, ‘2010-5-15 08:34:02’,); INSERT INTO UserManAdmin.LoginInfo VALUES(3, ‘2010-5-16 09:34:13’,); INSERT INTO UserManAdmin.LoginInfo VALUES(3, ‘2010-5-17 10:13:09’,); INSERT INTO UserManAdmin.LoginInfo VALUES(4, ‘2010-5-15 11:34:02’,); INSERT INTO UserManAdmin.LoginInfo VALUES(4, ‘2010-5-16 13:34:13’,); INSERT INTO UserManAdmin.LoginInfo VALUES(4, ‘2010-5-17 15:13:12’,); COMMIT; Oracle数据库管理与设计 表4 表LoginInfo中的数据 UserId LoginTime 1 2010-5-15 10:33:02 1 2010-5-16 08:34:13 1 2010-5-17 09:13:11 2 2010-5-15 07:35:02 2 2010-5-16 08:11:54 2 2010-5-17 09:13:11 3 2010-5-15 08:34:02 3 2010-5-16 09:34:13 3 2010-5-17 10:13:09 4 2010-5-15 11:34:02 4 2010-5-16 13:34:13 4 2010-5-17 15:13:12 3(使用SQL语句修改表中的数据 使用UPDATE语句可以修改表Users中的数据。参照下面的步骤练习将表Users中 Admin用户的密码修改为AdminPassword。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)使用UPDATE语句将表Users中Admin用户的密码修改为AdminPassword,代码 如下: UPDATE UserManAdmin.Users SET UserPwd=‘AdminPassword’ WHERE UserName=‘Admin’ (3)使用SELECT语句查看用户Admin的密码,代码如下: SELECT UserPwd FROM UserManAdmin.Users WHERE UserName=‘Admin’ Oracle数据库管理与设计 4(使用SQL语句删除表中的数据 使用DELETE语句可以删除表Users中的数据。参照下面的步骤练习将表Users中 Zhansan用户的记录删除。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)使用DELETE语句将表Users中Zhangsan用户的记录删除,代码如下: DELETE FROM UserManAdmin.Users WHERE UserName=‘Zhangsan’ (3)使用SELECT语句查看表Users中的数据,确认用户Zhangsan的记录是否被删除, 代码如下: SELECT * FROM UserManAdmin.Users 5(使用SELECT语句查询数据 使用SELECT语句查询数据库中的用户数据,分别按以下方式查询数据库。 (1)查询表Users中的所有数据。 以SYSTEM用户登录到SQL*PLUS,然后执行如下代码: SELECT * FROM UserManAdmin.Users Oracle数据库管理与设计 *代表UserManAdmin.Users中的所有字段。 (2)在返回结果中使用自定义标题。 以SYSTEM用户登录到SQL*PLUS,然后执行如下代码: SELECT UserName AS 用户名, UserPwd AS 密码 FROM UserManAdmin.Users (3)设置查询条件。 查询所有普通用户的信息。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码: SELECT * FROM UserManAdmin.Users WHERE UserType=2 查询用户Admin的密码信息。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码: SELECT UserPwd FROM UserManAdmin.Users WHERE UserName=‘Admin’ Oracle数据库管理与设计 (4)对查询结果进行排序。 查询所有普通用户的信息,并按用户名的降序排列结果集。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码: SELECT * FROM UserManAdmin.Users ORDER BY UserName DESC (5)对记录进行统计。 统计表Users中共有多少个用户记录。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码: SELECT COUNT(*) FROM UserManAdmin.Users (6)实现连接查询。 查看每个用户的登录记录。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码: SELECT u.UserName, a.LoginTime FROM usermanadmin.Users u INNER JOIN usermanadmin.LoginInfo a ON u.UserId=a.UserID; Oracle数据库管理与设计 在上面的SELECT语句中涉及两个表:表Users和表LoginInfo。在FROM子句中,为每个表指定一个别名,表Users的别名为u,表LoginInfo的别名为a。 6(使用SQL语句创建视图 使用CREATE VIEW语句创建用户登录信息表UserLogin,代码如下: CREATE VIEW UserLogin AS SELECT u.UserName, a.LoginTime FROM usermanadmin.Users u INNER JOIN usermanadmin.LoginInfo a ON u.UserId=a.UserID; SELECT * FROM UserLogin; Oracle数据库管理与设计 Oracle数据库管理与设计 实验4 索引和序列管理 目的和要求 (1)了解索引的概念和作用; (2)了解序列的概念和作用; (3)学习使用SQL语句创建索引; (4)学习使用SQL语句创建序列。 实验准备 (1)了解索引是对数据库表中一个或多个列的值进行排序的结构。可以利用索引快速访问数据库表中的特定信息。 (2)了解序列号是一个Oracle整数,最多可有38个数字。序列的作用是自动生成整型数值,作为表中标识字段的值。有许多表在创建时定义了一个标识字段,此字段的值需要由系统自动生成,每当插入一条新记录时,此字段的值自动加1。在Oracle中,这个功能由序列来实现。 (3)了解使用CREATE INDEX语句创建索引的方法。 (4)了解使用CREATE SEQUENCE语句创建序列的方法。 实验内容 本实验主要包括以下内容。 (1)练习使用SQL语句创建索引; (2)练习使用SQL语句创建序列; 1(使用SQL语句创建索引 使用CREATE INDEX语句在Users表的UserName字段上创建索引。代码如下: CREATE INDEX index_username ON usermanadmin.users (UserName) TABLESPACE Users; 2(在创建表的同时创建索引 在使用CREATE TABLE语句创建表的同时,可以为指定字段创建索引。创建表Employees,在字段EmpName上创建索引。表Employees的结构如表5所示。 表5 表Employees的结构 Oracle数据库管理与设计 编 号 字段名称 数据结构 说 明 编号 1 EmpId NUMBER 姓名 2 EmpName VARCHAR2(50) 性别 3 Sex CHAR(2) 用户编号 4 UserId NUMBER 代码如下: CREATE TABLE Employees (EmpId Number, EmpName VARCHAR2(50) UNIQUE, Sex CHAR(2), UserId Number ); 3(使用SQL语句创建序列 使用CREATE SEQUENCE语句创建序列。序列的最小值为1,并且没有最大值限制。 序列的初始值为1,序列间隔为1。代码如下: CREATE SEQUENCE EMP_S MINVALUE 1 NOMAXVALUE START WITH 1 INCREMENT BY 1 NOCYCLE CACHE 20; 2(在插入数据时使用序列 Oracle数据库管理与设计 在使用INSERT语句向表Employees中插入数据时,可以使用序列EMP_S生成字段 EmpId的值,代码如下: INSERT INTO Employees (EmpId, EmpName) VALUES(EMP_S.NEXTVAL, ‘Employee1’,); INSERT INTO Employees (EmpId, EmpName) VALUES(EMP_S.NEXTVAL, ‘Employee2’,); INSERT INTO Employees (EmpId, EmpName) VALUES(EMP_S.NEXTVAL, ‘Employee3,); COMMIT; SELECT * FROM Employees Oracle数据库管理与设计 实验5 PL/SQL编程 目的和要求 (1)了解PL/SQL语言的结构; (2)了解PL/SQL变量和常量的声明和使用方法; (3)学习条件语句的使用方法; (4)学习分支语句的使用方法; (5)学习循环语句的使用方法; (6)学习使用Oracle系统 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 。 实验准备 首先要了解PL/SQL语言是结构化程序设计语言。块(Block)是PL/SQL程序中最基 本的结构,所有PL/SQL程序都是由块组成的。PL/SQL的块由变量声明、程序代码和异常 处理代码3部分组成。在PL/SQL中,常量和变量在使用前必须声明,可以使用DECLARE 对变量进行声明。 实验内容 本实验主要包括以下内容。 (1)练习条件语句的使用方法; (2)练习分支语句的使用方法; (3)练习循环语句的使用方法; (4)练习使用Oracle系统函数。 1(使用条件语句 参照下面的步骤练习使用条件语句。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)执行如下程序,观察结果。 SET ServerOutput ON; DECLARE Num INTEGER := -11; BEGIN IF Num < 0 THEN dbms_output.put_line( ‘负数’ ); ELSIF Num > 0 THEN dbms_output.put_line( ‘正数’ ); ELSE dbms_output.put_line( ‘0’ ); END IF; END; Oracle数据库管理与设计 2(使用分支语句 参照下面的步骤练习使用分支语句。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)执行如下程序,观察结果。 SET ServerOutput ON; DECLARE varDAY INTEGER := 3; Result VARCHAR(20); BEGIN Result := CASE varDAY WHEN 1 THEN ‘星期一’ WHEN 2 THEN ‘星期二’ WHEN 3 THEN ‘星期三 WHEN 4 THEN ‘星期四’ WHEN 5 THEN ‘星期五’ WHEN 6 THEN ‘星期六’ WHEN 7 THEN ‘星期日’ ELSE ‘数据越界’ END; dbms_output.put_line( Result ); END; Oracle数据库管理与设计 3(使用循环语句 LOOP…EXIT…END语句:此语句的功能是重复执行循环体中的程序块,直到执行EXIT 语句,退出循环。 LOOP…EXIT WHEN…END:此语句的功能是重复执行循环体中的程序块,直到满足 EXIT WHEN后面的判断语句时,退出循环。 WHILE…LOOP…END LOOP语句:此语句的功能是当WHILE后面的条件语句成立时, 重复执行循环体中的程序块。 参照下面的步骤练习使用循环语句。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)执行如下程序,观察结果。 程序一: SET ServerOutput ON; DECLARE v_Num INTEGER := 1; v_Sum INTEGER := 0; BEGIN LOOP v_Sum := v_Sum + v_Num; dbms_output.put_line( v_Num ); IF v_Num = 3 THEN EXIT; END IF; dbms_output.put_line( ‘+’ ); v_Num := v_Num + 1; END LOOP; dbms_output.put_line( ‘=’ ); dbms_output.put_line( v_Sum ); END; Oracle数据库管理与设计 程序二: SET ServerOutput ON; DECLARE v_Num INTEGER := 1; v_Sum INTEGER := 0; BEGIN LOOP v_Sum := v_Sum + v_Num; dbms_output.put_line( v_Num ); EXIT WHEN v_Num = 3; dbms_output.put_line( ‘+’ ); v_Num := v_Num + 1; END LOOP; dbms_output.put_line( ‘=’ ); dbms_output.put_line( v_Sum ); END; Oracle数据库管理与设计 程序三: SET ServerOutput ON; DECLARE v_Num INTEGER := 1; v_Sum INTEGER := 0; BEGIN WHILE v_Num <=3 LOOP v_Sum := v_Sum + v_Num; dbms_output.put_line( v_Num ); IF v_Num < 3 THEN dbms_output.put_line( ‘+’ ); END IF; v_Num := v_Num + 1; END LOOP; dbms_output.put_line( ‘=’ ); dbms_output.put_line( v_Sum ); END; Oracle数据库管理与设计 4(使用系统函数 (1)数值型函数 ?ABS:返回给定数字表达式的绝对值。 ?CEIL:返回大于或等于所给数字表达式的最小整数。 ?FLOOR:返回小于或等于所给数字表达式的最大整数。 ?POWER:返回给定表达式指定次方的值。 ?ROUND:返回数字表达式并四舍五入为指定的长度或精度。 (2)字符型函数 ?ASCII:返回字符表达式最左端字符的ASCII代码值。 ?LENGTH:返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。 ?UPPER:返回将小写字符数据转换为大写的字符表达式。 (3)日期型函数 ?SYSDATE:返回当前日期和时间。 ?TO_CHAR:转换日期为字符串。 ?LAST_DAY:返回指定日期所在月份的最后一天的日期。这个函数可以被用来确定 当前月中还剩下多少天。 MONTHS_BETWEEN:返回两个日期之间月的数目。 ? (4)统计函数 ?COUNT:返回组中项目的数量。 ?MAX:返回表达式的最大值。 ?MIN:返回表达式的最小值。 参照下面的步骤练习使用系统函数。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)执行如下程序,观察结果。 程序一: SET ServerOutput ON; BEGIN Oracle数据库管理与设计 dbms_output.put_line( ABS(-4) ); END; 程序二: SET ServerOutput ON; BEGIN dbms_output.put_line( CEIL(116.24) ); dbms_output.put_line( CEIL(-112.75) ); dbms_output.put_line( CEIL(0) ); END; 程序三: SET ServerOutput ON; BEGIN dbms_output.put_line( FLOOR(116.24) ); dbms_output.put_line( FLOOR(-112.75) ); dbms_output.put_line( FLOOR(0) ); END; Oracle数据库管理与设计 程序四: SET ServerOutput ON; BEGIN dbms_output.put_line( POWER(15, 4) ); END; 程序五: SET ServerOutput ON; BEGIN dbms_output.put_line( ROUND(123.456, 2) ); dbms_output.put_line( ROUND(123.456, 1) ); dbms_output.put_line( ROUND(123.456, 0) ); dbms_output.put_line( ROUND(123.456, -1) ); dbms_output.put_line( ROUND(123.456, -2) ); dbms_output.put_line( ROUND(123.456, -3) ); END; Oracle数据库管理与设计 程序六: SET ServerOutput ON; BEGIN dbms_output.put_line( ASCII(‘ABC’) ); END; 程序七: SELECT UserName, LENGTH(UserName) FROM usermanadmin.users WHERE UserType = 1; Oracle数据库管理与设计 程序八: SET ServerOutput ON; BEGIN dbms_output.put_line( UPPER(‘abc’) ); END; 程序九: SET ServerOutput ON; BEGIN dbms_output.put_line( SYSDATE ); END; 程序十: SET ServerOutput ON; BEGIN dbms_output.put_line( TO_CHAR(SYSDATE) ); END; 程序十一: Oracle数据库管理与设计 SET ServerOutput ON; BEGIN dbms_output.put_line( LAST_DAY(SYSDATE) ); END; 程序十二: SET ServerOutput ON; DECLARE date1 VARCHAR(20) := ‘2010-05-17’ ; date2 VARCHAR(20) := ‘2010-10-17’ ; BEGIN dbms_output.put_line( MONTHS_BETWEEN( TO_DATE( date2, ‘yyyy-mm-dd’ ), TO_DATE( date1, ‘yyyy-mm-dd’ ) ) ); END; 程序十三: SELECT COUNT( UserName ) FROM UserManAdmin.Users; Oracle数据库管理与设计 程序十四: SELECT MAX( UserId ) FROM UserManAdmin.Users; 程序十五: SELECT MIN( UserId ) FROM UserManAdmin.Users; Oracle数据库管理与设计 实验6 使用游标、存储过程和触发器 目的和要求 (1)了解游标的概念和工作原理; (2)了解存储过程的分类和使用方法; (3)了解触发器的概念; (4)学习编写和执行自定义过程; (5)学习编写和执行自定义函数; (6)学习创建和使用触发器。 实验准备 首先要了解游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问 结果集中的任意一行数据了。将游标放置到某行后,即可对该行数据进行操作,最常见的操 作是提取当前行数据。 了解PL/SQL包括3种存储过程,即过程、函数和程序包。 了解触发器是一种特殊的存储过程,当指定表中的数据发生变化时自动运行。 实验内容 本实验主要包括以下内容。 (1)练习创建和使用游标的方法; (2)练习编写和执行自定义过程的方法; (3)练习编写和执行自定义函数的方法; (4)练习创建和使用触发器的方法。 1(创建和使用游标 创建游标MyCursor,从表LoginInfo中读取指定用户的登录信息,操作步骤如下: (1)以UserManAdmin用户登录到SQL*PLUS。 (2)执行如下程序: /*打开显示模式*/ SET ServerOutput ON; DECLARE CURSOR Mycursor( varUserName VARCHAR2 ) IS SELECT u.UserName, a.LoginTime FROM usermanadmin.users u, usermanadmin.LoginInfo a WHERE u.UserId = a.UserId AND u.UserName = varUserName; BEGIN --开始程序体 FOR var_LoginRecord IN MyCursor( ‘Admin’ ) LOOP /*显示保存在记录变量var_LoginRecord中的数据*/ dbms_output.put_line( ‘用户名:’ || var_LoginRecord.UserName || ‘, 登录时间:’ || var_LoginRecord.LoginTime ); END LOOP; END; --结束程序体 Oracle数据库管理与设计 2(编写和执行自定义过程 参照下面的步骤练习编写和执行自定义过程: (1)以UserManAdmin用户登录到SQL*PLUS。 (2)执行如下程序,观察结果。 /*创建示例过程ResetPwd,此过程的功能是将表User中指定用户的密码重置为111111*/ CREATE OR REPLACE PROCEDURE UserManAdmin.ResetPwd ( v_UserId IN NUMBER ) AS BEGIN UPDATE Users SET UserPwd = ‘111111’ WHERE UserId = v_UserId; END; /*使用EXEXUTE命令可以调用过程。如,要将编号为1(用户Admin)的用户密码重置*/ EXECUTE usermanadmin.ResetPwd( 1 ); Oracle数据库管理与设计 SELECT UserName, UserPwd FROM usermanadmin.Users; /*使用DROP PROCEDURE命令可以删除过程*/ DROP PROCEDURE usermanadmin.ResetPwd; 3(编写和执行自定义函数 参照下面的步骤练习编写和执行自定义函数GetLastLogin,获取指定用户最后一次登录 的时间。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)执行如下程序: CREATE OR REPLACE FUNCTION GetLastLogin ( name IN usermanadmin.Users.UserName % Type ) RETURN usermanadmin.LoginInfo.LoginTime % Type AS outTime usermanadmin.LoginInfo.LoginTime % Type; BEGIN SELECT MAX( a.LoginTime ) INTO outTime FROM usermanadmin.Users u, LoginInfo a WHERE u.UserName = ”|| name ||” AND u.UserId = a.UserId ORDER BY a.LoginTime DESC; RETURN outTime; END; Oracle数据库管理与设计 4(创建和使用触发器 参照下面的步骤创建一个触发器MyTrigger,它的作用是当表Users中的记录被删除后, 自动删除表LoginInfo中对应的用户登录记录,从而保证数据的完整性。 (1)以SYSTEM用户登录到SQL*PLUS。 (2)执行如下程序,观察结果。 CREATE OR REPLACE TRIGGER MyTrigger AFTER DELETE ON usermanadmin.Users FOR EACH ROW BEGIN DELETE FROM usermanadmin.LoginInfo WHERE UserId = : old.UserId; END; (3)执行下面的语句,观察删除用户Users后,在表LoginInfo中是否还存在其登录的 记录。 DELETE FROM Users WHERE UserName = ‘User’ ; SELECT * FROM usermanadmin.LoginInfo; Oracle数据库管理与设计 实验7 表空间管理 目的和要求 (1)了解表空间的概念和工作原理; (2)学习创建、修改、查询和删除用户表空间; (3)学习创建、修改、查询、切换和删除撤销表空间。 实验准备 首先要了解表空间是Oracle数据库最高层次的逻辑存储结构,其中保存着由段、区和块等逻辑存储结构描述的各种模式对象。 Oracle表空间分为系统表空间、临时表空间、撤销表空间和用户表空间4种类型。 用户表空间主要用来保存用户数据,其包含的数据文件称为用户数据文件,是DBA管理的主要表空间。 保存撤销记录的存储空间是撤销表空间。利用撤销表空间可以实现撤销事务、数据库恢复和数据的读一致性等功能。 实验内容 本实验主要包括以下内容。 (1)练习创建和使用用户表空间的方法; (2)练习创建和使用撤销表空间的方法。 1(创建本地管理方式的用户表空间 为Oracle数据库新建一个用户表空间,该表空间中包括2个数据文件,区的分配管理方式为AUTOALLOCATE或UNIFORM,段的存储管理方式为MANUAL或AUTO。操作步骤如下: 1) 在SQL*Plus中执行CREATE TABLESPACE语句创建新的用户表空间,并通( 过查询V$TABLESPACE视图查看新建用户表空间情况。 create tablespace text_data datafile 'C:\oracle\oradata\sys\TEXT_DATA01.ORA' size 500M, 'C:\oracle\ oradata\sys \TEXT2.ORA' size 2048k Extent management local autoallocate; Oracle数据库管理与设计 select * from v$tablespace (2)通过OEM控制台创建新的临时表空间,并查看新建用户表空间情况。 Oracle数据库管理与设计 2(创建本地管理方式的临时表空间 为Oracle数据库新建一个临时表空间,该表空间中包括1个数据文件,并设置该表空间为默认临时表空间。操作步骤如下: (1) 在SQL*Plus中执行CREATE TEMPORARY TABLESPACE语句创建新的临 时表空间,设置该表空间为默认临时表空间,并通过查询V$TABLESPACE 视图查看新建临时表空间情况。 CREATE TEMPORARY TABLESPACE text_temp11 TEMPFILE 'C:\oracle\oradata\sys\TEXT_TEMP11.DBF' size 50M reuse Exent management local uniform size 16m; select * from v$tablespace Oracle数据库管理与设计 (2)通过OEM控制台创建新的临时表空间,设置该表空间为默认临时表空间,并查 看新建临时表空间情况。 3(改变表空间的可用性 将新建的用户表空间设置为脱机状态,之后再将其改为联机状态。操作步骤如下: (1) 在SQL*Plus中执行ALTER TABLESPACE语句设置表空间为脱机状态,并 通过查询DBA_TABLESPACES视图查看表空间的状态,之后再执行ALTER TABLESPACE语句设置表空间为联机状态。 alter tablespace text_data offline; Oracle数据库管理与设计 select * from sys.dba_tablespaces; alter tablespace text_data online; (2)通过OEM控制台设置表空间为脱机状态或联机状态,并查看修改之后的表空间状态。 Oracle数据库管理与设计 4(删除表空间 删除无用的表空间及其在磁盘上的数据文件。操作步骤如下: (1) 在SQL*Plus中执行DROP TABLESPACE语句删除表空间及其在磁盘上的数 据文件。 drop tablespace text_temp11 including contents and datafiles; (2)通过OEM控制台删除表空间及其在磁盘上的数据文件。 5(查询表空间的各种信息 查询表空间的各种信息。操作步骤如下: (1) 在SQL*Plus中查询V$TABLESPACE、DBA_TABLESPACES、 DBA_SEGMENTS、DBA_EXTENTS、DBA_FREE_SPACE、V_$DATAFILE 和V$TEMPFILE动态性能视图获得表空间的信息。 select * from DBA_SEGMENTS Oracle数据库管理与设计 select * from DBA_EXTENTS; select * from DBA_FREE_SPACE; Oracle数据库管理与设计 select * from V_$DATAFILE; select * from V$TEMPFILE; (2)在OEM控制台中查询表空间的信息。 Oracle数据库管理与设计 6(创建撤销表空间 在数据库建立后创建一个撤销表空间,并设置该表空间为默认撤销表空间。操作步骤如下: (1) 在SQL*Plus中执行CREATE UNDO TABLESPACE语句创建一个撤销表空 间,并执行ALTER SYSTEM语句修改初始化参数UNDO_TABLESPACE,设 置该撤销表空间为默认撤销表空间。 CREATE UNDO TABLESPACE undotbs01 DATAFILE 'c:\undotbs01_1.dbf' SIZE 3M AUTOEXTEND ON NEXT 1M MAXSIZE 15M; alter system set undo_tablespace=undotbs01; default temporary undo_tablespace; (2)通过OEM控制台向某一撤销表空间中添加新的数据文件,并查看新的数据文件情况。 Oracle数据库管理与设计 7(查询撤销表空间的各种信息 查询表空间的各种信息。操作步骤如下: (1) 在SQL*Plus中查询V$UNDOSTAT、V$ROLLSTAT、V$TRANSACTION、 DBA_UNDO_EXTENTS动态性能视图获得撤销表空间的信息。 select*fromV$UNDOSTAT; select * from V$ROLLSTAT; Oracle数据库管理与设计 select * from V$TRANSACTION; select * from DBA_UNDO_EXTENTS; Oracle数据库管理与设计 (2) 利用V$UNDOSTAT动态性能视图计算撤销表空间所需要的存储空间。 show parameter undo; Oracle数据库管理与设计 实验8 文件管理 目的和要求 (1)了解初始化参数文件、控制文件、重做日志文件和数据文件的概念; (2)学习创建和使用初始化参数文件; (3)学习创建、备份、查询和删除控制文件; (4)学习创建和使用重做日志文件; (5)学习添加、移动、查询和删除数据文件。 实验准备 首先要了解初始化参数文件是Oracle实例运行所需的参数配置文件,Oracle数据库的物理结构、实例中的内存结构,以及启动后台进程的种类和数量等参数,都需要在初始化参数文件中设置,是数据库运行和性能调整的重要文件。初始化参数文件分为两类:PFILE和SPFILE。PFILE是文本形式的初始化参数文件,可以利用任何文本编辑器对它进行查看或编辑。SPFILE的作用同PFILE一样,但是该文件是二进制的,无法用文本编辑器查看或修改。 控制文件是一个非常小的二进制文件,其中存放有Oracle数据库物理结构(数据文件和重做日志文件等)的信息,是Oracle启动和运行必备的文件。 重做日志文件中保存着事物对数据库进行的修改的重做项,是数据库进行恢复的必要部分。重做日志文件分为联机重做日志文件和归档重做日志文件。 数据文件是Oracle主要的物理存储结构之一。一个表空间可以有多个数据文件,一个数据文件只属于一个表空间。数据文件可分成系统数据文件、撤销数据文件、临时数据文件和用户数据文件。 实验内容 本实验主要包括以下内容。 (1)练习创建和使用初始化参数文件; (2)练习创建和使用控制文件; (3)练习创建和使用重做日志文件; (4)练习添加和使用数据文件。 1(创建初始化参数文件 创建PFILE和SPFILE文件。操作步骤如下: (1)找到已有的PFILE文件,使用COPY或者在Windows资源管理器中使用复制/粘贴功能,创建一个新的PFILE文件。 Oracle数据库管理与设计 (2)使用CREATE PFILE FROM SPFILE命令创建一个新的PFILE文件。 create pfile ='c:\oracle\admin\exam\pfile\init2.ora' from spfile='c:\oracle\ora92\database\spfileexam.ora' (3)利用OEM创建一个新的PFILE文件。 Oracle数据库管理与设计 (4)使用CREATE SPFILE FROM PFILE命令创建一个新的SPFILE文件。 cteate spfile='c:\oracle\ora92\database\myspfileexam.ora' from pfile='c:\oracle\admin\exam\pfile\init2.ora' (5)利用OEM创建一个新的SPFILE文件。 2(修改初始化参数 修改SPFILE文件中的初始化参数。操作步骤如下: (1)在SQL*Plus中使用动态性能视图V$SYSTEM_PARAMETER查看初始化参数值 和属性。 Select * from V$SYSTEM_PARAMETER; Oracle数据库管理与设计 (2)使用ALTER SYSTEM SET 参数名=参数值 SCOPE=SPFILE | MEMORY | BOTH命令修改其中的动态或静态的初始化参数。 ALTER SYSTEM SET shared_pool_size=35432178 SCOPE=SPFILE; (3)再使用动态性能视图V$SYSTEM_PARAMETER或在OEM中查看初始化参数值 是否被修改。 (4)或者在OEM中修改其中的初始化参数,并查看初始化参数值和属性。 Oracle数据库管理与设计 3(备份控制文件 为Oracle数据库备份一个控制文件。操作步骤如下: (1) 使用ALTER DATABASE BACKUP CONTROLFILE TO命令备份控制文件。 ALTER DATABASE BACKUP CONTROLFILE TO 'c:\slm' reuse; (2)在OEM控制台中备份控制文件。 4(查询控制文件信息 查询控制文件中的各种信息。操作步骤如下: (1)在SQL*Plus中查询V$CONTROLFILE、V$CONTROLFILE_RECORD_SECTION、 V$PARAMETER动态性能视图获得控制文件的基本信息和记录文档段信息。 select * from V$CONTROLFILE; Oracle数据库管理与设计 select * from V$CONTROLFILE_RECORD_SECTION; Oracle数据库管理与设计 select * from V$PARAMETER; (2)在OEM控制台中查询控制文件的基本信息和记录文档段信息。 5(创建多路联机重做日志文件组 为Oracle数据库新建一个联机重做日志组,该组包含2个成员。操作步骤如下: (1)使用SYSDBA身份登录SQL*Plus。 (2)查询V$LOGLFILE视图,了解目前的重做日志文件组情况。 select * from V$LOGFILE; Oracle数据库管理与设计 (3)执行ALTER DATABASE ADD LOGFILE命令增加一个重做日志文件组,该组包 含2个成员。 ALTER DATABASE ADD LOGFILE GROUP 4 ('c:\ORACLE\ORADATA\JTW\log4.ora', 'c:\ORACLE\ORADATA\JTW\log5.ora')SIZE 1024K; (4)重新查询V$LOGLFILE视图,查看新建重做日志文件组情况。 select * from V$LOGFILE; 6(使用LogMiner Viewer工具对重做日志文件进行分析 使用LogMiner Viewer工具分析重做日志文件,获得指定用户在规定的时间段内对数据 库所进行的更改。操作步骤如下: (1)启动OEM控制台,登录Oracle管理服务器。 (2)启动LogMiner Viewer。 (3)设置查询条件。 (4)执行并分析查询结果。 Oracle数据库管理与设计 (5)保存分析结果。 7(向表空间中添加数据文件 向表空间中添加一个新的数据文件。操作步骤如下: (1)在SQL*Plus中使用ALTER TABLESPACE...ADD DATAFILE语句向某一表空间中 添加一个数据文件,并通过查询DBA_DATA_FILES视图查看新建数据文件的情况。 ALTER TABLESPACE "USERS" ADD DATAFILE 'C:\ORACLE\ORADATA\JTW\users002.ora' SIZE 5M; Select * from DBA_DATA_FILES; (2)通过OEM控制台添加新的数据文件,并查看新的数据文件情况。 Oracle数据库管理与设计 8(移动单个数据文件 将表空间中某个数据文件从一个物理磁盘移动到另一个磁盘。操作步骤如下: (1)在SQL*Plus中使用ALTER TABLESPACE语句将包含有需要移动数据文件的表空间脱机。 ALTER TABLESPACE "SYSTEM" OFFLINE NORMAL; (2)在操作系统中,将数据文件复制到另一个磁盘上。 Oracle数据库管理与设计 (3)使用ALTER TABLESPACE语句对表空间中的数据文件重命名。 ALTER DATABASE RENAME FILE 'C:\ORACLE\ORADATA\JTW\USERS01.DBF ' TO 'C:\ORACLE\ORADATA\JTW\USERS03.DBF'; (4)使用ALTER TABLESPACE语句重新使该表空间联机。 ALTER TABLESPACE "USERS" online; Oracle数据库管理与设计 (5)通过查询DBA_DATA_FILES视图获得移动后的数据文件信息。 Select * from DBA_DATA_FILES; 9(删除数据文件 删除无用的数据文件。操作步骤如下: (1)在SQL*Plus中使用ALTER DATABASE语句删除某一数据文件。 (2)通过OEM控制台删除某一数据文件。 10(查询数据文件的各种信息 查询数据文件的各种信息。操作步骤如下: (1)在SQL*Plus中查询DBA_DATA_FILES、DBA_EXTENTS、DBA_FREE_SPACE、 V$DATAFILE、V$DATAFILE_HEADER动态性能视图获得数据文件的信息。 Select * from DBA_DATA_FILES; Oracle数据库管理与设计 Select * from DBA_EXTENTS; Select * from DBA_FREE_SPACE; Oracle数据库管理与设计 Select * from V$DATAFILE; Select * from V$DATAFILE_HEADER; (2)在OEM控制台中查询数据文件的信息。 Oracle数据库管理与设计 第2部分 Oracle开发技术 设计题目 书店信息管理系统 设计目的 利用所学的有关数据库设计知识,设计一个基于Oracle数据库的信息管理系统。通过该部分的操作与实践,使学生能够在完成第一部分任务的基础上,进一步巩固Oracle数据库应用的方法和技术,提高基于Oracle数据库的应用程序综合设计能力。 设计任务 , 数据库设计: (1)通过对应用系统的数据库需求分析,确定系统的服务范围,绘制系统业务流程图,设计系统功能和绘制系统功能图,设计数据流图和数据字典; (2)采用自底向上的方法设计E-R图; (3)依据关系 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 化原则设计应用系统数据库全局关系模式; (4)依照数据库全局关系模式设计数据库中各表的表结构。 , 界面设计: (1)数据库准备; (2)创建工程并添加所需控件; (3)主要功能模块的界面设计。 一、系统定义 该系统采用Microsoft Visual Studio 2008和oracle软件开发工具开发,单机运行,主 要供书店等图书销售商使用。 系统提供图书管理、销售管理、会员管理等模块。在图书管理模块中,用户可以对 图书及其相关信息进行增加、查询等操作;在销售管理模块中,用户可以根据实际销售 情况查询、更新销售记录;在会员管理系统中,可以进行系统会员的查询和新用户的添 加等操作。以上操作中涉及的数据信息,都保存到数据库中。 二、需求分析 1( 该书店经营多种类型图书。 2( 经常光顾书店的人可以办一个会员卡,持会员卡可打九折,非会员不打折。 3( 一个会员可以买多种图书。 三、系统设计 1、逻辑结构设计 Oracle数据库管理与设计 books(ISBN、书名、作者、类型、单价、数量、入库时间) 创建表: 编号 字段名称 数据结构 说明 书号 1 ISBN varchar(10) 书名 2 bname varchar(16) 作者 3 bauthor char(10) 出版社 4 bpublish varchar(20) 类型 5 btype varchar(10) 价格 6 bprice int 数量 7 bquantity int create table qqq.books( ISBN varchar(10) primary key, bname varchar(16) not null, bauthor char(10) null, bpublish varchar(20) not null, btype varchar(10) null, bprice int not null, bquantity int not null); 添加信息: insert into qqq.books values(201002,'四级词汇' ,'俞敏洪','西安交通大学出版社','英语', 28,15); insert into qqq.books values(201003,'oracle9i' ,'付玉生', '清华大学出版社', '计算机' ,26,10); insert into qqq.books values(201004,'红楼梦' , '曹雪芹', '北京出版社', '文学' ,42,6); insert into qqq.books values(201005,'宇宙奇观','谢建' ,' 西方科学出版社', '科学 ' , 25,5); insert into qqq.books values(201006,'马列主义概论' , '雷西' ,'北京大学出版社','社科' , 23,6); insert into qqq.books values(201007,'解析国足' ,'张奇' ,'北京交大出版社', '体育' ,31,3); 查找信息: select * from qqq.books; select * from qqq.books where ISBN='201004'; Oracle数据库管理与设计 select * from qqq.books where bname='红楼梦'; delete from qqq.books where bname='红楼梦'; update qqq.books set ISBN=201001 where bname='红楼梦'; VIP(会员编号、会员名) 创建表: 编号 字段名称 数据结构 说明 会员编号 1 vno char(20) 会员名 2 vname char(10) 入会时间 3 vtime char(30) create table qqq.VIP( vno char(20) not null, vname char(10) not null, vtime char(30) null); 添加信息: insert into qqq.VIP values(090655,'安旭','2012-02-28'); insert into qqq.VIP values(090656,'李赛飞','2012-02-24'); insert into qqq.VIP values(090657,'孙立萌','2012-02-18'); 查找信息: select * from qqq.VIP; select * from qqq.VIP where vno='90655'; 2、系统功能模块图 Oracle数据库管理与设计 图书馆管理系统 会员管理图书管理销售查询 图图会书统信书查员查添信计息信看信看加息查录息记息信会修询入删录修息员改除改 按查按查查按会看书询询书员全名总销名名部查记售查查会询录额询询员 四、详细设计 流程图 Oracle数据库管理与设计 开始 进入系统 调入主菜单 图图图会会会图书书书员员员书售信信信信信信信书息息息息息息息系查录修查录修删统询入改询入改除 输入输入输入输入输入输入图书修改会员修改删除所售图书会员图书会员图书图书清单清单信息信息编号编号编号编号 NNNN书号书号会员号书号 验证验证验证验证 YYYY 输入输入图书删除数量修改修改图书内容内容减一 结束 过程有关的E-R图: Oracle数据库管理与设计 会员表图书表 1 1 属于属于 NN数量 1N图书出售会员单价 1 出版书名作者类型书号会员入会社姓名非会员号时间 五、系统实现与测试 1、开发平台和工具选择 Delphi 可视编程工具和Microsoft sql server2000 数据库工具。 2、系统测试 首页: 图书管理系统: Oracle数据库管理与设计 图书信息查询: 图书信息录入: 图书信息修改: Oracle数据库管理与设计 会员信息查询: 会员信息修改: Oracle数据库管理与设计 图书信息删除: 售书系统: Oracle数据库管理与设计 六、课程设计总结 这次数据库课程设计基本完成了。但是设计过程可谓起伏跌宕。由于开始对图书零售系统一无所知,只好查大量的资料,耗掉了不少时间,做到后台数据库是更是困难重重,前台相对简单,通过努力,还是啃下了这块硬骨头,虽然算不上美观实用,但完成了基本的功能。通过这次设计,才知道理论所学运用到实际的困难。为了以后的发展,从此要努力学习。 参考文献:1.数据库原理与应用 第2版 何玉洁 梁琦 等编 机械工业出版社. 2.Oracle 9i 基础教程与上机指导 付玉生 史乐平 编著 清华大学出版社.
本文档为【数据库系统原理课程设计---Oracle数据库管理与设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_531654
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:86
分类:企业经营
上传时间:2018-04-29
浏览量:62