Назад | Перейти на главную страницу

Каковы плюсы и минусы реляционных систем управления базами данных с открытым исходным кодом по сравнению с проприетарными?

Я ищу общие сведения высокого уровня. Например:

СТОИМОСТЬ:
- Экономия затрат на приобретение программного обеспечения -> Открытый исходный код
- Техническое обслуживание -> ...

ПРОИЗВОДИТЕЛЬНОСТЬ:
- Как определено XYZ -> ...
- Согласно определению ABC -> ...

И т.п.

Спасибо!

Во-первых, вам нужно знать, какие функции СУБД вам нужны и насколько хорошо системы это делают. Например:

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

  • SQL Server поставляется с хорошим набором инструментов для создания отчетов, поэтому вам, возможно, не придется покупать инструменты сторонних производителей для этого. Однако он работает только в Windows.

  • Oracle имеет JVM, встроенную в сервер (вы действительно хотите платить лицензию Oracle на каждый процессор для запуска Java-приложения?), Имеет хорошую поддержку для больших баз данных за счет хорошего разделения таблиц, растровых индексов и множества функций, которые упрощают хранение данных Приложения.

  • Различные системы баз данных могут поддерживать или не поддерживать протокол XA для распределенных транзакций.

  • Postgres имеет пространственный индекс и поддерживает расширения и хранимые процедуры на разных языках.

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

  • Различные диалекты SQL, поддерживаемые разными системами, имеют больший или меньший набор функций или определенные сильные стороны.

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

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

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

Различные платформы СУБД позволяют разрабатывать расширения - фактически, эта технология была впервые применена в Postgres Stonebreaker et. al. и был основным двигателем развития этой системы. Различные платформы имеют большую или меньшую поддержку для этого -

  • Oracle и SQL Server имеют ограниченную поддержку.

  • Postgres имеет обширную поддержку расширений во всей системе.

  • Informix Online имеет поддержку расширений, известных как «лезвия», заимствованных из Illustra (который сам был ранней коммерческой версией Postgres).

  • MySQL имеет подключаемую архитектуру, которая поддерживает сторонние механизмы хранения.

Если у вас есть это конкретное требование, вы можете обнаружить, что системы с открытым исходным кодом предлагают большую гибкость. Например, существует несколько продуктов для хранилищ данных, основанных на модифицированных версиях Postgres.

Таким образом, выбор между открытым исходным кодом и проприетарным ПО - это не выбор между бесплатным (как в пиве) и платным, а скорее вопрос характеристик, стоимости, уверенности в вариантах поддержки и контроля.

Реальные затраты

  • Лицензия
  • Обслуживание
  • Служба поддержки

Затраты на знания

  • Можете ли вы найти / нанять людей, знакомых с этим, или им потребуется обучение
  • У вас уже есть навыки администратора базы данных / разработчика?

Поддерживается ли это на ваших платформах / инфраструктуре

Скорость / производительность / набор функций

Доступность инструментов (DBA и Dev)

-

Кроме того, с коммерческой версией вы можете легко сказать: «ХХХХ виноваты», но если вы используете версию с открытым исходным кодом, то, как правило, нет никого, на кого вы могли бы возложить ответственность за проблемы (так что деньги останутся на вас) - если это это соображение ;-)

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

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

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

В случае программного обеспечения с "закрытым исходным кодом" эмбарго "производителя" на доступность исходного кода означает, что вы не можете выбрать сторону, которая будет поддерживать программное обеспечение на основе ваших собственных критериев (лучшая цена, лучшие навыки и т. Д.), А скорее вы вынуждены выбирать только «производителя», независимо от их приверженности «поддержке» ваших потребностей в отношении программного обеспечения.

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

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

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