SQL与NoSQL数据库入门基础知识详解

SQL与NoSQL数据库入门基础知识详解

这几年的大数据热潮带动了一激活了一大批hadoop学习爱好者。有自学hadoop的,有报名培训班学习的。所有接触过hadoop的人都知道,单独搭建hadoop里每个组建都需要运行环境、修改配置文件测试等过程。对于我们这些入门级新手来说简直每个都是坑。国内的发行版hadoop那么多,似乎都没有来填这样的坑?不知道是没法解决,还是没有想到?

安装运行环境这样的坑,那些做国产大数据底层开发的,如果不能解决这个问题的话,我觉得不是一个合格的大数据底层开发机构。不过比较幸运的是,三月的时候申请拿到了一个DKHadoop的三节点发行版,大快开源的发行版hadoop。这个国产发行版就把各种常用的组建比如:HDFS,Hbase,Storm,Flume,Kafka,Mahout,Es等集成到了一起,终于不需要绞尽脑汁去折腾底层平台的搭建与配置了,简单的完成安装即可。这对于hadoop初学者来说,可谓是福音了。

扯的稍微多了点,后面在给家分享DKHadoop的安装以及使用,今天想给大家分享的是大数据基础内容中的数据库:SQL与NOSQL。理解这两种数据,只需要搞清楚二者的概念以及有何不同即可。

二者概念:

1、SQL数据库,指关系型数据库。主要代表:SQL Server,Oracle,MySQL(开源),PostgreSQL(开源)。

2、NoSQL泛指非关系型数据库。主要代表:MongoDB,Redis,CouchDB。

二者区别:

SQL数据与NOSQL数据的区别其实还是比较大的,总结起来基本可以从以下几个方面进行对比分析:

(1)使用场景:SQL 是数字,它最适合明确的定义,精确规范的独立项目。典型的使用案例是在线商城和银行系统; NoSQL 是模拟,它最适合无固定要求的组织数据。典型的使用案例是社交网络,客户管理和网络分析系统。

(2)存储方式:SQL数据存在特定结构的表中,SQL通常以数据库表形式存储数据。举个例子,存个学生借书数据:

NoSQL存储方式比较灵活,存储方式可以是JSON文档、哈希表或者其他方式。比如使用类JSON文件存储上表中熊大的借阅数据:

(3)SQL中如果需要增加外部关联数据的话,规范化做法是在原表中增加一个外键关联外部数据表。例如需要在借阅表中增加审核人信息,先建立一个审核人表:

再在原来的借阅人表中增加审核人外键,这样如果我们需要更新审核人个人信息的时候只需要更新审核人表而不需要对借阅人表做更新。

而在NoSQL中除了这种规范化的外部数据表做法以外,我们还能用如下的非规范化方式把外部数据直接放到原数据集中,以提高查询效率。缺点也比较明显,更新审核人数据的时候将会比较麻烦。

(4)数据耦合性 :SQL中不允许删除已经被使用的外部数据,例如审核人表中的"熊三"已经被分配给了借阅人熊大,那么在审核人表中将不允许删除熊三这条数据,以保证数据完整性;而NoSQL中则没有这种强耦合的概念,可以随时删除任何数据。

(5)查询性能:在相同水平的系统设计的前提下,因为NoSQL中省略了JOIN查询的消耗,故理论上性能上是优于SQL的。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Spark学习技巧

浅谈数据分库分表之道

为什么讨论分库分表 在服务器后端技术人员的成长路线上,分片(Sharding)思想的理解和把握是绕不过去的门槛,而数据库分库分表可能是讲述拆分思想最好的教材,大...

38350
来自专栏杨建荣的学习笔记

海量数据迁移之冲突数据筛查(r2 第1天)

对于数据迁移来说,无论准备工作准备的多么充分,在测试和正式生产环境中,心里还是会对冲突的数据有一些疑虑,心里感觉没底,因为生产的数据也是在不断变化的,要迁移的数...

35250
来自专栏大数据学习笔记

Hadoop基础教程-第10章 HBase:Hadoop数据库(10.1 NoSQL介绍)(草稿)

第10章 HBase:Hadoop数据库 10.1 NoSQL介绍 10.1.1 NoSQL简介 随着互联网技术(互联网+,物联网)发展,特别是大数据时代到来,...

23390
来自专栏CSDN技术头条

GoSnaps:如何支持5天50万用户服务器只花100元

创业者们似乎有这样一个共识:初创公司应尽快推出MVP(最简可行产品)而不应该把扩展性这样的细节放在心上。总是有人给我说推产品是最高的也实际上是唯一的目标,扩展性...

224100
来自专栏MySQL

分库分表后如何部署上线?

不要惊讶,写这篇文章前,我特意去网上看了下分库分表的文章,很神奇的是,都在讲怎么进行分库分表,却不说分完以后,怎么部署上线的。这样在面试的时候就比较尴尬了。

32310
来自专栏腾讯大讲堂的专栏

数据库schema设计与优化

1、 前言 对于数据库而言,在日常开发中我们主要的关注点有两块,一个是schema的结构设计,另一个就是索引的优化,这两块是影响我们最终系统结构和性能的关键部分...

39360
来自专栏腾讯大数据的专栏

数据库schema设计与优化

1、 前言 对于数据库而言,在日常开发中我们主要的关注点有两块,一个是schema的结构设计,另一个就是索引的优化,这两块是影响我们最终系统结构和性能的关键部分...

24250
来自专栏杨建荣的学习笔记

宕机的那些事儿(r12笔记第44天)

DBA干了这么多年,一直以来有一个疑惑,那就是从半夜的电话中吵醒时,几乎清一色都是宕机类问题,每次我就忍不住想喊,大早上宕机,让不让人睡觉了。但是抱怨归抱怨...

43090
来自专栏北京马哥教育

sqlserver、Mysql、Oracle三种数据库的优缺点总结

? 一、sqlserver 优点: 易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等; 为...

51760
来自专栏Java职业技术分享

阿里P8Java架构师是如何规划架构体系的呢?

给大家推荐一个程序员学习交流群:863621962。群里有分享的视频,还有思维导图

21300

扫码关注云+社区

领取腾讯云代金券