- •Лабораторная работа №6 Разработка таблиц удаленной базы данных с использованием клиент-серверной технологии Цель работы
- •Порядок выполнения работы
- •1.1. Субд Firebird
- •1.1.1. Установка Firebird
- •1.1.2. Связь с сервером и соединение с базой данных
- •1.1.3. Создание базы данных
- •1.1.4. Страницы базы данных
- •1.1.5. Размер страницы базы данных
- •1.1.6. Диалект базы данных
- •1.1.7. Технические характеристики субд Firebird
- •1.1.8. Типы данных в субд Firebird
- •1.2. Создание Доменов
- •1.3. Создание таблиц
- •1.3.1. Ограничения в таблицах
- •1.3.1.1. Синтаксис объявления первичного ключа
- •1.3.1.2. Ссылочная целостность данных
- •1.3.1.3. Синтаксис объявления вторичного ключа
- •1.3.2. Действия триггеров по изменению правил целостности
- •1.3.2.1. Автоматические действия триггеров
- •1.4. Создание индексов
- •1.5. Генераторы
- •1.6. Триггеры
- •1.6.1. Реализация автоинкрементных полей
- •1. Программирование на стороне сервера sql 3
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 может выполнять операции над целым массивом, трактуя его как один элемент, или он может оперировать с частью массива — подмножеством элементов массива. Часть массива может состоять из одного элемента или из набора многих смежных элементов.
Использование массивов желательно, когда:
элементы данных естественно принимают вид множества данных одного типа;
весь набор элементов данных в одном столбце базы данных должен быть представлен и должен управляться как одно целое вместо того, чтобы сохранять каждый элемент в отдельном столбце;
к каждому элементу также должен быть индивидуальный доступ;
не требуется доступ к индивидуальным значениям в триггерах или хранимых процедурах, либо у вас есть внешние функции для реализации такого доступа.
Массивы могут содержать элементы любого поддерживаемого Firebird типа за исключением BLOB Массивы массивов не поддерживаются. Все элементы конкретного массива имеют один и тот же тип данных.
Размерность массива заключается в квадратные скобки и следует за спецификацией типа данных.
Например, A char(10) [8] – это 8 элементов в 1 строке, а
В INTEGER[4,5] – 4 строки по 5 элементов.
Firebird поддерживает многомерные массивы размерностью от 1 до 16.
Firebird хранит многомерные массивы в порядке развертывания по строкам.
