Oracle数据库应用系统结构
在安装、部署oracle数据库软件时,需要根据不同应用结构(即硬件平台、操作系统平台)采用不同的方法(基本安装、高级安装),下面介绍几种常见的应用结构。
1.应用系统的数据接口
客户端应用程序或应用服务器向数据库服务器请求服务时,首先必须和数据库建立连接。虽然现有DBMS几乎都遵循SQL标准,但不同厂家开发的DBMS有差异,存在适应性和可移植性等方面的问题,为此,人们研究和开发了连接不同DBMS的通用方法、技术和软件接口。
2.客户/服务器(C/S)模式应用系统
在C/S(cilent/server)结构模式中,所有数据集中存储在服务器中,数据处理由服务器完成,一般采用硬件资源配置比较高的机器作为服务器,而使用配置比较低的PC作为客户端。客户端与服务端之间通过专用的网络连接,一般为局域网或企业内部网。
如图2-1Oracle客户端/服务器系统结构。应用程序运行在客户端,Oracle数据库运行在服务器,二者之间通过计算机网络连接在一起。Oracle使用SQL*NET在客户端与服务器之间进行通信。

图1-2 Oracle客户端/服务器系统结构
3.Oracle浏览器/服务器系统结构
如图2-2所示为Oracle浏览器/服务器(B/S,Browser/Server)三层系统结构。在B/S的三层模型中,客户端应用程序采用WEB浏览器展示,所以客户端也成手客户、

图2-2 Oracle浏览器/服务器三层系统结构
客户端即浏览器没有加载程序,程序部署在Web服务器上,客户端需要加载或浏览数据,首先通过网络将请求发送给Web服务器,Web服务器通过请求访问Oracle数据库服务器,然后Web服务器响应将数据传递展示在客户端。
B/S结构是面向非连接的,即存取数据时建立连接,存取结束时断开连接,再次存取数据需重新建立连接,所以与C/S结构相比,其效率低。所以,B/S主要应用于运行效率要求不高,以数据对外发布为主的环境。
4.单磁盘独立主机结构
单磁盘独立主机结构是最简单,最常用的结构,在该机构中只有一台计算机,并且计算机使用一个硬盘,在这里Oracle实例表示DBMS,用数据库文件表示数据库,如图2-3:

图2-3 单磁盘独立主机结构
注:数据库服务器(也叫做实例),由一组内存结构和访问数据库文件的后台进程组成。
这种应用结构只有一个数据库服务器(DBMS)、一个数据库文件(数据库结构),并且这些数据文件都存储在一个屋里磁盘上,这是最基本的应用结构,其他的应用结构都是在基础上修改和扩展。
这种结构将所有数据库文件都存放在一个硬盘上,因此对硬件的可靠性要求较高,性能调整的方向主要是视图减少对数据库文件的访问次数。
5.多磁盘独立主机结构
多磁盘独立主机结构只有一台计算机,但该计算机使用了多个硬盘,如图2-4:

图2-4 多磁盘独立主机结构
该结构只有一个数据库服务器,一个数据库结构,但是数据库存储在多个物理磁盘中,数据库文件的分开存储减少了连接数量,也减少了对数据库文件的读写操作。
如果在这些磁盘上采用磁盘镜像技术(RAID技术,独立磁盘冗余阵列技术),则所有数据库文件在每个硬盘上都有完整的备份,任何一个硬盘发生故障,都能由镜像磁盘代替其工作,并可对其进行维修、恢复,因此提高了硬件的可靠性。
当处理一个事务或查询需要对数据库进行操作,往往涉及多个文件的信息,在这种多磁盘结构中可将数据库文件存在不同的物理磁盘上,这样可以减少数据库文件之间的竞争数量,从而提高数据库的性能。
注:多磁盘不一定是镜像的,但是镜像的一定是多磁盘的,通常,磁盘的镜像是由硬件系统实现,而不是Oracle的镜像解决方案。
6.多数据库独立主机结构
多数据库独立主机结构只有一台计算机,可以有一个或多个硬盘,如图2-5:

图2-5 多数据库独立主机结构
这种结构由多个数据库服务器,多个数据文件组成,虽然一台计算机上装有两个数据库,但是它们的内存结构、服务器进程和数据库文件等都不是共享的,它们有各自的内存机构、服务器进程和数据库文件,彼此之间不能进行共享,即一个数据库的进程不能访问另一个数据库的文件。这种结构对硬件要求较高(内存大、CPU运算强、硬盘快),一般不采用这种结构。
7.Oracle 分布式数据库系统结构
数据库系统按数据分布方式可分为集中式数据库系统和分布式数据库系统。集中式数据库系统是将数据集中存放在一台计算机上,而分布式数据库系统是将数据存放在由计算机网络连接的不同计算机上。一个分布式数据库是由分布于计算机网络上的多个逻辑相关的的数据库组成,网络的每个节点都具有独立处理能力,可以执行局部应用,也可以通过网络执行全局应用。如图2-6为分布式数据库系统结构:

