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

Откуда:
Сообщений: 21
У меня такая перспектива интересная нарисовалась:
наше ПО работает под MS, но в будущем возможно должно быть настраиваемым на уже существующую на предприятии СУБД, как минимум на
Oracle. Возможно ли это реализовать, и во что это обойдётся папаше Дорсету?
Причём это д.б. не эмулятор файл-серверной архитектуры, а полноценный клиент-сервер хотя бы с минимальным джентльменским набором (ХП,Триггеры).
Сам я ковыряюсь на MS, начинал ещё с 4.2а, хотя плотно - на 7-ке.
Про Oracle представления довольно смутные, хотя не нулевые.
Просветите меня по возможности.
29 апр 04, 10:39    [656324]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Scott Tiger
Member

Откуда: вмваре
Сообщений: 6905
Папаше Дорсету это обойдётся в переписывание бОльшей части всей системы. Ну это если есть желание получить эффективно работающий продукт. Некоторые (пальцем показывать не буду) вот изначально пишут так, чтобы работало на большинстве СУБД без изменения кода - испоользуют только самые элементарные типы данных, не используют вообще хранимый код, ну и т.п. Оно работает везде, но везде неэффективно.
29 апр 04, 10:50    [656362]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Pi-Men
Member

Откуда:
Сообщений: 21
Меня интересует как раз эффективное использование ХП и пр.
Насколько большой части - это можно как-то оценить?
Там тотальная несовместимость в синтаксисе T-SQL?
Или в логике локирования, диспетчеризации?
Или во всём?
29 апр 04, 10:56    [656376]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Там почти полная несовместимость. 80% переписывать полностью. Учитывая настройку оптимизации - все 100%. Плюс там package, вывод селектов из ХП не так просто, как в MS. Ну и еще всякой бяки.
В общем, пишите с нуля, опираясь на то, что есть :)

-- Tygra's --
29 апр 04, 11:18    [656469]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Scott Tiger
Member

Откуда: вмваре
Сообщений: 6905
Во всём.
29 апр 04, 11:21    [656481]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Pi-Men
Member

Откуда:
Сообщений: 21
Да, весело...
Тогда попробую сформулировать вопрос иначе:
существует ли некий уровень совместимости, для поддержания которого
нужно переделывать не 80%, а в пределах допустим 30%?
Например, я не буду использовать селекты из ХП.
Но скатываться на CRecordset поверх ODBC не хотелось бы, как я отметил изначально...
Давайте на таком примере:
если я хочу перетащить проект целиком с Delphi (C++ Builder) на MS VB,
то его просто надо делать заново, т.к. основная часть формируется из визуальных компонентов.
Но если мне надо сервис, работающий с БД, с паскаля на С переписать,
то это вполне реально - SQL тот же, а синтаксис довольно легко переписывается.
Аналогии не м.б.?
29 апр 04, 11:34    [656531]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Не, так не получится.

автор
Например, я не буду использовать селекты из ХП


А как ты данные вытягивать собираешься? И как сейчас?

-- Tygra's --
29 апр 04, 11:46    [656576]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Pi-Men
Member

Откуда:
Сообщений: 21
Я имел в виду, что не хотелось бы использовать различные варианты рекордсетов для организации транзакций и изменений на уровне одной записи.
А для селектов их и использую, т.е. запрос типа Select, потом Fetch через драйвер. Для особо сложных расчётов - спец. таблицы заполняются, из которых потом всё равно селект. Надо учитывать, что речь идёт не об автоматизации транснациональных банков - основная часть нашего ПО достаточно отвязана от БД. Но в то же время кол-во раб. мест и быстродействие обращений к БД очень актуальны, и уже есть печальный опыт тех, кто легко сделал переносимость между MS, Oracle, InterBase.
29 апр 04, 11:59    [656633]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Я имел в виду - селекты ты сейчас с клиента делаешь или из ХП?

-- Tygra's --
29 апр 04, 12:02    [656645]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Pi-Men
Member

