【问题标题】:What is a database file system?什么是数据库文件系统?
【发布时间】:2009-10-15 21:20:46
【问题描述】:

我对什么是数据库文件系统知之甚少。

有人可以向我解释一下数据库文件系统到底是什么,它的应用程序是什么吗? 它与传统的文件系统有何不同?

我该如何构建它?

【问题讨论】:

  • @Tom 你不认为我在提出这个问题之前一定做了一点谷歌搜索。我没有发现它们的有趣和解释性,所以我想为什么不问可能已经知道或使用过它的大人物。
  • 啊哈!似乎汤姆删除了他的评论。

标签: database filesystems


【解决方案1】:

典型的文件系统(*nix、ms-dos 等)按层次组织文件。例如,

c:\ 表示层次结构的顶部 c:\foo 是层次结构中的下一级 c:\foo\bar 是 \foo 的子节点 等等。

每个文件都存在于此层次结构中的一个且仅一个位置。

相比之下,数据库文件系统通过元数据属性来组织文件。例如,主题、类型、作者等。文件不存在于层次结构中的一个特定位置,而是存在于多个“位置”,具体取决于其属性。

你问的最后一个问题是无法回答的。

【讨论】:

  • 不得不对你投反对票。对不起。 Unix按层次组织文件。 Unix 以基于图形的结构组织数据,其中层次结构是最常用的(因为易于处理)。文件系统中的每个文件名实际上都是对 inode 结构的引用。您可以向同一个 inode 添加多个引用(所谓的硬链接),并一次将您的文件放在多个位置。只要您停留在同一文件系统的边界内,这就会起作用。此外,您还有充当透明路径引用的软链接。总结...
  • 您在用户空间中看到的是一个层次结构,因为一个节点被选为根节点,但它是众多节点中的一个(强制性)选择。在根节点之后,如果需要,您基本上没有结构,唯一的限制是路径的最大长度(通常为 1024 个字符,IIRC)。实际上,最常用的布局是简单的层次结构这一事实是无关紧要的。
  • 当然,实际信息如何存储在物理磁盘上是完全不同的故事。
  • @StefanoBorini 难道 Unix 不是通过阻止创建到目录的硬链接来强制它是非循环和定向的吗?
【解决方案2】:

找到一些不错的链接

【讨论】:

    【解决方案3】:

    这是一个文件系统,其中文件包含大量元数据。例如,iTunes 库可能算作数据库文件系统;您不仅在磁盘上有文件并知道它们在哪里,而且还有标签(流派)和其他元数据,如作者(艺术家)。

    【讨论】:

      【解决方案4】:

      它是一个文件系统,将文件作为 blob 存储在数据库中,而不是在目录层次结构中。想象一个在 URL 中没有“类似目录”层次结构的网站——只是加载标签和类别以及一个大的“搜索”字段——类似的东西,只在你的硬盘上。

      优点和缺点?问问自己,我见过多少数据库文件系统?你需要问更多吗?

      【讨论】:

      • 你听说过微软的 winFS 和 MAC 的聚光灯吗?它们是 DBFS 最好的例子。
      • OSX 的 Spotlight 是一个在 Apple 的 HFS+ 文件系统中使用元数据扩展的应用程序。 HFS+ 不是数据库文件系统。 WinFS 从未发布过,因此除非您为 Microsoft 工作,否则您不太可能看到它。唯一广泛部署的 DBFS 是随 AS/400 提供的。显然,它非常好。
      • 是的。WinFS的测试版是几年前发布的。它在Torrent网站上。但是零种子。我不知道微软为什么取消它。我很想使用这样的系统。我只是就像 DBFS 的概念一样。
      猜你喜欢
      • 2021-06-02
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 2011-11-14
      相关资源
      最近更新 更多