1.1 ORACLE数据库简介
Oracle简称甲骨文,是一家名声不像微软、IBM那样显赫,但在IT软件业,则是仅次于微软公司的世界第二大软件公司,该公司名称就叫Oracle。该公司成立于1979年,是加利福尼亚州的第一家在世界上推出以关系型数据管理系统(RDBMS)为中心的一家软件公司。Oracle不仅在全球最先推出了RDBMS,并且事实上掌握着这个市场的大部分份额。现在,他们的RDBMS被广泛应用于各种操作环境:Windows NT、基于UNIX系统的小型机、IBM大型机以及一些专用硬件操作系统平台。事实上,Oracle已经成为世界上最大的RDBMS供应商,并且是世界上最主要的信息处理软件供应商。由于Oracle公司的RDBMS都以Oracle为名,所以,在某种程度上Oracle己经成为了RDBMS的代名词。
Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其应用数据的处理系统。
Oracle数据库是基于“客户端/服务器”(Client/Server)模式结构。客户端应用程序执行与用户进行交互的活动。其接收用户信息,并向“服务器端”发送请求。服务器系统负责管理数据信息和各种操作数据的活动。
Oracle数据库有如下几个强大的特性:
? 支持多用户、大事务量的事务处理
? 数据安全性和完整性的有效控制
? 支持分布式数据处理
? 可移植性强
Oracle体系庞大,对于初学者来说,大体上要明白定位思想:
Oracle大体上分两大块,一块是应用开发,一块是系统管理。
开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力。管理则需要对Oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会丢失整个数据库,相对前者来说,后者更看重经验。
因为数据库管理的责任重大,很少公司愿意请一个刚刚接触Oracle的人去管理数据库。对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。
Oracle的几个专业性网站:
http://www.oradb.net/default.asp(Oracle技术网)
http://www.cnoug.org/index.php (ORACLE技术中国用户讨论组)
1.2 ORACLE数据库的体系结构
数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制
1.2.1 ORACLE服务器
Oracle服务器由Oracle数据库和Oracle实例组成。Oracle数据库是一个数据的集合,该集合被视为一个逻辑单元。在一个装有Oracle数据库的服务器上,必须运行一系列进程来管理该数据库。这些进程使用大块的内存,这些内存块分别具有与特定任务相关的用途。
后台进程和内存结构的集合称为Oracle实例。如果要访问数据库中的数据,就需启动该实例。每一个运行的Oracle数据库都与一个Oracle实例相联系。
1.2.2 ORACLE组件
实例、用户进程和服务器进程驻留在内存中,而所有其他文件都存储在硬盘上。
? Oracle实例:
Oracle实例是后台进程和内存结构的集合。必须启动实例才能访问数据库中的数据。Oracle实例启动时,将分配一个系统全局区(SGA)并启动一系列Oracle后台进程。每一个后台进程在数据库中执行不同的任务。一个实例只能打开并使用一个数据库。
? Oracle数据库:
Oracle数据库由操作系统文件组成,这些文件也称为数据库文件,为数据库信息提供实际物理存储区。Oracle数据库包括逻辑结构和物理结构。数据库的物理结构包含数据库中的一组操作系统文件。数据库的逻辑结构是指数据库创建之后形成的逻辑概念之间的关系,如表、视图、索引等对象。
? 会话:
会话是用户与Oracle服务器的单个连接。当用户与服务器建立连接时创建会话。当用户与服务器断开连接时关闭会话。当一个数据库用户同时用多个不同的应用程序或从多个终端连接数据库时,则为该用户创建多个并行会话。
? Oracle实例内存结构:
Oracle的内存结构包含以下两个内存区:
? 系统全局区:(SGA):实例启动时分配该内存区。
Oracle实例的SGA(System Global Area)又称为共享全局区,它用来存储数据库信息,并由多个数据库进程共享。当数据库实例启动时,SGA的内存被自动分配。SGA是数据库中占用服务器内存最大的一个区域,同时也是影响数据库性能的一个重要指标。SGA按其作用不同,可以分为共享池、数据缓冲区及日志缓冲区。
? 共享池
共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域
共享池由库缓存和数据字典缓存组成。
共享池的大小直接影响数据库的性能。
? 数据缓冲区
用于存储从磁盘数据文件中读入的数据,所有用户共享。
服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。
数据缓冲区的大小对数据库的读取速度有直接的影响。
? 日志缓冲区
日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。
当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。相对来说,日志缓冲区对数据库的性能影响较小。
? 程序全局区:(PGA):服务器进程启动时分配该内存区。
程序全局区PGA(Program Global Area)包含单个服务器进程或单个后台进程所需的数据和控制信息。PGA是在用户进程连接到数据库并创建一个会话时自动分配的,该区内保留每个与Oracle数据库连接的用户进程所需的内存。PGA为非共享区,只能单个进程使用,当一个用户会话结束后,PGA释放。
? Oracle实例进程结构:
? 用户进程:
用户进程是一个需要与Oracle服务器进行交互的程序。此进程在数据库用户请求连接Oracle服务器时启动。如用户启动数据库客户端工具SQL *Plus时,系统自动建立一个用户进程。
? 服务器进程:
服务器进程用于处理连接到该实例的用户进程的请求。此进程在用户建立会话并连接Oracle实例时启动。服务器进程直接与Oracle数据库交互,实现调用和返回结果。
? 后台进程:
在Oracle数据库中,为了使系统性能最好和协调多个用户,实例系统中使用一些附加进程,称为后台进程。这些后台进程存在于服务器操作系统中,在实例启动时自动启动。
常用的几个后台进程如下所示:
? 进程监控:(PMON)
在用户进程出现故障时执行进程恢复。(常见任务见书7)
? 系统监控:(SMON)
在实例启动时执行实例恢复。(常见任务见书7)
? 数据写入进程:(DBWR)
将所有修改后的缓冲区数据写入数据文件。(常见任务见书8)
? 日志写入进程:(LGWR)
将日志缓冲区中的日志数据信息写入日志文件中。
? 检查点:(CKPT)
保证所有修改过的数据库缓冲区数据都被写入数据库文件中。
? 归档进程:(ARCH)
当数据库运行在归档模式下时,产生该进程,用于写归档日志文件。
1.2.3 ORACLE的物理组件
数据库的物理组件是指从物理角度分析数据库的组成,也就是Oracle数据库创建后使用的操作系统物理文件。Oracle数据库的物理文件可分为三类,即数据文件、日志文件和控制文件。
? 数据文件:(SYSTEM01.DBF/SYSTEM01.ORA)
数据文件(Data Files)用于存储数据库数据的文件。如表、索引等数据都是存储在数据文件中。每个Oracle数据库有一个或多个物理数据文件。一个数据文件只能与一个数据库关联。
? 日志文件:(REDO01.LOG)
日志文件(Redo Log Files)用于记录对数据库所进行的修改。日志文件主要用于在数据库出现故障时实施数据库恢复。
? 控制文件:(CONTROL01.CTL)
控制文件(Control Files)用于记录数据库物理结构的二进制文件。该文件包含维护和验证数据库完整性的必要信息。
1.2.4 ORACLE的逻辑组件
数据库的逻辑组件是从逻辑的角度分析数据库的组成。Oracle对于逻辑结构的描述是通过数据字典存储完成的。Oracle数据库的逻辑组件包括
表空间、段、区、块和用户模式等。
? 表空间(TABLESPACE):
表空间是数据库中最大的逻辑单位,Oracle数据库采用表空间将相关的逻辑组件组合在一起,一个Oracle数据库至少包含一个表空间。每个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系。
在每一个数据库中都有一个名为SYSTEM的表空间,即系统表空间,该表空间是在创建数据库或数据库安装时自动创建的,用于存储系统的数据字典表、程序单元、过程、函数、包和触发器等。
创建表空间的语法如下:
扩展数据文件的语法如下:
? 段(SEGMENT):
一个表空间包含一个或多个段。段是一种指定类型的逻辑存储结构一个段由多个区组成。如常用的4类段结构:
(数据段——索引段——回滚段——临时段)
? 区(EXTENT):
区是磁盘空间分配的最小单位。磁盘按区划分,每次至少分配一个区。区为段分配空间,它由连续的数据块组成。一个区由多个数据块组成,块是进行数据读写操作的最小单元。
? 数据块(DATA BLOCK):
数据块是数据库中最小的数据组织单位与管理单位,Oracle数据库中的数据存储于数据块中。数据块的取值范围在2KB~64KB之间。
? 模式(SCHEMA):
模式是对用户所创建的数据库对象的总称,在Oracle数据库中任何数据库对象都属于一个特定用户,一个用户及其所拥有的对象即称为模式。模式对象包括表、视图、索引、同义词、序列、过程和程序包等。一个用户与相同名称的模式相关联,所以又称为用户模式。
1.3 登陆到ORACLE
在Oracle产品安装完成后,客户端为了与数据库服务器连接进行数据访问,必须进行网络连接配置,网络配置包括服务器端配置和客户端配置。
? 服务器配置:(监听器)
服务器端配置,是指配置一个监听器。用于监听客户端发过来的连接请求。
监听器配置包括监听协议、地址以及其它相关的信息参数。
监听器配置存储在一个名称为listener.ora的配置文件中。
该文件位于D:/oracle/ora90/network/ADMIN/listener.ora
默认的监听器监听以下TCP/IP协议地址。
在安装Oracle数据库软件时,安装程序自动配置一个名称为LISTENER的监听器。监听器对应于windows服务OracleOraHome92TNSListener
? 客户端配置:(服务名)
客户端要与服务器连接请求,则须创建一个网络服务名,该服务名与远程或本地的监听器建立连接,客户用它向服务器端发出连接请求。
要在一台没有安装Oracle数据库服务器的工作站上连接Oracle服务器,必须单独安装Oracle客户端软件。在客户端创建服务名时,需要指定网络协议、与协议相关的信息和数据库的SID(全局数据库名)。这些配置信息都存储在tnsnames.ora文件中,保存位置与listener.ora相同。
该文件位于D:/oracle/ora90/network/ADMIN/ tnsnames.ora
※: [ Oracle中的 Net Configuration Assistant和Net Manager工具都能用来配置监听器和网络服务名 ]
1.4 ORACLE的应用工具
? Oracle查询工具:(Oracle Query Tools)
? SQL *Plus
? Isql *Plus
? PL/SQL
? Oracle企业管理器:(Oracle Enterprise Manager)
1.5 用户管理
在Oracle中,为了加强数据的安全性,用户必须拥有相应的帐号及其权限才可访问Oracle数据库。数据库管理员可以创建允许访问数据库的用户账号,并授予其访问权限,帐号创建后,用户就能根据管理员授予的权限访问Oracle数据库了。
? 在Oracle中创建用户:
当创建一个新数据库时,Oracle将创建一些默认数据库用户及其相应模式。默认使用的用户有如下几个:
1. SYS:超级用户:——(password: changle_on_install)
数据库中所有数据字典和视图都存储在SYS模式中。该用户主要用来维护系统信息和管理实例。在Oracle9i版本中,SYS用户只能以SYSOPER或SYSDBA角色登录系统。
2. SYSTEM:系统管理员:——(password: manager)
SYSTEM用户是Oracle中默认的系统管理员,它拥有DBA权限。通常用于管理数据库的用户、权限和存储等,不建议在该用户模式中创建用户表。
3. SCOTT:示范帐号:——(password: tiger)
该用户在Oracle安装时自动创建。一般作测试和示范用,其有4个示范表。
Oracle中的CREATE USER命令用于创建新用户。每个用户都有一个默认表空间和一个临时表空间。如果创建时没有指定,Oracle就将SYSTEM设为默认表空间,将TEMP设为临时表空间。
创建Oracle用户及其权限的语法如下:
? 为Oracle用户授权/撤消:
1:grant——授权
grant select, insert on tbtest to user1;
2: grant——with grant option授权并使该用户可以授这些权给其他用户
grant select, insert on tbtest to user1 with grant option
3: revoke——撤消
revoke select, insert on tbtest from user1;
? 修改用户口令:
Oracle中的ALTER USER命令可用于更改口令。
? 删除用户:
删除一个用户时,若用户模式中包含有模式对象,则所有这些对象也将立即删除。Oracle中的DROP USER命令可用于删除用户,当用户拥有模式对象时必须使用CASCADE选项以删除所有模式对象。
1.6 ORACLE的安装与卸载
(详见Oracle安装图解.xls 与 NT下如何彻底删除Oracle.htm)
1.7 ORACLE的各种服务
在windows中Oracle的每个实例都作为一项服务来启动。服务是在
windows注册表中注册的可执行进程,由windows操作系统管理。
windows服务对话框中的各项 Oracle 服务如图所示:
1.8 使用 Oracle 数据库的开发流程
oracle入门
最新推荐文章于 2024-08-17 22:34:52 发布