【重学 MySQL】三、RDBMS 和非 RDBMS

news2024/9/22 1:21:11

【重学 MySQL】三、RDBMS 和非 RDBMS

  • 关系型数据库(RDBMS)
    • 关系型数据库的核心概念
    • 关系型数据库的优点
    • 关系型数据库的缺点
  • 非关系型数据库(非 RDBMS)
    • 定义与特点
    • 主要特点
    • 常见类型
    • 应用场景
    • 优缺点
    • NoSql 的演变
      • 早期阶段(20世纪70年代至2000年代初)
      • 兴起阶段(2000年代初至2012年)
      • 成熟阶段(2013年至今)
      • 发展趋势

在这里插入图片描述

关系型数据库(RDBMS)

关系型数据库(Relational Database Management System, RDBMS)是一种基于关系模型的数据库管理系统,它使用表格(Table)来存储数据,并通过表格之间的关联(Relation)来实现数据的组织和管理。关系型数据库通过SQL(Structured Query Language)语言来进行数据的查询、更新、插入和删除等操作。

关系型数据库的核心概念

  1. 表格(Table):关系型数据库中的基本数据存储结构,由行(Row)和列(Column)组成。每一行代表一个记录(Record),每一列代表一个字段(Field),字段定义了数据的类型(如整数、字符串、日期等)。

  2. 关系(Relation):表格之间的关联,通过特定的字段(如主键和外键)来实现。关系可以是一对一、一对多或多对多等类型。

  3. 主键(Primary Key):表格中的一个或多个字段,用于唯一标识表中的每一条记录。主键字段的值必须是唯一的,且不允许为空。

  4. 外键(Foreign Key):一个表格中的字段,其值必须对应另一个表格的主键字段的值。外键用于建立和维护表格之间的关联。

  5. 索引(Index):为了提高数据库查询的效率,可以对表格中的某个或某些字段创建索引。索引可以极大地加快数据检索的速度,但也会占用额外的存储空间,并可能影响插入、删除和更新操作的性能。

  6. SQL语言:关系型数据库的标准查询和操作语言,用于实现数据的增删改查(CRUD)操作,以及数据库的结构定义和管理。

关系型数据库的优点

  • 数据一致性:通过事务管理、触发器、外键等机制来保证数据的一致性和完整性。
  • 易于理解:关系模型直观易懂,符合人们的思维方式。
  • 便于管理:提供了丰富的数据管理工具,如SQL Server Management Studio、Oracle SQL Developer等。
  • 安全性:提供了用户认证、权限管理、数据加密等安全机制。

关系型数据库的缺点

  • 性能瓶颈:在处理大规模数据时,关系型数据库的性能可能会受到影响,尤其是在高并发场景下。
  • 扩展性:关系型数据库的扩展性相对较差,通常需要通过复杂的集群技术来实现水平扩展。
  • 成本:商业版的关系型数据库软件成本较高,需要购买许可证和维护支持服务。

尽管如此,关系型数据库仍然是企业和组织中最常用的数据存储和管理工具之一,因为它提供了强大的数据一致性和完整性保证,以及丰富的数据管理工具和安全机制。随着技术的发展,关系型数据库也在不断演进和优化,以更好地满足现代应用的需求。

非关系型数据库(非 RDBMS)

非关系型数据库(Non-Relational Database Management System, NoSQL)是与传统的关系型数据库(RDBMS)相对应的一种数据库管理系统。它不使用关系模型来组织数据,而是采用键值对、文档、列存储、图存储等非关系模型来存储数据。

定义与特点

非关系型数据库是一种不遵循传统关系模型的数据存储和管理方式,它突破了关系数据库结构不可变的限制,数据存储不需要经过SQL层的解析,具有高性能、高可扩展性、灵活的数据模型等特点。NoSQL最常见的解释是“non-relational”,但也有“Not Only SQL”的说法,强调它不仅仅是非关系型的,而是提供了更多样化的数据存储方式。

