2010-01-29 160 views
5

¿Qué hace que el repositorio sea diferente de una base de datos, un sistema de archivos o cualquier otro tipo de almacenamiento? ¿Cómo puedo decir exactamente que esto o aquello es un repositorio a juzgar por un conjunto de características que tiene o no tiene?Repositorio vs base de datos vs sistema de archivos

Cuando digo 'repositorio', primero me refiero a control de versiones. Pero hay otros ejemplos de repositorios, como bibliotecas digitales, por ejemplo. Puede haber otros ejemplos, por supuesto, pero todos supondrían que el repositorio es "el lugar donde puedes almacenar algo". Pero no está realmente claro qué diferencias exactas tiene que permitan distinguirlo de otros 'lugares donde puedes almacenar algo'.

+3

¿Qué problema tiene? ¿Porque lo preguntas? ¿Hay algo roto? ¿Perdido? Eliminado? ¿Corrompido? ¿Por qué importa esto? –

+0

@ S. Lott: Hay condiciones que no permiten almacenar los mismos objetos en diferentes tipos de depósitos sin pérdida de datos o conversión. Solo quería saber por qué. Me parece que hay algún principio subyacente que permite distinguir tales cosas. – altern

+0

Esto parece más como una pregunta para http://english.stackexchange.com –

Respuesta

4

Cuando trabajé en el software de repositorio, hace muchos años. En aquel entonces, la diferencia entre las bases de datos (de propósito general) y los repositorios era la diferencia entre "datos" y "metadatos".

Por lo tanto, una base de datos almacena datos. Un repositorio es una clase especial de base de datos que está diseñada para almacenar metadatos, es decir, datos que describen otros datos.

Cualquier software de base de datos de propósito general podría usarse como un repositorio, pero hay algunas características de los metadatos que hacen que sea deseable usar una herramienta especial. Generalmente, la granularidad de los datos es pequeña, con muchas referencias cruzadas a otros datos. Es probable que la cantidad de registros sea manejable. A menudo hay un requisito para el control de versiones y/o diffs de los contenidos.

