常见NoSQL数据库的应用场景是怎么样的

常见NoSQL数据库的应用场景是怎么样的,第1张

文档数据

源起:受Lotus Notes启发。

数据模型:包含了key-value的文档集合

例子:CouchDB, MongoDB

优点:数据模型自然,编程友好,快速开发,web友好,CRUD。

图数据库

源起: 欧拉和图理论。

数据模型:节点和关系,也可处理键值对。

例子:AllegroGraph, InfoGrid, Neo4j

优点:解决复杂的图问题。

关系数据库

源起: E F Codd 在A Relational Model of Data for Large Shared Data Banks提出的

数据模型:各种关系

例子:VoltDB, Clustrix, MySQL

优点:高性能、可扩展的OLTP,支持SQL,物化视图,支持事务,编程友好。

对象数据库

源起:图数据库研究

数据模型:对象

例子:Objectivity, Gemstone

优点:复杂对象模型,快速键值访问,键功能访问,以及图数据库的优点。

Key-Value数据库

源起:Amazon的论文 Dynamo 和 Distributed HashTables。

数据模型:键值对

例子:Membase, Riak

优点:处理大量数据,快速处理大量读写请求。编程友好。

BigTable类型数据库

源起:Google的论文 BigTable。

数据模型:列簇,每一行在理论上都是不同的

例子:HBase, Hypertable, Cassandra

优点:处理大量数据,应对极高写负载,高可用,支持跨数据中心, MapReduce。

数据结构服务

源起:

数据模型:字典 *** 作,lists, sets和字符串值

例子:Redis

优点:不同于以前的任何数据库

网格数据库

源起:数据网格和元组空间研究。

数据模型:基于空间的架构

例子:GigaSpaces, Coherence

优点:适于事务处理的高性能和高扩展性

1什么是数据库呢?

每个人家里都会有冰箱,冰箱是用来干什么的?冰箱是用来存放食物的地方。

同样的,数据库是存放数据的地方。正是因为有了数据库后,我们可以直接查找数据。例如你每天使用余额宝查看自己的账户收益,就是从数据库读取数据后给你的。

你可能会问了:我的数据就存放在自己电脑的excel表里就可以了,为什么还要搞个数据库呢?

这是因为数据库比excel有更多的优势。数据库可以存放大量的数据,允许很多人同时使用里面的数据。

举个例子你就明白了,excel好比是一个移动硬盘,你使用了这个移动硬盘其他人就用不了了。

数据库好比是网盘,很多人可以同时访问里面里的数据。

而且网盘比移动硬盘能放更多的数据。

2数据库是如何存放数据的?

数据库有很多种类,这里我们重点学习使用最广泛的关系数据库。

关系数据库是由多个表组成的。如果你用过Excel,就会知道Excel是一张一张的二维表。每个表都是由行和列组成的。

同样的,关系数据库里存放的也是一张一张的表,只不过各个表之间是有联系的。所以,简单来说:

关系数据库=多张表+各表之间的关系

应的,学会关系数据库我们只要掌握两点就可以:

1)多张表里面,每一张表的结构

2)各表之间的关系

我们接下来分别来看看这两个知识点。

1) 表的结构

表的结构是指要了解关系数据库中每张表长什么样。

每个表由一个名字标识。表包含带有列名的列,和记录数据的行。我们举个具体的例子就一目了然了。

下面里的表名是:学生表,记录了每个学生的信息。

表中每一列都有一个名字来标识出该列,这个表里有4列,列名分别是学号,姓名,出生日期,性别。从列名上你也可以知道这一列对应记录的是什么数据。

表的每一行里记录着数据。这里的一行表示该名学生的信息,比如第2行是学号0002学生的信息,他的姓名是猴子,出生日期是1990-12-21,性别是女。

2)各表之间的关系

关系数据库是由多张表组成的,里是存放在学校数据库里的4张表。

你能发现下面这4张表之间有什么关系吗?

什么是关系呢?

你是你爸爸的儿子,你是你的儿子的爸爸,这就是生活中的关系。其实,数据之间也是有关系的。关系数据库里各个表之间如何建立起关系呢?

我们来看图中“学生表”,“成绩表”这两个表之前的关系。

这两张表通过”学号”关联起来,为了更清楚的看到这两个表的关系,PPT里我用相同颜色代表同一个学生的信息。

例如我想知道学生表里学号“0001” 的成绩是多少?那么我就可以在成绩表里去查找“学号”值是0001的行,最后在成绩表里发现有3行数据的学号都是“0001” ,对应的就找到了该学生的三门课程的成绩。

通过这个例子你应该对表之间的关系有了大概的了解。关系就是数据能够对应的匹配,在关系数据库中正式名称叫联结,对应的英文名称叫做join。

联结是关系型数据库中的核心概念,务必记住这个概念,后面会在多表查询中具体学到。

3什么是数据库管理系统?

前面讲的都是关系数据库原理方面的基本理论。理论有了,当然的就的有对应的软件实现才能用起来,不然再强大的理论都是一堆无用的东东。这就好比,建筑师如果只有设计草图是无法盖起楼房的,得有具体的建筑人员才能盖起楼房。

所以,上面讲的关系数据库原理就是“设计草图”,那么对应的“建筑人员”是谁呢?

实现数据库原理的“建筑人员”就是数据库管理系统,用来管理数据库的计算机软件。

关系数据库管理系统有很多种,比如MySQL、Oracle、SQL Server等都是实现上面理论的关系数据库。

4什么是sql?

建筑施工人员通过使铲子,拉土机等工具来盖房子。

那么,我们通过什么工具来 *** 作数据库里的数据呢?

这个工具就是SQL。

SQL是为 *** 作数据库而开发的一种语言,它可以对数据库里的表进行 *** 作,比如修改数据,查找数据。

之前我在社群里举过一个例子,我觉得可以很好的说明白数据库和sql是什么关系。

把数据库比如一碗米饭,里面放的米是数据。现在我们要吃碗里的米饭,怎么取出碗里的米饭呢?

这时候我们拿一双筷子,用筷子 *** 作碗里的米饭。这里的筷子就是SQL,用来 *** 作数据库里的数据。

5总结

1)什么是数据库?

数据库用于存放数据,

关系数据库=多张表+各表之间的关系

2)关系数据库表长什么样?

关系数据库中每个表由一个名字标识。表包含带有列名的列,和记录数据的行。

主键是关系数据库中重要的概念,用来标识数据的唯一性。

3)关系数据库里各个表之间如何建立联系呢?

关系数据库中,如果一张表要关联其他表,通过对应的列产生了关系。这个关系叫做联结。

4)什么是关系数据库管理系统?

实现数据库原理的“施工团队”就是,用来管理数据库的计算机软件叫做数据库管理系统。

常用的关系数据库管理系统有mysql,orcale,sql server为了方便描述,我们后面说到数据库,都是指数据库管理系统。

5)什么是SQL

数据库里面放着数据,SQL是用来 *** 作数据库里数据的工具。

现在我们可以理解支付宝的背后的运行原理了,用户把钱存放到支付宝数据库里,当用户查看支付宝余额的时候,后台使用SQL这个工具 *** 作支付宝的数据库,把里面的数据查找出来,然后返回给用户,这样用户就可以看到存放到支付宝里的钱和每天的收益了。

我来解释一下,看对你有用没:

首先,使用关系图的用户首先是SQL Server用户,MSSMS你要能打开可视化编辑视图。

其次,键约束,当你在 *** 作一个表时,他的记录靠主键关系约束关系表,再在关系表中 *** 作就要在他约束字段值范围内添加。

比如我们一个表1字段是: 工号 姓名 岗位编号 另一个表2是:岗位编号 薪资,我们依据岗位编号来做键约束,建立两个表之间的关系,我先对第一个表进行 *** 作,第二哥表就只能添加第一个表里曾在的岗位编号,是主键还不能重复添加,表1里没有的岗位编号是添加不进去的,以保存就报异常,这叫外键约束。

第三点作用是方便开发人员查看表与表之间的关系和表的结构。

这才是关系图,不是ER图。ER图才能解决数据关联问题,关系图是表与表之间的依赖关系。

硕士开题报告可以从课题来源、研究目的和意义、国内外研究现状和发展趋势的简要说明来写,具体可参考下方示例。

一、课题来源:

本课题来源于作者在学习和实习中了解到的两个事实,属于自拟课题。

其一,作者在2011年7月在XXX公司调研,了解到现如今各行业都面临着数据量剧增长,并由此带来业务处理速度缓慢,数据维护困难等问题。为了应对此挑战,很多企业开实施大数据发展战略。现如今的大数据发展战略可以概括为两类,一类是垂直扩展。

即采用存储容量更大,处理能力更强的设备,此种方式成本较大,过去很多大公司一直采用此种方法处理大数据。但自从2004年Google发布关于GFS,MapReduce和BigTable三篇技术论文之后,云计算开始兴起,2006年Apache Hadoop项目启动。

随后从2009年开始,随着云计算和大数据的发展,Hadoop作为一种优秀的数据分析、处理解决方案,开始受到许多 IT企业的关注。相较于垂直扩张所需的昂贵成本,人们更钟情于采用这种通过整合廉价计算资源的水平扩展方式。于是很多IT企业开始探索采用Hadoop框架构建自己的大数据环境。

