Разработка баз данных - введение

Post on 22-May-2015

478 views 5 download

Transcript of Разработка баз данных - введение

Разработка БД -

Введение

Шамрай Александр

a.shamray@cmcons.com

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