powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Поддержка нескольких СУБД
25 сообщений из 28, страница 1 из 2
Поддержка нескольких СУБД
    #34912040
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим есть модель концептуальная (логическая)
Получить физическую из неё для разных СУБД не проблема. Но это будут только таблицы.
А как быть с ХП и прочими подобными вещами? Как ведется идентичность логики для двух разных СУБД? просто тупо дублируется код с учетом особенностей каждой из СУБД?
Или в таких случаях бизнес логика выносится из сервера БД на сервер приложений или на клиента?
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #34912063
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minvaА как быть с ХП и прочими подобными вещами? Как ведется идентичность логики для двух разных СУБД?Есть три варианта:
1) Из многих СУБД выбрать одну и для нее делать
2) Поддерживать две разные версии СУБД - как разные продукты
3) Вынести логику в сервер приложений (или на клиента)

Все подходы имеют свои недостатки и не маленькие.

Вобщем, независимость приложения от СУБД - это миф.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #34912194
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть четвертый. Разработать свой диалект языка написания запросов/ХП и реализовать транслятор с него на языки используемых БД.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #34913095
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minva

1. просто тупо дублируется код с учетом особенностей каждой из СУБД
2. бизнес логика выносится из сервера БД на сервер приложений
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #34921621
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Независимость должна обеспечиваться в соответствии с каким-то стандартом, например ANSI SQL92(99). Многие СУБД поддерживают ANSI, но только "начальный уровень". Поэтому независимость можно обеспечить в метаданных(и то придется покоптеть, ибо в некоторых СУБД нет триггеров, ХП, доменов, другие типы данных) и простых запросах.
Собственно сам хочу создать модуль-транслятор моего метаязыка в метаданные для конкретной СУБД, остальное писать в виде плагина под конкретную СУБД. Не стоит имхо гнаться за излишней универсальностью, надо четко разграничить то, что можно автоматизировать(метаданные, простые выборки), и то, что лучше делать индивидуально под каждую СУБД.
-----
Проходя мимо разложенных граблей, ты теряешь драгоценный опыт. (с)
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35088936
softwarerЕсть четвертый. Разработать свой диалект языка написания запросов/ХП и реализовать транслятор с него на языки используемых БД.
Хм..мне кажется написание это транслятора выйдет очень дорого.Опять все хотят изобретать велосипед
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35088961
глупый вопрос - а зачем это надо???
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35088964
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оптимист_оракулХм..мне кажется написание это транслятора выйдет очень дорого.
"Кажется" - категория крайне неудачная с точки зрения осмысленного принятия решений. "Очень дорого" - слова, не имеющие смысла (сколько это - 1e3? 1e6? 1e9? 1e12?)

Для большой системы - трудоемкостью в сотни и тысячи человеко-лет - создание такого транслятора будет кардинально дешевле, нежели аккуратный перевод написанного на несколько других диалектов и дальнейшая согласованная поддержка. Для маленькой системы - трудоемкостью, скажем, в один человеко-год - кардинально дороже. Дальше следует искать оптимум.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35089126
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minva<...>А как быть с ХП и прочими подобными вещами?<...>
Либо избегать, либо поддерживать отдельно для каждой поддерживаемой СУБД. Не так ведь много нужно: либо Oracle + MS SQL, либо Firebird + PostgreSQL, их последнюю 1 версию. Остальные умирают или влачат.

minva
Как ведется идентичность логики для двух разных СУБД? просто тупо дублируется код с учетом особенностей каждой из СУБД?
Либо так, либо прокрустово ложе SQL/92, да и то не без учёта специфики.

minva
Или в таких случаях бизнес логика выносится из сервера БД на сервер приложений или на клиента?
Можно, конечно, и так, но есть много противников этого подхода. Производители СУБД не зря старались напихать в них всяческих несвойственных "вкусностей", имеющих весьма посредственное отношение к хранению данных. Вряд ли у Вас получится лучше (дешевле, быстрее, качественнее), чем у них.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35089469
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer пишет:

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

Т.е. нам надо писать ... А я отбрыкивался ...
Есть такой на примете ? Делись давай ...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35089517
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivТ.е. нам надо писать ... А я отбрыкивался ...
Хм. Скажем так, в командах, у которых это будет оправдано, как правило умеют подсчитывать стоимость и искать оптимальные решения :)

MasterZivЕсть такой на примете ?
ABAP какой-нибудь... не интересовался.

MasterZivДелись давай ...
Да без проблем. Заказывайте - напишем
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35089633
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer пишет:

> Да без проблем. Заказывайте - напишем

ловлю на слове.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35093256
Подскажите пожайлуста практическую ценность такого транслятора?
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35093259
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оптимист_оракулПодскажите пожайлуста практическую ценность такого транслятора?

наверное нужно пять в зачотку
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35093321
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minvaА как быть с ХП и прочими подобными вещами? Как ведется идентичность логики для двух разных СУБД? просто тупо дублируется код с учетом особенностей каждой из СУБД?

1. Использовать ORM-средства и Mapping-helper-ы (Hibernate/NHibernate, iBatis, LINQ ...) и отказаться от слоя хп и какой-либо бизнес-логики на стороне СУБД.
2. Выносить в хп только CRUD-слой который может быть 100% перегенерирован для конкретной СУБД на основе модели.

...
Примеры реализаций упоминаемых трансляторов: HQL (Hibernate), LINQ To SQL.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35093398
mq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mq
Гость
Megabyte
Собственно сам хочу создать модуль-транслятор моего метаязыка в метаданные для конкретной СУБД, остальное писать в виде плагина под конкретную СУБД. Не стоит имхо гнаться за излишней универсальностью, надо четко разграничить то, что можно автоматизировать(метаданные, простые выборки), и то, что лучше делать индивидуально под каждую СУБД.


