Файл: Базы данных МУ ЛР.pdf

Добавлен: 28.11.2018

Просмотров: 5105

Скачиваний: 37

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

46 

 

 

 

Реализуйте следующие запросы к таблице: 

1. Вывод всех записей и полей из таблицы с их сортировкой по дате 

продажи. 

2. Вывод всех записей с полями «Товар», «Дата заказа», «Количество» 

только для покупателя «База № 28». 

3. Вывод всех записей, в которых товаров продано более 10. 

4. Вывод списка продаж, сделанных в мае 2017 г. 

5. Создайте запрос на изменение данных, который реализует смену ад-

реса покупателя ООО «Свет» на «Сибирская, 18-3». 

6. Посчитайте количество купленных товаров покупателем ТОО «Ге-

ракл». 

7. Для  каждого покупателя  выведите  суммарное количество  куплен-

ных товаров. 

 

 


background image

47 

 

 

 

ЛАБОРАТОРНАЯ РАБОТА № 3                                      

«НОРМАЛИЗАЦИЯ ДАННЫХ»  

Цель  работы:  практическое  освоение  основных  приемов  и  правил 

приведения таблиц к третьей нормальной форме.  

Темы для предварительного изучения. Избыточное дублирование 

данных, аномалии. Нормализация таблиц. Первая, вторая и третья нормаль-

ные формы. 

3

.1 Нормализация баз данных 

В процессе нормализации элементы данных группируются в таблицы, 

представляющие  классы  объектов  (сущности)  и  их  взаимосвязи.  Теория 

нормализации основана на том, что определенный набор отношений обла-

дает лучшими свойствами при включении, модификации и удалении дан-

ных, чем все остальные наборы отношений, с помощью которых могут быть 

представлены те же данные. 

Введение нормализации отношений при разработке инфологической 

модели обеспечивает ее работоспособность. Это вовсе не означает, что не-

нормализованная  модель  обязательно  окажется  неработоспособной.  Дело 

в том, что ненормализованная модель может вызвать определенные трудно-

сти реализации ПП, модифицирующих БД. 

Нормализация  –  процесс  реорганизации  данных  путем  ликвидации 

повторяющихся  групп  и  иных  противоречий  в  хранении  данных  с  целью 

приведения таблиц к виду, позволяющему осуществлять непротиворечивое 

и корректное редактирование данных. 

В  основе  классического  процесса  нормализации  лежит  последова-

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


background image

48 

 

 

 

и так до последней. Однако на практике в большинстве случаев использу-

ются только первые три нормальные формы, т. е. нормализация проводится 

до достижения всеми таблицами схемы БД третьей нормальной формы. 

Функциональные зависимости определяют не текущее состояние БД, 

а все возможные ее состояния, т. е. они отражают те связи между атрибу-

тами, которые присущи реальному объекту, который моделируется с помо-

щью таблиц БД. 

Поэтому определить функциональные зависимости по текущему состо-

янию БД можно только в том случае, если экземпляр БД содержит абсолютно 

полную информацию (то есть никаких добавлений и модификации БД не пред-

полагается). В реальной жизни это требование невыполнимо, поэтому набор 

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

исходя из глубокого системного анализа предметной области [8]. 

Понятие  зависимости  атрибутов  или  функциональной  зависимости 

можно определить следующим образом: атрибут В функционально зави-

сит от атрибута А, если каждому значению А соответствует в точности одно 

значение В (обозначается А→В). То есть во всех кортежах (записях) с оди-

наковым значением атрибута А атрибут В будет обязательно иметь также 

одно и то же значение. В качестве А и В могут выступать как простые атри-

буты, так и составные, т. е. состоящие из нескольких атрибутов. 

Чтобы таблица соответствовала первой нормальной форме, все зна-

чения ее полей должны быть атомарными и все записи – уникальными. По-

этому любая реляционная таблица по определению уже находится в первой 

нормальной форме. 

Говорят, что реляционная таблица находится во второй нормальной 

форме, если она находится в первой нормальной форме и ее неключевые 

поля полностью зависят от всего первичного ключа

 


background image

49 

 

 

 

Для  перевода  таблицы  из  1НФ  в  2НФ  необходимо  воспользоваться 

следующим алгоритмом: 

1. Определить все частичные зависимости, т. е. все части первичного 

ключа и все неключевые атрибуты, которые от них зависят. 

2. Для каждой части первичного ключа и набора неключевых атрибу-

тов, которые от них зависят, необходимо создать новую таблицу и скопиро-

вать  эти  данные  в неё.  В  новой  таблице  бывшая  часть  первичного ключа 

станет первичным ключом. 

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

неключевые атрибуты, при этом не удаляя части первичного ключа, кото-

рые станут ещё и внешними ключами, связанными с новыми таблицами. 

Говорят, что реляционная таблица находится в третьей нормальной 

форме, если она находится во второй нормальной форме и все ее неключе-

вые поля зависят только от первичного ключа

Для того чтобы перевести таблицу из 2НФ в 3НФ, необходимо вос-

пользоваться следующим алгоритмом: 

1. Определить  зависимости  группы  одних  неключевых  атрибутов 

от других неключевых атрибутов. 

2. Для каждого такого неключевого атрибута и набора неключевых ат-

рибутов, которые от него зависят, необходимо создать новую таблицу и ско-

пировать эти данные в неё. В новой таблице бывший неключевой атрибут, 

от которого зависят остальные, станет первичным ключом. 

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

неключевые  атрибуты,  при  этом  не  удаляя  того,  от  которого  все  зависят, 

ведь он станет ещё и внешним ключом, связанным с новой таблицей. 

 

 


background image

50 

 

 

 

3

.2 Пример нормализации 

Привести данные в таблице последовательно к 1НФ, 2НФ, ЗНФ. 

Дата 

продажи 

Покупатель 

Товар 

Вид  

товара 

Цена 

Кол-во 

11.01.18 

ТОО «Союз» 

Стул 14К 

Стул 

1 500 

14.01.18 

ИП Иванов 

Диван 43М 

Диван 

8 500 

26.01.18 

ТОО «Союз» 

Стол 12А 

Стол 

3 500 

10 

14.02.18 

ООО «Свет» 

Диван 43М 

Диван 

8 500 

16.02.18 

ИП Иванов 

Стул 14К 

Стул 

1 600 

10 

 

Для проведения нормализации таблицы необходимо последовательно 

убедиться в том, что таблица соответствует условиям, которые предъявля-

ются к различным нормальным формам. 

Очевидно, что исходная таблица уже находится в 1НФ, т. к. все записи 

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

для  приведения  таблицы  к  последующим  нормальным  формам  в  таблице 

необходимо выделить первичный ключ. 

Дата 

продажи 

Покупатель 

Товар 

Вид  

товара 

Цена 

Кол-во 

11.01.18 

ТОО «Союз» 

Стул 14К 

Стул 

1 500 

14.01.18 

ИП Иванов 

Диван 43М 

Диван 

8 500 

26.01.18 

ТОО «Союз» 

Стол 12А 

Стол 

3 500 

10 

14.02.18 

ООО «Свет» 

Диван 43М 

Диван 

8 500 

16.02.18 

ИП Иванов 

Стул 14К 

Стул 

1 600 

10 

 

В данной таблице в качестве первичного ключа необходимо выбрать 

комбинацию атрибутов «Дата продажи», «Покупатель», «Товар», ведь один 

покупатель в один и тот же день может купить разные товары, а для первого 

ключа самым важным свойством является свойство уникальности, т. е. он 

не  должен  повторяться.  При  использовании  такой  комбинации  атрибутов 

первичный ключ дублироваться не будет, а если покупатель в один и тот же 

день приобретет несколько раз один и тот же товар, то просто необходимо 

будет увеличить его количество.