Целостность реляционных данных Введение в СУБД Лекция 3. Внешние ключи Это взаимосвязи в таблицах БД Поставщики и поставляемые детали Нормализация отношения Правило целостности внешних ключей Внешние ключи не должны быть несогласованными, т.е. для каждого значения внешнего ключа должно существовать соответствующее значение первичного ключа в родительском отношении. Нарушение ссылочной целостности Для родительского отношения Обновление кортежа в родительском отношении. Удаление кортежа в родительском отношении Для дочернего отношения Вставка кортежа в дочернее отношение Обновление кортежа в дочернем отношении. Стратегии поддержания ссылочной целостности Основные RESTRICT (ОГРАНИЧИТЬ) CASCADE (КАСКАДИРОВАТЬ) Дополнительные SET NULL (УСТАНОВИТЬ В NULL) SET DEFAULT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ) Выводы Потенциальный ключ отношения - это набор атрибутов отношения, обладающий свойствами уникальности и неизбыточности Традиционно один из потенциальных ключей объявляется первичным ключом, остальные - альтернативными ключами Отношения связываются друг с другом при помощи внешних ключей Внешний ключ отношения - это набор атрибутов отношения, содержащий ссылки на потенциальный ключ другого отношения. Отношение, содержащее внешний ключ, называется дочерним отношением В любой реляционной базе данных должны выполняться два ограничения: Целостность сущностей и Целостность внешних ключей Нормализация Процесс проектирования РБД, при котором на каждом шаге производится декомпозиция универсального отношения, в другие отношения обладающие лучшими, по сравнению с первоначальным, свойствами Существует 5 нормальных форм отношений Разработка структуры БД 1. 2. 3. 4. 5. Сама предметная область Модель предметной области Логическая модель данных Физическая модель данных Собственно база данных и приложения ER-моделирование Применяют для проектирования логической и физической структуры базы данных В основе и лежит семантическое моделирование реализованное в виде диаграммы сущность-связь (ER - Entity-Relationship) Первый вариант модели сущность-связь был предложен в 1976 г. Питером Пин-Шэн Ченом ER-моделирование Сущность - это класс однотипных объектов, информация о которых должна быть учтена в модели Экземпляр сущности - это конкретный представитель данной сущности. Атрибут сущности - это именованная характеристика, являющаяся некоторым свойством сущности. Ключ сущности - это неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности Связь - это некоторая ассоциация между двумя сущностями. Пример разработки ER-модели Разработка информационной системы по заказу некоторой оптовой торговой фирмы Система должна выполнять следующие действия: Хранить информацию о покупателях. Печатать накладные на отпущенные товары. Следить за наличием товаров на складе. Пример разработки ER-модели Покупатель - явный кандидат на сущность. Накладная - явный кандидат на сущность. Товар - явный кандидат на сущность (?)Склад - а вообще, сколько складов имеет фирма? Если несколько, то это будет кандидатом на новую сущность. (?)Наличие товара – это, скорее всего, атрибут, но атрибут какой сущности? Пример разработки ER-модели Фирма имеет несколько складов. Причем, каждый товар может храниться на нескольких складах и быть проданным с любого склада. Пример разработки ER-модели В последствии дальнейшего уточнения данных бизнес-процессов фирмы, в указанных выше сущностях появились атрибуты Пример разработки ER-модели Выводы Реальным средством моделирования данных является не формальный метод нормализации отношений, а так называемое семантическое моделирование. В качестве инструмента семантического моделирования используются различные варианты диаграмм сущностьсвязь (ER - Entity-Relationship). Различают концептуальные и физические ER-диаграммы. Концептуальные диаграммы не учитывают особенностей конкретных СУБД. Физические диаграммы строятся по концептуальным и представляют собой прообраз конкретной базы данных. При правильном определении сущностей, полученные таблицы будут сразу находиться в 3НФ. Основное достоинство метода состоит в том, модель строится методом последовательных уточнений первоначальных диаграмм. Самостоятельное задание Разработайте модель информационной системы отдела кадров предприятия Система должна выполнять следующие действия: Хранить информацию о сотрудниках. Печатать приказы о приме на работу увольнении работы и перемещение по подразделениям предприятия Печатать информацию о сотрудниках с учетом подразделений, в которых они работают. с