其二,作者自2013年4月在XXX实习过程中进一步了解到,因为关系数据库在存储数据格式方面的局限,以及其Schema机制带来的扩展性上的不便,目前在大部分的大数据应用环境中都采用非结构化的数据库,如列式存储的Hbase,文档型存储的MangoDB,图数据库neo4j等。

这些非结构化数据库因为可扩展性强、资源利用率高,高并发、响应速度快等优势,在大数据应用环境中得到了广泛的应用。但此种应用只解决了前端的业务处理,要真正利用大数据实现商务智能,还需要为决策支持系统和联机分析应用等提供一数据环境——数据仓库。为此,导师指导本文作者拟此题目,研究基于Hadoop框架的数据仓库解决方案。

二、研究目的和意义:

现如今,数据已经渗透到每一个行业,成为重要的生产因素。近年来,由于历史积累和和数据增长速度加快,各行业都面临着大数据的难题。事实上,大数据既是机遇又时挑战。合理、充分利用大数据,将其转变为海量、高增长率和多样化的信息资产,将使得企业具有更强的决策力、洞察发现力和流程优化等能力。

因此,很多IT企业都将大数据作为其重要的发展战略,如亚马逊、脸谱网已布局大数据产业,并取得了骄人的成绩。事实上,不止谷歌、易趣网或亚马逊这样的大型互联网企业需要发展大数据,任何规模的企业都有机会从大数据中获得优势,并由此构建其未来业务分析的基础,在与同行的竞争中,取得显著的优势。

相较于大型企业,中小企业的大数据发展战略不同。大公司可以凭借雄厚的资本和技术实力,从自身环境和业务出发,开发自己的软件平台。而中小企业没有那样的技术实力,也没有那么庞大的资金投入,更倾向于选择一个普遍的、相对廉价的解决方案。

本文旨在分析大数据环境下数据库的特点,结合当下流行的Hadoop框架,提出了一种适用于大数据环境的数据仓库的解决方案并实现。为中小企业在大数据环境中构建数据仓库提供参考。其具体说来,主要有以下三方面意义:

首先,目前主流的数据库如Oracle、SQL Server都有对应自己数据库平台的一整套的数据仓库解决方案,对于其他的关系型数据库如MySQL等,虽然没有对应数据库平台的数据仓库解决方案,但有很多整合的数据仓库解决方案。

而对于非结构化的数据库,因其数据模型不同于关系型数据库,需要新的解决方案,本文提出的基于Hive/Pentaho的数据仓库实现方案可以为其提供一个参考。

其次,通过整合多源非结构化数据库,生成一个面向主题、集成的数据仓库,可为大数据平台上的联机事务处理、决策支持等提供数据环境,从而有效利用数据资源辅助管理决策。

再次,大数据是一个广泛的概念,包括大数据存储、大数据计算、大数据分析等各个层次的技术细节,本文提出的“大数据环境下的数据仓库解决方案及实现“丰富了大数据应用技术的生态环境,为大数据环境下的数据分析、数据挖掘等提供支撑。

三、国内外研究现状和发展趋势的简要说明:

本文研究的主体是数据仓库,区别于传统基于关系型数据库的数据仓库,本文聚焦大数据环境下基于非结构数据库的数据仓库的构建与实现。因此,有必要从数据仓库和大数据环境下的数据库两方面进行阐述。

(一)数据仓库国内外研究现状:

自从Bill Inmon 在1990年提出“数据仓库”这一概念之后,数据仓库技术开始兴起,并给社会带来新的契机,逐渐成为一大技术热点。目前,美国30%到40%的公司已经或正在建造数据仓库。现如今随着数据模型理论的完善,数据库技术、应用开发及挖掘技术的不断进步,数据仓库技术不断发展,并在实际应用中发挥了巨大的作用。

以数据仓库为基础,以联机分析处理和数据挖掘工具为手段的决策支持系统日渐成熟。与此同时,使用数据仓库所产生的巨大效益又刺激了对数据仓库技术的需求,数据仓库市场正以迅猛的势头向前发展。

我国企业信息化起步相对较晚,数据仓库技术在国内的发展还处于积累经验阶段。虽然近年来,我国大中型企业逐步认识到利用数据仓库技术的重要性,并已开始建立自己的数据仓库系统,如中国移动、中国电信、中国联通、上海证券交易所和中国石油等。

但从整体上来看,我国数据仓库市场还需要进一步培育,数据仓库技术同国外还有很大差距。为此,我国许多科技工作者已开始对数据仓库相关技术进行深入研究,通过对国外技术的吸收和借鉴,在此基础上提出适合国内需求的技术方案。

(二)非结化数据库国内外研究现状:

