大数据存储Nosql复习篇
一、理论题、论述题
第1章 绪论
1、NoSQL数据库和关系数据库在设计目标上有何主要区别?
(1)关系数据库
优势:以完善的关系代数理论作为基础,具有数据模型、完整性约束和事务的强一致性等特点,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持。
劣势:可扩展性较差,无法较好支持海量数据存储,数据模型过于死板、无法较好支持Web2.0应用,事务机制影响了系统的整体性能等。
(2)NoSQL数据库
优势:NoSQL数据库会采用非关系的数据模型,弱化模式或表结构、弱化完整性约束、弱化甚至取消事务机制。可能无法支持,或不能完整的支持SQL语句。目的是实现强大的分布式部署能力——一般包括分区容错性、伸缩性和访问效率(可用性)等。可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web2.0应用,具有强大的横向扩展能力等。
劣势:缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强一致性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术。
2、分析NoSQL数据库的技术特点。
(1)NoSQL数据库会采用非关系的数据模型
(2)弱化模式或表结构、弱化完整性约束、弱化甚至取消事务机制
(3)可能无法支持,或不能完整的支持SQL语句
(4)目的是实现强大的分布式部署能力——一般包括分区容错性、伸缩性和访问效率
(5)NoSQL大多是开源免费的。
3、NoSQL的典型应用场景
(1) 实时数据分析:NoSQL数据库的高性能和可扩展性使其成为实时数据分析的理想选择。通过分布式存储和并行处理技术,NoSQL数据库可以实时处理海量数据,提供实时的数据分析和可视化服务,帮助企业快速洞察市场趋势和客户需求。
(2)物联网与大数据:物联网产生的数据具有多样性、海量性和实时性的特点,NoSQL数据库以其灵活的数据模型和高效的存储查询能力,成为物联网数据存储和处理的首选方案。同时,NoSQL数据库也广泛应用于大数据处理领域,如日志分析、推荐系统、用户行为分析。
(3)社交媒体与内容管理:社交媒体和内容管理系统中,用户生成的内容占据了主导地位。这些内容具有非结构化、半结构化的特点,且数据规模庞大。NoSQL数据库以其灵活的数据模型和高效的查询性能,为用户提供流畅的内容浏览和互动体验。
(4)金融与交易系统:金融和交易系统对数据的一致性和可用性要求极高。NoSQL数据库通过提供强一致性模型和数据复制技术,确保了数据的高可用性和一致性。同时,NoSQL数据库还支持高并发访问和快速响应,满足金融交易系统对性能的需求。
4、云计算的定义。
云计算是一种模型。基于该模型,可以通过网络实现对可配置共享资源的访问,这种对资源的访问方式是无处不在的、便利的和按需而定的。这些资源可以被迅速的提供和发布,而用户只需要进行少量的管理配置或交互工作即可。
5、云计算的基本特征。
(1)按需自助服务:用户可以根据自身需求,自行配置资源的类型、数量和使用时间,而无需和云计算供应商进行过多交互。
(2)广泛的网络访问:用户即可在任何时间、地点,利用多种终端通过网络和标准的网络协议访问资源。
(3)资源池化:强调资源的集中化、动态分配和多租户模型。好处在于,资 源越集中、单位资源的管理和使用成本就越低。
(4)快速和弹性:是指用户的资源能够快速交付,且进行弹性扩展。即用户申 请完IT资源之后,可以根据需求的变化以手动或自动的方式 调整资源。
(5)可度量的服务:即云服务的的使用和计费是透明、精确,且细粒度的。用户可以根据资源单价和对资源的使用日志计算或核对账单。
6、云计算按照服务类型可以分为哪几类?分别指什么?
7、什么是容器化技术。
容器化可以看作一种应用虚拟化技术或沙盒技术,是将应用及其所需的组件进行打包。打包后的容器可以在和打包环境相 同的任何位置进行部署和运行。由于容器中只含有必要的软件组件,不含操作系统,因此其打包容量较小。
8、数据库的相关概念:
(1)数据库:数据信息的集合,也可以看作按照数据结构来存储和组织信息数据的软件容器或仓库。
(2)数据库管理系统:数据库及其管理软件构成了数据库管理系统,实现数据的管理和使用等功能。
(3)数据库系统:数据库管理系统及其运行的软硬件环境、操作人员乃至手册文档等内容,
构成一个完整体系,称为数据库系统。
(4)数据库应用系统:指在数据库管理系统的支撑下建立的计算机应用系统。
9、从发展趋势上看,NoSQL是否可以取代关系型数据库?并说明原因。
NoSQL不能取代关系型数据库。事实上,NoSQL数据库和关系型数据库是互补关系,在不限定场景的情况下,无法比较谁更强。
关系型数据库能够更好地保持数据的完整性和事务的一致性,以及支持对数据的复杂操作,在现实中拥有更普遍的适用领域。NoSQL数据库做不到上述,但是可以更好地实现分布式环境下对数据的简单管理和查询,即在大数据业务领域具有更大价值。
第2章 NoSQL数据库的基本原理
1. 描述分布式数据管理的特点。
(1)数据分片:使数据均匀分布到多个节点上,可以充分利用各个节点的处理能力、存储能力和吞吐能力。
(2)数据多副本:将数据存储为多个副本,不同的副本存储在不同节点上。
(3)一次写入多次读取:在系统底层只支持新建和追加,系统具有更好的顺序存储特性。
(4)分布式系统的可伸缩性:可以移除故障节点,替换新节点,实现数据的再平衡。
2. 什么是CAP原理?CAP原理是否适用于单机环境?
CAP是指分布式系统中的一致性、可用性、分区容错性。一致性是指分布式系统中所有节点都能对某个数据达成共识。可用性可以理解为分布式系统的响应速度或响应能力。分区容错性指在部分节点故障、以及出现消息丢包的情况下,集群系统的剩余部分仍然可以提供服务。
CAP理论是指在分布式系统中,CAP三个特性不可兼得,只能同时满足两个。CAP不能兼顾,但并非绝对对立。
CAP理论的主要场景是在分布式环境下,在单机环境下,基本可不考虑CAP问题.
3. 简述BASE理论的具体含义。
由于CAP无法兼顾,分布式系统需要根据实际业务要求,对一致性做一定妥协,提供弱一致性保障。具体要求为BASE理论:
(1)基本可用:核心部分或其他数据可用。
(2)软状态/柔性事务:允许多个副本存在暂时的不一致状态。
(3)最终一致性:存在中间状态,但经历一段时间之后,最终会一致。
4. 在数据一致性问题上,ACID和BASE的差别是什么?
(1)ACID是典型的强一致性要求。要求多个节点的数据副本都是一致的,强调数据的一致性。ACID是大多数NoSQL抛弃的机制,因为无法在分布式环境中保证效率。
(2)BASE的最终一致性也可以看作NoSQL允许多个副本可以存在暂时的不同步。结合CAP理论,这种设计强调PA,可以提高响应速度。
5.列举NoSQL的数据模型,描述其基本特点和适用场景,并为每种模式举出1种常见数据库。
(1)键值对存储模式
基本特点:数据以键值对的形式存储,每行数据的结构为:<key, value>。键是唯一的,值可以是任何数据类型。操作简单,主要支持根据键查找值。
适用场景:存放会话信息、用户配置信息、购物车数据:购物信息放入value属性,键名为userid等。
常见数据库:Redis。
(2)文档存储模式
基本特点:可以看作键值对模式的升级,底层存储的每行数据中仍然存在key和value。但Value是采用JSON等格式描述的复杂数据类型。
每条数据的文档格式可以不同。文档格式中支持嵌套等复杂形式。
适用场景:事件记录:事件的数据类型经常变动、内容管理系统及博客平台、
网站分析与实时分析、电子商务应用程序等。
常见数据库:MongoBD。
(3)列存储模式
基本特点:可以看作是一种纵向切分数据的方式,不同列会放到不同的位置存储,实际软件一般也会按照行键再进行横向切片和分布式存储。
对于稀疏表,其存储效率较高。底层一般也是一次写入多次读取的。
在切片内一般会按行键进行排序,以加快分布式检索速度。
适用场景:事件记录、内容管理系统与博客平台、计数器:统计某页面的访问人数等。
常见数据库:HBase。
(4)图存储模式
基本特点:将数据存储为点和边的关系。点通过边相连接,具有名称、类型和属性、相连接的边等关联信息。边一般是单向的,具有名称、类型、起止节点和属性等信息。
适用场景:互联数据、安排运输路线、分派路径和基于位置的服务、推荐引擎等。
常见数据库:Neo4J
6. 布隆过滤器的优缺点是什么?如何降低布隆过滤器的误报率?
布隆过滤器的目的是检查某个元素是否存在于集合中。
优点是空间占用低、检索速度快,缺点则是存储在一定的误报率:当布隆过滤认为某元素存在于集合时,该元素可能并不存在,但如果布隆过滤认为该元素不存在于集合,则肯定不存在。
布隆过滤器的误报率,和哈希算法的个数、二进制向量的大小以及数据总量有关,一般来说二进制向量越大,误报率越低,因此需要在存储空间占用和误报率之间做权衡。降低误报率的方法:(1)采取多个独立的哈希算法同时进行映射。(2)增大二进制向量的大小。
第3章MongoDB原理和使用
1、描述MongoDB数据库的主要特点。
课件写的是:MongoDB是一种知名的文档型NoSQL数据库,用C++语言编写,目前由独立公司维护。主要特点有:支持复杂的数据结构,支持索引、支持聚合查询,以及支持对大文件的存储与管理等。它易用、分布式架构、易扩展、支持多副本,在物联网领域受到广泛关注。
或者:
(1)高可用性:MongoDB采用了分布式架构,数据会自动分布在多台服务器上,从而实现高可用性和容错性。如果一个节点故障,系统会自动将其从集群中删除,并将数据迁移到其他节点上。
(2)高扩展性:MongoDB可以轻松地进行水平扩展和垂直扩展。在水平扩展时,可以添加更多的服务器和节点,以增加处理能力和存储容量;在垂直扩展时,则可以升级硬件设备,以提高单机性能。
(3)灵活性:MongoDB支持动态模式和动态查询,可以根据应用程序需求灵活调整文档结构和查询条件。此外,它还支持复杂的文档嵌套、数组类型和地理位置等特性。
(4)性能优势:MongoDB使用了内存映射文件和快速索引等技术,具有较高的读写性能和查询效率。此外,MongoDB还支持分片和副本集等技术,以进一步提高性能和可靠性。
第4章MongoDB的管理与集群部署
1.描述MongoDB集群的数据多副本策略。
MongoDB支持分片的多副本,多副本采用主从备份形式。MongoDB称这种机制为复制集机制。
主节点负责数据的写入和更新。主节点在更新数据的同时,会将操作信息写入日志,称为oplog。
从节点监听主节点oplog的变化,并根据其内容维护自身的数据更新,使之和主节点保持一致。
2.描述MongoDB的分片机制,支持几种分片策略?
MongoDB将数据水平切分机制称为分片。MongoDB支持对文档的自动分片,分片的依据是分片键,分片键可以由文档的一个或多个字段构成。
MongoDB支持三种分片(片键)策略:升序分片、哈希分片和位置分片:
(1)升序分片会将片键进行升序排序,并在当前分片的数据量达到某个阈值时进行分片。
(2)哈希分片会将片键进行哈希运算,使数据的分布更均匀。
(3)位置分片类似于对片键的前缀或子串进行判断。
3.描述MongoDB的分片集群架构(包含的角色和每个角色的作用)
MongoDB集群由Mongod、Mongos和Config服务器组成。
(1)负责存储实际数据分片的设备称为Mongod。
(2)Mongos服务器,作为用户访问集群的入口,负责与客户端的交互,并在内存中缓存分片数据的存储和路由信息。
(3)Config服务器,负责持久化存储各类元数据和配置信息,当Mongos服务器启动时,会通过Config服务器读取相关信息并缓存到内存。
第5章 图数据库Neo4J
1.什么是Neo4j?并对其数据模型进行详细描述。
Neo4j是一个基于Java语言的开源图数据库系统。Neo4j具有强大的图处理和查询搜索能力,通过专用的Cypher语言完成各类操作。
Neor4j采用将数据存储为节点和边的图存储模式,其中节点表示实体、边表示实体之间的关系。
2.简要描述Neo4j的使用场景(至少4个)。
处理社交网络、人机关系和商品关联推荐、信用卡套现行为识别,知识图谱等业务。
3.Neo4j 作为一种图数据库,在构建知识图谱方面有哪些优势?
(1)Neo4j的易用性较好,功能也很强大
(2)通过专门的Cypher语言完成各类图数据的查询和分析,
(3)提供多种编程语言接口,
(4)支持在集群上进行超大表的分布式查询
(5)支持Windows和Linux部署
第6章 键值对数据库Redis
1.Redis的常见应用场景。
很多大型电商网站、视频直播和游戏应用等,存在大规模数据访问,对数据查询效率要求高,且数据结构简单,不涉及太多关联查询。
(1)(电商网站)秒杀抢购
(2)(视频直播)消息弹幕
(3)(游戏应用)游戏排行榜
(4)(社交APP)返回最新评论/回复
2.描述Redis的数据类型。
Redis支持的数据类型有字符串、散列、列表、集合、有序集合。
3.Redis数据库的集群架构(拓扑架构)。(或课本P178-179)
(1)主从复制:主从结构具有读写分离,提高效率、数据备份,提供多个副本等优点。
(2)哨兵机制: 哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 master 并将所有的 slave 连接到新的 master。
(3)Redis集群:Redis没有使用一致性哈希机制,而是引入了哈希槽的概念。Redis 集群有16384个哈希槽,集群中所有设备平分这些哈希槽,数据则根据其行键的散列计算结果,映射到不同的哈希槽中。
4.Redis的持久化方式是什么?各自的优缺点?
Redis提供了两种数据持久化存储机制,即RDB和AOF,以实现数据备份和故障恢复等功能。
RDB为Redis默认的持久化存储机制,指在指定时间间隔内将数据保存为快照,其经常用于对整个数据集的备份,存储格式比较紧凑,备份恢复性能较高。但由于是定时备份,因此在上一次备份之后改动的数据会在故障时丢失。
AOF以文本方式逐次记录命令和数据,将它们追加到一个AOF文件末尾。AOF文件的体积较大,且数据恢复的效率较低,但AOF的实时性好,遇到故障时最多损失1s的数据。
5.Redis的事务是什么?怎么操作实现?它和传统的MySQL数据库事务有什么不同。
是什么:Redis支持事务机制,即将多个指令放入一个队列,并批量顺序执行。
不同:这种事务机制和传统关系型数据库的事务机制有所不同,Redis事务并不能保证整个事务的原子性。也就是说,当Redis事务中出现个别语句执行失败时,Redis会继续执行其他语句,而不是回滚整个事务。即其事务机制的实质为命令的批处理机制。
操作实现:在Redis中使用multi和exec指令可以实现事务。
第7章MongoDB原理和使用
1.HBase和Cassandra在架构上有什么不同?各自的架构有什么优缺点?
HBase和Cassandra在架构上的主要区别在于数据存储模型和集群管理方式。HBase是基于Hadoop的分布式列式存储系统,采用HDFS(Hadoop Distributed File System)作为底层存储,并依赖Zookeeper进行集群管理和协调。它是一个强一致性的系统,通常用于需要精确一致性和顺序读取的场景。优点是高效的随机读取和强一致性,但缺点是集群管理复杂且扩展性较差。Cassandra则是一个分布式的列族存储系统,基于对等节点架构,没有中心化的协调服务,采用自定义的分布式协议(Gossip Protocol)进行节点间通信。它支持最终一致性,能够在高可用性和低延迟下进行扩展,适用于需要高可用性和大规模数据处理的场景。Cassandra的优点是扩展性好,支持灵活的配置一致性级别,但缺点是可能会面临一致性问题,尤其是在高并发写入时。总体来说,HBase适合需要强一致性和依赖Hadoop生态系统的场景,而Cassandra适合分布式、大规模、高可用性的数据存储需求。
2.Cassandra表中的主键分为哪几种类型?如何区分它们?
主键、复合键、分区键
当表中只有一个主键,主键就是分区键。当表中有多个主键时,第一个主键是分区键,其他为分簇键
单一主键:主键由单个列构成,仅包含分区键。
复合主键:主键由多个列构成,其中第一部分是分区键,后续部分为分簇键。
分区键:主键的前一部分由多个列组成,表示复合分区键,后续部分是分簇键。
3.Cassandra如何支持数据一致性?
Cassandra通过以下方式支持数据一致性:
(1)一致性级别:为每个操作=定义不同的一致性级别,可以灵活地在一致性、可用性和性能之间进行权衡。
(2)数据副本机制:通过将数据复制到多个节点来提高可用性和容错性,并在读取时通过副本检查确保数据一致性。
(3)冲突解决机制:通过轻量级事务和反向增量修复等机制来确保数据一致性。
(4)合并与修复:定期的后台修复机制保证副本之间的一致性。
(5)最终一致性:Cassandra默认遵循最终一致性模型,但通过可调一致性级别和修复机制,提供了一定的一致性保障。
因此,Cassandra的设计旨在提供高可用性和高性能的同时,通过可调一致性级别确保数据在不同场景下的一致性。
第8章 Hadoop和HBase简介
1. HDFS是否属于NoSQL数据库?请说明用HDFS进行数据管理存在的问题。
HDFS不属于NoSQL数据库。用HDFS进行数据管理存在的问题:
(1)HDFS不支持对数据的随机读写。
(2)HDFS没有数据表的概念,不能提供对数据的表格化存储。
(3)HDFS无法针对行数统计、过滤扫描等常见数据查询功能。
2. HBase采用了什么样的数据结构?
HBase采用的是一种面向列的键值对存储模式。HBase表中,列族是表结构的一部分,需要在建表时预先定义。
列不属于表结构,HBase不会预先定义列名及其数据类型和值域等内容。每一个记录中的每个字段必须记录自己的列名(列标识符)以及值和时间戳。
3. HBase的拓扑结构是什么?每个角色起什么作用?
HBase采用主从式架构,包括一个主节点(Hmaster)和若干个从节点(Hregionserver)。除此之外,还需要Zookeeper来实现节点监控和容错。
(1)Zookeeper是一个分布式协调服务,实现节点监控、活跃主节点选举、配置维护等功能。1.维护元数据的总入口,以及记录Master节点的地址
2.监控集群,如果Hregionserver出现故障,则通知Master,Master会将其负责的分区移交给其他Hregionserver
3.当活跃Master节点故障的情况下,Zookeeper会在备用Master节点中选举一个新的活跃Master节点。
(2)HMaster节点是所有Hregionserver的管理者,负责对Hregionserver的管理范围进行分配,但不负责管理用户数据表。
(3)Hregionserver是用户数据表的实际管理者,在分布式集群中,数据表会进行水平分区,每个Hregionserver只会对一部分分区进行管理——负责数据的写入、查询、缓存和故障恢复等。用户表最终是以文件形式存储在HDFS上,但如何将写入并维护这些文件,则是由Hregionserver负责的。
4. 描述meta表的结构。
列族info中包含三个列:regioninfo、server和serverstartcode。
⚫ Regioninfo中记录了行键范围、列族列表和属性;
⚫ server记录了负责的Regionserver地址;
⚫ serverstartcode则记录了Regionserver的启动时间。
(1.rowkey中第一个分隔符前存的是表名;
2.第二分隔符前存的是region的第一个rowKey:
1)如果这个地方为空的话,表明这是table的第一个region。并且如果一个region中startkey和endkey都为空的为,表明这个table只有一个region;
2)在meta表中,startkey 靠前的region会排在startkey 靠后的region前面。(Hbase中的keys按照字段顺序排序的)。
3.region id代表region的id,通常基于region创建时的timestamp;
4.regioninfo是HRegionInfo的序列化值;5.server是指服务器的地址和端口;
6.serverstartcode是指服务开始的timestamp。)
5. 预写日志(WAL)的作用。
当数据被写入memstore之前,Regionserver会先将数据写入预写日志,预写日志一般被写入HDFS,但键值写入时不会被排序,也不会区分Region。
出现节点宕机、线程重启等问题时,memstore中未持久化的数据会丢失。当Regionserver恢复后,会查看当前WAL中的数据,并将记录进行重放,根据记录的表名和分区名,将数据恢复到指定的store中。
在进行自动或手动的数据持久化操作之后,Regionserver会将不需要的WAL清除掉。
第9章 其他NoSQL数据库简介
1、时序数据库可以用在哪些场景?(4个)
构建监控系统:例如互联网用户行为日志、服务器集群监控、物联网设备监控等。物联网设备通常会产生大量的传感器数据,这些数据需要实时地存储和分析。时序数据库可以高效地存储和查询这些传感器数据,以便提供实时的监控和分析功能。
金融交易记录:金融机构需要记录每一笔交易的时间戳、金额、交易类型等信息。时序数据库可以高效地存储和查询这些交易记录,并提供实时的交易数据分析和预警功能。
气象观测数据:气象观测站可以生成大量的气象数据,如温度、湿度、气压等。时序数据库可以高效地存储和查询这些数据,并提供实时的天气预报和灾害预警功能。
制造业生产监控:制造商需要对生产线上的各种传感器数据进行实时监测和分析。时序数据库可以高效地存储和查询这些数据,并提供实时的生产数据可视化和故障诊断功能。
能源管理:能源管理系统需要实时监测和分析各种能源数据,如电力消耗、能源供应、能源价格等。时序数据库可以高效地存储和查询这些数据,并提供实时的能源数据分析和优化建议功能。
2、时序数据库是否需要具备灵活的数据更新能力?为什么?
时序数据库通常不需要具备灵活的数据更新能力,因为时序数据一旦记录,通常不需要修改。时序数据库的设计目标是高效地存储和查询时间序列数据,而非频繁地修改或更新数据。因此,时序数据库并不需要具备像传统关系型数据库那样灵活的更新能力,更多的是通过数据追加、聚合和自动删除策略来管理数据。对数据更新的需求较少,因此时序数据库的设计通常专注于高效插入和高效查询,而不是灵活的数据修改。
3.搜索引擎的工作原理是什么?
搜索引擎的工作原理涉及多个复杂的步骤,主要包括抓取、索引、排名和返回结果。
(1)抓取:爬虫抓取网页上的信息。
(2)索引:将抓取到的数据整理成索引,以便快速检索。
(3)排名:通过排名算法,基于多个因素对网页进行排序。
(4)返回结果:搜索引擎根据排名返回最相关的结果。
4.搜索引擎中如何对搜索结果排序的?
搜索引擎通过复杂的算法对搜索结果进行排序,主要考虑多个因素。首先,搜索引擎会分析页面与查询关键词的匹配度,评估页面的相关性。其次,外部链接的质量和数量、页面的权威性、用户体验也会影响排名。此外,页面内容的原创性和质量、用户的搜索意图以及网站的技术优化等都是重要的排名因素。搜索引擎还会根据用户行为数据,如点击率和停留时间,来进一步调整排名。最终,搜索引擎目标是提供最相关、最有价值的内容,以满足用户的需求。
二、数据库设计
考试题型:
1.给你一个E-R,让你画出HBase或者MangoDB的数据库设计
2.给你一种数据库,让你转化成另外一种数据库
3.根据实际场景选择合适的数据库并进行设计
复习参考:
一、HBase数据库设计(列式存储)
(表名、行键Row Key、列族Column Family、列名Column Name和 时间戳Timestamp):
考试总结:考试先写文字描述数据库,然后进行画表格
(1)描述数据库设计,数据库有几个表,每个表存储什么内容。对于每个表,几个列族,列族存储什么内容。行键怎么设计,有几个列名,都分别存储什么内容等,以及如何进行实体和关系的增删改查。
(2)画出设计的数据库,并填入实际数据,每个表至少包含2个行键,每个行键至少包含2个列名和值。
(3)如果给的是E-R图,让你用HBase进行存储应该如何做,二者的对应关系:
实体:每个实体可以对应一个 HBase 表。例如:students 表对应学生,courses 表对应课程,enrollments 表对应学生选课。
属性:每个属性对应 HBase 中的列族和列。(学生的姓名和年龄可在 personal_info 列族下)
关系:多对多关系通常通过特殊的设计(如组合行键)来处理。例如,学生选课的关系通过 StudentID_CourseID 的组合行键来表示。
二、MangoDB数据库设计(文档型数据库)
(数据库、集合、文档、字段、索引、字段)
考试总结:考试先写文字描述数据库,然后写具体的数据。
(1)描述数据库设计。数据库有几个集合,每个集合存储什么内容。集合中文档的设计,有哪些键,分别存储什么内容,以及如何进行实体和关系的增删改查。
(2)画出设计的MongoDB数据库,并填入实际数据,每个集合至少2个文档,每个文档至少3个键值对。
(3)E-R图与MangoDB的映射转化关系:
ER 图中的实体可以直接映射为 MongoDB 的集合。
实体的属性映射为 MongoDB 文档中的字段。
关系通过嵌套文档或引用来表示,具体方式取决于关系的性质和查询需求。
嵌套文档适用于数据之间关系较紧密,且经常一起查询的场景。引用适用于关系较松散,数据分散存储的场景。
(4)HBase和MangoDB的映射关系:
HBase 行键 → MongoDB _id
HBase Column Families 列族→ MongoDB 文档中的嵌套字段
HBase Column Qualifiers 列名→ MongoDB 字段名
HBase TimeStamps → MongoDB 中的时间戳字段
参考写法:
三、Neo4j–图数据库转成HBase和MangoDB
(1)描述数据库设计。数据库有几种节点标签,每种标签的节点包括什么属性;有几种关系标签,每种关系连接什么类型的节点,包括什么属性;如何进行实体和关系的增删改查。
(2) 画出设计的数据库,并填入实际数据,至少包含2种标签,每种标签至少2个节点,2个属性;至少包含一种关系标签,每种关系标签至少2个关系,2个属性。
四、Redis键值对数据库
(1)描述数据库设计。数据库有几种键,分别存储什么内容,采用什么数据类型,以及如何进行数据的增删改查。
(2)画出设计的Redis数据库,并填入实际数据。