среда, 31 марта 2010 г.

Использование системы SIARD для миграции баз данных

Я уже писала о системе SIARD, разработанной Федеральным архивом Швейцарии (см. http://rusrim.blogspot.com/search/label/SIARD ). Сегодня я хочу предложить Вашему вниманию отзыв об этой системе, подготовленный Крисом Промом (Chris Prom) и опубликованный 19 марта 2010 года на его блоге «Электронные документы на практике – программное обеспечение и инструменты для архивистов».

Используя инструменты для экспертизы ценности, о которых я писал на прошлой неделе, я обнаружил среди обрабатываемых мною файлов отдела интеллектуальной свободы (Office of Intellectual Freedom, OIF) Американской библиотечной ассоциации (American Library Association, ALA) около 150 файлов баз данных, большинство из них - в формате Microsoft Access, хотя попалось и несколько файлов формата Paradox. Используя бесплатную программу для просмотра файлов Paradox, я смог быстро установить, что последние представляли собой базы данных контактной информации, и принял решение не проводить их миграцию или иные работы по обеспечению долговременной сохранности.

Аналогичным образом я изучил 84 базы данных формата Access, включенные в число передаваемых на хранение материалов, и быстро определил, что многие из них содержат повторяющуюся информацию. На основе индивидуального анализа баз данных выяснилось, что подавляющее большинство из них содержит данные о транзакциях (таких как заказ рекламных материалов или регистрация на конференциях), не удовлетворяющие критериям ценности для материалов постоянного хранения. Поэтому я эти базы удалил.

Однако одна конкретная база данных имела достаточную доказательную и информационную ценность, оправдывающую её постоянное сохранение: всеобъемлющая база данных, отслеживающая проблемы с книгами, о которые библиотекари сообщали в OIF. И хотя данный файл определенно читаем с использованием текущих версий Microsoft Access, и я, конечно, сохраню его копию в сдаточном информационном SIP-пакете [терминология стандарта OAIS – Н.Х.], - благоразумие подсказывает, что необходимо также создать копию базы в некоммерческом формате, с тем, чтобы если не восприятие базы (look and feel), то хотя бы сами данные сохранялись вне зависимости от коммерческого программного обеспечения.

Как я отметил в своём предыдущем посте, разработанная швейцарскими федеральными архивами система SIARD является одним из инструментов, которые могут быть использованы для нормализации баз данных. Она представляет собой платформенно-независимый инструмент на базе Java. Я потратил на работу с ней некоторое время, и меня впечатлили её возможности. Однако, к сожалению, я натолкнулся на повторяющиеся и нерешаемые проблемы при использовании программы с некоторыми крупными базами данных в формате Microsoft Access, использующими плохо определенные схемы и/или плохо структурированные данные. В итоге я так и не смог заставить программное обеспечение создать нормализованное представление для интересующей меня базы данных «проблемных» книг (Challenged Books Database).

Обзор системы SIARD

Основной программой системы SIARD является SIARDEdit. Задав несколько простых параметров (см. рис. ниже), можно подключиться к базе данных и сделать её копию в сжатую .siard-папку, при этом вся структура и метаданные записываются в самодокументированном XML-формате (большие текстовые поля и двоичные объекты сохраняются как отдельные файлы, на которые в XML-файле имеются ссылки).

SIARD: Установление соединения с базой данных

На самом деле, использовать SIARD для архивации базы данных совсем не так просто, поскольку базы данных нужно предварительно «подготовить», чтобы система SIARD смогла их мигрировать. В случае с базой данных MS Access, пользователь 'Admin ' должен получить доступ на чтение трёх скрытых системных таблиц, и ODBC-соединение нужно настроить с помощью средств администрирования (Administrative Tools) в панели управления (Control Panel) (чтобы использовать SIARD под Linux для конвертации баз данных MS Access, придётся приобрести ODBC-драйвер для Access). Хотя подготовить базу данных и не сложно, мне понадобилось немало времени, прежде чем понял, что мне необходимо это сделать.

Небольшие базы данных SIARD преобразует довольно быстро, и в конечном итоге таблицы и запросы исходной базы данных можно просматривать в интерфейсе SIARDEdit. В той мере, в какой они были формально определены в структуре базы данных, сохраняются взаимосвязи и внешние ключи (foreign keys), хотя отсутствует удобный способ просмотра соответствующих данных в том виде, в каком они могли быть представлены в формах или на специализированных веб-сайтах. (Например, в базе данных «проблемных» книг, ключ связывает книги с учреждениями, и эта связь может быть построена вручную, но она не показывается пользователю.) Аналогичным образом, поля описаний для названий столбцов помещаются в описательные метаданные каждого столбца. Ниже приведен скриншот, показывающий представление таблиц и редактирование пользователем метаданных, описывающих назначение таблицы.

Редактор метаданных SIARD


Нормализованная база данных сохраняется в zip-файл с расширением .siard. Метаданные из zip-файлов могут быть экспортированы в XML-файлы прямо из программы SIARDEdit, и есть возможность просматривать эти файлы непосредственно, - но только с использованием программного обеспечения для сжатия PKZIP, поскольку в настоящее время используемый в SIARD алгоритм сжатия папок, позволяющий работать с zip-файлами размером более 4 Гб, поддерживается только PKZIP.

Использование SIARD

Я протестировал SIARD на нескольких базах данных формата MS Access (в настоящее время система может работать только с базами данных Access, Oracle и MSSQL, хотя планируется добавить поддержку других форматов). Хотя запустить программу было легко (после того, как я прочитал руководство), в конечном итоге мне не удалось заставить её работать с несколькими крупными базами данных Access. В тех случаях, где обработка завершилась неудачно, программа выполняла весь процесс копирования таблиц и создания метаданных, но внезапно «вылетала» в конце процесса при попытке записать результаты в файл .siard. Сообщения об ошибках, выдаваемые в интерфейсе и в протоколе обработки (который я включил вручную, следуя инструкциям в отлично сделанном руководстве пользователя), не содержали достаточной информации, которая позволила бы мне установить причины проблем.

Однако в одном случае я заметил, что процесс закончился, когда SIARD попытался сохранить метаданные для пустой таблицы. После того, как я удалил эту таблицу из исходной базы данных, я смог завершить обработку базы без каких-либо проблем. При работе с двумя другими крупными базами данных, сбой произошёл во время обработки больших таблиц, и в протоколе не была указана конкретная строка, при обработке которой произошла ошибка. Странно, но в одном случае программа, по-видимому, таинственным образом удаляла создаваемый ею файл, так что этот процесс заканчивался неудачей при попытке записи в файл SIARD.

В любом случае, важно отметить, что когда SIARD сбоит, то весь процесс обработки прекращается. Трудно сказать, было ли это задумано специально (чтобы было невозможно заархивировать неполную базу данных), или же произошло случайно.

Тем не менее, я думаю, что для многих учреждений SIARD может оказаться единственным реалистичным вариантом нормализации баз данных, имеющих постоянную ценность, в случаях, когда сохранение самих данных имеет первостепенное значение по сравнению с восприятием работающей базы данных. Швейцарские федеральные архивы активного собирают замечания и предложения от пользователей, так что можно надеяться, что некоторые из проблем, с которыми я столкнулся, со временем будут устранены или, по крайней мере, смягчены.

Надеюсь, что развитие программы будет продолжаться, и со временем все эти проблемы исчезнут.

Крис Пром (Chris Prom)

Источник: блог «Practical E-Records - software and tools for archivists»
http://e-records.chrisprom.com/?p=970#more-970

Комментариев нет:

Отправка комментария