216
Функции
к
ак
насчет
Бизнес
-
логики
?
Если вы сможете убедить разработчиков приложений использовать функ-
ции для обмена данными с базой, производительность значительно вырас-
тет. Сам факт устранения множественных обращений к серверу может легко
улучшить производительность приложения в десятки или даже сотни раз,
если измерять время отклика приложения, а не время отклика базы данных.
Одним из самых серьезных препятствий на пути к успеху является кон-
цепция
бизнес-логики
. Одно из определений бизнес-логики (данное на сайте
Investopedia.com) звучит так:
Бизнес-логика
–
это
настраиваемые
правила
или
алгоритмы,
которые
управляют
обменом
информацией
между
базой
данных
и
пользователь-
ским
интерфейсом.
Бизнес-логика
–
это
та
часть
компьютерной
про-
граммы,
которая
содержит
информацию
(в
виде
бизнес-правил),
опреде-
ляющую
или
ограничивающую
работу
бизнеса.
Бизнес-логика часто рассматривается как отдельный уровень приложения,
и когда мы помещаем «слишком много логики» в функции базы данных, это
расстраивает разработчиков приложений.
Мы потратили много времени, пытаясь найти общий язык как с бизнесом,
так и с разработчиками приложений. Результат этих обсуждений можно ре-
зюмировать следующим образом:
нам нужна часть бизнес-логики для выполнения соединений и вы-
борок;
преобразования полученных данных не обязательно должны выпол-
няться на стороне базы данных.
На практике это означает, что решения о том, что переносить в базу дан-
ных, а что должно оставаться в приложении, надо принимать на основании
того, улучшит ли такой перенос производительность (облегчит ли соедине-
ния или позволит использовать индексы). Если да, то логика перемещается
в функцию и считается «логикой базы данных»; в противном случае данные
возвращаются в приложение для дальнейшей обработки бизнес-логикой.
Например, для приложения бронирования авиабилетов можно создать
функцию получения доступных поездок, то есть потенциальных бронирова-
ний. Параметры этой функции включают пункты отправления и назначения
и даты начала и завершения поездки. Чтобы иметь возможность эффективно
извлекать все возможные поездки, функция должна знать, как соединить
таблицы
airport
и
flight
и как рассчитать продолжительность полета. Вся эта
информация принадлежит логике базы данных.
Однако мы не хотим, чтобы функция принимала окончательное решение
о том, какую поездку выбрать. Окончательные критерии отбора могут ме-
няться и обрабатываются приложением; они принадлежат бизнес-логике.
Последовательное применение этого критерия можно быстро включить
в обычный цикл разработки, и это поощряет разрабатывать приложения
правильно с самого начала.
Функции в системах OLAP
Do'stlaringiz bilan baham: |