Главная | Случайная
Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Нормализация Базы Данных




Результатом работы с АИС магазина компьютерных товаров является чек, который оформляет продавец. В этом чеке должна содержаться информация о количестве товаров в чеке, количестве каждого товара, стоимости товара, сумме покупки, скидке по товару, сумме покупки со скидкой. Если речь идёт о сети магазинов, то необходимо указать ещё и информацию о магазине (название, адрес), в котором данный чек был оформлен. А т.к. заработная плата продавцов зависит от их личных продаж, то в чеке необходимо указать и данные продавца, который оформил данный чек. Исходя из этого инфологическая модель базы данных будет выглядеть следующим образом:

 

Товар
Продавец
Магазин
Чек
Продаёт
Оформляет
Указывает
Рисунок 1 - Инфологическая модель

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

В результате нормализации обеспечивается:

· регулярность описаний данных;

· возможность присоединения новых полей, записей, связей без изменения существующих подсхем (или внешних моделей) и, соответственно, ПП. это обычно требует больших дополнительных затрат по сопровождению;

· максимальная гибкость при обработке произвольных запросов с рабочих мест пользователей.

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

Существует несколько правил нормализации баз данных. Каждое правило называется «нормальной формой». Если выполняется первое правило, говорят, что база данных представлена в «первой нормальной форме». Если выполняются три первых правила, считается, что база данных представлена в «третьей нормальной форме». Есть и другие уровни нормализации, однако для большинства приложений достаточно нормализовать базы данных до третьей нормальной формы.

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

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

1 избыточность данных; 2 аномалии обновления; 3 аномалии удаления; 4 аномалии ввода;

Можно легко представить себе пример ненормализованной таблицы, с которой будет очень неудобно работать:

 

Таблица 1 - Пример ненормализованной таблицы

Чек
Магазин Дата покупки Время покупки Продавец Товар Цена товара Количество товара Сумма покупки Скидка % Сумма покупки с учётом скидки Вид оплаты
Маг. 1 01.01.01 13:12 Иванов ПК нал
Маг. 1 01.01.01 13:12 Иванов Мышь нал
Маг. 1 01.01.01 13:12 Иванов Колонки нал

 

В нескольких записях таблицы повторяется одна и та же информация, следовательно, возникает избыточность данных. Такая таблица не может использоваться в магазине, т.к. на каждую единицу товара, купленную одним покупателем, нужно будет выбивать отдельный чек. Из таблицы видно, что в полях «Магазин», «Продавец» повторяются одни и те же данные, этого можно избежать созданием отдельных таблиц «Магазины» и «Продавцы», а в чеке указывать только коды продавцов и магазинов. Избавиться от необходимости выбивать отдельный чек на каждую единицу товара, можно путём создания таблиц «Товар», «Категории товара», «Скидки» и «Позиции в чеке». Поля «Сумма покупки» и «Сумма покупки с учётом скидки» должны заполняться расчётными данными, это можно реализовать с помощью компонентов интерфейса, который я разработал в Delphi (это я описал в пункте 2.3 Создание пользовательского интерфейса для работы с базой данных) – в среде Delphi добавить компоненты, которые позволят вывести данные о стоимости покупки и стоимости покупки со скидкой на напечатанный чек. Этим мы значительно сократим размеры базы данных в будущем, при введении её в эксплуатацию, т.е. заполнении таблиц.

Первая нормальная форма (1NF).

Первая нормальная форма – это основа реляционной системы. Для соответствия этой форме требуется чтобы таблица был двумерной и не содержала ячеек, включающих несколько значений (значения должны быть атомарными). Для того чтобы привести таблицу к 1NFнам необходимо исключить дублирование строк. Электронные таблицы часто включают третье измерение, но в таблицах баз данных оно использоваться не должно. Рассмотреть эту проблему можно также с помощью отношения «один ко многим», тогда совет можно сформулировать следующим образом: не включайте в одну таблицу элементы, представляющие обе стороны данного отношения. Вместо этого создайте другие таблицы в первой нормальной форме, устранив повторяющиеся группы.

Таким образом таблицы «Магазины», «Продавцы», «Товары», «Скидки», «Позиции в чеке», «Категории товаров», «Чек» в 1NF, будут выглядеть следующим образом:

 

Таблица 3 - 1NF "Магазины"

Магазины
Код Название Адрес
«Кибертрон» Ул. Центральная 1
«Кибертрон мини» Ул. Южная 5
«Кибертрон сервис» Ул. Северная 13

 

 

Таблица 4 - 1NF "Продавцы"

Продавцы
Код Фамилия Имя Отчество
Иванов Пётр Сергеевич
Сидорова Елена Александровна
Василенко Артём Михайлович

 

 

Таблица 5 - 1NF "Товары"

Товары
Код Наименование Код категории Цена за единицу Остаток на складе
ASUS ER8596
Defender 85
GeForce k560

 

Таблица 6 - 1NF "Скидки"

Скидки
Код Вид скидки Размер скидки %
Карта клиента
Сезонная акция

 

Таблица 7 - 1NF "Категории товаров"

Категории товаров
Код Название
Материнские платы
Клавиатуры

 

Таблица 8 - 1NF "Позиции в чеке"

Позиции в чеке
Код Код чека Код товара Количество купленного товара

 

Таблица 9 - 1NF "Чек"

Чек
Код Код магазина Дата покупки Время покупки Код продавца Сумма покупки Код скидки Сумма покупки со скидкой
19.03.2016 11:35    
19.03.2016 11:35    

 

Теперь все таблицы базы данных соответствуют первой нормальной форме.

Вторая нормальная форма (2NF): устранение избыточных данных

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

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

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

 

от части составного потенциального ключа.

Вторая нормальная форма по определению запрещает наличие не ключевых

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

. Процесс приведения к 2NF позволяет избавиться от большей части повторяющихся данных.

При приведении базы данных к 2 NF таблицы преобразовались:

 

Магазины   Продавцы   Категории   Чек
Код   Код   Код   Код
Название   Фамилия   Название категории   Дата покупки
Адрес   Имя       Время покупки
    Отчество       Код продавца
            Код скидки
Позиции в чеке       Скидка   Код магазина
Код чека   Товары   Код скидки   Сумма покупки
Количество куп-го товара   Код   Вид скидки   Сумма со скидкой
Код товара   Код категории   Размер скидки    
    Цена за единицу        
    Остаток на складе        
    Наименование        
             

Рисунок 2 - 2NF

Рисунок 2 – показывает, что все таблицы соответствуют второй нормальной форме. Следовательно, можно приступить к формированию третьей нормальной формы.

Третья нормальная форма (3NF)

В 3NF необходимо исключить транзитивную зависимость между полями. Чтобы перейти к 3NF необходимо выполнить следующие действия:

1) Определить все поля, от которых зависят другие поля.

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

3) Удалить перемещенные поля из исходной таблицы.

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

 

 

Позиции в чеке       Продавцы
Код       Код
Код чека       Фамилия
Код товара       Имя
Количество купленного товара       отчество
    Чек    
    Код   Скидки
Товары   Дата покупки   Код
Код   Время покупки   Вид скидки
Код категории   Код продавца   Размер скидки
Цена за единицу   Код скидки    
Остаток на складе   Код магазина    
Наименование   Сумма покупки    
    Сумма со скидкой   Магазины
Категории товаров       Код
Код       Название
Название категории       Адрес
         
         

Рисунок 3 - Логическая схема

 

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

 




Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2019 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных