21
Шаблоны проектирования баз данных Денис Бесков-Доронин ИД «Афиша»

Шаблоны проектирования баз данных — Введение

Embed Size (px)

DESCRIPTION

Слайды к докладу на конференции РИТ-2008

Citation preview

Page 1: Шаблоны проектирования баз данных — Введение

Шаблоны проектирования баз данных

Денис Бесков-ДоронинИД «Афиша»

Page 2: Шаблоны проектирования баз данных — Введение

О чём доклад?О том, чего Нет в учебниках:

• Трансформационные и реактивные системы.• Промышленных методов проектирования БД не

существует.

О том, о чём Не говорят в отрасли:• Остаётся конструирование — для него нужны кубики.• Что могло бы потянуть на кубики?

Каталог шаблонов БД: Структура шаблона, разделы каталога.

Page 3: Шаблоны проектирования баз данных — Введение

Трансформационные системы / 170-е годы

Устройство системы:каскад блоков

• Вход• Выход• Обработчик• Правила обработки

Прообраз — традиционное поточное, конвейерное производство

Page 4: Шаблоны проектирования баз данных — Введение

Трансформационные системы / 2Применение:• Первые программы —

большинство!• До сих пор — ряд классов

ПО успешно использует (компиляторы, архиваторы, обработчики текста)

Устройство парадигмы:• Функции-преобразователи• Данные как объект

обработки• Декомпозиция (иерархия)

Information System =Data Processing System

Page 5: Шаблоны проектирования баз данных — Введение

Трансформационные системы / 3Свойства:• Предсказуемость,

однозначность• Негибкость,

невариативность• Отложенная обратная

связь(«мышление динозавра»)

• GIGO (Garbage In, Garbage Out)

Относительное соответствие эпохе,представлениям людей и назначению систем

Page 6: Шаблоны проектирования баз данных — Введение

Реактивные системы / 180-е годы

Устройство системы:серия взаимодействий

• Агенты• Сообщения

– Стимул– Принятие решения– Реакция

Прообраз — диалог, игра, коммуникация

Page 7: Шаблоны проектирования баз данных — Введение

Реактивные системы / 2Применение:• Игры• Автоматизация

персональной деятельности

• Автоматизация бизнес-процессов

• Публичные веб-системы

Устройство парадигмы:• Наличие интереса• Коммуникация• Выбор• Сеть, свободная среда

агентов

Прообраз — диалог, игра, коммуникация

Page 8: Шаблоны проектирования баз данных — Введение

Реактивные системы / 3Свойства:• Свобода выбора• Вариативность

реакции• Постоянная обратная

связь

Многообразие реального мира, постмодерн

Page 9: Шаблоны проектирования баз данных — Введение

Казус индустрии баз данных• Благодаря историческим особенностям

развития индустрии БД большая часть БД-инженеров осталась в функционально-структурной парадигме

• Хотя в объектной парадигме есть много чего вкусного и стоящего — она умеет справляться с изменениями

Page 10: Шаблоны проектирования баз данных — Введение

Что в меню кафе«Объекты и поклонники»?

• Модульность — было и раньше• Разработка через тестирование — возможно• Рефакторинг, версионирование — возможно• Повторное использование — а как?• Шаблоны проектирования — возможно ли?

Page 11: Шаблоны проектирования баз данных — Введение

Каноническое «проектирование» по учебникам

«Гуру» БД:• Дейт• Конноли• Ульман• Крёнке

Метод «проектирования»:1. Описание структуры

предметной области2. ER-модель3. ER –> Таблицы и связи

(Лог.модель)4. Нормализация5. Лог.модель -> Физ.модель

Page 12: Шаблоны проектирования баз данных — Введение

На деле — псевдо-проектирование1. Модель предметной области ->2. Рутинные преобразования ->3. Хранилище информационной модели предметной

области

Q: А как обеспечивать прочие функциональные требования системы, как создавать предметную область приложения?

A: Не даёт ответа, читайте… Кнута?

Page 13: Шаблоны проектирования баз данных — Введение

Методов нет, что есть?• Если нельзя проектировать, то можно

конструировать

• Есть — тысячи готовых решений —велосипедов, самокатов и инвалидных колясок

Page 14: Шаблоны проектирования баз данных — Введение

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

1. Эталонные модели предметной области2. Шаблона анализа3. SQL-конструкции4. Структуры БД

(собственно шаблоны проектирования)

Page 15: Шаблоны проектирования баз данных — Введение

Эталонные модели Пр Обл / 1Общего пользования:• Люди и организации• Продукция• Заказ продукции• Поставки• Работы• Счета и платежи• Учёт и бюджетирование• Кадры

Отраслевые модели:• Производство• Телекоммуникации• Здравоохранение• Страхование• Финансовые услуги• Профессиональные услуги• Путешествия• Электронная торговля

Page 16: Шаблоны проектирования баз данных — Введение

Эталонные модели Пр Обл / 2

Источники:• Len Silverston, The Data Model Resource Book

Page 17: Шаблоны проектирования баз данных — Введение

Шаблоны анализаМартин Фаулер,Analysis Patterns, 1997:• Подотчётность• Наблюдения и измерения• Опись и учёт• Планирование• Торговля• Производные договора• Торговые пакеты

Page 18: Шаблоны проектирования баз данных — Введение

Типовые SQL-конструкцииВадим Тропашко,Дональд Бурлесон, 2008,SQL Design Patterns:

Page 19: Шаблоны проектирования баз данных — Введение

Каталог шаблонов / 1Структура шаблона:1. Название2. Задача и контекст3. Устройство решения4. Ограничения и последствия5. Вариации6. Примеры7. Источники

Page 20: Шаблоны проектирования баз данных — Введение

Каталог шаблонов / 2Архитектурные образцы• Учётные сущности и Домены• Бизнес-агенты и Явления• Регистры• Сущность-атрибут-значение (EAV)• Хранилище данных (DW)

Приложение• Навигация

– Уровневая– Дескрипторная (тэги)

• Роли и права• Настройки• Системные задачи• Метаданные• Правила и формулы• Поиск

Древовидные структуры• Однородная иерархия

– «Настройки»– «WBS»

• Разнородная иерархия– «Форум»

• Наследование и обобщение– «События и происшествия»

Время-зависимые данные• Аудит изменений

– Общий журнал изменений– Персональные журналы изменений

• Версионность записи– Двойники– Управление версиями

Page 21: Шаблоны проектирования баз данных — Введение

Что дальше?1. «Мастер-класс» с разбором шаблонов2. См. cайт: http://DatabaseDesignPatterns.org3. См. ЖЖ-сообщество database_design

C ya!,Денис Бесков-Доронин