第7章 NoSQL数据库技术-单元测验-数据库原理及应用

以下哪一项工作通常不是数据库系统面临的挑战?

数据库高并发读写需求

海量数据的高效存储和处理

数据库高扩展性

编写数据库应用程序

以下哪一项不是NoSQL的共同特征?

分区

异步复制

BASE

CAP

NoSQL的共同特征

(1)不用预定义模式。

(2)无共享架构。

(3)弹性可扩展。

(4)分区。(5)异步复制。(6)BASE

Hbase是哪一种存储模型的NoSQL数据库?

列存储

文档存储

键值对存储

图形存储

MongoDB是哪一种存储模型的NoSQL数据库?

列存储

文档存储

键值对存储

图形存储

Neo4J是哪一种存储模型的NoSQL数据库?

列存储

文档存储

键值对存储

图形存储

以下哪一项不是大数据的特征?

高速产生

规模巨大

高密集价值数据

多样性

以下哪一项不是CAP的含义?

一致性

可用性

分布式

分区容忍性

NoSQL理论基础

CAP理论

对应一致性Consistency:

在分布式计算中,在执行某项数据的修改操作之后,所有节点在同一时间具有相同的数据,系统具有一致性。

可用性Availability:

在每一个操作之后,无论成功或失败,系统都要在一定时间内返回结果,保证每个请求不管成功或者失败都有响应。

分区容忍性Partition Tolerance:

系统中任意信息的丢失或失败不会影响系统的继续运行。

以下哪一项不是BASE模型包含个三个元素之一?

完整性

基本可用

最终一致性

软状态

BASE模型

Basically Available

--基本可用。

系统能够基本运行,一直提供服务。

Soft-state

--软状态/柔性事务。

"Soft state" 可以理解为"无连接"的, 而 "Hard state" 是"面向连接"的;

系统不要求一直保持强一致状态。

Eventual Consistency

--最终一致性。

系统在某个时刻达到最终一致性,并非时时保持强一致。

最终一致性

(1)强一致性:

要求无论更新操作是在哪一个副本执行,之后所有的读操作都要能获得最新的数据。

(2)弱一致性:

用户读到某一操作对系统特定数据的更新需要一段时间,称这段时间为“不一致性窗口”。

(3)最终一致性:

弱一致性的一种特例,保证用户最终能够读取到某操作对系统特定数据

HBASE中表和区域的关系可以是什么?

1:1

1:N

N:1

M:N

列存储数据库HBASE

简介

数据库中的数据模型给出了数据的表达方式,二维表是关系模型的数据结构,数据和数据之间的关系都在二维表中表示。

数据库以行、列的二维表的形式表示数据,以一维字符串的方式存储

HBASE数据库

HBase全称是Hadoop Database, 是一个构建在Apache Hadoop上的列式数据库

HBase是一个开源的非关系型分布式数据库(NoSQL),实现的编程语言为 Java

以下哪一项不是MongoDB保留数据库?

local

admin

config

system

文档型数据库MongoDB

简介

文档是处理信息的基本单位。文档可以很长、很复杂、可以无结构。

一个文档对包含的数据类型和内容进行“自我描述”。XML文档、HTML文档和JSON文档。

每个文档的ID就是它唯一的键,是唯一的, 检索排序的ID性能好。ID在一个数据库“集合”中

MongoDB数据库

MongoDB 是基于分布式文件存储的开源数据库系统。将数据存储为一个文档,数据结构由键值对组成,字段值可以包含其他文档,数组及文档数组。

基本的概念是文档、集合、数据库

文档是MongoDB中数据的基本单元

集合可以被看作没有模式的

每个实例都可容纳多个独立数据库,每个数据库都有自己的集合和权限。

在Neo4J集群中,数据的写入是通过主服务器来完成的,数据的读取可以通过集群中的任意一个Neo4J实例来完成。v

图形数据库Neo4J

简介

图就是二元关系。利用一系列由线(称为边)或箭头(称为弧)连接的点(称为节点)。有向图:节点集合,弧集合--节点的有序对。

