1Oracle数据管理系统培训一、简要说明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的WebServer2.InterMedia互联网媒体服务3.ObjectOption目标功能4.NetworkingKit网络包25.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)的区别。3全局数据库名主要用于在分布式数据库系统中区分不同服务器上的数据库例程,比如在上海的例程可命名为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数据库服务器安装完毕后,将自动建4立以下几个默认表空间。分别是:1.CWMLITEOLAP2.DRSYS存放与工作空间设置相关信息3.EXAMPLE实例表空间,存放实例信息4.INDEX索引表空间,存放索引信息5.OEM_REPOSITORY6.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)建立用户createuseruserTestidentifiedbyusertestdefaulttablespacetablespacetesttemporarytablespacetempquotaunlimitedontablespacetest;(2)删除用户dropuseruserTestcascade;八、Oracle中Net命令服务的配置我们在建立一个用户之后,可以针对此用户建立一个SID实例名,可使用Oracle的NetManager工具建立。5九、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语句的执行。常见