Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книга1(полный конспект).docx
Скачиваний:
55
Добавлен:
23.12.2018
Размер:
49.16 Mб
Скачать

6.10. Язык описания данных

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

Для описания данных выбирается минимальная логическая единица данных, которая для всех СУБД одинакова. Такой единицей в соответствии с предложениями КОДАСИЛ является элемент данных, как было описано ранее в параграфе «Сетевые модели данных». На основе элемента строится обобщенная логическая единица – агрегат.

В качестве примера описания данных рассмотрим ЯОД СУБД dBASE IV или FOXPRO. В данной СУБД элементы данных описаны следующими параметрами: номер элемента, имя, тип, длина элемента в байтах или символах, точность представления. Тип элемента принимается одним из следующих: символьный, целый, с плавающей запятой, дата, логический, поле памяти, графический.

Например, элемент «Высота» описывается следующим образом:

ИМЯ: Н

ТИП: F (Floating) – с плавающей запятой.

ДЛИНА: 7

ТОЧНОСТЬ: 3

Следующим примером может быть такое описание

ИМЯ (принятое по технологии);

ТИП: (Т – текстовый (символьный), Ц – целый, Д – действительный и т.д.);

ДЛИНА (в байтах);

ИНД (положение элемента в агрегате, т.е. относительный адрес в байтах);

ПРЗН (признак обязательности элемента в агрегате; 0 – да, 1 – нет);

РЗДЭ (символ, отделяющий данный элемент от следующего при вводе данных);

MAX (максимально допустимое значение);

MIN (минимально допустимое значение)

ЕДН (единица измерения элемента);

РАЗМ (длина символов при вводе);

ЗАГЛ (заголовок поля);

ГРН (правая граница поля, начиная с которой будет печататься элемент);

ТОЧН (количество знаков после запятой для выводимых чисел);

ЕДВВ (единица измерения для печати);

Тогда схема элемента «ВЫСОТА» будет следующей

ИМЯ «Н», ТИП «Д», ДЛИНА 4, ПРЗН 0, РЗДЭ «:», MAX 9000, MIN 100, ЕДН «Ь», РАЗМ 9, ЗАГЛ «Н», ГРН 2, ТОЧН 3, ЕДВВ «М».

Агрегат также может быть описан определенным образом. Например параметрами агрегата «РЕПЕР» могут быть следующие величины:

НЗВН (количество единиц в имени агрегата)

КОЛВО (количество элементов в агрегате)

РЗДА (символ, отделяющий данный агрегат от следующего) и др.

Тогда описание имени агрегата «РЕПЕР» будет следующим:

НЗВН 8; КОЛВО 7; РЗДЭ «*».

Схема всего агрегата тогда будет

Описание имени агрегата

Схема элемента 1

……………………………

Схема элемента n

В примере с тахеометрической съемкой агрегатами являются: пикет, станции, исполнитель, участок, диспетчер, план. Примерами элементов: отсчет по горизонтальному кругу, вертикальному кругу, высота, ФИО исполнителя, номер участка и др.

6.11. Системы счисления, принятые в пк. Ascii и ansi-коды.

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

Любое число N в системе счисления с основанием q может быть представлено следующим образом:

,

где n – число целых, а k – дробных разрядов.

Например, число 45,673 может быть записано так:

45,673=

Существуют следующие системы счисления: десятичная, двоичная, шестнадцатеричная и восьмеричная. Наиболее часто используются десятичная, двоичная и шестнадцатеричная.

Двоичная система. Поскольку компьютер может различить только нулевое и единичное состояние бита, то он работает в двоичной системе счисления, т.е. в системе, в которой q=2. Название бита унаследовано от английского “Binary digit” (двоичная цифра). Например, число 110,011 можно представить так:

110,011= =6,375

Позиционные веса в байте для каждого бита представляются следующим образом:

Позиционные веса

128

64

32

16

8

4

2

1

Включенные биты

1

1

1

1

1

1

1

1

В двоичной системе справедлива следующая арифметика:

0+0=0

0+1=1

1+1=10

1*1=1

1*0=0

Сумма двух чисел 10010010 и 11110011 будет

+1 0 0 1 0 0 1 0

1 1 1 1 0 0 1 1

11 0 0 0 0 1 0 1

В этом легко убедиться складывая соответствующие этим двоичным кодам десятичные числа 1464 и 2113.

Для представления десятичного дробного числа в двоичной записи его разбивают на целую и дробную часть.

Целую часть делят на основание q той системы, в которую оно переводится. Деление продолжается до тех пор, пока не получится частное, меньше q. Число в новой системе запишется в виде остатков, причем последнее частное дает цифру старшего разряда.

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

