132 документа
← К списку

Приложение 9. Работа с XBase

страница

Приложение 9. Работа с XBase

В данном разделе приводится пояснение терминов, использованных при описании средства встроенного языка для работы с базами данных ‑ объекта XBase.

9.1. Поля и записи

Хорошим примером базы данных может служить телефонный справочник организации. Он содержит фамилии, номера телефонов и номера комнат всех сотрудников организации. Каждая строка справочника соответствует одной записи, а каждая колонка ‑ полю. Каждое поле имеет наименование и характеристики информации, для хранения которой оно предназначено: тип, длина, точность. Содержимое поля для конкретной записи называется значением поля. Например, телефонный справочник может быть организован в виде таблицы с колонками (полями) Фамилия Имя Отчество, № комнаты, Телефон. Каждая строка (запись) содержит информацию об одном абоненте.

9.2. Таблица, структура таблицы, файл базы данных

Весь справочник целиком в терминах баз данных называется таблицей. Состав входящих в таблицу полей определяет структуру таблицы, а состав входящих в таблицу записей ‑ ее содержание. Каждая запись в таблице состоит из того же набора полей, что и таблица целиком, поэтому иногда употребляется термин структура записи. Это понятие адекватно структуре таблицы, хотя употребление первого термина представляется более корректным, т. к. таблица имеет структуру независимо от того, имеется ли в ней хотя бы одна запись.

Реализация баз данных формата DBF подразумевает, что каждая таблица хранится в отдельном файле. Поэтому в дальнейшем мы будем применять термин «файл базы данных» или «файл БД», имея в виду таблицу базы данных.

9.3. Индексы, выражения индекса и фильтра, индексный файл

Для организации упорядочивания содержимого файла базы данных и поиска в ней по значению одного или нескольких полей применяется механизм индексов. Его применение можно сравнить с сортировкой картотеки по определенному признаку (совокупности признаков). Однако, в отличие от картотеки, файл базы данных может иметь сразу несколько индексов и, соответственно, являться упорядоченным одновременно по нескольким признакам. Каждый индекс имеет наименование, признак уникальности, выражение индекса и фильтр. Наименование индекса используется для идентификации индекса. Выражение индекса и фильтр представляют собой написанные на специальном языке выражения, вычисление значения которых для каждой записи позволяют определить ее место при упорядочивании и необходимость помещения ее в упорядоченный список (индекс может содержать упоминание не обо всех записях таблицы, а только об удовлетворяющих выражению фильтра). Уникальный индекс (имеющий установленный признак уникальности) позволяет иметь в индексе ссылки на записи только с различным значением индексного выражения.

Индексы хранятся в индексном файле. Индексный файл может содержать информацию более чем об одном индексе.

9.4. Запись изменений в базу данных

Каждый объект представляет собой структуру данных, расположенных в памяти компьютера. И изменение содержимого свойств объекта не вызывает немедленного изменения в файлах базы данных. При включенном режиме автосохранения запись содержимого объекта в файлы базы данных происходит при изменении позиционирования (переход к следующей записи, поиск по ключу и т. д.). При выключенном режиме автосохранения запись изменений происходит только при вызове соответствующего метода объекта.

9.5. Работа с индексными файлами

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

9.6. Удаление записей

Удаление записи из базы данных не приводит к физическому уничтожению ее на диске. В этом случае в специальном служебном поле записи, недоступном обычными средствами, ставится пометка об удалении. На записи, помеченной удаленной, позиционирования не происходит, если не включен специальный режим просмотра удаленных записей. Имеется свойство, управляющее специальным режимом просмотра, а также набор методов для определения, является ли спозиционированная запись удаленной, и восстановления удаленной записи.

Метод сжатия базы вызывает физическое уничтожение записей, помеченных как удаленные. Метод очистки базы вызывает физическое уничтожение всех записей. После применения этих методов восстановление удаленных записей становится невозможным.

9.7. Создание базы данных, индекса, индексного файла

Помимо работы с существующими базами данных, объект XBase имеет набор методов, позволяющих создать новую базу данных произвольной структуры, новые индексы и новый индексный файл. Следует отметить, что если использование методов, изменяющих структуру базы данных, возможно только для объектов, не связанных с существующей базой данных (т. е. для вновь создаваемых баз данных), то создание новых индексов и индексного файла возможно как для создаваемых баз данных, так и для уже существующих и открытых.

9.8. Ограничения

Основное назначение объектов XBase ‑ организация экспорта-импорта информации в/из внешних файлов формата DBF.

Объекты XBase не поддерживают поля типа memo. Объекты XBase поддерживают только монопольный доступ к файлам. Объекты XBase поддерживают индексные файлы в формате CDX. Однако использование внешними программами (например, FoxBase) индексных файлов, созданных с помощью объектов XBase, так же как и использование объектами индексных файлов, созданных внешними программами, не рекомендуется из-за возможной несовместимости версий.