Oracle数据库技术课程报告

合集下载

oracle数据库实验报告

oracle数据库实验报告

oracle数据库实验报告《Oracle数据库实验报告》在当今信息化时代,数据库管理系统扮演着至关重要的角色。

Oracle数据库作为全球领先的企业级数据库管理系统,在各行各业都有着广泛的应用。

本次实验旨在通过对Oracle数据库的实验操作,深入了解其基本功能和特点,并探讨其在实际应用中的优势和局限性。

实验一:数据库的创建与连接在实验中,我们首先学习了如何使用SQL命令创建一个新的数据库,并通过用户名和密码连接到该数据库。

通过这一步骤,我们了解了Oracle数据库的基本操作流程,包括数据库的创建、用户的授权和连接等。

实验二:数据表的创建与管理在本次实验中,我们学习了如何使用SQL命令创建数据表,并进行数据的插入、查询、更新和删除操作。

通过这些操作,我们深入了解了Oracle数据库的数据管理功能,包括数据表的设计和维护等。

实验三:索引的创建与优化索引是数据库中非常重要的组成部分,能够提高数据的检索效率。

在本次实验中,我们学习了如何使用SQL命令创建索引,并通过优化查询语句来提高数据库的性能。

这些操作让我们更加深入地了解了Oracle数据库的优化功能,以及如何通过索引来提高数据库的性能。

实验四:备份与恢复数据库的备份与恢复是数据库管理中至关重要的一环。

在本次实验中,我们学习了如何使用Oracle数据库提供的工具进行数据库的备份和恢复操作。

这些操作让我们了解了数据库的灾难恢复功能,以及如何保障数据的安全性。

通过本次实验,我们深入了解了Oracle数据库的基本操作和功能,包括数据库的创建与连接、数据表的管理、索引的优化以及备份与恢复等。

同时,我们也发现了Oracle数据库在实际应用中的优势,如稳定性、安全性和性能优化等方面。

然而,我们也意识到Oracle数据库在一些特定场景下存在一定的局限性,如高昂的成本、复杂的配置和维护等。

总的来说,本次实验让我们更加深入地了解了Oracle数据库的特点和功能,对我们今后的数据库管理工作有着重要的指导意义。

《Oracle数据库开发》报告

《Oracle数据库开发》报告

