Upload
denis-beskov
View
4.589
Download
6
Embed Size (px)
DESCRIPTION
Слайды к докладу на конференции РИТ-2008
Citation preview
Шаблоны проектирования баз данных
Денис Бесков-ДоронинИД «Афиша»
О чём доклад?О том, чего Нет в учебниках:
• Трансформационные и реактивные системы.• Промышленных методов проектирования БД не
существует.
О том, о чём Не говорят в отрасли:• Остаётся конструирование — для него нужны кубики.• Что могло бы потянуть на кубики?
Каталог шаблонов БД: Структура шаблона, разделы каталога.
Трансформационные системы / 170-е годы
Устройство системы:каскад блоков
• Вход• Выход• Обработчик• Правила обработки
Прообраз — традиционное поточное, конвейерное производство
Трансформационные системы / 2Применение:• Первые программы —
большинство!• До сих пор — ряд классов
ПО успешно использует (компиляторы, архиваторы, обработчики текста)
Устройство парадигмы:• Функции-преобразователи• Данные как объект
обработки• Декомпозиция (иерархия)
Information System =Data Processing System
Трансформационные системы / 3Свойства:• Предсказуемость,
однозначность• Негибкость,
невариативность• Отложенная обратная
связь(«мышление динозавра»)
• GIGO (Garbage In, Garbage Out)
Относительное соответствие эпохе,представлениям людей и назначению систем
Реактивные системы / 180-е годы
Устройство системы:серия взаимодействий
• Агенты• Сообщения
– Стимул– Принятие решения– Реакция
Прообраз — диалог, игра, коммуникация
Реактивные системы / 2Применение:• Игры• Автоматизация
персональной деятельности
• Автоматизация бизнес-процессов
• Публичные веб-системы
Устройство парадигмы:• Наличие интереса• Коммуникация• Выбор• Сеть, свободная среда
агентов
Прообраз — диалог, игра, коммуникация
Реактивные системы / 3Свойства:• Свобода выбора• Вариативность
реакции• Постоянная обратная
связь
Многообразие реального мира, постмодерн
Казус индустрии баз данных• Благодаря историческим особенностям
развития индустрии БД большая часть БД-инженеров осталась в функционально-структурной парадигме
• Хотя в объектной парадигме есть много чего вкусного и стоящего — она умеет справляться с изменениями
Что в меню кафе«Объекты и поклонники»?
• Модульность — было и раньше• Разработка через тестирование — возможно• Рефакторинг, версионирование — возможно• Повторное использование — а как?• Шаблоны проектирования — возможно ли?
Каноническое «проектирование» по учебникам
«Гуру» БД:• Дейт• Конноли• Ульман• Крёнке
Метод «проектирования»:1. Описание структуры
предметной области2. ER-модель3. ER –> Таблицы и связи
(Лог.модель)4. Нормализация5. Лог.модель -> Физ.модель
На деле — псевдо-проектирование1. Модель предметной области ->2. Рутинные преобразования ->3. Хранилище информационной модели предметной
области
Q: А как обеспечивать прочие функциональные требования системы, как создавать предметную область приложения?
A: Не даёт ответа, читайте… Кнута?
Методов нет, что есть?• Если нельзя проектировать, то можно
конструировать
• Есть — тысячи готовых решений —велосипедов, самокатов и инвалидных колясок
Претенденты на повторное использование
1. Эталонные модели предметной области2. Шаблона анализа3. SQL-конструкции4. Структуры БД
(собственно шаблоны проектирования)
Эталонные модели Пр Обл / 1Общего пользования:• Люди и организации• Продукция• Заказ продукции• Поставки• Работы• Счета и платежи• Учёт и бюджетирование• Кадры
Отраслевые модели:• Производство• Телекоммуникации• Здравоохранение• Страхование• Финансовые услуги• Профессиональные услуги• Путешествия• Электронная торговля
Эталонные модели Пр Обл / 2
Источники:• Len Silverston, The Data Model Resource Book
Шаблоны анализаМартин Фаулер,Analysis Patterns, 1997:• Подотчётность• Наблюдения и измерения• Опись и учёт• Планирование• Торговля• Производные договора• Торговые пакеты
Типовые SQL-конструкцииВадим Тропашко,Дональд Бурлесон, 2008,SQL Design Patterns:
Каталог шаблонов / 1Структура шаблона:1. Название2. Задача и контекст3. Устройство решения4. Ограничения и последствия5. Вариации6. Примеры7. Источники
Каталог шаблонов / 2Архитектурные образцы• Учётные сущности и Домены• Бизнес-агенты и Явления• Регистры• Сущность-атрибут-значение (EAV)• Хранилище данных (DW)
Приложение• Навигация
– Уровневая– Дескрипторная (тэги)
• Роли и права• Настройки• Системные задачи• Метаданные• Правила и формулы• Поиск
Древовидные структуры• Однородная иерархия
– «Настройки»– «WBS»
• Разнородная иерархия– «Форум»
• Наследование и обобщение– «События и происшествия»
Время-зависимые данные• Аудит изменений
– Общий журнал изменений– Персональные журналы изменений
• Версионность записи– Двойники– Управление версиями
Что дальше?1. «Мастер-класс» с разбором шаблонов2. См. cайт: http://DatabaseDesignPatterns.org3. См. ЖЖ-сообщество database_design
C ya!,Денис Бесков-Доронин