Oracle数据库分析报告.docx
- 文档编号:25810143
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:47
- 大小:4.98MB
Oracle数据库分析报告.docx
《Oracle数据库分析报告.docx》由会员分享,可在线阅读,更多相关《Oracle数据库分析报告.docx(47页珍藏版)》请在冰豆网上搜索。
Oracle数据库分析报告
2019年Oracle数据库分析报告
2019年6月
数据库作为计算机架构的核心底层软件,从1970年左右发展到现在,已经有五十年左右的时间。
那个时候,软件还并没有很正式的作为单独的产品进行销售,更多的是与硬件和解决方案一起卖给客户。
数据库产品发展到现在,中间经过各种计算载体和计算架构的变化,但数据库的核心重要位置依然没有变化。
同时,我们看到在这个过程中,数据库领域进进出出的厂商有很多,但Oracle的行业领导地位也一直没有发生变化。
如何理解数据库?
对于非IT专业的人,经常会问,数据库有什么用?
数据库,从字面来理解就是保存数据的仓库。
按照正式语言来定义,数据库是按照一定的结构,来组织、存储和管理数据的仓库。
在计算机中,它一般是由一个或者一组文件构成。
如果没有数据库,计算机的数据处理速度(读写的速度)可能就没有这么迅速。
在数据库产品的演进中,其基于的数据模型也在发生变化。
根据数据模型的不同,数据库可以分为关系型数据库和非关系型数据库。
关系型数据库的底层数据模型是关系模型。
非关系型数据库是一个大类,其又可以分为不同种类的数据库。
比如,面向高性能并发读写的key-value数据库,面向海量数据访问的面向文档数据库,面向可扩展性的分布式数据库等。
Oracle的数据库产品。
Oracle的数据库产品是公司最起家的业务。
Oracle的数据库业务发展历程,与全球数据库发展历史交织在一起,也与Oracle整个公司的发展绑定在一起。
Oracle的数据库产品包括两种。
第一个是Oracle自己的数据库产品,也就是OracleDatabase。
第二个是MySQL。
关于MySQL与Oracle的关系,也是从原来的竞争对手,通过Sun这家公司而成为Oracle自己的产品。
目前Oracle的数据产品已经更新到OracleDatabase18c,其提供了一个高性能、高可靠和高安全的平台,可以在云,本地或混合云进行部署。
Oracle数据库面临的竞争。
在数据库领域,商业数据库一直面临着来自于开源数据库的竞争,关系型数据库也面临着来自于非关系型数据库(NoSQL)的竞争。
最近几年,在新的计算环境下,Oracle的数据库产品面临的外部挑战和外部竞争也越来越大。
我们经常看到,亚马逊、阿里、Salesforce等云计算厂商也都在基于开源数据库,研发自主的数据库产品。
商业数据库&开源数据库,关系型数据库和非关系型数据库,未来又将走向何方?
一、研究Oracle数据库的背景
数据库作为计算机架构的核心底层软件,从1970年左右发展到现在,已经有五十年左右的时间。
那个时候,软件还并没有很正式的作为单独的产品进行销售,更多的是与硬件和解决方案一起卖给客户。
数据库产品发展到现在,中间经过各种计算载体和计算架构的变化,但数据库的核心重要位置依然没有变化。
同时,我们看到在这个过程中,数据库领域进进出出的厂商有很多,但Oracle的行业领导地位也一直没有发生变化。
如果我们读过数据库的发展历史,我们也会好奇,是哪些因素造就了Oracle的在数据库领域长达40多年的行业领导地位,并不断保持产品性能的领先?
同时,随着计算场景和计算架构的变化,新的数据库模型不断涌现,对传统关系型数据库带来一定挑战。
未来Oracle的数据库产品又该如何应对?
在目前自主可控的背景下,大家也比较关心国产数据库的发展和应用情况。
国内数据库的参与者主要包括南大通用、武汉达梦、北京凯星辰、人大金仓、广州巨杉等。
与海外主流数据库相比,目前国内的数据库处于什么竞争水平?
通过研究Oracle的数据库产品,可以使我们对数据库这个行业有一个初步的认识,来进一步分析在关键的IT底层环节,未来国内自主可控的路径和可能性。
从Oracle公司自身来看,Oracle可以说是全球软件巨头,体量虽然没有Microsoft那么大,但,
(1)在数据库和应用软件领域,Oracle的确实有其难以撼动的地位。
(2)在IT布局的完备性方面,Oracle应该是继IBM之后(在IBM发展中,其业务发生多次调整和分拆),在全球IT巨头中布局最为完整、最为完善的一家。
我们这里所说的IT完备性主要是基于IT基础产业链角度。
在Oracle的发展过程中,其业务种类越来越多样化,既包括软件、也包括硬件;软件中既包括应用软件、也包括基础软件。
如何更好的理解Oracle的每个业务。
从这篇文章开始,我们将把Oracle的主要业务,做一系列的讲解。
以便于我们对国内相应市场和相应公司的产品做比较。
数据库是Oracle创立之初的业务,也是Oracle其他业务发展的基础。
即使目前,数据库业务收入在Oracle各业务中占比最大,也是Oracle最赚钱的业务之一。
从下面这个数据我们可以看出,数据库业务收入占比在35%-40%左右。
可知,数据库业务对于Oracle而言是非常重要的业务。
二、对数据库的理解
1、如何理解数据库
从IT基础架构来看,数据库是计算机底层架构的核心基础软件。
我们通常说计算机三大基础软件:
操作系统、数据库、中间件。
如果没有数据库,计算机的数据处理速度(读写的速度)可能就没有这么迅速。
对于非IT专业的人,经常会问,数据库有什么用?
数据库,从字面来理解就是保存数据的仓库。
按照正式语言来定义,数据库是按照一定的结构,来组织、存储和管理数据的仓库。
在计算机中,它一般是由一个或者一组文件构成。
在以上的描述中,我们需要关注几个关键词:
结构、组织、存储、管理。
2、为什么需要数据库
从本质来看,计算机解决的是数据计算和数据处理问题。
数据库是计算机应用系统中的一种专门管理数据资源的系统。
数据有多种形式,包括文字、数码、符号、图形、图像以及声音等。
数据是所有计算机系统所要处理的对象。
在计算机发展的过程中,人们也一直在想如何解决计算机产生的大量数据的存储和管理问题。
在早期,一种解决方法是制作文件,即将处理过程编成程序文件,将所涉及的数据按程序要求组织成数据文件,用程序文件来调用。
数据文件与程序文件保持着一定的对应关系。
但在计算机应用快速发展的背景下,这种文件式方法表现出一定的不足。
比如,在这种模式中,数据通用性较差,不便于移植,在不同文件中存储大量重复信息、浪费存储空间、更新不便等。
如果引入文件管理系统,文件管理系统作为应用程序与数据文件的接口,这些应用程序只需要与文件管理系统交互就可以带来一些灵活性。
不过这种方式还是解决不了“数据冗余、处理效率低”的问题,特别是在较大规模的系统中更加明显。
数据库系统便能解决上述问题。
数据库系统不从具体的应用程序出发,而是立足于数据本身的管理,它将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。
Oracle数据库服务器大致分为两个主要部分:
1)Oracleinstance(数据库实例,上半部分)
2)Database(数据库,下半部分)。
Oracle服务器=实例+数据库。
实例=SGA(实例内存)+后台进程
内存=SGA+PGA
SGA=DatabaseBufferCache(数据库高速缓存区缓存)+SharePool(共享池)+RedoLogBuffer(日志缓存区)
用户不能直接连接到数据库,而是用户先发出一个用户进程,用户进程和Oracle服务器发出的服务器进程交互,然后服务器进程再和实例交互,最后实例和底层数据库交互,从而实现用户和数据库的交互。
具体过程看下图:
我们以Oracle数据库为例,来介绍下数据库的体系结构,这样更有利于我们对数据库的理解。
从存储结构上,oracle数据库可以分为物理存储结构和逻辑存储结构。
物理存储结构:
主要由数据文件,控制文件,重做日志文件3种类型的文件组成。
1)数据文件:
存储数据库数据的文件。
数据库中的所有数据最终都保存在数据文件中。
但一个数据文件只对应一个数据库,而一个数据库可以包含多个数据文件。
2)控制文件:
是一个很小的二进制文件,用于维护和描述数据库的物理结构。
控制文件十分重要,存放着数据库中的数据文件和日志文件,一旦该文件受损,数据库将无法正常工作。
3)重做日志文件:
用于记录数据库中所有修改信息的文件,简称日志文件。
该文件是进行数据库备份与恢复的重要手段,可以保证数据库的安全,并且该文件不是唯一存在的,在一个日志文件组中,日志文件最多可以有五个。
除了上述文件,还有参数文件,备份文件,归档重做日志文件,警告、跟踪日志文件。
逻辑存储结构:
主要包括表空间,段,区和数据块,它们的关系为:
数据库=N*表空间=N*段=N*区=N*数据块
1)表空间:
Oracle中最大的逻辑存储结构,与物理上的一个或多个数据文件相对应,大小等于所有数据文件大小的总和。
2)段:
一般是数据库终端用户将处理的最小存储单位,段的数据空间是以数据区为单位的,根据存储数据的特征,可以分为4种类型(数据段,索引段,临时段,回退段)。
3)区:
磁盘空间分配的最小单位,有一个或多个数据块组成。
4)数据块:
用来管理存储空间的最基本单位,也是最小的逻辑存储单位数据块由块头部,表目录,行目录,空闲空间,行空间组成。
从实例结构上,Oracle可以分为进程结构和内存结构。
进程结构:
主要包括:
DBWn进程,LGWR进程,CKPT进程,SMON进程,PMON进程,ARCn进程。
DBWn进程:
(Databasewriter,数据库写入)进程,用于管理数据缓冲区,以便用户总能找到空闲的缓冲区,通过延迟写优化磁盘I/O读写,将所有修改后的缓冲区数据写入数据文件。
LGWR进程:
(logwriter,日志写入)进程,负责管理日志缓冲区的一个后台程序,用于将缓冲区的数据写入磁盘的日志文件。
CKPT进程:
(checkpoint,检查点或检验点)进程,一般在日志切换时自动产生,用于缩短实例恢复所需时间。
SMON进程:
(systemmonitor,系统监控)用于数据库实例出现故障或系统崩溃时,通过将联机重做日志文件中的条目应用于数据文件,执行崩溃恢复,还用于系统重新启动期间清理所有表空间的临时段。
PMON进程:
(processmonitor,进程监控)进程,用于在用户出现故障时执行进程恢复操作,负责清理内存存储区和释放该进程所使用的资源。
ARCO进程:
(archiveprocess,归档)进程,用于将写满的日志文件复制到归档日志文件中,防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。
只有当oracle数据库运行在归档模式下是才会产生ARCN进程。
RECO进程:
(recovery,恢复)进程,存在于分布式数据库系统中,用于自动解决在分布式数据库中出现的事务故障。
内存结构:
主要分为系统全局区(SGA),程序全局区(PGA)。
内存结构是影响数据库性能的主要因素之一。
系统全局区(systemglobalarea)是Oracle为系统分配的一组共享的内存结构,可以包含一个数据库实例的数据或控制信息。
在一个数据库实例中,可以有多个用户进程,这些用户进程可以共享系统全局区的数据。
该区域包括的分区:
:
1)数据缓冲区:
用于存储从磁盘文件中读取的数据,供所有用户共享。
2)日志缓冲区:
用于存储数据库的修改操作信息。
3)共享池:
用于保存最近执行的SQL语句,PL/SQL程序的数据字典信息,它是对SQL语句和PL/SQL程序进行语法分析,编译和执行的内存区域。
4)大型池:
用于提供一个大的缓冲区功数据库的备份与恢复数据使用,是SGA的可选区域。
5)JAVA池:
用于在数据库中支持JAVA的执行。
程序全局区(programglobalarea):
是oracle系统分配给一个进程的私有内存区域。
三、数据库的发展历程
1、数据管理方式的演变
今天我们看到的数据库是随着数据管理方式的演变、成熟和完善之后的产品形态。
数据库其实就是对数据进行存储、管理、处理的载体。
而这些数据的载体也随着数据管理方式的不同而呈现出不同的产品形态。
为了更好地理解数据库在IT领域的角色和作用。
我们可以了解下,在人类历史上,数据管理方式的演变过程。
(1)打卡机
在19世纪末,美国为了解决人口普查问题,利用打孔卡上的孔来表示数据,当时Hollerith发明了分拣机、制表机和记录机,记录完整的数据。
(2)从打卡机到数据卷筒和数据鼓
从1910年到1960年代中期,打卡和制表机是企业办公的前提条件。
与此同时,IBM在大规模定制企业的解决方案,来自IBM托马斯·J·沃森领导其公司组织员工销售其解决方案。
IBM从此发展壮大起来。
(3)文件系统
文件系统被认为是一个与文件柜极为相似的范例。
记录被视为离散的对象,可以放在文件夹(或目录)中。
这些文件夹本身可以放置在其他文件夹中,创建一个终止于包含所有记录和子文件夹的单个目录的层次结构。
但文件系统具有我们上面提到的一些缺陷:
不利于大规模数据的查询和管理。
(4)数据管理系统
20世纪60年代,随着IT技术的发展,以及客户需求的改变,数据库管理系统(DBMS)出现。
DBMS或现代数据库允许用户编组大量的数据。
在存储介质上组织记录,以实现最佳访问。
2、数据库发展历史上的代表人物
在数据库发展历史上,曾经出现了多位大师级人物。
在这里,我们重点提及四位。
这四位分别因为其在数据库领域的贡献,而获得图灵奖。
通过对这四位大师级人物的了解,我们会进一步加深对数据库产品演进和发展进程的理解。
(1)CharlesW.Bachman(查尔斯•巴赫曼):
1973主持设计与开发了最早的网状数据库管理系统IDS
巴赫曼1924年12月11日生于堪萨斯州的曼哈顿。
1948年在密歇根州立大学取得工程学士学位,1950年在宾夕法尼亚大学取得硕士学位。
20世纪50年代在Dow化工公司工作,1961—1970年在通用电气公司任程序设计部门经理,1970—1981年在Honeywell公司任总工程师,同时兼任Cullinet软件公司的副总裁和产品经理。
1973年获得图灵奖。
巴赫曼在数据库领域的贡献,主要体现在两个方面:
第一,1964年,巴赫曼开发了最早期的网状数据库管理系统IDS。
当时巴赫曼还在通用电气公司。
IDS推出之后,成为了当时最受欢迎的数据库之一。
第二,推动了数据库标准的制定。
巴赫曼曾担任美国国家标准学会-标准规划和规定委员会(ANSI-SPARC)的DBMS研究组副主席,并尝试将数据库管理语言标准化。
1971年DBTG小组提出了DBTG报告,描述了网状数据库系统参数接口和协议,以支持与数据无关的概念。
DBTG首次确定了数据库的三层体系结构,明确了数据库管理员DBA(DataBaseAdministrator)的概念,规定了DBA的作用与地位。
(2)EdgarF.Codd(埃德加•科德):
1981年提出关系型数据库
科德被誉为“关系数据库之父”,并因为在数据库管理系统的理论和实践方面的杰出贡献于1981年获图灵奖。
1970年,科德发表题为“大型共享数据库的关系模型”的论文,文中首次提出了数据库的关系模型。
由于关系模型简单明了、具有坚实的数学理论基础,所以一经推出就受到了学术界和产业界的高度重视和广泛响应,并很快成为数据库市场的主流。
20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型,数据库领域当前的研究工作大都以关系模型为基础。
1970年以后,科德继续致力于完善和发展关系理论。
1972年,他提出了关系代数和关系演算,为日后成为标准的结构化查询语言SQL奠定了基础。
(3)JamesGray(詹姆斯•格雷):
1998解决了数据的完整性、安全性、并行性,以及从故障恢复方面发挥了十分关键的作用,提出并实现数据库事务处理
格雷先后在贝尔实验室、IBM、Tandem、DEC等公司工作。
在IBM期间,格雷主持和参与了IMS、SystemR、SQL、DB2等项目的开发。
格雷对数据库领域的贡献主要表现在,数据库基础理论向产品的转化,这个过程中需要解决一系列技术问题。
格雷于1999年5月4日在亚特兰大举行的ACM全国会议上接受图灵奖。
(4)MichaelStonebraker(迈克尔.斯通布雷克):
2014创造了数据库系统一系列奠基性基本概念和实际技术。
MichaelStonebraker在1992年提出对象关系数据库模型,也是SQLServer/Sysbase的奠基人。
1987年左右,Sybase联合微软共同开发SQLServer。
Stonebraker创立了多家数据库公司,其中包括Ingres、Illustra、Cohera、StreamBaseSystems和Vertica等,成功地商业化了他关于数据库技术的开创性工作。
2015年,因“对现代数据库系统概念与实践所做出的基础性贡献,MichaelStonebraker获得2015年图灵奖。
3、数据库:
关系型数据库&非关系型数据库
在数据库产品的演进中,其基于的数据模型也在发生变化。
根据数据模型的不同,数据库可以分为关系型数据库和非关系型数据库。
关系型数据库的底层数据模型是关系模型。
非关系型数据库是一个大类,其又可以分为不同种类的数据库。
比如,面向高性能并发读写的key-value数据库,面向海量数据访问的面向文档数据库,面向可扩展性的分布式数据库等。
(1)关系型数据库
是指以关系数学模型来表示的数据,关系数学模型中以二维表的形式来描述数据。
关系型数据库是存储在计算机上的、可共享的、有组织的关系型数据的集合。
关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
当前主流的关系型数据库有Oracle、DB2、PostgreSQL、MicrosoftSQLServer、MicrosoftAccess、MySQL、浪潮K-DB等。
关系型数据库必须具备ACID特性,ACID分别是:
Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性。
数据库与SQL的关系?
SQL的全称叫StructuredQueryLanguage,中文名叫结构化查询语言。
它是一种特殊目的的编程语言,用来支持数据库查询、更新和管理。
SQL语言是1974年由Boyce和Chamberlin提出的一种介于关系代数与关系演算之间的结构化查询语言,是一个通用的、功能极强的关系型数据库语言。
(2)非关系型数据库
指非关系型的、分布式的、且一般不保证遵循ACID原则的数据存储系统。
非关系型数据库以键值存储,且结构不固定。
每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销。
非关系型数据库,又被称为NoSQL,是NotOnlySQL的简写,意思是说不仅仅是SQL。
下边列出了非关系型数据库的四大分类,分别是键值对存储型、文档存储型、基于列的数据库、图形数据库。
1)键值对存储:
Redis
2)文档存储:
MongoDB
3)基于列的数据库:
Cassandra、HBase
4)图形数据库:
Neo4j
4、事务型数据库&分析型数据库
数据库根据数据处理方式的不同,可以分为事务型数据库和分析型数据库。
两者面向的目标不一样。
目前大部分的数据库是事务型数据库。
数据处理大致可以分成两大类:
联机事务处理OLTP(on-linetransactionprocessing)、联机分析处理OLAP(On-LineAnalyticalProcessing)。
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,记录即时的增、删、改、查,比如在银行存取一笔款,就是一个事务交易。
OLAP即联机分析处理,是数据仓库的核心部心,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
典型的应用就是复杂的动态报表系统。
OLTP实时性要求高,OLTP数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。
OLAP的实时性要求不是很高,很多应用顶多是每天更新一下数据。
我们可以这样来理解:
OLTP是一个在线交易系统,OLAP是一个在线检索和分析系统。
OLTP和OLAP并非解决同一问题,不存在竞争关系,而是相互补充的过程。
四、Oracle的数据库
1、Oracle的数据库产品
Oracle的数据库产品是公司最起家的业务。
Oracle的数据库业务发展历程,与全球数据库发展历史交织在一起,也与Oracle整个公司的发展绑定在一起。
Oracle的数据库产品包括两种。
第一个是Oracle自己的数据库产品,也就是OracleDatabase。
第二个是MySQL。
关于MySQL与Oracle的关系,也是从原来的竞争对手,通过Sun这家公司而成为Oracle自己的产品。
2008年Sun以10亿美元收购MySQL,MySQL总部位于瑞典,在当时,IBM、SAP、Oracle占据企业数据库市场80%以上的市场份额。
与IBM、SAP和甲骨文所不同,MySQL并不推出功能大而全的数据库软件,而是开发能适合中小型企业实际需求的‘小而精’产品,这也是开源数据库软件受到中小型企业用户欢迎的原因之一,功能越简化,便于使用和管理。
2009年,Oracle以74亿美元收购Sun。
2、Oracle数据库的发展历程。
1)Oracle数据发展的历史,要从1970年IBM的一篇论文开始。
1970年6月,IBM的研究员埃德加·考特(EdgarFrankCodd)在CommunicationsofACM上发表了著名的《大型共享数据库数据的关系模型》(ARelationalModelofDataforLargeSharedDataBanks)的论文。
这篇论文可以说是数据库发展历史的转折,因为在这之前,数据库基本是层状和网状的数据库,还没有关系型数据库。
2)对于关系型数据库,IBM在1973年就启动了SystemR项目,来研究关系型数据库的可行性,但并没有推出关系型数据库产品。
因为当时IBM还有一个款销售不错的层次数据库产品IMS。
如果推出关系型数据库产品,势必会对该产品带来影响。
3)1977年6月,LarryEllison与BobMiner和EdOates在硅谷共同创办了一家名为软件开发实验室(SoftwareDevelopmentLaboratories,SDL)的计算机公司(Oracle的前身)。
Oates最先看到埃德加·考特的那篇著名的论文,并推荐Ellison和Miner阅读。
Ellison和Miner预见到数据库软件的很大潜力,于是,SDL开始策划构建可商用的关系型数据库管理系统(RDBMS)。
4)Ellison和Miner根据在上一家公司为FBI做过的一个项目,将它们的数据库产品取名为Oracle,1979年,SDL更名为关系软件有限公司(RelationalSoftware,Inc.,RSI),1982年,为了突出公司的核心产品,RSI再次更名为Oracle。
5)1978年,埃里森的公司在DEC的小型机PDP-11上开发出一个基于关系型数据库的系统,项目代号为Oracle1,但是这个软件从来没有面市。
1979年,又推出了Oracle2,这是计算机软件史上第一个由纯软件公司开发的商用关系型数据库管理系统。
很快,埃里森利用他过去为军方开发项目的关系,将这个数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 分析 报告