- •Методы программной инженерии
- •Метод программной индустрии основан на идее создания моделей ПО с поэтапным преобразованием этих
- •Начиная с 70-х годов создано достаточно много методов разработки ПО. Наиболее известны:
- •Диаграммы сущность-связь
- •Диаграммы сущность-связь -
- •Модели данных
- •История
- •ER-диаграммы в нотации Баркера
- •Модель сущность - связь
- •Сущность (entity) -
- •Сущность
- •Экземпляр сущности -
- •Атрибут сущности
- •Ключ сущности -
- •Связь -
- •Графическое изображение связей
- •Каждая связь может иметь один из следующих типов:
- •связь типа один-ко-многим означает, что один экземпляр первой сущности (левой) связан с несколькими
- •связь типа много-ко-многим означает, что каждый экземпляр первой сущности может быть связан с
- •Модальность связи
- •Нормальные формы ER- диаграмм
- •первая нормальная форма (1NF);
- •Первая нормальная форма
- •рассмотрим пример таблицы с фильмами:
- •Вторая нормальная форма
- •Пример
- •В таблице первичным ключем объявлены поля archSurname (фамилия архитектора) и title (название станции).
- •Теперь у нас нет независимых от первичного ключа полей, таблица соответствует второй нормальной
- •Третья нормальная форма
- •Пример – таблица автомобилей
- •У нас есть поля: id — идентифицирующее поле, manufacturer — концерн-производитель автомобиля, shortBrand
- •ЕЩЕ РАЗ - КРАТКО
- •Концептуальные и физические ER-модели
Нормальные формы ER- диаграмм
21
первая нормальная форма (1NF);
вторая нормальная форма (2NF);
третья нормальная форма (3NF);
нормальная форма Бойса-Кодда (BCNF);
четвертая нормальная форма (4NF);
пятая нормальная форма, или нормальная форма проекции-
соединения (5NF или PJ/NF).
Основные свойства нормальных форм:
|
каждая следующая нормальная форма в некотором смысле |
|
лучше предыдущей; |
|
при переходе к следующей нормальной форме свойства |
|
предыдущих нормальных свойств сохраняются. |
|
22 |
Первая нормальная форма
Каждый столбец в строке должен быть атомарным, т.е. столбец может содержать одно и только одно значение для заданной строки.
Каждая строка в таблице обязана содержать одинаковое количество столбцов. Учитывая обязательную атомарность столбцов, следует, что все строки в таблице должны иметь одинаковое количество значений.
Все строки в таблице, в общем, должны быть уникальны. Значения в столбцах могут дублироваться, но строки, взятые целиком — не могут.
23
рассмотрим пример таблицы с фильмами:
Здесь сразу видны два нарушения первой нормальной формы. В первой строке, в столбце release указаны два значения (для США и Австралии), что запрещено первым правилом. Исправить это можно, записав еще одну строку для фильма, но с другим значением release.
Еще в таблице дублируется вторая и третья строка, что запрещено уже третьим правилом. Для подобных таблиц удобно, в такой ситуации, добавить идентифицирующее поле, которое мы назовем id
24
Вторая нормальная форма
Два правила второй нормальной формы говорят о том, что:
Таблица обязана соответствовать первой нормальной форме.
Все столбцы, не входящие в полный первичный ключ, должны зависеть от полного первичного ключа
25
Пример
таблица представления станций метро с информацией об архитекторах.
26
В таблице первичным ключем объявлены поля archSurname (фамилия архитектора) и title (название станции). Если таблица следует нормальной форме, то все поля, не входящие в первичный ключ, зависят от него. Итак, смотрим: archName (имя архитектора) зависит от archSurname, и это логично. Поле completedDate (дата сдачи станции в эксплуатацию) зависит от title (от ее названия), это тоже логично. Но имя архитектора совершенно не зависит от названия станции, а дата сдачи станции, в свою очередь, никак не зависит от имени архитектора. Следовательно, два поля таблицы не зависят от соответственных полей в первичном ключе и таблица не соответствует второй нормальной форме.
Как мы решим проблему? Достаточно грамотный выход — раскидать данные по двум таблицам: Stations и Architectors. При этом нам понадобится третья, связующая таблица (что, плюс ко всему, позволит присваивать один проект нескольким архитекторам). В результате у нас получаются три таблицы:
27
Теперь у нас нет независимых от первичного ключа полей, таблица соответствует второй нормальной форме.
28
Третья нормальная форма
Третья норма данных расширяет две предыдущие, неся в себе два правила:
Таблица должна соответствовать второй нормальной форме.
Все столбцы, не входящие в полный первичный ключ, должны зависеть от него и не должны зависеть друг от друга.
29
Пример – таблица автомобилей
30