图的实现--两种。一种叫作邻接表,大致上与二元关系的实现方法类似。第二种叫作邻接矩阵,是一种表示二元关系的新方法,图的应用包括最短路径、可达集、各种搜索算法等。这些都给图的应用提供理论基础。

Neo4J图数据库

Neo4j是开源的用Java实现图数据库,有两种运行方式,一种是服务的方式,对外提供REST接口;另外一种是嵌入式模式,数据以文件的形式存放在本地,直接对本地文件进行操作。

每个实体都有ID(Identity)唯一标识,每个节点由标签(Lable)分组,每个关系都有一个唯一的类型,属性图模型的基本概念有:

实体(Entity)是指节点(Node)和关系(Relationship);

每个实体都有零个、一个或多个属性,一个实体的属性键是唯一的;每个节点都有零个、一个或多个标签,属于一个或多个分组;

每个关系都只有一个类型,用于连接两个节点;

路径(Path)是指由起始节点和终止节点之间的实体(节点和关系)构成的有序组合;

标记(Token)是非空的字符串,用于标识标签(Lable),关系类型(Relationship Type),或属性键(Property Key);

标签:用于标记节点的分组,多个节点可以有相同的标签,一个节点可以有多个Lable,Lable用于对节点进行分组;

关系类型:用于标记关系的类型,多个关系可以有相同的关系类型。

CAP是在分布式环境下设计和部署系统时的3个核心需求。v

CAP理论

对应一致性Consistency:

在分布式计算中,在执行某项数据的修改操作之后,所有节点在同一时间具有相同的数据,系统具有一致性。

可用性Availability:

在每一个操作之后,无论成功或失败,系统都要在一定时间内返回结果,保证每个请求不管成功或者失败都有响应。

分区容忍性Partition Tolerance:

系统中任意信息的丢失或失败不会影响系统的继续运行。

Redis复制主要包括RDB复制和AOF复制。v

键值对数据库Redis

简介

KV:Key-Value(键值)存储模型是NoSQL中最基本的数据存储模型,KV类似于哈希表,在键和值之间建立映射关系,键值模型极大的简化了关系数据模型,具有高效灵活的特点。

1.数据结构:键值模型(Key-Value模型),每行记录由主键和值两个部分组成,值可以是各种类型的数据。

2.数据操作:Get( key )、Set( key, value )、Delete( key )等。

3.数据完整性:针对单个键的操作才区别“一致性”。

Redis数据库

Redis 是Remote Dictionary Server的缩写,开源的KV数据库。

Redis支持Value类型:字符串类型(String)哈希表类型(Hash)链表类型(List)集合类型(Set)有序集合类型(order set)

HBASE中的区域和表的关系是随着数据的增加动态变化的。v

HBase自动把水平划分为 区域 (Region),每个区域都是有若干连续行构成的,一个区域由 所属的、起始行、终止行(不包括这行) 三个要素来表示。

MongoDB的分片是将一个集合的数据分别存储在不同的节点上减轻单机压力。x

MongoDB分片的基本思想就是将集合切分成小块。

        这些块分散到若干片里面,每个片只负责总数据的一部分。

应用程序不必知道哪片对应哪些数据,甚至不需要知道数据已经被拆分了。

所以在分片之前要运行一个路由进程,该进程名为mongos。

这个路由器知道所有数据的存放位置,所以应用可以连接它来正常发送请求。

对应用来说,它仅知道连接了一个普通的mongod。

路由器知道数据和片的对应关系,能够转发请求到正确的片上。

如果请求有了回应,路由器将其收集起来回送给应用。

Neo4j的数据物理存储主要分为节点、关系、节点或关系上属性这三类数据存储。x

NoSQL数据库分类的依据是对数据的操作方式。x

Redis数据库的底层实现是字典,对于数据库的增删改查操作都是通过对字典进行操作来实现的。v

HBASE中表定义中要说明行健和表中包含的列族,列不用定义。v

MongoDB复杂文档模型设计可以使用内嵌和引用的方法来解决。v

本章重点问题讨论

1.关系数据库的优点与缺点分别有哪些?

2.CAP、BASE、最终一致性的原理和实现技术分别是什么?

3.NoSQL数据库的共同特征是什么?

4.HBase的物理存储架构是什么?

