NoSql数据模型简介

NOSQL(二)聚合数据模型 《NoSQL精粹》读书笔记,转载请注明出处《jiq•钦's technical Blog》   一、NoSQL的数据模型 关系型数据库的数据模型是“关系”和“元组”,一个关系对应一张表,而一个元组对应一行,其中元组由一系列的值组成,不能嵌套。         NoSQL数据库最大的转变就是抛弃了关系模型。但是每种NoSQL解决方案模型都不同,大体上可以将NoSQL数据模型分为四类:“键 阅读详情

温馨提示:本文更多的是个人学习时的一些笔记,仅供大家粗略阅读即可,有一部分亮点和常用地方会在后期回顾时,做相应标记,不建议大家直接用于学习效果可能不是很好,相关视频可直接扫下方二维码进行联系。

一、NoSql数据模型简介

1.1 传统模型

E-R图:一对多,多对一,多对多

1.2 Nosql设计

  1. BSON - 是一种类json的一种二进制形式的存储格式,简称 Binary JSON,和JSON一样支持内嵌的文档对象和数组。

  2. Nosql - 聚合模型

  3. 分布式事务是支持不了太多的并发的

1.3 聚合模型 - 数据类型

  1. 键值对
  2. BSON
  3. 列族 - 按列存储数据的,最大的特点是方便存储结构化半结构化数据,方便数据压缩,针对某一列或几列查询有非常大的IO有事。
  4. 图形

二、数据库的四大分类

2.1 KV键值:典型介绍

  1. 新浪: BerkeleyDB+redis
  2. 美团:redis+tair
  3. 阿里、百度:memcache+redis

2.2 文档型数据库(BSON格式比较多):典型介绍

  1. CouchDB
  2. MongDB
    是一个机遇分布式文件存储的数据库。有C++语言编写,为WEB应用提供可扩展的高性能数据存储解决方案。介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富最像关系数据库的。

2.3 列存储数据库

Cassandra,HBase
分布式文件系统

2.4 图关系数据库

不是放图形的,放的是关系(如:朋友圈社交网络、广告推荐系统)
专注构建关系图谱
Neo4J,InfoGrid

2.5 四者对比

这里写图片描述

三、在分布式数据库中CAP原理:CAP+BASE

3.1 传统的ACID

  1. A(Atomicity)原子性
  2. C(Consistency)一致性
  3. I(Isolation)独立性
  4. D(Durability)持久性

3.2 CAP

  1. C:Consistency(强一致性)

  2. A:Availability(可用性)

  3. P:Partition tolerance(分区容错性)

  4. 核心理论:
    一个分布式系统不可能同时很好地满足一致性,可用性和分区容错性,最多只能同时较好的满足两个。分区容忍性是我们必须实现的,所以只能下载一致性和可用性之间权衡。

3.3 CAP的3进2

  1. 大部分网站:弱一致性 + 分布式容忍性
  2. 事务一致性
  3. 任何大量数据量的web系统,都非常忌讳多个达标关联查询。特别是SNS类型的网站,从需求及产品设计角度,避免产生。往往更多的只是单表查询,及单表的简单条件分页查询,sql功能被极大地弱化。

3.4 BASE

  1. 解决关系数据库强一致性引起的问题而引起的可用性性能而提出的解决方案。
  2. 基本可用(Basically Available)、如软状态(Soft state)、最终一致性(Eventually consistent)
  3. 他的思想是通过让系统放松对某一时刻数据一致性的要求换取系统整体伸缩性和性能上的改观。

3.5 分布式 + 集群简介

3.51 负载均衡
3.52 分布式系统(distributed system)

由多台计算机和通信的软件组件通过计算机网络连接(本地网络或局域网)组成。分布式系统时间里在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内举行和透明性。因此,网络和分布式系统之间的区别更多的在与高层软件(特别是操作系统),而不是硬件。分布式系统可以应用在不同的平台上如:pc、工作站、局域网和广域网等

简单来讲:
1. 分布式: 不同的多服务器上部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外不提供服务和组内协作.
2. 集群: 不同的多条服务器上部署相同服务模块,同构分布式调度软件进行统一调度,对外提供服务和访问。

NoSql(二) 数据模型设计(kv,bson,列族, 图形) 1 3V +3高2当下的nosql的经典应用:     当下的应用是sql和nosql的一起使用:举个例子,阿里巴巴中文网站首页:        1商品基本信息: 名称. 价格. 出厂日期, 生产厂商等 --  存在关系型数据库        2 商品描述,详情, 评价信息(多文字类) --文档类数据库 mongDB        3 商品图片 分布式的文件系统中: 淘宝自己的TFS, Googl... 阅读详情

相关推荐

NoSQL数据库介绍及相关模型比较(如:键值数据库、列式数据库、文档数据库、图形数据库)

