Физическая реализация табличной БД
Выше упоминалось о таблицах как разновидностях линейных структур данных. Рассмотрим в качестве примера простейший случай (системы FoxPro — см. далее, гл. 3, DBase, Access), когда табличная БД реализуется в рамках совокупности файлов ОС, поддерживаемых файловой системой. В этом случае каждая таблица помещается в отдельном файле ОС и строки таблицы являются записями файла. Элементом записи (здесь — неделимым) является поле — данное, описывающее какой-либо аспект (или атрибут) объекта. Поля имеют имена. Разные файлы могут иметь поля с одинаковыми именами, но лучше этого избегать.
Основные понятия, связанные с подобными БД:
Рис. 1.25. Основные понятия, связанные с отдельным файлом табличной БД
открытый (opened) файл — файл, доступный в данный момент данному приложению. Открытие файла создает в памяти буфер, в который с внешнего накопителя считываются записи. В разные моменты времени могут быть открыты различные множества файлов, количество открытых файлов обычно стараются ограничить, чтобы не расходовать оперативную память;
активный или текущий (current, active) — тот из открытых файлов, который обрабатывается в данный момент времени. Все операции над файлами (добавление записи; удаление записи; редактирование записи) адресуются именно к активному файлу;
активная или текущая запись — запись открытого файла (рис. 1.25), доступная для обработки в данный момент времени (редактирование, ввод полей, корректировка, удаление). Указатель текущей записи есть физический номер
доступной записи. Текущая запись находится в оперативной памяти. При переходе к другой записи данного файла
указатель записи изменяется и содержание оперативной памяти замещается содержимым новой текущей записи.
Подразумевается, что если в командах или программах (аргументы функций и выражений) фигурируют имена некоторых полей, то их значения соответствуют содержанию текущей записи текущего файла; каждый файл и каждая запись могут в широких пределах обрабатываться независимо друг от друга (за исключением ситуаций проверки соответствия записей друг другу или целостности БД);
навигация в БД — последовательность действий приложения (программы или пользователя в процессе диалога), при
которой осуществляются изменения состояния файлов и записей (открытых, текущих файлов, активных записей).
Изменение содержимого файлов при навигации необязательно. В процессе навигации просматривается или редактируется содержимое БД.
Вид представления записей на экране может быть не только табличным (отчет, запись в строке), но и картотечным (форматированный экран, запись на экране).
В последнем случае каждая запись выводится в виде определенной формы. Структура формы одинакова для всех записей, причем название полей соответствует названиям столбцов табличной формы представления базы данных, а их расположение задается пользователем.
Занесенную в базу данных информацию можно обрабатывать, а именно осуществлять следующие операции:
сортировка по любому столбцу (по возрастанию/убыванию чисел, символьных строк, дат);
поиск по любому столбцу с различными условиями (равно, больше, меньше и т. д.);
соединение таблиц с целью построения выходных форм или отчетов, включающих связанную информацию по каждому объекту.
Операции над БД (навигация) осуществляются с помощью следующих команд СУБД (или системы программирования [3, 10]):
открыть (закрыть) файл (таблицу);
выбрать одну из таблиц как активную (текущую);
перейти к определенной (по номеру) записи (строке таблицы);
перейти к предшествующей (последующей) строке таблицы;
перейти в начало (конец) файла (таблицы);
найти строку таблицы с определенным сочетанием значений атрибутов;
добавить (редактировать, удалить) строку таблицы (запись файла).
Кроме того, в системе команд присутствуют операции администрирования (обслуживания) базы данных:
создать файл (таблицу) БД;
установить (снять) связь нескольких таблиц по логическим критериям;
создать описание отчета (выдача информации на экран по колонкам или печать из одной или нескольких взаимосвязанных таблиц);
создать формат экрана (построчная выдача информации на экран из одной или нескольких взаимосвязанных таблиц);
изменить структуру элемента БД (таблицы данных, формата экрана, отчета и пр.).
Записи файла обычно располагаются на носителе последовательно в том порядке, как они создаются в прикладной программе (физический, или хронологический, порядок). Но иногда физическая последовательность размещения записей может отличаться от их логической последовательности.
Последовательность размещения физических записей, естественно, может быть только одна (если содержание логической записи сознательно не дублируется в другой форме), и она должна быть выбрана с учетом эффективности использования данных в различных приложениях.
Выбор последовательности связывается с достижением одной из следующих целей:
ускорением выполнения наиболее частых операций путем размещения записей в той последовательности, которая требуется при последующей обработке;
ускорением или упрощением средств адресации файла (например, средств прямой адресации или хэширования);
уменьшением размера используемого индекса и сокращением таким образом времени поиска в нем;
сокращением среднего времени доступа за счет размещения в наиболее доступных местах записей, к которым происходит наиболее частое обращение;
облегчением операций включения, обновления и удаления записей в интенсивно изменяемых файлах.
Можно выделить две «чистые» стратегии определения места (адреса) для размещения записей: последовательное (sequential) и произвольное (random) размещение. В этом смысле алгоритм размещения определяет тип организации файла.
В первом случае каждая следующая запись будет располагаться физически следом за предыдущей. Во втором — по месту, адрес которого будет определяться в зависимости от некоторых факторов, в том числе упомянутых выше.
Хотя записи на устройствах с прямым доступом могут записываться и читаться в любой последовательности, для каждой структуры данных существует некоторая определенная последовательность, в которой записи можно читать намного быстрее, чем при других способах размещения.
Достарыңызбен бөлісу: |