- •Введение
- •2. Реализация информационной подсистемы учёта продаж для ооо «гранит»
- •2.1 Обоснование выбора среды реализации приложения
- •2.2 Создание логической модели базы данных информационной подсистемы
- •2.2.1 Определение сущностей модели базы данных информационной подсистемы
- •2.2.2 Определение атрибутов сущностей модели базы данных информационной подсистемы
- •2.4 Реализация клиентского приложения информационной подсистемы для отдела продаж ооо «Гранит»
- •3.1 Общие сведения о программе
- •3.2 Функциональное назначение программы
- •3.4.4 Требования к наличию сводного места на жестком диске
- •3.7.Выходные данные программы
- •3.8 Краткая инструкция оператору по работе с программой
- •4. Технико-экономическое обоснование проекта
- •4.4 Оценка экономической эффективности проекта
- •4.5 Основные технико-экономические показатели проекта
- •Библиографический список
2.2 Создание логической модели базы данных информационной подсистемы
2.2.1 Определение сущностей модели базы данных информационной подсистемы
Инфологическая модель БД – описание семантики предметной области в модели БД без ориентации на используемые в дальнейшем программные и технические средства. Разработку инфологической модели можно начать с выделения основных сущностей, моделирующих классы однотипных объектов и присутствующих в БД. Сущность (объектное множество, таблица) – это собирательное понятие, абстракция реально существующего процесса, объекта или явления, о котором необходимо хранить информацию. На основе анализа предметной области были выбраны следующие сущности:
2.2.2 Определение атрибутов сущностей модели базы данных информационной подсистемы
Атрибут (реквизит) – именованная характеристика сущности [15]. Он представляет собой логически неделимый элемент структурной единицы информации, отражающий определенное свойство объекта или процесса. Атрибут идентифицирует экземпляры сущности.
Определим атрибуты выбранных сущностей (таблица 2.2)
Таблица 2.1 – Описание атрибутов сущностей модели базы данных информационной подсистемы
Наименование сущности |
Описание сущности |
Сведения об организации |
Сведения об организации |
Виды товаров |
Справочник, в котором содержатся виды товаров, реализуемых предприятием (классификация товаров) |
Номенклатура товаров |
Справочник, в котором содержатся сведения о реализуемых товарах |
Сотрудники |
Справочник, содержащий информацию о сотрудниках отдела продаж предприятия |
Товары в наличии |
Товары, находящиеся в наличии. Их количество |
Журнал продаж |
Журнал, в который заносится информация о проданных товарах |
Список проданных товаров |
Список товаров, указанных в накладной, относящиеся к записи в журнале продаж |
Единицы измерения |
Единицы измерения товаров, реализуемых предприятием |
Поставщики |
Поставщики товаров для предприятия |
Таблица 2.2 – Описание атрибутов сущностей модели базы данных информационной подсистемы
Название сущности |
Атрибут |
Описание атрибута |
Сведения об организации |
Название организации |
Название организации, предприятия |
ИНН |
ИНН организации |
|
КПП |
КПП организации |
|
Руководитель организации |
Фамилия руководителя организации |
|
Адрес организации |
Адрес организации |
|
Поставщики |
Идентификатор поставщика |
Идентификатор, уникальный номер поставщика |
Название поставщика |
Название организации-поставщика |
|
ИНН поставщика |
ИНН организации-поставщика |
|
Вид товаров |
Идентификатор вида товаров |
Идентификатор, уникальный номер вида товаров |
Название вида товаров |
Название вида товаров |
|
Номенклатура товаров |
Идентификатор товара |
Идентификатор, уникальный номер товара в номенклатуре |
Номенклатура товаров |
Идентификатор единицы измерения |
Ссылка на единицу измерения товаров |
Описание товара |
Краткое описание товара (краткая характеристика товара, пометки) |
|
Цена |
Цена, по которой реализуется товар |
|
Сотрудники |
Идентификатор сотрудника |
Идентификатор, уникальный номер сотрудника отдела продаж предприятия |
Фамилия, имя, отчество |
Фамилия, имя, отчество сотрудника отдела продаж предприятия |
|
Должность |
Должность сотрудника отдела продаж предприятия |
|
Товары в наличии |
Идентификатор записи |
Идентификатор, уникальный номер записи |
Идентификатор товара |
Ссылка на товар |
|
Количество товаров |
Количество товаров в наличии данной номенклатуры |
|
Товары в наличии |
Идентификатор поставщика |
Ссылка на поставщика |
Журнал продаж
|
Идентификатор записи |
Идентификатор, уникальный номер записи в журнале |
Дата продажи |
Дата совершения операции продажи, дата записи |
|
Покупатель (организация) |
Название организации, купившей товары |
|
Покупатель (фамилия) |
Фамилия покупателя |
|
Идентификатор сотрудника |
Ссылка на сотрудника, оформившего продажу |
|
Список проданных товаров
|
Идентификатор записи |
Идентификатор, уникальный номер записи о проданном товаре |
Идентификатор записи в журнале продаж |
Ссылка на запись в журнале продаж |
|
Идентификатор товара |
Ссылка на товар |
|
Количество |
Количество единиц проданного товара |
|
Цена |
Цена, по которой был продан указанный товар |
|
Единицы измерения
|
Идентификатор единицы измерения |
Идентификатор, уникальный номер единицы измерения |
Название единицы измерения |
Название единицы измерения |
2.2.3 Определение зависимостей между сущностями
Модель «сущность-связь» называют также методом ER — диаграмм (Essence - сущность, Relation - связь). Эта модель основана на использовании 3-х основных конструктивных элементах:
сущность;
атрибут;
связь.
Взаимосвязи между таблицами БД могут быть типизированы по следующим основным видам:
Отношение «один к одному» (1:1) означает, что каждая запись одной таблицы соответствует только одной записи в другой таблице.
Отношение «один ко многим» (1:М) возникает, когда одна запись взаимосвязана со многими другими.
Отношение «многие к одному» означает, что многие записи связаны с одной (М:1).
4. Отношение «многие ко многим» (M:N) возникает между двумя таблицами в тех случаях, когда:
одна запись из первой таблицы может быть связана более чем с одной записью из второй таблицы;
одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы.
На практике применение связей 4 встречается крайне редко из-за того, что потеря в производительности вычислений на основе связей данного типа достаточна значительна.
В созданной модели встречаются связи типа 2 (отношение «один ко многим»). Они описаны в таблице 2.3.
Таблица 2.3 – Связи между сущностями
Номер связи |
Родительская таблица |
Дочерняя таблица |
Тип связи |
1 |
Сотрудники |
Журнал продаж |
1:М |
2 |
Журнал продаж |
Список проданных товаров |
1:М |
3 |
Номенклатура товаров |
Список проданных товаров |
1:М |
4 |
Вид товаров |
Номенклатура товаров |
1:М |
5 |
Номенклатура товаров |
Товары в наличии |
1:М |
6 |
Поставщики |
Товары в наличии |
1:М |
7 |
Единицы измерения |
Номенклатура товаров |
1:М |
Сущность «Сведения об организации» не связана с другими сущностями. В этой сущности предполагается только одна запись о собственной организации.
Схема инфологической модели представлена на рисунке 2.1.
Единицы измерения
Рисунок 2.1 – Схема инфологической модели
На схеме изображены связи:
Сотрудники – Журнал продаж, тип связи 1:М (один сотрудник может оформить много продаж)
Журнал продаж – Список проданных товаров, тип связи 1:М (при одной операции продажи может быть продано много товаров).
Номенклатура товаров – Список проданных товаров, тип связи 1:М (товары одной номенклатуры могут продаваться много раз)
Вид товара – Номенклатура товаров, тип связи 1:М (в номенклатуре может быть много товаров одного вида)
Номенклатура товаров – товары в наличии, тип связи 1:М (товаров в наличии одной номенклатуры может быть много).
Поставщики – Товары в наличии, тип связи 1:М (товаров в наличии одного поставщика может быть много).
Единицы измерения – Номенклатура товаров, тип связи 1:М (может быть много товаров одной единицы измерения).
2.3 Даталогическое проектирование
2.3.1 Проектирование таблиц и их атрибутов
Проектирование базы данных будем осуществлять с использованием СУБД Microsoft SQL Server 2008. На сегодняшний день данная СУБД вышла в лидеры на рынке программных средств данного класса, потеснив даже такого гиганта как Oracle.
На основе разработанных сущностей были разработаны соответствующие им таблицы в базе данных с соответствующими атрибутами (таблица 2.4).
Таблица 2.4 – Перечень таблиц и атрибутов в базе данных
Название таблицы |
Название атрибута |
Тип данных |
Краткое описание атрибута |
|||
contragent (поставщики)
|
contragent_id |
int |
Идентификатор поставщика |
|||
contragent_name |
varhcar(256) |
Название поставщика |
||||
contragent_inn |
varhcar(12) |
ИНН поставщика |
||||
Goods (номенклатура товаров) |
good_id |
int |
Идентификатор товара |
|||
good_name |
varhcar(50) |
Название товара |
||||
Goods (номенклатура товаров) |
type_good_id |
int |
Идентификатор вида товара |
|||
pict_number |
varhcar(50) |
Чертежный номер |
||||
measure_id |
int |
Идентификатор единицы измерения |
||||
good_note |
varhcar(50) |
Описание товара |
||||
price |
float |
Продажная цена |
||||
goods_in_sell (Список проданных товаров) |
good_in_sell_id |
int |
Идентификатор списка товаров |
|||
good_id |
int |
Идентификатор товара |
||||
journal_sell_id |
int |
Идентификатор записи в журнале продаж |
||||
price_sell |
float |
Цена, по которой был продан товар |
||||
count_goods |
int |
Количество единиц проданного товара |
||||
goods_in_store (товары в наличии) |
goods_in_store_id |
int |
Идентификатор записи |
|||
good_id |
int |
Идентификатор товара |
||||
count_good |
int |
Количество единиц товара в наличии |
||||
contragent_id |
int |
Идентификатор поставщика |
||||
journal_sell (журнал продаж) |
journal_sell_id |
int |
Идентификатор записи в журнале продаж |
|||
date_sell |
datetime |
Дата продажи |
||||
journal_sell (журнал продаж) |
customer |
varchar(256) |
Название организации - покупателя |
|||
customer_fio |
varhcar(50) |
Фамилия покупателя (получившего товар) |
||||
people_id |
int |
Идентификатор сотрудника |
||||
measure (единицы измерения) |
measure_id |
int |
Идентификатор единицы измерения |
|||
measure |
varhcar(50) |
единица измерения |
||||
org_attr (сведения об организации) |
name_org |
varhcar(256) |
Название организации |
|||
org_boss |
varhcar(256) |
Руководитель организации |
||||
org_inn |
varchar(12) |
ИНН организации |
||||
org_kpp |
varchar(50) |
КПП организации |
||||
adres |
varchar(256) |
Юридический адрес организации |
||||
people (сотрудники) |
people_id |
int |
Идентификатор сотрудника |
|||
people_fio |
varchar(50) |
Фамилия сотрудника |
||||
dolg |
varchar(50) |
Должность сотрудника |
||||
type_good (вид товара) |
type_good_id |
int |
Идентификатор вида товаров |
|||
type_good |
varchar(50) |
Вид товара |
||||
Все идентификаторы в таблицах, имеющие тип int, имеют спецификацию идентификатора с шагом приращения 1. Это позволяет избежать создания триггеров, обеспечить целостность базы данных.
Схема базы данных представлена на рисунке 2.2.
Рисунок 2.2 – Диаграмма базы данных информационной подсистемы «Granit» на физическом уровне
2.3.2 Организация защиты данных на уровне СУБД
Защита данных на уровне СУБД выполняется средствами идентификации пользователя с помощью политики паролей.
Для создания нового пользователя администратору Microsoft SQL Server необходимо создать имя входа в разделе «Безопасность» (рисунок 2.3).
После создания имени входа необходимо предоставить пользователю соответствующие права на базу данных в разделе «Безопасность» базы данных GRANIT (рисунок 2.4).
Для работы с базой данных пользователю необходимо предоставить права db_datareader, db_datawriter.
Рисунок 2.3 – Создание имени входа
Таким образом пользователь не будет иметь возможность модифицировать структуру базы данных, но будет обладать всеми правами на данные, содержащиеся в таблицах.
Рисунок 2.4 – Установка прав на базу данных