目录一、实践名称 (1)二、实践题目 (1)三、实践目的 (1)四、实践内容与结果 (1)1、Oracle数据库的基本操作 (1)2、简单Visual Basic访问Oracle数据库 (15)3、VB/Oracle学生成绩管理系统 (20)五、实践小结 (33)《Oracle数据库开发》实训报告一、实践名称ORACLE数据库开发二、实践题目1、Oracle数据库的基本操作2、简单Visual Basic访问Oracle数据库3、VB/Oracle学生成绩管理系统三、实践目的1、初步掌握Oracle关系数据库语言2、掌握Oracle的操作与使用3、数据库的建立与管理、数据表的建立与操作等4、PL/SQL语言的使用与编程5、设计和开发一个小型数据库应用系统四、实践内容与结果1、Oracle数据库的基本操作(1)创建数据库与表首先,创建数据库,步骤如图所示:紧接着创建表,进入SQLPlus Worksheet ,执行以下命令,结果如图 创建账号CREATE USER "GL_0911030201_HONGDJ" PROFILE "DEFAULT"IDENTIFIED BY "HONGDINGJIN" DEFAULT TABLESPACE "USERS" ACCOUNT UNLOCK;GRANT "CONNECT" TO "GL_0911030201_HONGDJ"; GRANT "DBA" TO "GL_0911030201_HONGDJ"; 1、创建部门表CREATE TABLE "GL_0911030201_HONGDJ"."DEPARTMENTS" ("DEPARTMENTID"CHAR(3) NOT NULL, "DEPARTMENTNAME" CHAR(20) NOT NULL, "NOTE"CHAR(16), PRIMARY KEY("DEPARTMENTID"));2、创建员工表CREATE TABLE "GL_0911030201_HONGDJ"."EMPLOYEES" ("EMPLOYEEID"CHAR(6) NOT NULL, "NAME" CHAR(10) NOT NULL, "BIRTHDAY" DATE NOT NULL, "SEX" NUMBER(1) NOT NULL, "ADDRESS" CHAR(20), "ZIP" CHAR(6), "PHONENUMBER" CHAR(12), "EMAILADDRESS" CHAR(30) NULL, "DEPARTMENTID" CHAR(3) NOT NULL, PRIMARY KEY("EMPLOYEEID"), FOREIGN KEY("DEPARTMENTID") REFERENCES "GL_0911030201_HONGDJ"."DEPARTMENTS"("DEPARTMENTID"));3、创建工资表CREATE TABLE "GL_0911030201_HONGDJ"."SALARY" ("EMPLOYEEID" CHAR(6) NOT NULL, "INCOME" NUMBER(8, 2) NOT NULL, "OUTCOME" NUMBER(8, 2) NOT NULL, PRIMARY KEY("EMPLOYEEID")) ;(2)表数据的插入、修改和删除在SQLPlus Worksheet执行如下命令,结果如图1、插入部门表数据INSERT INTO "GL_0911030201_HONGDJ"."DEPARTMENTS" ("DEPARTMENTID" ,"DEPARTMENTNAME" ,"NOTE" ) VALUES ('1' ,'财务部' ,'' );……2、插入职工表数据INSERT INTO "GL_0911030201_HONGDJ"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "EMAILADDRESS" ,"DEPARTMENTID" )V ALUES ('000001' ,'王林' ,'23-1月-1956' ,1 ,'中山路32-1-508' ,'210003' ,'3355668' ,'wl@' ,'2' );……3、插入工资表数据INSERT INTO "GL_0911030201_HONGDJ"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('000001' ,2100.8 ,123.09 );……(3)索引和完整性在执行如下命令,结果如图1、建立索引2、实现域完整性1、SELECT语句的基本使用(1)查找在财务部工作的雇员的情况(2)查找财务部年龄不低于研发部雇员年龄的雇员的姓名(1)查询每个雇员的情况及其薪水的情况(2)查找财务部收入在2200元以上的雇员姓名及其薪水情况4、数据汇总(1)求财务部雇员的平均水平(2)求财务部雇员的平均实际收入5、GROUP BY、ORDER BY 子句的使用(1)求各部门的雇员数(2)将各雇员的情况按收入由低到高排列6、视图(1)创建视图——限制查看雇员的某些情况(2)使用视图查询财务部雇员的信息张无忌从经理办公室转到市场部把张无忌从表EMPLOYEES中删除(5)PL/SQL编程1、条件结构的使用(例5.5)2、循环结构的使用(例5.9)3、选择和跳转语句(例5.13)4、自定义函数的使用(例5.27)例5.28(6)存储过程和触发器的使用1、创建触发器(1)修改DEPARTMENTS表中的DEPARTMENTID字段值(2)删除DEPARTMENTS表中一条记录的同时删除该记录DEPARTMENTID字段在EMPLOYEES表中对应的记录2、创建存储过程(1)添加职员记录的存储过程(2)修改职员记录的存储过程(3)删除职员记录的存储过程3、调用存储过程1、创建用户2、创建角色3、创建概要文件2、简单Visual Basic访问Oracle数据库首先是建立数据源,步骤如下:(1)选择“开始”→“程序”→“管理工具”→“数据源”(ODBC)命令。

《oracle 10g 数据库基础教程》实验报告

《oracle 10g 数据库基础教程》实验报告

《oracle 10g 数据库基础教程》实验报告实验名称:金融数据库技术实验二实验目的:远程登录数据库,使用OEM、SQL等方法创建表,熟悉创建语句实验内容:1、远程连接数据库。

2、用OEM管理表。

3、用SQL*Plus管理表。

4、Oracle数据操纵和查询实验步骤:远程登录显示用户创建用户要连接远程的网络数据库,先要在客户端上设定被连接的数据库服务器的Net服务名。

在客户端启动Net Configuration Assistant选择“本地Net服务名配置”。

添加服务器的IP可以创建具有个人特色的名字回到OEM登录界面配置完毕后回到OEM,进行表的创建等。

⏹以管理员身份登录OEM,为用户scott创建一个名称为employee的表,指定表空间example。

⏹该表包含以下属性:eno,ename,eage,sex,salary。

为其设置合适的数据类型和大小。

⏹为各属性设置如下约束:eno为主键,约束名称为T_PK。

在“管理”中寻找“表”进行创建,选择创建在方案上选择用户名,对象名为要创建的表名添加列名,添加束缚语句等。

在OEM界面完成表的创建和添加约束条件后,在SQL中查看表格情况⏹在sql plus命令行界面创建和管理表,并写出相应的SQL语句。

⏹创建一个表student,指定表空间为STU,占用空间大小为10M。

⏹表中的各列及约束仿照OEM表设置。

用SQL语句为表添加phone和birthdates属性,并为phone列添加unique约束。

输入信息:向student表中插入一行记录,姓名为serena,学号为5,其余信息与名为王霞的学生一样。

利用select子查询语句实现。

将学生李晨的phone改为139,birthdates改为22-6月-92。

将赵勇性别改为M。

实验总结:今天学习1、远程连接数据库。

2、用OEM管理表。

3、用SQL*Plus管理表。

4、Oracle 数据操纵和查询。

远程连接的难度在于,要分清楚服务器与客户端之间的差别。

oracle课程设计报告

oracle课程设计报告

Oracle课程设计报告一、介绍Oracle是一款功能强大的关系型数据库管理系统,被广泛应用于企业级应用开发中。

本课程设计报告旨在探讨Oracle的基本概念、架构以及应用场景,以期对Oracle的使用和设计有一个全面的了解。

二、Oracle的基本概念2.1 数据库数据库是指存储和组织数据的集合,是应用程序的基础。

Oracle数据库是一种可扩展的、高性能的数据库管理系统,具有优秀的事务处理和并发控制机制。

2.2 数据模型Oracle支持关系数据模型,使用表进行数据的存储和管理。

表由行和列组成,行代表记录,列代表字段。

2.3 数据库实例数据库实例是指Oracle数据库在内存中的运行实例。

一个数据库可以有多个实例,每个实例独立运行,互不干扰。

2.4 数据库管理系统(DBMS)数据库管理系统是指用于管理数据库的软件系统。

Oracle数据库管理系统提供了一系列工具和功能,用于创建、维护和管理数据库。

三、Oracle的架构3.1 逻辑架构逻辑架构是指数据库在逻辑上的组织和表示。

Oracle的逻辑架构包括实例、表空间、表、索引等组件。

- 实例是指数据库在内存中的运行实例,包括SGA(系统全局区)和后台进程。

- 表空间是指逻辑上的存储单元,用于组织和管理数据。

一个数据库可以包含多个表空间。

- 表是数据库中存储数据的基本单元,由行和列组成。

- 索引是用于加快数据访问速度的数据结构,使用B树算法进行维护。

3.2 物理架构物理架构是指数据库在硬盘上的存储方式。

Oracle的物理架构包括数据文件、控制文件和日志文件。

- 数据文件是指实际存储数据的文件,包含表、索引等对象的数据。

- 控制文件是数据库的元数据文件,包含了数据库的结构信息。

- 日志文件是用于恢复和故障恢复的文件,记录了数据库的变更操作。

3.3 进程架构进程架构是指Oracle数据库在操作系统上的运行方式。

Oracle的进程架构包括前台进程和后台进程。

Oracle数据库课程设计报告

Oracle数据库课程设计报告
字段名
字段
数据类型
主键
索引

说明
ISBN
图书编号
varchar2(20)
Yes
BookName
名称
varchar2(40)
TID
类别编号
varchar2(10)
RetailPrice
零售价
varchar2(10)
Author
作者
varchar2(20)
Publish
出版社
varchar2(20)
StockMin
3.做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
4.根据编程实现的结果,按课程设计报告的撰写规范完成数据库系统课程设计报告(课程设计报告中必须有相关原理分析、程序设计、程序实现和程序调试等内容);课程设计报告的具体要求如下:
1)课设报告按照规定用A4纸张进行排版打印,否则要求返工;
库存下限
number
StockMax
库存上限
number
Descriptions
描述
varchar2(100)
入库表(InWarehouseitems)
字段名
字段
数据类型
主键
索引

说明
ISBN
图书编号
varchar2(20)YesB NhomakorabeaokName
名称
varchar2(40)
RetailPrice
零售价
Oracle数据库课程设计报告
LT
8
综合应用能力评价
综合评定等级
课程设计(论文)评阅意见
评阅人职称
20年月日

《Oracle数据库》实验报告

《Oracle数据库》实验报告

实验二Oracle数据库开发环境下PL/SQL编程(2学时)【实验目的】(1)掌握PL/SQL 的基本使用方法。

(2)在SQL*PLUS环境下运行PL/SQL的简单程序。

