关系型数据库与非关系型数据库「建议收藏」

关系型数据库与非关系型数据库「建议收藏」关系型数据库: 1、定义: 创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据 2、关系模型常用概念: (1)关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通

关系型数据库:

  1、定义:

    创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据

  2、关系模型常用概念:

    (1)关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名

    (2)元组:可以理解为二维表中的一行,在数据库中经常被称为记录

    (3)属性:可以理解为二维表中的一列,在数据库中经常被称为字段

    (4)域:属性的取值范围,也就是数据库中某一列的取值限制

    (5)关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成

    (6)关系模式:指对关系的描述。其格式为:关系名(属性1,属性2,… ,属性N),在数据库中成为表结构

  3、关系模块中常用的操作:

    (1)数据查询:选择、投影、连接、并、交、差、除

    (2)数据操作:插入、删除、修改、查询

  4、模式结构:

    外模式、模式、内模式

  5、特点:

    (1)基于单一关系模型,结构化存储,有完整性约束

    (2)通过二维表建立数据之间的联系

    (3)采用结构化查询语言(SQL)做数据读写

    (4)操作保存数据的一致性

  6、优点:

    (1)容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解

    (2)使用方便:通用的 SQL 语言使得操作关系型数据库非常方便

    (3)易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率

  7、缺点:

    (1)高并发读写需求:用户并发性非常高,对于传统关系型数据库来说,硬盘 I/O 是一个很大的瓶颈

    (2)海量数据的高效率读写:网站每天产生的数据量是巨大的,对于关系型数据库来说,

                             在一张包含海量数据的表中查询,效率是非常低的

    (3)高扩展性和可用性:在基于web的结构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量

                         与日俱增时,数据库却没法像 web server 和 app server 那样简单的通过添加更多的硬件

                         和服务节点来扩展性能和负载能力

 

非关系型数据库:

  1、定义:

    (1)对不同于传统的关系数据库的数据库管理系统的统称

    (2)其数据存储可以不需要固定的表格模式,也经常会避免使用 SQL 的 JOIN 操作,一般有水平可扩展性的特征

  2、主要分类:

    (1)面向高性能并发读写的 key-value 数据库:key-value数据库的主要特点即使具有极高的并发读写性能,

                                              Redis,Tokyo Cabinet,Flare就是这类的代表

    (2)面向海量数据访问的面向文档数据库:这类数据库的特点是,可以在海量的数据中快速的查询数据,

                                         典型代表为 MongoDB 以及 CouchDB

    (3)面向可扩展性的分布式数据库:这类数据库想解决的问题就是传统数据库存在可扩展性上的缺陷,

                                   可以适应数据量的增加以及数据结构的变化

  3、特点:

    (1)非结构化的存储

    (2)基于多维关系模型

    (3)具有特有的使用场景

  4、优点:

    (1)高并发,大数据下读写能力较强

    (2)基本支持分布式,易于扩展,可伸缩

    (3)简单,弱结构化存储

  5、缺点:

    (1)join 等复杂操作能力较弱

    (2)事务支持较弱

    (3)通用性差

    (4)无完整约束复杂业务场景支持较差

 

总结:

  1、关系型数据库和 NoSQL 数据库的选型,往往需要考虑几个指标:

    (1)数据量     (2)并发量     (3)实时性

    (4)一致性要求     (5)读写分布和类型

    (6)安全性     (7)运维成本

  2、常见软件系统数据库选型参考如下:

    (1)内部使用的管理型系统:如运营系统,数据量少,并发量小,首选考虑关系型

    (2)大流量系统:如电商单品页,后台考虑选关系型,前台考虑选内存型

    (3)日志型系统:原始数据考虑选列式,日志搜索考虑选倒排索引

    (4)搜索型系统:例如站内搜索,非通用搜索,如商品搜索,后台考虑选关系型,前台考虑选倒排索引

    (5)事务型系统:如库存,交易,记账,考虑选关系型型+缓存+一致性型协议

    (6)离线计算:如大量数据分析,考虑选列式或者关系型也可以

    (7)实时计算:如实时监控,可以考虑选内存型或者列式数据库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10451.html

(0)
上一篇 2022-12-27
下一篇 2022-12-27

相关推荐

  • SQL抽象语法树及改写场景应用[亲测有效]

    SQL抽象语法树及改写场景应用[亲测有效]我们平时会写各种各样或简单或复杂的sql语句,提交后就会得到我们想要的结果集。比如sql语句,”select * from t_user where user_id > 10;”,意在从表t_user

    2023-06-09
    143
  • nifi processer介绍「建议收藏」

    nifi processer介绍「建议收藏」2.3 NiFi Processor应用介绍 对于NiFi的使用者来说,如果想要创建一个高效的数据流,那么就需要了解什么样的单元处理器才最适合这个数据流。NiFi拥有大量的可以用于各种业务场景的单元处

    2023-02-10
    159
  • 容器与k8s_docker仓库搭建

    容器与k8s_docker仓库搭建作者:苏厚镇 青云科技数据库研发工程师 目前从事 RadonDB ClickHouse 相关工作,热衷于研究数据库内核。 ClickHouse[1] 是一款用于联机分析(OLAP)的列式数据库管理系统

    2023-04-20
    164
  • MySQL中的全表扫描和索引树扫描[通俗易懂]

    MySQL中的全表扫描和索引树扫描[通俗易懂]引言 在学习mysql时,我们经常会使用explain来查看sql查询的索引等优化手段的使用情况。在使用explain时,我们可以观察到,explain的输出有一个很关键的列,它就是type属性,ty

    2023-05-16
    140
  • 翻译|使用 StatefulSet 运行数据库应用

    翻译|使用 StatefulSet 运行数据库应用本文介绍 Kubernetes 支持数据库等有状态应用的常见解决方案:StatefulSet。 在构建机器学习向量管理层时,我们面临的一个重要问题:如何持久化数据以避免数据丢失? 在阅读了许多数据库企

    2023-06-01
    150
  • Hive——安装以及概述

    Hive——安装以及概述一、hive的安装 注意:安装hive的前提要安装好MySQL和Hadoop Hadoop安装:https://www.cnblogs.com/lmandcc/p/15306163.html MySQ

    2023-04-23
    150
  • sqlserver表连接方式_sql server数据表的关联

    sqlserver表连接方式_sql server数据表的关联数据库操作中,我们需要的结果可能在两张表甚至多张表中,这时候就需要表连接操作,多表查询中的各个表之间的字段会存在连接,比如主外键关联,可以使用主外键来关联每张表。表连接方式有以下几种: JOIN: 如

    2022-12-25
    163
  • 使用Python tkinter创建可选按钮

    使用Python tkinter创建可选按钮在GUI编程中,可选按钮是非常常用的一个控件。Python的GUI模块tkinter可以方便地实现可选按钮,用于进行用户输入和操作。可选按钮可以单独使用,也可以与其他控件组合使用,例如用于表示用户选项、选择多项操作或进行过滤等。本文将详细介绍如何使用Python tkinter来创建可选按钮。

    2024-03-05
    82

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注