Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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

Реляционное представление данных | Типы СУБД | Объекты | Особенности интерфейса | Режимы работы с БД | Порядок выполнения работы | Эксплуатационный режим таблиц | Порядок выполнения работы | Реализация разделения данных. Ключевые поля | Вид связи один-к-одному |


Читайте также:
  1. DFD - диаграмма потоков данных
  2. Dimension (Размер)
  3. III Определение основных размеров моста.
  4. IX. Определение размера подлежащих возмещению убытков
  5. Quot;Статья 6.19. Нарушение установленных требований о временном запрете на оборот средств, веществ и иной продукции, обладающих психоактивными свойствами.
  6. XML и реляционные базы данных
  7. А — с шурупом, б — с винтом (размеры: в скобках — для одноручного удилища, без скобок — для двуручного).

Остановимся поподробнее на свойствах полей Тип данных и Размер поля, таблица 2.

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

Однако количество типов данных ограничено, и под каждое поле в Access нельзя выбрать свой уникальный тип. Но это означает лишь, что разработчик должен постоянно помнить о том, что имеет смысл, а что не имеет, обязан предусмотреть это в своей СУБД. Вычисление суммы номеров телефонов, даже если выбран числовой тип данных, должно быть исключено, по крайней мере, для пользователей.

Размер поля – это то, сколько места в БД будет занимать каждая его ячейка, таблица 2.

Таблица 2 – Типы данных полей и их размеры

Тип даннах полей Использование Размер
Текстовый Текст, состоящий из любых символов, в кодировке Unicode (2 байта на символ) До 255 символов, задаётся отдельно
Поле МЕМО Текст в кодировке Unicode До 64000 символов, не задаётся
Числовой: байт, целое, длинное целое, одинарное с плавающей запятой, двойное с плавающей запятой, действительное Числа: целые (байт, целое, длинное целое, действительное) и дробные (с плавающей запятой) Байт – 1 байт, целое – 2 байта, длинное целое и одинарное с плавающей запятой – 4 байта, двойное с плавающей запятой – 8 байтов, действительное – 12 байтов.
Денежный Значения валют. Денежный тип используется для предотвращения округлений во время вычислений. Предполагает до 15 символов в целой части числа и 4 - в дробной 8 байтов
Дата/время Даты и/или время 8 байтов
Логический Поля, содержащие только одно из двух возможных значений, таких как Да/Нет, Истина/Ложь, Вкл/Выкл 1 бит
Счётчик Автоматическая вставка последовательных (увеличивающихся на 1) или случайных чисел при добавлении записи 4 байта

 

Крайне важным для понимания дальнейшего материала является изучение способов хранения основных типов данных. Всё множество рассматриваемых нами типов данных подразделяют на строковые (типы текстовый и поле МЕМО) и числовое (все остальные, представленные в таблице 2) типы данных. Ниже мы увидим причину подобной классификации.

- Текстовый тип

Является наиболее применимым в СУБД. В него можно записывать всё что угодно – все печатные (видимые на экране) символы и символ пробела. Размер в данном случае задаётся явно и означает максимальное число символов, которое возможно записать в ячейку. Остаток строки остаётся пустым, рисунок 4, слева.

Такое положение вещей обусловлено главным образом тем, чтобы не нарушалась структурированность таблицы. В противном случае для извлечения 1000-й строки из таблицы пришлось бы сначала прочитать все 999 предыдущих строк.

- Тип поле МЕМО

Внешне очень похож на текстовый тип. Главное отличие заключается в формате хранения. В таблице вместо самих строк хранятся указатели на них. Указатели имеют фиксированную длину, поэтому структурированность данных не нарушается и здесь. В базе данных, но в отдельном месте есть специальная область для хранения самих строк типа поле МЕМО. На них и ссылаются указатели в таблице с данными, рисунок 4, справа.

Из такого формата хранения следует, что максимальный размер строки, как в текстовом типе, не задаётся.

Рисунок 4 – Сравнение форматов хранения строковых типов данных

На первый взгляд, данный тип кажется лучшим решением по сравнению с текстовым типом данных. Однако это не так. Содержание подобной отдельной области, связывание каждый раз при просмотре таблицы всех данных воедино тоже требует затрат. Кроме того, в такой области тоже имеются «дыры» (точки на рисунке 4, справа).

