NoSQL11
NoSQL数据库技术与应用

NoSQL数据库技术与应用随着大数据时代的到来,传统的关系型数据库面临着一些挑战:数据量庞大、高并发读写、数据结构多样性等。
为了应对这些挑战,NoSQL(Not only SQL)数据库应运而生,并且在互联网、移动互联网、物联网等领域得到广泛应用。
本文将介绍NoSQL数据库技术的概念、分类,以及其在实际应用中的使用场景和优势。
一、NoSQL数据库技术概览NoSQL数据库是指非关系型数据库,它不基于传统的关系型数据库模型(如表格),而是采用了其他数据存储结构,如文档、键值对、列族、图等方式。
NoSQL数据库以其高扩展性、高性能和灵活性而闻名。
NoSQL数据库技术的主要特点包括:1. 没有固定的模式:NoSQL数据库不要求先定义或建立数据库模式,在数据存储时不存在固定的模式要求,可以灵活地存储各种数据类型及其关系。
2. 高可扩展性:NoSQL数据库可以方便地进行分布式部署和横向扩展,支持在海量数据环境中进行高效的读写操作。
3. 高性能:NoSQL数据库的底层存储结构对于快速访问和查询数据进行了优化,能够提供出色的读取和写入性能。
4. 大数据处理能力:NoSQL数据库在处理大数据量和高并发读写方面有着良好的表现,适合应对各种大数据场景。
二、NoSQL数据库的分类NoSQL数据库根据其数据存储模型和用途可以划分为多个子类。
以下是常见的NoSQL数据库分类:1. 键值存储(Key-Value stores):使用键值对来存储和访问数据,适合存储简单的无结构化数据。
常见的键值存储数据库有Redis、Riak等。
2. 文档数据库(Document databases):将数据以文档形式存储,文档之间可以嵌套,是一种无模式化的存储方式。
常见的文档数据库有MongoDB、Couchbase等。
3. 列族数据库(Column-Family stores):将数据存储为列族的方式,适合存储具有规则的数据集合,常用于大规模数据的存储和分析。
非关系型数据库(NoSQL)技术考试

