Разработка баз данных - введение
TRANSCRIPT
www.cmcons.com
Проблемы командной разработки
Различное видение и приоритеты
Излишняя специализация ролей
Несоответствие процессов
Закостеневший менеджмент
Организационные проблемы
Бедная документация
Неэффективные руководства по разработке
Неэффективное моделирование
www.cmcons.com
ЭВОЛЮЦИОННАЯ
РАЗРАБОТКА
www.cmcons.com
Техники эволюционной разработки
Эволюционное Моделирование
Регрессионное тестирование
Рефакторинг баз данных
Конфигурационное управление баз данных
Использование личных рабочих пространств для разработки
www.cmcons.com
ЭВОЛЮЦИОННОЕ
МОДЕЛИРОВАНИЕ
www.cmcons.com
Принципы эволюционного
моделирования
•Предполагать простоту
•Содержание является более важным, чем представление
•Принять изменения
•Учитывать будущие потребности
•Инкрементальные изменения
•Адаптация к локальным условиям
•Модель с целью
•Несколько моделей
•Открытый и честный диалог
•Качественная работа
•Быстрая обратная связь
•Программное обеспечение является основной целью
•Идти налегке
•Повторно использовать существующие ресурсы
•Рассматривать возможность для тестирования
www.cmcons.com
МОДЕЛИРОВАНИЕ БД С
ПОМОЩЬЮ UML
www.cmcons.com
Use Case
www.cmcons.com
Sequence Diagram
www.cmcons.com
Class Diagram
www.cmcons.com
Моделирование таблиц, сущностей и
представлений
www.cmcons.com
Стереотипы для моделирования таблиц,
сущностей и представлений
Стереотип Применение
<<Aggregate>> Применяется в статистических таблицах, которые используются для хранения ненормализованные данных (часто для целей отчетности).
<<Entity>> Необязательная нотация, которая подразумевает тип модели.
<<Index>> Применяется для моделирования индекса, который реализует ключ таблицы реляционной базы данных. Это указывает на зависимость от индекса для таблицы или ключевого столбца, реализующего индекс.
<<Lookup table>> Применяется к реляционным таблицам, которые используются для простого просмотра списков.
<<Stored procedure>> Применяется к классу, который содержит только операционные подписи для хранимых процедур базы данных.
<<Table>> Дополнительная нотация, которая подразумевается модельным типом.
<<View>> Применяется, когда моделируются представления для таблицы. Указывается зависимость для каждой таблицы в определении представления.
www.cmcons.com
Стереотипы для моделирования ключей
Стереотип Применение
<<AK>> Указывает, что столбец является частью альтернативного ключ, также известного как вторичный ключ для таблицы.
<<Auto Generated>> Указывает, что значение столбца автоматически создается в базе данных.
<<CK>> Указывает, что атрибут является частью потенциальным ключ сущности.
<<FK>> Указывает, что столбец является частью внешнего ключа другой таблицы.
<<Natural>> Указывает, что атрибут или столбец является частью естественным ключом.
<<PK>> Указывает, что столбец является частью первичного ключа для таблицы.
<<Surrogate>> Указывает, что столбец является суррогатным ключом.
www.cmcons.com
Значения для ключей
Значение Применение
key Показывает к какому ключу кандидат или альтернативный принадлежит столбец/атрибут. Когда столбец является частью нескольких ключей (например, если он является частью двух различных внешних ключей), то необходимо указать, какой имеется в виду. Во втором примере столбец является частью третьего альтернативного ключа. (key = FK; key = AK-3)
order Указывает порядок, в котором атрибут проявляется, когда он является частью составного ключа. В этом примере столбец будет четвертый в ключе. (order = 4)
table Указывает таблицу, на которую ссылается внешний ключ. Необязательное, потому что он часто может быть получено из диаграммы.
www.cmcons.com
Моделирование ограничений и поведения
физической модели данных
www.cmcons.com
НОРМАЛИЗАЦИЯ ДАННЫХ
www.cmcons.com
Зачем нужна нормализация?
www.cmcons.com
Правила нормализации
Уровень Правило
Первая нормальная форма Первая нормальная форма (1НФ) требует, чтобы каждое поле таблицы БД было неделимым (атомарным) и не содержало повторяющихся групп
Вторая нормальная форма Вторая нормальная форма (2НФ) требует, чтобы таблица удовлетворяла всем требованиям 1НФ, и чтобы любое не ключевое поле однозначно идентифицировалось его ключевым полем
Третья нормальная форма Третья нормальная форма (3НФ) требует, чтобы таблица удовлетворяла всем требованиям 2НФ, и чтобы всего его поля напрямую зависели от ключевого поля
www.cmcons.com
Первая нормальная форма
www.cmcons.com
Вторая нормальная форма
www.cmcons.com
Третья нормальная форма
www.cmcons.com
РЕГРЕССИОННОЕ
ТЕСТИРОВАНИЕ
www.cmcons.com
TDD
www.cmcons.com
РЕФАКТОРИНГ
www.cmcons.com
Рефакторинг в БД
Категории рефакторинга
• Качество данных• Структурный• Архитектурный• Производительность• Ссылочная целостность• Рефакторинг методов
www.cmcons.com
Сценарии рефакторинга
www.cmcons.com
Шаги рефакторинга
Выполнить рефакторинг в личной рабочей области
• Убедитесь, что оптимизация кода базы данных требуется.• Выберите наиболее подходящий рефакторинг базы данных.• Определите потребности в очистке данных.• Напишите модульные тесты.• Обеспечьте период устаревания для первоначальной схемы.• Реализуйте изменения.• Обновите сценарии управления базой данных.• Выполнение тестирование регрессии.• Документируйте изменения.• Используйте управление версиями.
Внедрить изменения в интеграционной области
• Распространение изменений между разработчиками• Передача изменений на тестирование
Внедрить изменения в промышленную среду
• Развернуть новые схемы базы данных• Развернуть затронутые изменениями приложения
www.cmcons.com