什么是数据库?

了解数据库

2021年11月29日
10分钟的阅读
databeses

数据库是一个您可能经常听到的术语特别是在讨论21世纪的流行词:数据时。虽然不可否认这两个术语有内在的联系,但您可能会惊讶于数据库对于数据的收集、访问和存储是多么重要——特别是对于您自己的业务。

数据可能正在推动我们日益数字化的世界,但如果您对数据库的主题了解不多,也可以理解。值得庆幸的是,我们已经创建了这个深入的指南,以帮助您不仅了解什么是数据库,而且了解它的演变、好处、挑战、日常生活中的例子,等等。

数据库(DB)

1.数据库的定义

数据库是相关数据或信息的有组织的集合,在计算机系统中以电子方式存储和访问。这些数据通常由数据库管理系统(DBMS)控制。通过DBMS,用户还可以存储和检索大量的数据。这个数据库管理系统,连同它的数据和相关的应用程序,被称为数据库系统,或简称为“数据库”。

大多数数据库使用结构化查询语言(SQL)来写入和查询数据。此外,这些数据库中的数据通常以表中的行和列的形式建模(或表示)。以这种方式设置数据可以方便地访问、控制、修改、更新、管理和结构化数据。

有许多不同类型的数据库,包括关系数据库、NoSQL数据库、面向对象数据库、云数据库等等。我们将在第4章详细讨论所有这些。

2.SQL是什么?

在前一章中,我们简要地提到了SQL(或结构化查询语言),以及大多数数据库使用它的事实。

详细说明SQL是什么:它是一种用于与数据库通信的编程语言。SQL的使用非常广泛,美国国家标准协会(ANSI)认为它是关系数据库管理系统的标准语言。

关系数据库是我们在前一章中描述的使用SQL并以行、列和表的形式显示数据的数据库。

一些最著名的使用SQL的关系数据库管理系统包括:

  • 甲骨文

  • 赛贝斯公司

  • Microsoft SQL Server

  • 访问

  • 安格尔

SQL语言以一种允许用户执行重要任务(如更新或检索数据)的方式与数据库通信。例如,标准SQL命令包括Select、Insert、Update、Delete、Create和Drop。这六个基本命令一起允许用户在数据库中执行任何可能需要执行的操作。

同样重要的是要指出,尽管大多数数据库系统使用SQL,但大多数数据库系统也有自己的额外内置扩展,这些扩展仅针对其系统。

3.进化的数据库

数据库并不是一个新概念;然而,随着时间的推移,它一直在不断发展,成为我们今天所知的智能大数据存储系统。

数据建模和数据库实际上可以追溯到20世纪60年代,它们的演变可以分为五个关键阶段进行讨论。

在最开始,数据库管理系统的开发遵循三种不同的模型:层次模型、网络模型和倒文件模型。

这发生在20世纪60年代,然而在20世纪90年代,一种新的DBMS模型诞生了:面向对象模型,也被称为对象数据库。

数据库发展的第二个阶段是以关系模型的形式出现的,它在20世纪90年代早期引入了所有的SQL产品,以及一些非SQL产品。2008年,这种数据库模型开始经历一些衰退。

在线分析处理(OLAP)和专门的dbms也在1990年左右被引入,这两者直到今天仍然非常流行。

第四个阶段被称为图形数据库阶段,始于1999年全球Web联盟的语义Web堆栈。2008年,这一趋势随着属性图数据库的出现而继续。

最后,数据库发展的最新阶段始于2008年。它被称为NoSQL阶段,包括我们今天所知道的数据库,包括大数据现象。

4.类型的数据库

到目前为止,您可能已经意识到有许多不同类型的数据库,每种数据库都有自己的属性和系统。让我们进一步了解下面的各种数据库类型,以及每种类型的一些众所周知的示例。

1.关系数据库

关系数据库是最著名和使用最广泛的数据库类型之一。它们的名称来源于它们存储数据的方式,即在许多相关的表中存储数据。然后,这些表以行和列的形式显示信息。正因为如此,关系数据库非常可靠,而且可以很好地处理结构化数据。然而,这使得它们不适合处理大量非结构化或半结构化数据的公司。

关系数据库还使用SQL(结构化查询语言,如前面第2章所述)来读取、创建、更新和删除数据。允许用户创建、更新和管理关系数据库的程序称为关系数据库管理系统(RDBMS)。

这种类型的数据库还符合所谓的ACID,即原子性、一致性、隔离性和持久性。当这四个属性出现时,它可以确保数据库事务是可靠和准确的,尽管可能发生任何其他错误。

著名的关系数据库的例子包括:

  • Microsoft SQL Server

  • Oracle数据库

  • MySQL

  • PostgreSQL

  • IBM Db2

2.NoSQL数据库

您已经了解了使用SQL的数据库,那么NoSQL呢?NoSQL数据库就是那些不使用结构化查询语言作为中心数据访问语言的数据库。它们也被称为非关系数据库,因为与关系数据库不同,NoSQL数据库中的数据不需要遵循预定义的结构或模型。正因为如此,它们非常适合希望存储和监督非结构化和半结构化数据的企业或用户。

NoSQL数据库的另一个好处是,开发人员可以“动态地”(或在执行其他任务时)对数据库进行更改,而不会影响使用该数据库的程序。

NoSQL数据库的例子包括:

  • Apache Cassandra

  • MongoDB

  • CouchDB

3.云计算数据库

顾名思义,云数据库是被设计为“在云中”运行的数据库——换句话说,是在通过Internet访问的服务器中运行的数据库。因为它们是在这种软件即服务(SaaS)分发模型中提供的,所以这些数据库的维护成本通常很低。其他好处包括灵活性、可伸缩性和高可用性。

你可能听说过的一些常见的云数据库例子包括:

  • Microsoft Azure SQL数据库

  • Amazon关系数据库服务

  • Oracle自治数据库

4.柱状数据库

列数据库将数据存储在列中而不是行中。这种数据库模型也称为列数据存储,非常适合处理分析查询,因此使它们在数据仓库中很常见。

当请求从列数据库生成数据时,只能从所需的列检索信息。因此,它基本上会忽略所有不适用于查询的数据。

柱状数据库的一些例子包括:

  • 谷歌BigQuery

  • 卡珊德拉

  • HBase

  • MariaDB

  • Azure SQL数据仓库

5.宽列数据库

宽列数据库,也称为宽列存储,非常适合支持实时大数据应用程序。因为它们将数据存储在列组中,而不是行和列中,所以它们都具有高度可伸缩性,可以处理大量的数据。

你可能听说过的三种宽列数据库包括:

  • BigTable

  • Apache Cassandra

  • “锡拉”

6.面向对象数据库

在面向对象的数据库中,它的所有属性都被绑定在一起作为一个对象。这些数据库基于面向对象编程,由面向对象数据库管理系统(OODBMS)管理。因此,面向对象的数据库响应面向对象的编程语言,如Java和c++。此外,这些数据库符合ACID(原子性、一致性、隔离性、持久性标准),就像关系数据库一样。

面向对象数据库的例子有:

  • Wakanda

  • ObjectStore

7.键-值数据库

键值数据库是NoSQL数据库的一种。也称为键值存储,这些数据库将数据保存为一组键值对,每个键值对包含两个数据项。由于key-value数据库具有较高的可扩展性和处理大量流量的能力,因此它是管理web应用程序会话、在线购物车或大型多人在线游戏的用户会话等任务的最佳选择。

两个键值数据库包括:

  • 亚马逊DynamoDB

  • 复述,

8.层次数据库

分层数据库被称为父子模型,它以类似于家族树的模型组织数据,一个对象分支到它下面的多个对象。它最初是由IBM在20世纪60年代早期开发的,因此是最早的数据库模型之一。

