Вопрос
Мы живем в золотой век баз данных с многочисленными высококачественными коммерческими и бесплатными базами данных.Это здорово, но недостатком является отсутствие простого и очевидного выбора для тех, кому нужна база данных для его следующего проекта.
- Какие ограничения/критерии вы используете при выборе базы данных?
- Насколько хорошо различные базы данных, которые вы использовали, соответствуют этим ограничениям/критериям?
- Какие особенности имеют базы данных?
- Какие базы данных вы готовы порекомендовать другим?
и т. д...
Решение
Я бы сначала подумал о том, каковы системные требования для доступа к данным, безопасности данных, масштабируемости, производительности, автономных сценариев, преобразования данных и определения размера данных.
С другой стороны, учтите также опыт и опыт разработчиков, операторов, администраторов платформ.
Вам также следует подумать о том, какие ограничения у вас есть в отношении языков программирования, операционных систем, объема памяти, пропускной способности сети и аппаратного обеспечения.
И последнее, но не менее важное: вам нужно подумать о бизнес-вопросах, таких как бюджет на лицензии, поддержку, эксплуатацию.
После всех этих размышлений у вас должно остаться всего несколько вариантов, и выбор станет проще.
Другими словами, выберите технологию, которая лучше всего соответствует ограничениям и потребностям вашей организации и проекта.
Я, конечно, думаю, что вы правы, говоря, что это не очевидный выбор, учитывая большое количество альтернатив, но я думаю, что это единственный способ сузить их до тех, которые действительно подходят для вашего проекта.
Другие советы
Мои критерии выбора (в основном ориентированные на программирование):
- Обслуживание:Как устанавливаются обновления/исправления?
- Контроль транзакций:Как это реализовано
- Поддерживаются ли хранимые процедуры?
- Можете ли вы использовать обработку исключений в хранимых процедурах?
- Расходы
- В качестве преимущества:Можете ли вы использовать рекурсию в хранимых процедурах?(Например.в 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
Думать о чем-то кроме этих трех — это мастурбация: любая другая база данных превращается в обсуждение нишевых продуктов для решения конкретных проблем, с которыми вы, вероятно, еще не сталкивались.Если вы выберете что-нибудь кроме трех вышеперечисленных, вы -
- Борьба за поиск людей для работы над проектом или поддержания базы данных в рабочем состоянии.
- Постарайтесь мотивировать свое решение без академической дискуссии.
- Через несколько лет кто-то проклянет вас, ваших предков и вашу родословную — и все равно заменит ваш выбор.
Нишевые базы данных — это не то место, где достигаются архитектурные успехи, а такие технологии, как промежуточное программное обеспечение, обмен сообщениями, облачные сервисы и т. д., где вы можете позволить (и должны) пойти на риск в поисках хороших продуктов.