数据库最终将数据存储在文件中,而文件系统也将数据存储在文件中。在这种情况下,数据库和文件系统之间有什么区别。是通过检索方式还是其他方式?
Answers:
数据库通常用于以有效方式存储具有良好定义的数据格式的相关结构化数据,以进行插入,更新和/或检索(取决于应用程序)。
另一方面,文件系统是一种更加非结构化的数据存储,用于存储任意的,可能不相关的数据。文件系统更通用,数据库建立在文件系统提供的常规数据存储服务之上。[Quora]
如果您要查找特定文件,则文件系统很有用,因为操作系统会维护某种索引。但是,txt文件的内容不会被索引,这是数据库的主要优点之一。
对于非常复杂的操作,文件系统可能会非常慢。
RDBMS的主要优点:
表彼此相关
SQL查询/数据处理语言
SQL的事务处理功能(Transact-SQL)
使用服务器端对象(例如存储过程,函数,触发器,视图等)的服务器-客户端实现。
文件系统相对于数据库管理系统的优势是:
当使用任意的,可能无关的数据处理小型数据集时,文件比数据库更有效。对于简单的操作,读,写,文件操作更快,更简单。
您可以在互联网上找到n个差异。
上下文:我已经编写了一个已经在生产环境中运行7年的文件系统。[1]
文件系统和数据库之间的主要区别在于文件系统API是OS的一部分,因此文件系统实现必须实现该API并因此遵循某些规则,而数据库由具有完全自由度的第三方构建。
从历史上看,在操作系统提供的文件系统时创建的数据库不足以解决当前的问题。试想一下:如果您有特殊要求,则不能仅致电Microsoft或Apple重新设计其文件系统API。您要么继续编写自己的存储软件,要么四处寻找现有的替代方案。因此,需求为第三方数据存储软件创造了一个市场,最终被称为数据库。就是这样
尽管文件系统似乎具有某些规则,例如拥有文件和目录,但这不是事实。最大的操作系统可以这样工作,但是许多购物中心的小型OS的工作方式却有所不同。这当然不是一个硬性要求。(请记住,要构建一个新的文件系统,您还需要编写一个新的OS,这将使采用变得相当困难。为什么不只关注存储引擎,而是将其称为数据库?)
最后,数据库和文件系统都有各种形状和大小。事务,关系,层次,图,表 无论您想到什么。
[1]我研究了Boomla文件系统,它是Boomla OS和Web应用程序平台背后的存储系统。