在本教程中,我们只介绍了目前使用的一些NoSQL数据模型。近年来,一些NoSQL模型(如对象存储)在不同程度上得到了使用,但在某些用例中仍然是关系模型的可行替代品。其他的数据库,如对象关系数据库和时间序列数据库,混合了关系和NoSQL数据模型的元素,形成了光谱两端的中间地带。

码觉客的博客 1万+

深入理解NoSQL数据库的数据模型设计

1.背景介绍 在本文中,我们将深入探讨NoSQL数据库的数据模型设计。NoSQL数据库是一种非关系型数据库,它们通常用于处理大量数据和高并发访问。NoSQL数据库的数据模型设计是一项复杂的任务,需要考虑多种因素,包括数据的结构、存储、查询和更新。 1. 背景介绍 NoSQL数据库的出现是为了解决传统关系型数据库(RDBMS)在大规模数据处理和高并发访问方面的不足。NoSQL数据库可以处理大量...

AI天才研究院 1397

什么是NoSQL数据库?

关系型数据库和NoSQL数据库 什么是NoSQL 大家有没有听说过“NoSQL”呢?近年,这个词极受关注。看到“NoSQL”这个词,大家可能会误以为是“No!SQL”的缩写,并深感愤怒:“SQL怎么会没有必要了呢?”但实际上,它是“Not Only SQL”的缩写。它的意义是:适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。 为弥补关系型数据库的不足,各种各样的NoSQL数据库应运而生。 为了更好地了解本书所介绍的NoSQL数据库,对关系型数据库的理解是必不可少的。那么,就让我们先来看一看关系型数据库的历史、分类和特征吧。 关系型数据库简史 1969年,埃德加•弗兰克•科德(Edgar Frank Codd)发表了划时代的论文,首次提出了关系数据模型的概念。但可惜的是,刊登论文的《IBM Research Report》只是IBM公司的内部刊物,因此论文反响平平。1970年,他再次在刊物《Communication of the ACM》上发表了题为“A Relational Model of Data for Large Shared Data banks”(大型共享数据库的关系模型)的论文,终于引起了大家的关注。 科德所提出的关系数据模型的概念成为了现今关系型数据库的基础。当时的关系型数据库由于硬件性能低劣、处理速度过慢而迟迟没有得到实际应用。但之后随着硬件性能的提升,加之使用简单、性能优越等优点,关系型数据库得到了广泛的应用。 通用性及高性能 虽然本书是讲解NoSQL数据库的,但有一个重要的大前提,请大家一定不要误解。这个大前提就是“关系型数据库的性能绝对不低,它具有非常好的通用性和非常高的性能”。毫无疑问,对于绝大多数的应用来说它都是最有效的解决方案。 突出的优势 关系型数据库作为应用广泛的通用型数据库,它的突出优势主要有以下几点: 保持数据的一致性(事务处理) 由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处) 可以进行JOIN等复杂查询 存在很多实际成果和专业技术信息(成熟的技术) 这其中,能够保持数据的一致性是关系型数据库的最大优势。在需要严格保证数据一致性和处理完整性的情况下,用关系型数据库是肯定没有错的。但是有些情况不需要JOIN,对上述关系型数据库的优点也没有什么特别需要,这时似乎也就没有必要拘泥于关系型数据库了。 关系型数据库的不足 不擅长的处理 就像之前提到的那样,关系型数据库的性能非常高。但是它毕竟是一个通用型的数据库,并不能完全适应所有的用途。具体来说它并不擅长以下处理: 大量数据的写入处理 为有数据更新的表做索引或表结构(schema)变更 字段不固定时应用 对简单查询需要快速返回结果的处理 。。。。。。 NoSQL数据库 为了弥补关系型数据库的不足(特别是最近几年),NoSQL数据库出现了。关系型数据库应用广泛,能进行事务处理和JOIN等复杂处理。相对地,NoSQL数据库只应用在特定领域,基本上不进行复杂的处理,但它恰恰弥补了之前所列举的关系型数据库的不足之处。 易于数据的分散 如前所述,关系型数据库并不擅长大量数据的写入处理。原本关系型数据库就是以JOIN为前提的,就是说,各个数据之间存在关联是关系型数据库得名的主要原因。为了进行JOIN处理,关系型数据库不得不把数据存储在同一个服务器内,这不利于数据的分散。相反,NoSQL数据库原本就不支持JOIN处理,各个数据都是独立设计的,很容易把数据分散到多个服务器上。由于数据被分散到了多个服务器上,减少了每个服务器上的数据量,即使要进行大量数据的写入操作,处理起来也更加容易。同理,数据的读入操作当然也同样容易。 提升性能和增大规模 下面说一点题外话,如果想要使服务器能够轻松地处理更大量的数据,那么只有两个选择:一是提升性能,二是增大规模。下面我们来整理一下这两者的不同。 首先,提升性能指的就是通过提升现行服务器自身的性能来提高处理能力。这是非常简单的方法,程序方面也不需要进行变更,但需要一些费用。若要购买性能翻倍的服务器,需要花费的资金往往不只是原来的2倍,可能需要多达5到10倍。这种方法虽然简单,但是成本较高。 另一方面,增大规模指的是使用多台廉价的服务器来提高处理能力。它需要对程序进行变更,但由于使用廉价的服务器,可以控制成本。另外,以后只要依葫芦画瓢增加廉价服务器的数量就可以了。 不对大量数据进行处理的话就没有使用的必要吗? NoSQL数据库基本上来说为了“使大量数据的写入处理更加容易(让增加服务器数量更容易)”而设计的。但如果不是对大量数据进行操作的话,NoSQ

