Археометрика 2.7: огляд функціональних можливостей
Микола Жарких
Універсальна об’єктна база даних “Археометрика” версії 2.7 реалізована за допомогою системи програмування Delphi 4.5 (мова програмування – Object Pascal). Дана версія функціонує в середовищі Win32 (розробка і відлагодження виконувались в середовищі Windows 95). Вона продовжує розвиток ідей, закладених в попередніх версіях “Археометрики” [1] і реалізує теоретичну модель об’єктної бази даних, розвинену нами раніше [2].
Середовище зберігання
В якості середовища зберігання обрано промислову СУБД Paradox. Доступ до таблиць Paradox-а здійснюється стандартним для Delphi способом – через функції двигуна баз даних (Borland database engine) і компоненти роботи з таблицями.
Кожна база даних “Археометрики” складається з чотирьох таблиць. Основною є таблиця інформаційних об’єктів. В цій таблиці зберігаються двійкові образи екземплярів різних об’єктів. Для цього використовується поле двійкових даних (BLOB поле). Інші поля цієї таблиці містять первісний ключ екземпляра, його клас та його логічне ім’я. Таблиця логічних індексів містить логічні індекси екземплярів. Вона має поля, які ідентифікують атрибут, значення атрибута та первинний ключ екземпляра, який має дане значення даного атрибута. Поле “Значення атрибута” має довжину 8 байт; якщо розмір індексованих даних є фіксованим і не перевищує 8 байт, то його значення зберігається безпосередньо в даному полі. Для індексування рядкових даних, довжина яких є невизначеною, використовується додаткова словникова таблиця. В цій таблиці кожному радку ставиться у відповідність ціле число, яке потім використовується як значення атрибута в таблиці логічних індексів. Четверта таблиця використовується для зберігання файлових атрибутів. Відділення файлового атрибута від об’єкта, якому він належить, дещо порушує концепцію інкапсуляції, але підвищує ефективність програми в цілому.
Використання промислових стандартів у середовищі зберігання відкриває принципову можливість побудови клієнт-серверного варіанту “Археометрики”, в якій “Археометрика” буде виконувати роль клієнтської частини комплексу.
Ієрархічний багатодокументний інтерфейс
Для повноцінної реалізації вікон редакторів екземплярів винайдено принципово новий різновид інтерфейсу, який поєднує кращі риси багатодокументного (MDI) та однодокументного (SDI) інтерфейсів – ієрархічний багатодокументний інтерфейс (HMI). В рамках цього інтерфейсу кожне вікно є незалежним, як у SDI; воно підпорядковане вікну-господарю (тому інтерфейс ієрархічний), за винятком головного вікна програми, яке є коренем ієрархії. Кожна зміна властивостей вікна (наприклад, зміна шрифта) поширюється на всі ієрархічно підпорядковані йому вікна; пересування вікна тягне за собою пересування підпорядкованих вікон; під час мінімізації вікна підпорядковані вікна ховаються, а під час відновлення вікна – відновлюються. Користувач може створити кілька однотипних вікон (скажімо, кілька екземплярів редактора з ідентичною множиною екземплярів), тому інтерфейс є багатодокументним. Це дозволяє переглядати один екземпляр з множини в одному вікні, а інший – в другому, наприклад, з метою порівняння екземплярів.
Типи даних
Для моделювання предметної області програма пропонує велику кількість типів даних – значно більшу, ніж у звичайних СУБД. Така обставина обумовлена тим, що в “Археометриці” поняття “тип даних” визначає не тільки форму зберігання інформації б БД, але й вид елемента управління, за допомогою якого здійснюється перегляд та редагування відповідних даних.
Текстові типи
Рядок. Тип призначено для зберігання коротких текстів. Редактором є звичайне поле текстового вводу. Довжина тексту нічим не обмежена, окрім незручності переглядати довгий текст у маленькому віконці.
Мемо-поле. Тип призначено для зберігання довгих текстів. На відміну від рядка, в ньому текст можна розбивати на уступи. Редактором є елемент редагування тексту в кілька рядків (по умовчанню – 3 рядки). Цю кількість рядків можна задавати під час визначення метаатрибуту і потім змінювати в процесі роботи програми за допомогою роздільника. Додаткову зручність дає можливість редагування тексту в окремому вікні, яке можна розгорнути на цілий екран.
Збагачене мемо. Тип призначено для зберігання довгих форматованих текстів. На відміну від мемо-поля, допускається вживання шрифтів різних гарнітур, накреслень, кеглів та кольорів; є деякі можливості форматування уступів. Можливості представлення збагаченого тексту тотожні можливостям програми Wordpad з поставки Windows 95. Інші властивості подібні до мемо-поля.
Ключові слова. Тип призначено для роботи з ключовими словами. Редактор тотожній мемо-полю; додаткова функція цього типу полягає в тому, що кожен уступ тексту вважається ключовим словом і для нього автоматично створюється індексний запис.
Файлові типи
Файл. Тип призначено для зберігання довільної послідовності байтів. Редагування атрибуту здійснюється в спеціальному вікні, за допомогою якого задається підпис файлу, вказується файл-джерело даних, визначається, чи буде зберігатись копія файлу в БД. Це вікно ієрархічно підпорядковане вікну, в якому знаходиться атрибут. Додаткова зручність полягає у можливості переглядати (але не редагувати) початок файлу у вигляді тексту чи шістнадцяткового коду (меню “Вид”). В рядку стану редактор показує дату та розмір файлу. Якщо користувач заміняє джерело даних, програма вимагатиме підтвердження такої заміни.
Малюнок 1. Редактор файлового атрибуту
Зображення. Тип призначено для зберігання зображень. Він є нащадком типу “Файл” і успадковує всі його властивості. Редагування атрибуту здійснюється в спеціальному вікні. Цей тип даних охоплює як статичні зображення, так і фільми (звукові образи та відеофрагменти, які підлягають принципам Media control interface, MCI). Під час визначення метаатрибуту можна вказати, чи є допустимими тільки статичні зображення, тільки фільми, чи обидва типи джерел даних. В класі статичних зображень джерелом даних може бути файл у форматі BMP, GIF, TIF, JPG, PNG, PCX, PCD, TGA, EMF, WMF, ICO. В класі фільмів допустимими є всі типи файлів, для яких зареєстровано відповідні MCI драйвери. Для статичних зображень редактор дозволяє збільшувати виділений фрагмент (масштаб збільшення показано в останньому віконці рядка стану), а також задати масштаб 1:1 або вписати зображення у вікно. Для управління фільмами створюється звичайна панель управління зі стандартними кнопками перемотування, запуску та зупинки. Відеофрагменти можна переглядати безпосередньо у вікні редактора (на місці статичного зображення) або в окремому вікні.
Малюнок 2. Редактор атрибуту “Зображення”
OLE об’єкт. Тип призначено для зберігання OLE об’єктів. Редагування атрибуту здійснюється в спеціальному вікні. За допомогою меню “Файл” здійснюється створення нових OLE об’єктів та створення об’єктів з файлів; меню “Редагування”, зокрема, дає змогу вживати операцію спеціальної вставки; меню “Вид” дає змогу підібрати найкращий вигляд об’єкту (на прикладі застосовано режим вписування об’єкта у вікно).
Малюнок 3. Редактор атрибуту “OLE об’єкт”
Логічні типи
Логічне значення. Тип призначено для зберігання значень, що можуть бути істинними або ложними. Редактором є текстовий рядок, який змінює значення на протилежне при натисканні пробілу. Під час створення метаатрибуту можна задати тексти, які відповідають істинному та ложному значенням.
Виняток. Тип даних в усьому подібний до логічного значення. Додаткова функція його проявляється, якщо даний атрибут належить картотеці. В такому разі з усіх карток картотеки тільки одна картка може мати істинне значення цього атрибута. Встановлення такого атрибуту в істинне значення для однієї картки автоматично встановлює його значення для всіх інших карток в ложне.
Числові типи
Ціле число. Тип призначено для цілих чисел. Редактором є текстовий рядок. Під час створення метаатрибуту можна задати граничні значення для перевірки коректності вводу.
Дійсне число. Тип призначено для дійсних чисел. Поведінка подібна до типу даних “Ціле число”; додатково в метаатрибуті можна задати формат числа.
Гроші. Тип призначено для чисел, які відповідають грошовим одиницям. Поведінка подібна до типу даних “Дійсне число”.
Типи дати
Календарна дата. Тип призначено для календарних дат, тобто дат, які можуть бути представлені в комп’ютерному стандарті. Це дати григоріанського стилю після 1899 року, які мають визначені день і місяць. Редактором є текстовий рядок, який надає спеціальну маску для правильного вводу дати. Додаткова зручність створюється віконцем календаря, за допомогою якого можна ввести потрібну дату. Під час створення метаатрибуту можна задати в якості значення по умовчанню поточну дату.
Історична дата. Тип призначено для історичних дат [3]. Редактор реалізовано як окреме вікно. В ньому можна задати систему дати (реалізовано геологічні дату, григоріанську, юліанську від різдва Христа, юліанську від створення світу, ісламську системи), розмитість, дату з будь-яким ступенем невизначеності, а для інтервалу – окремо початкову та кінцеву дати.
Малюнок 4. Редактор історичних дат
Кластерні типи
Множина. Тип призначено для множин, тобто наборів бінарних ознак, кожна з яких може бути встановленою або не встановленою. Максимальна кількість ознак в одному атрибуті – 64. Тексти ознак задаються під час створення метаатрибуту. Редактор реалізовано як окреме вікно.
Малюнок 5. Редактор множин
Перелік. Тип призначено для текстів з фіксованою множиною варіантів (або однорівневих класифікаторів). Тексти варіантів задаються під час створення метаатрибуту. Редактором є стандартний список вибору.
Ієрархічний перелік. Тип призначено для ієрархічних класифікаторів. Редактор реалізовано як окреме вікно. Структура переліку задається під час створення метаатрибуту. Можна задати до 8 рівнів ієрархічної підпорядкованості елементів; допускається створення 256 кореневих елементів і для кожного елементу – до 256 підпорядкованих елементів.
Малюнок 6. Редактор ієрархічного переліку
Вказівник. Тип призначено для зберігання вказівників на інші об’єкти. Редактор реалізовано як окреме вікно. Під час створення метаатрибуту можна задати клас значень вказівника; в такому разі редактор буде пред’являти логічні імена тільки об’єктів заданого класу та його підкласів. Ці логічні імена відсортовані за абеткою, що полегшує пошук потрібного об’єкту; реалізовано інкрементний пошук (щоб підвести курсор до потрібного об’єкту, треба просто почати набирати його ім’я). Поточне значення, встановлене в редакторі, показано на горішній панелі.
Малюнок 7. Редактор вказівників
Вираз. Тип призначено для реалізації виразів. Правило обчислення виразів задається під час створення метаатрибуту. “Редактором” для виразу є звичайний текстовий рядок з тією особливістю, що дозволяє тільки переглядати значення виразу, але не змінювати його.
Картотека. Тип призначено для реалізації множинних атрибутів. Сама по собі картотека не містить ніяких даних і слугує тільки місцем збереження карток. Структура картки описується під час створення структури даних в деклараторі. В карту можуть входити атрибути будь-яких типів, в тому числі інші картотеки. Таким чином, об’єкт може мати атрибут типу картотека, в який вкладено іншу картотеку, і т.д. – глибина такого ієрархічного підпорядкування картотек не обмежена. Редактор реалізовано як окреме вікно, ієрархічно підпорядковане вікну, в якому знаходиться атрибут-картотека.
Слід підкреслити, що більшу частину властивостей метаатрибутів, заданих під час створення структури даних, можна змінювати в процесі експлуатації бази даних, не змінюючи вже нагромадженої інформації. Особливо корисним може виявитись поповнення кластерних типів новими елементами, скажімо, створення нових галузей класифікації шляхом додавання нових елементів в ієрархічний перелік.
Редактор послідовної множини
Побудова екранних форм вводу, редагування і перегляду інформації в “Археометриці” ґрунтується на засаді визначальної ролі структури даних. Фактично користувач проектує тільки стурктуру даних, тобто систему класів та їх атрибутів. Екранні форми генеруються автоматично на підставі цієї інформації. “Археометрика” пропонує три основних типи екранних форм – для послідовної множини об’єктів, для структурованої множини і для дерева об’єктів.
Редактор послідовної множини об’єктів є найбільш традиційним типом редактора, який має аналоги у звичайних СУБД. Він показує атрибути одного об’єкту і підтримує команди послідовної навігації (перейти до першого / останнього, попереднього / наступного об’єкту, або до об’єкту із заданим номером у множині). Він може знаходитись в стані перегляду, редагування або додавання нових об’єктів. Множина об’єктів визначається під час створення редактора. Для цього треба вказати джерело даних (в даній версії ним може бути тільки клас об’єктів), задати порядок сортування (необов’язково), загадати створити поліморфний чи мономорфний варіант редактора.
Вікно редактора розділено на дві частини. Зліва знаходиться інспектор об’єктів, в якому представлено стислу інформацію про всі об’єкти множини. Ця інформація складається з піктограми класу, логічного імені (якщо сортування не задано) або кількох колонок із значеннями атрибутів, за якими задано сортування об’єктів. Таким чином, унікальна особливість редактора послідовної множини в “Археометриці” полягає в тому, що він дає візуальний образ сортованої множини, чого не роблять екранні форми жодної промислової СУБД. Інспектор дозволяє прокручувати список об’єктів; клацнувши по потрібному об’єкту, користувач завантажує даний об’єкт в редактор, користуючись візуальними засобами.
Справа від інспектора знаходиться колонка атрибутів об’єкта. Кожен атрибут представлений підписом і полем вводу. Якщо атрибут редагується у власному вікні, то це вікно з’являється справа від поля вводу. Воно ієрархічно підпорядковане вікну редактора. В поліморфному варіанті, який є основним, список атрибутів перебудовується кожного разу, коли в редактор надходить об’єкт нового класу; в мономорфному варіанті список атрибутів визначається декларативним класом множини об’єктів і є незмінним. Таким чином, мономорфний редактор дає змогу представити об’єкт у спрощеному вигляді, обмежившись фіксованим набором атрибутів.
Редактор структурованої множини
Редактор структурованої множини об’єктів є унікальним для “Археометрики” і не має ніяких аналогів у промислових СУБД. Він також складається з інспектора та колонки атрибутів, і поведінка його в цілому не відрізняється від поведінки послідовного редактора. Особливість полягає у способі формування множини об’єктів. Окрім джерела даних, користувач може задати один чи декілька атрибутів, за якими треба виконати групування, а також один чи декілька атрибутів для сортування. Спочатку виконується групування об’єктів, а потім – сортування груп та об’єктів всередині груп. Користувач може задати автоматичний режим групування (це означає, що для кожного значення атрибуту буде сформована окрема група) або параметричний режим (тут користувач може задати параметри групування. Наприклад, для текстових типів можна задати кількість літер від початку тексту; в одну групу будуть об’єднані об’єкти, для яких ці літери співпадають). Таким чином, параметричне групування дозволяє здійснювати генералізацію даних і є потужним інструментом аналізу множин об’єктів.
Малюнок 8. В редакторі структурованої множини виконано автоматичне групування за значенням ієрархічного переліку TestTree
В інспекторі структурована множина візуально представляється у вигляді дерева. Кореневі групи утворені за значеннями першого атрибута групування; підпорядковані їм групи утворені за значеннями другого атрибуту групування, і т.д. Кінцевими вершинами дерева є об’єкти, які входять у відповідні групи й підгрупи. Інспектор дає змогу візуально знайти потрібну групу (підгрупу). Клацнувши по ній, користувач завантажує групу в редактор і бачить значення атрибутів, на підставі яких сформована групу (звичайно, ці значення можна тільки переглядати, але не редагувати).
Особливо цікавим може бути групування за значенням атрибуту типу “Ієрархічний перелік”. В цьому випадку структура груп і підгруп відповідає структурі переліку (порівняйте мал. 6 і 8), і на кожному рівні можуть знаходитись відповідні об’єкти.
Примітки
1. Жарких М.І., Кабаков Ю.Б. Універсальна об’єктна база даних “Археометрика”. – Археометрія та охорона історико-культурної спадщини, 1998 р., т. 2, с. 42 – 52.
2. Жарких М.І., Кабаков Ю.Б. Теоретична модель об’єктної бази даних. – Археометрія та охорона історико-культурної спадщини, 1999 р., т. 3, с. 57 – 69.
3. Кабаков Ю.Б. . – Археометрія та охорона історико-культурної спадщини, 1997 р., т. 1, с. 50 – 58.
30.08.1999 р.
Стаття лишилась незакінченою.