количество товара;
сумма;
примечание.
Возврат товара от покупателя
Возврат от покупателя делается на основании принесенного им с собой его товарного чека. По номеру товарного чека находится соответствующая расходная накладная и уже на ее основании продавцом создается акт о возврате товара (до фактического его возвращения). С этим актом покупатель идет на склад, где товар принимается сотрудниками склада и ими же делается пометка о возврате. С этой пометкой покупатель идет в кассу, где ему возвращают соответствующую сумму денег.
Сопроводительные документы при возврате товара:
акт о возврате;
В акте о возврате указывается:
номер акта;
дата акта;
тип акта (перемещение, возврат товара от покупателя, заказ);
покупатель;
наименование товара;
количество товара;
сумма;
примечание.
На основании всего вышесказанного делаем вывод о том, что является для нашей будущей БД входящей и выходящей информацией.
Итак, на основе расходной накладной, выписанной главным офисом на имя рассматриваемого подразделения фирмы, составляется приходная накладная, которая является источником для пополнения собственной базы данных, то есть вносятся новые позиции пришедшего товара.
В приходной накладной указывается:
наименование фирмы (поставщик);
номер накладной;
дата накладной;
код товара;
наименование товара;
склад товара;
цена товара;
количество товара;
сумма;
При продаже товара источником для изменения в базе является расходная накладная. Когда она выписывается покупателю, товар автоматически удаляется из базы. Если по той или иной причине, покупатель решает сделать возврат купленного ранее товара, продавец выписывает акт о возврате товара покупателем и на основании этого акта, позиция возвращенного товара автоматически восстанавливается в базе.
Выходящими потоками можно считать всю сопроводительную документацию, участвующую в торговле магазина.
Входная и выходная информация
Итак, рассматриваемая нами отношение – продажа. В ней учувствуют следующие актеры:
Продавец Покупатель
В результате имеется 3 сущности: продавец, продажа и покупатель. Определим, какие данные должных храниться в проектируемой БД:
о товаре (группа товара, наименование товара, склад товара, остаток товара на складе, цена за единицу, срок гарантии);
о покупателях (ФИО, адрес, телефон);
о продажах (номер расходной накладной, тип расходной накладной, дата создания накладной, покупатель, наименование товара, кол-во товара, величина скидки, сумма);
о товарах, поставленных в резерв (наименование товара, дата резервирования, кол-во товара)
Теперь определим, какие задачи должна выполнять разрабатываемая АСУ:
возможность ввода данных;
возможность изменения вносимых данных;
возможность хранения вносимых данных;
возможность учета вносимых данных;
вывод статистики продаж;
оповещение;
В следующую таблицу внесем необходимые для разрабатываемой БД данные:
Группа товара |
Наименование товара |
Склад товара |
Остаток товара |
Цена товара |
Срок гарантии |
ФИО покупателя |
Адрес покупателя |
Телефон покупателя |
Номер расходной накладной |
Тип расходной накладной |
Дата расходной накладной |
Кол-во товара |
Величина скидки |
Сумма |
Дата резервирования |
Кол-во товара |
Нормализация данных
Нормализация отношений – это преобразование универсального отношения к их совокупности так, что каждое из полученных отношений содержит только одну полную функциональную зависимость.
Функциональная зависимость — это такая связь между атрибутами А и В одного и того же отношения, когда каждому значению А соответствует только одно значение В. Атрибут А называют ключом. Ключи могут быть составными, т. е. они могут представлять собой не единичные атрибуты, а группы, состоящие из двух и более атрибутов.
Процесс нормализации включает приведение отношения к трем нормальным формам: устранение повторяющихся групп, удаление частично зависимых атрибутов, удаление транзитивно зависимых атрибутов.
Первая нормальная форма.
поля содержат неделимую информацию;
в таблице отсутствуют повторяющиеся группы.
В результате приведения к первой нормальной форме, получим таблицы:
Товары
Группа товара |
Наименование товара |
Остаток товара |
Цена товара |
Срок гарантии |
Покупатели
Наименование покупателя |
Адрес покупателя |
Телефон покупателя |
Продажи
Номер расходной накладной |
Тип расходной накладной |
Дата расходной накладной |
Наименование покупателя |
Наименование товара |
Кол-во товара |
Величина скидки |
Сумма |
Резерв
Дата резервирования |
Кол-во товара |
Вторая нормальная форма
таблица должна удовлетворять требованиям первой нормальной формы;
все поля таблицы должны зависеть от первичного ключа, т.е. чтобы первичный ключ однозначно определял запись и не был избыточным;
те поля, которые зависят только от части первичного ключа, должны быть выделены в отдельные таблицы.
Товары
Код товара |
Группа товара |
Наименование товара |
Остаток товара |
Цена товара |
Срок гарантии |
Покупатели
Код покупателя |
Наименование покупателя |
Адрес покупателя |
Телефон покупателя |
Продажи
Код расходной накладной |
Номер расходной накладной |
Тип расходной накладной |
Дата расходной накладной |
Код покупателя |
Код товара |
Кол-во товара |
Величина скидки |
Сумма |
Резерв
Код товара |
Дата резервирования |
Кол-во товара |
Третья нормальная форма
таблица должна удовлетворять требованиям второй нормальной формы;
ни одно из неключевых полей не должно однозначно идентифицироваться значением другого неключевого поля.
В результате третьей нормальной формы убираем поле «Сумма» из таблицы «Продажа», так как оно является вычисляемым полем:
Товары
Код товара |
Группа товара |
Наименование товара |
Остаток товара |
Цена товара |
Срок гарантии |
Покупатели
Код покупателя |
Наименование покупателя |
Адрес покупателя |
Телефон покупателя |
Продажи
Код расходной накладной |
Номер расходной накладной |
Тип расходной накладной |
Дата расходной накладной |
Код покупателя |
Код товара |
Кол-во товара |
Величина скидки |
Резерв
Код товара |
Дата резервирования |
Кол-во товара |
В итоге, в нашей проектируемой БД получается две справочные таблицы –это «Товар» и «Покупатели» и две транзакционные таблицы – «Продажи» и «Резерв». Справочные, содержат информацию справочного характера, обладают невысокой степенью изменения, выступают в качестве главной таблицы. Должны быть неизбыточными, т.е. хранить только общие сведения для данного предмета. Транзакционные, служат для накопления данных, основанных на значении данных в другой таблице. Таблица «Продажа» связана с таблицами «Товар» и «Фирмы» по составному ключу, то есть по нескольким полям, а именно: через поля «Код товара» и «Код фирмы». Остальные таблицы связаны между собой по Таблицы связаны между собой типом связи "один-ко-многим" – означает, что одной записи главной таблицы в подчиненной таблице может соответствовать несколько записей. Этот вид отношения встречается наиболее часто.
Структура БД:
Атрибут | Описание |
TovID | Уникальный идентификатор товара |
TovTovGrup | Наименование группы товара |
TovName | Наименование товара |
TovOst | Остаток товара на складе |
TovPrice | Цена товара на складе |
TovTimeOk | Срок гарантийного обязательства |
FirmID | Уникальный идентификатор покупателя |
FirmName | Наименование фирмы |
FirmAdress | Адрес фирмы |
FirmPhone | Телефон фирмы |
RasNaklID | Уникальный идентификатор расходной накладной |
RasNaklDate | Дата создания расходной накладной |
RasNaklType | Тип расходной накладной (безнал, товарный чек, чекДоплата) |
RasNaklPokup | Получатель расходной накладной |
RasNaklTov | Наименование товара |
RasNaklTKol | Количество товара |
RasNaklSale | Величина скидки в % |
ReservTov | Резервируемый товар |
ReservData | Дата резервирования |
ReservKol | Кол-во резервируемого товара |
Описание таблиц