Плюсы и минусы создания приложений с использованием собственных систем баз данных - PullRequest
8 голосов
/ 10 сентября 2009

Я давно интересовался продуктом базы данных 4D SAS ', хотя с трудом дотронулся до него в течение эонов.

При рассмотрении того, какие инструменты использовать для разработки приложений, особенно те, которые требуют компонента базы данных, на что следует обращать внимание при рассмотрении инструментов с открытым исходным кодом, таких как MySQL и PostgreSQL, и проприетарных решений, таких как 4D или Pervasive SQL?

Какой хороший (и плохой!) Опыт SO-сообщество испытало в отношении различных инструментов БД, таких как 4D, Pervasive, FilemakerPro и т. Д.?

Есть ли плохой опыт?

Ответы [ 10 ]

3 голосов
/ 29 сентября 2009

Трудно составить соответствующий список плюсов и минусов без контекста.

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

Ответ отличается от системы к системе.

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

2 голосов
/ 31 декабря 2009

Я скажу только одно ... Следите за "фактической" стоимостью вашего решения. Большинство проприетарных систем баз данных работают только на Windows ... или иногда только на Mac / Windows.

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

Кроме того, сравните систему баз данных с текущими решениями с открытым исходным кодом. Это действительно того стоит? После перехода с Microsoft Sql Server (который имеет бесплатную версию, но в любом случае) на PostgreSQL, я был поражен, что люди так много платят за SQL Server ... Я имею в виду, что Postgres для меня намного чище, и большая часть его работает точно как вы ожидаете (в отличие от некоторых синтаксисов SQL-сервера), и в него встроены дополнительные функции (программирование хранимых процедур в Ruby?)

Таким образом, по сути, сравнили проприетарное программное обеспечение с открытым исходным кодом и решили, какое из них взять по общему ценообразованию (включая ОС) и набору функций.

2 голосов
/ 30 декабря 2009

4D - кроссплатформенная, проприетарная система баз данных только для MacOS / Windows с автономными и клиент-серверными вариантами. Вам бы лучше сравнить его с программным обеспечением Alphafive.com, предназначенным только для Windows. Я работал с ним в течение 17 лет, и это послужило мне и моему отделу очень хорошо. С макушки головы ...

Плюсы:

  1. Интерфейс и код тесно связаны с механизмом обработки данных, что делает разработку многофункциональных кроссплатформенных пользовательских интерфейсов очень быстрой и простой.
  2. Запатентованный механизм реляционных данных изначально работает на обеих платформах вместе с собственными клиентскими интерфейсами (но требует многопользовательских лицензий). Автоотношения полезны (но иногда мешают).
  3. Может обращаться к внешним системам через драйверы SOAP, ODBC и SQL (ограничено).
  4. Может получать доступ к 4D из внешних систем через запросы SOAP или http и веб-страницы.
  5. Родной процедурный язык программирования, основанный на Pascal, и его ЛЕГКО изучать.
  6. Отличный инструмент для малых и средних отделов.
  7. Последняя версия допускает подмножество команд SQL и оригинальный доступ к данным, поэтому запись обратной совместимости была очень хорошей.
  8. Безопасность проста в 4D.
  9. Вы можете создавать решения для развертывания различными способами, не ограничиваясь тем, установлен ли MS Access.

Минусы:

  1. Интерфейс и код тесно связаны с механизмом данных, что может привести к ограниченному использованию абстракции и кодирования «черного ящика», если вы не сделаете это целью своей разработки.
  2. Компилируется в один файл монолитной структуры с принудительным перезапуском для отдельных исправлений.
  3. Язык по-прежнему только процедурный, что усложняет восприятие объектно-ориентированным программистам. Каждый метод требует отдельного «файла» в 4D, поэтому вы не можете включить более одной функции или процедуры в одну подпрограмму - для этого потребуется некоторое привыкание.
  4. В то время как компания, кажется, находится в хорошей форме, растет и развивается, вы просто никогда не знаете, как они сохраняют свое состояние для себя.
  5. Компания никогда не продавала себя на самом деле - доверяя своей базе разработчиков, чтобы распространять информацию и расширять продукт за счет развертывания сайтов и обновлений продуктов. Веб-сайт явно полезен только разработчикам, которые уже используют продукт - он просто не привлекает новых пользователей.
  6. Обновления продуктов всегда, казалось, фокусировались на том, как инструмент лучше для РАЗРАБОТЧИКОВ, а не ЗАКАЗЧИКОВ этих разработчиков.
  7. В SQL отсутствуют представления, составные индексы и другие распространенные функции SQL.
  8. Когда пользователь запрашивает отчет по конкретным столбцам данных, мне часто приходится писать еще одну программу, просто чтобы предоставить эти конкретные данные - я не всегда могу просто запросить данные и сгенерировать текстовый файл.
  9. Не работает с новыми версиями ОС, с почти простыми приложениями на основе веб-браузера. Более старая версия не работает в Mac OS 10.6, а для самой новой версии требуется последняя версия Mac OS 10.6. Ни одна версия еще не сертифицирована для Windows 7.

Я почти год изучал ASP.NET и несколько недель в Ruby on Rails. В то время как хранилища данных SQL ЛЕГКО, пользовательский интерфейс труден, но того стоит, когда ваше приложение все еще функционирует через обновления ОС. Вы всегда можете использовать более старый браузер, если последняя версия что-то ломает.