(3)应用PL/SQL 解决实际问题【实验内容与步骤】一、实验内容:1、用PL/SQL实现:输入eno的值,显示emp表中对应记录的内容。

2、用PL/SQL完成:读入三个数,计算并输出它们的平均值及三个数的乘积。

3、对职工表emp中的雇员SCOTT提高奖金,若工种为MANAGER,则奖金提高其原来的20%;若工种为SALESMAN,则奖金提高其原来的15%;若工种为ANALYST,则奖金提高其原来的10%,其它都按原来的7%提高。

4、用PL/SQL块实现下列操作公司为每个职工增加奖金:若职工属于30号部门,则增加$150;若职工属于20号部门,则增加$250;若职工属于10号部门,则增加$350。

(提示:游标请自行阅读相关内容)DECLAREaddcomm m%type;CURSOR emp_cursor IS select deptno from emp;BEGINFOR emprec IN emp_cursor LOOPIF emprec.deptno=30 THEN addcomm:=150;ELSIF emprec.deptno=20 THEN addcomm:=250;ELSIF emprec.deptno=10 THEN addcomm:=350;END IF;Update empset comm=comm+ addcomm where deptno= emprec.deptno;END LOOP;COMMIT WORK;END;实验三PL/SQL触发器和存储过程(2学时)【实验目的】(1)了解触发器的类型。

(2)掌握PL/SQL触发器的使用方法。

(3)了解存储过程的使用方法。

(4)掌握存储过程的使用方法。

【实验内容】实验内容:1、编写一个数据库触发器,当任何时候某个部门从dept表中删除时,该触发器将从emp 表中删除该部门的所有雇员。

Oracle实训报告

Oracle实训报告

ORACLE数据库开发实践报告要求1.实践名称:Oracle数据库开发2.实践题目:(1)Oracle数据库的操作(2)小型数据库系统的设计与开发3.实践目的:初步掌握Oracle关系数据库语言;掌握 Oracle的操作与使用;数据库的建立与管理、数据表的建立与操作等;PL/SQL语言的使用与编程。

4.实践内容与结果:4.1 Oracle数据库的操作4.1.1实践操作11、熟悉Oracle运行环境,理解存储管理器、方案管理器和安全管理器的作用及操作过程。

要求:(1).登录到存储管理器中,查看表空间和回滚段中的情况。

(2).登录到方案管理器中,查看SYS方案下的ACCESS$表。

(3).在SQL Plus环境下,键入下面内容,执行并观察结果。

