Введение
База данных — это совокупность данных ,относящихся к какой-либо категории предметной области. Эта совокупность имеет определенную структуру.
Возможности БД:
Преимущества БД:
Требования к проектированию БД
1.Этапы проектирования БД
1.1 Анализ предметной области
Разработка базы данных всегда начинается с анализа предметной области, для которой необходимо создать базу. Первый этап проектирования базы данных – это анализ предметной области. На данном этапе пользователь исследует работу «Разработка и администрирование базы данныхпо учету оптовой продажи лекарственных препаратов в сеть аптек», выделяет объекты, определяет необходимые атрибуты для каждого объекта. Далее для каждого атрибута назначаются: тип данных, размер, ключевое поле, обязательное/необязательное поле, маска ввода, значение по умолчанию. Все полученные данные сводятся в таблицу.
Таблица №1 -Таблица объектов
№об
Название
обьекта
№
атр
Название атрибута
Тип данных
Длина
Об./не об.
1
2
3
4
5
6
7
1
Аптеки
1
2
3
4
5
6
№ аптеки
Юр.Адрес
Название
Номер телефона
Эл.почта
ФИО.Директора
Число
Текст
Текст
Число
Текст
Текст
35
-
40
-
-
15
Об
Об
Об
Об
Об
Об
2
Менеджеры
1
2
3
4
5
6
7
8
ТНМ
ФИО
Адрес
Телефон
Образование
д/р
д/п
Оклад
Число
Текст
Текст
Текст
Текст
Дата/вр
Дата/вр
Число
-
35
40
15
35
15
15
15
Об
Об
Об
Об
Об
Об
Об
Об
3
Лекарства
1
2
3
4
5
6
7
8
Шифр лекарства
Название
Назначение
Форма выпуска
Состав
Производитель
Объем
Цена
Число
Текст
Текст
Текст
Текст
Текст
Число
Число
-
-
35
15
15
-
-
-
Об
Об
Об
Об
Об
Об
Об
Об
4
Заявка
1
2
3
4
№ заявки
Дата
ТНМ
№ аптеки
Число
Дата/вр
Число
Число
-
-
-
-
Об
Об
Об
Об
5
Состав заявки
1
2
3
4
Порядковый №
№ заявки Шифр лекарства
Кол-во
Число
Число Текст
Текст
35
15
15
35
Об
Об
Об
Об
6
Отгрузка
1
2
3
4
5
6
7
№ отгрузки
Дата
№ заявки
ТНМ
ТНВ Статус
Качество выполнения
Число
Дата/вр
Число
Число
Число
Текст
Текст
-
-
15
15
15
-
-
Об
Об
Об
Об
Об
Об
Об
7
Состав отгрузки
1
2
3
4
Порядковый №
№ отгрузки
Шифр лекарств
Кол-во отгрузки
Число
Число
Число
Число
-
-
-
-
Об
Об
Об
Об
8
Водители
1
2
3
4
5
6
7
8
ТНВ
ФИО
Адрес
№В/У
Телефон
Марка машины
Фото
Гос. номер
Число
Текст
Текст
Число
Текст
Текст
Вложение
Текст
-
30
30
-
15
20
-
10
Об
Об
Об
Об
Об
Об
Об
Об
9
Кредит
1
2
3
4
5
6
7
8
9
номер кредита
№ отгрузки
№ аптеки
Дата оформления
сумма кред без скидки
сумма кред со скидкой
сумма с учетом %ставки
Ежемесячные выплаты
срок(мес)
Число
Число
Число
Дата/вр
Деньги
Деньги
Деньги
Деньги
Число
-
-
-
-
-
-
-
-
-
Об
Об
Об
Об
Об
Об
Об
Об
Об
Таблица№2 - Таблица предполагаемых запросов
№ запроса
Наименование запроса
1
Количество заявок каждой аптеки
2
Количество поданных заявок
3
Количество отгруженных заявок
4
Количество неотгруженных заявок
5
Количество наименований препаратов в заявках
6
Стоимость каждой заявки
7
Стоимость отгруженных заявок
8
Стаж и возраст менеджеров
9
Список неиспользуемых лекарств
10
Сумма заказа каждой аптеки
11
Количество отгрузок определенной аптеки
12
Сколько раз определенный менеджер участвовал в отгрузке
13
Количество наименований препаратов в определенной заявке
14
Качество выполнения определенной отгрузки
15
Список товара, стоимость которого укладывается в определенный диапазон цен
16
Общая стоимость всех заявок определенной аптеки
17
Количество отгрузок определенного водителя
Таблица№3 - Таблица предполагаемых отчетов
№ запроса
Наименование отчетов
1
Выручка от продажи товара по менеджерам
2
Данные по определенному кредитному соглашению
3
Данные по поступившим заявкам от определенной аптеки
4
Данные по проданному товару
5
Данные по определенной заявке
6
Накладная по определенной отгрузке
7
Отгрузка по определенному номеру заявки
8
Список заявок, в которых был отгружен препарат определенной формы выпуска
9
Список кредитных соглашений для клиентов, имеющих скидку
10
Статистика по клиентам
11
Статистика по обращениям к кредитной системе
1.2 Инфологическое и датологическое проектирование БД
Основной задачей этого этапа являлась разработка информационно - логической модели. Исходными данными для этого являлись результаты первого этапа.
Информационно - логическая модель представляется в виде диаграммы «сущность – связь».Далее выполнялся анализ информационно - логической модели, а именно проводится нормализация каждого отношения БД. Результатом третьего этапа проектирования является построение логической схемы БД.
Рисунок 1. ER-диаграмма
Отношения «Заявка», «Заявка’», «Заявка’’», «Заявка’’’» преобразуем в «Заявка» ((#№ заявки, Дата, ТНМ, Статус, № аптеки)
Отношения «Менеджер» и «Менеджер’» преобразуем в «Менеджер» (#ТНМ, ФИО, Адрес, Телефон, Образование, Д/рож, Д/пост, Оклад)
Отношения «Состав заявки» и «Состав заявки’» преобразуем в «Состав заявки» (#П/п, Шифр лекарства, Кол-во, Запрос, № заявки)
Отношения «Лекарства» и «Лекарства’» преобразуем в «Лекарства» (#Шифр лекарства, Название, Назначение, Форма выпуска, Состав, Производитель, Объем, Цена)
Отношения «Состав отгрузки» и «Состав отгрузки’» преобразуем в «Состав отгрузки» (#П/п, Шифр лекарства, Кол-во отгрузки, № отгрузки)
Отношения «Отгрузка», «Отгрузка’», «Отгрузка’’», «Отгрузка’’’», «Отгрузка’’’’» преобразуем в «Отгрузка» (#№ отгрузки, Дата, № заявки, ТНМ, ТНВ, Качество выполнения, № аптеки, Оплата, Номер кредита)
Далее строим логическую схему БД.
Рисунок 2. Логическая схема БД
1.3 Физическая реализация БД
Создание БД «Разработка и администрирование базы данныхпо учету оптовой продажи лекарственных препаратов в сеть аптек» в выбранной СУБД начинается с конструирования таблиц:
Далее выполняется связь таблиц в соответствии с логической схемой БД. При связывании таблицы первичный ключ главной таблицы соединяется со вторичным ключом подчиненной таблицы и установкой флажков на «каскадном удалении» и «обновлении данных» таблиц.
Следующим этапом разработки БД является ввод данных в таблицы БД через формы – бланки. После ввода данных осуществляется конструирование QBE, SQL запросов: с условием, вычисляемые, статистические, параметрические.
Таблица№4 - Таблица реализованных QBE запросов
№ запроса
Наименование запроса
Тип
Используемые табл.
Используемые поля
Оператор/
выражение
1
2
3
4
5
6
1
Количество заявок каждой аптеки
Статистический
Аптеки,
Заявка
№ аптеки, Юрид адрес, № телефона, ФИО директора, № заявки
Count
2
Количество поданных заявок
Статистический
Заявка
№ заявки
Count
3
Количество отгруженных заявок
Статистический
Отгрузка
№ отгрузки
Count
4
Количество неотгруженных заявок
Статистический
Отгрузка
№ заявки
Count
5
Количество наименований препаратов в заявках
Статистический
Заявка, Состав заявки
№ заявки, Шифр лекарства
Count
6
Стоимость каждой заявки
Вычисляемый
Состав заявки, Лекарства
№ заявки
Стоимость заявки: Sum([Состав заявки]![Кол-во]*[Лекарства]![Цена])
7
Стоимость отгруженных заявок
Вычисляемый
Состав отгрузки, Лекарства
№ отгрузки
Стоимость отгрузки: Sum([Лекарства]![Цена]*[Состав отгрузки]![Кол-во отгрузки])
8
Стаж и возраст менеджеров
Вычисляемый
Менеджеры
ТНМ, ФИО, Д/рож, Д/пост
стаж: ((Date()-[Менеджеры]![Д/пост])/365)
возраст: (Date()-[Менеджеры]![Д/рож])/365
9
Список неиспользуемых лекарств
С условием
Состав заявки, Лекарства
Шифр лекарства, Название
Is null
10
Сумма заказа каждой аптеки
Вычисляемый
Заявка, Лекарства, Состав заявки
№ аптеки
Сумма заказа: Sum([Состав заявки]![Кол-во]*[Лекарства]![Цена])
Таблица№5 - Таблица реализованных SQL запросов
№ запроса
Наименование запроса
Тип
Код SQL запроса
1
2
3
4
1
Количество отгрузок определенной аптеки(SQL1)
Статистический, с условием
SELECT Отгрузка.[№ аптеки], Count(Отгрузка.ТНВ) AS Колво_отгрузок_аптеки
FROM Отгрузка
WHERE (((Отгрузка.[№ аптеки]) Like [Введите номер аптеки]))
GROUP BY Отгрузка.[№ аптеки];
2
Сколько раз определенный менеджер участвовал в отгрузке(SQL2)
Статистический, с условием
SELECT Отгрузка.ТНМ, Count(Отгрузка.ТНМ) AS Колво_ТНМ_В_Отгрузке
FROM Менеджеры, Отгрузка
WHERE (Менеджеры.ТНМ=Отгрузка.ТНМ) and (Отгрузка.ТНМ like [Введите табельный номер менеджера])
GROUP BY Отгрузка.ТНМ;
3
Количество наименований препаратов в определенной заявке(SQL3)
Статистический, с условием
SELECT Заявка.[№ заявки], Count([Состав заявки].[Шифр лекарства]) AS Колво_препаратов
FROM Заявка INNER JOIN [Состав заявки] ON Заявка.[№ заявки] = [Состав заявки].[№ заявки]
WHERE (((Заявка.[№ заявки]) Like [Введите номер заявки] & "*"))
GROUP BY Заявка.[№ заявки];
4
Качество выполнения определенной отгрузки(SQL4)
С условием
SELECT Отгрузка.[№ отгрузки], Отгрузка.[Качество выполнения]
FROM Отгрузка
WHERE (((Отгрузка.[№ отгрузки])=[Введите № отгрузки]));
5
Список товара, стоимость которого укладывается в определенный диапазон цен(SQL5)
С условием
SELECT Лекарства.[Шифр лекарства], Лекарства.Название, Лекарства.Назначение, Лекарства.[Форма выпуска], Лекарства.Состав, Лекарства.Производитель, Лекарства.Объем, Лекарства.Цена
FROM Лекарства
WHERE (((Лекарства.[Цена]) Between [Введите минимальную цену] And [Введите максимальную цену]));
6
Общая стоимость всех заявок определенной аптеки(SQL6)
Статистический, с условием
SELECT Водители.ТНВ, Водители.ФИО, count(Отгрузка.ТНВ) AS Колво_отгрузок
FROM Отгрузка, Водители
WHERE (Водители.ТНВ=Отгрузка.ТНВ) and (Отгрузка.ТНВ like [Введите табельный номер водителя]&"*")
GROUP BY Водители.ТНВ, Водители.ФИО;
7
Количество отгрузок определенного водителя(SQL7)
Статистический, с условием
SELECT Заявка.[№ аптеки], Sum([Лекарства].[Цена]*[Состав заявки].[Кол-во]) AS Общая_стоимость
FROM Заявка INNER JOIN (Лекарства INNER JOIN [Состав заявки] ON Лекарства.[Шифр лекарства] = [Состав заявки].[Шифр лекарства]) ON Заявка.[№ заявки] = [Состав заявки].[№ заявки]
WHERE (((Заявка.[№ аптеки]) Like [Введите номер аптеки]))
GROUP BY Заявка.[№ аптеки];
При конструировании требуемых для заказчика отчетов использовались следующие элементы:
Таблица№6 - Таблица отчетов
п/п
Наименование отчета
Приложение
1
2
3
1
Выручка от продажи товара по менеджерам
Приложение 1
2
Данные по определенному кредитному соглашению
Приложение 2
3
Данные по поступившим заявкам от определенной аптеки
Приложение 3
4
Данные по проданному товару
Приложение 4
5
Данные по определенной заявке
Приложение 5
6
Накладная по определенной отгрузке
Приложение 6
7
Отгрузка по определенному номеру заявки
Приложение 7
8
Список заявок, в которых был отгружен препарат определенной формы выпуска
Приложение 8
9
Список кредитных соглашений для клиентов, имеющих скидку
Приложение 9
10
Статистика по клиентам
Приложение 10
11
Статистика по обращениям к кредитной системе
Приложение 11
При создании пользовательского интерфейса использовались следующие элементы, опции, настройки СУБД Access:
После создания макета БД «Разработка и администрирование базы данныхпо учету оптовой продажи лекарственных препаратов в сеть аптек» необходимо выполнить тестирование базы по всем ее направлениям, что отражено в таблице № 7
Таблица№7 - Результаты тестирования БД
П/п
Операция/действие
Используемая форма, таблица
Данные
Результат
1
2
3
4
5
1
Ввод нового менеджера
Менеджеры
239, Рамазанов.О.Е.,
ЗП-5-15, 8(587)545.67.54, Высшее, 04.11.1991, 15.10.2017, 25 000 руб.
Ошибок нет
2
Добавление нового водителя
Водители
75415, Иванов Ф.П, ДН-8-76, 77067895, 8(927)603.25.47, Mazeratti, вс605г73
Ошибок нет
3
Добавление нового лекарства
Лекарства
Аскорбинка, повышение иммунитета, Таблетки, Витамины, Ниармедик Фарма, Россия,10 шт., 25 руб.
Ошибок нет
4
Добавление новой аптеки
Аптеки
10, Димитрова -10-55, Здоровье, 8(895)654.57.21, zdorovie.com, Дубров Л.В., 989754
Ошибок нет
5
Добавление нового заказа
Заявка
26, 16.01.2019, 236, 4, 14,17
Ошибок нет
6
Добавление новой отгрузки
Отгрузка
17, 236, 54573, 4,17.01.2019, 14,17
Ошибок нет
7
Просмотр накладной
Отгрузка
Накладная
Ошибок нет
8
Просмотр кредита со скидкой
Кредит со скидкой
Кредитное соглашение
Ошибок нет
9
Просмотр отчетов
Отчеты
Выручка от продажи товара по менеджерам, Данные по определенному кредитному соглашению, Данные по поступившим заявкам от определенной аптеки, Данные по проданному товару, Данные по определенной заявке и т.д.
Ошибок нет
10
Удаление нового менеджера
Менеджеры
Удалить: 239, Рамазанов.О.Е.,
ЗП-5-15, 8(587)545.67.54, Высшее, 04.11.1991, 15.10.2017, 25 000 руб.
Ошибок нет
11
Удаление нового Водителя
Водители
Удалить:75415, Иванов Ф.П, ДН-8-76, 77067895, 8(927)603.25.47, Mazeratti, вс605г73
Ошибок нет
12
Удаление нового Лекарства
Лекарства
Удалить: Аскорбинка, повышение иммунитета, Таблетки, Витамины, Ниармедик Фарма, Россия,10 шт., 25 руб.
Ошибок нет
13
Удаление новой Аптеки
Аптеки
Удалить:10, Димитрова -10-55, Здоровье, 8(895)654.57.21, zdorovie.com, Дубров Л.В., 989754
Ошибок нет
По окончании тестирования БД по всем направлениям, заказчик подписывает акт о приемке заказа - разработка БД «Разработка и администрирование базы данныхпо учету оптовой продажи лекарственных препаратов в сеть аптек». Далее БД заполняется до полного объема и сдается в эксплуатацию с ее дальнейшим сопровождениемразработчиком.
2. Инструкция пользователя
Для загрузки БД «Разработка и администрирование базы данныхпо учету оптовой продажи лекарственных препаратов в сеть аптек», необходимо запустить файл «Продажа лекарств», который находится на диске D:\ в папке Продажа лекарств. При запуске загружается СУБД Access и автоматически открывается главная кнопочная форма приложения «Главная форма».
Пользовательский интерфейс базы данных «Разработка и администрирование базы данныхпо учету оптовой продажи лекарственных препаратов в сеть аптек» организован на работе:
Наиболее часто возникающие ошибки при работе приложения сведены в следующую таблицу.
Таблица№8 - Устранение ошибок при работе приложения
п/п
Проблема/ошибка
Действия по устранению проблемы/ошибки
1
Не загружается главная кнопочная форма «Главная» при открытии базы данных
Проверить настройку СУБД: панель быстрого доступа; текущая БД; форма просмотра «Главная форма»
2
Не работает кнопка «Менеджеры» на главной кнопочной форме
Проверить настройку макроса для кнопки «Менеджеры»
3
Не работает автоувеличение значения по полю «№ аптеки» на форме Аптеки
Проверить формулу
=DMax('[№ аптеки]';'[Аптеки]')+1
В свойстве «значение по умолчанию» поля «№ аптеки»
4
Не работает парам запрос «Количество отгрузок с определенным ТНМ»
Проверить условие в запросе по полю Отгрузка.ТНМ Like [Введите табельный номер менеджера]
5
Не работает вычисление в группе, итоговые вычисления в отчете «Данные по проданному товару»
Проверить формулу =Sum([Сумма])в конструкторе отчета «Данные по проданному товару» как в примечании группы, так и в примечании отчета
6
Организация группы переключателей на форме «Отгрузка»
Создать новое поле «оплата» в таблице «Отгрузка» с числовым типом данных. В конструкторе формы «Отгрузка» поместить объект «группа переключателей» с сохранением значения в поле «оплата»
7
Не работает подчиненная форма «В кассу» на отчете «Отгрузка»
Проверить связь подчиненной формы в кассу с основной формой «Отгрузка» по полю «№ отгрузки»
8
Не открывается фотография по записи на форме «Менеджеры»
Проверить привязку файла с фотографией по каждой записи таблицы «Менеджеры» в поле «фото»
9
Организация форм БД в виде «вкладок» или «Перекрывающиеся окна»
Настройка панелей быстрого доступа (текущая БД) установить флажок на соответствующем пункте
10
Организация сводного отчета
Создать отчет с 4 полями
Создать отчет со сводной диаграммой
Перетащить или отбуксировать запрос на диаграмму
Отбуксировать поля на соответствующие зоны сводного отчета
Выполнить
11
Не открывается файл с презентацией с главной кнопочной формы
Проверить путь к файлу презентации в свойстве «адрес гиперссылки» кнопки «презентация»
12
Добавление нового отчета на форму «подформа отчеты»
Добавить новую кнопку с названием отчета на форму
Прикрепить макрос к данной
Кнопке с макрокомандой открыть отчет
Заключение
В начале разработки базы данных «Разработка и администрирование базы данныхпо учету оптовой продажи лекарственных препаратов в сеть аптек» перед разработчиком были поставлены следующие цели:
Изучив предметную область, на первом этапе разработки, были выделены необходимые объекты с их атрибутами, далее построена ER-диаграмма, на основе которой была разработана логическая схема БД.
На физическом этапе разработки в СУБД Access были созданы таблицы, формы, запросы и отчеты.
При разработке пользовательского интерфейса приложения были использованы следующие программы:
По окончании разработки приложения были проведены работы по тестированию базы. По результатам теста можно сделать вывод, что поставленные цели в начале разработки выполнены, а именно была реализована автоматизация для работников аптечного склада «Милена».
Список используемой литературы
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.