【StoneDB Class】入门第一课:数据库知识科普

在没有出现数据库之前,数据存储在文本中,这种数据存储方式不管是管理还是查询,效率都是极其低下的,数据之间没有关联性。到了1970年,IBM研究员 E.F.Codd 发表了论文”A Relational Model of Data for Large Shared Data Banks”,该论文中第一次提出了关系模型的概念,为关系型数据库奠定了基础,才有了后面涌现的如IBM的DB2、甲骨文的Oracle等优秀的关系型数据库。一直到上世纪90年代,数据库都是以关系型数据库为主。但随着数据量的增长,关系型数据库已无法满足更多的应用场景,数据库领域便随之出现了非关系型数据库。

数据库分类

数据库用于数据存储和访问,不同类型的数据库将满足不同场景的需求。如果您的数据库没有事务要求,并且读写高度并发,则可以选择非关系数据库。如果您的数据库主要存储历史数据,访问频率较低,您可以选择压缩比高、读优化的数据库。如果您的数据库同时具有交易和复杂分析,则可以选择具有混合存储引擎的数据库。

[En]

Databases are used for data storage and access, and different types of databases will meet the needs of different scenarios. If your database has no transaction requirements and is highly concurrent in reading and writing, you can choose a non-relational database. If your database mainly stores historical data and is accessed less frequently, you can choose a database with high compression ratio and read optimization. If your database has both trading and complex analytics, you can choose a database with a hybrid storage engine.

【StoneDB Class】入门第一课:数据库知识科普
数据库按照数据模型来划分,可分为关系型数据库和非关系型数据库。关系型数据库的数据是高度组织化和结构化的,可以使用结构化查询语言进行复杂的查询。非关系型数据库的数据是非结构化的,没有声明性查询语言,代表着不仅仅是SQL。关系型数据库注重事务的强一致性,而非关系型数据库注重可扩展性。数据库市场使用广泛的关系型数据库有 Oracle 、 MySQL 、 SQL Server ,数据库市场使用广泛的非关系型数据库有 Redis 、MongoDB 。
数据库按照数据分布来划分,可分为集中式数据库和分布式数据库。集中式数据库是一个或者多个数据库实例管理一份数据,每个数据库实例都可以看到全部数据,属于 Shared-Everything 架构。分布式数据库是每个数据库实例管理自己的数据,全量数据是所有数据库实例管理的数据的总和,属于 Shared-Nothing 架构。
【StoneDB Class】入门第一课:数据库知识科普
数据库按照数据处理来划分,可分为 OLTP 数据库、OLAP 数据库以及 HTAP 数据库,StoneDB 就是一款一体化实时 HTAP 数据库,后面几个课程会给大家深入介绍。OLTP 数据库适用于交易类系统,特征是大并发的小型事务处理,单次处理的数据量小。OLAP 数据库适用于分析类系统,特征是并发小,系统吞吐量高,单次处理的数据量大。HTAP 数据库是一种新型的架构,指的是混合事务和分析处理过程,出现 HTAP 的目的是打破 OLTP 和 OLAP 之间的壁垒。

数据库瓶颈

经过50多年的发展,传统数据库无论是数据库本身的稳定性,还是数据库厂商的技术支持,都已经非常成熟。官网上数据库厂商提供的丰富学习资料,让用户轻松学习该数据库。然而,随着时代的发展,特别是互联网技术的出现,数据库中的数据量呈指数级增长,传统数据库不仅在并发和存储方面存在瓶颈,而且可扩展性有限。

[En]

After more than 50 years of development, the traditional database has become very mature, whether it is the stability of the database itself or the technical support of database manufacturers. The rich learning materials provided by database manufacturers on the official website make it easy for users to learn this database. However, with the development of the times, especially the emergence of Internet technology, the amount of data in the database is growing exponentially, so the traditional database not only has bottlenecks in concurrency and storage, but also has limited scalability.

当传统的关系数据库不能满足业务场景的需求时,比如海量数据的高并发存储,就有了分布式数据库。分布式数据库由多个服务器组成,不仅提供更多的连接访问,还提供更多的存储容量,并且在可扩展性方面是线性的。分布式数据库解决了传统数据库的瓶颈,但分布式数据库并不完美。

[En]

When the traditional relational database can not meet the needs of business scenarios, such as mass data storage with high concurrency, there is a distributed database. Distributed database is composed of multiple servers, which not only provides more connection access, but also provides more storage capacity, and is linear in terms of scalability. Distributed database solves the bottleneck of traditional database, but distributed database is not perfect.

在事务一致性方面,传统数据库很容易保证 ACID ,而分布式数据库由多个数据库实例组成,分布在一个网络环境中,为了保证事务的一致性,引入了两阶段提交、三阶段提交、补偿事务。分布式事务在管理开销也是较大的,比如对悲观锁的支持,虽然一致性读无需持有锁,但查询也可能会被阻塞。

在基于成本的执行计划方面,由于数据分布在不同的节点,再加上分布式算法的复杂度,SQL 是否能保证有一个稳定的执行计划。

在数据一致性方面,当分布式数据库存储在多个副本中时,数据一致性问题变得更加复杂。假设服务器在更新副本时出现故障,在这种情况下,如何确保故障恢复后服务器上的副本与其他副本一致。

[En]

In terms of data consistency, when distributed databases are stored in multiple copies, the problem of data consistency becomes more complex. Suppose the server fails while updating a copy, in which case how to ensure that the replica on the server is consistent with the other replicas after the failure is restored.