Поэтому тип поле МЕМО рекомендуется использовать только для строк с сильно отличающейся, порой очень большой длиной. Например, для кратких характеристик работников, описания их выговоров (у кого-то может быть больше десятка выговоров, а у большинства – ни одного) и т. п.

- Числовой тип

Числовой тип данных подразделяется на целые и дробные подтипы. В целые числовые типы данных (байт, целое, длинное целое и действительное) можно записать только цифры и символ «минус» перед ними (кроме подтипа байт, где все числа неотрицательные, таблица 2).

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

Любое число может быть записано в экспоненциальной форме (Например, ).

От размера числовых типов данных зависит насколько большой диапазон чисел они могут представлять. Как известно, в 1 байте содержится 8 бит, каждый бит может принимать только 2 значения (0 или 1). Следовательно, числовой подтип байт может представлять различных значений. В СУБД это числа от 0 до 255 включительно. Целый подтип длиной в 2 байта или в 16 бит уже может представлять различный значений чисел от -32768 до 32767 и т.д.

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

Рисунок 5 – Представление дробных чисел в СУБД

Ячейка дробного числа делится на 4 части, размер которых строго фиксирован. Следует обратить внимание на тот факт, что все иррациональные числа и некоторые рациональные дроби (см., например, 1/3) не могут быть точно представлены в таком формате. Это порождает всевозможные погрешности при вычислении.

В ряде случаев дробное число представляется в процентном формате. По сути, процент – это обычное дробное число. Поэтому при вводе такого числа нужно либо ставить символ % сразу после него (21%; 4,7%; -0,72%), либо вводить его в виде обычного дробного числа (0,21; 0,047; -0,0072).

- Денежный тип данных

Этот тип данных создан специально для финансовых операций. Для предотвращения возникновения погрешностей количество разрядов в дробной части предполагается фиксированным и равным 4. Само число хранится также, как и дробное, только все дробные разряды обязательно записываются туда слева, рисунок 6.

Рисунок 6 – Представление денежного типа в СУБД

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

Наименование валют также не хранится в БД – это прерогатива свойства Формат поля.

Таким образом, по сути, денежные числа хранятся как целые.

- Тип данных Дата/Время

Тип данных Дата/Время хранится в Access в формате числа двойной точности с плавающей запятой, рисунок 5. Целая часть числа представляет собой дату, а дробная часть – время. То есть, в каждой ячейке с этим типом данных обязательно содержится какая-то дата и какое-то время.

Дата может принимать значения от -657 434 (1 января 100 г. н.э.) до 2 958 465 (31 декабря 9999 г. н.э.). Нулевому значению даты соответствует 30 декабря 1899 г. Даты до 30 декабря 1899 г. хранятся в Access в виде отрицательных чисел.

Время может принимать значения от …,0 (00:00:00) до …,99999 (23:59:59). Числовое значение представляет собой долю дня. Можно перевести числовое значение в часы, минуты и секунды, последовательно умножая остаток на 24 для вычисления часов или на 60 для минут и секунд.

В таблице 3 показано, как хранятся значения даты/времени в Access:

Таблица 3 – Примеры соответствия дробного числа дате и времени

Дата/Время Составляющая даты Реальная дата Составляющая времени Реальное время
1,0   31 декабря 1899 г. ,0 00:00:00
2,5   1 января 1900 г. ,5 12:00:00
27468,96875   15 марта 1975 г. ,96875 23:15:00
36836,125   6 ноября 2000 г. ,125 03:00:00

 

Можно отформатировать значение даты/времени таким образом, чтобы отображалась дата, время или то и другое. При использовании формата только даты значение составляющей времени в Access равняется нулю. И наоборот.

- Логический тип данных

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

Наиболее удобным представлением для таких полей является флажок. Однако даже этот тип данных относят к числовым. Принято, что -1 означает «Да» (флажок включён), а 0 означает «Нет» (флажок выключен).


Дата добавления: 2015-08-27; просмотров: 189 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Свойства полей. Обзор| Приоритеты при разработке СУБД

mybiblioteka.su - 2015-2024 год. (0.011 сек.)