5.HBase的应用场景有哪些?

6.Redis数据库的数据模型是什么?

7.Redis数据库适合哪些应用场景?

8.MongoDB数据库的数据模型是什么?

9.MongoDB数据库有哪些应用场景?

10.Neo4j数据库有哪些技术特点?

1.易于维护:都是使用表结构,格式一致;

2.使用方便: SQL语言易用,可用于复杂查询;

3复杂操作:支持SQL可用于一个表以及多个表之问非常复杂的查询。缺点: 1)读写性能比较差,尤其是海量数据的高效率读写; 2)固定的表结构,灵活度稍欠;3)高并发读写需求,传统关系型数据库来说,硬盘是一个很大的瓶颈。

4.键值数据库复述,Memcached,Riak 内容缓存,如会话,配置文件参数等;频繁读写,拥有简单数据模型的应用<heyvalue >键值对,通过散列表来实现扩展性好,灵活性好,大量操作时性能高,数据无结构化,通常只被当做宇符串或者二进制数据,只能通过键来查询值

5,列族数据库Bigtable HBase,卡桑德拉分布式数据存储与管理以列族式存储,将同一列数据存在一起可扩展性强,查找速度快,复杂性低功能局限不支持事务的强一致性。

6.文档数据库MongoDB,CouchDBweb应用,存储面向文档或类似半结构化的数据<kevvaluve>价值是JSON结构的文档数据结构灵活,可以根据价值构建索引,缺乏统一杳询语法。

7. 图形数据库 Neo4i.InfoGrid社交网络,推荐系统,专注构建关系图谱图结构支持复杂的图形算法复杂性高,只能支持一-定的数据规模。