Я бы порекомендовал вам рассмотреть любой из них, в зависимости от того, сколько средств у вас есть для реализации проекта - Rails дешевле из двух. Затем ЛЮБАЯ система с веб-браузером может получить доступ к данным, и вы можете по мере необходимости исправлять страницы интерфейса, вместо того, чтобы отключить всю систему на несколько минут за одно простое обновление. Эти навыки могут стать более востребованными в будущем.

1 голос
/ 28 сентября 2009

В разные моменты своей карьеры я очень хорошо работал и работал в FileMaker Pro, FoxPro, 4D и некоторых других коммерческих продуктах. Сейчас я в основном использую PHP / MySQL и не использовал последние версии продуктов.

Мне всегда нравился FileMaker, потому что большинство людей, которые могут использовать компьютер, могут выбрать FileMaker и спроектировать свои собственные системы. Им не нужно знать программирование или дизайн базы данных. Но вы можете «запрограммировать» FileMaker, установить веб-интерфейс или выполнить другие более сложные настройки, если вам нужно. Много раз мне «вручали» систему, созданную в FileMaker нетехническим человеком, которую нужно было превратить в полноценную систему управления данными. Хорошая часть заключалась в том, что все «спецификации» и поток данных уже были спроектированы в систему. Прототип уже создан!

4D и FoxPro, которые я всегда находил, требовали определенного объема дополнительных знаний в области программирования и / или баз данных, чтобы действительно что-то делать. 4D & FileMaker - это действительно полноценные автономные системы, а не только системы баз данных. Хотя все они имеют возможность подключаться к другим системам баз данных (например, MySQL, Oracle), это не является их сильной стороной.

С другой стороны, создание более сложных динамических систем может быть затруднено в 4D и Filemaker из-за того, что все тесно связано. Из-за их стоимости вы действительно захотите создать несколько систем с ними. А это значит, что вам действительно нужно «купить их», чтобы получить ценность ваших денег.

1 голос
/ 28 сентября 2009

Ключевой концепцией всегда является соблюдение стандартов: если вы планируете использовать пользовательские и / или специально разработанные функции 4D (но обсуждение может быть гораздо более общим и охватывать любой другой бесплатный или коммерческий инструмент в дикой природе), хорошо, просто используйте его и воспользуйтесь вашим преимуществом.

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

Другой основной причиной принятия очень закрытого решения является устаревшая поддержка. Один из продуктов, который вы упомянули (Pervasive SQL), в конце 90-х годов был портом без усилий для приложений на базе BTrieve, и он приобрел популярность благодаря огромному сообществу BTrieve по всей планете.

Наконец, что не менее важно, вы должны оценивать совокупную стоимость владения (TCO (Total Cost of Ownership)) не только с точки зрения цены лицензии (одно место, сетевое окружение, лицензии на сайт и т. Д.), Но и с точки зрения технической поддержки, обновления и доступность для вашей платформы. Многие известные мне бизнес-подразделения были вынуждены сменить базовую ОС на проблемы, связанные с БД.

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

Во всех других случаях полагайтесь на БД с открытым исходным кодом / бесплатное программное обеспечение. MySql и Postgres для больших проектов, SQLite для одного уровня персистентности приложения. Довольно стандартная и очень хорошая (общественная) поддержка. Хорошее качество без цены.

1 голос
/ 28 сентября 2009

4D - хороший вариант для вертикальных приложений. Я работал в компании, которая использовала 4D для создания медицинской карты и приложения для выставления счетов для врачей общей практики и специалистов. Быстрые возможности проектирования и развертывания 4D позволили приложению быстро двигаться в соответствии с рыночными требованиями и законодательными изменениями в области хранения медицинских карт. Сама среда не была ультрасовременной, но она была интегрированной, кроссплатформенной и очень продуктивной.

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

1 голос
/ 28 сентября 2009

Со страницы 4D я понял, что мы рассматриваем полную среду разработки + развертывания, а не отдельную базу данных как таковую. Итак, альтернативы, на которые вы могли бы обратить внимание, включают такие вещи, как django, ruby-on-rails, hibernate и другие. Разумеется, реальный вопрос заключается в том, может ли запатентованная система сэкономить вам достаточно денег на срок службы продукта, чтобы оправдать его стоимость. И это будет зависеть от типа имеющихся у вас человеческих ресурсов.

1 голос
/ 24 сентября 2009

Рассмотрим следующие вопросы:

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

Последний пункт мне показался особенно полезным на моей первой работе на полную ставку. Наш клиент использовал CA-Ingres, и никто в компании не знал этого достаточно хорошо, чтобы писать запросы для проверки данных. Поэтому мне пришла в голову идея экспортировать данные из Ingres и импортировать их в MS SQL Server (который я знал с короткой работы в Sybase Professional Services), чтобы мы могли писать там наши запросы проверки. Если бы было очень сложно экспортировать данные из Ingres, моя идея была бы вообще невозможной.

1 голос
/ 23 сентября 2009
  • Про нуля на любой БД: у нее есть хорошие непереносимые функции, которые помогут вам добиться цели
  • Минус обнуления в любой БД: иногда подходит другая БД (например, запуск тестов с экземплярами SQLite в памяти), но эта опция теперь закрыта
  • Недостаток собственной коммерческой БД: если вам нужно много экземпляров, затраты на лицензирование могут вас убить
0 голосов
/ 27 сентября 2009

У меня нет опыта работы с собственными продуктами баз данных, которые вы перечислили: 4D, Pervasive, FilemakerPro.

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

Мне было бы интересно узнать, что делает их более привлекательными для вас, чем гораздо более популярные проприетарные альтернативы: Oracle, SQL Server, DB2 и т. Д.

Если вы не предоставите больше подробностей, вам будет сложно дать вам совет.

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

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

...