了解SQL和NoSQL数据库和不同的数据库模型

在这种DigitalOcean文章中,我们将要过去的数据库和数据库管理系统的基础知识。我们将了解背后的数据库是如何工作的不同逻辑,什么设置它们分开。

介绍


自古以来,计算机最需要和最依赖的功能之一就是记忆。 虽然技术和底层实现方法不同,但大多数计算机配备有必要的硬件来处理信息,并且安全地保存它们以便在将来必要时使用。

在今天的世界中,几乎不可能想到任何不利用机器的这种能力的应用程序,无论它们是服务器,个人计算机还是手持设备。 从简单的游戏到商业相关的工具,包括网站,某些类型的数据被处理,记录和检索与每个操作。

数据库管理系统 (DBMS)是更高级别的软件,与较低级别的应用程序编程接口(API)的工作,即采取这些行动的照顾。 为了帮助解决不同类型的问题,几十年来开发了新型DBMS(例如关系型,NoSQL等)以及实现它们的应用程序(例如MySQL,PostgreSQL,MongoDB,Redis等)。

在这篇DigitalOcean文章中,我们将讨论数据库和数据库管理系统的基础知识。 我们将了解不同数据库如何工作的逻辑以及它们的区别。

词汇表


数据库管理系统


2.数据库模型


  1. 关系模型
  2. 无模型(NoSQL)方法

  1. 关系数据库管理系统
  2. NoSQL(NewSQL)数据库系统

4. SQL和无SQL数据库管理系统的比较


数据库管理系统


数据库管理系统是一个总括术语,指的是各种完全不同的工具(即计算机程序或嵌入式库),大多以不同的和非常独特的方式工作。 这些应用程序处理或大量协助处理信息集合。 由于信息(或数据)本身可以具有各种形状和尺寸,自从21世纪下半年开始,已经开发了数十个DBMS以及大量DB应用程序,以帮助解决不同的编程和计算机化需要。

数据库管理系统是基于数据库模型 :用于处理数据定义的结构。 每个正在出现的DBMS和为实现其方法而创建的应用程序在所述信息的定义和存储和检索操作方面以非常不同的方式工作。

虽然存在大量实现不同DBM的解决方案,但历史中的每个时期已经看到相对少量的选择迅速变得非常受欢迎并且在较长时间内保持使用,可能是自过去几十年以来最主要的选择(或者甚至更长)是该关系数据库管理系统 (RDBMS)。

数据库模型


每个数据库系统实现了一个不同的数据库模型 ,逻辑结构,它是被管理的数据。 这些模型是数据库应用程序如何工作和处理信息的第一步和最大决定因素。

有很多不同类型的数据库模型,它们明确而严格地提供了结构化数据的方法,最流行的可能是关系模型。

尽管关系模型和关系数据库非常强大和灵活 - 当程序员知道如何使用它们时,对于许多人来说,这些解决方案从来没有真正提供过几个问题或特征。

最近,一系列不同的系统和应用程序(称为NoSQL数据库)开始越来越受欢迎,他们承诺解决这些问题并提供一些非常有趣的附加功能。 通过消除在关系模型中定义的严格结构化的数据保持风格,这些DB系统通过提供一种更加自由形状的信息处理方式来工作,从而提供大量的灵活性和容易性,尽管它们带有自己的问题,一些认真考虑数据的重要和不可缺少的性质。

关系模型


在20世纪70年代引入,关系模型提供了一种非常数学上适应的结构化,保持和使用数据的方式。 它通过引入关系的手段扩展的平面模型,网络模型,等等早期的设计。 关系带来的好处组保持数据作为约束集合,由此数据表,包含以结构化方式的信息(例如一个人的姓名和地址),涉及通过为属性赋值所有的输入(例如: 一个人的身份证号码) 。

由于几十年的研究和开发,实现关系模型的数据库系统非常高效可靠地工作。 与程序员和数据库管理员使用这些工具的工作,利用关系数据库应用程序的长期经验相结合已经成为其不能承受任何信息的损失,在任何情况下的关键任务应用选择-特别是由于毛刺或陷阱

