Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
Любая задача на C/C++
Одно любое задание в mYsql
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Повышение уникальности твоей работе
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си
Любой реферат по информатике

Теория нормализации

2021-03-09СтудИзба

Лекция 12. Теория нормализации

Переход от инфологического проектирования к даталогическому производится с учетом выбора СУБД. В данном курсе мы изучаем РМД и, следовательно, выбираем реляционную СУБД.

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

Обычно различают следующие проблемы:

· избыточность данных;

· аномалии обновления;

· аномалии удаления;

· аномалии ввода.

Рекомендуемые материалы

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

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

Аномалии удаления могут возникать при удалении записей из ненормализованных таблиц и характеризуются вероятностью удаления не всех дублированных кортежей.

Аномалии ввода возникают при добавлении в таблицу новых записей, обычно в поля с ограничениями NOT NULL (не пустые). Кода в отношение на данный момент времени невозможно ввести однозначную информацию.

Для ликвидации нежелательных функциональных зависимостей есть специальный формальный механизм называемый нормализацией. В процессе нормализации происходит устранение избыточности и противоречивости хранимых данных.

Нормальные формы

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

В теории реляционных БД обычно выделяется следующая последовательность нормальных форм:

· первая нормальная форма (1НФ);

· вторая нормальная форма (2НФ);

· третья нормальная форма (3НФ);

· нормальная форма Бойса-Кодда (БКНФ);

· четвертая нормальная форма (4НФ);

· пятая нормальная форма, или нормальная форма проекции-соединения (5НФ или ПС/НФ).

Основные свойства нормальных форм:

· каждая следующая нормальная форма, в некотором смысле, улучшает свойства предыдущей;

· при переходе к следующей нормальной форме свойства предыдущих нормальных форм сохраняются.

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

    Пусть необходимо автоматизировать процесс отпуска товаров со склада по накладной, примерный вид накладной на рисунке 12.1.

Накладная № 234

ДатаПокупательАдрес
10.01.2002ООО «Геракл»г. Москва, ул. Стромынка, 20

Отпущен товарКоличествоЕд. изм.Цена ед. измОбщая стоимость
Тушенка1000банки2525000
Сахар50КГ10500
Макароны300кг103000

ИТОГО28500


Рисунок 12.1 - Примерный вид накладной.

По накладной можно сформировать следующее отношение удовлетворяющее 1НФ (рисунок 12.2):

ОТПУК ТОВАРОВ
Номер накладной
Дата
Покупатель
Город
Адрес
Товар
Количество
Ед.изм.
Цена ед.изм.
Общая стоимость



Рисунок 12.2 - Отношение «Отпуск товаров»

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

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

X®Y.

Необходимо отметить, что атрибут, указываемый в левой части называется детерминантом.

Продолжим рассмотрение описанного выше примера. Для приведения отношения к 2НФ необходимо вначале выделить первичный ключ. Первичный ключ возможно определить из следующих рассуждений. Если бы по одной накладной отпускался бы только один товар, то первичным ключом являлся бы атрибут «Номер накладной», однако по одной накладной отпускается несколько различных товаров, следовательно, первичный ключ должен состоять из двух атрибутов «Номер накладной» и «Товар», только в этом случае будет обеспечено свойство уникальности.

Рассмотрим функциональные зависимости атрибутов от первичного ключа, при этом проще начинать рассмотрение с частей первичного ключа, в данном случае с атрибута «Номер накладной»:

Номер накладной ® Покупатель

Номер накладной ® Дата

Номер накладной ® Город

Номер накладной ® Адрес

Определим функциональные зависимости от атрибута «Товар»:

Товар ® Ед.изм

Товар ® Цена ед.изм

Оставшиеся атрибуты определяются первичным ключом:

Номер накладной, Товар ® Количество

Номер накладной, Товар ® Общая стоимость

В результате мы получили три различные категории, у каждой из которых свой первичный ключ. После проведения вышеуказанного анализа отношения производим его декомпозицию и определяем типы связей (рисунок 12.3)

Рисунок 12.3 - Отношение «Отпуск товаров», находящееся в 2НФ

В результате получаем отношения, все атрибуты которых полностью, функционально зависимы от своих первичных ключей и, следовательно, удовлетворяют условию 2НФ.

Определение 3НФ.           Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится во второй нормальной форме и не содержит транзитивных зависимостей между не ключевыми атрибутами.

Функциональная зависимость атрибутов X и Y отношения называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости X® Z и Z ®Y, но отсутствует функциональная зависимость Z ®Х.

В результате анализа отношения «НАКЛАДНАЯ» определяем следующую транзитивную зависимость:

Номер накладной ® Покупатель

Номер накладной ® Город

Номер накладной ® Адрес

Покупатель ®  Город

Покупатель ®  Адрес

В результате анализа отношения «ОТПУСК ТОВАРОВ», также определяется транзитивная зависимость следующего вида:

Номер накладной, Товар ® Количество

Номер накладной, Товар ® Общая стоимость

Количество ®  Общая стоимость

От транзитивной зависимости в отношении «НАКЛАДНАЯ» можно избавиться простой декомпозицией отношения. С атрибутом «Общая стоимость» отношения «ОТПУСК ТОВАРОВ» можно поступить еще проще, отказаться от использования этого атрибута, т.к. общую стоимость можно всегда получить, зная цену единицы товара и какое его количество продано, следовательно, не имеет смысла использовать внешние носители для хранения этих данных. В результате получим следующую схему отношений приведенную к 3НФ (рисунок 12.4).

Рисунок 12.4 - Отношение «Отпуск товаров», находящееся в 3НФ

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

Контрольные вопросы

1. Для чего необходим процесс нормализации?

2. Какие аномалии могут возникать при использовании ненормализованных отношений и почему?

3. Определите процессы синтеза и декомпозиции.

4. Назовите определение 1НФ.

5. Назовите определение 2НФ.

6. Назовите определение 3НФ.

7. Что дает приведение БД  к 3НФ?

8. Почему приведение к 3НФ считается достаточным для большинства проектов БД?

Задания для самостоятельной работы

Дана таблица 12.1, которую можно представить в виде отношения представленного на рисунке 12.5, проведите нормализацию отношения.

Таблица 12.1 – Расписание занятий

Преподаватель

День нед.

Пара

Дисциплина

Тип занятий

Группа

Петров В. И.

ПН

1

Теор. выч. проц.

Лекция

4906

ВТ

1

Коми, графика

Лаб. раб.

4907

ВТ

2

Комн. графика

Лаб. раб.

4906

Киров В. А.

ПН

2

Теор. информ.

Лекция

4906

ВТ

3

Пр-е па C++

Лаб. раб.

4907

ВТ

4

Пр-е на C++

Ллб. раб.

4906

Ссргш А. А.

ПН

3

Защита инф.

Лекция

4944

СР

3

Пр-е на VB

Лаб. раб.

4942

ЧТ

4

Пр-е на VB

Если Вам понравилась эта лекция, то понравится и эта - 11 - Эндогенные геологические процессы.

Лаб. раб.

4922

Расписание занятий
Преподаватель
День нед.
Пара
Дисциплина
Тип занятий
Группа



Рисунок 12.5 – Отношение «Расписание занятий»

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее