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

StackOverflow https://stackoverflow.com/questions/202819

  •  03-07-2019
  •  | 
  •  

Вопрос

Я некоторое время работал с реляционными базами данных, но только недавно мне пришло в голову, что должны быть и другие типы баз данных, которые нет-относительный.

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

Редактировать:В ответах были упомянуты еще два подобных вопроса:

Это было полезно?

Решение

  • Плоский файл
    • CSV или другие данные с разделителями.
    • электронные таблицы
    • /etc/пароль
    • почтовые файлы mbox
  • Иерархический
    • Реестр Windows
    • Subversion с использованием файловой системы FSFS вместо Berkley DB.

Другие советы

По общему признанию, малоизвестной, но интересной альтернативой упомянутым здесь типам баз данных является ассоциативная база данных, например предложения, из Технология LazySoft.Существует бесплатная персональная версия, которую вы можете скачать и опробовать самостоятельно.Версия Enterprise Edition также бесплатна, но требует запроса в компанию.

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

  • Том брат Лора
  • Сан-Франциско находится в Калифорния
  • Майк имеет кредитный лимит $10,000

Предложение может быть предметом или объектом другого предложения:

  • (Автобус 570 прибывает 8:15 утра) на воскресенья
  • Мэри говорит (Пирог был испек Уильям)

Итак, все можно свести к сущности и ассоциации.

Конечно, «Предложения» — это гораздо больше, чем то, что можно выразить здесь.Я рекомендую вам потратить некоторое время на то, чтобы прочитать об этом больше в белая бумага от LazySoft.

«Ассоциативная модель данных» — это книга Саймона Уильямса, одного из создателей Sentences, доступная в формате PDF.

Мы рассмотрели нереляционную документо-ориентированную базу данных: Apache CouchDB.

Apache CouchDB — это распределенная, отказоустойчивая и не содержащая схем документо-ориентированная база данных, доступная через RESTful HTTP/JSON API.Помимо других функций, он обеспечивает надежную инкрементную репликацию с двунаправленным обнаружением и разрешением конфликтов, а также поддерживает запросы и индексацию с использованием таблично-ориентированного механизма представления с JavaScript, выступающим в качестве языка определения представления по умолчанию.

Наш интерес заключался в создании хранилища пользовательских настроек с распределенным доступом, которое было бы невосприимчиво к изменениям формы, к которым мы могли бы сериализовать объекты предпочтений из Java и так же легко получать к ним доступ с помощью Javascript из клиентского приложения на основе XULRunner.

Любая база данных, которая претендует на звание «базы данных в стиле Беркли» или базы данных «ключ/значение», не является реляционной.

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

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

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

Если вам нужно получить данные из двух источников, вам придется вручную объединить полученный набор.

Все базы данных изначально были нереляционными, и только с появлением DB2 и Oracle в середине 1980-х годов они стали обычным явлением.До этого большинство баз данных имели либо плоские файлы, либо иерархические.

Плоские файлы по своей сути скучны, а вот иерархические базы данных — в гораздо меньшей степени, особенно потому, что DB2 изначально была реализована поверх иерархической реализации (а именно VSAM).Я считаю, что VSAM все еще присутствует в системах мэйнфреймов и имеет большое значение.

DB/1 (настолько малоизвестная, что я даже не могу найти ссылку на Википедию) была предшественницей базы данных IBM в прайм-тайм для DB2 (отсюда и название).Это было иерархически - в основном у вас был файл, который состоял из любого числа или «корневых» записей, обычно доступных напрямую по ключу.Каждая корневая запись может иметь любое количество дочерних записей, каждая из которых, в свою очередь, может иметь своих собственных дочерних записей.Конечным результатом является индексный файл или корневые записи, где каждый корень является вершиной потенциальной древовидной структуры.Доступ к дочерним записям может быть непростым — существовали ограничения прямого доступа, поэтому обычно вам приходилось перемещаться по дереву в поисках нужной записи.«База данных» может содержать любое количество этих файлов, обычно связанных ключами.

