文档型数据库_大型企业管理erp系统商业源码,含完整源码、数据库和开发文档 - CSDN
精华内容
参与话题
  • 文档型数据库MongoDB

    2019-07-13 10:52:21
    MongoDB 是一个跨平台的,面向文档数据库,是当前 NoSQL 数据库产品中最热门的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关 系数据库的产品。它支持的数据结构非常松散,是...

    MongoDB简介

    (1)数据量大
    (2)写入操作频繁
    (3)价值较低
    对于这样的数据,我们更适合使用MongoDB来实现数据的存储

    什么是MongoDB

    MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关
    系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。
    MongoDB 的官方网站地址是:http://www.mongodb.org/

    MongoDB特点

    MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。
    具体特点总结如下:
    (1)面向集合存储,易于存储对象类型的数据
    (2)模式自由
    (3)支持动态查询
    (4)支持完全索引,包含内部对象
    (5)支持复制和故障恢复
    (6)使用高效的二进制数据存储,包括大型对象(如视频等)
    (7)自动处理碎片,以支持云计算层次的扩展性
    (8)支持 Python,PHP,Ruby,Java,C,C#,Javascript,Perl 及 C++语言的驱动程序,社区中也提供了对 Erlang 及.NET 等平台的驱动程序
    (9) 文件存储格式为 BSON(一种 JSON 的扩展)

    MongoDB体系结构

    MongoDB 的逻辑结构是一种层次结构。主要由:
    文档(document)、集合(collection)、数据库(database)这三部分组成的。逻辑结构是面向用户的,用户使用 MongoDB 开发应用程序使用的就是逻辑结构。
    (1)MongoDB 的文档(document),相当于关系数据库中的一行记录。
    (2)多个文档组成一个集合(collection),相当于关系数据库的表。
    (3)多个集合(collection),逻辑上组织在一起,就是数据库(database)。
    (4)一个 MongoDB 实例支持多个数据库(database)。
    文档(document)、集合(collection)、数据库(database)的层次结构如下图:

    在这里插入图片描述

    在这里插入图片描述

    数据类型

    基本数据类型
    null:用于表示空值或者不存在的字段,{“x”:null}
    布尔型:布尔类型有两个值true和false,{“x”:true}
    数值:shell默认使用64为浮点型数值。{“x”:3.14}或{“x”:3}。对于整型值,可以使用NumberInt(4字节符号整数)或NumberLong(8字节符号整数),{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}
    字符串:UTF-8字符串都可以表示为字符串类型的数据,{“x”:“呵呵”}
    日期:日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{“x”:new Date()}

    正则表达式:查询时,使用正则表达式作为限定条件,语法与JavaScript的正则表达式相同,{“x”?[abc]/}
    数组:数据列表或数据集可以表示为数组,{“x”: [“a“,“b”,”c”]}
    内嵌文档:文档可以嵌套其他文档,被嵌套的文档作为值来处理,{“x”:{“y”:3 }}
    对象Id:对象id是一个12字节的字符串,是文档的唯一标识,{“x”: objectId() }
    二进制数据:二进制数据是一个任意字节的字符串。它不能直接在shell中使用。如果要将非utf-字符保存到数据库中,二进制数据是唯一的方式。
    代码:查询和文档中可以包括任何JavaScript代码,{“x”:function(){/…/}}

    展开全文
  • NoSQL:文档数据库

    千次阅读 2020-10-12 13:24:56
    文档”是文档数据库中的主要概念。此类数据库可存放并获取文档,其格式可以是XML、JSON、BSON等,这些文档具备可述性(self-describing),呈现分层的树状结构(hierarchical tree data structure),可以包含映射...

    “文档”是文档数据库中的主要概念。此类数据库可存放并获取文档,其格式可以是XML、JSON、BSON等,这些文档具备可述性(self-describing),呈现分层的树状结构(hierarchical tree data structure),可以包含映射表、集合和纯量值。数据库中的文档彼此相似,但不必完全相同。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。文档数据库可视为其值可查的键值数据库。(参考:键值数据库

    下表是关系型数据库Oracle和文档数据库MongoDB的术语对比:

    Oracle MongoDB
    数据库实例(database instance) MongoDB实例(MongoDB instance)
    模式(schema) 数据库(database)
    表(table) 集合(collection)
    行(row) 文档(document)
    伪列(rowid) _id
    join DBRef

    什么是文档数据库

    文档数据库中的各个文档的“数据模式”(the schema of the data)也许不同,但是他们仍然能放在同一“集合”内,而不是像关系型数据库那样,表格中每行数据的模式都要相同。

    向文档中新增属性时,既无需预先定义,也不用修改已有文档内容。


    文档数据库特性

    • 一致性:开发者可以根据应用程序需要和业务需求,为每次操作指定数据库的“一致性”强度,以决定读取操作应该使用何种slaveOk设置,并通过WriteConcern设置写入操作的安全级别。
    • 事务:支持单文档级别的事务,也可以使用“仲裁”这一概念来实现事务功能。(参考:NosQL分布式模型:仲裁
    • 可用性:文档数据库视图用主从数据复制技术来增强可用性。可以使用三活数据中心架构。(参考:三活数据中心
    • 查询:可以使用视图查询,可用“物化视图”。文档数据库可以查询文档中的数据,而不用必须根据关键字获取整个文档。
    • 可扩展性:可用“分片”技术。(参考:NosQL分布式模型:分片

    适用案例

    • 事件记录,应用程序对事件记录各有需求。
    • 内容管理系统及博客平台,用来管理用户评论、用户注册、用户配置和面向Web文档(web-facing document)。
    • 网站分析与实时分析,用来存储“页面浏览量”(page view)或“独立访客数”(unique visitor)会非常方便,而且可以无需改变模式即可新增度量标准。
    • 电子商务应用程序,以存储产品和订单。

    不适用案例

    • 包含多项操作的复杂事务。文档数据库不适合执行“跨文档的原子操作”(atomic cross-document operation)。
    • 查询持续变化的聚合结构。虽然文档数据库对模式不施加任何限制,但是如果要即时查询这些持续可变的实体,那么所用的查询命令也要不断变化,所以就需要以“最低级别的粒度”(lowest level of granularity)来保存聚合了,这实际上就等于要统一数据格式了。在这种情况下,文档数据库并不适合。

    想了解更多关于NoSQL数据库:NoSQL数据库专栏

    展开全文
  • MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。NoSQL 数据库数量很多,但可以划分为如下图所示的 4 大类:键值存储数据库数据库代表——Redis;列存储...

    一、 NoSQL数据库分类

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

    NoSQL 数据库数量很多,但可以划分为如下图所示的 4 大类:
    键值存储数据库:数据库代表——Redis;
    列存储数据库:数据库代表——HBase;
    文档型存储数据库:数据库代表——MongoDB;
    图形数据库:数据库代表——Neo4J。

    二、什么是MongoDB

    关系型数据库:在我们所用过的sqlserver、mysql等,这些都是关系型数据库,并且关系型数据库是遵循ACID原则的,严格的一致性。
    非关系型数据库:也叫作NoSQL,用与超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余的操作就可以横向扩展。

    MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

    三、Mongodb优缺点以及适合场景

    MongoDB是为互联网而生的数据库,是文档数据库。

    1.1 、优点:

    Schema-less,不需要预先定义表结构,同一个“表”中可以保存多个格式的数据;

    数据支持嵌套,数据以json格式存储;

    允许使用JavaScript写服务端脚本,类似于存储过程;

    支持Map/Reduce;

    MongoDB支持地理位置索引,可以直接用于位置距离计算和查询,实现“附近的人”、

    “滴滴打车接单”等很容易;

    1.2 、缺点:

    Mongodb没有“数据一致性检查”、“事务”等,不适合存储对数据事务要求高(比如金融)的数据;只适合放非关键性数据(比如日志或者缓存)。

    关联查询很弱,不适合做报表查询

    1.3、Mongodb适合场景

    1)、应用在应用服务器的日志记录。

    2)、主要用来存储一些监控数据,No schema 对开发人员来说,真的很方便,增加字段不用改表结构,而且学习成本极低。

    3)、使用MongoDB做了O2O快递应用,·将送快递骑手、快递商家的信息(包含位置信息)存储在 MongoDB,然后通过 MongoDB 的地理位置查询,这样很方便的实现了查找附近的商家、骑手等功能,使得快递骑手能就近接单。

    1.4、不适合MongoDB的场景

    如果业务中存在大量复杂的事务逻辑操作,则不要用MongoDB数据库。

    四、 总结

    在mongodb中对应关系型数据库中‘表’的概念为‘集合’,表中的数据结构是一致,mongodb以json格式存储,集合数据是灵活的,mongodb的同一集合collection中可存不同结构的数据。但是实际工作中,阿笨不建议大家将不同类对象存入同一个MongoDB的Collection。

    NoSQL文档型存储数据库—MongoDB


    通过本次分享课程后大家记住一点千万不要把MongoDB NOSQL数据库像RDBMS关系型数据库一样去应用!建议把不是频繁修改的数据放在MongoDB中。Mongodb是永远取代不了我们日常用到的sqlserver,mysql,oracle等数据库的。两者只能相互补充,取长补短的作用。

    归纳:NoSQL 适用于数据模型较简单、无高度的数据一致性需求,但要求高性能和灵活性的情况。

    记住一点:如果你用着用着你突然发现把mongodb当成RDMS关系型数据库来使用了,那就是你的不对了!mongodb只永远只适合存放一些固化的非结构化的数据!

    展开全文
  • 开发四年只会写业务代码,分布式高并发都不会还做程序员? Apache CouchDB 2.3.1发布了,CouchD...

    Apache CouchDB 2.3.1 发布了,CouchDB 是一个面向文档的数据库管理系统。它提供以 JSON 作为数据格式的 REST 接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。CouchDB 是 Apache 基金会的顶级开源项目。

    这是一个 bugfix 版本,更新亮点包括:

    •  #1811: 新增 /{db}/_sync_shards 端点。(admin-only).
    • #1870: mochiweb 更新到 2.19.0。
    • #1875: 使用 Erlang 的已知错误版本拒绝构建。
    • #1880: 压缩:添加 snooze_period_ms 以进行更精细的调整。
    • #1799: 对服务器管理员 Restrict _purge。
    • #1803: 在群集设置中使用相同的 salt 作为管理员密码。
    • #1053: 修复了 couchup 的 python2 兼容性问题。
    • #1905: 修复了 couchup 的 python3 兼容性问题。

    发布公告

    下载地址:https://couchdb.apache.org/#download

    展开全文
  • 文档型数据库是一种非关系型数据库,非关系型数据库(Not Only SQL,NoSQL)正好与关系型数据库相反,它不是建立在“关系模型”上的数据库。文档型数据库的典型代表是 MongoDB。 我们本课时的面试题是,关系型...
  • 文档型数据库

    万次阅读 2019-03-22 09:20:36
    文档型数据库 简介 1. MongoDB:文档型数据库,按照文档的形式存储 a. Web App(用的较多) 2. 数据库管理系统(DBMS) a. 需要把具体如何实现的如 增删改查 隐藏在系统软件中,对用户软件透明 基础概念: a. ...
  • 常用数据库排名及分类介绍

    万次阅读 多人点赞 2020-07-16 17:57:33
    DB-Engines:2019年6月全球数据库排行 DB-Engines 数据库流行度排行榜 6 月更新已发布,排名前二十如下:总体排名和上个月相比基本一致,其中排名前三的Oracle、MySQL 和 Microsoft SQL Server 也是分数增加最多的...
  • 文档型数据库存储树型结构

    千次阅读 2018-04-23 15:12:55
    此文以存储树形结构数据为需求,分别描述了利用关系型数据库和文档型数据库作为存储的几种设计模式。A.关系型数据库设计模式1idnameparent_id1ANULL2B13C14D2上图表示了传统的设计方法之一,就是将树形结构的每一个...
  • 是普通一个搜索负载和并发太弱了,优化好了搜索速度倒是不慢,但是一个搜索占的资源太多了(比如一个千万级别的表即使搜索索引内存和CPU等资源也瞬间大量占用,而文档型数据库就占用资源很少),而且添加和更新操作...
  • 超全的数据库分类介绍

    万次阅读 2019-07-05 10:14:52
    而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库。    数据库分类   〓关系型数据库介绍〓   1、关系型数据库的由来 虽然网状数据库和层次数据库已经很好...
  • 常见的关系型数据库和非关系型数据及其区别

    万次阅读 多人点赞 2018-08-16 01:46:54
    一、关系型数据库
 
  
 关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织优点:1、易于维护:都是使用表结构,格式一致;2、使用方便:SQL语言通用,可...
  • NoSQL数据库类型简介

    万次阅读 2019-06-27 15:00:01
    但是,归结起来,可以将典型的 NoSQL 划分为 4 种类型,分别是键值数据库、列式数据库文档数据库和图形数据库,如图 1 所示。 图 14 种类型的 NoSQL 数据库 图 2键值数据库举例 1. 键值数据库 键值数据库...
  •  说到非关系型数据库,就要简单的介绍一下关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,我们平常使用的数据库,像MySQL,Oracle,S...
  • ES与传统数据库的比较

    万次阅读 2018-01-08 22:50:01
    ES(ElasticSearch)是一款分布式全文检索框架,底层基于基于Lucene实现。ES与传统数据的区别主要有:   1.结构名称不同 一个ES集群可以包含多个索引(数据库)...关系型数据库 数据库 表 行 列
  • 关系型数据库和非关系型数据库的区别

    万次阅读 多人点赞 2019-06-30 22:06:09
    关系型数据库和非关系型数据库的区别 待会总结,先自我学习先 学习网址:https://blog.csdn.net/aaronthon/article/details/81714528
  • 也可以认为是五大数据库...1. 关系型数据库(行式数据库) 关系模型使用记录(由元组组成)进行存储,记录存储在表中,表由架构界定。表中的每个列都有名称和类型,表中的所有记录都要符合表的定义。SQL是专门的查询语言
  • MongoDB与关系型数据库的区别

    千次阅读 2016-12-13 23:28:39
    MongoDB是一个面向文档的数据库,数据结构为键值对组成,文档类似于JSON对象,字段值可以包含数组、其他文档。 它与关系型数据库的区别: MongoDB数据库不再有预定模式,文档的键(key)值(value)不再是固定的...
  • NoSQL数据库的四大分类及分析

    万次阅读 2015-01-27 11:35:57
    NoSQL(NoSQL = Not Only SQL )...NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。  NoSQL数据库分四大类: 键值(Key-Value)存储数据库 这一类
  • mongodb与mysql区别(超详细)

    万次阅读 多人点赞 2018-05-23 14:56:30
    MySQL是关系型数据库。 优势:在不同的引擎上有不同 的存储方式。...Mongodb是非关系型数据库(nosql ),属于文档型数据库。文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档...
  • 在Elasticsearch中,文档归属于一种 类型(type) ,而这些类型存在于 索引(index)中,类比传统关系型数据库: Relational DB -> Databases -> Tables -> Rows -> Columns 关系型数据库 数据库 表 
1 2 3 4 5 ... 20
收藏数 214,098
精华内容 85,639
关键字:

文档型数据库