尽管它们具有形成和处理数据的严格性质,但是关系数据库可以变得非常灵活,并且提供了很多,同时有一点努力。

无模型(NoSQL)方法


NoSQL构造数据的方式包括摆脱这些约束,从而释放保持,查询和使用信息的手段。 NoSQL数据库通过使用非结构化(或结构化的在移动)类型的方法,旨在消除严格关系的限制,并提供许多不同类型的方式来有效地保持和处理特定用例的数据例如全文文档存储)。


在本文中,我们的目标是向您介绍一些最常用(和更常用)的数据库解决方案的范例。 虽然难以达到数值结论,但可以清楚地估计,对于大多数情况,可能性在于关系数据库引擎,或者相对较新的NoSQL。 在我们开始理解这些系统中的每一个的不同实现之间的差异之前,让我们现在看看什么是底层。

关系数据库管理系统


关系模型中 ,这是我们在前面已经讨论:关系数据库系统从它实现了模型的名字。 目前,在相当长的时间内,他们是,他们将是保持数据可靠和安全的流行选择 - 它们也是有效的。

关系数据库管理系统需要定义和明确设置的模式 - 这不应该与PostgreSQL的术语的具体定义相混淆 - 以便接受数据。 这些用户定义的格式形成如何包含和使用数据。 模式非常类似于具有列的表,表示属于每个记录的信息的数量和类型; 并且行表示条目。

一些流行的关系数据库管理系统是:

  • SQLite:

一个非常强大的嵌入式关系数据库管理系统。

  • MySQL:

最流行和常用的RDBMS。

  • PostgreSQL:

最先进的,SQL兼容和开源的目标RDBMS。

注意:要了解更多有关的NoSQL数据库管理系统,看看我们的文章的主题: NoSQL数据库管理系统的比较

NoSQL(NewSQL)数据库系统


NoSQL数据库系统没有随结构化关系解决方案使用(或需要)的模型。 有许多实现,每个工作非常不同,并满足特定的需要。 这些方案较少的解决方案要么允许无限的条目形成,或者一个比较相对的,很简单,但非常有效的有用键基于价值商店

与传统的关系数据库不同,可以将数据集与一些NoSQL数据库(如MongoDB)组合在一起。 这些文档存储使每个数据一起,作为一个单一的集合(即文件)在数据库中。 这些文件可以被表示为单数的数据对象,类似于JSON和仍然取决于属性张塌塌米。

NoSQL数据库没有通用的查询数据的方式(即类似于关系数据库的SQL),每个解决方案都提供自己的查询系统。

注意:要了解更多关于关系数据库管理系统,看看我们的主题文章: A的比较关系数据库管理系统

SQL和无SQL数据库管理系统的比较


为了获得更简单,可理解的结论,让我们分析SQL和No-SQL数据库管理系统的差异:

  • 保持数据的结构和类型:

SQL /关系数据库需要具有定义属性的结构来保存数据,这与通常允许自由流操作的NoSQL数据库不同。

  • 查询:

无论其许可证如何,关系数据库都在一定程度上实现了SQL标准,因此可以使用结构化查询语言(SQL)查询它们。 另一方面,NoSQL数据库实现了一种独特的方式来处理他们管理的数据。

  • 缩放:

这两种解决方案都易于垂直扩展(即增加系统资源)。 然而,更现代(和更简单)的应用程序,NoSQL解决方案通常提供更容易水平扩展的手段(即通过创建一个多个机器的集群)。

  • 可靠性:

当涉及到数据可靠性和执行事务的安全保证时,SQL数据库仍然是更好的赌注。

  • 支持:

关系数据库管理系统有几十年的历史。 他们非常受欢迎,很容易找到免费和付费支持。 如果出现问题,因此比最近流行的NoSQL数据库更容易解决 - 特别是如果所述解决方案本质上是复杂的(例如MongoDB)。

  • 复杂的数据保存和查询需求:

从本质上讲,关系型数据库是到复杂的查询和数据保持需求的解决方案。 他们更有效率,并在这个领域。

:提交OS Tezer