Это имело серьезные недостатки - не в последнюю очередь то, что на самом деле что-либо требовало написания полной программы - по сути, это эквивалент дня работы над тем, что мы теперь можем сделать в SQL за несколько минут.Однако он действительно выигрывал по скорости выполнения: в те дни мэйнфрейм имел вычислительную мощность примерно такого же уровня, как ваш iPhone (хотя и был оптимизирован для ввода-вывода данных), а плохие запросы DB2 могли убить многомиллионную установку.Это никогда не было проблемой для DB/1, и в мире, где программисты обходились дешевле, чем процессорное время, это имело смысл.

Хранилище данных Google App Engine :

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

База данных исторических данных PI от OSIsoft нереляционная.Он предназначен только для архивирования данных с метками времени.Он широко используется в промышленности, особенно в качестве внутренней базы данных для всех этих «панелей мониторинга».

В нем нет необходимости быть реляционным, поскольку нет соединений.

Еще два типа баз данных, которые еще не появились:

  1. Репозитории контента — это базы данных, предназначенные для контента (т.файлы, документы, изображения и т. д.).Обычно они имеют дополнительные конструкции, такие как иерархический способ просмотра контента, поиск, преобразование между различными форматами, управление версиями и многое другое.Примеры — Alfresco, Documentum, JackRabbit, Day, OpenText и многие другие поставщики ECM.

  2. Каталоги, т.е.Active Directory или каталоги LDAP.Это базы данных, предназначенные для сценариев с малым объемом записи и высоким уровнем чтения и сильно распределенные по большим географическим расстояниям и соединениям с высокой задержкой.Хотя в основном они используются для аутентификации/авторизации, они не обязательны, если ваш вариант использования соответствует требованиям.

Многомерные базы данных являются отличными примерами нереляционных баз данных.Они очень часто используются для «Бизнес-панелей»/«Бизнес-аналитики» для ключевых показателей эффективности и других типов совокупных или статистических данных.Обычно они заполняются из реляционных баз данных и в определенных ситуациях могут обеспечить более высокую производительность.

http://en.wikipedia.org/wiki/Dimensional_database

  1. Базы данных XML, например. ксиндице
  2. Базы данных объектов, например. db4o

Имейте в виду, что концепция реляционных баз данных весьма спорна.Пуристы, такие как С.Дж.Дата Я бы сказал, что многие широко используемые базы данных (такие как Oracle и SQL Server) не в достаточной степени соответствуют реляционной модели, чтобы ее можно было назвать «реляционной».

Нереляционные базы данных просто не соответствуют требованиям Кодда.Intersystems Caché полностью переписывает/перепроектирует базу данных старой операционной системы Pick.Судя по тому немногому, что я читал о Caché, это хорошо сделанный редизайн.Он позволяет программам .net получать доступ к базе данных так же, как это было бы с SQL.Caché запускает программы Pick OS без каких-либо изменений.Импортировав файлы Pick в Caché, вы по-прежнему можете запускать с его помощью свои старые приложения с зеленым экраном, а также писать новые программы с использованием .net, чтобы вы могли перейти на приложения Windows, не отказываясь от многолетнего проектирования данных, в которое вы уже вложили средства.Вот некоторая информация о модели Pick DB.База данных Pick использует записи и поля полностью переменной длины.Все таблицы имеют один уникальный ключ и доступны без чтения индекса.Пик разработал систему для использования алгоритма хеширования, который считывает элемент с диска, как правило, при первом физическом чтении (при условии, что обслуживание системы было выполнено правильно).Поля в Pick не типизированы.Все данные хранятся в виде строки, а кастинг остается на усмотрение программиста.Значения NULL хранятся как пустая строка, поэтому значения NULL не занимают дисковое пространство, как в SQL.Нет необходимости во внешних ключах.В «Реляционном мире» администратор базы данных должен создать таблицу заголовка заказа и таблицу позиций заказа.В разделе «Выбор модели» есть одна таблица.Примером может служить поле «Дата заказа», в котором будет храниться количество дней, прошедших с «13 декабря 1967 г.» (операционная система выбора данных была включена впервые).У избранных программистов не было проблем 2000 года.Второй столбец будет номером клиента.Большая разница в том, что когда вы дойдете до столбца номера продукта, там будет «Многозначное значение» (несоответствие Кодда).Другими словами, база данных может обрабатывать от 1 до 32 000 номеров продуктов в этом столбце.Другие столбцы, такие как «Заказанное количество», будут находиться в контролирующей/зависимой связи с номером продукта и также будут иметь многозначные значения.Когда вы доберетесь до количества отправленных товаров, Pick перейдет в третье измерение и получит поле с несколькими значениями.У вас будет столбец с номером отгрузки, в котором будет указано несколько значений по позициям и подмножественное значение, содержащее количество отгрузки для этой строки для этого номера отгрузки.Внутренние соединения не требуются.Все данные по этому заказу хранятся в одной таблице и в одной записи.Никаких сиротских ссор никогда!Во-вторых, определение данных немного отличается.Наши словари могут содержать определения данных, которых нет в этой таблице или которыми манипулируют.Несколько примеров: Имя клиента.Это будет определено как «Использовать столбец «Номер клиента» и вернуть поле «Имя» из таблицы «Клиенты».Другой пример: расширение позиции будет определяться как расчет количества*цены/цены за единицу.Кажется, я где-то читал, что Caché утверждает, что у него более 100 000 установок.