数据模型-NoSQL数据模型深入理解

​在传统的关系型数据库(SQL)统治的数据存储领域,NoSQL(Not Only SQL)数据库以其灵活性和可扩展性异军突起。与SQL数据库相比,NoSQL数据库通常不严格遵循表格模式,更易于水平扩展,适合处理大规模数据集。SQL数据库强调ACID(原子性、一致性、隔离性、持久性),而NoSQL则倾向于BASE(基本可用、软状态、最终一致性)原则,以牺牲一定程度的一致性换取高性能。

java电商源码分享 894

用Verilog在FPGA上做个电子琴:从矩阵键盘到蜂鸣器的完整实现(附代码)

本文详细介绍了如何使用Verilog在FPGA上实现一个完整的电子琴系统,涵盖矩阵键盘扫描、音调生成和蜂鸣器驱动等核心模块。通过模块化设计和PWM调制技术,开发者可以构建一个可交互的音乐播放器,项目代码完整且易于扩展,适合FPGA初学者和数字逻辑设计爱好者实践。

weixin_29191669的博客 403

华为Atlas 300I推理卡驱动安装避坑指南:不同安装方式的选择与优化

本文详细解析华为Atlas 300I推理卡驱动安装的三种主流方式(.run、.rpm和源码编译),提供关键环境检查步骤、安装流程优化建议及常见问题解决方案,帮助开发者高效完成芯片推理卡部署并规避典型安装陷阱。

q9w8e7r6t5的博客 433

NoSQL数据模型简介