非关系型数据库(NoSQL)技术考试(答案见尾页)一、选择题1. 什么是非关系型数据库(NoSQL)?A. 一种基于关系的数据库技术B. 一种不基于关系的数据库技术C. 一种只能存储结构化数据的数据库技术D. 一种只能存储半结构化数据的数据库技术2. NoSQL数据库与传统的关系型数据库的主要区别是什么?A. 数据存储方式B. 数据模式C. 查询语言D. 事务处理3. 在NoSQL数据库中,哪种数据模型是最常用的?A. 关系模型B. 键值对模型C. 文档模型D. 列模型4. 在NoSQL数据库中,哪种类型的键值对存储是最高效的?A. 单键值存储B. 多键值存储C. 哈希键值存储D. 字符串键值存储5. 什么是NoSQL数据库中的列族存储?A. 一种将数据分组成多个列的存储方式B. 一种将数据分组成多个行的存储方式C. 一种将数据按行分组的存储方式D. 一种将数据按列分组的存储方式6. 在NoSQL数据库中,哪种类型的数据库适合处理大规模数据集?A. 关系型数据库B. 键值对数据库C. 文档数据库D. 列族数据库7. NoSQL数据库与传统关系型数据库在数据一致性和可用性方面的权衡是如何实现的?A. 通过增加冗余数据来提高可用性B. 通过减少冗余数据来提高一致性C. 通过使用分布式事务来保证数据一致性D. 通过使用副本集来保证数据可用性和一致性8. 在NoSQL数据库中,哪种类型的数据库适合需要高并发读写的场景?A. 关系型数据库B. 键值对数据库C. 文档数据库D. 列族数据库9. 什么是NoSQL数据库中的分布式缓存?A. 一种内存中的缓存技术,用于提高数据访问速度B. 一种分布式的、可扩展的数据存储技术,用于提高数据访问速度C. 一种分布式的内存数据库技术,用于提高数据访问速度D. 一种分布式的、可扩展的缓存技术,用于提高数据访问速度10. 什么是非关系型数据库(NoSQL)?A. 一种基于关系的数据库技术B. 一种不基于关系的数据库技术C. 一种只能存储结构化数据的数据库技术D. 一种只能存储非结构化数据的数据库技术11. NoSQL数据库与传统的关系型数据库的主要区别是什么?B. 查询语言C. 一致性模型D. 扩展性12. 在NoSQL数据库中,哪种类型的数据库最适合处理大量非结构化数据?A. 文档型数据库B. 键值对数据库C. 列式数据库D. 图形数据库13. 什么是NoSQL数据库中的图形数据库?A. 一种基于关系的数据库技术B. 一种不基于关系的数据库技术,用于存储和查询复杂的关系数据C. 一种只支持图结构的数据库D. 一种不支持事务的数据库14. 在NoSQL数据库中,哪种类型的数据库通常用于实时数据分析?A. 文档型数据库B. 键值对数据库C. 列式数据库D. 图形数据库15. NoSQL数据库的扩展性是指什么?A. 数据库可以自动扩展其存储容量B. 数据库可以通过添加更多的服务器来提高性能C. 数据库可以通过读写分离来提高性能D. 数据库可以通过复制数据来实现高可用性16. 在NoSQL数据库中,哪种类型的数据库通常用于存储时间序列数据?A. 文档型数据库B. 键值对数据库C. 列式数据库17. 什么是非关系型数据库(NoSQL)?A. 一种关系型数据库技术B. 一种面向文档的数据库技术C. 一种基于键值存储的数据库技术D. 一种支持高并发读写的数据库技术18. NoSQL数据库与传统的关系型数据库的主要区别是什么?A. 数据模型B. 查询语言C. 一致性模型D. 扩展性19. 以下哪个选项是NoSQL数据库中的常用数据操作?A. 插入B. 更新C. 删除D. 查询20. 在NoSQL数据库中,哪种类型的数据库具有水平扩展的特性?A. 关系型数据库B. 文档型数据库C. 键值型数据库D. 列族型数据库21. NoSQL数据库中的列族型数据库(如Cassandra)通常用于哪种场景?A. 高并发读写B. 高可用性C. 大量小文件存储D. 实时数据分析22. 在NoSQL数据库中,哪种类型的数据库适用于需要复杂查询的场景?B. 文档型数据库C. 键值型数据库D. 列族型数据库23. NoSQL数据库中的键值型数据库(如Redis)通常用于哪种场景?A. 缓存B. 数据库缓存C. 高可用性D. 实时数据分析24. 在NoSQL数据库中,哪种类型的数据库具有高度的数据一致性和完整性?A. 关系型数据库B. 文档型数据库C. 键值型数据库D. 列族型数据库25. 什么是非关系型数据库(NoSQL)?A. 一种关系型数据库技术B. 一种面向文档的数据库技术C. 一种面向列的数据库技术D. 一种关系型数据库的非关系型变种26. NoSQL数据库有哪些特点?A. 高可扩展性B. 高可用性C. 灵活的数据模型D. 严格的模式设计27. 在NoSQL数据库中,哪种数据模型是最常用的?A. 关系模型B. 文档模型C. 列模型28. NoSQL数据库与传统关系型数据库的主要区别是什么?A. 数据模型B. 事务处理C. 查询语言D. 数据一致性模型29. 在NoSQL数据库中,哪种类型的数据库通常用于存储大量非结构化数据?A. 键值存储B. 文档存储C. 列存储D. 图存储30. NoSQL数据库中的键值存储有何特点?A. 键值对结构,允许快速查找和存储B. 提供复杂的查询功能C. 支持事务处理D. 适用于高并发读写场景31. 列存储有何特点?A. 数据按列进行存储,适合大规模数据的存储和分布式处理B. 提供高性能的读写操作C. 适用于需要高效数据压缩和编码的场景D. 支持复杂的数据查询和聚合操作32. 图存储有何特点?A. 数据以图的形式存储,适合处理复杂的关系数据B. 适用于社交网络、推荐系统等场景C. 提供高效的路径查询和连接操作D. 支持高并发的读写和实时更新33. 在NoSQL数据库中,哪种数据库通常用于需要高可用性和可扩展性的场景?B. 文档存储C. 列存储D. 图存储34. 什么是非关系型数据库(NoSQL)?A. 是一种关系型数据库技术B. 提供分布式数据存储C. 支持结构化数据查询D. 采用面向列的存储方式35. NoSQL数据库与传统的关系型数据库的主要区别是什么?A. 数据模型B. 查询语言C. 一致性模型D. 扩展性36. 在NoSQL数据库中,哪种数据模型被广泛使用?A. 关系模型B. 键值对模型C. 文档模型D. 图模型37. NoSQL数据库中的数据一致性是如何保证的?A. 通过事务B. 使用分布式锁C. 通过副本集D. 通过分片38. 以下哪个不是NoSQL数据库的特点?A. 高可扩展性B. 高可用性C. 灵活的数据模型D. 严格的数据模式39. 在NoSQL数据库中,哪种类型的数据库具有固定的表结构?A. 列族数据库B. 文档数据库C. 关系数据库D. 集合数据库40. 在NoSQL数据库中,哪种类型的数据库支持高并发读写?A. 列族数据库B. 文档数据库C. 关系数据库D. 集合数据库41. 以下哪个不是NoSQL数据库的优势?A. 灵活的数据模型B. 高可用性C. 严格的数据模式D. 高扩展性42. 在NoSQL数据库中,哪种类型的数据库支持水平扩展?A. 列族数据库B. 文档数据库C. 关系数据库D. 集合数据库二、问答题1. 什么是非关系型数据库(NoSQL)?2. NoSQL数据库有哪些类型?3. NoSQL数据库与传统关系型数据库的主要区别是什么?4. NoSQL数据库的优势是什么?5. 如何选择合适的NoSQL数据库?6. 在NoSQL数据库中,如何实现数据的一致性?7. NoSQL数据库在大数据和实时分析方面的优势如何体现?8. 如何在NoSQL数据库中进行数据备份和恢复?参考答案选择题:1. B2. A3. C4. D5. A6. D7. D8. D9. D 10. B11. ABCD 12. A 13. C 14. D 15. B 16. C 17. B 18. D 19. ABCD 20. D 21. ACD 22. A 23. AB 24. A 25. C 26. ABC 27. C 28. D 29. B 30. A 31. AC 32. ABCD 33. D 34. B 35. D 36. C 37. C 38. D 39. C 40. A 41. C 42. A问答题:1. 什么是非关系型数据库(NoSQL)?非关系型数据库(NoSQL)是一类不同于传统的关系型数据库的存储数据的方法。
SQL错误代码汇总

