Слайды и текст доклада
Pic.1
Разработка приложений БД Графеева Н. Г. 2017
Pic.2
Основные принципы успех или неудача разработки приложения базы данных определяется тем, как оно использует базу данных; в команде разработчиков должно быть ядро "программистов базы данных", …
Pic.3
Для успешного создания приложения необходимо понимать архитектуру конкретной СУБД, ее компоненты и алгоритмы работы; особенности управления одновременным доступом в конкретной СУБД; глубокое знание …
Pic.4
Особенности управления одновременным доступом Незнание особенностей приведет к тому, что: будет нарушена целостность данных; приложение будет работать медленнее, чем предусмотрено, даже при небольшом …
Pic.5
Пример. Реализация блокировок Типичный код, использованный разработчиками для резервирования неких ресурсов: create table resources ( resource_name varchar2(25) primary key, . . . ); create table …
Pic.6
В чем ошибка? select count(*) from schedules where resource_name = :room_name and (start_time between :new_start_time and :new_end_time or end_time between :new_start_time and :new_end_time) …. Если …
Pic.7
Как правильно (ORACLE) select * from resources where resource_name = :room_name FOR UPDATE; select count(*) from schedules where resource_name = :room_name and (start_time between :new_start_time and …
Pic.8
Зависят ли простейшие запросы от СУБД? Требуется перенести с Transact SQL на PL/SQL следующий код: declare l_some_variable varchar2(25); begin if ( some_condition ) then l_some_variable := f( . . . …
Pic.9
Проблема - значение NULL Разные СУБД по разному обрабатывают значение NULL. Sybase, SQL Server допускают сравнение (=) со значением NULL, а ORACLE – нет.
Pic.10
Пример (ORACLE) select * from dual; Выбирается одна запись ------------------------------------------------------ select * from dual where null=null; Нет выбранных записей …
Pic.11
Как правильно переписать запрос? select * from T where x = l_some_variable (SQL Server) select * from t where nvl(x,-1) = nvl(l_some_variable,-1) (ORACLE) И еще желательно построить индекс: create …
Pic.12
Стандарты SQL Если все СУБД соответствуют стандарту SQL92, они должны быть одинаковы… Что на самом деле стоит за этими стандартами? Можно ли на них расcчитывать при переносе запросов на разные СУБД? …
Pic.13
Стандарт SQL92 (4 уровня) Начальный уровень Переходный Промежуточный Полный
Pic.14
Начальный уровень Именно этому уровню соответствует большинство промышленных СУБД. Этот уровень является незначительным развитием предыдущего стандарта, SQL89. Ни одна СУБД не сертифицирована по …
Pic.15
Переходный С точки зрения поддерживаемых возможностей это что-то среднее между начальным и промежуточным уровнем. Переходный уровень требует поддержки соответствующего синтаксиса внешнего и …
Pic.16
Промежуточный Этот уровень добавляет много возможностей, в том числе: динамический SQL; каскадное удаление для обеспечения целостности ссылок; типы данных DATE и TIME; символьные строки переменной …
Pic.17
Полный Добавляет следующие возможности: управление подключением (CONNECT); тип данных BIT для битовых строк; отложенная проверка ограничений целостности; производные таблицы в конструкции FROM; …
Pic.18
Встроенные механизмы СУБД Нужно хорошо понимать, что именно предлагает конкретная СУБД, и полностью использовать ее возможности. Не надо придумывать собственные механизмы репликаций, систем обмена …
Pic.19
Как ограничить количество подключений пользователя к системе? Разработчики, не читающие документацию умудряются придумывать очень изощренные решения этой проблемы. А между тем (в ORACLE)….
Pic.20
Пример (как ограничить количество подключений в ORACLE) create profile one_session limit sessions_per_user 1; alter user scott profile one_session; alter system set resource_limit=true;
Pic.21
Производительность приложения О производительности необходимо думать уже на уровне проекта, а затем непрерывно проверять в процессе разработки. Это нельзя откладывать на потом. Нельзя поставлять …
Pic.22
Взаимоотношения администраторов БД и разработчиков В основе большинства успешно работающих информационных систем лежит плодотворное взаимодействие между АБД и разработчиками приложений.
Pic.23
Разграничение обязанностей Разработчик не обязан знать, как устанавливать и конфигурировать программное обеспечение. Этим должен заниматься АБД и, возможно, системный администратор. Основная …
Pic.24
Разработчики могут не знать, как запустить СУБД, но должны уметь работать в ней. АБД связывается с разработчиком, заметив, что запросы потребляют слишком много ресурсов, а разработчик обращается к …
Pic.25
Резюме Для создания хороших приложений необходимо: понимать архитектуру СУБД; понимать как выполняется управление одновременным доступом; не воспринимать СУБД как черный ящик, устройство которого …
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!