NoSQL数据模型简介 1.以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库 ​ 客户表 ​ 订单表 ​ 订购表 ​ 收货地址 ​ 支付表 2.什么是BSON ​ BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象 { "customer": { "id":1136, "name":"Z3", "billingAddress": [{"city":"beijing"}],

孺子韫 679

Java + Selenium + TestNg + Allure Web UI 自动化

我们知道,在Python中针对Web UI自动化有Python + Selenium + Pytest/Unittest +Allure的技术栈。那么对于Java而言,也有其独特的Web UI 自动化技术栈。相同的,我们同样的运用Selenium框架,测试报告同样运用Allure。不同的是,我们运用的语言由Python转化为了Java,测试用例管理框架从Pytest转化为了TestNG。

qq_45594960的博客 1913

二、NoSQL数据模型简介

一、以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库? 1.传统关系型数据库:ER图(1:1/1:N/N:N,主外键等常见) 用户对应多个订单多个地址 每个订单对应每个商品、价格、地址 每个商品对应产品 2.非关系型数据库:使用BSON (1)什么是BSON BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象 用BSon画出构建的数据模型 { "cus...

magician_8的博客 464

Word多级标题出现黑块的解决思路(word 数字必须介于1-1638之间)

遇到多级目录出现黑块问题,看到一篇博客完美解决,在此记录。

AI_Optimization的博客 3716

DVWA靶场实战:手把手教你绕过文件上传限制,用蚁剑连接一句话木马

本文详细介绍了在DVWA靶场中如何绕过文件上传限制并利用蚁剑连接一句话木马的实战技巧。通过分析文件上传漏洞原理、创建一句话木马、使用Burp Suite拦截修改请求以及配置蚁剑连接WebShell的全过程,帮助安全研究人员深入理解Web安全防护与攻击技术。

weixin_30335575的博客 92

(DDIA)SQL与NoSQL数据模型简介

翻译《Designing Data-Intensive Applications》 作者:Martin Kleppmann 译者:雨钓(有增改) 一、SQL与NOSQL起源与优劣对比 1.1、SQL 今天最著名的数据结构可能就是SQL了,一种基于Edgar Codd在1970年提出的关系模型: 数据被组织成关系(SQL中的表),其中每个关系是一个无序的元组集合(SQL中的行), 关系模型是一个理论...

雨钓的专栏 1007

Homebrew高效升级与国内镜像源配置全攻略

本文详细介绍了如何通过配置国内镜像源(如清华、中科大、阿里云)来高效升级Homebrew,解决国内开发者访问GitHub仓库速度慢的问题。文章提供了从基础配置到永久生效的完整教程,包括常见问题解决和进阶技巧,帮助开发者大幅提升软件包管理效率。

weixin_28835551的博客 416

2. NoSql 数据模型简介

例子:以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库 关系型数据库:ER图(1:1/1:N/N:N,主外键等常见),使用多表关联 非关系型数据库:直接用一个BSON 高并发的操作是不太建议有关联查询的,互联网公司用冗余数据来避免关联查询 分布式事务是支持不了太...

chijianxu0423的博客 304

第4-4课:状态压缩与动态规划

什么是状态压缩 动态规划问题中重要的一环就是确定状态的定义,在大多数情况下,状态中所包含的信息并不多,比如线性规划问题的状态一般表示为 d[i,j](i 表示状态的位置,j 表示状态的阶段),算法实现时可用二维数组保存计算过程中的状态。但是也有一些问题,它的状态中包含的信息很多,比如它的状态可能是一个集合中各个元素的情况,或者是像铺瓷砖问题这样,是某一行的覆盖状态。如果沿用简单的状态表示方法,则可...

oRbIt 的专栏 701

人工智能训练师三级考试备考全攻略|报名条件+真题+补贴申领一站式通关(2026版)

本专栏是人工智能训练师三级考证最完整的备考指南,共77篇文章,覆盖从职业认知、报名实操、AI基础知识、数据标注、模型训练测试部署、考前冲刺到考后进阶的全链路。本导读按模块整理了全部文章链接,帮你快速定位所需内容。人工智能训练师是国家认定的正式职业,证书可在osta.mohrss.gov.cn查询,三级证书可申领最高3120元技能补贴。

白话机器学习 1810

04-NoSQL数据模型简介学习

以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库 传统的关系型数据库你如何设计? ER图(1:1/1:N/N:N,主外键等常见) Nosql你如何设计 什么是BSON   BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON, 它和JSON一样,支持内嵌的文档对象和数组对象 给学生用BSon画出构建的

Andy's Blog 819

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

二 NoSQL数据模型简介

一 什么是BSON?二 聚合模型1 KV键值(重要)2 Bson(重要)3 列族4 图形

fangguozi的专栏 916

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

NoSQL--Redis 入门及数据模型简介

    以下面的背景去对比关系型数据库和非关系型数据库的差异(一个电商客户、订单、订购、地址模型来对比)    传统数据库设计一般使用E-R图(1:1/1:N/N:N,主键等)    NoSQL使用的是BSON    一、什么是BSON    BSON是一种类json的二进制存储格式,简称Binary Json,它和Json一样,支持内嵌的文档对象和数组对象,具有轻量型,可遍历性、高效性的特点。可...

辞渊的博客 327

redis之NoSQL数据模型简介与分类

分析对比数据库与非关系型数据库的利弊:以一个电商表设计切入; 聚合模型:KV键值,Bson,列族,图形: 四大分类: KV键值: 文档型数据库: 列存储数据库: 图关系数据库: 分布式数据库中CAP原理:CAP+BASE; 传统的ACID:atomicity原子性;consistency一致性;isolation独立性;durability持

mathlpz126的博客 479

Redis---B站学习---redis_nosql数据模型简介

Redis—B站学习—redis_nosql数据模型简介 NoSQL数据模型简介 以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库 传统的关系型数据库你如何设计? ER图(实体关系模型图):(1:1/1:N/N:N,主外键等常见) nosql你如何设计 什么是BSON BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象 给学生用BSon画出构建的数据模型 两者对比,问题和难

qq_39314972的博客 208

Redis__NoSQL数据模型简介

{ "customer":{ "id":1136, "name":"Z3", "billingAddress":[{"city":"beijing"}], "orders":[ { "id":17, "customerId":1136, "orderItems":[{"productId":27,"price":77.5,"productName":"thinking in java"}], "shippi...

兴趣是最好的老师 166

Redis学习笔记(三)--NoSQL数据模型简介

BSON 类JSON的一种二进制形式的存储格式,简称Binary JSON,支持内嵌的文档对象和数据对象 一个Document的BSON表示 { title:"MongoDB", last_editor:"192.168.1.122", last_modified:new Date("27/06/2011"), body:"MongoDB introdu

长歌 452

【探索 NoSQL 的关键章节】

选择合适的数据模型。

2401_84473582的博客 1723
上一篇: Nosql 入门概述及相关知识介绍
下一篇: linux 设置系统时间为当前网络时间
lijwen
博客等级 码龄10年 69粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值