Откуда:
Сообщений: 21
С клиента.
29 апр 04, 12:15    [656697]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Нда. Я даже и не представляю, как это. Как вместо ХП в 100 строк написать селект да еще на клиенте.

Ну тогда эта проблема отпадает, остальные остаются :)

-- Tygra's --
29 апр 04, 12:23    [656728]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Pi-Men
Member

Откуда:
Сообщений: 21
Можно - работает :-))
От сложности селектов зависит, и потом я учитывал, что задача переносимости может вылезти.
Спасибо за просвещение, хотя оно и не очень радостное.
Инфу по моему вопросу где-нибудь ещё можно нарыть?
Я понимаю, что здесь никому не интересно трактат писать по технологии перехода с одной БД на другую...
29 апр 04, 12:45    [656805]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
EvgErmak
Member

Откуда:
Сообщений: 650
Кис Флагман живет.
www.flagman.com.ru

Cистема разработана на Centura Team Developer, и первоначально
работала Centura SQL Base, сейчас на : MS SQL и ORACLE,

Сделано интересно, но скорость хождения через ODBC оставляет желать лучшего.
29 апр 04, 15:04    [657378]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Зл0й
Member

Откуда: Северная Калифорния
Сообщений: 686
Все зависит от того как приложение написано. Если в него жестко зашита зависимость от определенной СУБД, то тогда проще приложение заново написать. Особенно если значительная часть бизнес-логики в базе (ХП) и логика собственно приложения более-менее тривиальна.

Я всвое время работал над системой которая жила под Информиксом, Ораклом, DB2. И все пучком. Просто логика была сконцентрирована в middle tier, и вся логика сильно зависимая от БД была выделена в отдельный модуль. Картинка такая:

(1) Интерфейс -> (2) Логика приложения независимая от БД -> (3) API - интерфейс модуля логики зависимой от БД -> (4) модуль зависимый от БД -> (5) собственно БД

Соответственно версии продукта под разные СУБД отличались друг от друга (4) и (5). С интерфейсом (3) пришлось основательно помучаться. Зато система одинаково хорошо работает с разными СУБД, так как с каждой СУБД она общается с помощью кода специально оптимизированного под нее.
29 апр 04, 21:11    [658294]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
А если _все_ обращения к базе сделать _только_ через хранимые процедуры в ODBC - тогда гарантированно потребуется переписать только хранимые процедуры без переписывания какой-бы ни было клиентской части.
29 апр 04, 22:22    [658329]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Pi-Men
Member

Откуда:
Сообщений: 21
2 ЗлОй:

И зависимый от БД модуль (4) для каждой из перечисленных БД переписывался
на 100% ?

По поводу какую часть переписывать (клиентскую, серверную):

Мне кажется, что в контексте этой проблемы можно как раз делить код между
этими частями т.о. чтобы добиться лучшей переносимости, определив ограничения, конечно - быстродействие в основном.
30 апр 04, 10:20    [658787]     Ответить | Цитировать Сообщить модератору
 Re: А может ли ПО сразу под MS и Oracle жить?  [new]
Зл0й
Member

Откуда: Северная Калифорния
Сообщений: 686
Модуль (4) переписывается на 100%. Печально, но факт. Теоретически можно разделить его на переносимую часть и непереносимую часть (специфичную к СУБД). Обычно это неоправдвнно, так как из-за существенных различий в семантике обработке транзакций непереносимая часть получается процентов 70-80. А городить огород с тестированием переносимости из-за 20% кода неоправданно.

Самое главное - разработать грамотный API модуля который в базу лезет. И сконцентрировать бизнес-логику с левой стороны этого интерфейса, а детали разработки связанные со спецификой СУБД - с правой стороны. Сказать это легко, а вот исполнить - сложнее. В случае простейшего приложения за API вполне сойдет ODBC/JDBC а за модуль (4) хранимые процедуры. В случае нетривиального приложения это не сработает - вылезут различия в реализации ODBC/JDBC и и реализации возврата данных из ХП.
30 апр 04, 22:33    [660666]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить