powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реализация бизнес логики в БД
17 сообщений из 42, страница 2 из 2
Реализация бизнес логики в БД
    #34960846
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
sqllex wrote:
> Т.е. аргументов у вас нет? :)

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

Сойдёт за аргумент?А что - хранимую процедуру, которая реализует бизнес логику - вам прям с сервером поставляют?
Или, всетаки, Вася-програмист-доморощенный-гений их пишет (как и клиентскую программу)?
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34961314
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bely wrote:
> А что - хранимую процедуру, которая реализует бизнес логику - вам прям с
> сервером поставляют?
Нет.
> Или, всетаки, Вася-програмист-доморощенный-гений их пишет (как и
> клиентскую программу)?
Да.

И я предпочитаю иметь только одно "слабое звено" в виде ХП вместо двух:
ХМ и клиента.
Чем проще клиент - тем меньше шансов поймать глюк.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34961966
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr. GarryНе устраивает тем, что проверка на клиенте. Т.е. в обход клиента с базой при таком подходе можно сделать что-нибудь нехорошее (например сохранить выписку без назначения препаратов =) ).
А кто кроме Вас это будет делать, или Вы за себя не отвечаете?
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34962013
mr. Garry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafm mr. GarryНе устраивает тем, что проверка на клиенте. Т.е. в обход клиента с базой при таком подходе можно сделать что-нибудь нехорошее (например сохранить выписку без назначения препаратов =) ).
А кто кроме Вас это будет делать, или Вы за себя не отвечаете?Злоумышленнег.
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34962197
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyИ я предпочитаю иметь только одно "слабое звено" в виде ХП вместо двух:
ХМ и клиента.
Чем проще клиент - тем меньше шансов поймать глюк.Вы путаете - в данном случае слабое звено - это програмист, а не клиентское ПО и ХП.

Здесь еще действует другое правило - чем тоньше клиент - тем больше шансов поймать глюк в другом месте :)
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34962213
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr. Garry iscrafm mr. GarryНе устраивает тем, что проверка на клиенте. Т.е. в обход клиента с базой при таком подходе можно сделать что-нибудь нехорошее (например сохранить выписку без назначения препаратов =) ).
А кто кроме Вас это будет делать, или Вы за себя не отвечаете?Злоумышленнег.
Он Ваш "тригер" отключит и сделает то, что нужно.
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34962278
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bely wrote:
> Здесь еще действует другое правило - чем тоньше клиент - тем больше
> шансов поймать глюк в другом месте :)
Угу. Давайте все глюки ловить на клиенте.
Дайошь! Толстово клиента!
Желательно - на самописном интерпретаторе.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34962346
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
Он Ваш "тригер" отключит и сделает то, что нужно.

Надо понимать, что бизнес правила, в отличии от декларативных ограничений целостности, не гарантируют соответствие всех данных установленным требованиям. Т.е. бизнес правило применяется только в рамках определённого класса транзакций при определённых условиях, которые необязательно зависят от БД (например правило может применяться только ночью), тогда как декларативные ограничения целостности применяются всегда и ко всем данным. Короче, приложения БД должны быть готовы к тому, что бизнес правило может быть отменено или применяться не всегда.
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34962690
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyСойдёт за аргумент?
С рассуждениями согласен, но как аргумент не воспринимаю.
Вы искуственно создали (описали) условия, в которых выделили "слабое звено". Я могу точно так же сделать, построив цепочку от обратного и прийду к противоположным выводам.
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34962698
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
у мну никогда в текущем коннекте не висит открытая транзакция (разве что
- в результате ошибки). С клиента транзакция не открывается, не
подтверждается и не откатывается.
Транзакция может быть открыта сугубо ХП, внутри ХП и для ХП.
Перед выходом из ХП "верхнего уровня" (которая, как правило и открывает
транзакцию) транзакция должна быть или подтверждена (если всё ок) или
откачена (если всё пльохо).


Вы используете одну из моделей управления транзакциями.
Но это не значит, что остальные модели неправильные. Об этом четко написано в БОЛ: они равнозначны (с точки зрения свойств: atomicity, consistency, isolation, durability) и имеют свои сферы использования.
В нашем случае нет разницы, какой вид управления транзакциями использовать.
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34962702
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr. Garry
Авторизация - встроенная в SQL сервер. Какие действия с какими объектами - долго писать. Сейчас все действия реализованы через ХП.

Вот. В принципе, этого достаточно. Если пользователи у вас имеют права на ХП (реализующие бизнес-логику в части изменений данных), но не имеют прав на непосредственный доступ к таблицам (и при этом не имеют доступа к таблицам напрямую через тот же QA или MS), то разницы нет, где делать проверку.
Если же доступ (см. в скобках выше) есть, то вам вынесение логики в ХП не поможет в принципе.
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34963019
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab iscrafm
Он Ваш "тригер" отключит и сделает то, что нужно.

Надо понимать, что бизнес правила, в отличии от декларативных ограничений целостности, не гарантируют соответствие всех данных установленным требованиям. Т.е. бизнес правило применяется только в рамках определённого класса транзакций при определённых условиях, которые необязательно зависят от БД (например правило может применяться только ночью), тогда как декларативные ограничения целостности применяются всегда и ко всем данным. Короче, приложения БД должны быть готовы к тому, что бизнес правило может быть отменено или применяться не всегда.
это понятно. А в связи с чем это сказано, т.е. в продолжение или в противовес чему?
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34964318
mr. Garry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sqllex mr. Garry
Авторизация - встроенная в SQL сервер. Какие действия с какими объектами - долго писать. Сейчас все действия реализованы через ХП.

Вот. В принципе, этого достаточно. Если пользователи у вас имеют права на ХП (реализующие бизнес-логику в части изменений данных), но не имеют прав на непосредственный доступ к таблицам (и при этом не имеют доступа к таблицам напрямую через тот же QA или MS), то разницы нет, где делать проверку.
Если же доступ (см. в скобках выше) есть, то вам вынесение логики в ХП не поможет в принципе.
Повторюсь:
mrGarry1. в первую таблицу вносится 1 строка - Id_выписки (primary key), Id_пациента, Ходе_лечения, Врач, ...);
2. во вторую таблицу пишется список назначенных препаратов - Id_выписки (foreign key), Id_препарата, Дозировка, ...
В данном случае это одна операция создания объекта - выписки (а не несколько операций создания выписки и нескольких назначений). И одной хранимкой тут обойтись не получается, если, конечно, не передавать все данные в виде XML и не парсить их внутри ХП.
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34964325
mr. Garry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmОн Ваш "тригер" отключит и сделает то, что нужно.
А как можно отключить триггер из-под ограниченной учетной записи???
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34964341
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr. Garry
Повторюсь:

Не надо. Почитайте лучше о транзакциях в БОЛ.
И, в частности,
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/052c6ef6-8854-4d26-b6b5-0d4ccf6d1018.htm

Запускайте хоть 10 ХП в одной транзакции.
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34965885
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr. GarryВ данном случае это одна операция создания объекта - выписки (а не несколько операций создания выписки и нескольких назначений). И одной хранимкой тут обойтись не получается, если, конечно, не передавать все данные в виде XML и не парсить их внутри ХП.

Можно и в виде XML можно и ещё как нибудь. ИМХО, в зрелых СУБД оформить системную транзакцию одной процедурой вполне реально. Супротив системных транзакций бизнес транзакции могут длиться очень долго, управление в них может многократно переходить от сервера к клиенту и пользователю. Бизнес транзакции обычно не могут быть выполнены одним вызовом ХП.
...
Рейтинг: 0 / 0
Реализация бизнес логики в БД
    #34965932
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabМожно и в виде XML
Только в случае небольшой нагрузки на сервер. Например, когда клиентов не очень много.
Тогда потери производительности на парсинг XML будут не так заметны.
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реализация бизнес логики в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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