Нормализация Базы Данных - Разработка информационной системы "Магазин компьютерных товаров"
Результатом работы с АИС магазина компьютерных товаров является чек, который оформляет продавец. В этом чеке должна содержаться информация о количестве товаров в чеке, количестве каждого товара, стоимости товара, сумме покупки, скидке по товару, сумме покупки со скидкой. Если речь идет о сети магазинов, то необходимо указать еще и информацию о магазине (название, адрес), в котором данный чек был оформлен. А т. к. заработная плата продавцов зависит от их личных продаж, то в чеке необходимо указать и данные продавца, который оформил данный чек. Исходя из этого инфологическая модель базы данных будет выглядеть следующим образом:
Нормализацией БД называется процедура декомпозиции или композиции исходных схем отношений проекта БД, назначение ключей для каждого отношения с целью исключения возможных аномалий при манипулировании данными. Правила нормализации разработаны Коддом в 1972 году.
В результате нрмализации обеспечивается:
- - регулярность описаний данных; - возможность присоединения новых полей, записей, связей без изменения существующих подсхем (или внешних моделей) и, соответственно, ПП. это обычно требует больших дополнительных затрат по сопровождению; - максимальная гибкость при обработке произвольных запросов с рабочих мест пользователей.
Нормализация базируется на представлении данных двухмерными таблицами, составляющими основу реляционных моделей данных. Важно отметить, что любая иерархическая или сетевая модель данных может быть с некоторой избыточностью разложена в совокупность двухмерных таблиц.
Существует несколько правил нормализации баз данных. Каждое правило называется "нормальной формой". Если выполняется первое правило, говорят, что база данных представлена в "первой нормальной форме". Если выполняются три первых правила, считается, что база данных представлена в "третьей нормальной форме". Есть и другие уровни нормализации, однако для большинства приложений достаточно нормализовать базы данных до третьей нормальной формы.
Нормализация Базы Данных - представляет собой процесс реорганизации данных путем ликвидации повторяющихся групп и иных противоречий, с целью приведения таблиц к виду, позволяющему осуществить непротиворечивое и корректное редактирование данных. Окончательная цель нормализации сводится к получению такого проекта, в котором каждый факт появляется только в одном месте, таким образом, нормализация - это процесс уменьшения избыточности информации в реляционной базе данных.
Избыточность информации удаляется не с целью экономии памяти, сколько для исключения противоречивых хранимых данных и упрощения управления ими. Использование ненормализованных таблиц может привести к нарушению целостности данных. Обычно различают следующие проблемы, возникающие при использовании ненормализованных таблиц:
1 избыточность данных; 2 аномалии обновления; 3 аномалии удаления; 4 аномалии ввода;
Можно легко представить себе пример ненормализованной таблицы, с которой будет очень неудобно работать:
Таблица 1 - Пример ненормализованной таблицы
Чек | |||||||||
Магазин |
Дата покупки |
Время покупки |
Продавец |
Товар |
Цена товара |
Количество товара |
Сумма покупки |
Скидка % |
Вид оплаты |
Маг. 1 |
01.01.01 |
13:12 |
Иванов |
ПК |
25000 |
1 |
25000 |
5 |
Нал |
Маг. 1 |
01.01.01 |
13:12 |
Иванов |
Мышь |
1000 |
1 |
1000 |
5 |
Нал |
Маг. 1 |
01.01.01 |
13:12 |
Иванов |
Колонки |
2500 |
1 |
2500 |
5 |
Нал |
В нескольких записях таблицы повторяется одна и та же информация, следовательно, возникает избыточность данных. Такая таблица не может использоваться в магазине, т. к. на каждую единицу товара, купленную одним покупателем, нужно будет выбивать отдельный чек. Из таблицы видно, что в полях "Магазин", "Продавец" повторяются одни и те же данные, этого можно избежать созданием отдельных таблиц "Магазины" и "Продавцы", а в чеке указывать только коды продавцов и магазинов. Избавиться от необходимости выбивать отдельный чек на каждую единицу товара, можно путем создания таблиц "Товар", "Категории товара", "Скидки" и "Позиции в чеке". Поля "Сумма покупки" и "Сумма покупки с учетом скидки" должны заполняться расчетными данными, это можно реализовать с помощью компонентов интерфейса, который я разработал в Delphi (это я описал в пункте 2.3 Создание пользовательского интерфейса для работы с базой данных) - в среде Delphi добавить компоненты, которые позволят вывести данные о стоимости покупки и стоимости покупки со скидкой на напечатанный чек. Этим мы значительно сократим размеры базы данных в будущем, при введении ее в эксплуатацию, т. е. заполнении таблиц.
Первая нормальная форма (1NF).
Первая нормальная форма - это основа реляционной системы. Для соответствия этой форме требуется чтобы таблица был двумерной и не содержала ячеек, включающих несколько значений (значения должны быть атомарными). Для того чтобы привести таблицу к 1NFнам необходимо исключить дублирование строк. Электронные таблицы часто включают третье измерение, но в таблицах баз данных оно использоваться не должно. Рассмотреть эту проблему можно также с помощью отношения "один ко многим", тогда совет можно сформулировать следующим образом: не включайте в одну таблицу элементы, представляющие обе стороны данного отношения. Вместо этого создайте другие таблицы в первой нормальной форме, устранив повторяющиеся группы.
Таким образом таблицы "Магазины", "Продавцы", "Товары", "Скидки", "Позиции в чеке", "Категории товаров", "Чек" в 1NF, будут выглядеть следующим образом:
Таблица 3 - 1NF "Магазины"
Магазины | ||
Код |
Название |
Адрес |
1 |
"Кибертрон" |
Ул. Центральная 1 |
2 |
"Кибертрон мини" |
Ул. Южная 5 |
3 |
"Кибертрон сервис" |
Ул. Северная 13 |
Таблица 4 - 1NF "Продавцы"
Продавцы | |||
Код |
Фамилия |
Имя |
Отчество |
1 |
Иванов |
Петр |
Сергеевич |
2 |
Сидорова |
Елена |
Александровна |
3 |
Василенко |
Артем |
Михайлович |
Таблица 5 - 1NF "Товары"
Товары | ||||
Код |
Наименование |
Код категории |
Цена за единицу |
Остаток на складе |
1 |
ASUS ER8596 |
1 |
15000 |
15 |
2 |
Defender 85 |
2 |
1000 |
41 |
3 |
GeForce k560 |
3 |
26000 |
9 |
Таблица 6 - 1NF "Скидки"
Скидки | ||
Код |
Вид скидки |
Размер скидки % |
1 |
Карта клиента |
7 |
2 |
Сезонная акция |
5 |
Таблица 7 - 1NF "Категории товаров"
Категории товаров | |
Код |
Название |
1 |
Материнские платы |
2 |
Клавиатуры |
Таблица 8 - 1NF "Позиции в чеке"
Позиции в чеке | |||
Код |
Код чека |
Код товара |
Количество купленного товара |
1 |
1 |
1 |
1 |
2 |
1 |
2 |
3 |
Таблица 9 - 1NF "Чек"
Чек | |||||||
Код |
Код магазина |
Дата покупки |
Время покупки |
Код продавца |
Сумма покупки |
Код скидки |
Сумма покупки со скидкой |
1 |
1 |
19.03.2016 |
11:35 |
1 |
2 | ||
2 |
1 |
19.03.2016 |
11:35 |
3 |
1 |
Теперь все таблицы базы данных соответствуют первой нормальной форме.
Вторая нормальная форма (2NF): устранение избыточных данных
Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый не ключевой атрибут неприводимо зависит от ее потенциального ключа.
Неприводимость означает, что в составе потенциального ключа отсутствует меньшее подмножество атрибутов, от которого можно также вывести данную функциональную зависимость. Для неприводимой функциональной зависимости часто используется эквивалентное понятие "полная функциональная зависимость".
Если потенциальный ключ является простым, то есть состоит из единственного атрибута, то любая функциональная зависимость от него является неприводимой (полной). Если потенциальный ключ является составным, то согласно определению второй нормальной формы, в отношении не должно быть не ключевых атрибутов, зависящих
От Части составного потенциального ключа.
Вторая нормальная форма по определению запрещает наличие не ключевых
Атрибутов, которые Вообще не зависят от потенциального ключа. Таким образом, вторая нормальная форма в том числе запрещает создавать отношения как несвязанные (хаотические, случайные) наборы атрибутов.
. Процесс приведения к 2NF позволяет избавиться от большей части повторяющихся данных.
При приведении базы данных к 2 NF таблицы преобразовались:
Рисунок 2 - показывает, что все таблицы соответствуют второй нормальной форме. Следовательно, можно приступить к формированию третьей нормальной формы.
Третья нормальная форма (3NF)
В 3NF необходимо исключить транзитивную зависимость между полями. Чтобы перейти к 3NF необходимо выполнить следующие действия:
- 1) Определить все поля, от которых зависят другие поля. 2) Создать новую таблицу для каждого такого поля или группы полей и группы зависящих от него полей переместить в другую таблицу. 3) Удалить перемещенные поля из исходной таблицы.
В результате нормализации все таблицы базы данных соответствуют третьей нормальной форме. Следовательно, можно приступать непосредственно к формированию базы данных. Логическая схема АИС "Магазин компьютерных товаров" будет выглядеть следующим образом
На логической схеме подчеркиванием выделены все ключевые поля, от которых зависят остальные, Курсивом выделены поля главной таблицы, которые являются внешними ключами, т. е. связывают главную таблицу с подчиненными.
Похожие статьи
-
Программный интерфейс для базы данных я разрабатывал в объектно-ориентрованной среде Delphi, с помощью Embarcadero RAD Studio. Конструктор форм Delphi в...
-
Программное обеспечение сервера базы данных обрабатывает запросы, инициализированные программным обеспечением клиента, отправляя результат обратно в базу...
-
Основные термины теории баз данных - БД (База данных) - совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы...
-
2.1 Описание структуры базы данных Реляционная схема базы данных для ЦЗН представлена следующими таблицами: "ПО" - содержит список единиц программного...
-
Реализация с помощью средств быстрой разработки DbForge Studio for SQL Server -- среда разработки для БД SQL Server, создания отчетов по данным, их...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
ЗАКЛЮЧЕНИЕ, СПИСОК ЛИТЕРАТУРЫ - Разработка информационной системы "Магазин компьютерных товаров"
В процессе работы я расширил свои знания касательно работы с SQL Server, а результатом работы стала правильно спроектированная, проверенная на логическую...
-
Моделирование предметной области Этапом проектирования базы данных любого типа начинается с анализа предметной области, который заканчивается построением...
-
Разработка логической модели АИС - Проектирование автоматизированной информационной системы
Логическая модель данных является начальным прототипом будущей базы данных. Логическая модель строится в терминах информационных единиц, но без привязки...
-
Типы данных и команды SQL - Разработка информационной системы "Магазин компьютерных товаров"
Microsoft SQL Server поддерживает большинство типов данных SQL 2003. Также SQL Server поддерживает дополнительные типы данных, используемые для...
-
В связи с увеличением числа сотрудников, работающих в компании, а также с расширением рабочего проекта, возникла проблема, связанная с версионностью...
-
Постановление Правительства Российской Федерации №1119 "Об утверждении требований к защите персональных данных при их обработке в информационных системах...
-
Алгоритм работы. В результате работы АИС генерируются три xml документа - два со структурой сравниваемых баз данных и один с результатами сравнения. В...
-
Модуль функционирует на персональном компьютере под управлением операционной системы версии Microsoft Windows 7 и выше с поддержкой всех соглашений,...
-
Описание входной и выходной информации "Учет продаж футбольной атрибутики и спортивных товаров". Входная информация задачи: 1. Условно постоянная...
-
Физическая модель базы данных определяет способ размещения данных в среде хранения и способ доступа к этим данным, которые поддерживаются на физическом...
-
Информационная система (ИС) ГИБДД должна обеспечивать хранение информации об автомобилях (марка, номер кузова, номер двигателя, цвет кузова, гос. номер),...
-
Проектирование базы данных было Подробно описано в главе 7. Благодаря графической оболочке MySQL Workbench для MySQL все SQL запросы на создание таблиц...
-
При запуске программы с входными параметрами {"-makexls" "filename. xls" "температурная_точка" "отклонение" "элемент"} происходит извлечение результатов...
-
Регистрация нового пользователя в системе возможна двумя способоами: 1) Самостоятельная регистрация пользователя; 2) Регистрация пользователя...
-
ИЕРАРХИЧЕСКАЯ МОДЕЛЬ ДАННЫХ ИМД основана на понятии деревьев, состоящих из вершин и ребер. Вершине дерева ставится в соответствие совокупности атрибутов...
-
Ниже представлена инструкция пользователя автоматизированной системы "Аптека": Краткое описание возможностей Информационно-справочная система "Аптека"...
-
Функциональные требования: - Поиск и обработка информации в текстовых файлах при появлении файлов в соответствующей директории по запросу администратора...
-
Этапы проектирования и создания БД - Система управления базами данных
При разработке БД можно выделить следующие этапы работы. I этап. Постановка задачи. На этом этапе формируется задание по созданию БД. В нем подробно...
-
SimpleXML. В PHP версии 5.0 и выше появилось расширение для работы с xml структурой. Библитека SimpleXML содержит большое количество методов для работы с...
-
В среде электронного ресурса ИИС "MD_SLAGMELT" (Рис. 6) для доступа к компоненту "моделирование" необходима учетная запись (пара логин/пароль) (Рис.7)....
-
Выбор средств реализации информационной системы Названные в параграфе 1.4. настоящей работы задачи могут быть решены тремя типами средств автоматизации:...
-
Создание запросов - Разработка системы управления базой данных "Судоходство"
Для дальнейшего формирования отчетов необходимо создать два запроса на выборку это "Кто и где находится" и "Страны где были корабли". Для создания...
-
Классификация компьютерных сетей - Теоретические основы информационных процессов и систем
Для классификации компьютерных сетей используются разные признаки, выбор которых заключается в том, чтобы выделить из существующего многообразия такие,...
-
Введение - Разработка системы управления базой данных "Судоходство"
Любому предприятию, фирме, организации в процессе экономической деятельности приходится постоянно сталкиваться с большими информационными потоками:...
-
Анализ предметной области позволяет выявить пять сущностей: Сущность: Растения для сада (наименование растения; вид; высота; время цветения; отношение к...
-
Пользовательский интерфейс должен позволять заводить в базе данных информацию о новых охранниках, обслуживаемых объектах, автоматизировать составление...
-
При работе над проектом разрабатывались два основных компонента системы: база данных (далее - БД) и интерфейс клиентского приложения. Затем необходимо...
-
Выбор интерфейса Пользовательский интерфейс представляет собой совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя...
-
Информационные объекты и их связи - Система управления базами данных
Понятие информационного объекта Информационный объект - описание некоторой сущности (реального объекта, явления, события) в виде совокупности логически...
-
Введение - Разработка программного модуля ипотечного кредитования банковской информационной системы
Модуль создается в целях автоматизации ипотечного кредитования. Основными задачами разработки программного модуля являются автоматизация следующих...
-
Объектно-ориентированные СУБД Несмотря на большую популярность реляционных СУБД, развитие технологии появления данными на них не остановилось. Развитие...
-
Поскольку клиентская часть представляет собой приложение на базе операционной системы Android, то для ее разработки был выбран рекомендуемый...
-
Производство. 1. Начальник отдела сбыта получает от клиента заказ на конкретный ассортимент ежедневно, проверяет наличие необходимое кол-во товара, если...
-
Каждая СУБД имеет особенности в представлении структуры таблиц, связей, определении типов данных и т. д. которую необходимо учитывать при проектировании....
Нормализация Базы Данных - Разработка информационной системы "Магазин компьютерных товаров"