Репозиторий против базы данных против файловой системы - PullRequest
5 голосов
/ 29 января 2010

Чем хранилище отличается от базы данных, файловой системы или любого другого типа хранилища? Как я могу точно сказать, что тот или иной репозиторий, судя по некоторому набору функций, которые он имеет или не имеет?

Когда я говорю «хранилище», я имею в виду, прежде всего, контроль версий. Но есть и другие примеры репозиториев, например, цифровые библиотеки. Конечно, могут быть и другие примеры, но все они предполагают, что хранилище - это «место, где вы можете что-то хранить». Но не совсем ясно, какие именно различия у него есть, что позволяет отличить его от других «мест, где вы можете что-то хранить».

Ответы [ 7 ]

7 голосов
/ 29 января 2010

Репозиторий - это просто описательный термин, выбранный автором.

Я не уверен, почему вы спросите, что это значит. Это просто слово, которое они выбрали, чтобы им не приходилось говорить «места файловой системы, в которой мы храним ваши вещи».

** Что отличает хранилище от базы данных, файловой системы или любого другого хранилища? **

Ничего. Это хранилище. Это файловая система. Это база данных. Это просто слово, которое они выбрали, чтобы им не приходилось говорить «места файловой системы, в которой мы храним ваши вещи». Они сократили его до «хранилища».

Обычно мы резервируем «файловую систему» ​​для базовых функций ОС, которые дают нам постоянное хранилище. Хранилище, вероятно, имеет больше организации, чем просто случайные файлы. Но это не так.

Обычно мы резервируем «базу данных» для отдельного продукта, который имеет более формальный API, язык запросов, блокировку и некоторые функции обеспечения надежности, такие как резервное копирование и журналы.

Как я могу точно сказать, что тот или иной репозиторий, судя по некоторому набору функций, которые он имеет или не имеет?

Вы не можете. Что-то является хранилищем, потому что люди, написавшие программное обеспечение, решили назвать его «хранилищем». Разработчики приложения могут назвать что угодно хранилище - базу данных, файловую систему, отдельный файл. Все, что "с состоянием" может быть хранилищем.

Это просто слово, которое они выбрали, чтобы им не приходилось говорить «места файловой системы, в которой мы храним ваши материалы».

не совсем понятно, какие у него точные различия

Почему это имеет значение? Кто на самом деле заботится? Какая у вас проблема?

Почему имеет значение, какие файлы являются «хранилищем», какие файлы являются «базой данных», а какие файлы являются файлами?

Вы можете иметь файлы, которые являются «резервной копией» или «хранилищем». У вас могут быть файлы, представляющие собой «коллекцию», или то, что разработчики хотят назвать.

Они могут свободно использовать любой описательный термин, который они хотят заменить «места файловой системы, в которой мы храним ваши материалы».

4 голосов
/ 10 февраля 2010

Когда я работал над программным обеспечением для хранилищ много лет назад. Тогда разница между базами данных и хранилищами (общего назначения) была разницей между «данными» и «метаданными».

Итак, база данных хранит данные. хранилище - это особый класс базы данных, предназначенный для хранения метаданных, то есть данных, которые описывают другие данные.

Любое программное обеспечение базы данных общего назначения может использоваться в качестве хранилища, но есть некоторые характеристики метаданных, которые делают необходимым использование специального инструмента. Как правило, детализация данных невелика, с множеством перекрестных ссылок на другие данные. Количество записей, вероятно, будет отслеживаться. Часто требуется контроль версий и / или различий в содержании.

Из-за этих особых требований производители баз данных склонялись к написанию специальных систем СУБД для поддержки потребностей разработчиков хранилищ. (Кто-нибудь помнит Microsoft Repository или UREP Unisys?) Я больше не в этой области и не могу рассказать вам о прогрессе за последнее десятилетие.

1 голос
/ 26 апреля 2014

Мой фон - RIM. Когда я думаю о базе данных, я думаю о структуре SQL или о чем-то подобном. Все элементы данных. Когда я делаю репозиторий, я думаю о хранении отсканированных печатных документов, электронных документов, PDF, фотографий, голосовых и видеофайлов и т. Д.

БД оптимизирована для данных. Репозиторий оптимизирован для хранения объектов.

1 голос
/ 01 марта 2011

С точки зрения разработчика базы данных, я склонен думать о хранилище базы данных как о базе данных, используемой для хранения метаданных базы данных. например, отношения между таблицами, какие программы обращаются к этим таблицам и т. д., чтобы эту информацию можно было использовать для оценки влияния изменений на приложение db и т. д.

1 голос
/ 29 января 2010

Я бы дополнил "Места, где вы можете что-то хранить" словом "... для вас и других людей, чтобы получить это". Или, возможно, перефразировать это как «Места, где вы можете хранить коллекцию связанных вещей для вас и других людей, чтобы найти их». Смысл действительно такой общий.

Напротив, файловая система и база данных имеют более технические определения: «В вычислениях файловая система - это метод хранения и организации компьютерных файлов и содержащихся в них данных, облегчающих их поиск и доступ к ним». См. запись в Википедии . База данных - это набор логически связанных данных, структурированных таким образом, чтобы к ним легко было обращаться, управлять и обновлять.

0 голосов
/ 07 мая 2010

База данных - это место, где хранятся данные, предпочтительно в виде таблицы, и может содержать множество таблиц, которые (или могут быть) объединены / связаны вместе. Базу данных можно упростить для генерации некоторых отчетов, используя языковой запрос (в основном, SQL), чтобы упростить вашу работу. Следует отметить, что база данных, как правило, претерпевает "СТРУКТУРНЫЕ" модификации при необходимости.

Репозиторий по существу будет связан по крайней мере с одной базой данных, но в целом он связан со многими базами данных. Репозиторий будет предлагать выбор базы данных, из которой он будет выбирать информацию для пользователя (это может быть раскрывающееся меню или автоматический выбор на основе ваших учетных данных или IP-адреса, или что-то, что может помочь репозиторию идентифицировать вас и ваш объем). Репозиторий по существу имеет логический интерпретатор, работающий между пользователем и базой данных, следовательно, любитель, не имеющий знаний о базе данных, также может управлять им. Языковые запросы могут все еще использоваться экспертами для выполнения некоторых конкретных операций, но это не является важной частью. Хранилище не будет хранить информацию в себе, но предложит средства для ввода или отображения информации, хранящейся или взятой из связанной базы данных. Следует отметить, что хранилище будет подвергаться модификации «LOGICAL» или управлению версиями, чтобы предлагать измененное представление, дополнительные функции и т. Д.

0 голосов
/ 30 января 2010

С точки зрения базы данных вы должны быть более точными. Это RDBMS, ODBMS или большая постоянная хеш-таблица? Для меня файловая система также является своего рода «реализацией базы данных» (иерархической и на основе каталогов / файлов).

...