存储库、数据库、文件系统

发布于 2024-08-19 10:16:53 字数 193 浏览 4 评论 0原文

存储库与数据库、文件系统或任何其他类型的存储有何不同? 我怎样才能通过它具有或不具有的某些功能来判断这个或那个存储库?

当我说“存储库”时,首先我指的是版本控制。但还有其他存储库的例子,例如数字图书馆。当然,可能还有其他示例,但所有示例都假设存储库是“可以存储某些内容的地方”。但目前还不清楚它到底有什么区别,可以将其与其他“可以存储东西的地方”区分开来。

What makes repository different from database, filesystem or any other kind of storage?
How can I exactly tell that this or that is repository judging by some set of features that it has or does not have?

When I say 'repository', first of all I mean version control. But there are other examples of repositories, such as digital libraries, for instance. There might be other examples, of course, but all of them would assume that repository is 'the place where you can store something'. But it's not really clear what exact differences does it have that allows to distinct it from other 'places where you can store something'.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

递刀给你 2024-08-26 10:16:53

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

我不知道你为什么会问这意味着什么。这只是他们选择的一个词,这样他们就不必说“我们保存你的东西的文件系统位置”。

**存储库与数据库、文件系统或任何其他类型的存储有何不同? **

没有什么。这是存储。这是一个文件系统。这是一个数据库。这只是他们选择的一个词,这样他们就不必说“我们保存你的东西的文件系统位置”。他们将其缩写为“存储库”。

通常,我们为底层操作系统功能保留“文件系统”,为我们提供持久存储。存储库可能比随机文件有更多的组织。但也可能不会。

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

我怎样才能通过它具有或不具有的某些功能来判断这个或那个存储库是存储库?

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

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

目前还不清楚它有什么具体区别

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

为什么哪些文件是“存储库”、哪些文件是“数据库”以及哪些文件只是文件很重要?

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

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

Repository is just a descriptive term the author's chose.

I'm not sure why you'd ask what it means. It's just a word they picked so they wouldn't have to say "the file system locations in which we keep your stuff".

**What makes repository different from database, filesystem or any other kind of storage? **

Nothing. It's storage. It's a filesystem. It's a database. It's just a word they picked so they wouldn't have to say "the file system locations in which we keep your stuff". They shortened it to "repository".

Usually, we reserve "filesystem" for the underlying OS features that give us persistent storage. A repository probably has some more organization than just random files. But it might not.

Usually, we reserve "database" for a discrete product that has a more formal API, a query language, and locking and some reliability features like backups and logs.

How can I exactly tell that this or that is repository judging by some set of features that it has or does not have?

You can't. Something is a repository because the folks that wrote the software decided to call it a "repository". The application developers could call anything a repository -- database, filesystem, individual file. Anything "stateful" can be a repository.

It's just a word they picked so they wouldn't have to say "the file system locations in which we keep your stuff".

it's not really clear what exact differences does it have

Why does that matter? Who actually cares? What problem do you have?

Why does it matter which files are a "repository", which files are a "database" and which files are just files?

You can have files that are a "backup" or a "vault". You can have files that are a "collection" or anything the developers want to call it.

They're free to use any descriptive term they want to replace "the file system locations in which we keep your stuff".

貪欢 2024-08-26 10:16:53

许多年前,当我从事存储库软件工作时。当时,(通用)数据库和存储库之间的区别是“数据”和“元数据”之间的区别。

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

任何通用数据库软件都可以用作存储库,但元数据的某些特征使得需要使用专用工具。一般来说,数据的粒度较小,与其他数据存在大量交叉引用。记录的数量可能是易于处理的。通常需要版本控制和/或内容差异。

由于这些特殊要求,数据库制造商倾向于编写特殊的 DBMS 系统来支持存储库构建者的需求。 (有人记得 Microsoft 存储库Unisys 的 UREP?)我不再从事该领域,无法告诉您进展情况在过去的十年里。

When I worked on repository software, many years ago. Back then, the difference between (general purpose) databases and repositories was the difference between "data" and "meta-data".

