- •Введение
- •Глава 1 “Описание предметной области ас “Автомагазин”: сбор общей информации необходимой для создания ас “Автомагазин”, построение контекстных диаграмм и диаграмм декомпозиции.
- •1.1.2 Краткая характеристика предметной области
- •1.1.3 Регламент и режим работы
- •2.3 Формы, которые необходимо создать в системе
- •2.4 Отчеты, которые необходимо создать в системе
- •2.5 Запросы, которые необходимо создать в системе
- •2 Определение данных, которыми должны оперировать автоматизируемые функции
- •3.3 Создание логической структуры реляционной бд по правилам нормализации
- •Построение субд- ориентированной схемы данных
- •3.5 Создание схемы данных в выбранной субд
- •4 Руководство по работе с приложением
- •4.1 Руководство по установке
- •4.2 Руководство пользователю
- •Заключение
- •Список использованных источников
3.3 Создание логической структуры реляционной бд по правилам нормализации
Рассмотрим каждую из таблиц на предмет возможных повторений блоков данных и полей.
Для начала рассмотрим таблицу Сотрудники Автомагазина. Некоторые поля (название организации, адрес организации с почтовым индексом и названием города, телефон, факс (если есть), электронный адрес (если есть)) будут постоянно повторяться, т.к. все сотрудники работают в одной и той же организации. Поэтому выделим отдельную таблицу Сведения об Автомагазине:
название организации,
адрес организации с почтовым индексом и названием города,
телефон,
факс (если есть),
электронный адрес (если есть).
Директор Автомагазина является заказчиком и данные о нем отображаются в платежных поручениях, товарных накладных, счет - фактурах. Поэтому выделим таблицу Заказчик, которая будет содержать следующие данные:
наименование организации,
адрес организации с почтовым индексом и названием города,
фамилия, имя, отчество,
расчетный счет,
ИНН,
код ОКОНХ,
код ОКПО.
Таблица Сотрудники Автомагазина в результате преобразований примет вид (для продавцов не нужно указывать расчетный счет, код ОКОНХ, код ОКПО, т.к. они не участвуют в банковских операциях):
фамилия, имя, отчество,
ИНН,
должность.
Рассмотрим теперь таблицы Банк поставщика и Банк заказчика. Они содержат похожие поля. Поэтому объединим эти таблицы в одну с названием Банки, а в каждую из таблиц, где указывается информация о банках, введем новое поле БИК (Код банка), по которому будем связываться с таблицей Банки.
В таблице Оптовые закупки есть поля, которые содержат набор перечисленных через запятую данных (сведения о поставщике, сведения о заказчике, банки поставщика и заказчика, информация о грузоотправителе и грузополучателе). Чтобы избежать постоянного введения многочисленных данных, преобразуем эту таблицу следующим образом:
Для начала выделим новую таблицу Грузопередатчики:
наименование организации,
адрес организации,
тип грузопередатчика,
код грузопередатчика.
А в таблице Оптовые закупки заменим поля Грузоотправитель и Грузополучатель полем Код грузопередатчика.
Для связи таблиц Оптовые закупки и Банки введем поле БИК (Код банка) в таблицу Оптовые закупки вместо полей Банк поставщика и сведения о нем и Банк заказчика и сведения о нем.
Для связи таблиц Оптовые закупки и Поставщики введем поле ИНН поставщика (Код поставщика) в таблицу Оптовые закупки (вместо поля Поставщик и сведения о нем). Напомним, что таблица Поставщики уже содержит поле ИНН.
Для связи таблиц Оптовые закупки и Заказчик введем поле ИНН заказчика (Код заказчика) в таблицу Оптовые закупки (вместо поля Заказчик и сведения о нем).
Заметим, что все поля таблиц Документы и Товары повторяются в таблице Оптовые закупки. Поэтому разобьем таблицу Оптовые закупки на таблицы Информация о документах и Товары по документу и их характеристики, одновременно заменяя поля Поставщик товара и сведения о нем, Заказчик и сведения о нем, Банк поставщика и сведения о нем, Банк заказчика и сведения о нем, Информация о грузоотправителе и Информация о грузополучателе соответствующими кодами:
Информация о документах: |
Товары по документу и их характеристики: |
номер документа, дата документа, к платежному поручению №, к платежному поручению дата, код документа, ИНН поставщика, ИНН заказчика, код грузоотправителя, код грузополучателя, БИК, сумма платежа. |
наименование товара, единица измерения, количество товара, цена за единицу товара, стоимость товара без налога, сумма налога, налоговая ставка, акциз, стоимость товара с налогом, производитель, код документа, номер грузовой таможенной декларации. |
Новое поле Код документаслужит для связи таблицИнформация о документах и Товары по документу и их характеристики, поскольку данные обеих таблиц отображаются в документах, пришедших вместе с товаром.
Рассмотрим таблицу Товары по документу и их характеристики. В ней есть поля Стоимость товара без налога, Стоимость товара с налогом, Налоговая ставка, которые приводят к лишним расчетам, усложняя, таким образом, работу сотрудников Автомагазина. Достаточно знать цену за единицу товара, количество товара, сумму налога и акциз, чтобы посчитать общую стоимость (сумму платежа). Поля Производитель и Наименование товара содержат справочную информацию и поэтому их можно выделить в отдельную таблицуСправочник Товаров:
наименование товара,
производитель,
код товара.
Новое поле Код товараслужит для связи таблицСправочник ТоваровиТовары по документу и их характеристики, в которую тоже необходимо ввести это поле. ТаблицаТовары по документу и их характеристикипосле преобразований будет содержать следующие данные:
код товара,
код документа,
единица измерения,
цена за единицу товара,
количество товара,
сумма налога,
акциз.
После получения товара от поставщика, заказчик доставляет товар в Автомагазин и сдает продавцу. Для регистрации этого процесса служит таблица Прием товаров в Автомагазин. Некоторые поля в этой таблице содержат данные о товарах, которые уже отражены в таблицахСправочник Товаров и Товары по документу и их характеристики. Для связи таблиц и получения необходимой информации о товарах служит полеКод товара, которое введем и в таблицуПрием товаров в Автомагазин. Поле Сотрудник, получивший товар содержит набор перечисляемых данных. Чтобы избежать введения многочисленных данных введем полеКод сотрудникав таблицыСотрудники АвтомагазинаиПрием товаров в Автомагазин. Теперь таблицаСотрудники Автомагазинабудет выглядеть так:
фамилия, имя, отчество,
код сотрудника,
ИНН,
должность.
После преобразований таблица Прием товаров в Автомагазинбудет содержать следующие данные:
код товара,
количество товара,
код сотрудника, получившего товар,
код документа,
дата приема.
Перейдем теперь к таблице Розничные продажи. Информация о проданном товаре отражена в таблицахСправочник товаров и Товары по документу и их характеристики, для связи с которыми служит полеКод товара. Введем это поле в таблицуРозничные продажи. Информация о сотрудниках, отпускающих товар, представлена в таблицеСотрудники Автомагазина, для связи с которой служит полеКод сотрудника. Введем это поле в таблицуРозничные продажи. После преобразований таблицаРозничные продажипримет вид:
код товара,
количество товара,
код сотрудника,
№ чека,
дата продажи.
В результате в базе данных будут созданы следующие таблицы:
Сведения об Автомагазине,
Сотрудники Автомагазина,
Заказчик,
Поставщики,
Банки,
Грузопередатчики,
Информация о документах,
Товары по документу и их характеристики,
Справочник товаров,
Прием товаров в Автомагазин,
Розничные продажи.