主要特点

  1. 非结构化:非关系型数据库支持存储非结构化的数据,如文本、图像、音频、视频等,这使得它更适合处理复杂和多样的数据类型。
  2. 高性能:由于不需要经过SQL层的解析,非关系型数据库通常具有更高的读写性能,适用于对性能要求较高的场景。
  3. 高可扩展性:非关系型数据库通常采用分布式架构,可以轻松地扩展到多个节点上,支持海量数据的存储和高并发的读写。
  4. 灵活的数据模型:非关系型数据库支持灵活的数据模型,可以轻松地适应不断变化的数据需求,避免了频繁的模式设计和调整。
  5. 实时数据处理能力:非关系型数据库通常具有高性能的实时数据处理能力,可以满足实时响应和预警等需求。

常见类型

非关系型数据库根据数据存储方式的不同,可以分为以下几种类型:

  1. 键值存储数据库:如Redis,通过键值对的方式来存储数据,查找速度快,适用于作为内存缓存。
  2. 文档存储数据库:如MongoDB,CouchDB,可以存放并获取文档,文档可以是XML、JSON等格式,适合处理复杂的半结构化数据。
  3. 列存储数据库:如HBase,将数据按照列存储到数据库中,可以大量降低系统的I/O,适合于分布式文件系统。
  4. 图存储数据库:如Neo4J、InfoGrid,是一种存储图形关系的数据库,可以方便地存储复杂关系的数据。

应用场景

非关系型数据库在以下场景中应用更为合适:

  1. 大规模数据存储:适用于处理大规模数据集和高并发访问,如互联网公司的用户行为数据、网络日志数据等。
  2. 灵活的数据模型:适用于需要快速迭代和灵活变化的应用场景,如社交媒体、移动应用等。
  3. 实时数据处理:适用于需要实时响应和预警的系统,如金融风控系统、实时交通信息等场景。

优缺点

非关系型数据库的优点主要包括高性能、高可扩展性、灵活的数据模型和高性能的实时数据处理能力。然而,它也存在一些缺点,如缺乏严格的数据一致性和完整性约束、查询能力相对较弱、在某些情况下可能会出现数据丢失等问题。因此,在选择数据库时,需要根据具体的应用场景和需求进行权衡和选择。

NoSql 的演变

NoSQL(Not Only SQL)数据库的演变过程是一个伴随着互联网发展、数据量爆炸式增长以及技术创新的历程。

早期阶段(20世纪70年代至2000年代初)

  • 背景:早期数据库系统主要是层次型和网状型数据库,它们在处理复杂数据结构和大规模数据时存在局限性。随后,关系型数据库(RDBMS)以其严格的数据模式和强大的查询语言成为主流。
  • 关系型数据库的局限性:随着互联网的发展,数据量急剧增加,关系型数据库在处理大规模数据存储、高并发访问以及高可用性等方面逐渐显露出不足。

兴起阶段(2000年代初至2012年)

  • 非关系型数据库的诞生:为了解决关系型数据库的不足,非关系型数据库(NoSQL)开始兴起。这些数据库不遵循关系模型的ACID特性,而是采用更灵活的数据模型和高性能、高可扩展性的架构。
  • 关键事件
    • 2006年,Amazon推出了Dynamo系统,这是一个高可用、分布式的键值存储系统,为NoSQL数据库的发展提供了重要的实践经验。
    • 2009年,MongoDB发布,作为一个文档型数据库,它具有灵活的数据模型和强大的查询功能,迅速受到开发者的欢迎。
    • 同一时期,其他类型的NoSQL数据库如Cassandra(列族数据库)、Redis(内存数据库)等也开始兴起,为不同的应用场景提供了多样化的选择。

成熟阶段(2013年至今)

  • 广泛应用:NoSQL数据库在各个领域得到广泛应用,包括互联网、金融、物联网等。开发者对NoSQL数据库的认识和理解不断加深,开始更加理性地选择适合自己应用场景的数据库。
  • 技术发展与完善:NoSQL数据库的技术不断发展和完善,功能越来越强大,性能也不断提升。同时,一些NoSQL数据库开始支持SQL语言,以提高其易用性。
  • 与云计算的深度融合:NoSQL数据库与云计算平台的结合越来越紧密,为企业提供了更加便捷、高效的数据存储和处理解决方案。例如,AWS的DynamoDB、阿里云的Tair等产品都针对云计算环境进行了优化设计。
  • 多模型融合:未来的NoSQL数据库将支持多种数据模型(如文档、键值、列族、图等),以满足复杂多样的业务需求。

发展趋势

  • 云原生特性增强:越来越多的NoSQL数据库产品将针对云计算环境进行优化设计,充分利用云平台的弹性扩展、分布式存储等优势。
  • Serverless架构的应用:NoSQL数据库将更多地采用Serverless架构,降低使用门槛和成本,提高开发效率。
  • 支持更复杂的查询和分析:通过不断优化查询引擎和索引技术,NoSQL数据库将能够支持更复杂的查询操作和实时分析功能。
  • 内置机器学习算法:一些NoSQL数据库将逐渐内置机器学习算法和库,以便在数据库内部直接进行数据挖掘、模型训练和预测分析等操作。
  • 与人工智能平台的集成:NoSQL数据库将与主流的人工智能和机器学习平台进行更紧密的集成,为构建智能化应用提供更便捷的数据支持。

综上所述,NoSQL数据库的演变是一个不断创新和演进的过程,它为处理大规模数据和高并发访问提供了新的思路和方法。随着技术的不断进步和应用场景的不断拓展,NoSQL数据库将在未来的数据存储和处理中发挥更加重要的作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

langgraph tool如何发送自定义事件

在工具调用过程中,如何将中间状态返回到的stream,可以使用from langchain_core.callbacks import dispatch_custom_event方法实现。示例如下 from langchain_core.callbacks import dispatch_custom_event from langchain_core.tools import tooltool d…

分布式技术概览

