Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория информации - курс лекций.doc
Скачиваний:
432
Добавлен:
13.03.2015
Размер:
4.65 Mб
Скачать

2. Понятие логической записи

Логическая запись – это поименованная совокупность элементарных данных, имеющая смысловую завершенность.

Примером записи может служить строка из списка студентов:

Фамилия

Год рождения

Год поступления в ВУЗ

Курс

Номер зачетной книжки

Логическая запись объединяет не разрозненные по смыслу данные, а только те, что характеризуют некоторую систему или объект – именно в этом смысле следует понимать слова «смысловая завершенность» в определении. Запись отражает совокупность свойств (атрибутов) системы или объекта.

Логическая запись имеет многоуровневую структуру. Элементами самого нижнего уровня являются элементарные данные. Элементарные данные хранятся и считываются целиком, доступ к их частям невозможен.

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

Логические записи сами могут быть объединены в структуры, которые определяются моделью данных. Например, совокупность записей из приведенного выше примера может образовать массив данных, который будет называться базой данных. Возможны и более высокие структурные объединения, например,объединения баз данных– структуры, элементами которых будут являться базы данных. Программные системы, позволяющие создавать и использовать базы данных, называются системами управления базами данных (СУБД). Логическая запись имеет собственный идентификатор, по которому можно обратиться к записи в целом. Поля также имеют свои идентификаторы, по которым поля становятся доступными для просмотра или изменения значения. Идентификатор поля строится из идентификатора базы данных, идентификатора в нее входящей записи и собственно поля, входящего в эту запись. Таким образом, существует иерархическая многоуровненвая структура данных (рис. 19).

Рис. 19. Иллюстрация многоуровневой иерархической структуры данных.

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

Лекция 17. Организация структур данных в оперативной памяти и на внешних носителях

  1. Организация структур данных в ОЗУ

  2. Иерархия структур данных на внешних носителях

  3. Особенности устройств хранения информации

1. Организация структур данных в озу

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

Что же касается количества записей в структурированном информационном массиве, то при представлении его в ОЗУ компьютера возможны две ситуации:

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

  2. Размер соответствующей области ОЗУ может меняться. Информационные массивы, допускающие изменение размера (но не структуры!) называются динамическими. В этом случае данные могут иметьпоследовательноеилисвязноепредставление в ОЗУ.

В случае последовательногопредставления данные (отдельные записи) размещаются в соседних последовательно расположенных ячейках памяти. На размещение одной записи может потребоваться несколько ячеек (машинных слов), но их количествоодинаководля каждой записи (нарис. 20на запись приходится две ячейки); идентификатор записи однозначно связывается с номером ячейки, начиная с которой запись начинается.

записи

ячейки

Содержание записи

1

4000

Запись А

4001

2

4002

Запись В

4003

3

4004

Запись С

4005

а)

записи

ячейки

Содержание записи

1

4000

Запись А

4001

2

4002

Запись R

4003

3

4004

Запись В

4005

4

4006

Запись С

4007

б)

записи

ячейки

Содержание записи

1

4000

Запись А

4001

2

4002

Запись R

4003

3

4004

Запись С

4005

в)

Рис. 20. Последовательное динамическое размещение данных в ОЗУ: а – начальное размещение; б – после добавления новой записи; в – после удаления записи.

Физический порядок следования записей полностью соответствует логическому. Такая совокупность записей называется последовательным списком. Для его хранения в ОЗУ выделяется блок ячеек фиксированного размера. Когда от обрабатывающей программы поступает команда «Добавить запись», происходит увеличение размера массива, при необходимости происходит перезапись массива в ОЗУ (возможно, с изменением адресов данных). При изъятии каких-то записей по команде «Удалить запись» соответствующие ячейки очищаются и после перезаписи все содержимое следующих ячеек сдвигается в направлении удаленной записи на количество ячеек, приходящихся на одну запись.

Связноепредставление данных основано на том, что в записи присутствует дополнительное поле, в котором размещается особое данное –указатель адреса, то есть ссылка на то место в ОЗУ, где располагается следующая запись. При этом физический порядок размещения записей может не соответствовать логическому – записи располагаются в любых свободных ячейках ОЗУ, причем не обязательно подряд (то есть непосредственно другом за другом). Такие структуры данных называютсясвязными списками. Их удобство состоит в гибкости структуры – без перезаписи остальных элементов данных в другие (соседние) ячейки можно легко добавлять новые или исключать имеющиеся записи. Для этого достаточно лишь изменить состояние поля указателя адреса (рис. 21).

а)

б)

в)

Рис. 21. Связное динамическое размещение данных в ОЗУ: а – начальное размещение; б – после добавления новой записи; в – после удаления записи.

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