Я думаю, что база данных в виде плоских файлов в Excel нереляционная и используется довольно большим количеством людей.

На самом деле это просто таблица базы данных, которую нельзя объединить с другими таблицами.

Объектно-ориентированные базы данных — один из интересных типов нереляционных баз данных.

В торговом секторе иногда используются объектно-ориентированные базы данных, поскольку каждая сделка/контракт может выглядеть как другие в этой категории, но также иметь уникальные атрибуты.ОЧЕНЬ сложно представить это относительно.

eXist-дб — это база данных XML, существующая уже давно.Это особенно полезно для xquery более тонны XML-документов.

Любой файл или группа файлов, которые содержат данные, но не выражают связи внутри этих данных, являются нереляционной базой данных.

RRDtool предназначен для хранения и агрегирования данных журналов.Вы настраиваете интервал выборки и вводите в него данные, а затем он возвращает результаты, основанные на времени.Он оптимизирован для хранения фиксированного размера и через некоторое время начинает агрегировать прошлые результаты.Например, предположим, что у вас есть база данных циклического перебора с 5-минутным интервалом времени.Даже если вы отправляете ему данные о температуре раз в секунду, он все равно сохраняет результаты только с интервалом в 5 минут.Через неделю он усредняет эти результаты в почасовые значения.Через месяц почасовые результаты усредняются в дневные и так далее.

RRDtool обычно используется в качестве серверной части для таких инструментов, как Крикет и МРТГ отслеживать данные о сети и окружающей среде в течение месяцев и лет подряд.

Для СУБД на основе графов у вас есть neo4j.

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

Ответов много, но все они попадают в одну из двух основных категорий:

  1. Навигационный.Включает базы данных дерева/иерархии и базы данных графиков.

  2. Базы данных, нарушающие первую нормальную форму (множественные значения).Включает базы данных Pick, Lotus Notes и его потомки, такие как CouchDB.

РЕДАКТИРОВАТЬ:И, конечно же, хранилища ключей/значений, такие как BDB, не являются реляционными, но это само собой разумеется, не так ли?Я имею в виду, что это просто хранилища ключей/значений.

дБаза.Хотя он и продавался как таковой, он не соответствует требованиям.

В качестве объектно-ориентированной базы данных на ум приходит Intersystems Caché.На этом построены некоторые медицинские и библиотечные системы.

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

  2. В научных приложениях также часто используются собственные механизмы баз данных, а не СУБД.Я также работал в компании, у которой есть самая большая в мире база данных записей ЭЭГ мозга:www.brainresource.com.Там мы используем базу данных в виде плоских файлов, и она нам подошла.

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

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

Некоторый ОЛАП Системы поддерживаются многомерными базами данных (MOLAP), которые часто используются в финансовом анализе.Они предоставляют интерактивные клиенты, которые позволяют перемещаться по данным на разных уровнях агрегации.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top