文件系统和数据库系统主要区别(文件系统和数据库有什么区别)

文件系统和数据库系统主要区别(文件系统和数据库有什么区别)(1)

很容易忘记的一件事是,计算机归根结底是机器。鉴于我们有能力感知周围的世界,并拥有复杂的机制,使我们能够做出价值判断、与他人交流并应用逻辑来解决问题,而计算机通过复杂的电路运行,最终通过开关操作或关闭。现代计算机有数百万个称为晶体管的小开关。不像早期的计算机简单得多,程序员可以有效地使用打孔卡来编写简单的程序,今天的计算机如此复杂,如此广泛,以至于人们已经开发出抽象来使使用计算机更像我们在现实中工作的方式世界。此外,随着技术的进步,我们以前做事的方式逐渐变得过时,因此我们需要开发更好的做事方式。

我们开发的早期抽象之一是“文件”的概念。文件只是计算机可以理解的格式的信息。一个非常简单的例子是文本文件。在书面英文文本中,可以(有一些限制)以非常小的数字表示的字符数量有限。特别是最初的美国信息交换标准代码 (ASCII) 格式定义了计算机可以理解的英文符号的数字。例如,大写字母“A”的数字为 65。标准的关键在于它们是任意的。计算机的运行方式不需要将数字 65 分配给字母“A”。这只是某人做出的选择,并说服其他人使用该标准,然后它就被采用了。后来,人们意识到 255 个符号不足以涵盖世界语言和制定的不同标准,最终收敛到我们今天拥有的 Unicode 标准。因此,文本文件只是一系列以特定字符格式表示文本的数字。同样,可以将图片扫描到计算机上并以特定的格式存储。

文件系统和数据库系统主要区别(文件系统和数据库有什么区别)(2)

文件的关键在于它们都归结为一系列数字。图片与小说或程序之间没有本质上的区别。但是,有一个核心要求。必须存储文件。如果每次启动计算机时都必须从头开始重新创建所有内容,那么计算机将毫无用处。因此,从最早的计算机时代开始,就开发了多种存储信息的方法——从穿孔卡开始,穿孔的存在与否决定了某些东西是打开还是关闭。后来,出现了电磁标准,将少量地铁放在塑料盘上并进行磁化或不磁化。随后出现了具有许多不同层的硬盘驱动器,然后是光学标准(CD、DVD、蓝光)和最新的固态驱动器。其中大部分的动力是增加空间量,并减少访问文件的时间。毫无疑问,我们今天使用的存储技术在 20 年后将不再相同。

文件系统和数据库系统主要区别(文件系统和数据库有什么区别)(3)

这呈现了两个术语中的第一个 - 文件系统。顾名思义,文件系统只是一个用于存储文件的系统。就像字符格式一样,理论上任何人都可以开发自己的文件存储方式,但这是不切实际的。最早的文件系统使用“文件分配表”(FAT),逻辑上是一个将磁盘划分为簇的表,然后为文件分配簇。出于历史和简单的目的,FAT 文件系统(特别是 ExFAT 和 FAT32)是用于跨多个设备、平台和操作系统交换数据的事实上的文件系统。例如,当您在数码相机上拍摄照片并将其存储在 SD 卡上时,很可能使用的是 FAT 文件系统。其他常见的有适用于 Windows/DOS 的新技术文件系统 (NTFS)、适用于 Linux 的扩展文件系统 (EXT2/3/4) 和适用于 Mac 的分层文件系统 (HFS)。

需要注意的关键是文件系统只影响文件的存储方式,而不是文件本身。对于程序员来说,从 FAT 文件系统、NTFS 或 HFS 读取文件看起来是一样的。

数据库解决了一个不同的问题。文件系统不关心它们存储的数据(它是任意的),而数据库有助于结构化数据。它们还提供查询该数据的方法,即快速查找信息。它们还提供安全性。例如,许多文件系统允许您指定谁可以读取整个文件,但不能读取其中的一部分。

结构化数据意味着数据库设计者定义了存储什么信息,以及它必须以什么格式存储。假设您有一个联系信息数据库。数据库可以强制电话号码“字段”中只有数字(一种数据)。如果用户尝试输入带有字母的电话号码,数据库将返回一个错误——使用数据库的程序不一定要检查(但可能出于其他原因)。由于数据库强制执行该格式,因此程序可以保证来自数据库的信息采用该格式。同样,如果有一个生日字段,数据库将确保它是一个日期而不是文本。

查询使用计算机科学技术快速浏览所有数据以查找条件或对信息进行排序。例如,数据库允许按字母顺序对所有人进行排序,或者查找出生日在一月份的人。

与文件系统一样,有许多数据库系统(以及数据库系统的类型),每一个都有不同的好处:Microsoft SQL Server、Oracle、MySQL、PostgreSQL 都是常用的关系数据库系统。数据库通常是文件本身(一些抽象使数据库本身成为一个文件夹),因此数据存储在文件系统上。

文件系统和数据库系统主要区别(文件系统和数据库有什么区别)(4)

我之前提到过,但通常数据库本身并不是最终用户“看到的”。因此,像 Amazon 或 eBay 这样的网站将使用数据库,但用户将与通常称为“业务规则层”的内容进行交互。这种编程只是检查以确保在放入数据库之前一切都已正确完成。例如,正是这一层阻止人们在不付费的情况下从亚马逊获取某些东西。数据库管理员是直接在数据库级别工作的人员。

总而言之,使用计算机本质上是一个将现实世界转换为计算机可以理解的表示的过程——本质上是数字。各种格式的文件都包含信息——无论是文本文件,字符由数字或图片或其他任何东西表示。存储这些的方法是文件系统,其中最常见的是文件分配表 (FAT) 文件系统。数据库不是简单的任意信息,而是强制执行结构良好的数据,允许查询快速限制或排序信息,并提供更高的安全性。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页