![](/user_photo/_userpic.png)
Архангельский_Дроздов_Ларин_2154
.pdf![](/html/76326/137/html_2ZuJbwAIca.UYw4/htmlconvd-93DFMq31x1.jpg)
4.2 Отчетность по заданным параметрам
Отчет — объект базы данных Microsoft Access, предназначенный для вывода на печать данных, организованных и отформатированных в соответствии с требованиями пользователя. С помощью отчетов можно просматривать, форматировать и группировать информацию в базе данных.
На рисунке 27 продемонстрировано формирование отчета «Выписка по статусам», реализованный через запрос списка отправлений, имеющих определенный статус, в данном случае, статус «Доставлено».
Рисунок 27 — Формирование отчета через запрос
На рисунке 28 показан сформировавшийся отчет по заданному параметру. С помощью отчета начальник филиала может анализировать работу сотрудников и движение отправлений внутри филиала.
Рисунок 28 — Отчет «Выписка по статусам».
31
Глава 5. Разработка программного обеспечения
5.1 Анализ выбора программного обеспечения
Система управления базами данных (СУБД) – комплекс программных и лингвистических средств общего или специального назначения,
обеспечивающих управление созданием и использованием баз данных. На сегодняшний день есть огромное количество СУБД, подходящих для разработки баз данных.
Реляционные СУБД чаще всего используются для построения решений
OLTP (Online Transaction Processing). В таких решениях СУБД работает с небольшими по размерам транзакциями, но идущими большим потоком, и при этом от системы требуется минимальное время отклика, а также возможность,
при определенных условиях, отменить любые изменения выполняемых в рамках транзакции.
Реляционные СУБД отличаются высокой нормализацией данных, а
также способностью обрабатывать большое количество транзакций. К
наиболее известные СУБД такого типа можно отнести Oracle, Microsoft SQL Server, PostgreSQL, MySQL, SQL Plus. Рассмотрим наиболее актуальные и распространённые СУБД:
Microsoft SQL Server является самой популярной коммерческая СУБД.
Была разработана компанией Microsoft Corporation. Microsoft SQL Server в
качестве языка запросов использует версию SQL. Microsoft также выпустила сертифицированный драйвер JDBC, позволяющий приложениям под управлением Java (таким как BEA и IBM WebSphere) соединяться с Microsoft
SQL.
SQL Server поддерживает зеркалирование и кластеризацию баз данных.
Кластер сервера SQL – это совокупность одинаково конфигурированных серверов, такая схема помогает распределить рабочую нагрузку между несколькими серверами. Все сервера имеют одно виртуальное имя, и данные распределяются по IP адресам машин кластера в течение рабочего цикла.
32
Также в случае отказа или сбоя на одном из серверов кластера доступен автоматический перенос нагрузки на другой сервер.
Особенностью Microsoft SQL Server является высокая производительность, а также возможность установить разные версии на одном компьютере.
SQLite — встраиваемый движок баз данных. В 2005 году проект получил награду Google-O’Reilly Open Source Awards.
Слово «встраиваемый» означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется и движок становится составной частью программы.
Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа.
Простота реализации достигается за счёт того, что перед началом исполнения транзакции весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла-журнала.
В ряде инструментариев присутствует возможность использования
SQLite как базы данных, например:
•Adobe Flex
•PHP
•Ruby on Rails
•1C Работа в 1С-Предприятии 7.7 с базами данных SQLite
•SQLite Manager — add-on для Firefox предлагает визуальный интерфейс для работы с SQLite
PosgreSQL – масштабируемая объектно-реляционная база данных,
работающая на Linux, Windows, OSX и некоторых других системах.
33
Разработка PostgreSQL Global Development Group на языке С. В PostgreSQL 10
есть такие функции, как логическая репликация, декларативное разбиение таблиц, улучшенные параллельные запросы, более безопасная аутентификация по паролю на основе SCRAM-SHA-256.
PosgreSQL поддерживает табличные пространства, а также хранимые процедуры, объединения, представления и триггеры.
Преимущества PostgreSQL:
•Поддержка БД неограниченного размера;
•Мощные и надёжные механизмы транзакций и репликации;
• Расширяемая система встроенных языков программирования
иподдержка загрузки C-совместимых модулей;
•Наследование;
•Легкая расширяемость.
Данную СУБД широко используют в таких знаменитых компаниях как
Apple, Cisco, Fujitsu, Skype, и IMDb.
My SQL является собственностью компании Sun Microsystems,
осуществляющей разработку и поддержку приложения. Распространяется под
GNU General Public License и под собственной коммерческой лицензией, на выбор. My SQL работает на Linux, Windows, OSX, FreeBSD и Solaris. Можно начать работать с бесплатным сервером, а затем перейти на коммерческую версию. Лицензия GPL с открытым исходным кодом позволяет модифицировать ПО. My SQL является оптимальным решением для малых и средних приложений.
Далее рассмотрим СУБД SQL*Plus.
SQL*Plus — программа-интерпретатор командной строки для работы с системой управления базами данных Oracle Database, в которой могут выполняться команды SQL и PL/SQL в интерактивном виде или из сценария.
Интерфейс SQL*Plus, по сути, открывает окно в базу данных Oracle и
потому очень широко используется разработчиками Oracle для создания
программных единиц SQL и PL/SQL. Для администраторов баз данных Oracle
34
этот интерфейс тоже является очень ценным инструментом по следующим
причинам:
1.Он позволяет выполнять запросы на языке SQL и блоки кода на языке PL/SQL и получать результаты
2.Выполняет команды, связанные с администрированием баз данных, и автоматизировать их;
3.Позволяет запускать и завершать работу базы данных;
4.Предоставляет удобный способ для создания отчетов по администрированию баз данных.
К более простым и распространенным СУБД можно отнести Microsoft Access – система управления базами данных от Microsoft, которая сочетает в себе реляционное ядро БД Microsoft Jet с графическим интерфейсом пользователя и инструментами разработки ПО. Одним из достоинств является то, что для выполнения почти всех основных операций Access предлагает большое количество Мастеров (Wizard), которые делают основную работу за пользователя при работе с данными.
На основании вышеизложенного, анализируя различные СУБД, был сделан выбор в пользу SQLite. Большинство ядер реляционных баз данных основаны на серверной архитектуре, которая позволяет программе запускаться на хост-сервере для взаимодействия с процессами для ретрансляции запросов, SQLite основан на бессерверной архитектуре, где любой процесс может напрямую обращаться к базе данных для чтения и записи в файлы базы данных на диске. Благодаря этой функциональности все программы, которые должны работать с SQLite, не требуют дополнительной настройки, им просто нужно разрешение на доступ к диску, что упрощает процесс настройки. Также, поскольку библиотека программного обеспечения имеет открытый исходный код, она бесплатна и не требует никаких лицензий для настройки.
35
5.2 Разработка ПО формирования структуры БД
Разработка базы данных должна начинаться с построения структуры таблиц и определения первичных, внешних и альтернативных ключей.
1. Создание таблицы «Адресные данные отправлений». create table [Адресные данные отправлений] (
id int primary key,
[Трек-номер] foreign key references [Детали отправлений] ([Трек-
номер]),
[Наименование получателя] foreign key references [Детали отправлений]([Получаетель]),
[Наименование отправителя] foreign key references [Детали отправлений]([Отправитель]),
[Адрес получателя] foreign key references [Детали отправлений]([Адрес получателя]),
[Адрес отправителя] foreign key references [Детали отправлений]([Адрес отправителя])
)
2. Создание таблицы «Вес отправлений». create table [Вес отправлений] (
id int primary key,
[Трек-номер] foreign key references [Детали отправлений]([Трек-номер]), [Вес] foreign key references [Детали отправлений]([Вес])
)
3.Создание таблицы «Вид отправления».
create table [Вид отправления] ( id int primary key,
[Вид отправления] foreign key references [Детали отправлений]([Вид отправления])
)
36
4.Создание таблицы «Даты»
create table [Даты] (
id int primary key,
[Трек-номер] foreign key references [Детали отправлений]([Трек-номер]), [Дата поступления в филиал] foreign key references [Детали
отправлений]([Дата поступления в филиал]),
[Дата последней операции] foreign key references [Детали отправлений]([Дата последней операции])
)
5.Создание таблицы «Денежные свойства».
create table [Денежные свойства] ( id int primary key,
[Трек-номер] foreign key references [Детали отправлений]([Трек-номер]), [Ценность] foreign key references [Детали отправлений]([Ценность]), [Стоимость услуг] foreign key references [Детали
отправлений]([Стоимость услуг])
)
6.Создание таблицы «Категория отправления».
create table [Категория отправления] ( id int primary key,
[Категория отправления] foreign key references [Детали отправлений]([Категория отправления])
)
7. Создание таблицы «Места хранения отправлений». create table [Места хранения отправлений] (
id int primary key,
[Места хранения] foreign key references [Детали отправлений]([Места хранения])
)
37
8.Создание таблицы «Сотрудники филиала».
create table [Сотрудники филиала]( id int primary key,
[Табельный номер сотрудника] foreign key references [Детали отправлений]([Табельный номер сотрудника]),
[Фамилия] nvarchar(64) not null, [Имя] nvarchar(64) not null, [Отчество] nvarchar(64) not null, [Должность] nvarchar(64) not null
)
9.Создание таблицы «Статус отправления».
create table [Статус отправления] ( id int primary key,
[Статус отправления] foreign key references [Детали отправлений]([Статус отправления])
)
10.Создание таблицы «Тип доставки».
create table [Тип доставки] ( id int primary key,
[Тип доставки] foreign key references [Детали отправлений]([Тип доставки])
)
11.Создание таблицы «Детали отправлений».
create table [Детали отправлений] ( id int primary key,
[Трек-номер] foreign key references [Вес отправления]([Трек-номер]) & [Адресные данные отправлений]([Трек-номер]) & [Даты]([Трек-номер]) & [Денежные свойства]([Трек-номер]),
[Входящий номер] nvarchar(64) not null,
38
[Место хранения] foreign key references [Место хранения]([Место хранения]),
[Вид отправления] foreign key references [Вид отправления]([Вид отправления]),
[Категория отправления] foreign key references [Категория отправления]([Категория отправления]),
[Статус отправления] foreign key references [Статус отправления]([Статус отправления]),
[Дата последней операции] foreign key references [Даты]([Дата последней операции]),
[Табельный номер сотрудника] foreign key references [Сотрудники филиала]([Табельный номер сотрудника]),
[Дата поступления в филиал] foreign key references [Даты]([Дата поступления в филиал]),
[Вес] foreign key references [Вес отправлений]([Вес]),
[Ценность] foreign key references [Денежные свойства]([Ценность]), [Стоимость услуг] foreign key references [Денежные свойства]([Стоимость
услуг]),
[Тип доставки] foreign key references [Тип доставки]([Тип доставки]), [Получатель] foreign key references [Адресные данные
отправлений]([Получатель]),
[Отправитель] foreign key references [Адресные данные отправлений]([Отправитель]),
[Адрес получателя] foreign key references [Адресные данные отправлений]([Адрес получателя]),
[Адрес отправителя] foreign key references [Адресные данные отправлений]([Адрес отправителя])
)
39
5.3Разработка алгоритмов и текстов программ
Сцелью проверки правильности работы программы и, непосредственно,
автоматизации системы обработки и учёта отправлений, были сформированы следующие запросы:
Формирование запроса «Выписка по статусам» (реализованная в главе
4.2 в виде отчета):
SELECT [Трек-номер], [Вид отправления], [Статус отправления], [Дата последней операции], [Табельный номер сотрудника]
FROM [Детали отправлений]
WHERE ([Статус отправления] Like "*" & [Введите статус отправления]
& "*");
Формирование запроса «Поиск отправления по трек-номеру» с
отображением всех свойств отправления:
SELECT *
FROM [Детали отправлений]
WHERE ([Трек-номер] Like "*" & [Введите трек-номер] & "*");
Формирование запроса «Поиск по виду отправления» с отображением отправлений определенного вида, с выводом на экран трек-номера, входящего номера, места хранения, вида отправления, статусом отправления, датой поступления в филиал:
SELECT [Трек-номер], [Входящий номер], [Место хранения], [Вид отправления], [Статус отправления], [Статус отправления], [Дата поступления в филиал]
FROM [Детали отправлений]
WHERE ([Вид отправления] Like "*" & [Укажите вид отправления] &
"*");
Формирование запроса «Поиск по категории отправления» с
отображением отправлений определенной категории, с выводом на экран трек-
40