Вопрос

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

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

и т. д...

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

Решение

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

С другой стороны, учтите также опыт и опыт разработчиков, операторов, администраторов платформ.

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

И последнее, но не менее важное: вам нужно подумать о бизнес-вопросах, таких как бюджет на лицензии, поддержку, эксплуатацию.

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

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

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

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

Мои критерии выбора (в основном ориентированные на программирование):

  • Обслуживание:Как устанавливаются обновления/исправления?
  • Контроль транзакций:Как это реализовано
  • Поддерживаются ли хранимые процедуры?
  • Можете ли вы использовать обработку исключений в хранимых процедурах?
  • Расходы
  • В качестве преимущества:Можете ли вы использовать рекурсию в хранимых процедурах?(Например.в SQL Server 2000 рекурсия останавливается после 32 проходов IIRC)

Для большинства людей в корпоративной среде выбор сводится к «тому, что у нас есть».

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

Самым большим критерием может быть стоимость.Хотите/готовы ли вы платить за свою платформу СУБД?Если нет, то Oracle, MS SQL Server, Sybase и другие, вероятно, отпадут, хотя, если вы не создаете коммерческое приложение, то может быть некоторое пространство для маневра.Кроме того, платформа: можете ли вы запустить программное обеспечение на своем оборудовании?

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

«Особых особенностей» в основном следует избегать — по моему циничному взгляду на мир, они предназначены для того, чтобы запереть вас на платформе.Таким образом, что-то вроде Oracle PL/SQL — это функция, которая, хотя и мощная (и, вероятно, означает необходимость в дополнительной мощности процессора при большей стоимости лицензии), не является переносимой.Я полагаю, если вы ожидаете очень больших объемов, то секционирование может оказаться полезным.

Насколько я могу вспомнить, я работал с Oracle, MS SQL Server, MySQL, PostreSQL, SQLite и Sybase.Я бы с радостью порекомендовал все, кроме Sybase, по поводу которого у меня сейчас есть некоторые опасения (я легко могу ошибаться, но лично я считаю, что деньги лучше потратить в другом месте), но не все для одних и тех же приложений.

В идеале мне хотелось бы иметь теплое чувство, что на самом деле не имеет значения, какую платформу БД я использую, потому что я могу легко портировать.Имея хороший уровень абстракции между данными и бизнес-логикой, я смогу разрабатывать локально, скажем, на превосходном SQLite и безболезненно реализовывать, например, Postgres.Используя что-то вроде ActiveRecord из Rails в сочетании с небольшим пониманием таких вещей, как различия в зарезервированных словах, это почти совершенно бесплатно.

Конечно, наиболее убедительным фактором является опыт вас или вашей команды… или количество ресурсов, которых вы, вероятно, наймете в будущем.Большую часть времени я предпочитаю использовать MySQL в команде LAMP и SQL Server в команде MS, поскольку любой из этих продуктов способен делать все необходимое даже в среде с высокой нагрузкой.

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

а.очевидный выбор был опробован и не удался

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

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

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

Существующие ответы великолепны.Стоит иметь в виду, что у Oracle теперь есть версия XE своей базы данных 10g, которая доступна бесплатно и поставляется с Application Express, отличной веб-средой разработки.

Он ограничен: 4 ГБ HD, 1 ГБ оперативной памяти и использует только один процессор.Однако этого достаточно для запуска небольшой системы, и при необходимости ее можно легко обновить позже.Oracle может быть одним из самых сложных для изучения, но он также является одним из лучших, которые можно включить в свое резюме :-)

Я думаю, что SQLServer от Microsoft также имеет базу данных «начального» типа.Не сбрасывайте со счетов коммерческие продукты: если вы собираетесь сделать ставку на технологию баз данных, я бы предпочел лично использовать продукт Oracle или Microsoft.Это не значит, что с открытым исходным кодом что-то не так.

Потратьте некоторое время, оценивая их :-)

  • Linux, веб-хостинг — MySQL (возможно, PostreSQL)
  • Основной бизнес для малого и среднего бизнеса – MS SQL
  • Big Iron (банковское дело и т. д.) — Oracle

Думать о чем-то кроме этих трех — это мастурбация: любая другая база данных превращается в обсуждение нишевых продуктов для решения конкретных проблем, с которыми вы, вероятно, еще не сталкивались.Если вы выберете что-нибудь кроме трех вышеперечисленных, вы -

  1. Борьба за поиск людей для работы над проектом или поддержания базы данных в рабочем состоянии.
  2. Постарайтесь мотивировать свое решение без академической дискуссии.
  3. Через несколько лет кто-то проклянет вас, ваших предков и вашу родословную — и все равно заменит ваш выбор.

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

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