Логическое и физическое представление данных
Работая с СУБД пользователь имеет дело с логическим представлением данных и может вообще не знать о том, как физически организовано представление данных в памяти ЭВМ. Однако, от способа физического размещения данных во многом зависит эффективность работы приложений, использующих базы данных.
Физическая организация данных зависит от типа используемой ЭВМ и конкретной СУБД. Разные СУБД используют разные методы размещения данных в памяти и средства доступа к ним. Поэтому при выборе СУБД на этапе проектирования важно знать и понимать особенности физического способа хранения данных. Главным критерием выбора является эффективность доступа к данным.
Если основными понятиями логической модели данных являются логическое поле, логическая запись и логический файл, то для физической модели есть аналогичные основные понятия - физическое поле, физическая запись, физический файл.
При некоторых способах организации доступа одно логическое поле может отображаться непосредственно в одно физическое поле, одна логическая запись в одну физическую запись, а один логический файл в один физический файл. Но в общем случае такого взаимнооднозначного соответствия нет.
Схема работы процессора с памятью
В ЭВМ существует два вида памяти - оперативная и внешняя. При этом процессор напрямую обращается только к оперативной памяти. Базы данных предназначены для постоянного хранения больших объемов информации, следовательно они хранятся во внешней памяти. Поэтому организация доступа к данным должна учитывать особенности обои видов памяти и их взаимодействия.
Основные свойства оперативной памяти:
- Минимальная адресуемая единица информации – 1 байт.
- Каждый байт имеет свой уникальный адрес, то есть память прямоадресуема.
- Для выбора данных процессор обращается непосредственно к последовательности байтов, содержащей нужные данные.
Основные свойства внешней памяти:
- Минимальная адресуемая единица информации – физическая запись.
- Для обработки процессором физическая запись должна быть считана в оперативную память.
- Считывание может осуществляться только небольшими блоками, так как всю базу разместить в оперативной памяти невозможно.
Взаимодействие видов памяти
Последовательность логических полей определенной логической записи отображается на последовательность прямоадресуемых байтов в оперативной памяти. Прямая адресация позволяет процессору обращаться к нужному полю. Для такого представления необходимо, чтобы все записи имели фиксированную длину, тогда длина записи будет равна сумме длин ее полей. Если длина поля не фиксирована, то становится невозможным использование прямой адресации.
Проблема может возникнуть в ситуации, когда нужно хранить большой фрагмент текста, длина которого у разных записей может варьировать. В этом случае текст размещается во внешней памяти, а поле хранит ссылку на эту область памяти. Именно так организовано поле типа МЕМО в некоторых СУБД.
При одном обращении оперативной памяти к внешней памяти происходит либо чтение, либо записывание одной физической записи. Каждое обращение к внешней памяти занимает определенное время, которое существенно влияет на скорость работы всей системы. Поэтому, чтобы минимизировать количество обращений к внешней памяти, в некоторых СУБД физическую запись удлиняют за счет включения в нее нескольких логических записей.
Другим способом минимизации числа обращений является использование физических записей фиксированной длины, которые не зависят от длины логических записей. Такие физические записи называются страницами. Если оказывается, что в страницу укладывается нецелое количество логических записей, то последняя неполная запись отбрасывается, и страница остается заполнена не до конца. Именно такой метод используется в MS SQL SERVER.