Нормализация таблиц реляционной базы данных © Панова И.В. - 2012.

Презентация:



Advertisements
Похожие презентации
ЛЕКЦИЯ 2 ОСНОВЫ РЕЛЯЦИОННОЙ АЛГЕБРЫ Вопрос 1. Основные операции над отношениями в реляционных базах данных. Вопрос 2. Нормализация реляционных баз данных.
Advertisements

Проектирование БД. Нормальные формы В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм: первая нормальная.
Нормализация данных В IDEF1X (дополнительный материал к лекции по информационному моделированию с использованием методологии IDEF1X)
Каждой нормальной форме соответствует некоторый определенный набор ограничений, и отношение находится в некоторой нормальной форме, если удовлетворяет.
1 БАЗЫ ДАННЫХ Функциональные зависимости и их использование в базах данных ЗАНЯТИЕ 4 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа.
Нормализация данных В IDEF1X (дополнительный материал к лекции по информационному моделированию с использованием методологии IDEF1X)
Нормализация реляционной модели данных. Реляционная модель данных – это множество взаимосвязанных отношений. Простейший вариант реляционной модели – одно.
Нормализация реляционной модели данных По учебнику Семакин Н.Г., Хеннер Е.К. Информационные системы и модели © 2006 Медведев Л.Н.
Базы данных Лекция 9 Проектирование реляционных баз данных на основе принципов нормализации: дальнейшая нормализация.
ПОСТРОЕНИЕ ДЕКОМПОЗИЦИИ, УДОВЛЕТВОРЯЮЩЕЙ ТРЕБОВАНИЯМ 3НФ Синтетический подход. Часть 1.
Нормализация отношений "Сложная система, спроектированная наспех, никогда не работает, и исправить её, чтобы заставить работать, невозможно". Законы Мерфи.
Четвёртая нормальная форма (4NF). 1. Определения Четвёртая нормальная форма (4NF) одна из возможных нормальных форм отношения реляционной базы данных.
устранение дублирования информации; решение проблемы присоединенных записей. Почему дублирование информации – это плохо? Лишний расход памяти. Проблемы.
Функциональные зависимости Нормализация отношений.
Нормальная форма Бойса - Кодда Отношение находится в нормальной форме Бойса – Кодда когда оно находится в третьей нормальной форме и в нём отсутствуют.
Нормализация. Рассматриваемые вопросы: 1.Нормализация 2.Классы отношений 3.Первоя нормальная форма 4.Вторая нормальная форма 5.Третья нормальная форма.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 8. тема: ТЕОРИЯ НОРМАЛЬНЫХ ФОРМ.
СУБД 4. Основы проектирования баз данных. Этапы жизненного цикла базы данных 1 Этапы проектирования : 1.Системный анализ и словесное описание информационных.
Виды моделей данных. Ядром любой базы данных является модель данных. Модель данных представляет собой множество структур данных, ограничений целостности.
Модуль 1. Математические основы баз данных и знаний 1.
Транксрипт:

Нормализация таблиц реляционной базы данных © Панова И.В

Нормализация - это формальный аппарат ограничений на формирование таблиц, который позволяет устранить дублирование, обеспечивает непротиворечивость хранимых данных и уменьшает трудозатраты на ведение базы данных. Для каждой ступени нормализации имеются наборы ограничений, которым должны удовлетворять отношения БД (удаляется из таблиц базы избыточная неключевая информация) На каждой ступени этого процесса схемы отношений приводятся в нормальные формы (всего шесть) Процесс нормализации заключается в разложении (декомпозиции) исходных отношений БД на более простые отношения

Обеспечить быстрый доступ к данным Исключить ненужное повторение данных, которое может являться причиной ошибок при вводе, а также привести к нерациональному использованию дискового пространства. Обеспечить целостность данных, т.е. чтобы при изменении одних объектов автоматически происходило соответствующее изменение связанных с ними объектов. Окончательная цель нормализации- получение такого проекта базы данных, в котором каждый факт появляется лишь в одном месте

Первая нормальная форма ( First Normal Form 1NF ) Вторая нормальная форма ( Second Normal Form 2NF ) Третья нормальная форма ( Third Normal Form 3NF ) Нормальная форма Бойса-Кодда ( Brice-Codd Normal Form – BCNF ) Четвертая нормальная форма ( Fourth Normal Form - 4NF ) Пятая нормальная форма -нормальная форма проекции-соединения ( Fifth Normal Form - 5NF, или PJ/NF ) Каждая последующая форма должна отвечать требованиям предыдущей плюс некоторые дополнительные требования

При описании нормальных форм используются следующие понятия: функциональная зависимость между полями полная функциональная зависимость между полями многозначная функциональная зависимость между полями транзитивная функциональная зависимость между полями взаимная независимость между полями

Функциональной зависимостью между полями А и В называется зависимость, при которой каждому значению А в любой момент времени соответствует единственное значение В из всех возможных. Полной функциональной зависимостью между составным полем А и полем В называется зависимость, при которой поле В зависит функционально от всего поля A и не зависит функционально от любого подмножества поля А. Многозначная функциональная зависимость между полями определяется следующим образом: поле А многозначно определяет поле В, если для каждого значения поля А существует «хорошо определенное множество» соответствующих значений поля В. Транзитивная функциональная зависимость между полями А и С существует в том случае, если поле С функционально зависит от поля В, а поле В функционально зависит от поля А, при этом не существует функциональной зависимости поля А от поля В. Взаимная независимость между полями определяется следующим образом: несколько полей взаимно независимы, если ни одно из них не является функционально зависимым от другого.

