Предложение TYPE в ALTER DOMAIN позволяет заменить тип данных на другой разрешенный тип данных. Разрешенные типы преобразований см. на рис. 8.1.
Недопустим никакой тип преобразования, который может привести к потере данных. Например, количество символов в домене не может быть сделано меньше размера наибольшего значения в любом столбце, использующим этот домен[31].
Преобразование числового типа данных в символьный тип требует минимальной длины для символьного типа, как указано в табл. 8.3.
Следующий оператор меняет тип данных домена BOOK_TITLE С CHAR(80) на VARCHAR(100) :
ALTER DOMAIN BOOK_TITLE TYPE VARCHAR(100);
Удаление домена
Оператор DROP DOMAIN удаляет из базы данных существующее описание домена при условии, что домен не используется в каком-либо описании столбца базы данных.
Чтобы не получить исключений, применяйте ALTER TABLE для удаления всех столбцов, использующих домен, а затем выполняйте DROP DOMAIN. Лучший способ сделать это за одно задание - использовать скрипт DDL. См. разд. "Скрипты схемы" в следующей главе.
Домен может быть удален его создателем, пользователем SYSDBA или (в Linux/UNIX) любым пользователем с привилегией root операционной системы.
Вот синтаксис оператора:
DROP DOMAIN name;
Следующий оператор удаляет ненужный домен:
DROP DOMAIN rather_silly;
Ознакомившись с определением данных, теперь пора приступить к более интересной теме - определению и разработке баз данных. Следующая группа глав проведет вас через концепцию баз данных, ее объектов и подмножество языка SQL, называемого Data Definition Language (DDL), который используется для управления объектами и задает правила их поведения.
Глава 14 начнется с изложения базовых правил разработки моделей в реляционных базах данных. Глава закончится разделом о работе со скриптами БД.
ЧАСТЬ IV. База данных и ее объекты.
ГЛАВА 14. Чертежная доска для базы данных.
Конечно же, база данных хранит данные. Однако данные сами по себе не могут использоваться, если они не были сохранены в соответствии с некоторыми правилами, которые, во-первых, определяют их смысл и значение и, во-вторых, позволяют их отыскивать соответствующим образом. База данных, существующая в контексте системы управления базами данных (СУБД), такой как Firebird, включает в себя множество "вещей" помимо данных.
Firebird является реляционной системой управления базами данных. По существу она разработана для создания и поддержания абстрактных структур данных не только для хранения данных, но также для поддержки отношений, оптимизации скорости и обеспечения целостности, в соответствии с которой запрашиваемые данные могут быть возвращены клиентским приложениям.
Пользователь SYSDBA и пароль
Во всех версиях Firebird, включая 1.5, пользователь SYSDBA имеет полные права ко всем базам данных на сервере. Инсталляционные скрипты устанавливают базу данных безопасности с паролем по умолчанию masterkey.
Некоторые релизы 1.5 для Linux запускают скрипт, который генерирует новый пароль для пользователя SYSDBA. Вы можете посмотреть сгенерированный пароль в файле SYSDBA.password в корневом каталоге Firebird.
! ! !
ВНИМАНИЕ! Пароль masterkey широко известен. Убедитесь, что вы изменили его на малопонятную восьмисимвольную строку. См. инструкции в главе 34.
. ! .
Метаданные
Все вместе объекты, определенные в базе данных, называются метаданными или, более традиционно, ее схемой. Процесс создания и модификации метаданных называется определением данных. Термин "определение данных" также часто применяется к описанию одного объекта и его атрибутов.
В этом разделе в деталях рассматриваются концепции, терминология и язык определения данных.
Язык определения данных
Основные структуры базы данных - ее таблицы, просмотры и индексы - создаются с использованием подмножества языка SQL Firebird, известного как язык определения данных (Data Definition Language, DDL). Оператор DDL начинается с одного из ключевых слов CREATE, ALTER, RECREATE или DROP, которые означают создание, изменение, пересоздание или удаление одного объекта, соответственно. База данных, ее объекты, правила и отношения объединяются для формирования структуры реляционной базы данных.
Системные таблицы
Firebird хранит метаданные в множестве таблиц, которые он создает прямо в базе данных, - в системных таблицах. Идентификаторы всех системных таблиц начинаются с символов "RDB$". Например, таблица, которая хранит определения и другую информацию о структурах всех таблиц в вашей базе данных, называется RDB$RELATIONS. Связанная с ней таблица RDB$RELATION_FIELDS хранит информацию и описания всех столбцов в каждой таблице.
Такая "база данных в базе данных" является высоко нормализованной. Операторы DDL разработаны для выполнения безопасных операций с таблицами метаданных и в полном соответствии с каскадными эффектами.