Oracle数据管理系统培训.docx

上传人:b****5 文档编号:8342609 上传时间:2023-01-30 格式:DOCX 页数:15 大小:26.39KB
下载 相关 举报
Oracle数据管理系统培训.docx_第1页
第1页 / 共15页
Oracle数据管理系统培训.docx_第2页
第2页 / 共15页
Oracle数据管理系统培训.docx_第3页
第3页 / 共15页
Oracle数据管理系统培训.docx_第4页
第4页 / 共15页
Oracle数据管理系统培训.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Oracle数据管理系统培训.docx

《Oracle数据管理系统培训.docx》由会员分享,可在线阅读,更多相关《Oracle数据管理系统培训.docx(15页珍藏版)》请在冰豆网上搜索。

Oracle数据管理系统培训.docx

Oracle数据管理系统培训

Oracle数据管理系统培训

一、简要说明

Oracle体系结构相当庞大,包括数据库服务器领域、使用服务器领域和使用开发领域的许多知识,因此我们在本次培训过程中不可能也没有必要面面俱到,这次培训不想讲太多的理论性知识,仅从实际使用角度出发,针对我们在实际开发过程中经常遇到的一些技术知识进行边讲解边演示。

二、Oracle数据库管理系统简介

Oracle是世界上最早的商品化的关系型的数据库管理系统之一,是数据库专业厂商Oracle公司的核心产品,也是当今关系型数据库产品市场上使用最为广泛、功能强大、具有面向对象特点的数据库系统。

Oracle数据库的推出最早可达到上世纪70年代,从那以后,一直领导着数据库发展的新潮流,融汇先进的技术并预见性地领域了全球数据库技术的发展。

据统计,Oracle在全球数据库市场的占有率达33.3%,在关系型数据库市场上的拥有42.1%的市场份额,在Unix高端使用领域市场上占据66.2%的份额,现在,包括惠普、波音和通用电气等众多大型跨国企业都利用Oracle电子商务的套件来运行自己的业务。

作为一个通用的数据库管理系统,Oracle具有完整的数据库管理功能,包括存储海量数据、定义和操纵数据、并发控制、安全性控制、完整性控制、故障恢复、和高级语言接口等功能。

Oracle到9i版本后,支持各种分布式处理功能,特别是支持Internet处理,还支持面向对象处理的功能,支持类、方法和属性、空间数据等概念,使得Oracle产品逐渐成为了一种对象—关系型数据库管理系统。

Oracle发展到10g以后,采用一种叫网格计算的技术。

这样用户和服务者都在网络上,对于服务提供商来说,服务变的更为可靠,负载均衡更为灵活,具有无限的扩展能力。

对于用户来说,他只需要提出他的请求就可以了,无需知道是在哪个网上,哪个服务端在为他提供服务。

具体来讲,Oracle10G的网格计算包涵四个方面的内容:

存储网格、数据库网格、使用程序网格和网格控件。

三、Oracle体系的组成部分简介

Oracle体系结构相当庞大,它是Oracle公司推出的针对电子商务使用的一整套解决方案,整体由三大体系组成。

(一)数据服务器体系(OracleDatabase)

Oracle9i和10g的数据库服务器从版本上分企业版、标准版和个人版,共有以下18个组件。

1.JServerEnterpriseEdition企业版支持Java的WebServer

2.InterMedia互联网媒体服务

3.ObjectOption目标功能

4.NetworkingKit网络包

5.ObjectforOLE目标

6.AdvancedReplicationOption高级复制功能

7.DistributedOption分布式功能

8.ParallelQueryOption并行查询功能

9.Sql*Plus查询工具

10.WorkflowEnterpriseEdition工作流企业版

11.Advancedbackup&recovery高级备份恢复

12.AdvancedQueuing高级队列

13.ConnectionPool连接池

14.64bitOption64位功能

15.ODBCDriverODBC驱动

16.OCI调用接口

17.EnterpriseManager企业管理器

18.EnterpriseBackupUtility企业备份工具

(二)使用服务器体系(OracleApplicationServer)

Oracle9i和10g的数据库服务器用于构建互联网使用,提供企业级的分布使用解决方案,有以下11个组件。

主要产品有:

1.Http/J2EE(Apache+)ApacheHTTP服务器

2.Portal接口

3.OEMOracle企业管理器

4.Web&DBCacheWeb和数据库缓冲区

5.FormService表单服务

6.ReportService报表服务

7.DiscovererPlus数据挖掘

8.EmailEmail支持

9.InternetDirectory互联网目录

10.Workflow工作流

11.ApplicationInterConnetToolKit使用连接包

(三)开发工具套件(OracleDeveloper)

Oracle的开发工具套件提供了以下9个套件

1.Designer设计器

2.FormDeveloper表单开发工具

3.ReportDeveloper报表开发工具

4.JDeveloper开发工具

5.Portal接口

6.DiscovererAdministrationEdition企业版数据挖掘器管理

7.1LicenceDiscovererDisktopEdition1个用户的数据挖掘器

8.WarehouseBuilder数据仓库建立器

三、Oracle的安装

Oracle的安装一般有数据库服务器的安装、客户端的安装。

一般情况下,我们只需安装一台Oracle数据库服务器,用户端只需安装客户端连接服务器,然后就可以在统一的服务器上建立自己的表空间和用户。

关于Oracle的安装在这里不详细介绍了,我们在这里需要注意两上概念:

全局数据库名和数据库标识符(SID)的区别。

全局数据库名主要用于在分布式数据库系统中区分不同服务器上的数据库例程,比如在上海的例程可命名为Oracle.ShangHai,北京的为Oracle.BeiJing,这样即使数据库例程名相同,在分布式网络中也能区分。

数据库标识符(SID)主要用于区分同一台服务器上的不同数据库例程。

前者为外部区分,后者为内部区分。

在网络配置管理中,服务名一般是指全局数据库名,而网络服务名一般是指SID。

比如说我们公司的数据库服务器的全局数据库服务名为:

Oracle10、我们在本地针对船舶管理系统的SID为ShipMis。

五、Oracle数据库结构介绍

(一)逻辑结构

Oracle数据库按逻辑结构从大到小分有:

数据库、表空间、逻辑对象(包括表、索引、视图、过程等21个)、数据段、数据区间、数据块。

一个数据库服务器可有多个数据库;一个数据库可有多个表空间;一个表空间可以有多个表;一个表可以有多个数据段;一个数据段可以有多个数据区间;一个数据区间可以有多个数据块。

(二)一些逻辑对象的介绍

1.过程:

也就是存储过程对象。

2.程序包:

程序包分别二个部分,一个是程序包,另一个是程序包体。

程序包相当于Java中的接口定义,它是对一组存储过程进行定义,但并不对其进行实现。

而程序包体则是对程序包中定义的过程进行具体实现。

程序包和程序包体一一对应。

程序包和过程的区别是:

过程只能是一个单独的存储过程,而程序包是一组存储过程的集合。

我们可以使用程序包对存储过程进行分门别类地管理。

比如我们如果要对船舶管理系统进行后端开发的话,我们可以把针对PMS的所有过程放在一个PKG_PMS包下统一管理,而把备件物料的所有过程放在一个PKG_SPARE包下进行统一的管理。

3.簇:

将一些互相关联的具有相同字段的数据表或索引集中存储的一种管理。

4.数据库链接:

在分布式环境中链接其它节点的数据库服务器。

5.序列:

它相当于在Oracle中建立的表的自增长字段,数据表可以利用它做为字段。

6.同义词:

在Oracle中访问数据表的形式是“用户名.表名”,同义词可以用一个别名来代替它。

比如说我们定义一个同义词a指向表:

