版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内容目录1、为什么研究 Oracle 数据库?. - 3 -2、如何理解数据库? . - 5 -3、数据库的发展历程 . - 10 -4、Oracle 的数据库. - 20 -5、Oracle 数据库面临的竞争. - 33 -6、数据库市场格局演化情况 . - 35 -7、总结 . - 42 -风险提示. - 43 -1、为什么研究 Oracle 数据库?数据库作为计算机架构的核心底层软件,从 1970 年左右发展到现在, 已经有五十年左右的时间。那个时候,软件还并没有很正式的作为单独的产品进行销售,更多的是与硬件和解决方案一起卖给客户。数据库产品发展到现在,中间经过各种计算载体和计算架构的变
2、化,但数据库的核心重要位置依然没有变化。同时,我们看到在这个过程中,数据库领域进进出出的厂商有很多,但 Oracle 的行业领导地位也一直没有发生变化。如果我们读过数据库的发展历史,我们也会好奇,是哪些因素造就了Oracle 的在数据库领域长达 40 多年的行业领导地位,并不断保持产品性能的领先?同时,随着计算场景和计算架构的变化,新的数据库模型不断涌现,对传统关系型数据库带来一定挑战。未来 Oracle 的数据库产品又该如何应对?在目前自主可控的背景下,大家也比较关心国产数据库的发展和应用情况。国内数据库的参与者主要包括南大通用、武汉达梦、北京凯星辰、人大金仓、广州巨杉等。与海外主流数据库相
3、比,目前国内的数据库处于什么竞争水平?通过研究 Oracle 的数据库产品,可以使我们对数据库这个行业有一个初步的认识,来进一步分析在关键的 IT 底层环节,未来国内自主可控的路径和可能性。从 Oracle 公司自身来看,Oracle 可以说是全球软件巨头,体量虽然没有 Microsoft 那么大,但,(1)在数据库和应用软件领域,Oracle 的确实有其难以撼动的地位。(2)在 IT 布局的完备性方面,Oracle 应该是继 IBM 之后(在 IBM 发展中,其业务发生多次调整和分拆),在全球 IT巨头中布局最为完整、最为完善的一家。我们这里所说的 IT 完备性主要是基于 IT 基础产业链角
4、度。在 Oracle 的发展过程中,其业务种类越来越多样化,既包括软件、也包括硬件;软件中既包括应用软件、也包括基础软件。如何更好的理解Oracle 的每个业务。从这篇文章开始,我们将把 Oracle 的主要业务, 做一系列的讲解。以便于我们对国内相应市场和相应公司的产品做比较。图表 1:Oracle 的业务布局来源:Gartner、中泰证券研究所图表 2:Oracle 营业收入图表 3:Oracle 净利润450400350300250200150100500收入(亿元,左轴)增速(%,右轴)371372383382370377398 32.8% 25 24.6%22418014426831
5、5.3% 3.7% 4.2% 2.9% 5.6% 0.2% -0.1% 1.8% -3.1%35%35630%.1%2325%20%15%10%5%0%-5%120100806040200净利润(亿元,左轴)增速(%,右轴)10911010099899339.3%26 29.2% 55 5 9.7% 16 9.5% 4.9%43 1.3% 0.3% 34-9 -10.4% 38-59%60%8540%.4%20%6 61.8%0%.3%-20%-40%-60%-80%来源:Wind、中泰证券研究所来源:Wind、中泰证券研究所数据库是 Oracle 创立之初的业务,也是 Oracle 其他业务
6、发展的基础。即使目前,数据库业务收入在 Oracle 各业务中占比最大,也是 Oracle 最赚钱的业务之一。从下面这个数据我们可以看出,数据库业务收入占比在 35%-40%左右。可知,数据库业务对于 Oracle 而言是非常重要的业务。图表 4:Oracle 收入构成(2016)Hardware HardwareSupport,Sales , 5.0%6.0%ProfessionalServices,Database9.0%Software,36.0%Cloud Reveues, 11.0%On-premiseDatabaseApplications,Infrastructur 25.0%e
7、, 6.0%来源:Gartner、中泰证券研究所2、如何理解数据库?如何理解数据库?从 IT 基础架构来看,数据库是计算机底层架构的核心基础软件。我们通常说计算机三大基础软件:操作系统、数据库、中间件。如果没有数据库,计算机的数据处理速度(读写的速度)可能就没有这么迅速。对于非 IT 专业的人,经常会问,数据库有什么用?数据库,从字面来理解就是保存数据的仓库。按照正式语言来定义,数据库是按照一定的结构,来组织、存储和管理数据的仓库。在计算机中, 它一般是由一个或者一组文件构成。在以上的描述中,我们需要关注几个关键词:结构、组织、存储、管理。为什么需要数据库?从本质来看,计算机解决的是数据计算和
8、数据处理问题。数据库是计算机应用系统中的一种专门管理数据资源的系统。数据有多种形式,包括文字、数码、符号、图形、图像以及声音等。数据是所有计算机系统所要处理的对象。在计算机发展的过程中,人们也一直在想如何解决计算机产生的大量数据的存储和管理问题。在早期,一种解决方法是制作文件,即将处理过程编成程序文件,将所涉及的数据按程序要求组织成数据文件,用程序文件来调用。数据文件与程序文件保持着一定的对应关系。但在计算机应用快速发展的背景下,这种文件式方法表现出一定的不足。比如,在这种模式中,数据通用性较差,不便于移植,在不同文件中存储大量重复信息、浪费存储空间、更新不便等。图表 5:文件保存数据的缺点来
9、源:Gartner、中泰证券研究所如果引入文件管理系统,文件管理系统作为应用程序与数据文件的接口, 这些应用程序只需要与文件管理系统交互就可以带来一些灵活性。不过这种方式还是解决不了“数据冗余、处理效率低”的问题,特别是在较大规模的系统中更加明显。数据库系统便能解决上述问题。数据库系统不从具体的应用程序出发, 而是立足于数据本身的管理,它将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。图表 6:数据库管理方式的演化来源:Wind、中泰证券研究所Oracle 数据库服务器大致分为两个主要部分: 1)Ora
10、cle instance (数据库实例,上半部分) 2)Database(数据库,下半部分)。Oracle 服务器=实例+数据库。实例=SGA(实例内存)+后台进程内存=SGA+PGASGA=Database Buffer Cache (数据库高速缓存区缓存)+Share Pool(共享池)+Redo Log Buffer(日志缓存区)图表 7:Oracle 数据库体系结构图来源:Gartner、中泰证券研究所用户不能直接连接到数据库,而是用户先发出一个用户进程, 用户进程和 Oracle 服务器发出的服务器进程交互,然后服务器进程再和实例交互, 最后实例和底层数据库交互,从而实现用户和数据库
11、的交互。具体过程 看下图:图表 8:用户与数据库数据的交互过程来源:Wind、中泰证券研究所我们以 Oracle 数据库为例,来介绍下数据库的体系结构,这样更有利于我们对数据库的理解。从存储结构上,oracle 数据库可以分为物理存储结构和逻辑存储结构。物理存储结构:主要由数据文件,控制文件,重做日志文件 3 种类型的文件组成。数据文件:存储数据库数据的文件。数据库中的所有数据最终都保存在数据文件中。但一个数据文件只对应一个数据库,而一个数据库可以包含多个数据文件。控制文件:是一个很小的二进制文件,用于维护和描述数据库的物理结构。控制文件十分重要,存放着数据库中的数据文件和日志文件, 一旦该文
12、件受损,数据库将无法正常工作。重做日志文件:用于记录数据库中所有修改信息的文件,简称日志文件。该文件是进行数据库备份与恢复的重要手段,可以保证数据库的安全,并且该文件不是唯一存在的,在一个日志文件组中,日志文件最多可以有五个。除了上述文件,还有参数文件,备份文件,归档重做日志文件,警告、跟踪日志文件。图表 1:数据库的两个存储结构来源:Gartner、中泰证券研究所逻辑存储结构:主要包括表空间,段,区和数据块,它们的关系为:数据库=N*表空间=N*段=N*区=N*数据块表空间:Oracle 中最大的逻辑存储结构,与物理上的一个或多个数据文件相对应,大小等于所有数据文件大小的总和。段:一般是数据
13、库终端用户将处理的最小存储单位,段的数据空间是以数据区为单位的,根据存储数据的特征,可以分为 4 种类型(数据段,索引段,临时段,回退段)。区:磁盘空间分配的最小单位,有一个或多个数据块组成。数据块:用来管理存储空间的最基本单位,也是最小的逻辑存储单位数据块由块头部,表目录,行目录,空闲空间,行空间组成。图表 10:数据库的架构来源:Wind、中泰证券研究所从实例结构上,Oracle 可以分为进程结构和内存结构。进程结构:主要包括:DBWn 进程,LGWR 进程,CKPT 进程,SMON 进程,PMON 进程,ARCn 进程。DBWn 进程:(Database writer,数据库写入)进程,
14、用于管理数据缓冲区,以便用户总能找到空闲的缓冲区,通过延迟写优化磁盘 I/O 读写, 将所有修改后的缓冲区数据写入数据文件。LGWR 进程:(log writer,日志写入)进程,负责管理日志缓冲区的一个后台程序,用于将缓冲区的数据写入磁盘的日志文件。CKPT 进程:(check point,检查点或检验点)进程,一般在日志切换时自动产生,用于缩短实例恢复所需时间。SMON 进程:(system monitor,系统监控)用于数据库实例出现故障或系统崩溃时,通过将联机重做日志文件中的条目应用于数据文件,执行崩溃恢复,还用于系统重新启动期间清理所有表空间的临时段。PMON 进程:(process
15、 monitor,进程监控)进程,用于在用户出现故障时执行进程恢复操作,负责清理内存存储区和释放该进程所使用的资源。ARCO 进程:(archive process,归档)进程,用于将写满的日志文件复制到归档日志文件中,防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。只有当 oracle 数据库运行在归档模式下是才会产生ARCN 进程。RECO 进程:(recovery,恢复)进程,存在于分布式数据库系统中,用于自动解决在分布式数据库中出现的事务故障。内存结构:主要分为系统全局区(SGA),程序全局区(PGA)。内存结构是影响数据库性能的主要因素之一。系统全局区(system gl
16、obal area)是 Oracle 为系统分配的一组共享的内存结构,可以包含一个数据库实例的数据或控制信息。在一个数据库实例中,可以有多个用户进程,这些用户进程可以共享系统全局区的数据。该区域包括的分区:数据缓冲区:用于存储从磁盘文件中读取的数据,供所有用户共享。日志缓冲区:用于存储数据库的修改操作信息。共享池:用于保存最近执行的 SQL 语句,PL/SQL 程序的数据字典信息,它是对 SQL 语句和PL/SQL 程序进行语法分析,编译和执行的内存区域。大型池:用于提供一个大的缓冲区功数据库的备份与恢复数据使用,是 SGA 的可选区域。JAVA 池:用于在数据库中支持 JAVA 的执行。程序
17、全局区(program global area):是 oracle 系统分配给一个进程的私有内存区域。3、数据库的发展历程数据管理方式的演变。今天我们看到的数据库是随着数据管理方式的演变、成熟和完善之后的产品形态。数据库其实就是对数据进行存储、管理、处理的载体。而这些数据的载体也随着数据管理方式的不同而呈现出不同的产品形态。为了更好地理解数据库在 IT 领域的角色和作用。我们可以了解下,在人类历史上,数据管理方式的演变过程。打卡机。在 19 世纪末,美国为了解决人口普查问题,利用打孔卡上的孔来表示数据,当时 Hollerith 发明了分拣机、制表机和记录机,记录完整的数据。图表 11:数据库的
18、演进来源:IDC、中泰证券研究所从打卡机到数据卷筒和数据鼓。从 1910 年到 1960 年代中期,打卡和制表机是企业办公的前提条件。与此同时,IBM 在大规模定制企业的解决方案,来自 IBM 托马斯J沃森领导其公司组织员工销售其解决方案。IBM 从此发展壮大起来。图表 12:数据库的演进来源:IDC、中泰证券研究所文件系统。文件系统被认为是一个与文件柜极为相似的范例。记录被视为离散的对象,可以放在文件夹(或目录)中。这些文件夹本身可以放置在其他文件夹中,创建一个终止于包含所有记录和子文件夹的单个目录的层次结构。但文件系统具有我们上面提到的一些缺陷:不利于大规模数据的查询和管理。数据管理系统。
19、20 世纪 60 年代,随着 IT 技术的发展,以及客户需求的改变,数据库管理系统(DBMS)出现。DBMS 或现代数据库允许用户编组大量的数据。在存储介质上组织记录,以实现最佳访问。图表 13:数据库管理系统(DBMS)来源:IDC、中泰证券研究所在数据库发展历史上,曾经出现了多位大师级人物。在这里,我们重点提及四位。这四位分别因为其在数据库领域的贡献,而获得图灵奖。通过对这四位大师级人物的了解,我们会进一步加深对数据库产品演进和发展进程的理解。图表 14:数据库界的四位图灵奖获得者来源:IDC、中泰证券研究所第一位:Charles W. Bachman(查尔斯 巴赫曼):1973 主持设计
20、与开发了最早的网状数据库管理系统 IDS。巴赫曼 1924 年 12 月 11 日生于堪萨斯州的曼哈顿。1948 年在密歇根州立大学取得工程学士学位,1950 年在宾夕法尼亚大学取得硕士学位。20 世纪 50 年代在 Dow 化工公司工作,19611970 年在通用电气公司任程序设计部门经理,19701981 年在 Honeywell 公司任总工程师,同时兼任 Cullinet 软件公司的副总裁和产品经理。1973 年获得图灵奖。巴赫曼在数据库领域的贡献,主要体现在两个方面:第一,1964 年,巴赫曼开发了最早期的网状数据库管理系统 IDS。当时巴赫曼还在通用电气公司。IDS 推出之后,成为了
21、当时最受欢迎的数据库之一。第二,推动了数据库标准的制定。巴赫曼曾担任美国国家标准学会-标准规划和规定委员会(ANSI-SPARC)的 DBMS 研究组副主席,并尝试将数据库管理语言标准化。1971 年 DBTG 小组提出了DBTG 报告,描述了网状数据库系统参数接口和协议,以支持与数据无关的概念。DBTG 首 次 确定 了 数据 库的三 层 体系 结 构, 明确了 数 据库 管 理员DBA(DataBase Administrator)的概念,规定了 DBA 的作用与地位。第二位:Edgar F. Codd(埃德加 科德)1981 年提出关系型数据库。科德被誉为“关系数据库之父”,并因为在数据
22、库管理系统的理论和实践方面的杰出贡献 于 1981 年获图灵奖。1970 年,科德发表题为“大型共享数据库的关系模型”的论文,文中首次提出了数据库的关系模型。由于关系模型简单明了、具有坚实 的数学理论基础,所以一经推出就受到了学术界和产业界的高度重视和广泛响应,并很快成为数据库市场的主流。20 世纪 80 年代以来,计算机厂商推出的数据库 管理系统几乎都支持关系模型,数据库领域当前的研究工作大都以关系模型为基础。1970 年以后,科德继续致力于完善和发展关系理论。1972 年,他提出了关系代数和关系演算,为日后成为标准的结构化查询语言 SQL 奠定了基础。第三位:James Gray(詹姆斯
23、格雷) 1998 解决了数据的完整性、安全性、并行性,以及从故障恢复方面发挥了十分关键的作用,提出并实现数据库事务处理。格雷先后在贝尔实验室、IBM、Tandem、DEC 等公司工作。在 IBM 期间,格雷主持和参与了 IMS、System R、SQL、DB2 等项目的开发。格雷对数据库领域的贡献主要表现在,数据库基础理论向产品的转化,这个过程中需要解决一系列技术问题。格雷于 1999 年 5 月 4 日在亚特兰大举行的 ACM 全国会议上接受图灵奖。第四位:Michael Stonebraker (迈克尔.斯通布雷克) 2014 创造了数据库系统一系列奠基性基本概念和实际技术。Michael
24、 Stonebraker 在 1992 年提出对象关系数据库模型,也是 SQL Server/Sysbase 的奠基人。1987 年左右,Sybase 联合微软共同开发SQL Server。Stonebraker 创立了多家数据库公司,其中包括 Ingres、Illustra、Cohera、StreamBase Systems 和 Vertica 等,成功地商业化了他关于数据库技术的开创性工作。2015 年,因“对现代数据库系统概念与实践所做出的基础性贡献,Michael Stonebraker 获得 2015 年图灵奖。图表 15:历届图灵奖获得者(1)年份中文名英文名贡献领域1966年艾伦
25、佩利Alan J. Perlis高级程序设计技巧,编译器构造1967年莫里斯威尔克斯Maurice V. Wilkes存储过程式计算机EDSAC,EDSAC 2,程序库1968年理查德卫斯里汉明Richard Hamming数值方法,自动编码系统,错误检测和纠错码1969年马文闵斯基Marvin Minsky人工智能1970年詹姆斯维尔金森James H. Wilkinson数值分析,线性代数,倒退错误分析1971年约翰麦卡锡John McCarthy人工智能1972年艾兹格迪科斯彻Edsger Dijkstra程序设计语言的科学与艺术1973年查理士巴赫曼Charles W. Bachman
26、数据库技术1974年高德纳Donald E. Knuth算法分析、程序设计语言的设计、程序设计1975年艾伦纽厄尔赫伯特西蒙Allen NewellHerbert A. Simon人工智能,人类认知心理学和列表处理(listprocessing)1976年迈克尔拉宾达纳斯科特Michael O. RabinDana S. Scott非确定性自动机1977年约翰巴克斯John Backus高级编程系统,程序设计语言规范的形式化定义1978年罗伯特弗洛伊德Robert W. Floyd设计高效可靠软件的方法学1979年肯尼斯艾佛森Kenneth E. Iverson程序设计语言和数学符号,互动系统
27、的设计,运用APL进行教学,程序设计语言的理论与实践1980年东尼霍尔C. Antony R. Hoare程序设计语言的定义与设计1981年埃德加科德Edgar F. Codd数据库系统,尤其是关系型数据库1982年史提芬古克Stephen A. Cook计算复杂度1983年肯汤普逊丹尼斯里奇Ken ThompsonDennis M. RitchieUNIX操作系统和C语言1984年尼克劳斯维尔特Niklaus Wirth程序设计语言设计、程序设计1985年理查德卡普Richard M. Karp算法理论,尤其是NP-完全性理论1986年约翰霍普克洛夫特罗伯特塔扬John HopcroftRo
28、bert Tarjan算法和数据结构的设计与分析1987年约翰科克John Cocke编译理论,大型系统的体系结构,及精简指令集(RISC)计算机的开发1988年伊凡苏泽兰Ivan Sutherland计算机图形学1989年威廉卡韩William Morton Kahan数值分析1990年费尔南多考巴托Fernando J. CorbatCTSS和Multics1991年罗宾米尔纳Robin MilnerLCF,ML语言,CCS1992年巴特勒兰普森Butler W. Lampson分布式,个人计算环境1993年尤里斯哈特马尼斯理查德斯特恩斯Juris HartmanisRichard E.
29、Stearns计算复杂度理论1994年爱德华费根鲍姆拉吉瑞迪Edward FeigenbaumRaj Reddy大规模人工智能系统1995年曼纽尔布卢姆Manuel Blum计算复杂度理论,及其在密码学和程序校验上的应用1996年阿米尔伯努利Amir Pnueli时序逻辑,程序与系统验证1997年道格拉斯恩格尔巴特Douglas Engelbart互动计算1998年詹姆斯尼古拉格雷James Gray数据库与事务处理1999年弗雷德里克布鲁克斯Frederick P.Brooks,Jr.计算机体系结构,操作系统,软件工程来源:新浪、机器之心、中泰证券研究所图表 16:历届图灵奖获得者(2)年份
30、中文名英文名贡献领域2000年姚期智Andrew Chi-Chih Yao计算理论,包括伪随机数生成,密码学与通信复杂度2001年奥利-约翰达尔克利斯登奈加特Ole-Johan DahlKristen Nygaard面向对象编程2002年罗纳德李维斯特阿迪萨莫尔伦纳德阿德曼Ronald L. Rivest Adi ShamirLeonard M. Adleman公钥密码学(RSA加密算法)2003年艾伦凯Alan Kay面向对象编程2004年文特瑟夫罗伯特卡恩Vinton G. CerfRobert E. KahnTCP/IP协议2005年彼得诺尔Peter NaurAlgol 60语言200
31、6年法兰西斯艾伦Frances E. Allen优化编译器2007年爱德蒙克拉克艾伦爱默生约瑟夫斯发基斯Edmund M. Clarke Allen EmersonJoseph Sifakis开发自动化方法检测计算机硬件和软件中的设计错误2008年芭芭拉利斯科夫Barbara Liskov编程语言和系统设计的实践与理论2009年查尔斯萨克尔Charles Thacker帮助设计、制造第一款现代PC2010年莱斯利瓦伦特Leslie Valiant对众多计算理论所做的变革性的贡献2011年朱迪亚珀尔Judea Pearl通过概率论和因果推理(英语:Causal reasoning)对人工智能领域
32、作出的根本性贡献2012年莎菲戈德瓦塞尔希尔维奥米卡利Shafi Goldwasser Silvio Micali在密码科学领域里,于复杂理论的基础之上,做出变革性工作;并领先发展出新的具有数学可证明性的有效验证机制。2013年莱斯利兰波特Leslie Lamport对于分布式及并形系统的理论与实践具有基础性贡献, 尤其是诸如因果逻辑时序(causality and logical clocks)、安全性与存活度(safety and liveness)、复制状态机(replicated state machines)及循序一致性(英语:sequential consistency)(sequ
33、ential consistency)等理论概念的发明。2014年迈克尔斯通布雷克Michael Stonebraker对现代数据库的概念和实践作出的根本性贡献2015年惠特菲尔德迪菲Whitfield Diffie andMartin Hellman发明迪菲-赫尔曼密钥交换,对公开密钥加密技术有重大贡献。2016年蒂姆伯纳斯李Tim Berners-Lee万维网的发明者2017年约翰轩尼诗大卫帕特森John HennessyDavid Patterson开发了RISC微处理器并且让这一概念流行起来的工程2018年约舒亚本希奥杰弗里欣顿扬莱坎Yoshua Bengio Geoffrey Hin
34、ton Yann LeCun因在人工智能深度学习方面的贡献:Hinton最重要的贡献来自他1986年发明反向传播的论文“Learning Internal Representations by Error Propagation ”,1983年发明的玻尔兹曼机(Boltzmann Machines), 以及2012年对卷积神经网络的改进。Bengio的贡献主要在1990年代发明的Probabilistic models of sequences。他把神经网络和概率模型(例如隐马尔可夫模型)结合在一起。Yann LeCun的代表贡献之一是卷积神经网络。来源:新浪、机器之心、中泰证券研究所数据库:
35、关系型数据库&非关系型数据库。在数据库产品的演进中,其基于的数据模型也在发生变化。根据数据模型的不同,数据库可以分为关系型数据库和非关系型数据库。关系型数据库的底层数据模型是关系模型。非关系型数据库是一个大类,其又可以分为不同种类的数据库。比如,面向高性能并发读写的 key-value 数据库,面向海量数据访问的面向文档数据库,面向可扩展性的分布式数据库等。图表 17:数据库的演进来源:IDC、中泰证券研究所关系型数据库,是指以关系数学模型来表示的数据,关系数学模型中以二维表的形式来描述数据。关系型数据库是存储在计算机上的、可共享的、有组织的关系型数据的集合。关系模型就是指二维表格模型,因而一
36、个关系型数据库就是由二维表及 其之间的联系组成的一个数据组织。当前主流的关系型数据库有 Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL、浪潮K-DB 等。关系型数据库必须具备 ACID 特性,ACID 分别是:Atomic 原子性,Consistency 一致性,Isolation 隔离性,Durability 持久性。图表 18:关系型数据库来源:Wind、中泰证券研究所数据库与 SQL 的关系?SQL 的全称叫Structured Query Language,中文名叫结构化查询语言。它是一种特殊目的的编程
37、语言,用来支持数据库查询、更新和管理。SQL 语言是 1974 年由 Boyce 和 Chamberlin 提出的一种介于关系代数与关系演算之间的结构化查询语言,是一个通用的、功能极强的关系型数据库语言。非关系型数据库:指非关系型的、分布式的、且一般不保证遵循 ACID 原则的数据存储系统。非关系型数据库以键值存储,且结构不固定。每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销。图表 2:非关系型数据库来源:Wind、中泰证券研究所图表 3:关系数据库与非关系数据库来源:Wind、中泰证券研究所非关系型数据库,又被称为 N
38、oSQL,是 Not Only SQL 的简写,意思是说不仅仅是 SQL。下边列出了非关系型数据库的四大分类,分别是键值对存储型、文档存储型、基于列的数据库、图形数据库。1)键值对存储:Redis 2)文档存储:MongoDB3)基于列的数据库:Cassandra、HBase 4)图形数据库:Neo4j图表 19:非关系型数据库的种类类型部分代表特点列存储Hbase Cassandra Hypertable顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数 据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。文档存储MongoDB CouchDB文档存储一般用类
39、似json的格式存储, 存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。key-value存储Tokyo Cabinet / Tyrant Berkeley DB MemcacheDBRedis可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)图存储Neo4J FlockDB图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。对象存储db4oVersant通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。xml数据库Berkeley DB XMLBaseX高效
40、的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。来源:Wind、中泰证券研究所图表 20:关系型数据库和非关系型数据库的对比区别关系型数据库非关系型数据库(Nosql)存储方式表格式存储。存储在表的行和列中。他们之间很容易关联协作存储,提取数据很方便而Nosql数据库则与其相反,他是大块的组合在一起。通常存储在数据集中,就像文档、键值 对或者图结构。存储结构结构化数据。数据表都预先定义了结构(列的定义),结构描述了数据的形式和内容。这一点对数据建模至关重要,虽然预定义结构带来了可靠性和稳定性(优点),但是修改这些数据比较困难(缺点)。而Nosql数据库基于动态结构,
41、使用于非结构化数据。因为Nosql数据库是动态结构,可以很容易适应数据类型和结构的变化。存储规范数据存储为了更高的规范性,把数据分割为最小的关系表以避免重复,获得精简的空间利用。虽然管理起来很清晰,但是单个操作设计到多张表的时候,数据管理就显得有点麻烦。而Nosql数据存储在平面数据集中,数据经常可能会重复。单个数据库很少被分隔开,而是存储成了一个整体,这样整块数据更加便于读写。存储扩展系型数据库是纵向扩展,也就是说想要提高处理能力,要使用速度更快的计算机。因为数据存储在关系表中,操作的性能瓶颈可能涉及到多个表,需要通过提升计算机性能来克服。虽然有很大的扩展空间,但是最终会达到纵向扩展的上限而
42、Nosql数据库是横向扩展的,它的存储天然就是分布式的,可以通过给资源池添加更多的普通数据库服务器来分担负载。查询方式结构化查询语言来操作数据库(就是我们通常说的SQL)。关系型数据库使用预定义优化方式(比如索引)来加快查询操作以块为单元操作数据,使用的是非结构化查询语言(UnQl),没有标准的Nosql中存储文档的ID,更简单更精确的数据访问模式。事务遵循ACID规则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))遵循BASE原则(基本可用(BasicallyAvailble)、软/柔性事务(Soft-state
43、 )、最终一致性(Eventual Consistency)性能为了维护数据的一致性付出了巨大的代价,读写性能比较差。在面对高并发读写性能非常差,面对海量数据的时候效率非常低。Nosql存储的格式都是key-value类型的,并且存储在内存中,非常容易存储,而且对于数据的一致性是弱要求。Nosql无需sql的解析,提高了读写性能。授权方式关系型数据库通常有SQL Server,Mysql, Oracle。大多数的关系型数据库都是付费的并且价格昂贵,成本较大。主流的Nosql数据库有redis,memcache, MongoDb。而Nosql数据库通常都是开源的。来源:Wind、中泰证券研究所事
44、务型数据库&分析型数据库。数据库根据数据处理方式的不同,可以分为事务型数据库和分析型数据库。两者面向的目标不一样。目前大部分的数据库是事务型数据库。图表 21:OLTP 和 OLAP 的区别OLTPOLAP用户操作人员,低层管理人员决策人员,高级管理人员功能日程操作处理分析决策DB设计面向应用面向主题数据当前的,最新的,细节的,二维的,分离的历史的,聚焦的,多维的,集成的,统一的存取读/写数十条记录读上百万条记录工作单位简单的事务复杂的查询用户数上千个上百万个DB大小100MB-GB100GB-TB时间要求具有实时性对时间的要求不严格主要应用数据库数据仓库来源:Wind、中泰证券研究所数据处理
45、大致可以分成两大类:联机事务处理 OLTP(on-line transaction processing)、联机分析处理 OLAP(On-Line Analytical Processing)。OLTP 是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP 是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLTP 是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,记录即时的增、删、改、查,比如在银行存取一笔款,就是一个事务交易。OLAP 即联机分析处理,是数据仓库的核心部心,支持复杂的分析操作, 侧重决策支持,
46、并且提供直观易懂的查询结果。典型的应用就是复杂的动态报表系统。OLTP 实时性要求高,OLTP 数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。OLAP 的实时性要求不是很高,很多应用顶多是每天更新一下数据。我们可以这样来理解:OLTP 是一个在线交易系统,OLAP 是一个在线检索和分析系统。OLTP 和OLAP 并非解决同一问题,不存在竞争关系, 而是相互补充的过程。图表 22:OLTP 和 OLAP 的区别来源:Wind、中泰证券研究所4、Oracle 的数据库Oracle 的数据库产品。Oracle 的数据库产品是公司最起家的业务。Oracle 的数据库业务发展历程,与全
47、球数据库发展历史交织在一起,也与 Oracle 整个公司的发展绑定在一起。Oracle 的数据库产品包括两种。第一个是 Oracle 自己的数据库产品, 也就是 Oracle Database。第二个是 MySQL。关于 MySQL 与 Oracle 的关系,也是从原来的竞争对手,通过 Sun 这家公司而成为 Oracle 自己的产品。2008 年Sun 以 10 亿美元收购MySQL,MySQL 总部位于瑞典,在当时, IBM、SAP、Oracle 占据企业数据库市场 80%以上的市场份额。与 IBM、SAP 和甲骨文所不同,MySQL 并不推出功能大而全的数据库软件,而是开发能适合中小型企
48、业实际需求的小而精产品,这也是开源数据库软件受到中小型企业用户欢迎的原因之一,功能越简化,便于使用和管理。2009 年,Oracle 以 74 亿美元收购Sun。图表 23:Oracle 的数据库产品来源:Wind、中泰证券研究所Oracle 数据库的发展历程。Oracle 数据发展的历史,要从 1970 年 IBM 的一篇论文开始。1970 年 6 月, IBM 的研究员埃德加 考特( Edgar Frank Codd ) 在Communications of ACM 上发表了著名的大型共享数据库数据的关系模型(A Relational Model ofData for Large Shar
49、ed Data Banks)的论文。这篇论文可以说是数据库发展历史的转折,因为在这之前,数据库基本是层状和网状的数据库,还没有关系型数据库。对于关系型数据库,IBM 在 1973 年就启动了System R 项目,来研究关系型数据库的可行性,但并没有推出关系型数据库产品。因为当时IBM 还有一个款销售不错的层次数据库产品IMS。如果推出关系型数据库产品,势必会对该产品带来影响。3)1977 年 6 月,Larry Ellison 与Bob Miner 和 Ed Oates 在硅谷共同创办了一家名为软件开发实验室(Software Development Laboratories, SDL)的计
50、算机公司(Oracle 的前身)。Oates 最先看到埃德加考特的那篇著名的论文,并推荐 Ellison 和 Miner 阅读。Ellison 和 Miner 预见到数据库软件的很大潜力,于是,SDL 开始策划构建可商用的关系型数据库管理系统(RDBMS)。4)Ellison 和 Miner 根据在上一家公司为 FBI 做过的一个项目,将它们的数据库产品取名为 Oracle,1979 年,SDL 更名为关系软件有限公司(Relational Software,Inc.,RSI),1982 年,为了突出公司的核心产品,RSI 再次更名为 Oracle。5)1978 年,埃里森的公司在 DEC 的
51、小型机 PDP-11 上开发出一个基于关系型数据库的系统,项目代号为 Oracle1,但是这个软件从来没有面市。1979 年,又推出了Oracle2,这是计算机软件史上第一个由纯软件公司开发的商用关系型数据库管理系统。很快,埃里森利用他过去为军方开发项目的关系,将这个数据库软件卖给了美国空军。图表 4:Oracle 数据库发展历程(2)来源:Wind、中泰证券研究所图表 24:Oracle 数据库发展历程(1)来源:Wind、中泰证券研究所图表 25:Oracle 数据库发展历程(3)来源:Wind、中泰证券研究所经历过以上几个重要发展阶段,Oracle 数据库的下游需求逐步扩大,即使在竞争对
52、手产品不断涌现的情况下,Oracle 的数据库依然是市场份额最大的产品。随着 IT 架构、终端设备形态的不断变化和迁移,Oracle 的数据库产品也在不断更新迭代。从 Oracle 数据库产品服务的计算载体的形态来看, 经历了小型机与大型机、客户机/服务器(PC 与服务器)、互联网架构/ 瘦客户端、数据库云/大数据四个阶段。目前 Oracle 的数据产品已经更新到 18c。从以往 Oracle 更新的版本来看,我们可以将其划分为几个不同时代的产品。图表 26:Oracle 数据不同版本的演化来源:Wind、中泰证券研究所图表 27:Oracle 数据库推出的版本版本年份特性Oracle2197
53、9年公司推出Oracle 2,这是计算机软件史上第一个由纯软件公司开发的商用关系型数据库管理系统。同年,将该软件卖给了军方,公司改名为“关系软件公司”(Relational Software Inc,RSI)。Oracle31983年3月Miner和Scott历尽艰辛用C语言重新写就这一版本。C编译器便宜而又有效,还有很好的移植性。从此,ORACLE产品有了一个关键的特性:可移植性。Oracle41984年10月产品的稳定性总算得到了得到了一定的增强,用Miner的话说,达到了“工业强度”。Oracle51985年这个版本算得上是ORACLE数据库的稳定版本。这也是首批可以在Client/Se
54、rver模式下运行的的RDBMS产品。Oracle61988年由于过去的版本在性能上屡受诟病,Miner带领着工程师对数据库核心进行了重新 的改写。引入了行级锁(row-level locking)这个重要的特性,也就是说,执行写入的事务处理只锁定受影响的行,而不是整个表。第6版还引入了联机热备份功能,使数据库能够在使用过程中创建联机的备份,这极大地增强了可用性。Oracle71992年Oracle 7是ORACLE真正出色的产品,取得了巨大的成功。这个版本的出现真是好时机,当时Sybase公司的数据库已经占据了不少份额,ORACLE借助这一版本的成 功,一举击退了Sybase。Oracle8
55、1997年6月ORACLE8支持面向对象的开发及新的多媒体应用,这个版本也为支持Internet、网络计算等奠定了基础。同时这一版本开始具有同时处理大量用户和海量数据的特 性。Oracle8i1998年9月“i”代表Internet,这一版本中添加了大量为支持Internet而设计的特性。这一版本为数据库用户提供了全方位的Java支持。ORACLE 8i成为第一个完全整合了本地Java运行时环境的数据库,用Java就可以编写ORACLE的存储过程。Oracle9i2001年6月在ORACLE 9i的诸多新特性中,最重要的就是Real Application Clusters(RAC)了。说起O
56、RACLE集群服务器,早在第五版的时候,ORACLE就开始开发ORACLE并 行服务器(ORACLE Parallel Server ,OPS),并在以后的版本中逐渐的完善了其功能,Oracle10g2003年9月“g”代表“grid ,网格”。这一版的最大的特性就是加入了网格计算的功能。(Oracle绝对是造概念的能手,只要是能引领出新的卖点,出些新概念,也是值得的)。Oracle11g2007年11月11g是甲骨文公司30年来发布的最重要的数据库版本。11g实现了信息生命周期管(Information Lifecycle Management)等多项创新。Oracle12c2013年6月1
57、2c的c是cloud,也就是代表云计算的意思。12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)Oracle18c2018年自治数据库来源:Wind、中泰证券研究所阶段一:Oracle 9i 之前,支持传统的 C-S 架构Oracle 的数据库产品主要解决的是数据库的高可靠性问题(注:衡量数据库产品的核心指标在于五个方面:高可用性(High Availability)、高性能(High Performance)、高可管理(High Manageabil
58、ity)、高安全(High Security Ability)、高数据服务能力(High Data Service Ability)五个领域)。Oracle 数据库核心优势在于高效、安全、稳定等。图表 28:支撑 C-S 架构的数据库来源:Wind、中泰证券研究所阶段二:9i-12c,支持互联网计算环境从 Oracle 9i 开始,Oracle 引入新的技术:Oracle RAC,RAC 是指 real application clusters,译为“实时应用集群”。RAC 是 Oracle 新版数据库中采用的一项新技术,是高可用性的一种,也是 Oracle 数据库支持网格计算环境的核心技术。
59、用来在集群环境下,实现多机共享数据库,以保证应用的高可用性。同时可以自动实现并行处理及负载均衡,并能实现数据库在故障时的容错和无断点恢复。它是 Oracle 数据库支持网络计算环境的核心技术。图表 29:Oracle 数据库的 RAC 技术来源:公司官网、中泰证券研究所Oracle RAC 主要支持 Oracle9i、10g、11g,12C 版本,可以支持 24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统, 并且自由部署应用,无需修改代码。图表 31:支撑网络数据的数据库来源:Wind、中泰证券研究所从 Oracle 12c 开始,Oracle 逐步开始推出Optio
60、ns 产品线,推动企业数据中心的整合、数据集中和网格计算的发展。这一段 Oracle 的数据库进一步强化了数据的高可靠性,同时重点发展的地方在数据库的速度和应对云计算对数据库的需求。(1)Exadata 数据库一体机和内存选件(in-memory Option)的推出,用来提高性能、简化架构,提高数据库的速度。(2)Oracle 12c 的多租户和 DBaaS 则让数据库混合云成为可能,客户可以在不同的云环境中进行切换。阶段三:12c 之后,支持云计算环境,进入自治时代12c 引入了 CDB 与 PDB 的新特性,在 Oracle 12C 数据库引入的多租用户环境(Multitenant En
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广西河池大化瑶族自治县实验中学德育工作辅助人员招聘1人备考题库带答案详解(达标题)
- 汽车底盘设计与结构分析资料
- 企业财务分析及报表编制实战
- 越野车传动系统设计与维护指南
- 企业废水零排放技术改造项目方案
- 高考数学基础知识点强化方案
- 香奈儿品牌营销策略案例分析报告
- 流体力学雷诺数计算工具及公式
- 北师大版小学一年级数学第一单元测试题
- 绿色施工方案
- 建筑工程扩大劳务协议书模板
- 2025年山东烟台高三一模高考生物试卷试题(含答案)
- 合同付款补充协议书
- 异地执行申请书
- 物业维修电工知识培训
- 个人垫资借款合同
- 619冀教版科学六上《美丽的星空》
- 《全球供应链管理》课件
- 高一 花城版 音乐鉴赏 第四单元第一节《茉莉花的芬芳》课件
- 经皮椎体成形术患者的护理查房
- Unit4+My+space++Reading++The+1940s+House+课件高中英语沪教版(2020)必修第一册
评论
0/150
提交评论