•SQL>SET SERVEROUTPUT ON;•SQL>DECLARE• 2 n1 NUMBER:=18;• 3 n2 NUMBER:=6;• 4 BEGIN• 5 IF n2<=10 THEN• 6 n1:=n1+n2;•7 DBMs_Output.Put_Line(To_Char(n1));•8 END IF;•9 END;•10 /•4.1.2实践操作21、建立数据库(熟悉DBCA工具的使用)2、利用OEM创建新用户SOL语句:CREATE USER "MENG072" PROFILE "DEFAULT"IDENTIFIED BY "m" DEFAULT TABLESPACE "USERS"ACCOUNT UNLOCK;GRANT UNLIMITED TABLESPACE TO "MENG072" GRANT "CONNECT" TO "MENG072";GRANT "DBA" TO "MENG072";3、利用OEM创建Departments表(1)设置一般信息(2)设置约束条件SQL语句:CREATE TABLE "MENG072"."DEPARTMENTS" ("DEPARTMENTID" CHAR(3) NOTNULL, "DEPARTMENGTNAME" CHAR(20) NOT NULL, "NOTE"V ARCHAR2(100) NOT NULL, PRIMARY KEY("DEPARTMENTID")) 4、创建Employees表SOL语句:CREATE TABLE "MENG072"."EMPLOYEES" ("EMPLOYEEID" CHAR(6) NOT NULL, "NAME" CHAR(10) NOT NULL, "BIRTHDAY" DATE NOT NULL, "SEX"NUMBER(1) NOT NULL, "ADDRESS" CHAR(20) NOT NULL, "ZIP"CHAR(6) NOT NULL, "PHONENUMBER" CHAR(12) NOT NULL, "DEPARTMENTID"CHAR(3) NOT NULL, PRIMARY KEY("EMPLOYEEID"))5、创建Salary表SOL语句:CREATE TABLE "MENG072"."SALARY" ("EMPLOYEEID" CHAR(6) NOT NULL, "INCOME"NUMBER(8, 2) NOT NULL, "OUTCOME" NUMBER(8, 2) NOT NULL,PRIMARY KEY("EMPLOYEEID"))6、用PL/SQL语句创建表Departments、表Employees、表Salary:4.1.3实践操作31、用OEM向表Employ、表Departments、表Salary中各插入记录:(1)表Departments插入记录SOL语句:INSERT INTO "DEPARTMENTS" V ALUES ('1' ,'财务部' ,'1' ); INSERT INTO "DEPARTMENTS" V ALUES ('2' ,'人力资源部' ,'2' ); INSERT INTO "DEPARTMENTS" V ALUES ('3' ,'经理办公室' ,'3' ); INSERT INTO "DEPARTMENTS" V ALUES ('4' ,'研发部' ,'4' ); INSERT INTO "DEPARTMENTS" V ALUES ('5' ,'市场部' ,'5' ); (2)表Employ插入记录SOL语句:INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('000001' ,'王林' ,TO_DA TE('23-1月-1966', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'中山路32-1-508' ,'210003' ,'83355668' ,'2' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('010008' ,'伍荣华' ,TO_DA TE('28-3月-1976', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'北京东路100-2' ,'210001' ,'83321321' ,'4' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('020010' ,'王向荣' ,TO_DATE('09-12月-1982', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'四牌楼10-0-108' ,'210006' ,'83792361' ,'1' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('020018' ,'李莉' ,TO_DA TE('30-7月-1976', 'dd-Mon-yyyy HH:MI:SS AM') ,0 ,'中山东路102-2' ,'210002' ,'83413301' ,'1' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('102201' ,'刘明' ,TO_DA TE('02-9月-1965', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'虎踞路100-2' ,'210013' ,'83606608' ,'5' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('102208' ,'朱俊' ,TO_DA TE('10-8月-1979', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'牌楼巷5-3-106' ,'210004' ,'84708817' ,'5' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('108991' ,'忠民' ,TO_DA TE('01-10月-1974', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'中山路10-3-105' ,'210003' ,'83346722' ,'3' )(3)表Salary中插入记录SOL语句:INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('000001' ,2100.8 ,123.09 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('010008' ,1582.62 ,88.03 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('102201' ,2569.88 ,185.65 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('108991' ,3259.98 ,281.52 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('020010' ,2860.0 ,198.0 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('020018' ,2347.68 ,180.0 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('102208' ,1980.0 ,100.0 )2、用PL/SOL语句向表Employ、表Departments、表Salary中插入记录:4.1.4实践操作41、建立索引:2、实现域完整性:注:该同学此题完成有误,下面给出另一同学的正确解答为数据库中的employees表的phonenumber列建立check约束:3、实现实体完整性:(1)为表Departments设置主键DepartmentID:(2)为表Departments的DepartmentName建立唯一性索引:4实现参照完整性:4.1.5实践操作51、SELECT语句的基本使用:(1)查询每个雇员的所有数据:(2)查询每个雇员的地址和电话:(3)查询EmployeeID为000000的雇员的地址和电话:(4)查询Employees表中女雇员的地址和电话;(5)计算每个雇员的实际收入:(6)找出所有姓王的雇员的部门号:(7)找出所有收入在2000~5000元之间的雇员号码:2 子查询的使用(1)查找在财务部工作的雇员的情况:(2)查找财务部年龄不低于研发部雇员年龄的雇员的姓名:(3)查找比所有财务部的雇员收入都高的雇员的姓名:3.连接查询的使用(1)查询每个雇员的情况及其薪水的情况:(2)查找财务部收入在2200元以上的雇员姓名及其薪水情况:4.数据汇总(1)求财务部雇员的平均水平:(2)求财务部雇员的平均实际收入:(3)求财务部雇员的总人数:5.GROUP BY、ORDER BY 子句的使用(1)求各部门的雇员数:(2)将各雇员的情况按收入由低到高排列:6.视图(1)创建视图——限制查看雇员的某些情况:各部门经理只能查找本部门雇员的薪水情况:(2)使用视图查询财务部雇员的信息:查询财务部雇员薪水情况:向表EMPLOYEES中插入一条记录:从经理办公室转到市场部:从表EMPLOYEES中删除:4.1.6实践操作61.条件结构的使用例5.52.循环结构的使用例5.92.选择和跳转语句例5.134.自定义函数的使用例5.27例5.284.1.7实践操作71.创建触发器(1)修改DEPARTMENTS表中的DEPARTMENTID字段值(2)删除DEPARTMENTS表中一条记录的同时删除该记录DEPARTMENTID字段在EMPLOYEES表中对应的记录2.创建存储过程(1)添加职员记录的存储过程:(2)修改职员记录的存储过程;(3)删除职员记录的存储过程:3.调用存储过程4.1.8实践操作8 1.创建用户2.创建角色3.创建概要文件5.实践小结:在实训之前,我对Oracle一无所知,后来经过老师课上耐心细致的讲解,我对Oracle 渐渐有了较为清晰的认识。

Oracle数据库技术课程报告

Oracle数据库技术课程报告

课程报告(20 15 -20 16 学年第 1 学期)报告题目(与Oracle有关的某一方面知识介绍,一级标题,三号字,宋体,居中,加粗)一、目的与要求(二级标题,四号字,宋体,顶格,加粗)(正文小四号字,宋体)二、设计内容等(字数3000字以上)1、(三级标题,小四号字,宋体,顶格,加粗)(正文小四号字,宋体)参考文献(至少列出三个,标题五号,宋体,加粗,居中)参考文献内容(五号、宋体;英文用五号,Times New Roman)其他格式要求:(A4纸):左边距:25mm,右边距:25mm,上边距:30mm,下边距:25mm,页眉边距:23mm,页脚边距:18mm 字符间距:标准行距:倍左侧装订可加附页。

此处要求写报告时删去。

上交时间:12月4日。

oracle数据库性能优化一、目的与要求:oracle数据库性能优化对于保证系统安全,信息安全,业务正常运作具有重要影响。

全文首先简要介绍了oracle数据库及特点,然后对数据库性能的评价指标做出一般性概述。

随后从CPU利用和内存分配这两方面阐述了数据库性能优化的主要方向。

最后介绍了oracle数据库应用系统性能优化技术,即sql语句优化,oracle内存调整,oracle 表空间调整。

信息化系统都基于数据库而运行,而数据库系统性能又最大程度的决定着应用系统的性能。

大多数数据库系统在运行一段时间后都会存在一定的性能问题,主要涉及数据库硬件、数据库服务器、数据库内存、应用程序、操作系统、数据库参数等方面。

因此,基于数据库系统的性能调整与优化对于整个系统的正常运行起着至关重要的作用。

二、设计内容:1 oracle数据库及特点oracle是一个功能极其强大的数据库系统。

它起始于七十年代末的关系型数据库技术。

这种类型数据库的关键是怎样理解数据间的关系,然后构造反映这些关系的信息库。

oracle成功的将关系型数据库转移到桌面计算机上,提供了一个完整的客户/服务器体系结构的商用DBMs。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程报告(20 15 -20 16 学年第 1 学期)报告题目(与Oracle有关的某一方面知识介绍,一级标题,三号字,宋体,居中,加粗)一、目的与要求(二级标题,四号字,宋体,顶格,加粗)(正文小四号字,宋体)二、设计内容等(字数3000字以上)1、(三级标题,小四号字,宋体,顶格,加粗)(正文小四号字,宋体)参考文献(至少列出三个,标题五号,宋体,加粗,居中)参考文献内容(五号、宋体;英文用五号,Times New Roman)其他格式要求:(A4纸):左边距:25mm,右边距:25mm,上边距:30mm,下边距:25mm,页眉边距:23mm,页脚边距:18mm 字符间距:标准行距:1.25倍左侧装订可加附页。

此处要求写报告时删去。

上交时间:12月4日。

oracle数据库性能优化一、目的与要求:oracle数据库性能优化对于保证系统安全,信息安全,业务正常运作具有重要影响。

全文首先简要介绍了oracle数据库及特点,然后对数据库性能的评价指标做出一般性概述。

随后从CPU利用和内存分配这两方面阐述了数据库性能优化的主要方向。

最后介绍了oracle数据库应用系统性能优化技术,即sql语句优化,oracle内存调整,oracle 表空间调整。

信息化系统都基于数据库而运行,而数据库系统性能又最大程度的决定着应用系统的性能。

大多数数据库系统在运行一段时间后都会存在一定的性能问题,主要涉及数据库硬件、数据库服务器、数据库内存、应用程序、操作系统、数据库参数等方面。

因此,基于数据库系统的性能调整与优化对于整个系统的正常运行起着至关重要的作用。

二、设计内容:1 oracle数据库及特点oracle是一个功能极其强大的数据库系统。

它起始于七十年代末的关系型数据库技术。

这种类型数据库的关键是怎样理解数据间的关系,然后构造反映这些关系的信息库。

oracle成功的将关系型数据库转移到桌面计算机上,提供了一个完整的客户/服务器体系结构的商用DBMs。

同时它利用SQL*NET软件层,与多种操作系统支持通信协议相配合,为oracle关系型数据库提供分布式环境,可以实现单点更新,多点查询。

Oracle数据库已经被用于各种大型信息系统中,特别是诸如银行,保险,烟草,石油等大数据量,对安全性要求较高的企业。

其特点主要体现在:1)支持大数据库、多用户的高性能事务处理Oracle支持最大数据库(几百TB),可充分利用硬件设备。

支持大量用户同时在同一数据上执行各种应用,并使数据争用最小,保证数据的一致性[1]。

2)硬件环境独立。

Oracle具有良好的硬件环境独立性,支持各种类型的大型,中型,小型和微机系统。

3)遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。

4)较好的安全性和完整控制。

Oracle有用户鉴别、特权)、角色、触发器、日志、后备等功能,有效地保证了数据存取的安全性和完整性以及并发控制和数据的回复。

5)具有可移植性、可兼容性与可连接性oracle不仅可以在不同型号的机器上运行,而且可以在同一厂家的不同操作系统支持下运行。

具有操作系统的独立性。

2 数据库系统性能评价指标主要从以下几个方面进行:1)系统吞吐量。

吞吐量是指单位时间内数据库完成的SQL语句数目,以每秒钟的事务量(tps)表示。

提高系统吞吐量可以通过减少服务时间在同样的资源环境下做更多的工作或通过减少总的响应时间使工作做得更快这两种方法来实现。

2)用户响应时间。

响应时间是指用户从提交SQL语句开始到获得结果集的第一行所需要的时间,是应用做出反应的时间,以毫秒或秒表示。

响应时间可以分为系统服务时间(CPU时间)和用户等待时间两项。

也就是说,要获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。

3)数据库命中率。

Oracle用户进程所需的所有数据都是经过缓冲区高速缓存来存取的。

用户对数据的需求能否在内存中得到满足,给出快速的响应,可用缓冲区高速缓存命中率来衡量。

该比率等于高速缓存命中总数除以对高速缓存的查找总数。

由于从高速缓存中读数据比从磁盘中读数据的开销要小得多,因此一般应使该命中率足够高。

4)内存使用情况。

内存的使用情况主要体现在可共享内存、永久性内存和运行时内存这三者的分配使用上。

内存是否合理使用,一般考虑的主要调整目标有两条:使投资得到最大回报。

把时间和精力用于解决可能产生最大利益的问题;使争用减到最小。

瓶颈的特点在于延迟和等待,尽可能地消除或减少它。

5)磁盘I/O。

数据库中发生的每个动作几乎都将产生某种类型的I/O活动,该活动可以是逻辑的(在内存中),也可以是物理的(在磁盘上)。

通过降低不必要的I/O开销可以增加用户任务可获得的吞吐量,缩短用户响应时间。

其中,磁盘I/O操作是数据库性能最重要的方面,是计算机最大的开销。

3 oracle数据库应用系统性能优化的主要方向3.1 CPU利用CPU是服务器的重要资源,服务器良好的工作状态是在工作高峰时CPU的使用率在90%以上。

在大型的应用系统中,比较流行的配置是oracle+unix,如IBM的小机,sun公司的red hat等。

这些系统中使用sar-u命令查看CPU的使用率,Windows系列的操作系统的服务器,可以使用性能管理器来查看CPU的使用率。

Oracle中:v$sysstat 数据字典中“CPU used by this session”记录了数据库使用的CPU时间,“OS User level CPU time”统计了操作系统用户态下的CPU时间,“OS System call CPU time”统计了操作系统系统态下的CPU时间,操作系统总的CPU时间就是用户态和系统态时间之和,如果Oracle数据库使用的CPU时间占操作系统总的CPU时间90%以上,说明服务器CPU基本上被Oracle数据库使用着,这是合理,反之,说明服务器CPU被其它程序占用过多,Oracle数据库无法得到更多的CPU时间[2]。

出现CPU资源不足的原因可能是SQL语句的重解析、低效率的SQL语句、锁冲突等,oracle提供了初步的分析方法:对于SQL语句的重解析可以执行下述语句来查看SQL语句的解析情况:SELECT * FROM V$SYSSTAT WHERENAME IN('parse time cpu','parse time elapsed','parse count(hard)'),其中parse time cpu是系统服务时间,parse time elapsed是响应时间,用户等待时间waite time为两者之差。

由此可以得到用户SQL语句平均解析等待时间=waite time/parse count。

这个平均等待时间应该接近于0,如果平均解析等待时间过长;对于SQL语句解析效率比较低的问题,可以通过以下方法查询哪些sql需要优化:SELECT SQLJEXT,PARSE CALLS,EXECUTIONS FROM V$SQLAREA,SELECT BUFFER_GETS,EXECUTIONS,SQL_TEXT FROM V$SQLAREA。

对于冲突,可以通过v$system_event数据字典中的“latch free”统计项查看,如果没有冲突的话,latch free 查询出来没有结果。

如果冲突太大的话,可以降低spin_count参数值,来消除高的CPU 使用率。

3.2 内存分配内存参数的调整主要是指Oracle数据库的系统全局区SGA(System Global Area)的调整。

SGA是Oracle数据库的心脏,是对数据库数据进行快速访问的一个系统区域,可以被服务器和用户共享。

SGA主要由三部分构成:共享池(SharePool)、数据缓冲区(Data Buffers)、日志缓冲区(Redo Log Buffers)和PGA区域。

SGA随着不同的环境而不同,没有一种通用的最佳方案,但在设置它之前要先考虑以下的几个方面:物理内存多大:操作系统是哪种以及占多大的内存,数据库系统是文件系统还是存储设备;数据库运行的模式。

SGA占有物理内存的比例没有严格的规定,只能遵从一般的规则:SGA占据物理内存的40%~60%左右。

如果通过直观的公式化来表达则为:OS使用内存+SGA+并发进程数×(Sort_area_size+Hash_area_size+2M)<0.7RAM,以这个公式为参考进行自由调整即可。

初始化参数文件中的一些参数对SGA的大小有决定性的影响。

参数Db_block_Buffers(SGA中存储区高速缓存的缓冲区数目),参数Shared_pool_size (分配给共享SQL区的字节数),是SGA大小的主要影响者。

DataBuffers参数是SGA 大小和数据库性能的最重要的决定因素。

该值较高,可以提高系统的命中率,减少I/O。

每个缓冲区的大小等于参数Db_block_size的大小。

Oracle数据库块以字节表【206】第32卷第8期2010-8示大小。

Oracle SGA区共享池部分由库高速缓存(LibraryCache)、字典高速缓存(Dictionary Cache)及其他一些用户和服务器会话信息组成,共享池是最大的消耗成分。

4 oracle数据库应用系统性能优化技术4.1 sql语句优化SQL语句优化的实质就是在结果正确的前提下,用优化器可以识别的语句,充分利用索引来减少表扫描的I/O次数,尽量避免表搜索的发生。

优化的目的就是将性能低下的SQL语句转换成目的相同的、性能优异的SQL语句,使数据查找的路径最简化,并尽量保持处理器时间和I/O时间的平衡。

通常分为以下几个步骤:1)查找有问题的SQL语句。

优化有问题的sql语句能显著提高数据库性能。

寻找的方法有:搜集统计数据,oracle中可以通过DBMSSTATS包或ANALYZE命令,前者可用于搜集有关链接数据行的统计数据,簇的数据情况只能使用ANALYEZ命令获得,其相关语法为ANALYEZE CLUSTER Cluste_name Computer STATISTICS,对于其它情况可以使用DBMS_SATS包,语法为:exec DBMS_SATS.gather_table_stats(‘owname’,’tablename’,’partnma e’);利用SQLTrace工具分析SQL语句。

通过命令ALTER SESSION SET SQL_TRACE=TRUE会话激活SQL_TRACE,oracle就会在udump管理区创建跟踪文件,从而可以了解如解析、执行和返回数据的次数、CPU时间和执行时间、物理读和逻辑读操作次数、库缓冲区命中率等参数;通过oracle Enterprise Manager Console、Oracle Diagnostics Pack等图形性能工具能够很快地获取到数据库缓冲区命中率、CPU利用率、运行时内存等重要的数据库性能指标信息,并将它们以GUI表格形式和曲线图形式显示出来[3]。

相关文档
最新文档