So, a database stores data. A repository is a special class of database which is designed to store meta-data, that is, data that describes other data.

Any general purpose database software could be used as a repository, but there are some characteristics of meta-data that make it desirable to use a special-purpose tool. Generally, the granularity of the data is small, with lots of cross-references to other data. The number of records is likely to be tractable. There is often a requirement for version control and/or diffs of the contents.

Because of these special requirements, database manufacturers were tempted into writing special DBMS systems to support the needs of repository builders. (Does anyone remember Microsoft Repository or the Unisys's UREP?) I am no longer in that field, and couldn't tell you about the progress in the past decade.

亣腦蒛氧 2024-08-26 10:16:53

我会用“......供您和其他人检索它”来补充“您可以存储某些东西的地方”。或者可以将其改写为“可以存储一系列相关内容供您和其他人检索它们的地方”。意思确实很笼统。

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

I would complement "Places where you can store something" with "... for you and other people to retrieve it". Or maybe reword that as "Places where you can store a collection of related things for you and other people to retrieve them." The meaning is really that generic.

In contrast, file system and database have more technical definitions: "In computing, a file system is a method of storing and organizing computer files and the data they contain to make it easy to find and access them". See the wikipedia entry. Database is a collection of logically related data structured in way that is easily accessed, managed, and updated.

寂寞美少年 2024-08-26 10:16:53

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

From the perspective of a database designer, i tend to think of a database repository as a database used for holding the meta data of a database. for example, the relationships between tables, which programs access these tables etc so that this information can be used for judging the impact of change on your db application etc

白衬杉格子梦 2024-08-26 10:16:53

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

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

My background is RIM. When I think Database, I think of an SQL structure or something similar. All the data elements. When I thing of a Repository, I think of storing scanned hardcopy documents, eDocuments, PDFs, Photos, voice and video files etc…

A DB is optimized for data. A Repository is optimized for storing objects.

静赏你的温柔 2024-08-26 10:16:53

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

In terms of database you have to be more precise. Is it a RDBMS,ODBMS or a big persisted hash-table? To me filesystem is also kind of "implementation of a database" (hierachical and directory/file based).

-黛色若梦 2024-08-26 10:16:53

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

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

Database is where the data is stored, preferably in tabular form and might contain numerous tables that are (or may be) joined / linked together. The database may be facilitated to generate some reports by using a language query (mostly SQL) to make your work easy. To be noted that the database generally undergoes "STRUCTURAL" modifications when needed.

A Repository would essentially be linked to at least one database, but in general, it is linked to many databases. The repository would offer a selection of database from where it would pick the information for the user (which may be a drop-down menu, or automatic selection based on your login credentials or IP address, or something that may help repository identify you and your scope). The Repository essentially has a logical interpretor working between the user and the database, hence, an amateur with no knowledge of the database can also operate it. The Language queries may still be used by the experts to carry out some specific operations, but it is not an essential part. The repository would not store the information into itself, but offer a means to input or display the information stored in or taken from the linked database. To be noted that the repository would undergo a "LOGICAL" modification, or version control, to offer modified view, added features etc.

饮湿 2024-08-26 10:16:53

数据以任何方式、出于任何目的排列在数据库中,因此存储库和文件系统都是数据库。

术语“数据库”和“关系数据库”有时可以互换,但数据库可以是关系型的,也可以是非关系型的。 SQL 用于关系数据库。文件系统是非关系数据库,因为数据是在嵌套文件中构建的。

术语“存档”和“存储库”有时可以互换。当信息需要被保存时,它就是一个档案。当信息预计可访问时,它是一个存储库。

The data is arranged in databases any way and for any purpose, so repositories and filesystems are databases.

The terms "database" and "relational database" are sometimes interchangeable, but databases can be relational or non-relational. SQL is used in relational databases. Filesystems are non-relational databases since the data is structured in nested files.

The terms "archive" and "repository" are sometimes interchangeable. It is an archive when the information is expected to be preserved. It is a repository when the information is expected to be accessible.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文