Debido a estos requisitos especiales, los fabricantes de bases de datos se vieron tentados a escribir sistemas DBMS especiales para satisfacer las necesidades de los creadores de repositorios. (¿Alguien recuerda Microsoft Repository o Unisys's UREP?) Ya no estoy en ese campo, y no podría contarte sobre el progreso en la última década.

1

Complementaré "Lugares donde puedes almacenar algo" con "... para que tú y otras personas puedan recuperarlo". O tal vez redefina eso como "Lugares donde puede almacenar una colección de cosas relacionadas para usted y otras personas para recuperarlas". El significado es realmente así de genérico. Por el contrario, el sistema de archivos y la base de datos tienen definiciones más técnicas: "En informática, un sistema de archivos es un método para almacenar y organizar archivos de computadora y los datos que contienen para facilitar su búsqueda y acceso". Ver el wikipedia entry. La base de datos es una colección de datos lógicamente relacionados estructurados de manera que se puede acceder, administrar y actualizar fácilmente.

7

Repositorio es simplemente un término descriptivo elegido por el autor.

No estoy seguro de por qué preguntarías qué significa. Es solo una palabra que eligieron para que no tengan que decir "las ubicaciones del sistema de archivos en las que guardamos tus cosas".

** ¿Qué hace que el repositorio sea diferente de la base de datos, del sistema de archivos o de cualquier otro tipo de almacenamiento? **

Nada. Es almacenamiento. Es un sistema de archivos. Es una base de datos. Es solo una palabra que eligieron para que no tengan que decir "las ubicaciones del sistema de archivos en las que guardamos tus cosas". Lo acortaron a "repositorio".

Normalmente, reservamos "sistema de archivos" para las características subyacentes del sistema operativo que nos proporcionan un almacenamiento persistente. Un repositorio probablemente tiene más organización que solo archivos aleatorios. Pero puede que no.

Por lo general, reservamos "base de datos" para un producto discreto que tiene una API más formal, un lenguaje de consulta y bloqueo y algunas características de confiabilidad como copias de seguridad y registros.

¿Cómo puedo decir exactamente que esto o aquello es un repositorio a juzgar por un conjunto de características que tiene o no tiene?

No puede. Algo es un repositorio porque la gente que escribió el software decidió llamarlo "repositorio". Los desarrolladores de aplicaciones pueden llamar a cualquier cosa un repositorio: base de datos, sistema de archivos, archivo individual. Cualquier cosa "con estado" puede ser un repositorio.

Es solo una palabra que eligieron para que no tengan que decir "las ubicaciones del sistema de archivos en las que guardamos sus cosas".

en realidad no es claro qué diferencias exacta qué tiene

¿Por qué tiene que ver? A quien realmente le importa? ¿Qué problema tienes?

¿Por qué es importante qué archivos son un "repositorio", qué archivos son una "base de datos" y qué archivos son solo archivos?

Puede tener archivos que son una "copia de seguridad" o una "bóveda". Puede tener archivos que sean una "colección" o cualquier cosa que los desarrolladores quieran llamar.

Son libres de usar cualquier término descriptivo que deseen reemplazar "las ubicaciones del sistema de archivos en las que guardamos sus cosas".

0

En cuanto a la base de datos, tiene que ser más estricto. ¿Es un RDBMS, ODBMS o una gran tabla hash persistente? Para mí, el sistema de archivos también es una especie de "implementación de una base de datos" (jerárquico y basado en directorio/archivo).

0

La base de datos es donde se almacenan los datos, preferiblemente en forma de tabla y puede contener numerosas tablas que están (o pueden estar) unidas/vinculadas entre sí. La base de datos puede ser facilitada para generar algunos informes mediante el uso de una consulta de lenguaje (principalmente SQL) para facilitar su trabajo. Se debe tener en cuenta que la base de datos generalmente se somete a modificaciones "ESTRUCTURALES" cuando es necesario.

Un repositorio estaría esencialmente vinculado a al menos una base de datos, pero, en general, está vinculado a muchas bases de datos. El repositorio ofrecería una selección de bases de datos desde donde elegiría la información para el usuario (que puede ser un menú desplegable, o una selección automática basada en sus credenciales de inicio de sesión o dirección IP, o algo que puede ayudar al repositorio a identificarlo a usted y a su alcance). El Repositorio tiene esencialmente un intérprete lógico que funciona entre el usuario y la base de datos, por lo tanto, un aficionado sin conocimiento de la base de datos también puede operarlo. Las consultas de Idioma aún pueden ser utilizadas por los expertos para llevar a cabo algunas operaciones específicas, pero no es una parte esencial. El repositorio no almacenaría la información en sí mismo, sino que ofrecería un medio para ingresar o mostrar la información almacenada o extraída de la base de datos vinculada. Se debe tener en cuenta que el repositorio se someterá a una modificación "LÓGICA" o control de versión para ofrecer vista modificada, funciones adicionales, etc.

1

Desde la perspectiva de un diseñador de bases de datos, tiendo a pensar en un repositorio de base de datos como base de datos utilizado para mantener los metadatos de una base de datos. por ejemplo, las relaciones entre tablas, qué programas acceden a estas tablas, etc. para que esta información pueda usarse para juzgar el impacto del cambio en su aplicación de base de datos, etc.

1

Mi fondo es RIM. Cuando pienso en Database, pienso en una estructura SQL o algo similar. Todos los elementos de datos Cuando recuerdo un repositorio, pienso en almacenar documentos impresos escaneados, documentos electrónicos, PDF, fotos, archivos de voz y video, etc.

Un DB está optimizado para datos.Un repositorio está optimizado para almacenar objetos.

Cuestiones relacionadas