Ключевые слова: yacc, lex и т.д.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35093982
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Роман Дынник
>1. ... отказаться от слоя хп и какой-либо бизнес-логики на стороне СУБД. ...
>2. Выносить в хп только CRUD-слой ...

Делаю аналогично:
- на стороне СУБД нет серьёзной бизнес-логики,
- создаётся выделенный CRUD-слой. Может быть дополнен и ХП ( почти всегда для баз данных типа MSSQL и Oracle и может быть для других серверов данных)

Есть одна тонкость. В своё время softwarer точно подметил - CRUD-слой то придется переписывать заново для каждого сервера данных (цитирую softwarer не дословно). А это не совсем тривиальная задача. Такая операция, как формирование страницы из полной выборки, реализуется по-разному для MSSQL и Oracle. И это видимо справедливо и для других серверов данных.
Вы упоминаете типы трансляторов. Я не знаю HQL, поэтому не могу ничего сказать дельного, но что он даст, если сервер данных не реляционная СУБД. LINQ только в общих чертах - ничем пока не поможет, ибо только для MSSQL.
Так что надо согластится с тезисом softwarer и быть готовым писать (переписать) свой слой CRUD для каждого нового сервера данных.
Для себя задачу несколько упростил. В прототипе клиент посылает серверу приложений не SQL команды, а информацию вида = сериализованные(индекс_класса+индекс_метода+параметры). СП передает в слой CRUD аналогичную информацию.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35094213
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевLINQ только в общих чертах - ничем пока не поможет, ибо только для MSSQL.

1. Можно написать лююого провайдера
2. уже пишут
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35094801
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
softwarer пишет:

> Да без проблем. Заказывайте - напишем

ловлю на слове.
И что характерно, до сих пор ни заказа, ни предоплаты.....
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35099471
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев В своё время softwarer точно подметил - CRUD-слой то придется переписывать заново для каждого сервера данных (цитирую softwarer не дословно). А это не совсем тривиальная задача
Не переписывать, а перегенерировать на основе модели или метаданных - это принципиально, иначе работа по созданию такого CRUD-а не укладывается ни по времени, ни по качеству.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35099544
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир изложил мою мысль столь же качественно, сколь генерит собственные.

Softwarer прежде всего считает, что "генерация CRUD" - в общем случае идиотизм, бессмысленная попытка следовать форме правильного приложения при противоречии ее сути. В некоторых случаях она может быть оправдана техническими особенностями - например, вспоминая классическую легенду про то, что MSSQL неэффективно работает с не-ХП кодом - не более того.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35100208
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> техническими особенностями - например, вспоминая классическую легенду
> про то, что MSSQL неэффективно работает с не-ХП кодом - не более того.
Легенду? Я бы так не сказал :)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35101029
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerSoftwarer прежде всего считает, что "генерация CRUD" - в общем случае идиотизм, бессмысленная попытка следовать форме правильного приложения при противоречии ее сути. В некоторых случаях она может быть оправдана техническими особенностями - например, вспоминая классическую легенду про то, что MSSQL неэффективно работает с не-ХП кодом - не более того.
Ну понеслась старая песня... хп or not хп :)
Во-первых CRUD-хп вносит дополнительный слой абстракции доступа.
Во-вторых - вносит дополнительный слой безопасности в виде доступа через хп, а не прямого доступа к таблицам.
В-третьих - заглянем в профайлер к БД без хп - dba повесится :)
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35101568
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyЛегенду? Я бы так не сказал :)
У меня нет ни достаточной квалификации, ни достаточного желания, чтобы иметь собственное мнение по этому вопросу. Попытка выяснить у сведущих скл-щиков и последующая очная ставка между ними доставила мне массу удовольствия, но если коротко, я выяснил, что "не все так просто", и категорическая постановка "делай ХП или будет плохо" далеко не всегда верна, поэтому и называю ее легендой.

Роман ДынникВо-первых CRUD-хп вносит дополнительный слой абстракции доступа.
Пустота не может ничего внести. "Дополнительный слой абстракции" появится только если вместо "тупого автогенерируемого кода" эти ХП начнут заполняться реальным, живым содержимым, то есть перестанут быть предметом нашего обсуждения.

Роман ДынникВо-вторых - вносит дополнительный слой безопасности в виде доступа через хп,
Некорректный аргумент. По сути, Вы говорите следующее: "плохо писать приложение - хорошо тем, что иначе можно было бы написать еще хуже". Я же - призываю писать хорошо.

Роман ДынникВ-третьих - заглянем в профайлер к БД без хп - dba повесится :)
Роман... в предыдущем аргументе Вы показали нежелание подумать над сказанным мной. В этом аргументе - демонстрируете, что либо не читали написанного мной, либо осознанно проигнорировали это.

При таком отношении собеседника к разговору я в 100% случаев прекращаю беседу. Dixi.
...
Рейтинг: 0 / 0
Поддержка нескольких СУБД
    #35101753
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:
> У меня нет ни достаточной квалификации, ни достаточного желания, чтобы
> иметь собственное мнение по этому вопросу. Попытка выяснить у сведущих
> скл-щиков и последующая очная ставка между ними доставила мне массу
> удовольствия, но если коротко, я выяснил, что "не все так просто", и
> категорическая постановка "делай ХП или будет плохо" далеко не всегда
> верна, поэтому и называю ее легендой.

"Переходя улицу сначала посмотри налево, дойдя до середины дороги -
направо" - "легенда" из той же категории "легенд".
Далеко не всегда верна. Но - справедлива и постоянно встречаются
"легендарные случаи". Может быть - и не легенда это вовсе? :(
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Поддержка нескольких СУБД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]