分层数据库使用的类似家族树的结构是不灵活的,因此子记录不能有多个父记录(它源于的数据)。然而,即使到今天,这种类型的数据库也通常用于支持高性能和高可用性应用程序。

例子包括:

  • IBM信息管理系统(IMS)

  • Windows注册表

9.文档数据库

文档数据库通常也称为文档存储或面向文档的数据库。它们与我们迄今为止讨论过的其他数据库的不同之处在于,它们使用类似json的文档来建模数据,而不是行和列。JSON文档由字段组成,字段是名值对。字段可以是任意顺序的,可以嵌套或排列在数组(由元素集合组成的数据结构)中。

创建文档数据库是为了存储和管理面向文档的信息,这只是描述半结构化数据的另一个术语。由于该数据库模型简单且易于扩展,因此对于需要定期快速更新或改进的移动应用程序来说,它是一个很好的解决方案。

文档数据库的三个著名例子包括:

  • MongoDB

  • 亚马逊DocumentDB

  • Apache CouchDB

10.图形数据库

图数据库是NoSQL数据库的另一个例子;然而,这个模型也是基于图论的。图论是通过图来研究关系,或者更具体地说,是一种量化和简化动态系统中众多运动部件的方法。

因此,图形数据库通常用于分析不同数据点之间的关系,例如在欺诈预防或从公司的社交媒体关注者中挖掘关于客户的数据。

为了识别和处理数据点之间的连接,用户必须使用面向图形的数据库管理系统(DBMS)软件。

一些图形数据库是:

  • Datastax企业图

  • Neo4J

11.时间序列数据库

顾名思义,时间序列数据库处理时间序列或时间戳数据。例如,这可能包括网络数据、传感器数据和应用程序性能监视数据。

一些常见的时间序列数据库包括:

  • 德鲁伊

  • eXtremeDB

  • InfluxDB

5.数据库实例

正如您在前一章所学到的,数据库有许多不同类型。到目前为止,您可能想知道数据库在日常生活中是如何使用的。从游戏到你在线购买的产品,数据库都是非常通用的。这里有6个例子告诉你如何做。

1.按需在线视频流媒体

在使用点播视频流媒体平台时,您可能已经注意到它是如何跟踪您的观看偏好的。例如,Netflix等平台会将这些偏好与它们在你的主屏幕上播放的电视节目或电影相匹配。

视频流媒体公司实际上是使用数据库来做到这一点的,因为他们在任何给定的时间都有大量的数据来组织和分析。这样做可以让他们在你每次登录他们的服务时提供更优的观看建议。

netlix

2.个人云存储

你可能会使用的个人云存储系统包括Dropbox、谷歌Drive、Microsoft OneDrive和iCloud。它们都使用复杂的数据模型和功能强大的数据仓库,以确保您的数据被安全地存储,并且在您需要访问它的任何时候都可以访问它——白天或晚上。

icloud

3.社交媒体

社交媒体平台收集和存储了大量的用户信息。他们还需要这些数据进行交叉引用,这样他们就可以向每个用户准确地推荐朋友、企业、产品和主题,因此需要高度可靠和功能强大的数据库软件。

例如,Facebook在其数据中心中运行MySQL,并且自其创建以来一直如此。其他社交媒体平台利用NoSQL数据库,证明没有一个单一的解决方案适合所有人。

脸谱网

5.电子商务

没有数据库的使用,电子商务商店根本无法运行。这是因为数据库负责组织产品、定价、客户信息和购买历史记录等任务。

在线商店可以使用他们的数据来帮助他们做很多事情,例如,根据个人用户过去的购买记录向他们推荐特定的产品。

因此,拥有一个高度安全的数据库也很重要,特别是具有PCI Compliance认证的数据库。

亚马逊

6.医疗保健

医疗保健(包括医院和医生办公室)是另一个严重依赖数据库使用的主要行业。它们必须存储大量的患者数据,并且能够安全地轻松地访问这些数据。正如您可以想象的那样,这些数据库包含复杂的数据结构,不仅要处理这些大量的数据,而且还要遵守HIPAA(1996年健康保险便携性和责任法案)敏感数据管理标准。

例如,领先的医疗保健网站healthcare .gov使用NoSQL数据库来管理他们的医疗保险信息。

英国医疗政府

6.什么是数据库软件?

到目前为止,我们已经多次提到数据库软件这个术语,所以让我们进一步了解什么是数据库软件,以及如何使用它。

数据库软件允许用户创建、更改和管理数据库文件和记录。如果没有它,数据输入、数据编辑、更新和报告等任务将非常困难。数据库软件还负责数据的存储、备份、多访问控制和安全等工作。

最后一点尤其重要,特别是在数据量持续增加并在我们的世界中发挥重要作用的情况下。随着时间的推移,数据盗窃变得越来越频繁,是组织必须防范的一个日益重要的问题。

此外,数据库软件使数据管理过程更容易,因此值得称赞。它允许用户以结构化的形式存储数据,然后访问数据。通常,数据库软件有一个图形界面,用户可以从中创建和管理数据。在更高级的情况下,用户甚至可以通过数据库软件的帮助建立自己的数据库。

7.什么是数据库管理系统(DBMS)?

数据库管理系统——或者简称为DBSM——与数据库软件非常相似,如第6章所述。然而,它的主要目的是充当最终用户和数据库之间的接口。为此,DBSM必须同时管理数据、数据库引擎和数据库模式,以便能够组织和管理数据。

DBMS的主要特征和功能包括:

  • 描述元数据的用户可访问目录

  • 一个DBMS图书馆管理系统

  • 数据抽象和独立性

  • 数据安全

  • 记录和回顾活动

  • 并发性和事务支持

  • 支持访问授权

  • 从远程位置访问支持的能力

  • DBMS数据在损坏或丢失时的恢复

  • 应用限制以确保数据遵循特定的规则

数据库管理系统通过使用系统命令进行操作。首先,它从管理系统中的数据库管理员那里获得指令。然后,当它得到相应的指示时,它要么检索数据,要么修改数据,要么从系统加载现有数据。

8.什么是MySQL数据库?

MySQL数据库是你在处理数据时会遇到的另一个术语。简单地说,MySQL数据库是一个开源关系数据库管理系统,简称RDBMS。

它得名于单词“My”(创始人女儿的名字)和SQL(结构化查询语言),用于生成、更改和从关系数据库中提取数据。作为关系数据库的一种,它将数据组织到数据表中,数据类型之间的关系有助于构建数据结构。

MySQL还可以与操作系统一起工作,在计算机的存储系统中创建关系数据库。此外,它使管理用户、提供网络访问、帮助测试数据库完整性以及数据备份成为可能。

通常,MySQL与其他程序一起使用,以执行需要关系数据库功能的应用程序。

MySQL被许多流行的网站使用,例如,包括Facebook、Flickr、MediaWiki、Twitter和YouTube。

9.影响数据库性能的关键因素

影响数据库性能的关键因素有五个。这包括工作负载、吞吐量、资源、优化和竞争。让我们仔细看看下面的每一个。

  1. 工作负载指数据库的需求。这可能包括在线事务、批处理任务、特别查询、数据仓库分析、实用程序和系统命令等过程——所有这些都可能在任何时间发生。有时,这种工作负载可能是可预测的,例如在员工回家后工作负载较轻,或者在月底处理工资单时工作负载较重。然而,通常情况下,工作负载可能会急剧波动——甚至每分钟都是如此。

  2. 吞吐量描述硬件和软件处理数据的容量和能力。它由几个要素组成,包括I/O速度、CPU速度、机器的并行能力、DBMS的核心以及操作系统和软件的能力。

  3. 资源系统的指的是数据库所使用的硬件和软件工具。例如,这些资源包括数据库内核、磁盘空间、内存、缓存控制器和微码。

  4. 优化是影响数据库性能的另一个关键因素。所有类型的数据库系统都可以进行优化,许多数据库系统还可以在内部执行自己的查询优化。为了获得对所需数据的最有效的访问路径,还必须优化SQL公式、数据库参数、数据库组织等内容。

  5. 争用描述工作负载的两个或多个组件试图以矛盾的方式使用单个资源的场景。当对特定资源的需求很高时,例如当系统试图对同一数据集应用双重更新时,可能会发生这种情况。但是,随着争用的增加,它也会影响吞吐量,降低吞吐量。