SQL错误代码汇总0 操作成功完成。
1 功能错误。
2 系统找不到指定的⽂件。
3 系统找不到指定的路径。
4 系统⽆法打开⽂件。
5 拒绝访问。
6 句柄⽆效。
7 存储控制块被损坏。
8 存储空间不⾜,⽆法处理此命令。
9 存储控制块地址⽆效。
10 环境错误。
11 试图加载格式错误的程序。
12 访问码⽆效。
13 数据⽆效。
14 存储器不⾜,⽆法完成此操作。
15 系统找不到指定的驱动器。
16 ⽆法删除⽬录。
17 系统⽆法将⽂件移到不同的驱动器。
18 没有更多⽂件。
19 介质受写⼊保护。
20 系统找不到指定的设备。
21 设备未就绪。
22 设备不识别此命令。
23 数据错误 (循环冗余检查)。
24 程序发出命令,但命令长度不正确。
25 驱动器⽆法找出磁盘上特定区域或磁道的位置。
26 ⽆法访问指定的磁盘或软盘。
27 驱动器找不到请求的扇区。
28 打印机缺纸。
29 系统⽆法写⼊指定的设备。
30 系统⽆法从指定的设备上读取。
31 连到系统上的设备没有发挥作⽤。
32 进程⽆法访问⽂件,因为另⼀个程序正在使⽤此⽂件。
33 进程⽆法访问⽂件,因为另⼀个程序已锁定⽂件的⼀部分。
36 ⽤来共享的打开⽂件过多。
38 到达⽂件结尾。
39 磁盘已满。
50 不⽀持⽹络请求。
51 远程计算机不可⽤。
52 在⽹络上已有重复的名称。
53 找不到⽹络路径。
54 ⽹络忙。
55 指定的⽹络资源或设备不再可⽤。
56 已到达⽹络 BIOS 命令限制。
57 ⽹络适配器硬件出错。
58 指定的服务器⽆法运⾏请求的操作。
59 发⽣意外的⽹络错误。
60 远程适配器不兼容。
61 打印机队列已满。
62 ⽆法在服务器上获得⽤于保存待打印⽂件的空间。
63 删除等候打印的⽂件。
100 ⽆法创建另⼀个系统信号灯。
101 另⼀个进程拥有独占的信号灯。
102 已设置信号灯且⽆法关闭。
103 ⽆法再设置信号灯。
104 ⽆法在中断时请求独占的信号灯。
105 此信号灯的前⼀个所有权已结束。
NoSQL数据库学习教程

