
- •Разработка структуры бд Проектирование логической структуры бд
- •Модели данных, поддерживаемые субд
- •Дореляционные модели данных
- •Реляционная модель данных
- •Постреляционные моделей данных
- •Преобразование концептуальной модели данных в реляционную модель данных
- •Суррогатные ключи
- •Ограничения целостности
- •1. Ограничения на значения данных.
- •1.1. Ограничения доменов.
- •1.2. Ограничение обязательности значения.
- •1.3. Ограничение уникальности.
- •2. Ограничения на связи между данными.
- •2.1. Ограничения ссылочной целостности.
- •2.2. Ограничения кардинальности связи.
- •2.3. Ограничения на изменения в записях.
- •Нормализация отношений
- •1). Первая нормальная форма (1нф).
- •2). Вторая нормальная форма (2нф).
- •3). Третья нормальная форма (3нф).
- •Понятие физической структуры бд
2.3. Ограничения на изменения в записях.
Изменениями в записях являются:
вставка новой строки;
обновление ключа;
удаление строки.
СОТРУДНИК
-
НомерСотрудника
Имя
Должность
…….
АВТОМОБИЛЬ
-
Номер
Производитель
Модель
НомерСотрудника
…….
Вопросы:
1 - Если удаляется информация о сотруднике из отношения СОТРУДНИК, что будет с автомобилем, прикрепленным к нему в отношении АВТОМОБИЛЬ?
2 - Если изменяется номер сотрудника в отношении СОТРУДНИК, что будет с номером этого сотрудника, если к нему прикреплен автомобиль в отношении АВТОМОБИЛЬ?
Для решения подобных вопросов СУБД позволяют реализовывать следующие ограничения на изменения в записях:
каскадное обновление полей,
каскадное удаление записей.
Каскадное обновление полей – изменение значения первичного ключа одного отношения приводит к автоматическому изменению соответствующих значений внешнего ключа другого отношения.
Пример: Если установлено каскадное обновление полей, то при изменении номера сотрудника в отношении СОТРУДНИК номер сотрудника автоматически поменяется в отношении АВТОМОБИЛЬ, если к этому сотруднику прикреплен автомобиль.
Каскадное удаление записей – удаление записи одного отношения приводит к автоматическому удалению записей другого отношения, имеющего значения внешнего ключа, равного значению первичного ключа удаляемой записи.
Пример: Если установлено каскадное удаление записей между отношениями КЛИЕНТ и ЗАКАЗЫ_КЛИЕНТА, то при удалении какого-либо клиента из отношения КЛИЕНТ вся информация о его заказах будет удалена из отношения ЗАКАЗЫ_КЛИЕНТА.
Нормализация отношений
Отношения, получившиеся в результате преобразования концептуальной модели данных в реляционное представление, могут иметь неоптимальную структуру, приводящую к нежелательным последствиям при изменении данных в этих отношениях.
Пример: Неоптимальная (нерациональная) структура реляционной БД.
ПОСТАВКИ
-
Код поставки
Название поставщика
Адрес поставщика
Товар
Количество
Цена
А). Аномалия модификации.
Адрес поставщика повторяется для каждой поставки. Если у поставщика изменился адрес, то требуется изменить это данное во всех записях.
Если по какой-либо причине будут выполнены не все необходимые изменения, то БД будет противоречивой.
Б). Аномалия удаления.
При удалении записи о поставке теряется информация о поставщике (если была только одна запись о поставке этого поставщика).
В). Аномалия вставки.
Нельзя включить в БД информацию о поставщике, если от него еще не было поставок.
Нормализация отношений – процесс построения оптимальной структуры таблиц и связей в реляционной БД.
Нормализация отношений, т.е. приведение их к нормальным формам, является способом предотвращения аномалий.
Отношения последовательно должны быть приведены к нормальным формам:
Первая нормальная форма (1НФ).
Вторая нормальная форма (2НФ).
Третья нормальная форма (3НФ).
Нормальная форма Бойса-Кодда (НФБК).
Четвертая нормальная форма (4НФ).
Пятая нормальная форма (5НФ).
На практике обычно достаточно привести отношения к 3НФ.