Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab2_6_-БД_ПИ.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.5 Mб
Скачать

1.1.8. Типы данных в субд Firebird

Firebird поддерживает большинство типов данных SQL 92, поля типа BLOB и массивы. Любой тип данных имеет набор операций, которые можно выполнять со значениями этого типа, поэтому необходимо правильно выбрать тип на этапе разработки базы данных. В Firebird версии 2.0 определено 13 типов данных:

BLOB — тип данных с динамически изменяемым размером, предназначенный для хранения данных большого размера. В этих полях хранятся графические данные, большие массивы текстов, музыка и многое другое. Данные хранятся в сегментах размером по 64 Кбайт.

Boolean — логическое поле. Может принимать значения True, False и Unknown. Имеет размер два байта.

CHAR(n) — символьное поле фиксированной длины. Размер поля определяется на этапе проектирования и указывается в качестве параметра п. Поле может занимать до 32 767 байт.

DATE — поле даты. Может принимать значение от 1 января 100 года до 29 февраля 32768 года. Поле занимает четыре байта.

DECIMAL — числовой тип данных с фиксированной точкой. Тип данных принимает в качестве аргументов разрядность и точность хранимых чисел. Разрядность определяет общее число цифр, а точность — число цифр после запятой. Разрядность может быть определена в пределах от 1 до 18 знаков, а точность — достигать определенной перед этим разрядности. Поле может занимать размер 16, 32 или 64 бита.

DOUBLE PRECISION — вещественный тип данных повышенной точности. Число может находиться в диапазоне от 2,25х10-308 до 1,797х10308 и иметь размер до 15 знаков. Поле занимает восемь байтов.

FLOAT — вещественный тип данных. Число может находиться в диапазоне от 1,175x10-38 доЗ,4002х1038 и иметь размер до 15 знаков. Поле занимает четыре байта.

INTEGER — знаковый целочисленный тип данных. Может принимать значение в диапазоне от -2 147 483 648 до 2 147 483 647. Поле занимает четыре байта.

NUMERIC — эквивалентен типу DECIMAL.

SMALLINT — знаковый целочисленный тип данных. Может принимать значение в диапазоне от -32 768 до 32 767. Поле занимает два байта.

TIME —хранит данные о времени с точностью до десятитысячной доли секунды. Может принимать значение в диапазоне от 00:00 до 23:59.9999.

TIМЕSТАМР — тип данных, хранящий информацию о дате и времени. Фактически, представляет собой комбинацию типов DATE и TIME.

VARCHAR (п) — символьное поле переменной длины. Размер поля определяется на этапе проектирования и указывается в качестве параметра п. Поле может занимать до 32 767 байт.

Массивы. СУБД Firebird позволяет создавать однородные массивы для большинства типов данных. Использование массива позволяет хранить множество элементов данных в виде дискретных, многомерных элементов в одном столбце. СУБД Firebird может выполнять опера­ции над целым массивом, трактуя его как один элемент, или он может оперировать с частью массива — подмножеством элементов массива. Часть массива может состоять из одного элемента или из набора многих смежных элементов.

Использование массивов желательно, когда:

  1. элементы данных естественно принимают вид множества данных одного типа;

  2. весь набор элементов данных в одном столбце базы данных должен быть пред­ставлен и должен управляться как одно целое вместо того, чтобы сохранять каждый элемент в отдельном столбце;

  3. к каждому элементу также должен быть индивидуальный доступ;

  4. не требуется доступ к индивидуальным значениям в триггерах или хранимых процедурах, либо у вас есть внешние функции для реализации такого доступа.

Массивы могут содержать элементы любого поддерживаемого Firebird типа за исключением BLOB Массивы массивов не поддерживаются. Все элементы конкретного массива имеют один и тот же тип данных.

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

Например, A char(10) [8] – это 8 элементов в 1 строке, а

В INTEGER[4,5] – 4 строки по 5 элементов.

Firebird поддерживает многомерные массивы размерностью от 1 до 16.

Firebird хранит многомерные массивы в порядке развертывания по строкам.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]