四、论非关系型数据库技术及应用
非关系型数据库(NoSQL数据库)在数据模型、可靠性、一致性等诸多数据库核心机制方面与关系型数据库有着显著的不同。非关系型数据库技术包括:
(1)使用可扩展的松耦合类型数据模式未对数据进行逻辑建模;
(2)为遵循CAP定理的跨多节点数据分布模型而设计,支持水平伸缩;
(3)拥有在磁盘和(或)内存中的数据持久化能力;
(4)支持多种非SQL接口来进行数据访问。非关系型数据库都具有非常高的读写性能,尤其在大数据量下,依然表现优秀,数据之间的弱关联关系使得数据库的结构简单,实现了更细粒度的缓存机制,具有更好的性能表现。
问题:4.1 1.简要叙述你参与的使用了非关系型数据库的软件系统开发项目以及你所承担的主要工作。
2.详细论述非关系型数据库有哪几类不同实现方式,每种方式有何技术特点和代表性数据库产品。
3.根据你所参与的项目中使用的非关系型数据库,具体阐述使用方法和实施效果。
【解答】
本题属于数据库方向的考题。文章第一部分是标准问题,进行详实的项目简介即可。第二部分的知识内容已超出教程内容。NoSQL技术曾在案例分析题中考查过,本次的考查,要求考生对NoSQL的基本概念,特点,与关系数据库相比的优势,以及相关的数据库产品有所了解,下面将介绍这些方面的内容。
NoSQL的主要优势:
(1)避免不必要的复杂性
(2)高吞吐量
(3)高水平扩展能力和低端硬件集群
(4)避免了昂贵的对象-关系映射
NoSQL的缺点:
(1)数据模型和查询语言没有经过数学验证
(2)不支持ACID特性
(3)功能简单
(4)没有统一的查询模型
NoSQL数据库的四大分类:
1、键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
2、列存储数据库。
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak。
HBase:HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
3、文档型数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
Mongo DB:Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。
Sequoia DB:SequoiaDB是一款分布式非关系型文档数据库,可以被用来存取海量非关系型的数据,其底层主要基于分布式,高可用,高性能与动态数据类型设计SequoiaDB可以独立作为一款高性能可扩展的NoSQL数据库使用,也可与当前主流分布式计算框架Hadoop紧密集成。
4、图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如:Neo4J, InfoGrid, Infinite Graph.
各省软考办 | ||||||||||