Как выбрать базу данных SQL? - PullRequest
3 голосов
/ 27 августа 2008

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

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

и т.д ...

Ответы [ 6 ]

8 голосов
/ 27 августа 2008

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

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

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

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

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

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

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

3 голосов
/ 27 августа 2008

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

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

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

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

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

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

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

3 голосов
/ 27 августа 2008

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

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

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

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

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

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

2 голосов
/ 27 августа 2008

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

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

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

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

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

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

0 голосов
/ 04 сентября 2008
  • Linux, веб-хостинг - MySQL (возможно, PostreSQL)
  • МСП основного направления - MS SQL
  • Big Iron (банковское дело и т. Д.) - Oracle

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

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

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

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