热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

如何定义NoSQL_MySQL

本文的作者是著名的技术作家、敏捷软件开发宣言的编写人MartinFowler,本文是他在编写一本关于NoSQL的新书《NoSQLDistilled》时附带写出的一篇博客。当我们开始着手写《NosqlDistilled》的时候,我
NoSQL

  本文的作者是著名的技术作家、敏捷软件开发宣言的编写人Martin Fowler,本文是他在编写一本关于NoSQL的新书《NoSQL Distilled》时附带写出的一篇博客。

  当我们开始着手写《NosqlDistilled》的时候,我们遇到了一个棘手的问题——要写什么?究竟什么是NoSQL数据库?对这个概念我们没有发现一个很权威的定义,没有任何商标注册,没有标准化组织,甚至没有一个宣言。

  NoSQL这个术语最初出现在2009年6月11日在旧金山由Johan Oskarsson组织的一个非正式的会议上。与会人员来自Voldemort,
Cassandra, Dynomite, HBase, Hypertable, CouchDB, VPork, 以及MongoDB的公司。这个词迅速的被人们注意到,有人认为只有出席了这次会议的几个数据库公司的产品才是NoSQL。

  事实上,就是对NoSQL这个名字本身的理解也是有分歧的:很多NoSQL的倡导者认为它不仅仅指的是”No” to SQL,应该把它理解成Not Only SQL才对。对于此,我认为,应该从目前的数据库生态环境中分离出一个独立的数据库类型,这样对NoSQL的未来更有好处。当我们说“x 是一个NoSQL数据库”时,我认为把NoSQL解释成“Not Only”是愚蠢的,因为这会让这个术语变得没有价值。(因为这样一来你实际上可以认为SQL Server也是一个NoSQL数据库)。我们应该把NoSQL的“not only”做另外一种理解——尽管这个时候我更愿意使用PolyglotPersistence这个词。

  虽然有这么多的讨论,定义如何才是一个NoSQL数据库仍然不那么容易。难道所有不使用SQL的数据库都有资格叫这个名字吗?那如何看待那些更老的数据库如IMS 或 MUMPS呢?如何看待那些没有SQL的关系型数据库系统(例如早期的Ingres)?如果有人试图在这最初的八种数据库上外挂一个SQL接口呢?

  所以,对于我们这本书来说,我们采取的观点是,NoSQL是目前的数据库家族的外来者。它们有些通用的特征,但没有一个是被明确定义的。

  • 不使用关系数据库模型(或SQL语言)
  • 开源
  • 针对大型集群而设计
  • 基于21世纪互联网特征的需求
  • 没有schema,可以在任何时候向一条记录添加新字段

  虽然在软件产业里我们已经习惯了这种模糊的边界定义,但我承认当看到又多了这样一个定义后,心里还是有些不爽。但重要的是,在我们以后数十年的开发工作中,这些数据库提供了我们重要的补充。在未来普遍使用的过程中,这些不清晰的定义顶多就像一个蚊子的叮咬。

英文原文:NosqlDefinition

推荐阅读
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Oracle字符集详解:图表解析与中文乱码解决方案
    本文详细解析了 Oracle 数据库中的字符集机制,通过图表展示了不同字符集之间的转换过程,并针对中文乱码问题提供了有效的解决方案。文章深入探讨了字符集配置、数据迁移和兼容性问题,为数据库管理员和开发人员提供了实用的参考和指导。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • ODBC介绍:开放式数据库连接详解
    本文详细介绍了ODBC(开放式数据库连接),这是一种允许应用程序访问多种数据库系统的标准API。自1992年由微软与Simba合作推出以来,ODBC已成为跨平台数据访问的重要标准。 ... [详细]
  • 本文档详细介绍了如何在MongoDB命令行中执行基本操作,包括数据库的选择与创建、文档的插入与查询、文档的更新与删除等。同时,还涵盖了条件查询、统计、模糊查询等高级功能。 ... [详细]
  • 本文深入探讨了分布式文件系统的核心概念及其在现代数据存储解决方案中的应用,特别是针对大规模数据处理的需求。文章不仅介绍了多种流行的分布式文件系统和NoSQL数据库,还提供了选择合适系统的指导原则。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 本文档旨在为初学者提供MongoDB的基础知识介绍,包括其作为文档型数据库的特点、基本概念以及如何通过命令行界面(CLI)执行基本的操作。 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 如何在U8系统中连接服务器并获取数据
    本文介绍了如何在U8系统中通过不同的方法连接服务器并获取数据,包括使用MySQL客户端连接实例的方法,如非SSL连接和SSL连接,并提供了详细的步骤和注意事项。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
author-avatar
狮子_贾寒璐_759
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有