Перевод числа 6,375 в двоичную систему осуществится следующим образом. Целая часть переводится так:

6:2=3 – остаток 0

3:2=1 – остаток 1

Последнее частное здесь равно 1. Остаток – 1. Следовательно результат будет: 110.

Дробная часть переводится в двоичную запись так:

х0,375

2

х0,750

2

х1,500

2

х1,000

Следовательно получим 0,011. Окончательный результат 110,011.

Шестнадцатеричная система.

Для удобства представления двоичных данных каждый байт разделяется на две части по четыре бита. Каждые полбайта выражаются соответствующим значением. Поскольку в четырех битах может помещаться и две цифры, то систему счисления расширяют следующим образом: 10=А, 11=В, 12=С, 13=D, 14=Е, 15=F. Таким образом получается система счисления, включающая цифры от 0 до F. Так как таких цифр 16, то такая система называется шестнадцатеричной. Ниже приводится двоичное, десятичное и шестнадцатеричное представление чисел от 0 до 15.

Двоичное

десятичное

шестнадц.

двоичное

десятичное

шестнадц.

0000

0

0

1000

8

8

0001

1

1

1001

9

9

0010

2

2

1010

10

A

0011

3

3

1011

11

B

0100

4

4

1100

12

C

0101

5

5

1101

13

D

0110

6

6

1110

14

E

0111

7

7

1111

15

F

В шестнадцатеричной системе q=16. Тогда шестнадцатеричное число 3FA,EC1 можно представить в виде:

=768+240+10+0,875+0,046875+

+0,000244=1018,9221.

При переводе десятичных чисел в шестнадцатеричную систему счисления действуют те же самые правила, что и для перевода в двоичную систему счисления. Так, число 625,37 переведется в шестнадцатеричную систему следующим образом. Сначала переводится целая часть числа.

6 2 5 1 6

4 8 3 9 1 6

1 4 5 3 2 2

1 4 4 7

1

Результат будет: 271. Дробная часть с точностью до второго разряда переведется так:

х0, 3 7

1 6

5, 9 2

х0, 9 2

1 6

14, 72

Результат перевода дробной части 0,5Е.

Окончательный результат 271,5Е.

Для перевода шестнадцатеричных чисел в двоичную систему счисления каждая цифра представляется в четырехбитовом коде. Тогда две цифры будут занимать 1 байт. Например, байт памяти шестнадцатеричного числа CF в двоичном коде будет иметь вид: 11001111.

Часто в памяти ПК пары цифр шестнадцатеричного числа записываются в порядке возрастания разрядности. Например шестнадцатиричное число 6FCAB записывается так: ABFC0600. В этом случае под него выделено четыре байта памяти.

Рассмотрим несколько простых примеров шестнадцатеричной арифметики:

6+4=А, 5+9=E, F+E=1D, FF+1=100.

Для индикации шестнадцатеричного числа в программах непосредственно после числа ставится символ Н, например 37Н или 0x37. Шестнадцатеричное число всегда начинается с десятичной цифры: F1=0F1.

По таким же правилам осуществляются операции перевода, связанные с восьмеричной системой счисления. В двоичной системе восьмеричные числа представляются так:

000

0

001

1

010

2

011

3

100

4

101

5

110

6

111

7

Перевод восьмеричного числа 657 в десятичную систему осуществляется следующим образом:

=384+40+7=431.

Обратный перевод будет:

4 3 1 8

4 0 5 3 8

3 1 4 8 6

2 4 5

7

что приводит к результату 657, состоящему из остатков деления и последнего частного, меньшего восьми.

Дробное десятичное число 0,63 переводится так

х0, 6 3

8

х5, 0 4

8

0, 3 2

И с точностью до второго разряда результат будет 0,50.

Для перевода в двоичную систему восьмеричное число записывается двоичными триадами своих цифр. Например, число 657 будет иметь вид: 110101111. В данном случае разряды двоичного числа расположены в порядке убывания. Этому двоичному числу будет соответствовать десятичное 431. Примерами восьмеричной арифметики являются следующие операции сложения: 6+7=15, 7+7=16, 7+1=10, 7+4=13.

Cогласно международному стандарту ИСО все символы кодируются шестнадцатиричными или десятичными числами. Для этого существуют специальные таблицы ASCII- кодирования, одна из которых приводится ниже (рис.6.5)

Рис.6.5.

Согласно этой таблице, например, шестнадцатиричный код литеры В будет 42, а десятичный -66, литеры М: шестнадцатеричный -4D, десятичный – 77. В таких кодах представляется вся информация в компьютере. Отметим, что ASCII-кодирование применяется в операционной системе DOS, его аналогом в Windows является ANSI-кодирование. При этом коды символов в обоих системах практически одинаковы.