Таблица находится в первой нормальной форме тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто. Таблица, находящаяся в 1НФ, должна отвечать следующим требованиям: Таблица не должна иметь повторяющихся записей В таблице должны отсутствовать повторяющиеся группы полей Любая таблица в реляционной базе данных автоматически находится в первой нормальной форме (по определению). В такой таблице не должно содержаться полей, которые можно было бы разделить на несколько полей.

1)Определить поле, которое можно назначить первичным ключом. Если такого поля нет, то добавить уникальное ключевое поле 2)Определить группы повторяющихся полей 3)Вынести группы повторяющихся полей в отдельные таблицы, в основной таблице остается только одно поле для организации связи между таблицами 4)Назначить первичные ключи в новых таблицах 5)Определить тип отношения между таблицами

Пусть дана однотабличная БД «Заказы»: Дата заказа ФИО клиента Телефон клиента Номер счета Наименование товара Цена товара Фирма производитель Адрес фирмы производителя Количество товара Оплата товара Таблица не удовлетворяет требованиям 1НФ Не определён первичный ключ Содержит повторяющиеся группы полей: ФИО клиента и Телефон клиента

Дата заказа ФИО клиента Контактный телефон Номер счета Наименование товара Цена Фирма производитель Адрес фирмы производителя Количество товара Оплата Таблица «Клиенты» Код клиента ФИО клиента Контактный телефон Номер счета Таблица «Товары» Код товара Наименование товара Цена Таблица «Производители» Код производителя Фирма производитель Адрес фирмы производителя Таблица «Заказы» Код заказа Дата заказа Количество товара Оплата Приведение БД к 1НФ

Таблица «Заказы» Код заказа Дата заказа Количество товара Оплата Код клиента Код товара Таблица «Клиенты» Код клиента ФИО клиента Контактный телефон Номер счета Таблица «Товары» Код товара Наименование товара Цена Код производителя Таблица «Производители» Код производителя Фирма производитель Адрес фирмы производителя 1 М 1 М 1 М Определяем связи

Таблица находится во второй нормальной форме, если она удовлетворяет определению 1НФ и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом (каждый неключевой атрибут зависит от всего составного ключа и не зависит от его частей – нет частично зависимых полей). Для приведения таблицы к 2НФ необходимо: 1. Вынести все частично-зависимые поля в отдельную таблицу 2. Определить ключевое поле 3. Установить отношения между таблицами

Код проекта Название Основная цель Продолжительность Код руководителя проекта Фамилия руководителя Телефон руководителя Пример: таблица «Проекты» Составной ключ Код проекта Код руководителя проекта Есть ли в таблице частично-зависимые поля? Название Основная цель Продолжительность Код проекта Код руководителя Фамилия руководителя Телефон руководителя

Таблица «Проекты» Таблица «Руководители» Код проекта Название Основная цель Продолжительность Код руководителя Фамилия руководителя Телефон руководителя 1 м

Таблица находится в третьей нормальной форме, если она удовлетворяет определению 2НФ и ни один из ее атрибутов функционально независим от любого другого атрибута. Таблица в 3НФ: должна отвечать требованиям 2НФ все не ключевые атрибуты взаимно независимы (нет полей, не зависящих от ключа) Алгоритм приведения к 3НФ: 1. Вынести все поля, не зависящие от ключа, в отдельную таблицу 2. Определить ключевые поля 3. Установить отношения

Таблица «Заказы» Код заказа Фамилия покупателя Дата продажи Код менеджера Фамилия менеджера Таблица «Заказы» Код заказа Фамилия покупателя Дата продажи Код менеджера Таблица «Менеджеры» Код менеджера Фамилия менеджера 1 м Таблица не находится в 3НФ: поле Фамилия менеджера зависит от поля Код менеджера

ЗАДАНИЕ: Дана таблица Предметы (Код предмета, Название, Цикл, Объем часов, Преподаватели) Необходимо последовательно привести её к 1НФ, 2НФ и 3НФ. Приведение таблицы к 1 НФ ПРЕДМЕТ ( Код предмета, Название, Цикл, Объем часов) ПРЕПОДАВАТЕЛЬ ( Код преподавателя, ФИО, Должность, Контакты, Код предмета) ПРЕДМЕТ ( Код предмета, Название, Цикл, Объем часов) ПРЕПОДАВАТЕЛЬ ( Код преподавателя, ФИО, Должность, Оклад, Контакты) ИЗУЧЕНИЕ ( Код предмета, Код преподавателя) Приведение таблицы к 2НФ ПРЕДМЕТ ( Код предмета, Название, Объем часов, Код цикла) ЦИКЛ ( Код цикла, Название цикла) ПРЕПОДАВАТЕЛЬ ( Код преподавателя, ФИО, Должность, Оклад, Контакты) ИЗУЧЕНИЕ ( Код предмета, Код преподавателя) ПРЕДМЕТ ( Код предмета, Название, Объем часов, Код цикла) ЦИКЛ ( Код цикла, Название цикла) ПРЕПОДАВАТЕЛЬ ( Код преподавателя, ФИО, Код должности, Контакты) ДОЛЖНОСТЬ ( Код должности, Название должности, Оклад) ИЗУЧЕНИЕ ( Код предмета, Код преподавателя) Приведение таблицы к 3НФ 1НФ 2НФ 3НФ