10.数据库管理的挑战

尽管数据库为企业提供了几十年前不具备的独特优势,但它们也有自己的困难。让我们深入研究组织可能遇到的五个最常见的数据库管理挑战。

  1. 景观越来越复杂。正如我们在第4章中所介绍的,有许多可用的数据库类型,包括关系数据库、柱状数据库、面向对象数据库、NoSQL数据库等等。在选择一个新的数据库管理系统时,选项的数量可能会非常多。随着数据库市场的持续增长和发展,许多企业发现很难确定哪个解决方案最能满足他们的需求。

  2. 限制可伸缩性。所有软件都受到资源使用和可伸缩性的限制,数据库服务也不例外。有许多元素可以测试—并可能打破—数据库的限制,包括编目组件、数据库体系结构以及操作系统和硬件的配置。

  3. 增加了数据量。你知道在过去的两年里创造的数据比整个人类的总和还要多吗?随着数据的创建和存储以惊人的速度增长,企业发现越来越难以跟上数据的增长。然而,对于一家《财富》1000强企业来说,只要增加10%的数据访问权限,就能创造超过6,500万美元的净收入。因此,企业的最佳利益是继续追求更先进的数据库系统——尽管有困难。

  4. 数据安全。数据库已经成为每个企业的核心,特别是涉及到他们的私人或敏感数据时。然而,多年来,人们已经学会利用这些系统来访问这些受限制的数据。数据安全现在比以往任何时候都更重要。毕竟,一次数据泄露平均给一家公司带来400万美元的损失,更不用说信任和声誉的损失了。

  5. 分散的数据管理。尽管去中心化数据管理(将工作负载分散到多台机器上)有它的好处,但它也带来了挑战。如果没有对整个数据库的集中了解,那么设计和管理数据库可能会非常困难。由此产生的问题包括:

  • 如何分配数据?

  • 最优的去中心化方法是什么?

  • 分权的适当程度是什么?

11.什么是数据库管理员?

到目前为止,您可能想知道企业如何获得一个数据库来存储和管理所有数据。这就是数据管理员(DBA)派上用场的地方。他们根据组织的具体需求建立数据库,然后对其进行维护,因此数据库运行顺畅。此外,它们还在需要时通过微调、升级和测试对数据库的调整来帮助业务。

简单地说,您可以将数据管理员看作是公司宝贵数据库的监护人。他们需要采取安全措施,确保敏感数据不被窃取,同时还要管理帮助存储和组织数据的数据库。

数据库管理员的工作范围很广,包括公共部门和私营部门。此外,一些数据库管理员还担任企业的顾问。

12:数据库管理员做什么?

现在您已经了解了什么是数据管理员,让我们进一步了解他们的角色和职责。在任何一天,数据库管理员都要执行以下任务:

  • 确保数据分析人员可以轻松地使用数据库找到他们需要的信息

  • 发展安全措施

  • 备份系统,以防停电或其他破坏性事件

  • 恢复数据,防止丢失

  • 确保数据库中存储的数据来自可靠的来源

  • 监视数据库系统的性能,以确定何时需要采取行动

  • 在数据库问题出现时进行诊断和纠正

  • 将旧数据库合并到新数据库中

数据库管理员通常在团队中执行这项工作,因此必须能够与开发人员、管理人员和其他工作人员等涉众有效地沟通。