8.MonaoDB提出的是文档, 集合的概念,使用BSON (JSON 作为其数据模型结构,其结构是面向对象的而不是二维表存储个用户在MongoDB中是这样子的。

9.游戏、物流、电商、内容管理、社交、物联网、视频直插等。

10.采用原生图存储和处理数据;提供最优化的关系遍历执行效率,比关系数据库的表连接快

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 1、课程简介 CouchDB 是一个开源的面向文档的数据库管理系统,可以通过 RESTful JavaScript Object Notation (JSON) API 访问。术语 “Couch” 是 “Cluster Of Unreliable Commodity Hardware” 的首字母缩写,它反映了 CouchDB 的目标具有高度可伸缩性,提供了高可用性和高可靠性,即使运行在容易出现故障的硬件上也是如此。CouchDB 最初是用 C++ 编写的,但在 2008 年 4 月,这个项目转移到 Erlang OTP 平台进行容错测试。 CouchDB官方网站是:http://couchdb.apache.org/ 2、适应人群 有一定的Java基础,JavaWeb基础,并对数据库管理系统感兴趣的同学。 3、主讲内容 l Apache CouchDB介绍 l CouchDB的安装配置 l CouchDB自带的管理工具 l CouchDB的复制 l View的使用 l 使用Java代码操作CouchDB l 使用Java代码操作View 4.课程目录 第1节 - 1.关系型数据库Nosql数据库的对比 - 副本 第2节 - 2.CouchDB的特点&为什么选择CouchDB - 副本 第3节 - 3.CouchDB采用json文档保存数据 第4节 - 4.CouchDB的安装配置 第5节 - 5.CouchDB的使用入门_curl命令1 第6节 - 6.CouchDB创建数据库_删除数据库_curl命令2 第7节 - 7.图形化工具fauxton的使用1 第8节 - 8.CouchDB的复制操作一 第9节 - 9.couchDB的复制操作二 第10节 - 10.MapReduce原理解释 第11节 - 11.View的介绍以及B+true 第12节 - 12.B+tree数据结构原理介绍 第13节 - 13.创建view一 第14节 - 14.修改view指定key_value值一 第15节 - 15.修改view指定key_value值二 第16节 - 16.LightCouch操作CouchDB的环境搭建 第17节 - 17.编写第一个LightCouch快速入门程序 第18节 - 18.LightCouch实现增删改操作 第19节 - 19.筛选出多个满足条件的doc
第一部分  NoSQL入门 第1  NoSQL的概念及适用范围 2 1.1  定义和介绍 3 1.1.1  背景与历史 3 1.1.2  大数据 5 1.1.3  可扩展性 7 1.1.4  MapReduce 8 1.2  面向列的有序存储 9 1.3  键/值存储 11 1.4  文档数据库 14 1.5  图形数据库 15 1.6  小结 16 第2  NoSQL上手初体验 17 2.1  第一印象——两个简单的例子 17 2.1.1  简单的位置偏好数据集 17 2.1.2  存储汽车品牌和型号数据 22 2.2  使用多种语言 30 2.2.1  MongoDB驱动 30 2.2.2  初识Thrift 33 2.3  小结 34 第3  NoSQL接口与交互 36 3.1  没了SQL还剩什么 36 3.1.1  存储和访问数据 37 3.1.2  MongoDB数据存储与访问 37 3.1.3  MongoDB数据查询 41 3.1.4  Redis数据存储与访问 43 3.1.5  Redis数据查询 47 3.1.6  HBase数据存储与访问 50 3.1.7  HBase数据查询 52 3.1.8  Apache Cassandra数据存储与访问 54 3.1.9  Apache Cassandra数据查询 55 3.2  NoSQL数据存储的语言绑定 56 3.2.1  Thrift 56 3.2.2  Java 56 3.2.3  Python 58 3.2.4  Ruby 59 3.2.5  PHP 59 3.3  小结 60 第二部分  NoSQL基础 第4  理解存储架构 62 4.1  使用面向列的数据库 63 4.1.1  使用关系型数据库中的表格和列 63 4.1.2  列数据库对比RDBMS 65 4.1.3  列数据库当做键/值对的嵌套映射表 67 4.1.4  Webtable布局 70 4.2  HBase分布式存储架构 71 4.3  文档存储内部机制 73 4.3.1  用内存映射文件存储数据 74 4.3.2  MongoDB集合和索引使用指南 75 4.3.3  MongoDB的可靠性和耐久性 75 4.3.4  水平扩展 76 4.4  键/值存储Memcached和Redis 78 4.4.1  Memcached的内部结构 78 4.4.2  Redis的内部结构 79 4.5  最终一致性非关系型数据库 80 4.5.1  一致性哈希 81 4.5.2  对象版本 82 4.5.3  闲话协议和提示移交 83 4.6  小结 83 第5  执行CRUD操作 84 5.1  创建记录 84 5.1.1  在以文档为中心的数据库中创建记录 85 5.1.2  面向列数据库的创建操作 91 5.1.3  键/值映射表的创建操作 93 5.2  访问数据 96 5.2.1  用MongoDB访问文档 96 5.2.2  用HBase访问数据 97 5.2.3  查询Redis 98 5.3  更新和删除数据 98 5.3.1  使用MongoDB、HBase和Redis更新及修改数据 98 5.3.2  有限原子性和事务完整性 99 5.4  小结 100 第6  查询NoSQL存储 101 6.1  SQL与MongoDB查询功能的相似点 101 6.1.1  加载MovieLens数据 103 6.1.2  MongoDB中的MapReduce 108 6.2  访问HBase等面向列数据库中的数据 111 6.3  查询Redis数据存储 113 6.4  小结 116 第7  修改数据存储及管理演进 117 7.1  修改文档数据库 117 7.1.1  弱schema的灵活性 120 7.1.2  MongoDB的数据导入与导出 121 7.2  面向列数据库中数据schema的演进 124 7.3  HBase数据导入与导出 125 7.4  键/值存储中的数据演变 126 7.5  小结 126 第8  数据索引与排序 127 8.1  数据库索引的基本概念 127 8.2  MongoDB的索引与排序 128 8.3  MongoDB里创建和使用索引 131 8.3.1  组合与嵌套键 136 8.3.2  创建唯一索引和稀疏索引 138 8.3.3  基于关键字的搜索和多重键 139 8.4  CouchDB的索引与排序 140 8.5  Apache Cassandra的索引与排序 141 8.6  小结 143 第9  事务和数据完整性的管理 144 9.1  RDBMS和ACID 144 9.2  分布式ACID系统 147 9.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值