Почему я должен использовать основанную на документе базу данных вместо реляционной базы данных?

Хотя казалось, что я использовал ту же версию для java и javac:

  • java -version java version "1.8.0_51"
  • javac -version javac 1.8. 0_51

Моя проблема была (Linux Mint 17.1), что я установил oracle-java7 и oracle-java8, поэтому где-то должна быть некорректная конфигурация.

I uninstalled oracle-java7 и все сработало хорошо для меня.

183
задан Bartosz Blimke 14 January 2009 в 00:21
поделиться

6 ответов

Вероятно, Вы не были должны:-)

, второй самый очевидный ответ - Вы, должен использовать его, если Ваши данные не являются реляционными. Это обычно проявляется в наличии никакого простого способа описать Ваши данные как ряд столбцов. Хорошим примером является база данных, где Вы на самом деле храните печатные документы, например, путем сканирования офисной почты. Данными является просканированный PDF, и у Вас есть некоторые метаданные, которые всегда существуют (просканированный в, просканированный, тип документа) и много возможных полей метаданных, которое существует когда-то (потребительское число, число поставщика, номер заказа, приобщите к делу пока, OCRed fulltext, и т.д.). Обычно Вы не знаете заранее, какие поля метаданных Вы добавите в течение следующих двух лет. Вещи как работа CouchDB, намного более хорошая для таких данных, чем реляционные базы данных.

я также лично люблю то, что мне не нужны никакие клиентские библиотеки для CouchDB кроме клиента HTTP, который в наше время включен почти в каждый язык программирования.

, вероятно, наименее очевидный ответ: Если Вы чувствуете, что никакая боль не использует RDBMS, остаетесь с ним. Если всегда необходимо работать вокруг RDBMS, чтобы сделать задание, документ ориентировался, база данных могла бы быть достойная внимания.

Для более тщательно продуманной проверки списка эта регистрация Richard Jones .

162
ответ дан int3 4 November 2019 в 15:37
поделиться

Для того, чтобы глупо сохранить и служить other-servers-data.

В последние недели я играл с lifestream приложением, которое опрашивает мою подачу (восхитительный, flickr, GitHub, Твиттер...) и хранит их в couchdb. Красота couchdb состоит в том, что он позволяет мне сохранить исходные данные в его исходной структуре без издержек. Я добавил поле 'класса' к каждому документу, храня исходный сервер, и записал класс рендеринга JavaScript для каждого источника.

Обобщение, каждый раз, когда Ваш сервер связывается с другим сервером бессхемное устройство хранения данных, является лучшим, поскольку Вы не имеете никакого контроля над схемой. В качестве награды couchdb использует собственные протоколы серверов и клиентов - JSON для представления и HTTP REST для транспорта.

24
ответ дан daonb 4 November 2019 в 15:37
поделиться

CouchDB (от их веб-сайт )

  • сервер документной базы данных А, доступный через УСПОКОИТЕЛЬНЫЙ API JSON. Обычно к реляционным базам данных просто не получают доступ через сервисы REST, но требуют намного более сложного API SQL. Часто они API (JDBC, ODBC, и т.д.) довольно сложны. REST довольно прост.

  • Специальный и без схем с областью простой адресации. Реляционные базы данных имеют сложную, фиксированную схему. Вы определяете таблицы, столбцы, индексы, последовательности, представления и другой материал. Диван не требует этого уровня сложного, дорогого, хрупкого перспективного планирования.

  • Распределенная, показывающая устойчивая, возрастающая репликация с двунаправленным обнаружением конфликта и управлением. Некоторый SQL коммерческие продукты предлагает это. Из-за API SQL и фиксированных схем, это сложно, трудно и дорого. Для Дивана это кажется простым и недорогим.

  • способный Запросом и индексируемый, показывая табличный механизм создания отчетов, который использует JavaScript в качестве языка запросов. Также - базы данных SQL и реляционные базы данных. Ничто нового здесь.

Так. Почему CouchDB?

  • REST более прост, чем JDBC или ODBC.
  • Никакая Схема не более проста, чем Схема.
  • Распределенный способом, который кажется простым и недорогим.
45
ответ дан S.Lott 4 November 2019 в 15:37
поделиться

Быстрая разработка приложений приходит на ум.

, Когда я постоянно развиваю свою схему, я постоянно расстраиваюсь при необходимости поддержать схему в MySQL/SQLite. В то время как я еще не сделал слишком много с CouchDB, мне действительно нравится, как простой это должно развить схему во время процесса RAD.

случай А, где Вы не могли бы хотеть использовать нереляционную базу данных, - когда у Вас есть много many-many отношений; я должен все же получить голову вокруг, как создать хорошие функции MapReduce вокруг этих видов отношений, особенно если у Вас должны быть метаданные в присоединяющихся отношениях. Я не уверен, но я не думаю, что функции Карты CouchDB могут назвать свои собственные запросы на базе данных, так как это могло потенциально вызвать бесконечные циклы.

19
ответ дан pixelcort 4 November 2019 в 15:37
поделиться

Уточнить smdelfin: гибкость. Можно хранить данные в любой структуре (быть неструктурированным и все), и каждый документ мог полностью отличаться. CouchDB конкретно полезен, потому что с их индексами "представления", можно отфильтровать определенные документы и запрос просто, что представление, когда Вы хотите те подмножества своей базы данных.

Моя самая большая точка победы документных баз данных, которые хранят данные в формате JSON: это - собственный формат для JavaScript. Поэтому веб-приложения JavaScript работают невероятно хорошо с CouchDB. Я недавно сделал веб-приложение, которое использует CouchDB, и это - ракета быстро, в то время как также способный для обработки постоянно переменной структуры данных.

0
ответ дан 23 November 2019 в 06:01
поделиться

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

5
ответ дан 23 November 2019 в 06:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: