当我说“仓库”时,首先指的是版本控制。但是还有其他例子,比如数字图书馆。当然可能会有其他例子,但所有这些例子都假定仓库是“您可以存储某些内容的地方”。但确切的区别并不清楚,这使得它与其他“您可以存储某些内容的地方”不同。
“Repository”只是作者选择的一个描述性词语。
我不确定你为什么要问它的含义。这只是一个他们选用的词汇,这样他们就不必说“我们保存您的文件系统位置”的意思了。
什么使存储库与数据库、文件系统或其他任何类型的存储不同?
没有什么不同。它是存储。它是文件系统。它是数据库。这只是一个他们选用的词汇,这样他们就不必说“我们保存您的文件系统位置”的意思了。他们把它缩短为“repository”。
通常,我们将“文件系统”保留给为我们提供持久存储的底层操作系统功能。存储库可能比随机文件具有更多的组织性。但也可能没有。
通常,我们将“数据库”保留给具有更正式API、查询语言以及锁定和某些可靠性功能(如备份和日志)的离散产品。
我如何通过一些特征准确地确定这个或那个是存储库?
你不能。因为编写软件的人决定称它为“存储库”。应用程序开发人员可以将任何东西都称为存储库——数据库、文件系统、单个文件。任何“具有状态”的东西都可以成为存储库。
这只是一个他们选用的词汇,这样他们就不必说“我们保存您的文件系统位置”的意思了。
它的确切差异并不是很清楚
为什么那很重要呢?谁真正关心呢?你有什么问题吗?
为什么要区分哪些文件是“存储库”,哪些是“数据库”,哪些只是文件呢?
您可以拥有被称为“备份”或“保险库”的文件。您可以拥有被称为“集合”或任何开发人员想要称之为的任何东西。
他们可以自由地使用任何描述性术语来替换“我们保存您的文件系统位置”的意思。
我的背景是黑莓公司。当我想到数据库时,我会想到SQL结构或类似的东西,即所有数据元素。当我想到存储库时,我会想到存储扫描的纸质文档、电子文件、PDF、照片、语音和视频文件等等。
数据库被优化用于数据。存储库则被优化用于存储对象。
数据库是存储数据的地方,最好以表格形式呈现,并可能包含许多表格进行连接。通过使用查询语言(通常为SQL)生成一些报告可以方便您的工作。需要注意的是,当需要时,数据库通常会经历“结构性”修改。
仓库基本上将链接至少一个数据库,但通常链接到多个数据库。仓库将提供从中选择数据库的选项,以便为用户选择信息(这可能是下拉菜单,或根据您的登录凭据或IP地址自动选择,或者是帮助仓库识别您和您的范围的某些内容)。仓库在用户和数据库之间具有逻辑解释器,因此,即使没有数据库知识的业余爱好者也可以操作它。专家仍然可以使用语言查询来执行某些特定操作,但这不是必要的部分。仓库不会将信息存储到自身中,而是提供一种输入或显示存储在或从链接数据库中获取的信息的方式。需要注意的是,仓库将经历“逻辑”修改或版本控制,以提供修改后的视图、添加功能等。
数据以任何方式和目的在数据库中排列,因此存储库和文件系统都是数据库。
术语“数据库”和“关系数据库”有时可以互换使用,但数据库可以是关系型或非关系型的。 SQL 用于关系型数据库。由于数据结构化为嵌套文件,因此文件系统是非关系型数据库。
术语“档案”和“存储库”有时可以互换使用。当期望保留信息时,它是一个档案。当期望访问信息时,它是一个存储库。