Преобразование числового типа к символьному типу требует минимальной длины для символьного типа как перечислено в таблице:
4.17 Удаление таблиц.
Удаление таблицы целиком производится оператором:
DROP TABLE <имя таблицы>;
Удаление может быть блокировано для родительских таблиц, для которых в дочерних таблицах (на данный момент не удаленных) имеются ссылки по внешнему ключу этих таблиц.
Удаление блокируется также открытой транзакцией к БД, использующей данную таблицу.
4.18 Вопрос.
Поле первичного ключа таблицы SQL – сервера, определенное типом данных SMALLINT и заполняемое генератором БД, стартующим с 0, может обеспечить запись следующего количества уникальных значений:
A) 2 15.
B) 2 16.
C) 2 32.
D) 1024.
E) 32000.
4.19 Типы данных.
Данные сохранены в предопределенном формате называемом типом данных (машинное представление).
Типы данных могут быть классифицированы в четыре категории:
1. Числовые;
2. Символьные;
3. Даты;
4. Большие бинарные файлы (BLOB).
В седьмой версии будет тип BOOLEAN 16 bits, значения (TRUE, FALSE, UNKNOWN).
4.20 Числовые (целочисленные и вещественные).
SMALLINT | 16 bits | –32,768 до 32,767 | Короткое (машинное слово) |
INTEGER | 32 bits | –2,147,483,648 до 2,147,483,647 | Длинное слово |
FLOAT | 32 bits | 1.175 . 10-38 до 3.402 . 1038 | IEEE Одиночная точность, 7 знаков |
DOUBLE PRECISION | 64 bits | 2.225 . 10-308 до 1.797 . 10308 | IEEE Двойная точность, 15 знаков |
Управлять количеством знаков в дробной части при объявлении вещественного числа нельзя. Если требуется вводить или выводить вещественной число в строго заданном формате ХХХХХ.ХХ, в программе используют маску.
4.21 Числовые (фиксировано - десятичные).
NUMERIC (precision, scale) (Точность/Масштаб) | Переменная (16, 32, или 64 bits) | Точность от 1 до 18 Масштаб от 0 до 18 Масштаб <= Точность | Определяет точно количество сохраняемых знаков. Определяет количество знаков после запятой. |
DECIMAL (precision, scale) | Переменная (16, 32, или 64 bits) | Точность от 1 до 18 Масштаб от 0 до 18 Масштаб <= Точность | Определяет по возможности цифры точности. Определяет количество знаков после запятой. |
Где точность определяет общее количество знаков в хранимом числе (максимум 18), а масштаб - количество знаков в дробной части и может быть равен нулю.
Заметим, что специальных типов DECIMAL и NUMERIC не существует, а вместо них используются типы INTEGER или DOUBLE PRECISION: если точность (количество знаков в числе) меньше 10, то реальный тип столбца INTEGER, если больше или равно 10, реальный тип столбца DOUBLE PRECISION.
4.22 Примеры.
В диалекте 3, IB6, соответствует SQL92 стандарту, сохраняя NUMERIC и DECIMAL с от 10 до 18 цифр точности как 64-разрядные целые числа (INT64).
Примеры:
NUMERIC(10,3) сохраняет числа точно в следующем формате:
1234567.sss
DECIMAL(7, 3) сохраняет числа точно в следующем формате:
1234567.sss
4.23 Вопрос.
Какой тип данных будет использоваться сервером IB для формирования поля с заданным типом NUMERIC(26,2)?
1. SMALLINT.
2. INTEGER.
3. FLOAT.
4. DOUBLE PRECISION.
5. Нет правильного ответа.
4.24 Символьные.
Символьные типы данных:
CHAR(n) | Точно n байт. | Допустимый интер -вал от 1 до 32767 байт | Строка текста фиксированной длины. |
VARCHAR (n) | Длинна до n байт. | Допустимый интер -вал от 1 до 32765 байт | Строка текста переменной длины. |
Столбцы VARCHAR(n) позволяют экономить дисковое пространство, давая возможность серверу располагать больше записей на странице БД. К недостаткам относится то, что VARCHAR(n) читаются медленнее, чем CHAR(n)).
Попытка записать в столбец более чем п символов приведет к усечению лишних символов.
Если п опущено, по умолчанию подразумевается 1.
4.25 Сортировка.
Порядок сортировки символов определяет принцип, по которому символьные значения будут сравниваться и сортироваться в операторах SELECT (если в нем присутствуют разделы WHERE, ORDER BY), при обновлении индексов и т. д.
LAST_NAME VARCHAR(20) COLLATE PXW_CYRL,
Следует учесть, что значения в строковых столбцах с набором WIN1251 и сортировкой PXW_CYRL упорядочиваются в стиле Windows 32:
буквы идут по парам, строчные буквы предшествуют заглавным:
аАбБвВгГ…Яя
Демонстрация кодов символов в IBExpert.
4.26 Типы определения даты.
Определение даты, производится одним из трех возможных типов.
DATE | 32 bits | от 01.01.0100 до 29.02.32768 | Хранит год, месяц, день. |
TIME | 32 bits | от 0-00 до 23:59.9999 | Хранит время |
TIMESTAMP | 64 bits | от 01.01.0100 до 29.02.32768 | Комбинация типов Date и Time. |
TIME включает информацию относительно времени в часах, минутах, секундах, и миллисекундах.
Тип задания отображения полей (разделители) определяются в среде разработки, операционной системе, приложениях.
4.27 Бинарные объекты.
Для хранения в БД больших бинарных объектов (файл с произвольным расширением) используются типы данных полей
BLOBPOLE BLOB SEGMENT SIZE 1024,
Поле имеет переменную длину и интерпретируется как последовательность байтов.
InterBase хранит значения BLOB-столбцов в самой БД в виде сегментов. Одна операция ввода-вывода при доступе к BLOB-информации оперирует с одним сегментом. В таблице БД, если в ней объявлен столбец типа BLOB, хранится указатель на начальный сегмент столбца в области хранения BLOB-информации этой БД. По умолчанию длина сегмента составляет 80 байт, максимальная длина сегмента 32 Кбайт (32 768 байт).
4.28 Массивы данных.
В InterBase могут определяться столбцы-массивы.
Для создания столбца-массива в конце его определения указывается в квадратных скобках целое число или диапазон, определяющие количество элементов массива. Например:
ARR_COL INTEGER [30],
ARR_COL1 INTEGER [0:29],
Массив может содержать до 16 измерений, которые перечисляются через запятые:
ARR_COL INTEGER [0:29, 15, 10]
что эквивалентно такому объявлению Object Pascal:
var Arr_Col: array [0..29, 1..15, 1..10] of integer;
4.29 Совместимость типов.
При выполнении операций над столбцами разного типа InterBase пытается автоматически привести типы таким образом, чтобы значения, участвующие в операции, принадлежали совместимым типам. Совместимыми считаются только типы DATE, CHAR и NUMERIC.
Для явного приведения типов можно использовать функцию CAST, которая приводит типы внутри оператора SELECT, обычно в предложении WHERE:
SELECT ...
WHERE CHAR_DATE <= CAST (DATE_DATE AS CHAR);
4.30 Управление данными.
Для управления данными используются операторы
INSERT , DELETE , UPDATE .
INSERT INTO DIVISION (NUM_D, NAME_D, "LEVEL", E_MAIL)
VALUES (:NUM_D, :NAME_D, :LEVELS, :e_mail);
INSERT INTO DIVISION
VALUES (:NUM_D, :NAME_D, :LEVELS, :e_mail);
Использование генераторов.
CREATE GENERATOR G_EMP;
SET GENERATOR G_EMP TO 100;
Функция GEN_ID(Name_generator, 1), где 1 это шаг увеличения счетчика.
4.31 Удаление данных.
Удаление записи таблицы.
DELETE FROM Имя_таблицы WERHE Условие_поиска.
Без задания условий поиска будут удалены ВСЕ записи таблицы.
4.32 Вопросы по 2 лабораторной.
Назначение основные функции серверов баз данных.
Основные функции администрирования БД и SQL – сервера.
Что означает привилегия доступа, какие виды привилегий используются, какие операторы назначения и ликвидации прав доступа Вам известны? Как осуществляется установка прав доступа по умолчанию?
SQL - операторы управления данными, синтаксис, основные конструкции.
Оператор просмотра данных SELECT, построение наборов связанных таблиц, агрегирование значений.
Типы данных SQL – сервера, их машинное представление и ограничения.
Операторы создания доменов и таблиц.
Понятия метаданных сервера и скрипта БД.
Управление транзакциями в утилите ISQL.
Реализация бизнес – правил на стороне сервера.
Ограничения, накладываемые на домены и столбцы.
4.33 Задания СРСП.
1. Защита выбора типов данных, определения пользователей;
2. Выбор и защита привилегий пользователей;
3. Ответить на контрольные вопросы второго модуля [1];
4. Провести отладку SQL – кода таблиц, доменов, привилегий;
5. Защитить отчет по второй лабораторной работе;
6. Защитить отчет по разделу 3.2 курсовой работы [2];
7. Разработать пример вопроса тестового задания по теме раздела.
4.34 Задания СРС.
1. Изучить методические указания ко второй лабораторной работе [1];
2. Ответить на примеры тестовых заданий ко второму модулю [1];
3. Изучить SQL - код доменов, таблиц в учебной БД (FONEBOOK.GDB);
4. Проектирование и использование представлений;
5. Изучение системы помощи (HELP), утилиты InteractivSQL, операторы: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE DOMAIN, GRANT, REVOKE;
6. Изучить конспект 2,3 лекций [3];
7. Изучение типов данных SQL – сервера InterBase.
4.35 Демонстрация.
Создание домена.
Проектирование таблиц.
Определение первичных ключей.
Изменение структуры таблиц.
Изменение описания полей.
Задание привилегий пользователей.
Операторы управления данными.
4.36 Тренировочный тест, 10 вопросов.
Ответы
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
5.1 Инструментальные средства.
Инструментальные средства проектирования.
Определение и назначение.
Инсталляция, настройка параметров.
Основные свойства, конструкции.
Метаданные БД SQL – сервера.
Проектирование средств поддержки ссылочной целостности данных.
Реляционные связи баз данных.
Проектирование генераторов.