- •Технологии бд
- •1. Теоретические основы организации бд. Реляционная модель данных. 2
- •2. Технологии проектирования реляционных бд 24
- •Теоретические основы организации бд. Реляционная модель данных.
- •Подходы к организации баз данных
- •Иерархические базы данных
- •Сетевые базы данных
- •Реляционные базы данных
- •12 Правил Кодда:
- •Введение в реляционную модель данных
- •Основные понятия реляционной модели данных
- •Тип данных
- •Заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения
- •Первичный ключ и интуитивная интерпретация реляционных понятий
- •Фундаментальные свойства отношений
- •Отсутствие кортежей-дубликатов, первичный и возможные ключи отношений
- •Отсутствие упорядоченности кортежей
- •Отсутствие упорядоченности атрибутов
- •Атомарность значений атрибутов, первая нормальная форма отношения
- •Реляционная модель данных
- •Общая характеристика
- •Целостность реляционных данных
- •Null-значения
- •Трехзначная логика (3vl)
- •Потенциальные ключи
- •Целостность сущностей
- •Внешние ключи
- •Целостность внешних ключей
- •Замечания к правилам целостности сущностей и внешних ключей
- •Операции, могущие нарушить ссылочную целостность
- •Стратегии поддержания ссылочной целостности
- •Технологии проектирования реляционных бд
- •Этапы разработки базы данных
- •Критерии оценки качества логической модели данных
- •Адекватность базы данных предметной области
- •Легкость разработки и сопровождения базы данных
- •Скорость операций обновления данных (вставка, обновление, удаление)
- •Скорость операций выборки данных
- •Проектирование реляционных баз данных на основе принципов нормализации
- •Понятие метода нормализации отношений
- •Декомпозиция без потерь и функциональные зависимости
- •Корректные и некорректные декомпозиции отношений. Теорема Хеза
- •Теорема Хеза.
- •Диаграммы функциональных зависимостей
- •Первая нормальная форма
- •Минимальные функциональные зависимости и вторая нормальная форма
- •Аномалии обновления, возникающие из-за наличия неминимальных функциональных зависимостей
- •Возможная декомпозиция
- •Вторая нормальная форма
- •Нетранзитивные функциональные зависимости и третья нормальная форма
- •Аномалии обновлений, возникающие из-за наличия транзитивных функциональных зависимостей
- •Возможная декомпозиция
- •Третья нормальная форма
- •Независимые проекции отношений. Теорема Риссанена
- •Перекрывающиеся возможные ключи и нормальная форма Бойса-Кодда
- •Аномалии обновлений, связанные с наличием перекрывающихся возможных ключей
- •Нормальная форма Бойса-Кодда
- •Всегда ли следует стремиться к bcnf?
- •Необходимость дальнейшей нормализации
- •Многозначные зависимости и четвертая нормальная форма
- •Аномалии обновлений при наличии многозначных зависимостей и возможная декомпозиция
- •Многозначные зависимости. Теорема Фейджина. Четвертая нормальная форма
- •Лемма Фейджина
- •Теорема Фейджина
- •Зависимости проекции/соединения и пятая нормальная форма
- •N-декомпозируемые отношения
- •Зависимость проекции/соединения
- •Аномалии, вызываемые наличием зависимости проекции/соединения
- •Устранение аномалий обновления в 3-декомпозиции
- •Пятая нормальная форма
- •Заключение
- •Проектирование реляционных баз данных с использованием семантических моделей: er-диаграммы
- •Ограниченность реляционной модели при проектировании баз данных
- •Семантические модели данных
- •Семантическая модель Entity-Relationship (Сущность-Связь)
- •Основные понятия er-модели
- •Уникальные идентификаторы типов сущности
- •Нормальные формы er-диаграмм
- •Первая нормальная форма er-диаграммы
- •Вторая нормальная форма er-диаграммы
- •Третья нормальная форма er-диаграммы
- •Более сложные элементы er-модели
- •Наследование типов сущности и типов связи
- •Взаимно исключающие связи
- •Получение реляционной схемы из er-диаграммы
- •Базовые приемы
- •Представление в реляционной схеме супертипов и подтипов сущности
- •Представление в реляционной схеме взаимно исключающих связей
- •Виды нотаций er-диаграмм
- •Метод Баркера
- •Методология idef1x
- •Заключение
Теорема Хеза.
Пусть задано отношение r {A, B, C}(A,BиC, в общем случае, являются составными атрибутами) и выполняетсяFD AB.
Рис. 7. Результат естественного соединения отношений СЛУЖ и ЗАРП_ПРО
Тогда r = (r PROJECT {A, B}) NATURAL JOIN (r PROJECT {A, C}).
Для иллюстрации общего случая применения теоремы Хезарассмотрим отношениеСЛУЖАЩИЕ_ОТДЕЛЫ_ПРОЕКТЫ {СЛУ_НОМ, СЛУ_ОТД, ПРО_НОМ}(Рис. 8). АтрибутСЛУ_ОТДсодержит номера отделов, в которых работают служащие, аПРО_НОМ– номера проектов, в которых служащие принимают участие. Каждый служащий работает только в одном отделе, т. е. имеетсяFD СЛУ_НОМСЛУ_ОТД, но один служащий может участвовать в нескольких проектах.
Рис. 8. Декомпозиция без потерь по теореме Хеза
В отношении СЛУЖАЩИЕ_ОТДЕЛЫ_ПРОЕКТЫатрибутСЛУ_НОМне является возможным ключом, но, как показано на Рис. 8, наличияFD СЛУ_НОМСЛУ_ОТДоказывается достаточно длядекомпозиции этого отношения без потерь.
Диаграммы функциональных зависимостей
Далее, для иллюстраций в следующей лекции нам пригодятся диаграммы FD, с помощью которых можно наглядно представлятьминимальные множества FD. Например, на Рис. 9 приведенадиаграмма минимального множества FDотношенияСЛУЖАЩИЕ_ПРОЕКТЫ.
Рис. 9. Диаграмма минимального множества FD отношения СЛУЖАЩИЕ_ПРОЕКТЫ
В левой части диаграммывсе стрелки начинаются с атрибутаСЛУ_НОМ, который является единственным возможным (и, следовательно, первичным) ключом отношенияСЛУЖАЩИЕ_ПРОЕКТЫ. Обратите внимание на отсутствие стрелки отСЛУ_НОМкПРОЕКТ_РУК. Конечно, посколькуСЛУ_НОМявляется возможным ключом, должна выполняться иFD СЛУ_НОМПРОЕКТ_РУК. Но этаFDявляетсятранзитивной(черезПРО_НОМ) и поэтому не входит вминимальное множество FD. Заметим, что в процессе нормализации, к рассмотрению которого мы приступим в следующей лекции, издиаграмм множества FDудаляются стрелки, начинающиеся не от возможных ключей.
Первая нормальная форма
Определение: Первая нормальная форма
Отношение Rнаходится в первой нормальной форме, если обладает следующими свойствами:
в отношении нет одинаковых кортежей.
кортежи не упорядочены.
атрибуты не упорядочены.
все значения атрибутов атомарны
Минимальные функциональные зависимости и вторая нормальная форма
Пусть имеется переменная отношения СЛУЖАЩИЕ_ПРОЕКТЫ_ЗАДАНИЯ {СЛУ_НОМ, СЛУ_УРОВ, СЛУ_ЗАРП, ПРО_НОМ, СЛУ_ЗАДАН}. Новые атрибутыСЛУ_УРОВиСЛУ_ЗАДАНсодержат, соответственно, данные о разряде служащего и о задании, которое выполняет служащий в данном проекте. Будем считать, что разряд служащего определяет размер его заработной платы, и что каждый служащий может участвовать в нескольких проектах, но в каждом проекте он выполняет только одно задание. Тогда очевидно, что единственно возможным ключом отношенияСЛУЖАЩИЕ_ПРОЕКТЫ_ЗАДАНИЯявляется составной атрибут{СЛУ_НОМ, ПРО_НОМ}. Диаграмма минимального множества FD показана на Рис. 10, а возможное тело значения отношения – на Рис. 11.
Рис. 10. Диаграмма множества FD отношения СЛУЖАЩИЕ_ПРОЕКТЫ_ЗАДАНИЯ
Рис. 11. Возможное значение переменной отношения СЛУЖАЩИЕ_ПРОЕКТЫ_ЗАДАНИЯ
Аномалии обновления, возникающие из-за наличия неминимальных функциональных зависимостей
Во множество FD отношения СЛУЖАЩИЕ_ПРОЕКТЫ_ЗАДАНИЯвходит много FD, в которых детерминантом является не возможный ключ отношения (соответствующие стрелки в диаграмме начинаются не с{СЛУ_НОМ, ПРО_НОМ}, т. е. некоторые функциональные зависимости атрибутов от возможного ключа не являются минимальными). Это приводит к так называемым аномалиям обновления. Поданомалиями обновленияпонимаются трудности, с которыми приходится сталкиваться при выполнении операций добавления кортежей в отношение (INSERT), удаления кортежей (DELETE) и модификации кортежей (UPDATE). Обсудим сначала аномалии обновления, вызываемые наличием FDСЛУ_НОМСЛУ_УРОВ(эти аномалии связаны с избыточностью хранения значений атрибутовСЛУ_УРОВиСЛУ_ЗАРПв каждом кортеже, описывающем задание служащего в некотором проекте).
Добавление кортежей.Мы не можем дополнить отношениеСЛУЖАЩИЕ_ПРОЕКТЫ_ЗАДАНИЯданными о служащем, который в данное время еще не участвует ни в одном проекте (ПРО_НОМявляется частью первичного ключа и не может содержать неопределенных значений). Между тем часто бывает, что сначала служащего принимают на работу, устанавливают его разряд и размер зарплаты, а лишь потом назначают для него проект.
Удаление кортежей.Мы не можем сохранить в отношенииСЛУЖАЩИЕ_ПРОЕКТЫ_ЗАДАНИЯданные о служащем, завершившем участие в своем последнем проекте (по той причине, что значение атрибутаПРО_НОМдля этого служащего становится неопределенным). Между тем характерна ситуация, когда между проектами возникают перерывы, не приводящие к увольнению служащих.
Модификация кортежей.Чтобы изменить разряд служащего, мы будем вынуждены модифицировать все кортежи с соответствующим значением атрибутаСЛУ_НОМ. В противном случае будет нарушена естественная FDСЛУ_НОМСЛУ_УРОВ(у одного служащего имеется только один разряд).