Язык SQL

Физические характеристики баз данных


Первая строка каждой пары строк содержит шестнадцатеричное представление адреса первого байта и шестнадцатеричное представление 16-ти байт. Вторая строка каждой пары содержит символьное представление. Следует обратить внимание на выделенный символ п во второй строке. Это символ конца строки, находящийся в конце поля name. Его шестнадцатеричное представление 0×0а выделено в первой строке. Также отметим, что непосредственно после символа конца строки представлено значение целочисленного поля id в виде трехсимвольного текстового поля (выделенного), за которым следует второй символ конца строки.

Итак, создано представление объектов Movie в виде байтовых потоков, пригодных для чтения. Хотя в подобном представлении возникают проблемы, если значение содержит символ конца строки, его можно считать первым примером представления объектов с использованием ограниченных текстовых полей. Далее будут приведены другие методы представления объектов.

Представление объекта в памяти отличается от его представления в файле. В памяти объект состоит из блоков памяти, как показано ниже.

Смещение Имя поля Тип Представление

0 title String Ссылка на объект

4 movield int Четырехбайтовое целое

8 genre String Ссылка на объект

Поля типа string представляются в памяти в виде ссылок на другие объекты. Можно предположить, что такая ссылка является адресом в памяти, где находится объект типа String. В таблице предполагается, что эта ссылка занимает четыре байта. Если копировать эту ссылку в поток вывода, значение строки будет потеряно. В предыдущем примере представления объекта Movie в виде потока содержимое объекта типа string записывалось в файл. Информационное содержимое объекта Movie не зависит от местоположения в памяти строк паше и genre. Следовательно, необходимо передать в поток вывода информационное содержимое объекта, а не его представление в памяти.

Метод read разбивает поток на поля и строит новое представление объекта в памяти, информационное содержимое которого такое же, как содержимое, изначально записанное в поток. Подробное описание метода read будет дано несколько позднее после более глубокого ознакомления с операциями ввода.

Комментарии закрыты