数据库系统与应用实验指导书.docx
《数据库系统与应用实验指导书.docx》由会员分享,可在线阅读,更多相关《数据库系统与应用实验指导书.docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库系统与应用实验指导书目 录实验一、数据库系统体系结构2实验二、创建与配置数据库3实验三、表空间与存储管理53实验四、访问控制与安全管理56实验五、数据库系统对象管理58实验六、PL/SQL语言训练60实验七、存储过程(函数)和触发器61实验八、数据的备份与恢复64exit when emp_coef%notfound;increment := base * dcoef;update employee set e_sal = e_sal + increment where e_code = ecode;end loop;close emp_coef;commit;return Succes
2、s to raise salary.,;exceptionwhen others thenrollback;return Failure to raise salary.;end;实验七、存储过程(函数)和触发器1.实验目的通过上机实践熟悉ORACLE中存储过程和触发器的创建方法,并练习存储过程和触发器的使 用。3.实验内容:(1)内容回顾A.以DBA身份创建自己的用户,并授予必要的权限(connect和resource角色);B.分别创建职工表、部门表、所得税表、工资历史表,参考代码如下:Table: EMPLOYEE 职工表 create table EMPLOYEEconstraint
3、CKCESAL EMPLOYEE check (ESAL is null or (ESAL between 500 and 90000 ), E_DEPTNUMBER(3)null,E_C0DECHAR (5)not null,E NAMEVARCHAR2(10)not null,E_SEXCHAR(l)nul 1,E_SALNUMBER (7,2)default 3000 nullE_CARDCHAR(18)null,constraint PK_EMPLOYEE primary key (E_C0DE) )Table: DEPARTMENT 部门表 create table DEPARTME
4、NTconstraint PK DEPARTMENT primary key (D CODE) )D_CODE D NAME D_C0EF D MEMONUMBER(3)not null,VARCHAR2 (20)null,NUMBER (3,2)null,V/RCHAR2(100)null,Table: GI:T_TAX 所得税表 create table GET_TAXTAX_NAMEVARCHAR2(10)nullTAX_FEENUMBER(7, 2)nullTAX_DATEDATEnullTable: SALJIIST 工资历史表 create table SALHISTC DATED
5、ATEnot null,E_NAMEVARCI1AR2(1O)nul 1,OLD .SALNUMBER(7,2)null ,NEW_SALNUMBER(7,2)nul 1C.分别在职工表和部门表中插入部分数据 insert into employee values(insert insert insert insert insertinsert insert insert insert insertinto into into into intodepartment(d code, d name,d coef) department(d code, d name, d coef) depart
6、ment(d code, d name, d coef) department(d_code, d name, d_coef) department(d code, d name, d cocf)values (10(),办公室,0. 8);values (200, 1 财务处,0. 9);values (300,物资公司,0. 7);values (400, , 人力资源部,1. 0);values(500,技术开发部,1.2);10001,章恣意,F6543.00, 100, 000000000000000000); insert into employee values(10002万梓良
7、,10003,张望力,F, 7856. 50, 300/ 222222222222222222); insert into employee values(10004,李自豪,F, 4567. 89, 400, * 333333333333333333,); insert into employee valuesC10005,王重礼,W , 6754. 25, 200, 444444444444444444);insert into employee values(, 10006/ 赵挽惜,。8345. 60, 500/ 5555555555555555551);insert into emp
8、loyee values(10007,朱时聚,F, 5623. 00, 500/ 6666666666666666661);D.根据如下代码创建一个名为COMPUTE_TAX ()的存储过程CREATE OR REPLACE PROCEDURE COMPUTE_TAX(sal_point number, tax_ratio number) AS E INFO employee%ROWTYPE;get_day date;CURSOR EMP CUR IS SELECT * FROM employee;BEGINselect sysdate into get_day from dual;OPEN
9、EMP_CUR;FETCH EMP_CUR INTO E_INFO;WHILE EMP_CUR%FOUND LOOPIF E_INFO. e_salsal_point THENINSERT into GET_TAXvalues(E INFO, e name, (E INFO. e_sal-sal_point)*tax_ratio, get day);END IF;FETCH EMP_CUR INTO ENFO;END LOOP;COMMIT;CLOSE EMP_CUR;END COMPUTE_TAX;E.根据如下代码在EMPLOYEE表上创建一个名为SALARY_REC的触发器CREATE O
10、R REPLACE TRIGGER DBO. SALARY RECAFTER INSERT OR UPDATE OR DELETE OF E_NAME, E_SAL ON DBO. employee FOR EACH ROW BEGININSERT INTO DBO. SAL_H1ST VALUES (SYSDATE, EMPLOYEE. E_NAME, :OLD. E_SAL, :NEW. E_SAL);END;F.练习上述存储过程和触发器的使用,体会数据库端程序的作用,写下你对存储过程和触 发器的认识。实验八、数据的备份与恢复1.实验目的通过上机实践熟悉ORACLE的备份与恢复,包括物理备
11、份与恢复、逻辑备份与恢复和导入导出等。2.实验内容SQLarchive log list任务详细步骤1.脱机 备份当数据库关闭时,所有数据和文件都是静止的,这与DOS系统中的文件没什 么两样,只需知道要备份的文件在什么地方,然后就可以拷贝文件了。对于一般的数据库系统,都是将文件拷贝到本地磁盘的其他位置,因为这样 花费较少。只要磁盘不损坏,数据一般能保证恢复。在备份工作之前,应该先在Oracle主目录(ORACLE HOME)下创建一个放置备份 文件的backup目录,然后就可以拷贝文件到backup文件夹。首先拷贝数据文件,一定要拷贝的数据文件有ORACLE一HOMEoradata目录下的 s
12、ystemOl. dbf, tempO1. dbf, toolOl. dbf 和 userOl. dbf。还要备份日志文件,这里共要备份3个日志文件:即 ORACLE_HOMEoradata 目录下的 redOOl. log. red002. log 和 red003. logo 为确保安全还应将控制文件和初始化文件做备份:即 ORACLE_HOMEoradata 目 录下的 controlOL ctl、control02. ctl 和 control03. ctl。ORACLE_HOMEadminora9pfi 1 e 目录下 ini t. ora若有重要的源代码文件,也应一并做备份,如OR
13、ACLE_HOMEbindo_host. sql。2.联 机 备 份热备份即为联机备份,是在数据库系统运行使用过程中做的备份。进行热备 份需要有相应的权限,一般在账户sys下。1)设置为归档日志模式(ArchiveLog)要进行热备份,数据库必须工作在归档日志模式。在无归档日志下,数据库 只能进行冷备份。在归档日志模式下,可以随时对数据库进行备份而不会影响数据库的使用运 行。可用两种方式实现自动归档功能: 图形方式,选中归档日志模式复选框。 命令方式,如下所示:SQL Connect sys/sys as sysdbaSOL alter database archivelog;2)转变为自动存
14、档方式自动存档方式用于指定自动归档重做日志文件。仅当连接的数据库在“归档 日志”模式下运行时,才可使用自动归档功能。可用两种方式实现自动归档功能: 图形方式,选中自动归档复选框。 命令方式,如下所示:SQL archive log start3)用“list子命令查看当前状态,如下所示:数据库日志模式存档模式自动存档启用存档终点 I): oracleora90RDBMS最早的概要日志序列22下一个存档日志序列24当前日志序列24由于启动了 “自动归档”方式,联机重做日志是不用备份的,因为在此方式 下,它是在备份工作过程中自动被归档和备份。热备份的准备工作到此结束,下面开始备份表空间。共有4个表
15、空间必须要 备份: 系统表空间用户表空间 回滚段表空间临时表空间此处以备份系统表空间为例,其余各个表空间的备份步骤相似。先将系统表空间设为备份状态,如下所示:SQLalter tablespace system begin backup;表空间已更改。然后拷贝系统表空间对应的数据文件到备份文件夹中:SQL$copy D:oracleoradataora9systemOL dbf D:oraclebackup;说明上面命令中的$表示执行操作系统命令。当设为备份状态时,此表空间中的数据是不可用的,所以在备份完成后,要 将备份状态设置回来,以使此表空间再次可用。如下所示:SQLalter table
16、space system end backup;另外,每备份一个表空间之后,应该强行设置一个系统检查点,将此次备份 工作记录到系统中。设置检查点命令如下所示:SQLalter system checkpoint;注意: 在备份前打开表空间备份状态是必要的,如不这样做,后面所做的 一切备份工作都无效;在备份后关闭表空间备份状态更加重要,如果完成了一个 表空间的备份之后没有关闭它的备份状态,则数据库在这种情况下运行不了多长 时间就会遭到破坏,从而引起服务器的崩溃。4)备份联机的数据库控制文件,用backup controlfile选项。如下所示: SQL alter database backup
17、 controlfilcto tD:oraclebackupcontr01. Backup,;一次只能备份一个表空间。要用alter database命令备份数据库控制文件需要有alter database 系统权限。5)备份初始化文件和源代码文件在联机情况下,备份初始化文件和源代码文件与脱机冷备份时一样,只需拷 贝即可,因为这些文件与数据库运行无关,它们是静止的。如下所示:SQL$cd D:oraclebackupk;SQL$copy D:oractcadminora9pfilekinit. ora;SQLScopy D:oracleora90bindo_host. sql;6)还有一部分文
18、件,比如可执行文件、配置文件和批处理文件等,它们也 与数据库运行无关,可以与初始化文件和初始化文件备份一样进行拷贝。7)另外,对每次数据库备份保存一个文档是必要的,在文档中记录一些如 备份时间、数据库名称、最大日志序列号等信息。这样当进行恢复时,会方便地 找到需要用哪些文件进行恢复,以及恢复到什么时间等。8)关闭“自动归档”方式,命令如下所示:SQLarchive log stop3.自动 备 份自动备份可以是冷备份,也可以是热备份。1)手工生成冷备份程序建立一个冷备份程序。cold_backup. sql,程序代码如下:rem自动冷备份文件$cd D:oraclekbackuprem备份数据
19、文件$ copy D:oracleoradatasystem01. dbf$ copy D:oracleoradatatempOL dbf$ copy D:oracleoradatatool01. dbf$ copy D:oracleoradatauserOl,dbfrem备份日志文件$ copy D:oracleoradataredo01. log$ copy D:oracleoradataredo02. logrem备份控制文件$ copy D:oracleoradatacontrol01.ctl$ copy D:oracleoradatacontrol02.ctlrem备份其它文件Sco
20、py D:oracleadninoragpfileinit. ora$copy D:oraclcOraclcbind。 host.sql在操作系统提示符下可以定期执行这个冷备份程序,自动进行数据库的冷备 份。2)用语句生成冷备份程序另外,我们还可以用语句生成程序的方法宋生成备份程序,这样,可以省很 多力气,也可以保证所有文件的备份。如下所示:SQLspool cold_bakSQLprompt rem自动冷备份SQLprompt cd I: oraclebackupSQLprompt rem备份数据文件SQLselect copy f|I name from V$dbfile;SQLpromp
21、t rem备份日志文件SQLselect copy member from V$logfile;SQLprompt rem备份控制文件SQLselect copy name from V$controlfile;SQLspool off则生成的cold bak程序文件与前面的基本一致,只不过没有后面的其他文件部分,这一部分可以自己根据实际情况加进去。3)生成热备份程序对于联机热备份同样可以用自动的方式,可以建立下面这样一个备份文件, 起名为hot backup, sqlo其内容如下所示:自动热备份一一首先清除备份目录中已有的文件host cd D:oraclebackuphost delete
22、 *备份system表空间alter tablespace system begin backup;host copy D:oracleoradalasystem01.dbrhost copy D:oracleoradatasystem02. dbfalter tablespace system end backup;alter system checkpoint;备份users表空间alter tablespace users begin backup;host copy D:oracleoradataausers01. dbfhost copy D:oracleoradatausers02
23、.dbfalter tablespace users end backup;alter sysnem checkpoint;备份初始化文件和配置文件host copy D:oraclcadminoragpfilck*. ora一一备份源代码文件host copy D:oracleora90rdbms*. sql这样,一个完整的自动热备份文件完成了,文件中的host表示在SQLPLUS环境下执行 操作系统命令。对于这个备份文件,由于是对每一个表空间进行备份,因此 不宜于用命令生成程序的方式生成。一旦文件建成,则随时可以在联机状态 下运行,每运行一次,就进行一遍完整的备份工作。4.逻辑a.用Exp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 应用 实验 指导书
限制150内