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

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

Теория нормализации реляционных баз данных была разработана в конце 70-х годов 20 века. Согласно ей, выделяются шесть нормальных форм, пять из которых так и называются: первая, вторая, третья, четвертая, пятая нормальная форма, а также нормальная форма Бойса-Кодда, лежащая между третьей и четвертой.

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

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

Первая нормальная форма

Первая нормальная форма:

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

запрещает множественные столбцы (содержащие значения типа списка и т.п.)

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

Вторая нормальная форма

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

Третья нормальная форма

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

Нормальная форма Бойса-Кодда

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

Четвертая нормальная форма

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

Пятая нормальная форма

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

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

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

2.6.2 База данных автоматизированной системы управления складом

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

Рисунок 6. Схема данных.


Для этих целей система в общем виде условно разделяется на три составляющие:

Клиенты и оформление их заказов;

Поставщики, оформление заявок;

БД товаров.

В раздел «Клиенты и оформление их заказов» включены 2 таблицы:

«Клиенты»;

«ОформлениеЗаказа».

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

Рисунок 7. Схема связи «Клиенты и оформление их заказов».

В раздел «Поставщики, оформление заявок» включены следующие таблицы:

«Поставщики»;

«ОформлениеЗаявки».

Связываем эти таблицы используя тип отношения «один к одному», по ключевому полю «IDпоставщика». Схема данных связей показана на рисунке 8:


Рисунок 8. Схема «Поставщики, оформление заявок».

В разделе «БД товаров» используются уже вышеупомянутые таблицы:

«ОформлениеЗаказа»;

«ОформлениеЗаявки».

Эти таблицы связываются между собой с помощью с помощью третьей таблицы «БД товаров» типом отношения «один ко многим». Это видно из рисунка 9:

Рисунок 9. Схема «БД товаров».

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

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

Одному заказанному товару соответствует один номер заказа, но если клиент в процессе работы с системой заказывает ещё один товар, то на каждую запись по этому клиенту присваивается один номер заказа.

Если заказ оформлен, то есть, принят на выполнение в работу, а клиент желает заказать дополнительный товар, тогда оформляется новый заказ, используя те же идентификаторы клиента.

Основой для разработки базы данных служат таблицы, в которых содержится необходимая информация.

В данной БД используются следующие таблицы:

1. «Клиенты» (таблица 3):

IDКлиента: идентификатор клиента. Является ключевым полем данной таблицы. По нему выполняется поиск конкретного клиента;

ФИО клиента: вводятся фамилия, имя, отчество нового клиента;

Город: предприятию необходимо знать тот город, в котором проживает клиент;

Адрес: адрес клиента;

Телефон: телефон клиента;

e-mail: необходим для того, чтобы предприятие в любой момент могло вязаться с клиентом и уточнить его заказ;

Паспортные данные: необходимы для предприятия, потому что именно паспорт является главным удостоверяющим личность клиента документом.

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

 

Таблица 3.

«Клиенты»

Название поля Тип данных Размер поля
IDКлиента Счетчик, ключевое поле Длинное целое
ФИО клиента Текстовый 50
Город Текстовый 50
Адрес Текстовый 50
Телефон Числовой Длинное целое
e-mail Текстовый 50
Паспортные данные Числовой Длинное целое

«ОформлениеЗаказа» (таблица 4):

№заказа: является ключевым полем данной таблицы. По номеру заказа можно отследить и идентифицировать клиента;

IDКлиента: идентификатор клиента;

НаименованиеТовара: дается перечень товаров;

КоличествоЕдиницТовара: выбирается количество товара;

СтоимостьТовара: цена за единицу товара;

ДатаЗаказа: число оформления заказа;

БДТоваров: обращение к БД товаров.

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

 

Таблица 4.

«Оформление заказа»

Название поля Тип данных Размер поля
№Заказа Счетчик, ключевое поле Длинное целое
IDКлиента Числовой Длинное целое
НаименованиеТовара Текстовый 50
КоличествоЕдиницТовара Числовой Длинное целое
СтоимостьТовара Денежный
ДатаЗаказа Дата/время
БДТоваров Мастер подстановок Вводится из таблицы «БДТоваров»

«Продажа» (таблица 5):

№заказа: является ключевым полем данной таблицы. По номеру заказа можно отследить и идентифицировать клиента;

ФИОКлиента: вводятся фамилия, имя и отчество клиента;

НаименованиеТовара: выбирается из списка всех товаров;

СтоимостьТовара: цена за единицу товара;

КоличествоЕдиницТовара: количество покупаемого товара;

ДатаЗаказа: число оформления продажи.

Для того, чтобы продать товар необходимо знать то что мы продаем и в каком количестве. Это наиболее подробно представлено в таблице «Продажа» данной БД.

 

Таблица 5.

«Продажа»

Название поля Тип данных Размер поля
№Заказа Счетчик, ключевое поле Длинное целое
ФИО клиента Текстовый 50
НаименованиеТовара Текстовый 50
СтоимостьТовара Денежный
КоличествоЕдиницТовара Числовой Длинное целое
ДатаЗаказа Дата/время

«БДТоваров» (таблица 6):

НаименованиеТовара: предлается весь перечень имеющихся товаров;

КоличествоТовараНаСкладе: количество всех товаров, которые имеются на складе;

ЦенаЗаЕдиницуТовара: цена за единицу выбранного товара;

ОстатокТовараНаСкладе: остаток определенного товара на складе.

Продавая товар или приобретая товар через поставщиков нам необходимо руководствоваться какими-то данными. Эти данные мы получаем из таблицы «БДТоваров».

 

Таблица 6.

«БДТоваров»

Название поля Тип данных Размер поля
НаименованиеТовара Текстовый, ключевое поле 50
КоличествоТовараНаСкладе Числовой Длинной целое
ЦенаЗаЕдиницуТовара Денежный
ОстатокТовараНаСкладе Числовой Длинное целое

«ОформлениеЗаявки» (таблица 7):

IDПоставщика: идентификатор поставщика, в данной таблице является ключевым полем;

НаименованиеТовара: тот товара, который необходимо включить в список заявки;

КоличествоЕдиниц: количесво заказываемого товара;

ДатаВремяДоставки: оговариваются дата и время когда товар будет доставлен.

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

 

Таблица 7.

«ОформлениеЗаявки»

Название поля Тип данных Размер поля
IDПоставщика Счетчик, ключевое поле Длинное целое
НаименованиеТовара Текстовый 50
КоличествоЕдиниц Числовой Длинной целое
ДатаВремяДоставки Дата/время

«Поставщики» (таблица 8):

IDПставщика: идентификатор поставщика, в данной таблице является ключевым полем;

ЮридическийАдрес: адрес, по которому можно связаться с поставщиком;

ФИО: фамилия, имя, отчество поставщика;

№РасчетногоСчета: один из важных атрибутов, необходим для того, чтобы предприятие могло переводить средства на счет поставщика.

В этой таблице представлены все данные, которые необходимы для работы с поставщиками.


Таблица 8.

«Поставщики»

Название поля Тип данных Размер поля
IDПоставщика Счетчик, ключевое поле Длинное целое
ЮридическийАдрес Текстовый 50
ФИО Текстовый 50
№РасчетногоСчета Числовой Длинное целое

Глава III. Система АРМ «Логистика»

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

Для входа в систему АРМ «Логистика» Вам необходимо выполнить следующие указания:

Включить компьютер;

в меню «Пуск» выбрать необходимую программу и запустить ее;

запустить файл приложения «ProjectLogistika»;

После чего появится форма «Безопасный вход», на которой служащий предприятия (Работник Отдела Продаж, Работник Склада, Бухгалтер, либо Генеральный Директор) – пользователь системы АРМ «Логистика» - должны будут ввести индивидуальный пароль: Пользователь и Пароль;