国产数据库

多年来国外数据库厂商处于绝对的主导地位,随着近几年IT国产化战略的提出,国内涌现出了多个数据库厂商,形成了百家争鸣。有发展多年的关系型数据库,如达梦、人大金仓、南大通用等;有势头猛进的分布式交易型数据库,如 TiDB 、 OceanBase 等;也有稳扎稳打的分布式分析型数据库 GaussDB 。

【StoneDB Class】入门第一课:数据库知识科普
(国产数据库)

StoneDB 作为自主设计、研发的国内首款基于 MySQL 内核打造的开源 HTAP 数据库,在同一个数据库实例中采用行列混合存储的方案,解决了 TP 和 AP 的问题,同时可实现与 MySQL 的无缝切换。由于100%兼容 MySQL ,让运维变的更简单,用户的体验感也更佳。
下节课我们将带大家深入了解 StoneDB 的系统架构和功能特点,请持续关注。关于StoneDB的任何问题,都可以加我V咨询:StoneDB_2022 。

Original: https://www.cnblogs.com/yangwilly/p/16595807.html
Author: 来来士
Title: 【StoneDB Class】入门第一课:数据库知识科普

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/505000/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL的Explain总结

    Explain简介 MySQL优化器在基于成本的计算和基于规则的SQL优化会生成一个所谓的 执行计划,我们就可以使用执行计划查看MySQL对该语句具体的执行方式。 介绍这个好啰嗦就…

    数据库 2023年5月24日
    074
  • Oracle 备份与恢复 (Docker部署版)

    Oracle 备份与恢复 (Docker部署版) 一,宿主机设置定时备份脚本 1.检查Oracle容器是否正常运行 docker ps 2.进入容器,创建shell脚本 #orac…

    数据库 2023年6月11日
    093
  • git配置报错fatal: Authentication failed for ”问题解决

    如果在git配置中报错fatal: Authentication failed for ”,其实就是 凭证失败的意思 接着输入一下命令行没有出现要求输入用户名或密码,并…

    数据库 2023年6月11日
    0197
  • MySQL的文件系统(Linux环境)

    /var/lib/mysql/ 可通过以下sql命令查看: mysql> show variables like ‘datadir’; +—————+–…

    数据库 2023年5月24日
    066
  • 系统架构的11条原则

    基本原则 原则一:价值为王 解析: 价值为王的另一种说法叫做YAGNI。YAGNI 是 You aren’t gonna need it 的缩写。该原则的基本含义就是,…

    数据库 2023年6月6日
    089
  • 设计模式之(1)——简单工厂模式

    创建型模式:主要用于对象的创建; 结构型模式:用于处理类或者对象的组合; 行为型模式:用于描述类或对象怎样交互和分配职责; ————————————————————————————…

    数据库 2023年6月14日
    093
  • docker-ckeditor图片img标签style属性自适应

    1,修改ckeditor的源码cofig.js文件 // 不给图片img&#x6DF…

    数据库 2023年6月9日
    0102
  • MySQL8新增降序索引

    MySQL8新增降序索引 桃花坞里桃花庵,桃花庵里桃花仙。桃花仙人种桃树,又摘桃花卖酒钱。 一、MySQL5.7 降序索引 MySQL 在语法上很早就已经支持降序索引,但实际上创建…

    数据库 2023年5月24日
    078
  • 15. 三数之和

    给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案…

    数据库 2023年6月16日
    061
  • 事务

    事务 *事务的简介 事务是一组操作的集合,这是一个不可分割的工作单元。事务将向整个系统提交或取消操作请求。这些操作只能同时成功和失败。 [En] A transaction is …

    数据库 2023年5月24日
    0108
  • MySQL 中 bigint、int、mediumint、smallint、tinyint 有符号和无符号的取值范围

    想要了解取值范围首先需要知道的是 bit 和 Byte 的概念 bit :位 二进制数系统中,位通常简写为 “b”,也称为比特,每个二进制数字 0 或 1 …

    数据库 2023年5月24日
    078
  • Mysql数据库基础_复习思维导图

    Mysql复习的一个小总结,用xmind写的。(字数没有都不给我发博客😹) 下面是一些备注 子查询 MySQL子查询称为内部查询,而包含子查询的查询称为外部查询。 子查询可以在使用…

    数据库 2023年5月24日
    069
  • Java绘图基础

    Graphics 绘图类 Graphic是一个抽象的画笔对象,可以在组件上绘制丰富多彩的几何图形和位图。Graphics类封装了Java支持的基本绘图操作所需的属性,主要包括 颜色…

    数据库 2023年6月16日
    074
  • 3_JavaScript

    JavaScript语言诞生主要是完成页面的数据验证, 因此它运行在客户端, 需要运行浏览器来解析执行JavaScript代码 JS是弱类型, Java是强类型 特点 交互性(它可…

    数据库 2023年6月11日
    088
  • 运维DBA要不要学python

    我个人认为是:要 现在python在运维数据库的工作中主要用在 1、编写一些运维脚本 2、编写运维管理平台 3、研究互联网大厂的运维脚本/工具并应有 特别是运维开源数据库的时候,第…

    数据库 2023年6月9日
    081
  • HttpServletResponse 类

    HttpServletResponse 类的作用 HttpServletResponse 类和 HttpServletRequest 类一样。每次请求进来,Tomcat 服务器都会…

    数据库 2023年6月11日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球