Волков не бояться! Бизнес логика и РСУБД

28
Волков - не бояться! О пользе хранимых процедур

Upload: sergey-melekhin

Post on 26-Jun-2015

251 views

Category:

Technology


1 download

DESCRIPTION

Доклад Сергея Мелехина на второй владивостокской конференции разработчиков VLDC2. Посвящён вопросу реализации бизнес-логики приложений с использованием хранимых процедур современных РСУБД.

TRANSCRIPT

Page 1: Волков не бояться! Бизнес логика и РСУБД

Волков - не бояться!О пользе хранимых процедур

Page 2: Волков не бояться! Бизнес логика и РСУБД

Привет!

Page 3: Волков не бояться! Бизнес логика и РСУБД

Не все РСУБД одинаково полезны

Page 4: Волков не бояться! Бизнес логика и РСУБД

Не так страшен волк

Page 5: Волков не бояться! Бизнес логика и РСУБД

Роль БД в архитектуре ИС

СУБД

Программа

СУБД

Программа

ХП0 1

SQL SQL

SQLSQLSQL

Page 6: Волков не бояться! Бизнес логика и РСУБД

Минусы подхода

Page 7: Волков не бояться! Бизнес логика и РСУБД

Размазывание бизнес-логики

Page 8: Волков не бояться! Бизнес логика и РСУБД

Скудность языка СУБДclimov ax, csmov ds, axmov ss, axmov sp, 7c00hsti mov ax,0b800hmov es,ax mov di,200mov ah,2mov bx,MessStr

msg_print:mov al,[cs:bx]mov [es:di],axinc bxadd di,2cmp bx,MessEndjnz msg_print loo:jmp loo MessStr equ $Message db 'Hello, World!'MessEnd equ $

Page 9: Волков не бояться! Бизнес логика и РСУБД

Непереносимость ХП

Page 10: Волков не бояться! Бизнес логика и РСУБД

Специалист по СУБД - редкий зверь

Page 11: Волков не бояться! Бизнес логика и РСУБД

Ништяки

Page 12: Волков не бояться! Бизнес логика и РСУБД

Скорость

Page 13: Волков не бояться! Бизнес логика и РСУБД

Сокрытие структуры данных

Page 14: Волков не бояться! Бизнес логика и РСУБД

Гибкое управление правами доступа

Page 15: Волков не бояться! Бизнес логика и РСУБД

Меньшая вероятность SQL injection

Page 16: Волков не бояться! Бизнес логика и РСУБД

Повторное использование SQL

Page 17: Волков не бояться! Бизнес логика и РСУБД

Простая отладка SQL

Page 18: Волков не бояться! Бизнес логика и РСУБД

Проверка при компиляции

Page 19: Волков не бояться! Бизнес логика и РСУБД

Профилирование

Page 20: Волков не бояться! Бизнес логика и РСУБД

ТрассировкаSELECT * FROM emp, dept WHERE emp.deptno = dept.deptno;

call count cpu elapsed disk query current rows---- ------- ------- --------- -------- -------- ------- ------Parse 1 0.16 0.29 3 13 0 0Execute 1 0.00 0.00 0 0 0 0Fetch 1 0.03 0.26 2 2 4 14 Misses in library cache during parse: 1 Parsing user id: (8) SCOTT

Rows Execution Plan------- --------------------------------------------------- 14 MERGE JOIN 4 SORT JOIN 4 TABLE ACCESS (FULL) OF 'DEPT'14 SORT JOIN14 TABLE ACCESS (FULL) OF 'EMP'

Page 21: Волков не бояться! Бизнес логика и РСУБД

Контроль зависимостей

Page 22: Волков не бояться! Бизнес логика и РСУБД

● Важна скорость обработки данных

Когда писать бизнес-логику в БД?

Page 23: Волков не бояться! Бизнес логика и РСУБД

● Важна целостность и непротиворечивость

Когда писать бизнес-логику в БД?

Page 24: Волков не бояться! Бизнес логика и РСУБД

● Данные имеют сложную структуру

Когда писать бизнес-логику в БД?

Page 25: Волков не бояться! Бизнес логика и РСУБД

Когда выносить код наружу?

● Работа с внешними данными

Page 26: Волков не бояться! Бизнес логика и РСУБД

Когда выносить код наружу?

● Сложные алгоритмы

Page 27: Волков не бояться! Бизнес логика и РСУБД

Когда выносить код наружу?

● Highload

Page 28: Волков не бояться! Бизнес логика и РСУБД

?