T_Component_Type_Parm,那么select*fromT_Component_Type_Parm语句和select*froma的执行效果是一样的。

六、表空间的建立

为了提高数据库服务器管理和运行效率,Oracle使用表空间这个虚似概念来管理逻辑对象,用户可以将不同的逻辑对象存放在不同的表空间下,可以理解表空间就是Oracle数据库的文件夹,用户建立的各种数据库对象应该存放在相应的表空间下,Oracle9i和10g数据库服务器安装完毕后,将自动建立以下几个默认表空间。

分别是:

1.CWMLITEOLAP

2.DRSYS存放和工作空间设置相关信息

3.EXAMPLE实例表空间,存放实例信息

4.INDEX索引表空间,存放索引信息

5.OEM_REPOSITORY

6.SYSTEM系统表空间,存放管理信息

7.TEMP临时表空间,存放临时表

8.TOOLS工具表空间,存放工具软件所需要的数据库对象

9.UNDOTBS回滚表空间,存放数据库恢复信息

10.USERS用户表空间,存放用户私有信息

我们建立一个用户时如果不指定表空间,默认选择的表空间是USERS、临时表空间是TEMP。

但一般情况最后是建立自己的表空间,以便单独进行管理。

表空间的建立有如下两种方式:

(一)使用企业管理器建立表空间

(二)使用PLSQL命令来建立表空间

(1)建立

createtablespacetablespacetestdatafile

'd:

\oracle\oradata\oracle10\tablespaces\test01.dbf'size10M,

'd:

\oracle\oradata\oracle10\tablespaces\test02.dbf'size10M,

'd:

\oracle\oradata\oracle10\tablespaces\test03.dbf'size10M;

(2)扩大现有表空间

alterdatabaseOracle10tablespacetest'd:

\oracle\oradata\oracle10\tablespaces\test01.dbf'resize20M;

(3)删除表空间

droptablespacetablespacetestincludingcontents

七、用户的建立

Oracle中的用户就相当我们的业务数据库。

我们建立数据库时需要指定用户名和口令。

(一)企业管理器建立用户

(二)使用PLSQL命令来建立用户

(1)建立用户

createuseruserTestidentifiedbyusertest

defaulttablespacetablespacetest

temporarytablespacetemp

quotaunlimitedontablespacetest;

(2)删除用户

dropuseruserTestcascade;

八、Oracle中Net命令服务的配置

我们在建立一个用户之后,可以针对此用户建立一个SID实例名,可使用Oracle的NetManager工具建立。

九、Oracle中的角色和权限

Oracle提供了两种类型的权限:

系统权限和对象权限。

(一)系统权限

系统权限提供了在Oracle数据库执行多种任务的能力,系统权限不能访问数据库内的表和视图。

通常系统权限可以用来许可或者限制DDL语句的执行,Oracle中定义了系统权限多达120多个,常用的系统权限有:

1.CREATESESSION允许用户在数据库上注册。

2.CONNECT允许注册和创建常用的数据库,CONNECT权限是一个预定义角色。

3.RESOURCE传送UNLIMITEDTABLESPACE,也就是这种权限自动授权给用户。

4.CREATETABLE允许用户创建表。

5.CREATEVIEW允许用户创建视图。

6.CREATESEQUENCE允许用户创建序列。

7.CREATEPROCEDURE允许用户创建过程,函数和包。

8.CREATETRIGGER允许用户在其所属的表创建触发器。

9.CREATESYNONYM允许用户创建专用的同义词。

授予系统特权的语法:

grantsystem_privilegetousername[withgrantoption]

去掉系统权限语句:

revokesystem_privilegefromusename

举例:

grantcreatetable,createview,createprocedure,createtrigger,createsequence,createsession,

selectanydictionary,unlimitedtablespacetouserTest;

(二)对象权限

对象权限用来指定访问用户所属的数据类型。

这个用户可以拥有多种对象如表,视图等。

对象权限可以用来许可或阻止DML语句的执行。

常见的有SELECT、INSERT、UPDATE、DELETE、EXECUTE(可以使用于PL/SQL过程、函数、程序包以及其他可执行元素如Java类)

授予对象权限的语法:

grantobject_privilegeonobject_nametousername[withadminoption]

取消对象权限的语句:

revokeobject_privilegeonobject_namefromusername

(三)角色管理

Oracle使用角色来限定各种用户的权力,在系统中可以有许多用户,各种用户有各种不同的角色,而角色拥有不同的权力。

有时和其赋一组权限给每一个用户,不如先赋一定的权限给一个角色,然后把这个角色赋给用户,这样就可以实现动态的权限管理,当一组用户的权限必须改变时,只需改变角色的权限即可,而不用每个用户都一一改变权限。

Oracle中的角色有预定义角色和用户自定义角色。

常见的预定义角色如:

1.CONNECT登录数据库

2.RESOURCE创建新对象(如表、视图等)

3.DBA执行数据库管理员的功能,如创建新用户

4.EXP_FULL_DATABASE输出完整的数据库

5.IMP_FULL_DATABASE输入完整的数据库

6.SELECT_CATALOG_ROLE查看数据字典视图

用户自定义的角色的创建必须具有管理权限。

定义:

CREATEROLErolename;

为角色授予权限语句:

GRANTCREATETABLETOrolename;

删除角色:

DROPROLErolename

十、Oracle数据库的备份

Oracle中的备份方式可分两大类,一种是逻辑备份,另一种是物理备份。

(一)逻辑备份

逻辑备份就是我们常用的导入(Import)和导出备份(Export),这种备份方式能够针对对象进行备份,能够跨平台实施备份操作并适移数据,使用这种备份时,数据库可以不关闭。

这种备份一般用于有规律的日常备份。

采用这种方式我们可以进行表方式和用户方式的备份。

Export备份方式:

1.C:

\>expshipmis/shipmis@shipmis;

2.数组缓冲区大小4096:

>按回车;

3.导出文件:

EXPDAT.DMP>d:

\shipmis.dmp;

4.U(用户),或(3)T(表):

(2)U>

5.导出权限(yes/no):

yes>

6.导出表数据(yes/no):

yes)

7.压缩区(yes/no):

yes)

Import恢复方式

1.C:

\>Impshipmis/shipmis@shipmis

2.导入文件:

EXPDAT.DMP>C:

\shipmis.dmp

3.输入插入缓冲区大小(最小为8192>30720)>

4.只列出导入文件的内容(yes/no):

no>回车(要导入内容必须选择no)

5.由于对象已存在,忽略创建错误(yes/no):

no>yes

6.导入权限(yes/no):

yes>yes

7.导入表数据(yes/no):

yes>回车

8.导入整个导出文件(yes/no):

no>yes(最好选yes)

(二)物理备份—冷备份

冷备份实质上是在关闭数据库的一种文件式的考贝备份。

使数据库处于关闭状态时,把数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置。

由于是在数据库不提供服务的关闭状态,所以称为冷备份。

冷备份具有快速,方便,以及高效等特点。

一次完整的冷备份步骤应该是:

1.关闭数据库(shutdownnormal或shutdownabort);

2.复制数据库相关文件

利用操作系统命令拷贝数据库的所有的数据文件、日志文件、控制文件、参数文件到一个安装区域。

3.重新启动数据库(startup)

恢复的时候,相对比较简单了,我们停掉数据库,将文件拷贝回相应位置,重启数据库就可以了。

(三)物理备份—热备份

热备份和冷备份的区域就是它是在归档模式下进行的,数据库仍处于打开和使用状态。

当我们需要做一个精度比较高的备份,而且我们的数据库不可能停掉时,这时我们就需要归档方式下的备份,就是热备份。

热备份可以非常精确的备份表空间级和用户级的数据,由于它是根据归档日志的时间轴来备份恢复的,理论上可以恢复到前一个操作,甚至就是前一秒的操作。

热备份相对比较复杂,对于硬件以及操作人员的要求都比较高。

在这里不做详细介绍。

十一、表、视图、程序包、序列介绍

(一)表

createtabletb

equipidnumber,

equipnamenvarchar2(30)NOTNULL,

constraintEQUIP_PKprimarykey(equipid),--主键

constraintEQUIPNAME_UKunique(equipname)--唯一索引

建表时把表中不同范围的数据放在不同的表空间上以加快查询速度,这种情况一般在表数据量特别大(上亿条记录)时使用。

createtabletb

idnumberpartitionbyrange(id),(partitionp1valueslessthan(10)tablespacept1,

partitionp2valueslessthan(20)tablespacept2)

(二)视图

在Oracle中有四种类型的视图:

关系视图、内嵌视图、对象视图和物化视图。

我们最常用的视图就是关系视图。

建立关系视图的语法:

createorreplaceviewview_nameasquery

删除视图语法:

dropviewview_name

在查询中查询视图的语法:

SELECTtextFROMuser_viewsWHEREview_name='VIEW_NAME';VIEW_NAME必须大写。

(三)程序包

在Oracle中有四种类型的视图:

关系视图、内嵌视图、对象视图和物化视图。

我们最常用的视图就是关系视图。

我们前边说过,程序包是过程的一种改进,它可以对存储过程进行分门别类地进行管理。

建立程序包的语法为:

1.程序包定义

createorreplacepackageemployee_pkg

as

procedureprint_ename(p_empnoinnumber);--第一个存储过程接口

procedureprint_sal(p_empnoinnumber);--第二个存储过程接口

endemployee_pkg;

2.程序包体的定义

createorreplacepackagebodyemployee_pkg

as

procedureprint_ename(p_empnonumber)--第一个过程的实现

is

begin

dbms_output.put_line(p_empno);

end;

procedureprint_sal(p_empnonumber)--第二个过程的实现

is

l_resnumber;

begin

l_res:

=p_empno*p_empno;

dbms_output.put_line(l_res);

end;

endemployee_pkg;

3.调用程序包:

begin

employee_pkg.print_ename(100);

employee_pkg.print_sal(100);

end;

在Oracle的SQLPLUS中还可以使用如下语法:

executeemployee_pkg.print_ename(100);

executeemployee_pkg.print_sal(100);

在使用系统中调用程序包:

(1)NET中的调用如下:

OleDbCommandCmd=NewOleDbCommand("PKG.Procedure",con);

Cmd.CommandType=CommandType.StoredProcedure;

Cmd.Parameters.Add("varCaseName",OleDbType.VarChar).Value=cboAccidentName.Text;

con.Open();

Cmd.ExecuteNonQuery();

con.Close();

(2)Java中的调用如下:

Connectioncon=DriverManager.getConnection();

Statementsmt=con.createStatement();

CallableStatementcst=con.prepareCall("{callGetDataForYYT(?

?

?

?

)}");

cst.setString(1,txtFreightBill.getText());//设置输入参数

cst.registerOutParameter(2,java.sql.Types.INTEGER);//注册输出参数的JDBC类型

cst.registerOutParameter(3,java.sql.Types.DECIMAL,2);

cst.registerOutParameter(4,java.sql.Types.DECIMAL,2);

cst.execute();

txtSumPieces.setText(String.valueOf(cst.getInt

(2)));//把返回的值赋给文本框

txtSumJWeight.setText(String.valueOf(cst.getFloat(3)));

txtLastResult.setText(String.valueOf(cst.getFloat(4)));

con.close();

(四)序列

我们在建立表时经常用自增长的方式为表指定主键,在SQLServer中可以直接在建立字段时指定自增长类型。

在Oracle中的实现方式略有不同,Oracle中要使用序列的方式来实现自增

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1