Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Совместимость приложения с разными СУБД  [new]
Alex Alexeev
Member

Откуда:
Сообщений: 174
Сразу оговорюсь, что не хотелось бы обсуждать преимущества и недостатки различных СУБД. Вопрос в другом:
Разрабатывается, допустим, некая трехзвенная клент-серверная система. И планируется организавать совместимость с разными СУБД (конечно, ограниченное количество, допустим MS SQL Server, Oracle и DB2).
Так вот каким образом можно это организовать?
Видятся два подхода:
1. Использование всех особенностей архитектуры, диалекта SQL и т.д. присущих данной СУБД. В таком случае , большую часть логики можно вынести в хранимые процедуры, обращения к базе данных оптимизировать в зависимости от особенностей СУБД, увеличивается безопасность, уменьшается сетевой трафик - в общем плюсы очевидны.
Но при таком подходе, придется переписывать тексты хранимых процедур, триггеров и т.п. для каждой СУБД,
а также обращения среднего звена к серверу БД - потребуется специалист достаточно хорошо владеющий всеми используемыми СУБД.
2. Использовать только стандартные SQL - запросы при обращении к СУБД и внутри хранимых процедур. В таком случае, вся логика выносится на среднее звено, а это ведет к понижению производительности, повышению сетевого трафика, затраты на передачу промежуточных результатов и т.д. Т. е. плюсы первого подхода превращаются в минусы второго.
Но! При втором подходе сам переход на другую СУБД легче и проще!

Так все же какой подход лучше?
Или есть еще варианты?
Или где про это почитать?
4 июл 02, 12:38    [37308]     Ответить | Цитировать Сообщить модератору
 Re: Совместимость приложения с разными СУБД  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
Давайте подойдем к этому с такой стороны.
Что нужно для успешной реализации первого подхода?
Хорошие мозги программиста.
Для второго?
Хорошая техника.

Что имеет стремление постоянно улучшаться?
Техника.

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

Я за второй вариант.
5 июл 02, 23:29    [37580]     Ответить | Цитировать Сообщить модератору
 Re: Совместимость приложения с разными СУБД  [new]
Jimmy
Member

Откуда: г.Москва
Сообщений: 3136
А я однозначно за первый.
Почему?
Потому что неразумно НЕ ИСПОЛЬЗОВАТЬ весь потенциал какой-либо СУБД в погоне за мифической переносимостью.

Тут, ИМХО, вопрос один:
Что нужно получить: прогу, которая одинаково плохо работает с целым рядом СУБД используя "стандартный" SQL, или заточенную под ряд самых популярных. Конечно, второй вариант - сложнее в реализации, но ЗНАЧИТЕЛЬНО выигрышнее в эксплуатации.

При этом, сам клиент может и не заметить перехода, т.к. специфичная логика реализуется, как библиотека классов для среднего звена (plug-in).
Единственное требование к ней (библиотеке), чтобы классы использовали некий стандартный интерфейс, т.е. middle-trier (server) "не замечал" подмены при обращении к объектам - экземплярам этих классов.
15 июл 02, 18:02    [39118]     Ответить | Цитировать Сообщить модератору
 Re: Совместимость приложения с разными СУБД  [new]
IgorK
Member

Откуда: Краснодар
Сообщений: 452
Может я чего-то, конечно, не понимаю, но смысла использовать разные СУБД не вижу. ИМХО можно сразу определить, на кай работать лучше/быстрее/надежнее... (нужное подчеркнуть). По-моему можно заранее примерно оценить и размер базы, кол-во юзверей и др. параметры и сразу писать под выбраную базу.
18 июл 02, 13:19    [39814]     Ответить | Цитировать Сообщить модератору
 Re: Совместимость приложения с разными СУБД  [new]
Jimmy
Member

Откуда: г.Москва
Сообщений: 3136
2 IgorK
Полностью согласен, если разработка уникальная. Если же коммерческая, то там нужно "быть в широком русле", чтобы бороться за сбыт продукта.
18 июл 02, 13:41    [39824]     Ответить | Цитировать Сообщить модератору
 Re: Совместимость приложения с разными СУБД  [new]
Alexander_Chepack
Member

Откуда: London
Сообщений: 22649
А я в реальной жизни сталкивался с обоими вариантами:

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

Некая относительно маленькая бухг. система (называется Dream) - может работать с Oracle или c SQL Server - так там просто два параллельных кода есть - отдельно для каждой СУБД.

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

Софт-то он только в России бесплатный, да админы не везде за 100$ работают.
18 июл 02, 16:50    [39887]     Ответить | Цитировать Сообщить модератору
 Re: Совместимость приложения с разными СУБД  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
To IgorK
А и не было никакого смысла.
Был закон природы.
"В приложении должны работать самые разные СУБД. "
Возможно, это было принято по религиозным соображениям (старая шутка археологов - если назначение предмета не удается объяснить, он считается "культовым")
18 июл 02, 19:31    [39961]     Ответить | Цитировать Сообщить модератору
 Re: Совместимость приложения с разными СУБД  [new]
Алексей Кузнецов
Member

Откуда:
Сообщений: 2
меня мучают похожие проблемы
я вот подумал о каком пути - разработке собственного SQL :)))))) - промежуточного слоя, который шире, чем стандартный SQL, потому что включает в себя кроме стандартных еще и те функции, которые ПО-РАЗНОМУ реализованы в разных серверах - соответственно, при выполнении он ретранслируется в SQL того сервера, на котором выполняется. геморно конечно...
что скажете, уважаемые?
23 июл 02, 18:32    [40773]     Ответить | Цитировать Сообщить модератору
 Re: Совместимость приложения с разными СУБД  [new]
Alex Alexeev
Member

Откуда:
Сообщений: 174
2Алексей Кузнецов
По сути это сводится к варианту 1, так как тербуется реализация запросов для каждого диалекта
24 июл 02, 09:33    [40840]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить