Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   преобразование запрсов и результатов MySql <-> MsSQL на лету (http://forum.oszone.net/showthread.php?t=116204)

ex2 04-09-2008 10:31 890658

преобразование запрсов и результатов MySql <-> MsSQL на лету
 
Есть клиентский софт, заточен под MySql сервер. Есть желание пользовать вместо последнего MsSQL сервер, но клиентский софт переписывать разработчик не хочет (при замене сервера лицензия на софт остается). При этом напрашивается некий аналог прокси, который принимает запрос клиентского софта к MySql серверу, перекидывал (возможно с правкой) запрос на MsSQL сервер, получал от него данные и отдавал данные в формате выдачи MySql клиентскому софту. При этом делал это _быстро_.
Возможно существуют подобные реализации, либо такая операция делается более культурно?

vadimiron 04-09-2008 12:41 890743

Цитата:

Цитата ex2
такая операция делается более культурно »

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

Busla 04-09-2008 13:55 890798

Цитата:

Цитата vadimiron
Такое делается изначально с помощью адаптеров, которые абстрагируются от конкретной базы данных »

подобный подход превращает базу данных в некое абстрактное хранилище массивов.
Цитата:

Цитата vadimiron
запросы к базе данных обычно не так много строк кода занимают »

в контексте MySQL - скорее всего вся бизнес логика реализована в клиенте.

ex2 04-09-2008 15:24 890884

Часть б. логики остается на сервере (включающем сервер приложений, зависящий от сервера MySql ), с которым удаленно работает упоминавшееся выше клиентское ПО. Его разработчик, конечно же, выкатил энную сумму за перевод всей системы на MsSQL и win, что несколько грустно )
Хотелось сохранить старую функциональность (сервер на базе linux) и "заменить только SQL сервер" использовав купленый предприятием. Соответственно, ищу решение под *nix но чувствую - не найду (

vadimiron 04-09-2008 16:26 890940

Цитата:

Цитата ex2
Хотелось сохранить старую функциональность (сервер на базе linux) и "заменить только SQL сервер" »

Подсоединяться к SQL серверу с Линкса - это не проблема, надо кое что настроить - но не сложно.

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

Amin 01-02-2009 00:04 1025818

Цитата:

Подсоединяться к SQL серверу с Линкса - это не проблема, надо кое что настроить - но не сложно.
Хм, даже интересно стало. Я в свое время пытался с линуксовой машины подсоединиться к M$SQL 2005, и так и не смог заставить это работать. Практически везде для этого рекомендуют использовать пакет FreeTDS, но он давно не обновлялся и самая старшая версия M$SQL, для которой заявлена работоспособность - 2000. Если не затруднит, было бы интересно услышать толковые мысли насчет работы из *nix-систем с MSSQL 2005 / 2008.

Цитата:

Но вам же нужно также в коде всё переписать, чтобы мочь работать с другой базой данных. Если будете платить кому то за переделывание кода, то требуйте тогда, чтобы кода независимо от конкретной базы данных писался - соответствующий классов и наработок в интернете полно и не требуют долго переобучения
1С уже показала нам пример такого подхода. База из тысячи таблиц, полный игнор индексов, соединения по *текстовым ключам* + кривой транслятор для PostgreSQL в 1С 8.1. В результате - четыре заявленных хранилища (файловое, M$SQL, PgSQL, DB2) - и поддержка каждого не без кривизны.

ИМХО, разумнее выбрать одну базу, исходя из требований, и сделать работу с оной действительно по уму, а не как у 1С.
Кстати, в современных условиях цена начинает иметь значение. Помните, что при больших базах (> 4 Гб) и большом числе соединений (MSSQL еще и клиентские лицензии содержит) MSSQL - это ни разу не дешево.

А если MySQL не тянет нагрузку - сперва попробуйте заняться оптимизацией запросов. В них - суть зла.
Смена БД - это уж совсем крайняя мера, чатсо заканчивающаяся созданием новго проекта почти с нуля.
Если уж будете менять - посмотри в сторону PostgreSQL. Это того стоит.


Время: 09:46.

Время: 09:46.
© OSzone.net 2001-