Введение в системы управления базами данных

Минетчица купила минет.



Глава 6. Нормальные формы отношений


    Этапы разработки базы данных
    Этапы разработки базы данных Целью разработки любой базы данных является хранение и использование информации о какой-либо предметной области. Для реализации этой цели имеются следующие инструменты...
    Примеры понятий - "сотрудник"...
    Примеры понятий - "сотрудник", "отдел", "проект", "зарплата". Примеры взаимосвязей между понятиями - "сотрудник числится ровно в одном отделе", "сотрудник может выполнять несколько проектов", "над...
    Критерии оценки качества логической модели данных
    Критерии оценки качества логической модели данных Цель данной главы - описать некоторые принципы построения хороших логических моделей данных . Хороших в том смысле, что решения, принятые в процес...
    Адекватность базы данных предметной области
    Адекватность базы данных предметной области База данных должна адекватно отражать предметную область. Это означает, что должны выполняться следующие условия: Состояние базы данных в каждый момент...
    Легкость разработки и сопровождения базы данных
    Легкость разработки и сопровождения базы данных Практически любая база данных, за исключением совершенно элементарных, содержит некоторое количество программного кода в виде триггеров и хранимых п...
    Скорость операций обновления данных (вставка, обновление, удаление)
    Скорость операций обновления данных (вставка, обновление, удаление) На уровне логического моделирования мы определяем реляционные отношения и атрибуты этих отношений. На этом уровне мы не можем оп...
    Скорость операций выборки данных
    Скорость операций выборки данных Одно из назначений базы данных - предоставление информации пользователям. Информация извлекается из реляционной базы данных при помощи оператора SQL - SELECT. Одно...
    Основной пример
    Основной пример Рассмотрим в качестве предметной области некоторую организацию, выполняющую некоторые проекты. Модель предметной области опишем следующим неформальным текстом: Сотрудники организац...
    1НФ (Первая Нормальная Форма)
    1НФ (Первая Нормальная Форма) Понятие первой нормальной формы уже обсуждалось в главе 2. Первая нормальная форма ( 1НФ ) - это обычное отношение. Согласно нашему определению отношений, любое отнош...
    Таблица 1
    Таблица 1 Н_СОТР ФАМ Н_ОТД ТЕЛ Н_ПРО ПРОЕКТ Н_ЗАДАН 1 Иванов 1 11-22-33 1 Космос 1 1 Иванов 1 11-22-33 2 Климат 1 2 Петров 1 11-22-33 1 Космос 2 3 Сидоров 2 33-22-11Аномалии обновления
    Аномалии обновления Даже одного взгляда на таблицу отношения СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ достаточно, чтобы увидеть, что данные хранятся в ней с большой избыточностью . Во многих строках повторяются...
    Аномалии вставки (INSERT)
    Аномалии вставки (INSERT) В отношение СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ нельзя вставить данные о сотруднике, который пока не участвует ни в одном проекте. Действительно, если, например, во втором отделе п...
    Аномалии обновления (UPDATE)
    Аномалии обновления (UPDATE) Фамилии сотрудников, наименования проектов, номера телефонов повторяются во многих кортежах отношения. Поэтому если сотрудник меняет фамилию, или проект меняет наимено...
    Аномалии удаления (DELETE)
    Аномалии удаления (DELETE) При удалении некоторых данных может произойти потеря другой информации. Например, если закрыть проект "Космос" и удалить все строки, в которых он встречается, то будут п...
    Функциональные зависимости
    Функциональные зависимости Отношение СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ находится в 1НФ, при этом, как было показано выше, логическая модель данных не адекватна модели предметной области. Таким образом, пе...
    Определение функциональной зависимости Для устранения указанных аномалий (а на самом деле для правильного проектирования модели данных
    !) применяется метод нормализации отношений. Нормализация основана на понятии функциональной зависимости атрибутов отношения....
    Определение 1
    Определение 1 . Пусть - отношение. Множество атрибутов функционально зависимо от множества атрибутов ( функционально определяет ) тогда и только тогда, когда для любого состояния отношения для люб...
    Пример 1
    Пример 1 . В отношении СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ можно привести следующие примеры функциональных зависимостей: Зависимость атрибутов от ключа отношения: { Н_СОТР , Н_ПРО } ФАМ { Н_СОТР , Н_ПРО } Н...
    Функциональные зависимости отношений и математическое понятие функциональной зависимости
    Функциональные зависимости отношений и математическое понятие функциональной зависимости Функциональная зависимость атрибутов отношения напоминает понятие функциональной зависимости в математике....
    Определение 2
    Определение 2 . Функциональная зависимость ( функция ) - это тройка объектов , где - множество ( область определения ), - множество ( множество значений ), - правило, согласно которому каждому эле...
    Определение функциональной зависимости в отношении гарантирует, что найденное значение не зависит от выбора кортежа
    Определение функциональной зависимости в отношении гарантирует, что найденное значение не зависит от выбора кортежа , поэтому правило определено корректно. Отличие от математического понятия отнош...
    Определение 3
    Определение 3 . Отношение находится во второй нормальной форме ( 2НФ ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа . ( Неклю...
    Таблица 2
    Таблица 2 Н_СОТР ФАМ Н_ОТД ТЕЛ 1 Иванов 1 11-22-33 2 Петров 1 11-22-33 3 Сидоров 2 33-22-11 Таблица 2 Отношение СОТРУДНИКИ_ОТДЕЛЫ Отношение ПРОЕКТЫ ( Н_ПРО , ПРОЕКТ ): Функциональные зависимости:...
    Таблица 3
    Таблица 3 Н_ПРО ПРОЕКТ 1 Космос 2 Климат Таблица 3 Отношение ПРОЕКТЫ Отношение ЗАДАНИЯ ( Н_СОТР , Н_ПРО , Н_ЗАДАН ): Функциональные зависимости: { Н_СОТР , Н_ПРО } Н_ЗАДАН...
    Таблица 4
    Таблица 4 Н_СОТР Н_ПРО Н_ЗАДАН 1 1 1 1 2 1 2 1 2 3 1 3 3 2 2 Таблица 4 Отношения ЗАДАНИЯ...
    Анализ декомпозированных отношений
    Анализ декомпозированных отношений Отношения, полученные в результате декомпозиции, находятся в 2НФ. Действительно, отношения СОТРУДНИКИ_ОТДЕЛЫ и ПРОЕКТЫ имеют простые ключи, следовательно автомат...
    Оставшиеся аномалии вставки (INSERT)
    Оставшиеся аномалии вставки (INSERT) В отношение СОТРУДНИКИ_ОТДЕЛЫ нельзя вставить кортеж (4, Пушников, 1, 33-22-11), т.к. при этом получится, что два сотрудника из 1-го отдела (Иванов и Пушников)...
    Оставшиеся аномалии обновления (UPDATE)
    Оставшиеся аномалии обновления (UPDATE) Одни и те же номера телефонов повторяются во многих кортежах отношения. Поэтому если в отделе меняется номер телефона, то такие изменения необходимо одновре...
    Оставшиеся аномалии удаления (DELETE)
    Оставшиеся аномалии удаления (DELETE) При удалении некоторых данных по-прежнему может произойти потеря другой информации. Например, если удалить сотрудника Сидорова, то будет потеряна информация о...
    Определение 4
    Определение 4 . Атрибуты называются взаимно независимыми , если ни один из них не является функционально зависимым от другого....
    Определение 5
    Определение 5 . Отношение находится в третьей нормальной форме ( 3НФ ) тогда и только тогда, когда отношение находится в 2НФ и все неключевые атрибуты взаимно независимы . Отношение СОТРУДНИКИ_ОТД...
    Таблица 5
    Таблица 5 Н_СОТР ФАМ Н_ОТД 1 Иванов 1 2 Петров 1 3 Сидоров 2 Таблица 5 Отношение СОТРУДНИКИ Отношение ОТДЕЛЫ ( Н_ОТД , ТЕЛ ): Функциональные зависимости: Зависимость номера телефона от номера отде...
    Таблица 6
    Таблица 6 Н_ОТД ТЕЛ 1 11-22-33 2 33-22-11 Таблица 6 Отношение ОТДЕЛЫ Обратим внимание на то, что атрибут Н_ОТД , не являвшийся ключевым в отношении СОТРУДНИКИ_ОТДЕЛЫ , становится потенциальным клю...
    Алгоритм нормализации (приведение к 3НФ)
    Алгоритм нормализации (приведение к 3НФ) Итак, алгоритм нормализации (т.е. алгоритм приведения отношений к 3НФ) описывается следующим образом....
    Шаг 1 (Приведение к 1НФ)
    Шаг 1 (Приведение к 1НФ) . На первом шаге задается одно или несколько отношений, отображающих понятия предметной области. По модели предметной области (не по внешнему виду полученных отношений!) в...
    Шаг 2 (Приведение к 2НФ)
    Шаг 2 (Приведение к 2НФ) . Если в некоторых отношениях обнаружена зависимость атрибутов от части сложного ключа, то проводим декомпозицию этих отношений на несколько отношений следующим образом: т...
    Шаг 3 (Приведение к 3НФ)
    Шаг 3 (Приведение к 3НФ) . Если в некоторых отношениях обнаружена зависимость некоторых неключевых атрибутов других неключевых атрибутов, то проводим декомпозицию этих отношений следующим образом:...
    Сравнение нормализованных и ненормализованных моделей
    Сравнение нормализованных и ненормализованных моделей Соберем воедино результаты анализа критериев, по которым мы хотели оценить влияние логического моделирования данных на качество физических мод...
    Таблица 7
    Таблица 7 Критерий Отношения слабо нормализованы (1НФ, 2НФ) Отношения сильно нормализованы (3НФ) Адекватность базы данных предметной области ХУЖЕ (-) ЛУЧШЕ (+) Легкость разработки и сопровождения...
    OLTP и OLAP-системы
    OLTP и OLAP-системы Можно выделить некоторые классы систем, для которых больше подходят сильно или слабо нормализованные модели данных. Сильно нормализованные модели данных хорошо подходят для так...
    Теорема Хеза Как было показано...
    атрибуты исходного отношения. Т.е., при декомпозиции не должны теряться атрибуты отношений. Но при декомпозиции также не должны потеряться и сами данные. Данные можно считать не потерянными в том...
    Определение 6
    Определение 6 . Проекция отношения на множество атрибутов называется собственной , если множество атрибутов является собственным подмножеством множества атрибутов отношения (т.е. множество атрибут...
    Определение 7
    Определение 7 . Собственные проекции и отношения называются декомпозицией без потерь , если отношение точно восстанавливается из них при помощи естественного соединения для любого состояния отноше...
    Таблица 8
    Таблица 8 НОМЕР ФАМИЛИЯ ЗАРПЛАТА 1 Иванов 1000 2 Петров 1000 Таблица 7 Отношение Рассмотрим первый вариант декомпозиции отношения на два отношения:...
    Таблица 9
    Таблица 9 НОМЕР ЗАРПЛАТА 1 1000 2 1000 Таблица 8 Отношение...
    Таблица 10
    Таблица 10 ФАМИЛИЯ ЗАРПЛАТА Иванов 1000 Петров 1000 Таблица 9 Отношение Естественное соединение этих проекций, имеющих общий атрибут "ЗАРПЛАТА", очевидно, будет следующим (каждая строка одной прое...
    Таблица 11
    Таблица 11 НОМЕР ФАМИЛИЯ ЗАРПЛАТА 1 Иванов 1000 1 Петров 1000 2 Иванов 1000 2 Петров 1000 Таблица 10 Отношение Итак, данная декомпозиция не является декомпозицией без потерь, т.к. исходное отношен...
    Таблица 12
    Таблица 12 НОМЕР ФАМИЛИЯ 1 Иванов 2 Петров Таблица 11 Отношение...
    Таблица 13
    Таблица 13 НОМЕР ЗАРПЛАТА 1 1000 2 1000 Таблица 12 Отношение По данным проекциям, имеющие общий атрибут "НОМЕР", исходное отношение восстанавливается в точном виде. Тем не менее, нельзя сказать, ч...
    Таблица 14
    Таблица 14 НОМЕР ФАМИЛИЯ ЗАРПЛАТА 1 Иванов 1000 2 Петров 1000 2 Сидоров 2000 Таблица 13 Отношение Кажется, что этого не может быть, т.к. значения в атрибуте "НОМЕР" повторяются. Но мы же ничего не...
    Таблица 15
    Таблица 15 НОМЕР ФАМИЛИЯ 1 Иванов 2 Петров 2 Сидоров Таблица 14 Отношение...
    Таблица 16
    Таблица 16 НОМЕР ЗАРПЛАТА 1 1000 2 1000 2 2000 Таблица 15 Отношение Естественное соединение этих проекций будет содержать лишние кортежи:...
    Таблица 17
    Таблица 17 НОМЕР ФАМИЛИЯ ЗАРПЛАТА 1 Иванов 1000 2 Петров 1000 2 Петров 2000 2 Сидоров 1000 2 Сидоров 2000 Таблица 16 Отношение Вывод . Таким образом, без дополнительных ограничений на отношение не...
    Теорема (Хеза)
    Теорема (Хеза) . Пусть является отношением, и - атрибуты или множества атрибутов этого отношения. Если имеется функциональная зависимость , то проекции и образуют декомпозицию без потерь. Доказате...
    Теорема доказана
    Теорема доказана . Замечание . В доказательстве теоремы Хеза наличие функциональной зависимости не использовалось при доказательстве включения . Это означает, что при выполнении декомпозиции и пос...
    Выводы
    Выводы При разработке базы данных можно выделить несколько уровней моделирования: Сама предметная область Модель предметной области Логическая модель данных Физическая модель данных Собственно баз...








Начало