`

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 ServerOracleMySQL(开源)PostgreSQL(开源)

2、NoSQL泛指非关系型数据库。主要代表:MongoDBRedisCouchDB

二者区别:

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

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

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

 

 

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

 

 

 

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

 

 

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

 

 



 

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

 

 

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

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

 

 

 

  • 大小: 143.4 KB
  • 大小: 24.2 KB
  • 大小: 29.7 KB
  • 大小: 10.5 KB
  • 大小: 19.3 KB
  • 大小: 29.5 KB
分享到:
评论

相关推荐

    NoSQL数据库入门思维导图

    **NoSQL数据库入门知识详解** NoSQL(Not Only SQL)数据库是一种非关系型数据库,它的设计目标是处理大规模数据,特别是在分布式计算环境中。与传统的SQL(结构化查询语言)数据库不同,NoSQL数据库不依赖于固定的...

    NoSQL权威指南

    《NoSQL权威指南》这本书全面介绍了NoSQL数据库的基础知识、核心技术和高级应用,对于想要深入了解NoSQL技术的人来说是一本非常有价值的参考书。无论是初学者还是有一定经验的开发者,都能从中获得丰富的信息和启示...

    Mongodb基础知识详解(值得珍藏).pdf

    MongoDB 是一个高性能的NoSQL数据库,以分布式文件存储为基础,提供灵活的数据模型和高效的查询操作。MongoDB 不同于传统的关系型数据库,它采用面向集合的存储方式,支持无模式的数据模型,允许数据自由组织,这...

    oracle入门基础教程全面详细

    - **NoSQL数据库**:了解NoSQL数据库的分类及特点,如MongoDB、Cassandra等。 - **NewSQL数据库**:学习NewSQL数据库的概念及代表产品,如TiDB、Spanner等。 通过本教程的学习,读者不仅能够全面掌握Oracle数据库的...

    数据库系统揭秘

    - 《数据库系统概念》:一本经典的数据库入门教材,涵盖了数据库系统的基础知识和技术。 - 《数据库系统揭秘》:本书不仅介绍了数据库的基本原理,还提供了大量的实践案例和练习机会。 - **在线课程**: - ...

    MYSQL基础入门pdf

    ### MySQL基础入门知识点详解 #### 数据库概述 - **什么是数据库** 数据库(Database,简称DB)是一种用于组织、存储和管理数据的电子系统。它可以被看作是一个存储数据的仓库,其中的数据被组织成表格的形式,...

    数据库系统教程(第3版)电子教案(第1章-第6章)

    讲解了数据库系统的历史发展,重点阐述了层次型、网状型、关系型和现代NoSQL数据库的特点。同时,还讨论了数据库在信息管理中的重要性以及数据库系统与传统文件系统的区别。 第2章 关系模型和关系运算理论:这一章...

    数据库培训

    ### 数据库培训知识点详解 #### 一、数据库基础概述 - **定义与作用**:数据库是一种组织和存储数据的方式,使我们能够高效地管理和检索数据。数据库系统是用于存储、管理和检索数据的软件集合。 - **数据库的重要...

    MongoDB入门.pdf

    ### MongoDB入门知识点详解 #### 一、NoSQL简介与MongoDB概述 - **NoSQL**:NoSQL(Not Only SQL)是一种非关系型数据库管理系统的总称,它突破了传统关系型数据库在处理大规模数据时的限制,尤其适用于大数据及高...

    MySQL入门很简单-学习笔记.pdf

    ### MySQL入门知识点详解 #### 一、数据库概述 1. **数据存储方式**: - 数据库是组织、存储和...以上是MySQL入门阶段的一些基础知识点,通过这些内容的学习,可以帮助初学者快速掌握MySQL的基本操作和使用技巧。

    4_HBase.docx

    ### HBase基础知识与架构详解 #### 一、引言 HBase是一款开源的、分布式的、基于列存储的NoSQL数据库系统,它旨在提供高效、可靠的大规模数据存储能力。本文将详细介绍HBase的基础概念、架构特点以及核心操作流程。...

    万能毕设,内含数据库文件

    3. **数据库文件**:数据库文件是存储结构化数据的地方,可能是SQL(如MySQL、PostgreSQL)或NoSQL(如MongoDB)类型。在毕设项目中,数据库用于存储和管理用户信息、业务数据等,与前端通过API进行交互。 4. **...

    详解MongoDB for C#基础入门

    MongoDB是一个流行的开源NoSQL数据库系统,以其灵活性、高性能和易扩展性著称。C#驱动程序使得在.NET环境中操作MongoDB变得简单。 首先,要连接MongoDB,你需要使用MongoDB提供的C#驱动程序,官方推荐的是`MongoDB....

    Web_Ch3_final.zip

    8. **数据库连接**:介绍如何使用SQL和NoSQL数据库来存储和检索网页所需的数据。 9. **Web安全**:简述常见的Web安全问题,如跨站脚本攻击(XSS)、SQL注入等,并提供预防措施。 10. **实战项目**:可能包含一个小型...

    Mycat高性能数据库中间件实战教程课件

    - 后端方面,Mycat不仅能够通过MySQL原生协议与多个MySQL服务器通信,还可以通过JDBC协议与多种主流数据库如SQL Server、Oracle、DB2、PostgreSQL等建立连接,同时也支持MongoDB等新型NoSQL存储系统。 - 随着时间...

    2017大数据数据分析学习资料合集(含学习路线图).docx

    #### 大数据基础知识与入门 - **基础知识**:在开始深入学习之前,首先需要掌握大数据的基本概念和技术背景,这包括理解大数据的特点(即通常所说的“3V”或“4V”:Volume、Velocity、Variety和Value)、相关技术和...

    Oracle教程

    查询基础涵盖了SQL语言的基础知识,用于从数据库中检索数据。 - **SELECT语句**: SELECT语句用于从一个或多个表中选择特定的数据。 - **WHERE子句**: WHERE子句用于指定条件,过滤出符合要求的记录。 - **ORDER BY...

    深入云计算:Hadoop应用开发实战详解(修订版)源代码

    5. **HBase**:HBase是一个基于HDFS的分布式、版本化的NoSQL数据库,适用于实时读写操作,尤其适合半结构化或非结构化数据的存储。 6. **Hive**:Hive提供了SQL-like接口来查询Hadoop上的数据,将复杂的数据处理...

Global site tag (gtag.js) - Google Analytics