Это необходимо для того, чтобы защитить систему от несанкционированного доступа посторонних лиц. В данной программе пароль не может содержать менее 6 и более 20 символов (буквы, цифры, либо буквы+цифры), не должен содержать пробелов. В коде программы прописан так называемый «счетчик», который блокирует программу после 5 неправильных вводов пароля.

После этого на экране пользователя появится главная форма программы «Главная форма», на которой пользователь может выполнить такие операции как: возможность зарегистрировать клиента и работать с базой данных товаров, а также перейти на форму ведения бухгалтерского учета и оформления заказов и заявок. Для всех работников предприятия определена и ограничена область пользования данной программой. Только Генеральный директор и Бухгалтерия имеют доступ к «Клиентам», «Поставщикам», «БД товаров», «Бухгалтерии». Остальные же работники могут работать только с конкретными, относящимися к их непосредственной сфере работы приложениями. Например, работники Склада могут работать с приложениями «БД товаров» и «Поставщиками», а работники Отдела Продаж с приложениями «БД товаров» и «Клиенты».

Предполагается, что кнопка «Клиенты» предназначена для работников Отдела продаж, в обязанности которых входит следующее:

зарегистрировать нового клиента и ввести о нем всю необходимую информацию;

выполнить новые операции для уже существующих клиентов (оформить заказ клиента);

продать товар.

Прежде чем начать работу с клиентом необходимо определить статус конкретного клиента: Новый клиент или Существующий клиент.


Также есть возможность с этого окна перейти к приложениям «Поставщики» и «Бухгалтерия», но это может сделать лишь начальник Отдела Продаж, у которого имеется доступ.

Здесь же на закладке «Товары» любой работник Отдела Продаж может получить достоверную информацию о всех имеющихся в наличии товаров. Для этого необходимо зайти на закладку «БД товаров». Также есть возможность узнать в каком количестве (остаток) конкретный товар имеется на складе. Это можно увидеть на вкладке «Товары» - «Остаток на складе».


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

После того, как будут заполнены все поля, такие как: Статус клиента, Дата регистрации, Информация о клиенте работник Отдела Продаж «Создает» клиента. Также имеется возможность редактировать уже существующие записи, а также удалять их.

После того, как клиент зарегистрирован при нажатии на кнопку «Создать» появляется окно «Оформление заказа».


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

Дата заказа определяется автоматически на день оформления заказа.


После заполнения полей «№ заказа», «ID клиента», «Наименование товара», «Количество единиц товара», «Стоимость товара» работник Отдела продаж должен «Выполнить поиск по БД товаров…» и убедится в том, что товар действительно имеется в наличии и в достаточном количестве для осуществления конкретной продажи. При нажатии на кнопку «Выполнить поиск по БД товаров…» появится следующее окно:

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

После выполнения всех необходимых операций появляется окно:

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

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

зарегистрировать нового поставщика и ввести о нем всю необходимую информацию;

выполнить новые операции для уже существующих поставщиков (оформить заявку для клиента);

Прежде чем начать работу с клиентом необходимо определить статус конкретного клиента: Новый клиент или Существующий клиент.

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

На вкладке «Товары» можно обратится к БД товаров, а также получить информацию о любом товаре (остаток), который имеется на складе.


На вкладке «Документы» из перечня мы выбирает конкретный документ: Заявка, Поступление ТМЦ (купля-продажа), Поступление ТМЦ (комиссия), Поступление ТМЦ (импорт).

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


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

Также на главной форме имеется кнопка «БД товаров». Зайдя на нее можно получить полные сведения о все товарах. Которые имеются в наличии. По нажатию на эту кнопку появляется окно:


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


Глава IV. Расчет экономической эффективности

 


Информация о работе «Автоматизированное рабочее место "Логистика" ЗАО "Приосколье"»
Раздел: Информатика, программирование
Количество знаков с пробелами: 94241
Количество таблиц: 21
Количество изображений: 24

0 комментариев


Наверх