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 ...
随机推荐
- 2019牛客暑期多校训练营(第六场)E 构造、原图是补图的同构图
https://ac.nowcoder.com/acm/contest/886#question 题意 问是否存在某个n个点的无向图G是其补图H的同构图,若存在输出G的邻接矩阵以及H关于G的映射. ...
- css 计算值函数
css有一些强大的函数: 1. calc 可以混合多种单位来计算 div { font-size: calc(100vw/5 + 1rem - 100px) } 2. max.min.clamp ma ...
- 存在日期类型的JSON数据,进行SpringMVC参数绑定时存在的问题和解决方案
这篇文章已经过时了. 请参考比较合适的前后端交互方式. 首先是发送AJAX请求的html页面 <!DOCTYPE html> <html> <head> <m ...
- Python3读写JSON文件
JSON简介 JSON(JavaScript Object Notation)即JavaScript对象表示法,一种轻量级,通用的文本数据格式. JSON语法支持对象(Object),数组(Array ...
- python常用模块介绍
关于if __name__ == "__main__": 若执行文件为bin,调用文件为cal: 若在执行文件bin中执行print(__name__) 输出:__main__ 当 ...
- Python2.7编码问题:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position...解决方法
解决方法: 在Python程序最前面加上以下语句: import sys reload(sys) sys.setdefaultencoding('utf-8')
- ArcGIS超级工具-征地部标准坐标导出导入 SPTOOLS
ArcGIS超级工具简称SPTOOLS 1.1征地部标准坐标导出 界面如下: 操作视频: https://weibo.com/tv/v/HvpNBrfeq?fid=1034:4374872936357 ...
- Mac OS 下三种修改Hosts文件的方法
一.系统偏好设置修改 1.打开系统偏好设置,底部有一个Hosts的快捷入口2.输入ip和hostname后,回车确定,勾选改host即可 二.终端命令行修改 sudo vi /etc/hosts ...
- RabbitMQ JAVA客户端调用例子
1.安装erlang 下载地址:http://www.erlang.org/downloads 设置ERLANG环境变量 2.安装RabbitMQ 下载地址: http://www.rabbitmq. ...
- 转贴:PLSQL中 commit 和 rollback 的区别
PLSQL中 commit 和 rollback 的区别 原文链接:https://blog.csdn.net/jerrytomcat/article/details/82250915 一. comm ...