Диплом: Повышение удобства учета выдачи и хранения книг в библиотеке за счет автоматизации с применением мобильных устройств компании Apple

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
45
логикой для приведения и преобразования извлеченных данных в формат,
используемый в приложении.
Рисунок 6 – Логика работы с базой данных на языке SQL
С другой стороны, Realm использует классы для определения своей
схемы данных (например, какие типы данных могут быть сохранены в базе
данных), и разработчик всегда работает с объектами, как при сохранении
данных в Realm, так и при запросе базы данных о результатах.
Рисунок 7 – Схема сохранения объектов в базу данных Realm
Это помогает упростить код приложения по сравнению с сохранением
данных другими способами. Нужно просто пропустить стандартный код
преобразования данных и всегда использовать родные объекты Swift.
Тот факт, что данные всегда содержатся в объектах, позволяет
использовать ряд других функций Realm: он анализирует классы и
автоматически обнаруживает любые изменения, которые вносятся в схему базы
данных, а также обновляет извлеченные данные до последнего снимка с диска и
многое другое.
Работа с объектами данных напрямую обеспечивает скорость, надежность
и безопасность типов. Ядро базы данных Realm (с открытым исходным кодом
46
на GitHub от Realm) написано на межплатформенном C++, поэтому оно
работает точно также на Android, iOS, macOS или любой другой платформе.
Realm предоставляет комплект разработки ПО (SDK) на разных языках
программирования, которые выполняют минимальное обертывание ядра базы
данных, чтобы предоставить разработчикам API-интерфейсы, наилучшим
образом соответствующие коду их приложений.
Ядро C++ одинаково для разных платформ, а нативные API также ведут
себя одинаково. Это помогает разработчикам iOS и Android в многопрофильной
команде синхронизировать рабочий процесс.
Существует возможность работать с собственными, настраиваемыми
классами на любом из поддерживаемых языков (Java, Kotlin, C#, Swift,
JavaScript и Objective-C) - Realm автоматически считывает и записывает
сохраненные данные на диск.
Realm не только позволяет использовать свои собственные классы для
сохранения данных, но дает возможность настроить свой собственный API-
интерфейс любым удобным способом.
Например, если есть необходимость использовать структуру, можно
добавить методы toStruct () и fromStruct (_) в класс объектов данных Swift,
чтобы иметь возможность быстро читать данные из базы данных в виде
структур Swift:
Рисунок 8 - Использование структур для обертывания
объектов
В данном случае объекты Swift оборачиваются в структуры аналогично
тому, как Realm оборачивает объекты C++ в объекты Swift.
Поскольку объекты данных Realm являются полноценными классами, не
нужно ограничиваться только функцией хранения. Они могут включать в себя
47
все виды дополнительной логики, которая актуальна в контексте сохранения
данных. Классы могут использовать методы для создания новых экземпляров,
извлечения экземпляров из заданной области, и для преобразования данных
между пользовательскими форматами, которые необходимо хранить на диске.
Для каждого языка Realm SDK старается предоставить необходимые
инструменты и API с родным интерфейсом, чтобы максимально упростить
рабочий процесс.
2.4 Планирование функционала программы
Поступление и хранение литературы, а также выдача печатных изданий
читателям являются одними из основных процессов в деятельности
библиотеки, которые нуждаются в автоматизации. Исходя из этого, в нашем
приложении должна быть возможность вносить новую литературу,
поступающую в библиотеку, и удалять из базы данных выбывающую. Кроме
того нужна опция редактирования данных. Необходим поиск требуемых
документов по различным параметрам (инвентарный номер, название книги,
фамилия автора), должна быть доступна информация о наличии искомого
документа и месте его хранения в библиотеке. Место хранения можно
определить с помощью ББК.
Для ускорения внесения информации о новой книге можно добавить
возможность работы со штрих-кодами. Штрих-код – способ представления
данных в визуальной, машиночитаемой форме. Штрих-коды делятся на
линейные и двухмерные. Линейные представляют собой последовательность
черных и белых линий и позволяют кодировать небольшой объем информации.
Двухмерные коды позволяют кодировать гораздо больше информации на
единицу площади по сравнению с линейными. Двухмерные и линейные коды
представлены большим разнообразием. Среди линейных кодов нас в первую
очередь интересует код EAN-13, поскольку именно он используется для
кодирования ISBN. Среди двухмерных кодов нам интересен QR-код.
48
Международный артикульный номер (также известный как европейский
артикульный номер или EAN) - это стандарт, описывающий систему символики
и нумерации штрих-кодов, используемую в глобальной торговле для
определения конкретного типа розничного продукта в конкретной
конфигурации упаковки от конкретного производителя. Стандарт был включен
в стандарт Global Trade Item Number организации GS1; те же самые номера
могут упоминаться как GTIN и могут быть закодированы в других символах
штрих-кода, определенных GS1. Штрих-коды EAN используются во всем мире
для поиска в точках розничной торговли, но также могут использоваться в
качестве цифр для других целей, таких как оптовый заказ или учет.
Наиболее часто используемым стандартом EAN является
тринадцатизначный EAN-13, расширенный вариант оригинального 12-значного
стандарта универсального кода продукта (UPC-A), разработанного в 1970 году
Джорджем Дж. Лаурером. Номер EAN-13 включает трехзначный префикс GS1
(с указанием страны регистрации или особого типа продукта). Префикс с
первой цифрой «0» обозначает 12-значный код UPC-A. Префикс с первыми
двумя цифрами «45» или «49» указывает на японский артикул (JAN).
Менее часто используемый 8-значный штрих-код EAN-8 был введен для
использования на небольших упаковках, где EAN-13 будет слишком большим.
2-значные EAN-2 и 5-значные EAN-5 являются дополнительными штрих-
кодами, расположенными с правой стороны EAN-13 или UPC. Они обычно
используются для периодических изданий, таких как журналы или книги, для
указания номера выпуска текущего года; и взвешенные продукты, такие как
продукты питания, чтобы указать рекомендованную розничную цену
производителя.
13-значный номер EAN-13 состоит из четырех компонентов:
Префикс GS1 - 3 цифры
Код производителя - переменная длина
Код продукта - переменная длина
49
Контрольная цифра
Префикс GS1
Дополнительная информация: Список кодов стран GS1
Первые три цифры EAN-13 (префикс GS1) обычно обозначают
организацию-член GS1, к которой присоединился производитель
(необязательно там, где фактически произведен продукт). [4] Обратите
внимание, что коды EAN-13, начинающиеся с 0, на самом деле представляют
собой 12-значные коды UPC с добавленными 0 цифрами. В последние
несколько лет все больше продуктов, продаваемых розничными торговцами за
пределами США и Канады, использовали коды EAN-13, начиная с 0, так как
они были созданы GS1-US.
Особо стоит упомянуть префиксы GS1 020-029. GS1 определяет это как
доступное для внутреннего использования продавцом (или для внутреннего
использования другими видами бизнеса). Некоторые розничные продавцы
используют это для собственных брендов или немаркированных продуктов,
хотя многие розничные продавцы получают собственный код производителя
для своих собственных торговых марок. Другие розничные продавцы
используют, по крайней мере, часть этого префикса для продуктов, которые
упакованы в магазине, например, для товаров, взвешенных и подаваемых
клиенту через прилавок. В этих случаях штрих-код может кодировать цену,
количество или вес вместе с идентификатором продукта - определенным
продавцом способом. Идентификатор продукта может быть идентификатором,
назначенным Советом по электронной идентификации продукции (PEIB), или
может быть назначен продавцом. Ритейлеры, которые исторически
использовали штрих-коды UPC, как правило, используют префиксы GS1,
начинающиеся с «02» для упакованных в магазине продуктов.
«Код страны» EAN 978 (и позднее 979) был выделен с 1980-х годов для
резервирования префикса уникального кода страны (UCC) для
идентификаторов EAN опубликованных книг, независимо от страны
50
происхождения, чтобы пространство EAN могло каталогизировать книги по
ISBN вместо поддержки избыточной параллельной системы нумерации. Это
неофициально известно как «Bookland». Префикс 979 с первой цифрой 0
используется для международного стандартного музыкального номера (ISMN),
а префикс 977 указывает на международный стандартный серийный номер
(ISSN).
Код производителя - это уникальный код, присваиваемый каждому
производителю органом нумерации, указанным в префиксе GS1. Все продукты,
произведенные данной компанией, будут использовать один и тот же код
производителя. EAN-13 использует так называемые «коды изготовителей
переменной длины». Назначение 5-значных кодов производителей
фиксированной длины, как это делала UCC до недавнего времени, означает, что
каждый производитель может иметь до 99 999 кодов продуктов. Многие
производители не имеют такого количества продуктов, что означает, что сотни
или даже тысячи потенциальных кодов продуктов тратятся впустую на
производителей, у которых есть только несколько продуктов. Таким образом,
если потенциальный производитель знает, что он собирается производить
только несколько продуктов, EAN-13 может выдать ему более длинный код
производителя, оставляя меньше места для кода продукта. Это приводит к
более эффективному использованию доступных кодов производителя и
продукта.
В ISBN и ISSN этот компонент используется для определения языка, на
котором издание было издано и управляется транснациональным агентством,
охватывающим несколько стран, или для определения страны, в которой
обязательные депозиты сделаны издателем, зарегистрированным в
национальном агентстве, и далее он подразделяется на любые выделяющие
субблоки для издателей; во многих странах есть несколько префиксов,
выделенных в реестрах ISSN и ISBN.
Код продукта присваивается производителем. Код продукта следует сразу
же за кодом производителя. Общая длина кода производителя плюс код
51
продукта должна составлять 9 или 10 цифр в зависимости от длины кода
страны (2-3 цифры).
В ISBN, ISMN и ISSN он однозначно идентифицирует публикацию
одного и того же издателя; он должен использоваться и распределяться
зарегистрированным издателем во избежание создания пробелов; однако
бывает, что зарегистрированная книга или сериал никогда не публикуются и не
продаются.
Контрольная цифра - это дополнительная цифра, используемая для
проверки правильности сканирования штрих-кода. Он вычисляется по модулю
10, где весовые коэффициенты при вычислении контрольной суммы
чередуются 3 и 1. В частности, поскольку весовые коэффициенты относительно
простых 10, система EAN-13 будет обнаруживать все однозначные ошибки. Он
также распознает 90% ошибок транспозиции (во всех случаях, когда разница
между соседними цифрами не равна 5).
Контрольная сумма рассчитывается как сумма произведений - берется
переменное значение веса (3 или 1), умноженное на значение каждой цифры
данных. Цифра контрольной суммы является цифрой, которая должна быть
добавлена к этой контрольной сумме, чтобы получить число, делимое на 10 (то
есть аддитивная обратная контрольная сумма, по модулю 10). См. Расчет
контрольной цифры ISBN-13 для более подробного описания и алгоритма.
Глобальный номер местоположения (GLN) также использует тот же метод.
Таким образом, в приложение планируется добавить функцию по
сканированию кода EAN-13, содержащего в себе информацию об ISBN, для
получения информации о книжных изданиях с помощью API, находящихся в
открытом доступе.
Чтобы ускорить процесс внесения новой книги в базу данных, можно
добавить в приложение возможность работы с QR-кодами. QR-код (сокращенно
от Quick Response Code) является товарным знаком для типа матричного
штрих-кода (или двумерного штрих-кода), впервые разработанного в 1994 году
для автомобильной промышленности Японии. Штрих-код - это
52
машиночитаемая оптическая этикетка, которая содержит информацию об
элементе, к которому он прикреплен. На практике QR-коды часто содержат
данные для локатора, идентификатора или трекера, которые указывают на веб-
сайт или приложение. QR-код использует четыре стандартизированных режима
кодирования (числовой, буквенно-цифровой, байтовый / двоичный и кандзи)
для эффективного хранения данных; также могут быть использованы
расширения.
Система быстрого реагирования стала популярной за пределами
автомобильной промышленности благодаря своей быстрой читаемости и
большей емкости хранения по сравнению со стандартными штрих-кодами UPC.
Приложения включают в себя отслеживание продуктов, идентификацию
товаров, отслеживание времени, управление документами и общий маркетинг.
QR-код состоит из черных квадратов, расположенных в виде квадратной
сетки на белом фоне, которые могут быть считаны устройством обработки
изображений, например камерой, и обработаны с использованием коррекции
ошибок Рида-Соломона, пока изображение не будет соответствующим образом
интерпретировано. Затем необходимые данные извлекаются из шаблонов,
которые присутствуют как в горизонтальной, так и в вертикальной
составляющих изображения.
В настоящее время существует множество сайтов в сети Интернет, при
помощи которых можно создать QR-код. Мы воспользуемся сайтом
http://qrcoder.ru/.
Чтобы иметь возможность выдать книгу читателю нам необходимо
создать базу данных читателей с возможностью добавления и редактирования
информации. Необходима функция контроля срока возврата выданной
литературы.
Для определения выданных книг и читателей, не возвративших книги в
срок, нужно предусмотреть цветовую дифференциацию. Можно сделать
невозможной выдачу книг читателям, не вернувшим литературу в
установленный срок.
53
Для расширения функционала приложения следует добавить
возможность экспорта информации о литературных произведениях и читателях
в существующую автоматизированную библиотечную информационную
систему. Образцом такой системы послужит ИРБИС.
Определимся со сценами, которые необходимо будет создать в Xcode
для отображения вышеописанной информации. Нам потребуются следующие
сцены:
- «Основная сцена» - для отображения основных функций
приложения;
- «Список книг» - для отображения книг, содержащихся в
библиотечном фонде;
- «Список читателей» - для отображения зарегистрированных
читателей;
- «Новый читатель» - для ввода данных о новом читателе;
- «Новая книга» - для ввода сведений о поступающих в библиотеку
экземплярах;
- «Информация о читателе» - для отображения основных сведений о
читателе;
- «Информация о книге» - для отображения основных сведений о
книге.
Далее определим модели для сохранения информации в базу данных и
связи между ними.
54
Рисунок 9 – Модели данных и связи между ними
Для того чтобы иметь возможность узнать, у какого читателя книга
находится в данный момент, и какие книги находятся во временном
пользовании конкретного читателя, нам необходимо установить иерархическую
связь между моделями читателя и книги. Поскольку экземпляр книги
единовременно может находиться только у одного читателя, и в тоже время у
него может находиться больше одной книги, то нам подходит связь «один-ко-
многим». Между моделями «Читатель» и «Адрес» имеется аналогичная
связь, только односторонняя.
Для нахождения конкретного объекта в объектно-ориентированной базе
данных необходимо, чтобы у него был индивидуальный идентификатор. В
модели «Книга» таким идентификатором разумно будет сделать атрибут
«Инвентарный номер», в модели «Читатель» - атрибут «Номер читательского
билета», а в модели «Адрес» - атрибут «Номер телефона».
Вывод по второй главе
Таким образом, во второй главе была кратко описана история создания
языка программирования Swift, а также рассмотрен его синтаксис. Были
описаны особенности интегрированной среды разработки Xcode, в том числе
такие ее функции, как раскадровка и Playground.
В результате сравнительного анализа нескольких баз данных, для
использования в приложении была выбрана Realm, поскольку она обладает
наибольшей скоростью обработки информации среди исследованных баз
данных. Были рассмотрены ключевые особенности базы данных Realm,
способы ее применения в проекте и отличия от реляционных баз данных.
Был описан функционал приложения, создаваемого с целью
автоматизации основных процессов, происходящих в библиотеках, а также
модель для сохранения информации в базу данных.

Смотрите также:

«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран
Work-life balance подход в управлении рабочим временем молодых сотрудников (на примере ООО «МГТ-сервис»)
Актуализация контента, отражающего концепцию «диалога культур», при освоении английского языка взрослыми обучающимися
Актуализация приемов инсценирования и драматизации в рамках интерактивной модели обучения английскому языку в старших классах
Актуальные подходы в построении внутреннего pr строительной компании (на примере ООО "Ренессанспроект")
Анализ деловой активности и экономической эффективности деятельности организации (на примере АО «СГ-Транс»)