Вопрос

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

Меня интересуют реляционные базы данных.

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

Решение

Понятие базы данных очень широкое.Я сделаю некоторые упрощения в том, что излагаю здесь.

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

Эта модель работает нормально, но она не единственная.В некоторых случаях данные лучше организовывать в виде дерева.Файловая система представляет собой иерархическую базу данных.начинается с корня, и все идет под этим корнем, в древовидной структуре.Другая модель — пара ключ/значение.Sleepycat BDB — это, по сути, хранилище объектов «ключ-значение».

LDAP — еще одна база данных, имеющая два преимущества:хранит довольно общие данные, они распределены по дизайну и оптимизированы для чтения.

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

Также существуют некоторые реляционные базы данных на основе столбцов.Вместо отправки данных по строкам вы отправляете их по всему столбцу.

Итак, чтобы ответить на ваш вопрос:база данных — это метод хранения данных.Технически даже текстовый файл представляет собой базу данных, хотя и не особенно удобную.Выбор модели вашей базы данных в основном зависит от типичных потребностей вашего приложения.

Устанавливаю ответ как CW, так как я, вероятно, говорю что-то совершенно неправильное.Не стесняйтесь редактировать.

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

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

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

Не забудьте взглянуть на базы данных NOSQL.Это довольно новая технология, которая хорошо подходит для вещей, которые не подходят и не масштабируются в реляционной базе данных.

Используйте базу данных, если у вас есть данные для хранения и запроса.

Технически большинство вещей подходит для баз данных.Компьютеры созданы для обработки данных, а базы данных — для их хранения.

Единственное, что следует учитывать – это стоимость.Стоимость развертывания, стоимость обслуживания, затраты времени, но обычно оно того стоит.

Если вам нужно хранить только очень простые данные, альтернативой могут быть плоские файлы (текстовые файлы).

Примечание:вы использовали общий термин «база данных», но существует много разных типов и реализаций.

  • Для поиск приложений, полнотекстовые поисковые системы (некоторые из которых интегрированы в традиционные СУБД, а некоторые нет), может быть хорошей альтернативой, предоставляя как больше функций (различная лингвистическая осведомленность, способность иметь полуструктурированные данные, ранжирование...), так и лучшие производительность.

  • Кроме того, я видел приложения, в которых данные конфигурации хранится в базе данных, и хотя в некоторых случаях это имеет смысл, использование простых текстовых файлов (или YAML, XML и тому подобное) и загрузка базовых объектов во время инициализации может быть предпочтительнее из-за автономного характера такой альтернативы, а также из-за простоты изменения и репликации таких файлов.

  • А плоский файл журнала, может быть хорошей альтернативой ведению журнала в СУБД, конечно, в зависимости от использования.

При этом за последние 10 лет или около того в системы СУБД в целом было добавлено множество функций, помогающих им обрабатывать различные формы данных и различные возможности поиска (например:Полнотекстовый поиск, упомянутый выше, XML, интеллектуальное хранение/обработка BLOB-объектов, мощные пользовательские функции и т. д.) что делает их более универсальными, и, следовательно, довольно повсеместный сервис. Однако их сила остается в основном за счет реляционных данных..

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