Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Л-8 - Организация среды хранения

.pdf
Скачиваний:
11
Добавлен:
28.06.2021
Размер:
712.43 Кб
Скачать

Действия механизмов среды при удалении записи

Удаление записи с освобождением памяти (физическое) или без освобождения (логическое).

Разрушение связей с другими записями (механизм зависит от модели данных).

При логическом удалении запись помечается как удаленная, но фактически остается на месте. Запись будет удалена при реорганизации БД, либо с помощью утилиты, которую запускает СУБД или АБД.

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

Среда хранения данных и архитектура СУБД

Все операции на физическом уровне выполняются по запросам механизмов концептуального уровня СУБД.

Управление памятью выполняет ОС по запросам СУБД или непосредственно сама СУБД.

3-уровневая модель архитектуры СУБД декларирует

независимость архитектурных уровней. Однако для достижения высокой производительности на уровне среды хранения часто приходится учитывать специфику концептуальной модели.

Организация файловой системы также влияет на среду хранения.

Структура хранимых данных (логическая и физическая модели)

Логическая запись (запись концептуального уровня) с которой работает прикладная программа – совокупность элементов данных, воспринимаемая и физически отдельно размещаемая в рабочей области памяти прикладной программой как единое целое.

Физическая запись (хранимая запись), с которой работает файловая система) – совокупность данных, которые размещаются в файле на ВЗУ и могут быть считаны или записаны как единое целое одной командой вводавывода.

Структура хранимых данных (логическая и физическая модели)

Последовательность записей в логике обработки образует логический файл. Последовательность физических записей, размещаемых на ВЗУ, образует физический файл.

Организация данных в случаях логического и физическо-

го представления может не совпадать:

Одна физическая запись может включать несколько логических (блок).

Физическая запись может представлять часть логической. Части записи связываются указателями или размещаются по специальному закону (чтобы механизмы междууровневого отображения могли осуществить сборку полной записи концептуальной БД).

Хранимая запись

Единицей хранения данных в БД является хранимая запись, состоящая из двух частей:

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

информационная часть – содержит значения элементов данных.

Хранимые записи одного типа состоят из фиксированной совокупности полей и могут иметь формат фиксирован-

ной или переменной длины.

Поля фиксированной и переменной длины (1)

Поля хранимой записи могут иметь фиксированную или переменную длину. Хранение полей переменной длины осуществляется одним из способов:

размещение полей через разделитель;

хранение размера значения поля – байтам содержания (данным) предшествуют байты значения длины поля.

Наличие полей переменной длины позволяет не хранить незначащие символы и снижает затраты памяти на хранение данных. Однако при этом увеличивается время на извлечение записи.

Поля фиксированной и переменной длины (2)

Работа с хранимыми записями переменной длины может быть обусловлена желанием уменьшить объем требуемой памяти или характером модели данных концептуального уровня. Однако это усложняет управление пространством памяти.

Поэтому в большинстве современных СУБД использует-

ся формат записей фиксированной длины.

Все записи имеют одинаковую длину, определяемую суммарной длиной полей, составляющих запись.

Представление полей существенно разной длины (1)

Поля, принимающие значения существенно разной длины в различных экземплярах записей, встречаются часто

(поле Резюме в записи СОТРУДНИК).

Данные переменной длины можно представить в поле фиксированной длины двумя способами:

установить размер поля по максимальному значению.

Тогда у многих экземпляров записи поле будет заполнено не полностью (неэффективное использование памяти);

включить в запись поле-указатель на область ВП, где будет размещено значение поля (в области будет занято столько памяти, сколько нужно).

Представление полей существенно разной длины (2)

Пример реализации такой схемы – поле типа МЕМО в СУБД Access

Ключ базы данных (идентификатор строки)

Каждой хранимой записи система присваивает внутренний идентификатор, ключ базы данных – КБД (иногда используется термин идентификатор строки, RowID).

Значение КБД формируется системой при размещении записи и содержит информацию, позволяющую однозначно определить место размещения записи (преобразовать значение КБД в адрес записи).

В качестве КБД может использоваться:

последовательный номер записи в файле;

совокупность адреса страницы памяти и смещения от начала страницы.