Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОДНА БОЛЬШАЯ ЛЕКЦИЯ.docx
Скачиваний:
8
Добавлен:
01.03.2025
Размер:
1.09 Mб
Скачать

Средства для описания данных Символы

Для дальнейшего понимания излагаемого материала введем некоторые правила обозначения категорий хранимых данных. Таблица 1

Уровень категорий

Представления реального мира

Абстрактные представления

Практическая реализация

данные

символ

Хранимые данные

символ

Наибольший

Предметная область

Библиотека

База данных

Подмножество приложений

Файл

a

Список

А

Объект

Запись

аi

Ячейка

Ai

Имя атрибута

Имя поля

aij

Элемент

Aij

Наименьший

Значение атрибута

Значение поля

Отношения положения

Для отображения динамики изменения ячейки или записи служат стенограммы, приведем их обозначения.

Содержимое ячейки. Ячейка содержит запись. Чтобы показать, какая именно запись находит­ся в определенной ячейке, используют скобки, которые эквива­лентны операции извлечения записи из ячейки. Например, запи­шем, что запись а содержится в ячейке А:

(А)=а. (4.1.1)

Местоположение записи. Обратная процедура: для данной записи найти содержащую ее ячейку. Эта операция запи­сывается с помощью квадратных скобок. Например, покажем, что запись а содержится в ячейке А:

[а]==А. (4.1.2)

Пересылка. Перемещение данных обозначается стрелкой, направленной в сторону их нового местоположения. Например, пусть запись b помещается в ячейку D:

b->D. (4.1.3)

Пересылка записи, находящейся в ячейке Е, в ячейку F пред­ставляется как

(E)->F. • (4.1.4)

Чтобы показать, что запись g заменит запись h в ячейке, кото­рую в данный момент занимает запись h, запишем:

g->[h]. (4.1.5)

Ключ. Каждая запись представляет объект. Объект распознается в предметной области по своим характеристикам и может быть выделен в ней среди других объектов. Аналогично этому мы должны найти способ выделения какой-либо записи среди других и, более того, полностью идентифицировать запись с объектом, который она представляет.

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

В дальнейшем ключевое поле мы будем называть просто ключом. Таким образом, ключ записи является значением ключе­вого поля и однозначно идентифицирует эту запись.

Обозначим ключевое поле для записи либо для элемента в ячейке, где располагается данная запись, индексом К, Например, аik является значением ключевого поля для записи ai. Оно нахо­дится в ячейке А = [ai] в позиции Аik == [аik].

Отношение порядка

Одним из наиболее важных свойств файла или списка являет­ся порядок, определяемый с использованием ключа каждой записи. Чтобы исследовать это свойство, разобьем значение ключа на образующие его литеры. Для этих литер, которые служат элемен­тарными единицами представления, определим отношение поряд­ка (или, как иногда говорят, последовательность упорядочений). То же отношение порядка должно сохраняться в коде представ­ления информации в ЭВМ .

Например, мы можем установить следующие неравенства меж­ду литерами алфавита:

0<1< А<В<С< ... <Z... и т. д. (4.1.6)

Чтобы ЭВМ выполняла требуемые нам операции, мы должны код для литеры А выбрать меньшим кода для литеры В и т. д. Эти соотношения в ЭВМ представлены комбинациями двоичных чисел коды таблицы ASCII. Двоичное число, представляющее А, меньше числа, пред­ставляющего В, т. е.

А065(10) =0100001(2) , В066(10)= 0100010(2) 0100001(2) < 0100010(2), (4.1.4)

где знак  эквивалентен слову представляет.

Условие (4.1.6) удовлетворяется, если коды для десятичных цифр меньше кодов для букв. В результате 1 представляется шестнадцатеричной комбинацией 00011001, а Z01011000(2) . Таким образом,

Z=01011000(2), l=00011001(2) , 00011001(2) <01011000(2). (4.1.8)

Ключевое поле образуется из нескольких литер. Оно может включать пробел, код которого равен 32(10).

Ранг записи

Утверждение о том, что одна запись меньше другой, является не вполне корректным, если сравниваются ключи этих записей, а не их длины. Тем не менее, для краткости мы воспользуемся этим определением, и будем считать, что ранг записи аi ниже ранга записи аj, если ключ (значение ключа) первой записи меньше ключа (значения ключа) второй записи, т. е. получаем:

аi < аj  (аi k )< (аjk ) (4.1.10)