База данных альтернатив?
Мне было интересно найти компромисс в использовании баз данных и какие еще были варианты? Кроме того, какие проблемы не очень хорошо подходят для баз данных?
Я занимаюсь реляционными базами данных.
5 ответов
Концепция базы данных очень широка. Я сделаю некоторые упрощения в том, что я представляю здесь.
Для некоторых задач наиболее распространенной базой данных является реляционная база данных. Это база данных, основанная на реляционной модели. Реляционная модель предполагает, что вы описываете свои данные в строках, принадлежащих таблицам, в которых каждая таблица имеет заданное и фиксированное количество столбцов. Вы отправляете данные "для каждой строки", что означает, что вы должны предоставить строку в одном кадре, содержащую данные относительно всех столбцов вашей таблицы. Каждая отправленная строка обычно получает идентификатор, который является уникальным на уровне таблицы, иногда на уровне базы данных. Вы можете создавать отношения между сущностями в реляционной базе данных, например, говоря, что данная ячейка в вашей таблице должна ссылаться на строку другой таблицы, чтобы сохранить так называемую "ссылочную целостность".
Эта модель отлично работает, но она не единственная. В некоторых случаях данные лучше организовывать в виде дерева. Файловая система представляет собой иерархическую базу данных. начинается с корня, и все идет под этим корнем, в древовидной структуре. Другая модель - пара ключ / значение. Sleepycat BDB - это, по сути, хранилище сущностей ключ / значение.
LDAP - это еще одна база данных, которая имеет два преимущества: хранит довольно общие данные, она распределена по структуре и оптимизирована для чтения.
Графовые базы данных и триплеты позволяют хранить граф и выполнять поиск изоморфизма. Это обычно требуется, если у вас есть очень общий набор данных, который может охватывать широкий уровень описания ваших сущностей, настолько широкий, что в принципе неизвестен. Это явно противоречит реляционной модели, где вы создаете таблицы с очень точным набором столбцов и знаете, что будет содержать каждый столбец.
Существуют также реляционные базы данных на основе столбцов. Вместо того, чтобы отправлять данные по строкам, вы отправляете их по всему столбцу.
Итак, чтобы ответить на ваш вопрос: база данных - это метод хранения данных. Технически, даже текстовый файл является базой данных, хотя и не особенно приятным. Выбор модели вашей базы данных в основном зависит от типичных потребностей вашего приложения.
Установка ответа как CW, как я, вероятно, говорю что-то строго не правильно. Не стесняйтесь редактировать.
Это довольно широкий вопрос, но базы данных хорошо подходят для управления реляционными данными. Альтернативы почти всегда подразумевают разработку собственного механизма хранения и поиска данных, который для большинства стандартных / небольших приложений не стоит усилий.
Типичным сценарием, который не очень подходит для базы данных, является хранение больших объемов данных, которые организованы как относительно небольшое количество логических файлов, в этом случае может быть достаточно простой системы, подобной файловой системе.
Не забудьте взглянуть на базы данных NOSQL. Это довольно новая технология и хорошо подходит для вещей, которые не подходят / не масштабируются в реляционной базе данных.
Надеюсь это поможет.
С Уважением,
Sebastiaan
Для поисковых приложений хорошая полнотекстовая поисковая система (некоторые из которых интегрированы в традиционные СУБД, но некоторые из них нет) может стать хорошей альтернативой, предоставляя обе дополнительные функции (различную лингвистическую осведомленность, способность иметь полуструктурированные данные, рейтинг...) а также лучшая производительность.
Кроме того, я видел приложения, в которых данные конфигурации хранятся в базе данных, и хотя в некоторых случаях это имеет смысл, использование простых текстовых файлов (или YAML, XML и т. Д.) И загрузка базовых объектов во время инициализации может быть предпочтительнее, поскольку автономности такой альтернативы и легкости модификации и репликации таких файлов.
Плоский файл журнала, может быть хорошей альтернативой регистрации в СУБД, в зависимости от курса использования.
При этом за последние 10 лет или около того системы СУБД, в общем, добавили много функций, чтобы помочь им обрабатывать различные формы данных и различные возможности поиска (например, полнотекстовый поиск, упомянутый выше, XML, интеллектуальное хранение / обработка). BLOB-объектов, мощных пользовательских функций и т. д.), которые делают их более универсальными и, следовательно, довольно распространенным сервисом. Однако их сила в основном зависит от реляционных данных.
Используйте базу данных, если у вас есть данные для хранения и запроса.
Технически, большинство вещей подходит для баз данных. Компьютеры созданы для обработки данных, а базы данных созданы для их хранения.
Единственное, что нужно учитывать, это стоимость. Стоимость развертывания, стоимость обслуживания, затраты времени, но обычно это того стоит.
Если вам нужно только хранить очень простые данные, альтернативными могут быть плоские файлы (текстовые файлы).
Примечание: вы использовали общий термин "база данных", но существует много разных типов и реализаций этих.