NoSQL数据库学习教程本文档由整理发布。
1序2思想篇2CAP2最终一致性2变体2BASE2其他2I/O的五分钟法则2不要删除数据2RAM是硬盘,硬盘是磁带2Amdahl定律和Gustafson定律2万兆以太网3手段篇3一致性哈希3亚马逊的现状3算法的选择3Quorum NRW3Vector clock3Virtual node3gossip3Gossip (State Transfer Model)3Gossip (Operation Transfer Model)3Merkle tree3Paxos3背景3DHT3Map Reduce Execution3Handling Deletes3存储实现3节点变化3列存3描述3特点4软件篇4亚数据库4MemCached4特点4内存分配4缓存策略4缓存数据库查询4数据冗余与故障预防4Memcached客户端(mc)4缓存式的Web应用程序架构4性能测试4dbcached4Memcached 和dbcached 在功能上一样吗?4列存系列4Hadoop之Hbase4耶鲁大学之HadoopDB4GreenPlum4FaceBook之Cassandra4Cassandra特点4Keyspace4Column family(CF)4Key4Column4Super column4Sorting4存储4API4Google之BigTable4Yahoo之PNUTS4特点4PNUTS实现4Record-level mastering 记录级别主节点4PNUTS的结构4Tablets寻址与切分4Write调用示意图4PNUTS感悟4微软之SQL数据服务4非云服务竞争者4文档存储4CouchDB4特性4Riak4MongoDB4Terrastore4ThruDB4Key Value / Tuple 存储4Amazon之SimpleDB4Chordless4Redis4Scalaris4Tokyo cabinet / Tyrant4CT.M4Scalien4Berkley DB4MemcacheDB4Mnesia4LightCloud4HamsterDB4Flare4最终一致性Key Value存储4Amazon之Dynamo4功能特色4架构特色4BeansDB4简介4更新4特性4性能4Nuclear4两个设计上的Tips4Voldemort4Dynomite4Kai4未分类4Skynet4Drizzle4比较4可扩展性4数据和查询模型4持久化设计5应用篇5eBay 架构经验5淘宝架构经验5Flickr架构经验5Twitter运维经验5运维经验5Metrics5配置管理5Darkmode5进程管理5硬件5代码协同经验5Review制度5部署管理5团队沟通5Cache5云计算架构5反模式5单点失败(Single Point of Failure)5同步调用5不具备回滚能力5不记录日志5无切分的数据库5无切分的应用5将伸缩性依赖于第三方厂商5OLAP5OLAP报表产品最大的难点在哪里?5NOSQL们背后的共有原则5假设失效是必然发生的5对数据进行分区5保存同一数据的多个副本5动态伸缩5查询支持5使用Map/Reduce 处理汇聚5基于磁盘的和内存中的实现5仅仅是炒作?6附6感谢6版本志6引用序日前国内没有一套比较完整的NoSQL数据库资料,有很多先驱整理发表了很多,但不是很系统。
NoSQL是什么意思

NoSQL是什么意思今天⼩编带⼤家了解下NoSQL,从⼴义上说,NoSQL指的是⾮关系型数据库,说的其实不是不⽤SQL,⽽是不只是SQL(NOT ONLY SQL)。
NoSQL旨在打破关系型数据库的统治格局,解决关系型数据库解决不了的问题。
各个NoSQL数据库都有⼀个共同的特点,就是能存储海量的数据。
NoSQL没有复杂的关系模式,库中的表是可以拆分的。
⼏乎所有的NoSQL数据库都没有数据表(table)的概念,取⽽代之的是⽂档(document)。
⽽⽂档就是⼀个key-value(键-值)⽅式存储数据的结构。
⽐如{"item":"cigarette","brand":"Marlboro"}{"item":"liqor","brand":"Bacardi","qty":10}。
把很多⽂件(document)存储到⼀起的结构式集合(collection),⽽同⼀个集合(collection)⾥⾯的⽂件(document)的结构是不完全⼀致的。
NoSQL对数据的存储类型没有要求,什么都能往⾥⾯存,这也是NoSQL可以存储图像等复杂⽂件的原因。
其中存储专业图的NoSQL数据库是Neo4J,存储⽂档⽐较占优势的是MongoDB,其他还有Cassandra等,HBASE也是⼀个NoSQL数据库。
下⾯我们就MongoDB做⼀个简单介绍:MongoDB是⼀个基于分布式⽂件存储的数据库,由C++编写,旨在为WEB应⽤提供可扩展的⾼性能数据存储解决⽅案。
他⽀持的数据结构⾮常松散,是类似json的bjson格式,因此他可以存储⽐较复杂的数据类型。
MongoDB⽀持的查询语⾔⾮常强⼤,其语法类似⾯向对象的查询语⾔,⼏乎可以实现类似关系数据库单表查询的绝⼤部分功能,⽽且还⽀持对数据建⽴索引。
数据库的NoSQL与NewSQL比较

数据库的NoSQL与NewSQL比较数据库管理系统是计算机科学中的重要组成部分,用于存储、管理和检索数据。
传统的关系型数据库在数据处理领域发挥了巨大的作用,但是随着互联网规模的不断扩大,传统数据库在处理大规模、高并发、非结构化数据方面面临着一些挑战。
为了应对这些问题,出现了新型的数据库技术,例如NoSQL与NewSQL。
1. NoSQL数据库NoSQL(Not Only SQL)是一种非关系型数据库,与传统的关系型数据库相比,NoSQL更加灵活、可扩展和容错。
NoSQL数据库在云计算、大数据分析、实时应用等领域得到广泛应用。
与关系型数据库不同,NoSQL数据库不需要提前定义表结构,数据以键值对的形式存储,并且支持水平扩展。
NoSQL数据库一般分为键值存储型、文档型、列存储型和图形数据库等。
2. New SQL数据库NewSQL是对传统关系型数据库的改进和扩展,旨在解决传统数据库在水平扩展和高并发方面的不足。
NewSQL数据库保留了关系型数据库的ACID特性(原子性、一致性、隔离性和持久性),并通过新的架构和算法提高了数据库的性能和可扩展性。
NewSQL数据库适用于大规模的在线事务处理(OLTP)和在线分析处理(OLAP)。
一些常见的NewSQL数据库有VoltDB、CockroachDB和TiDB等。
3. NoSQL与NewSQL的比较3.1 数据模型:NoSQL数据库适用于非结构化数据,不需要预先定义表结构,更加灵活。
而NewSQL数据库保留了关系型数据库的数据模型,适用于结构化数据。
3.2 数据一致性:NoSQL数据库通常追求最终一致性,即数据在分布式环境下可能会有一定的延迟,数据副本之间可能存在不一致。
而NewSQL数据库保证强一致性,通过同步和事务保证数据的一致性。
3.3 扩展性:NoSQL数据库通过水平扩展来应对大规模数据和高并发请求,可以添加更多的服务器节点。
NewSQL数据库也支持水平扩展,但是由于保留了关系型数据库的ACID特性,扩展性可能受到一定限制。
noSQL数据库

为什么使用NoSQL数据库
对海量数据的高效率存储和访问的需求
• 对于大型的SNS网站,每天用户产生海量的 用户动态,以国外的Friendfeed为例,一 个月就达到了2.5亿条用户动态,对于关系 数据库来说,在一张2.5亿条记录的表里面 进行SQL查询,效率是极其低下乃至不可忍 受的。再例如大型web网站的用户登录系统, 例如腾讯,盛大,动辄数以亿计的账号, 关系数据库也很难以应付。
NoSQL数据库 非关系型数据库
NoSQL数据库
目录
NoSQL数据库简介
为什么使用NoSQL数据库
NoSQLCAP原理
NoSQL数据库应用
NoSQL数据库简介
• NoSQL,即是不提供SQL功能的数据库,是一项全新的数据库革命性的 运动。NoSQL早期就有人提出,发展至2009年趋势越发高涨。NoSQL是 指非关系型数据库,分布式,不提供ACID的数据库设计模式。 • ACID,是指在数据库管理系统(DBMS)中,事务(transaction)所 具有的四个特性:原子性、(atomicity)、一致性(consistency)、 独立性(isolation)、持久性(durability)。 • 关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等 数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及 实体之间的各种联系均用关系模型来表示。标准数据查询语言SQL就 是一种基于关系数据库的语言,这种语言执行对关系数据库中的数据 的检索和操作。关系模型由关系数据结构、关系操作集合、关系完整 性约束三部分组成。
• (1) A写入V的新值V1。 • (2) N1向N2发送消息M以更新V值。 • (3) B读取V的新值V2
但是现实可能是这样子的
nosql分布式数据库期末考试题

一、选择题1. 1.以下数据库中,不是关系数据库的为( D)A、MysqlB、SqlServerC、OracleD、Redis2. 2.结构化查询语句中,数据定义语言的缩写为( A)A、DDLB、DQLC、DMLD、DCL3. 3.关系数据库的优点不包括(D )A、容易理解B、易于维护C、支持 SQLD、读写性能高1.MongoDB采用哪种语言编写( )A、JavaB、PythonC、C++D、go4. 4.NoSQL 数据库的特点不包括( C)A、分布式B、不基于 ACIDC、支持严格事务D、易拓展5. 5.CAP 理论的描述中,错误的是( B)A、 C 一致性B、A 原子性C、P 分区容错性D、很难三者兼顾6. 6.本门课程中的知识图谱案例是基于什么数据库实现的(B )A 、MongoDB B 、 Neo4jC 、Redis D、HBase7.HBase 的特点不包括( )A、容量巨大B、列存储C、稀疏性D、支持 join 操作8.HBase分布式存储和负载均衡的最小单元为( )A、RegionB、StoreC、HFileD、MemStore9.7.关于 minor 合并与 major 合并说法错误的是(B )A、 minor 合并是把多个小的 HFile 合并成一个大的 HFile。
B 、minor 合并中,被标记删除的旧文件被移除。
C、 major 合并针对的是给定 Region 的一个列族的所有 HFile。
D、 major 合并时会清理 minor 合并中被标记删除的 HFile。
10.8.HBase 的特点不包括(D )A、容量巨大B、列存储C、稀疏性D、支持 join 操作11.9.Hbase 的基本组件不包括( C)A、HMasterB、RegionServerC、DataNodeD、Zookeeper12.10.HBase 分布式存储和负载均衡的最小单元为(A )A、RegionB、StoreC、HFileD、MemStore13.11.关于 MongoDB 集合命名规则错误的是(D )A、不能以“system.”开头,因为这是系统集合的保留前缀B、集合名中不能含有保留字符 $C、不能含是空字符串D、集合名称最大值为 200 字节14.MongoDB中主键的默认格式是( )A、UUIDB、sequenceC、auto_incrementD、ObjectId15.以下哪种逻辑结构不属于MongoDB( )A.表tableB.数据库dbC.集合collectionD.文档document16.在我们学习的NoSQL数据库中,以下哪个是内存数据库?()A.HBaseB.RedisC.MongoDBD.Bigtable17.Neo4j图形数据库最适合应用在以下那种场景?( )A.快递物流数据管理B.社会交际数据管理C.家庭用电数据管理D.企业考勤数据管理18.HBase的技术借鉴了google的以下哪个技术?()A.MapReduceB.BigTableC.ChubbyD.Google File19.12.以下哪个选项不是 MongoDB 的特性(D )A、高可靠性B、支持分片C、面向文档D、支持严格事务20.13.下列描述中,哪一个不是对创建副本集作用的描述( A)A、加重单台服务器的负载。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
参考书
2013.4.30 DATAGURU专业数据分析网站 黄志洪
3
范式化
2013.4.30 DATAGURU专业数据分析网站 黄志洪
4
连接带来的问题
硬盘的机械结构决定了读多表会造成延时 典型的ERP系统可能有上万个表(要处理不少非结构化,半结构化数据),为了提高速 度,需要大量使用内存
中国第一的网上知识流转阵地。
关于逆向收费式网络的详情,请看我们的培训网站
2013.4.30 DATAGURU专业数据分析网站 黄志洪
28
FAQ时间
DATAGURU专业数据分析网站
29
设计目标 1 存储“社交图”,主要有追随关系,圈子关系 2 保存用户基本信息 3 保存用户内容
2013.4.30 DATAGURU专业数据分析网站 黄志洪
22
模式设计一:er
2013.4.30 DATAGURU专业数据分析网站 黄志洪
23
模式设计二:social.post
2013.4.30 DATAGURU专业数据分析网站 黄志洪
24
模式设计三:social.wall
2013.4.30 DATAGURU专业数据分析网站 黄志洪
25
续
2013.4.30 DATAGURU专业数据分析网站 黄志洪
26
模式设计四:social.news
2013.4.30 DATAGURU专业数据分析网站 黄志洪
27
炼系库情形下的一致性)
2013.4.30 DATAGURU专业数据分析网站 黄志洪
11
例子(MongoDB)
2013.4.30 DATAGURU专业数据分析网站 黄志洪
12
模式设计
无模式的MongoDB为什么需要模式设计? 模式设计必须考虑场景需求的完备性 基于范式化考虑模式设计(数据冗余和操作方便) 基于查询性能考虑模式设计 基于查询实现方便考虑模式设计
Dataguru(炼数成金)是专业数据分析网站,提供教育,媒体,内容,社区,出版, 数据分析业务等服务。我们的课程采用新兴的互联网教育形式,独创地发展了逆向收 费式网络培训课程模式。既继承传统教育重学习氛围,重竞争压力的特点,同时又发 挥互联网的威力打破时空限制,把天南地北志同道合的朋友组织在一起交流学习,使 到原先孤立的学习个体组合成有组织的探索力量。并且把原先动辄成千上万的学习成 本,直线下降至百元范围,造福大众。我们的目标是:低成本传播高价值知识,构架
2013.4.30 DATAGURU专业数据分析网站 黄志洪
13
场景一:访问日志数据库
几种模式设计
2013.4.30 DATAGURU专业数据分析网站 黄志洪
14
几种模式设计
2013.4.30 DATAGURU专业数据分析网站 黄志洪
15
查询
按照不同的时间段对不同的维度进行数据统计 列出对指定页面的访问事件 列出指定日期(时间段)的全部访问事件 列出指定ip(或主机名)的全部访问事件 按日期或页面计数 分片设计 预统计 层次递进统计
NoSQL数据库引航 第11周
2013.4.30 DATAGURU专业数据分析网站 黄志洪
法律声明
【声明】本视频和幻灯片为炼数成金网络课程的教 学资料,所有资料只能在课程内使用,不得在课 程以外范围散播,违者将可能被追究法律和经济
责任。
课程详情访问炼数成金培训网站
19
操作
创建新内容 上传图片 定位内容 根据tag检索内容 分片设计
2013.4.30 DATAGURU专业数据分析网站 黄志洪
20
评论存储设计
每个评论一个文档 嵌入所有评论 混合设计 分片考虑
2013.4.30 DATAGURU专业数据分析网站 黄志洪
21
场景三:社交网络图数据库设计
2013.4.30 DATAGURU专业数据分析网站 黄志洪
5
反范式化
什么是反范式化? 为什么要反范式化?
2013.4.30 DATAGURU专业数据分析网站 黄志洪
6
MongoDB:Embedding or Referencing?
Embedding类似于反范式化,通常基于性能或一致性考虑(Mongodb不能保证多集 合操作时的一致性) Referencing类似于范式化,但MongoDB不支持连接,必须通过多次连续查询进行
2013.4.30 DATAGURU专业数据分析网站 黄志洪
7
什么时候采用referencing?
例子,bklog系统,一篇文章有数以百计的评论,如果把评论embedding到文章集合 里可能造成问题 大的文档需要占用更多的内存 不断变大的文档(比如不断有新的评论)会被不断迁移到更大的空间,造成类似 Oracle行链这类问题 文档大小上限为16MB
2013.4.30 DATAGURU专业数据分析网站 黄志洪
16
场景二:CMS设计
需要考虑的内容
2013.4.30 DATAGURU专业数据分析网站 黄志洪
17
模式设计
2013.4.30 DATAGURU专业数据分析网站 黄志洪
18
GridFS
2013.4.30 DATAGURU专业数据分析网站 黄志洪
2013.4.30 DATAGURU专业数据分析网站 黄志洪
8
多对多关系
1对n关系可以使用embedding M对n关系的处理
2013.4.30 DATAGURU专业数据分析网站 黄志洪
9
一致性
保证数据能从某一“一致状态”过渡到另一“一致状态”
2013.4.30 DATAGURU专业数据分析网站 黄志洪