虽然通用数据管理员执行所有这些任务,但角色中可能存在专门性。

  • 系统数据库管理员负责数据库的物理和技术方面。他们做的事情包括确保公司计算机系统中的数据库正常工作,以及安装升级和补丁以修复错误。

  • 应用程序数据库管理员另一方面,维护为特定目的或一组功能而创建的数据库,如客户服务软件。使用复杂的编程语言,他们可能编写程序或调试程序。此外,他们必须能够管理使用数据库的应用程序。他们还执行一般DBA的所有任务,但只针对特定的应用程序。

13.数据库常见问题

为了解决您对这个主题的任何疑问,以下是我们对有关数据库的最常见问题的回答。

1.为什么数据库很重要?

除了允许用户以一种有组织的、易于访问的方式收集和存储大量数据外,数据库还以各种方式帮助企业发展:

  • 帮助组织做出更明智和研究支持的决策

  • 能够有效地存储和检索相关数据

  • 协助业务数据的汇总和分析

  • 收集和存储来自各种应用程序的关键客户数据

  • 交付数据驱动的、及时的、个性化的和详细的应用程序和分析

  • 保证对重要业务数据的快速访问,业务中的许多部门可以使用这些数据来理解数据模式、生成报告和预测未来的趋势

  • 将数据从遗留系统使用的分类数据库映射到数据仓库中使用的关系数据库。

2.电子表格和数据库的区别是什么?

简单地说,电子表格是那些想要跟踪数字或保存与他人不时共享的信息列表的人更好的选择。在处理更复杂的数据或将单一数据源用于多种目的的场景中,数据库是首选。

然而,两者之间的主要技术差异在于它们存储数据的方式。例如,在电子表格中,数据存储在单元格中。然后可以在该单元格中对它们进行格式化、修改和操作。

另一方面,数据库的单元格包含来自外部表的信息。这仅仅意味着电子表格是静态的(数据在收集后保持不变),而数据库可以是关系型的。因此,当您在一个地方上传、更改或删除一段数据时,将在处理该数据的每一个其他地方进行更改。

3.什么是关系数据库?

我们在第4章中深入讨论了关系数据库,但总的来说,关系数据库是一种数据库类型,它容纳并支持对彼此相关的数据点的访问。

关系数据库中的数据以表的形式表示,每一行、每一列和每一条记录都保存着自己的互连信息。每一行包含一个具有惟一ID的记录,称为键,而列保存数据的属性,每个记录通常具有每个属性的值。

尽管关系数据库已经存在了几十年,但直到今天它们仍然是最受欢迎的数据库之一。它们特别用于跟踪库存、处理电子商务交易、管理大量客户信息等。

4.什么是数据库字段?

数据库字段可以描述为表结构中显示的一组数据值—具有相同的数据类型。您还可能听到数据库字段被称为列或属性。数据库字段被安排到记录中,这些记录拥有表中与特定实体相关的所有信息。字段组成表的列,而它们的记录组成行。此外,数据库字段可以是:

  • 要求:必须输入数据

  • 可选:可能包含数据或为空

  • 计算:该值是其他字段的自动应用公式的结果

5.数据库中的记录是什么?

数据库中的记录是保存在表中的一组字段或一组数据。当字段充当表中的列时,记录充当行。因此,当产生一个新记录时,它会在表中创建一个新行。

一条记录可以有一个或多个值。因此,记录也被称为文件、数据集或表。

记录提供了一种从数据库中保存和提取数据的实用方法,因为可以很容易地创建、修改和删除记录,而不会影响数据库中的其他数据。

底线:数据库是我们这个数据驱动的世界的关键

尽管许多人认为数据库是数据的家,但它实际上远不止于此。数据库不仅是视频流媒体服务、在线游戏、电子商务甚至是医疗保健不可或缺的一部分,而且它们还为企业提供对其成功至关重要的好处。

从理解数据模式、做出研究支持的决策到生成报告和预测未来趋势,数据库在让公司不仅收集和存储重要数据,而且访问、分析、保护和备份数据方面发挥着关键作用。

现在,您已经了解了什么是数据库及其所有关键元素,您已经掌握了前进所需的所有知识,并充分利用数据库提供的不可思议的好处。