文章目录 分布式技术1. 分布式数据库(Distributed Databases)2. 分布式文件系统(Distributed File Systems)3. 分布式哈希表(Distributed Hash Tables, DHTs)4. 分布式缓存(Distributed Caching…

QT 联合opencv 易错点

https://blog.csdn.net/qq_51699436/article/details/135777911 网上已经有大量优秀切详尽的文章来讲述QT联合opencv了,我把容易出错的点列出来备忘 1、在进行opencv进行编译时,要确认好是32位还是64位,因为在创建QT项目的时候QT和opencv要匹…

Vue(7)——工程化开发

目录 工程化开发 组件化开发 普通组件的注册使用 局部注册 全局注册 组件三大组成部分说明 template style script 组件通信 父子关系 prpo prpos校验 类型校验 其他校验 prop与data、单向数据流 工程化开发 工程化开发模式:基于构建工具的环境…

LLM大模型学习:AI大模型原理、应用与未来趋势!

1. 引言 在自然语言处理(NLP)与人工智能(AI)的广袤星海中,大语言模型(Large Language Models, LLMs)宛如一颗璀璨的星辰,正悄然改变我们与语言和机器的互动方式。本章将引领您步入一…

Python从入门到高手1.1节-在windows中安装Python

1.1.1 为什么要安装Python解释器? Python是一种解释型语言,代码的执行需由解释器来逐行读取、转换成机器语言并执行。没有Python解释器,我们编写的Python代码便无法在计算机中运行。 同学们对语言翻译器一定不陌生,我们通过翻译器…

MySQL之DQL-分组函数

1、分组函数 1. 分组函数语法 分组函数也叫聚合函数。是对表中一组记录进行操作,每组只返回一个结果。我们只讲如下5个常用的分组函数: 分组函数 含义 MAX 求最大值 MIN 求最小值 SUM 求和 AVG 求平均值 COUNT 求个数 分组函数的语法如下…

一款企业网盘,支持多种文件存储方式如FTP,SFTP,MINIIO等以及跨平台管理(附源码)

前言 随着数字化转型的推进,企业越来越依赖于云端技术来存储、管理和共享重要的业务文件。传统的本地存储处理方案虽然可靠,但在灵活性、可访问性和协作方面显得力不从心。尤其在远程工作变得日益普遍的今天,如何高-效地管理分散团队之间的文…

【IEEE独立出版 | 往届快至会后2个月检索,刊后1个月检索】2024年第四届电子信息工程与计算机科学国际会议(EIECS 2024)

在线投稿:学术会议-学术交流征稿-学术会议在线-艾思科蓝 电子信息的出现与计算机技术、通信技术和高密度存储技术的迅速发展并在各个领域里得到广泛应用有着密切关系。作为高技术领域中重要的前沿技术之一,电子信息工程具有前瞻性、先导性的特点&#x…

代码随想录训练营day42|188.买卖股票的最佳时机IV,309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费

188.买卖股票的最佳时机IV 变成了最多可以买卖k只股票 class Solution { public:int maxProfit(int k, vector<int>& prices) {vector<vector<int>> dp(prices.size(),vector<int>(2*k1,0));for(int i1;i<2*k1;i2){dp[0][i]-prices[0];}//初始…

【ESP32】fopen 无法创建.html文件

Long filename support设置为Long filename buffer in heap 后fopen正常创建.html文件

springBoot 集成https

springBoot 集成https 1、springBoot默认的证书格式 pring Boot 需要 .p12 或 .jks 格式的证书。如果你只有 .pem 和 .key 文件&#xff0c;可以使用 openssl 工具将它们转换成 .p12 文件 2、转换.p12 我的证书文件如下&#xff0c;需要转换 2.1 下载openssl https://slpr…

C#EF框架

EF概念: 实体框架&#xff08;Entity Framework&#xff09;是一种对象关系映射器&#xff08;O/RM&#xff09;&#xff0c;它使.NET开发人员能够通过.NET对象来操作数据库。它消除了开发人员通常需要编写的大多数数据访问代码的需求。ORM框架有个优势&#xff1a;解放开发人…

游戏开发| Unreal5.2-5.4接入chatGPT定制游戏NPC

引擎版本UE5.2 (也支持到5.4,有试用其它插件所以选择之前版本) 使用插件(免费) 1.VArest (插件官方介绍:Plugin that makes REST communications much easier.)可以让REST(Representational State Transfer)通信变得更加容易,涉及客户端与服务器之间通过 HTTP 协议…

帧缓冲 framebuffer

一、基本概念 framebuffer: 帧缓存、帧缓存&#xff08;显示设备&#xff09; Linux内核为显示提供的一套应用程序接口。&#xff08;驱动内核支持&#xff09; 分辨率&#xff1a; 像素点 显示屏&#xff1a;800 * 600&#xff08;横向有800个像素点&#xff0c;纵向有60…

9.10总结

今天学习了树形dp 根据题目意思可以建出一颗树&#xff0c;先dfs递到叶节点&#xff0c;在归的时候有递推方程 dp[n][0]max(dp[s][1],dp[s][0]); dp[n][1]dp[s][0]; s为n的子节点&#xff0c;那么递推方程就写出来了&#xff0c;今天还做了几道dp&#xff0c;都是线性dp 总…

【电子通识】半导体工艺——刻蚀工艺

在文章【电子通识】半导体工艺——光刻工艺中我们讲到人们经常将 Photo Lithography&#xff08;光刻&#xff09;缩写成 Photo。光刻工艺是在晶圆上利用光线来照射带有电路图形的光罩&#xff0c;从而绘制电路。光刻工艺类似于洗印黑白照片&#xff0c;将在胶片上形成的图像印…

Vue组件:混入

1、基本用法 混入是一种为组件提供可复用功能的非常灵活的方式。混入对象可以包含任意的组件选项。当组件使用混入对象时&#xff0c;混入对象中的所有选项将被混入该组件本身的选项中。 语法格式如下&#xff1a; <script> //第一步&#xff1a;引用 mixin 对象 impo…

为什么说AI产业落地,下一代超级应用是“智能体”?

“未来超级应用方向就是AI Agent&#xff0c;ChatGPT很了不起、很强大&#xff0c;但与Agent不一样。AI Agent时代的到来&#xff0c;不会是一个神奇而强大的模型突然代替了所有的工作流&#xff0c;涉及到技术、工程与市场的不断磨合&#xff0c;最终以超预期的服务呈现给人类…

LED会议一体机开启超微小间距COB高清显示在会议系统中的新乐章

在当今数字化、信息化高速发展的时代&#xff0c;会议系统作为企业沟通、决策的重要平台&#xff0c;其显示技术的革新正以前所未有的速度推动着会议体验的飞跃。LED会议一体机&#xff0c;作为这一领域的佼佼者&#xff0c;特别是当其融合了超微小间距COB&#xff08;Chip On …