Галина Губкина, Татьяна Турченюк, Иван Хахаев
Введение в базы данных OpenOffice.Org
OpenOffice.org – кроссплатформенный офисный пакет, распространяемый по свободной лицензии GPL (GNU Public Licence), поэтому его достаточно выгодно использовать в решении офисных задач. Компонент пакета OpenOffice.org, обеспечивающий работу с базами данных – OpenOffice.org Base (OOo Base) - может работать как с базами собственного формата, так и с базами, созданными для серверов баз данных типа Oracle или MySQL. В этом случае он играет роль оболочки (front-end) для сервера баз данных. Далее будет рассматриваться локальная («персональная») база данных, но технология при работе с серверами баз данных ничем не отличается.
Следует отметить, что базу скопировать на другие носители или каталоги невозможно. Можно сохранить таблицы данных, но связи и запросы не сохранятся. Это гарантирует некоторую безопасность баз данных.
Данный материал описывает работу с модельной базой данных для OpenOffice.org версий 2.x. В процессе создания базы и редактирования данного текста использовались различные сборки и версии пакета (что можно видеть по копиям окон), онако это не влияет на совместимость и функциональность. В первом поколении пакета (версии 1.x) компонента для работы с базами данных не было, однако база могла использоваться как источник данных (см. п. 4). Для успешной работы, генерации форм и отчетов необходимо использовать виртуальную машину Java (JRE). Она может бать включена в состав сборки OpenOffice.org, в состав дистрибутива Linux или xBSD, а также может быть получена другими путями, поскольку сборки JRE являются бесплатными (free sofware).
Состав базы и типы данных
В состав базы данных OOo Base обычно входят четыре вида документов (объектов)
Таблицыслужат для хранения данных в определенной структуре.
Запросысоздаются для выборки данных из одной или нескольких связанных таблиц.
Формыпредназначены для ввода, редактирования и просмотра табличных данных на экране в удобном виде.
Отчетыявляются выходными документами, предназначенными для вывода на принтер.
Таблицы составляют основу базы данных – именно в них хранятся все данные. Таблицы должны быть тщательно спланированы. Прежде всего, должна быть определена структура каждой таблицы. Структура таблиц обуславливается содержанием тех выходных форм, запросов и отчетов, которые должны быть получены при работе с базой данных. При планировании таблиц необходимо избегать повторения столбцов в разных таблицах, только если они не служат для определения связей между таблицами.
Таблица – это объект БД, который хранит данные определенной структуры. Таблица состоит из записей (строк), каждая из которых описывает одну сущность. Каждый столбец таблицы – это поле. Поле содержит однотипную информацию, определяющую тип данных. Тип данных определяет вид и диапазон допустимых значений, которые могут быть введены в поле, а также объем памяти, выделяемый для этого поля, что немаловажно при проектировании больших БД.
Указание типа поля требуется во-первых, для его правильной обработки (с текстом нельзя делать такие же операции как с числами, а с датами нельзя работать как с логическими величинами), а во-вторых, для эффективного распределения памяти. В таблицах OOo Base используются следующие типы полей (комментарии даны на основе опыта и аналогий с другими базами данных):
Tiny Integer [TYNYINT] – используется чаще всего для нумерации при небольшом количестве позиций. Длина, по-видимому, определяет количество битов для записи целого числа (Tynyint(3) дает 8 вариантов (3 бита))
Длинное целое [BIGINT] – разрядность вдвое больше принятой в системе. В 32-разрядной системе для такого целого выделяется 64 бита.
Картинка [LONGVARBINARY] – двоичный объект (BLOB в классическом понимании) размера в десятки и сотни Кбайт.
Двоичное [VARBINARY] – var дает возможность экономии памяти если в разных записях это поле реально имеет разный размер.
Двоичное (фикс.) [BINARY]
Памятка [LONGVARCHAR] – большой текст (до 64 Кбайт) (оно же MEMO)
Текст (фикс.) [CHAR] – строка с жестко заданным количеством символов. Экономии памяти не происходит.
Число [NUMERIC] – видимо, натуральное число.
Десятичное [DECIMAL]
Целое [INTEGER] – 1 бит на знак, 31 – на значение целого числа.
Короткое целое [SMALLINT] – вдвое меньшая разрядность (16 битов)
С плавающей точкой [FLOAT] – не очень понятно, чем отличается от DECIMAL
Вещественное [REAL] – по-видимому. классическое вещественное – представляемое как 32-разрядные мантисса и порядок
С двойной точностью [DOUBLE] – аналогично REAL, но разрядность удваивается
Текст [VARCHAR] – строка до 256 знаков с экономией памяти на более коротких экземплярах.
Текст [VARCHAR_IGNORECASE] – не различаются строчные и прописные буквы
Логическое [BOOLEAN]
Дата [DATE]
Время [TIME]
Дата/время [TIMESTAMP] – так называемый “UNIX timestamp” – число миллисекунд, прошедших с начала “эры UNIX”
OTHER [OTHER]
