Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ по ОБД.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
5.9 Mб
Скачать

5 Контрольные вопросы

1. Дать определение термина "Домен".

2. Где в InterBase используются домены?

3. Какова максимальная длина имени домена?

4. Какие из имеющихся типов данных не приведены в табл. 1.

5. Перечислить числовые типы данных InterBase.

6. Перечислить целые типы данных в порядке возрастания их размера.

7. Перечислить строковые типы данных.

8. Сколько различных типов данных можно использовать при создании до-менов в диалоговом режиме?

9. Чем отличается тип данных DATE в диалектах 1 и 3.

10. Какие дополнительные новые типы добавились в диалекте 3?

11. В чем отличие типа данных VARCHAR от CHAR?

12. Чему равно наибольшее целое число, которое можно сохранить в типе BIGINT?

13. Что означает аббревиатура BLOB?

14. Какие существуют способы изменения домена?

15. В какой системной таблице хранятся метаданные о доменах?

3.3 Лабораторна робота № 3

Тема роботи: Таблицы.

Мета роботи: Изучить способы создания, изменения и удаления таблиц. Получить навыки использования приложения "IB Expert" для создания, удаления и изменения структуры таблиц. Изучить SQL-операторы для работы с таблицами и индексами.

1 Теоретические сведения

1.1 Таблицы (Tables)

InterBase – реляционная СУБД, поэтому все данные в InterBase хранятся в виде двумерных таблиц со строками и столбцами. Строки называются кортежами или записями, а столбцы – доменами или полями.

В этой лабораторной работе рассматриваются не правилами проектирования правильного набора таблиц для хранения данных о некоторой предметной области, а только способы реального создания необходимых таблиц.

Основные ограничения, которым должны удовлетворять таблицы:

1. Каждый столбец в таблице имеет уникальное имя.

2. Все данные в столбце должны быть одного типа.

3. Порядок строк и столбцов в таблице не имеет значения.

4. В таблице не может быть двух одинаковых строк.

Часть языка SQL, которая управляет метаданными, называется Data Definition Language (DDL). К DDL относятся операторы для определения любых содержащихся в базе данных объектов, в том числе и таблиц. Операторы, определяющие структуру таблиц в InterBase, соответствуют стандарту SQL, и поэтому без изменений будут работать и во многих других СУБД.

Для создания таблиц используется оператор "CREATE TABLE", который приводит к созданию пустой таблицы без строк. При создании таблиц задается имя таблицы, описание набора столбцов с их именами, типами и размерами, а также ограничения на хранящуюся в таблице информацию. Максимальная длина названий таблиц, полей и ограничений – 31 символ. Имена таблиц в пределах базы данных должны быть уникальны.

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

Упрощенный синтаксис оператора создания таблицы:

CREATE TABLE Имя_Таблицы(

<описание колонки> [,

<описание колонки> | <ограничение> ...] );

В этом операторе элемент <ограничение> означает ограничение, которое задается на уровне таблицы без одновременного описания колонки.

<описание колонки> = Колонка {

<тип данных>

| COMPUTED [BY] (<вычисляемое выражение>)

| Имя_Домена

}

[DEFAULT {Literal | NULL | USER}]

[NOT NULL] [<ограничение поля>];

Здесь элемент <вычисляемое выражение> означает выражение, которое будет вычисляться каждый раз при необходимости вернуть значение этого вычисляемого поля. Элемент <ограничение поля> означает ограничение, которое задается при одновременном определении поля (функционально полностью аналогично варианту описания ограничения отдельной строкой при создании таблицы). Остальные элементы были описаны в предыдущей лабораторной работе.

Пример создания таблицы "Человек" (домены ID и Name описаны в предыдущей лабораторной работе):

CREATE TABLE Person(

Pr_ID ID, -- номер человека

Pr_LastName Name, -- фамилия

Pr_FirstName Name, -- имя

Pr_Patronymic CHAR(30), -- отчество

Pr_FIO COMPUTED BY ( -- фамилия и инициалы

Pr_LastName || ' ' || SUBSTRING(Pr_FirstName FROM 1 FOR 1) || '.' ||

SUBSTRING(Pr_Patronymic FROM 1 FOR 1) || '.') );

Первые три поля заданы с использованием доменов, тип поля Pr_Patronymic задан непосредственно при создании таблицы, а поле Pr_FIO является вычисляемым.

В этом операторе || означает операцию конкатенации (соединения) строк, SUBSTRING() – функция, возвращающая подстроку (в приведенном примере – первую букву полей "Pr_FirstName" и "Pr_Patronymic").

Если при описании поля не использовать домен, то Firebird все равно создает домен специально для этого поля. Имя таких доменов состоит из символов "RDB$" и порядкового номера. С такими системными доменами можно выполнять такие же операции, как и с обычными доменами.

Для удаления таблицы используется оператор DROP TABLE.

DROP TABLE Person; -- Пример удаления таблицы

Оператор ALTER TABLE предназначен для изменения структуры таблицы вместо ее удаления и повторного создания. С его помощью можно изменять названия полей, добавлять новые и удалять имеющиеся поля, а также добавлять и удалять ограничения.

Примеры операторов ALTER TABLE:

-- добавление поля "День рождения":

ALTER TABLE Person ADD Birthday DATE;

-- удаление поля "Отчество":

ALTER TABLE Person DROP Pr_Patronymic;

-- переименование поля "День рождения":

ALTER TABLE Person ALTER COLUMN Birthday TO Pr_Birthday;

Если требуется изменить тип поля, например, увеличить число символов, хранимых в поле, то необходимо изменять домен этого поля оператором ALTER DOMAIN или выполнить изменения в системных таблицах.