Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архангельский_Дроздов_Ларин_2154

.pdf
Скачиваний:
16
Добавлен:
04.04.2023
Размер:
3.39 Mб
Скачать

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