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


Сначала я бы подумал о том, какие системные требования для доступа к данным, безопасности данных, масштабируемости, производительности, сценариев отключения, преобразования данных, определения размера данных.
С другой стороны, учитывайте также опыт и опыт разработчиков, операторов, администраторов платформы.
Вы также должны подумать о том, какие ограничения у вас есть в отношении языков программирования, операционных систем, объема памяти, пропускной способности сети, оборудования.
И последнее, но не менее важное: вы должны подумать о таких бизнес-вопросах, как бюджет на лицензии, поддержку, эксплуатацию.
После всех этих соображений у вас должно остаться всего несколько вариантов, и выбор должен быть проще.
Другими словами, выберите технологию, которая наилучшим образом соответствует ограничениям и потребностям вашей организации и проекта.
Я, конечно, думаю, что вы правы, говоря, что это не очевидный выбор, учитывая большое количество альтернатив, но я думаю, что это единственный способ сузить их до тех, которые действительно осуществимы для вашего проекта.
Несомненно, наиболее убедительным фактором является опыт вас или вашей команды ... или количество ресурсов, которые вы, вероятно, наймете в будущем. Я бы, как правило, придерживался принципа зернистости, используя MySQL в группе LAMP и SQL Server в команде MS, поскольку любой из этих продуктов способен делать все необходимое даже в среде с высокой нагрузкой.
Преимущества любой другой базы данных будут незначительными по сравнению с болью от изучения того, как правильно ее использовать. Единственное исключение из этого, на мой взгляд, будет в среде с высоким спросом, где:
а. очевидный выбор был испробован и терпит неудачу
б. выгоды от масштабирования умножают предельную выгоду до такой степени, что оно окупает затраты на использование чего-то неожиданного.
Я предполагаю, что потребуется нанять по крайней мере двух, а лучше трех отличных администраторов баз данных, давно знакомых с новой базой данных.
И сначала я бы попытался нанять их для технологии, которая терпела неудачу, потому что, скорее всего, это будет способ ее использования, чем сама технология, которая вызывает проблему.
Мои критерии выбора (в основном ориентированные на программирование):
Для большинства людей в корпоративной среде выбор сводится к «той, которая есть у нас».
Поскольку вам, кажется, повезло, что у вас есть выбор, я бегло рассмотрю вопросы и, возможно, задам еще несколько в конце.
Самым большим критерием может быть стоимость. Вы хотите / готовы ли вы платить за свою платформу СУБД? Если нет, то Oracle, MS SQL Server, Sybase и другие, вероятно, отсутствуют, хотя, если вы не создаете коммерческое приложение, тогда может быть некоторая свобода маневра. Кроме того, платформа - можете ли вы запустить программное обеспечение на своем оборудовании?
Другие параметры для рассмотрения могут включать ожидаемое количество одновременных подключений, транзакционные и в основном чтения, размер, доступность и, я думаю, многие другие.
«Особых возможностей» в основном следует избегать - в моем циничном мировоззрении они предназначены для того, чтобы запереть вас на платформе. Таким образом, что-то вроде Oracle PL / SQL - это функция, которая, хотя и является мощной (и может означать необходимость в дополнительной мощности процессора при более высоких затратах на лицензирование), не является переносимой. Если вы ожидаете чрезвычайно больших объемов, я полагаю, что разбиение на разделы может оказаться полезным.
Я работал с Oracle, MS SQL Server, MySQL, PostreSQL, SQLite и Sybase, о которых я могу думать. Я с радостью рекомендую все, кроме Sybase, по поводу которой у меня есть некоторые опасения в наши дни (я легко могу ошибаться, но лично я думаю, что деньги можно было бы лучше потратить в другом месте), но не все для тех же приложений.
В идеале мне нравится иметь теплое чувство, что на самом деле не имеет значения, какую платформу БД я использую, потому что я могу легко портировать. Имея хороший уровень абстракции между данными и бизнес-логикой, я смогу разрабатывать локально, скажем, против превосходного SQLite, и безболезненно реализовывать, например, на Postgres. С чем-то вроде ActiveRecord от Rails в сочетании с небольшой осведомленностью о таких вещах, как различия в зарезервированных словах, это почти полностью бесплатно.
Существующие ответы великолепны. Стоит иметь в виду, что у Oracle теперь есть XE-версия своей базы данных 10g, которая доступна бесплатно и поставляется с Application Express, отличной веб-средой разработки.
Он ограничен, 4 ГБ жесткого диска, 1 ГБ оперативной памяти и использует только один процессор. Тем не менее, этого достаточно, чтобы запустить меньшую систему, и при необходимости его можно легко обновить позже. Oracle может быть одним из самых сложных в изучении, но он также является одним из лучших в вашем резюме :-)
Я думаю, что SQLServer от Microsoft также имеет базу данных «стартового» типа. Не сбрасывайте со счетов коммерческие продукты - если вы собираетесь поставить свою компанию на технологию баз данных, я бы предпочел лично использовать продукт от Oracle или Microsoft. Это не значит, что с открытым исходным кодом что-то не так.
Потратьте время на их оценку :-)
Думать о чем-либо, кроме этих трех, - это мастурбация - любая из других баз данных превращается в обсуждение нишевых продуктов для решения конкретных проблем, с которыми вы, вероятно, еще не сталкивались. Если вы выберете что-либо, кроме трех выше, вы -
Нишевые базы данных - это не то место, где сделаны архитектурные успехи - это такие технологии, как промежуточное ПО, обмен сообщениями, облачные сервисы и т. д., Где вы можете позволить (и должны) рискнуть, чтобы найти хорошие продукты.
Может быть, немного цинично тоже предполагать, что цель конкретных функций поставщика - привязать вас к их платформе :)