图2-6 分布式数据库系统结构
从图2-6可以看出,分布式数据库系统由以下部分组成:
- 局部数据库管理系统 :创建和管理局部数据库,执行局部和全局应用子查询。
- 全局数据库管理系统:协调各局部数据库管理系统,共同完成全局事务的执行并保证全局数据库执行的正确性和全局数据的完整性。
- 通信管理:实现分布在网络中各个数据库之间的通信。
- 全局数据字典:存放全局概念模式。
- 局部数据库:查询全局数据库信息。
分布式数据库管理系统的数据在物理上是分布存储,即数据存放在计算机网络上不同节点(局部数据库),而在逻辑上数据之间有语义上的联系,属于一个系统。访问数据库的用户即可是本地用户,也可是网络连接的远地用户。
Oracle支持分布式数据结构,属于客户/服务器模式结构。在网络中每个用户具有多用户处理能力的硬件平台都可以作为服务器,多个服务器上的数据库对用户来讲是一个逻辑上的单一数据库系统。在分布式数据库中,各个服务器之间可以实现数据的实时、定时复制,通过Oracle的远程数据复制选件、快照等在多个不同地域实现数据远程复制。图2-7为Oracle分布式数据库系统结构。

图2-7 Oracle分布式数据库系统结构
Oracle数据库应用系统结构的更多相关文章
- Oracle数据库系统结构(一)
1.Oracle数据库系统结构概述 Oracle数据库由存放在磁盘上的数据库(DB)和对磁盘上的数据库进行管理的数据库管理系统(DBMS)两部分构成,分别对应着数据库的存储结构和软件结构. Oracl ...
- Oracle数据库概述
Oracle是一种RDBMS(Relational Database Management System 关系型数据库管理系统),是Oracle公司的核心产品. 2009年4月,Oracle并购了Su ...
- ORACLE数据库学习之体系结构
Oracle体系结构 ORACLE数据库体系结构决定了oracle如何使用网络.磁盘和内存.包括实例(instance),文件(file)和进程(process不包括后台进程)三部分. 实例:每 ...
- Oracle数据库(一)
Oracle 是一个数据库管理系统,是Oracle公司的核心产品.其在数据安全性与安整性控制方面的优越性能,以及跨操作系统.跨硬件平台的数据操作能力.基于“客户端/服务 器”(Client/Se ...
- 最近面试oracle 数据库的知识点
1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windo ...
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- Oracle数据库该如何着手优化一个SQL
这是个终极问题,因为优化本身的复杂性实在是难以总结的,很多时候优化的方法并不是用到了什么高深莫测的技术,而只是一个思想意识层面的差异,而这些都很可能连带导致性能表现上的巨大差异. 所以有时候我们应该先 ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
随机推荐
- vue中父组件如何监听子组件值的变化
vue中我们会遇到很多父子组件通信的需求, 下面简单列一下,父子组件通信的几种情况 1:父组件向子组件传值:使用prop向子组件传值: 2:子组件实时监听父组件传来的值的变化:使用watch去监听父组 ...
- maven项目无法查看类库的源码
一个Maven项目有两种类库,分别是JRE System Libaray和Maven Dependencies. JRE System Libaray 一般有两种方法指定. 1.由pom.xml中的m ...
- MySQL查询top N记录
下面以查询每门课程分数最高的学生以及成绩为例,演示如何查询 top N记录.下图是测试数据,表结构和相关 insert 脚本见<常用SQL之日期格式化和查询重复数据>. 使用自连接[推荐] ...
- jquer绑定和获取属性
最近每天都在熬夜,今天感觉眼睛特别涩,我决定,今天早睡,哈哈哈,上次总结了jquery控制节点,今天总结jquery控制属性,学习完基础知识,看看下面的案例练习一下,掌握的会更好 属性绑定和获取 ...
- Ryu控制器编程开发——packet_in和packet_out简易交换机实现
Ryu控制器二次开发,实现一个简单的只能够简单地广播数据包的交换机. from ryu.base import app_manager from ryu.controller import ofp_e ...
- awk、grep、sed
awk.grep.sed是linux操作文本的三大利器,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文 ...
- cookie和session的区别及其原理
1.为什么要有cookie/session? HTTP是一种无状态的协议,为了分辨链接是谁发起的,需自己去解决这个问题.不然有些情况下即使是同一个网站每打开一个页面也都要登录一下.而Session和C ...
- LC 898. Bitwise ORs of Subarrays
We have an array A of non-negative integers. For every (contiguous) subarray B = [A[i], A[i+1], ..., ...
- Python - social-auth-app-django 模块 - 商城项目 第三方方式登录 - 微博
开发准备 开通微博开发者权限 点击这里 进入 微博开放平台 开通后权限后创建应用 创建网页应用, 此处不需要进行审核即可使用测试环境 开发环境信息 此处一些信息是很重要的东西, 比如 App_key ...
- PHP mysql_num_rows() 函数 返回结果集中行的数目。
定义和用法 mysql_num_rows() 函数返回结果集中行的数目. 语法 mysql_num_rows(data) 参数 描述 data 必需.结果集.该结果集从 mysql_query() 的 ...