Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];

Вниз

Совместимость приложения с различными СУБД   Найти похожие ветки 

 
Alex-A   (2002-07-06 07:05) [0]

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

Так все же какой подход лучше?
Или есть еще варианты?
Или где про это почитать?


 
blackman   (2002-07-06 12:36) [1]

А что можно назвать стандартом ?
Если Вы это уже определили, то п.2
Но скорее всего всегда будет п.1
Иначе зачем выбираем СУБД ?


 
Delirium   (2002-07-06 12:40) [2]

Полагаю, наиболее эффективен первый вариант, тогда совместимость с различными СУБД в конечном счёте сведётся к экспорту/импорту информации между серверами, а для этого существуют отлаженные и общепринятые механизмы (как правило на уровне самих серверов БД). А целесообразность написания сервера приложений, универсального по отношению к нескольким СУБД достаточно сомнительна, так как всё универсальное таит в себе множество недостатков - меньшая производительность, меньшая гибкость, громоздкость кода, ресурсоёмкость и т.п. Короче, лучше сразу ориентироваться на большую СУБД (Oracle, MSSQL), тем самым исключая саму необходимость в будущем переходе на другую систему.


 
kaif   (2002-07-06 15:43) [3]

Присоединяюсь к Delirium © (06.07.02 12:40).
Лучше иметь и легче поддерживать даже 3 версии системы для разных СУБД, чем пытаться сделать нечто универсальное. Боюсь, что второй вариант просто неосуществим без того, чтобы не потерять 90% возможностей самих СУБД, которые и стоят-то немало именно в силу этих самых возможностей. Вариант 1 экономически более выгоден во всех отношениях.


 
Polevi   (2002-07-07 11:50) [4]

-Использовать только стандартные SQL - запросы при обращении к СУБД
Ничего не выйдет из этого
Например для получения ID только что добавленой записи пр работе с MS SQL я использую SELECT @@IDENTITY - другого способа не вижу а в этом нет ничего "стандартного"


 
TSV   (2002-07-08 11:23) [5]

> All
Присоединяюсь к мнению в пользу первого пункта...

> Polevi © (07.07.02 11:50)
Значения ключей, генерируемые на сервере, не всегда удобны, особенно в случае трехзвенок.
В MSSQL можно реализовать ручками свою систему генераторов (аналог IB)...


 
Alex-A   (2002-07-15 08:16) [6]

>blackman
Я имел ввиду стандарт определенный ANSI

>All
Всем спасибо! Я в общем-то тоже более склоняюсь к первому варианту, но в этом случае резко возрастают затраты на разработку и сопровождение.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
1-13638
Matrics
2002-07-22 17:13
2002.08.05
Толи я туплю, толи Delphi…


1-13663
AlekseyK
2002-07-23 15:36
2002.08.05
Как получить только имя файла у OpenDialog


4-13864
ЮРИЙ_К
2002-03-29 10:45
2002.08.05
Передвигать курсор программно.


3-13548
Wizzard
2002-07-15 12:49
2002.08.05
Как зарегистрировать DAO в системе? У меня программа...


4-13859
rentv
2002-05-30 18:24
2002.08.05
свой плагин для Одиги(Odigo)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский