存储库与数据库vs文件系统

时间:2010-01-29 10:58:55

标签: svn repository terminology

什么使存储库与数据库,文件系统或任何其他类型的存储不同? 我怎么能准确地告诉这个或哪个是存储库根据它有或没有的一些功能来判断?

当我说'存储库'时,首先我指的是版本控制。但是还有其他存储库的例子,例如数字图书馆。当然,可能还有其他一些例子,但所有这些例子都假设存储库是“你可以存储东西的地方”。但它并不十分清楚它有什么确切的差异,可以将它与其他“存储东西的地方”区分开来。

7 个答案:

答案 0 :(得分:7)

存储库只是作者选择的描述性术语。

我不确定你为什么要问这意味着什么。这只是他们选择的一个词,所以他们不必说“我们保留你的东西的文件系统位置”。

**什么使存储库与数据库,文件系统或任何其他类型的存储不同? **

无。这是存储。这是一个文件系统。这是一个数据库。这只是他们选择的一个词,所以他们不必说“我们保留你的东西的文件系统位置”。他们将其缩短为“存储库”。

通常,我们为底层操作系统功能保留“文件系统”,以便为我们提供持久存储。存储库可能有一些组织而不仅仅是随机文件。但它可能不会。

通常,我们为具有更正式的API,查询语言和锁定以及备份和日志等可靠性功能的离散产品保留“数据库”。

我怎样才能确切地说明这个或哪个是存储库根据它有或没有的一些功能来判断?

你做不到。某些东西是一个存储库,因为编写该软件的人决定将其称为“存储库”。应用程序开发人员可以调用任何存储库 - 数据库,文件系统,单个文件。任何“有状态”都可以是存储库。

这只是他们选择的一个词,所以他们不必说“我们保留你的东西的文件系统位置”。

目前尚不清楚它有什么确切的差异

为什么重要?谁真正关心?你有什么问题?

为什么哪个文件是“存储库”,哪些文件是“数据库”以及哪些文件只是文件呢?

您可以拥有“备份”或“保管库”的文件。您可以拥有“集合”的文件或开发人员想要调用的任何文件。

他们可以自由使用他们想要替换的任何描述性术语“我们保留您的内容的文件系统位置”。

答案 1 :(得分:4)

多年前我在使用存储库软件时。那时,(通用)数据库和存储库之间的区别是“数据”和“元数据”之间的区别。

因此,数据库存储数据。 存储库是一种特殊的数据库类,用于存储元数据,即描述其他数据的数据。

任何通用数据库软件都可以用作存储库,但元数据的某些特性使得需要使用专用工具。通常,数据的粒度很小,有许多对其他数据的交叉引用。记录的数量可能易于处理。通常需要版本控制和/或内容的差异。

由于这些特殊要求,数据库制造商很想编写特殊的DBMS系统来支持存储库构建器的需求。 (有人记得Microsoft RepositoryUnisys's UREP吗?)我不再在那个领域,也无法告诉你过去十年的进展情况。

答案 2 :(得分:1)

我会用“......为你和其他人检索它”来补充“你可以存放东西的地方”。或者可以将其改为“可以为您和其他人存储相关内容的地方以便检索它们”。意思是非常通用的。

相比之下,文件系统和数据库有更多的技术定义:“在计算中,文件系统是一种存储和组织计算机文件及其包含的数据的方法,以便于查找和访问它们”。请参阅wikipedia entry。数据库是以易于访问,管理和更新的方式构建的逻辑相关数据的集合。

答案 3 :(得分:1)

从数据库设计者的角度来看,我倾向于将数据库存储库视为用于保存数据库元数据的数据库。例如,表之间的关系,程序访问这些表等,以便此信息可用于判断更改对数据库应用程序的影响等

答案 4 :(得分:1)

我的背景是RIM。当我想到数据库时,我会想到一个SQL结构或类似的东西。所有数据元素。当我存储库时,我想到存储扫描的硬拷贝文档,电子文档,PDF,照片,语音和视频文件等...

数据库针对数据进行了优化。存储库针对存储对象进行了优化。

答案 5 :(得分:0)

就数据库而言,您必须更加精确。它是RDBMS,ODBMS还是一个大的持久哈希表?对我来说,文件系统也是一种“数据库的实现”(基于分层和目录/文件)。

答案 6 :(得分:0)

数据库是存储数据的地方,最好是以表格形式存储,并且可能包含许多(或可能)连接/链接在一起的表。可以通过使用语言查询(主要是SQL)来简化数据库以生成一些报告,以使您的工作更轻松。需要注意的是,数据库通常在需要时进行“结构”修改。

存储库基本上会链接到至少一个数据库,但一般来说,它链接到许多数据库。存储库将提供一个数据库选择,从中为用户选择信息(可以是下拉菜单,或根据您的登录凭据或IP地址自动选择,或者可能有助于存储库识别您和您的信息范围)。存储库本质上具有在用户和数据库之间工作的逻辑解释器,因此,不知道数据库的业余爱好者也可以操作它。专家仍然可以使用语言查询来执行某些特定操作,但这不是必不可少的部分。存储库不会将信息存储到自身中,而是提供输入或显示存储在链接数据库中或从链接数据库中获取的信息的方法。需要注意的是,存储库将进行“LOGICAL”修改或版本控制,以提供修改后的视图,添加的功能等。