随着数据库技术深入应用到各个领域,结构化数据库逐渐显露出一些弊端。如在生物、地理、气候等领域,研究面对的数据结构并不是传统上的关系数据结构。如果使用关系数据库对其进行存储、展示,就必须将其从本身的数据结构强行转换为关系数据结构。

采用此种方式处理非结构数据,不能在整个生命周期内对非关系数据进行管理,并且数据间的关系也无法完整的表示出来。在此背景下,非结构化数据库应运而生。相较于关系数据库,非结构数据库的字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成。

如此,它不仅可以处理结构化数据,更能处理文本、图象、声音、影视、超媒体等非结构化数据。近年来,随着大数据兴起,非结构数据库开始广泛应用,以支持大数据处理的多种结构数据。

目前,非结构化的数据库种类繁多,按其存储数据类型分,主要包含内存数据库、列存储型、文档数据库、图数据库等。其中,常见的内存数据库有SQLite,Redis,Altibase等;列存储数据库有Hbase,Bigtable等;文档数据库有MangoDB,CouchDB,RavenDB等;图数据库有Neo4j等。

近年来,我国非结构数据库也有一定发展,其中最具代表的是国信贝斯的iBASE数据库。可以预见在不久的将来,伴随这大数据的应用,非结构数据库将会得到长足的发展和广泛的应用。

图数据库有其特定的应用场景,而这些特定的应用场景如果使用 mySQL 数据库等往往会有巨大的性能开销。

我们举一个例子,假设在一个社交关系数据库中,我们只考虑用户和用户之间的朋友关系(这里我们注意,对于两个用户A,A认为B是A的朋友,并不代表B认为A是B的朋友,这里考虑的是一种有向关系),针对用户A,假如我们想分析谁是用户A的朋友,这个查询通常会比较快,但是我们如果查询“谁的朋友是用户A”,这个时候如果我们的表没有经过特殊设计,我们是需要遍历整个关系表的,如果是更复杂的多层反向查询问题,那么这个代价只会更高。

同样的,在商品数据库中,我们查询某个客户买了哪些商品通常效率比较高,但是我们要查询"那些客户买了这个商品"甚至是“有哪些买了这个商品的客户也买了那个商品”的这种多层关系的时候,数据库通常就显得力不从心了。

实际上,关系型数据库在处理反向查询以及多层次关系查询的时候通常开销较大。

相比之下,图数据库在处理这类问题就能发挥更大的优势,原因主要有如下几点:

同等的看待节点和边(关系),节点和边都是一等公民并建立表

采用双向指针,原生的图存储,在查节点之间的关系通常可以做到常数级别

总之,图数据库这个领域目前并不如传统的关系型数据库那么稳定和被人熟知,但是其肯定是未来数据库的趋势之一(也许并不是neo4j,可能是其他实现),其在社交网络、大数据分析、推荐系统、web安全方面目前看来有非常大的优势。

关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和 *** 作。

关系模型由关系数据结构、关系 *** 作集合、关系完整性约束三部分组成。

简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。当前主流的关系型数据库有Oracle、DB2、MicrosoftSQLServer、MicrosoftAess、MySQL等。

1、Oracle

Oracle是1983年推出的世界上第一个开放式商品化关系型数据库管理系统。它采用标准的SQL结构化查询语言,支持多种数据类型,提供面向对象存储的数据支持,具有第四代语言开发工具,支持Unix、WindowsNT、OS/2、Novell等多种平台。除此之外,它还具有很好的并行处理功能。Oracle产品主要由Oracle服务器产品、Oracle开发工具、Oracle应用软件组成,也有基于微机的数据库产品。主要满足对银行、金融、保险等企业、事业开发大型数据库的需求。

2、DB2

DB2是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBMi(旧称OS/400)、z/OS,以及Windows服务器版本。

DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器 *** 作系统平台下。DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。

DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。

DB2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。

3、MicrosoftSQLServer

SQLServer是Microsoft公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2012的大型多处理器的服务器等多种平台使用。

MicrosoftSQLServer是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。MicrosoftSQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

4、MicrosoftAess

Aess是由微软发布的关系数据库管理系统。它结合了DatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的系统程序之一。

Aess是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员,在包括专业版和更高版本的office版本里面被单独出售。2018年9月25日,最新的微软OfficeAess2019在微软Office2019里发布。

MSACCESS以它自己的格式将数据存储在基于AessJet的数据库引擎里。它还可以直接导入或者链接数据(这些数据存储在其他应用程序和数据库)。

5、MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

以上就是关于常见NoSQL数据库的应用场景是怎么样的全部的内容,包括:常见NoSQL数据库的应用场景是怎么样的、什么是数据库、数据库关系图有什么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9428489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存