ГЛАВА 13. Домены.

ГЛАВА 13. Домены.

Домены в Firebird сродни концепции "типы данных, определенные пользователем". Хотя и невозможно создать новый тип данных, в домене вы можете "упаковать" набор атрибутов с одним из существующих типов данных, присвоить ему идентификатор и после этого использовать его как параметр типа данных для определения столбцов любой таблицы.

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

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

! ! !

ПРИМЕЧАНИЕ. Замещение атрибутов домена на уровне столбца обсуждается позже в этой главе.

. ! .

Столбцы, основанные на определении домена, наследуют все атрибуты домена, которые могут быть:

* типом данных (обязательно);

* значением по умолчанию для INSERT;

* состоянием NULL;

* ограничениями CHECK;

* набором символов (только для символьных и BLOB столбцов);

* порядком сортировки (только для символьных столбцов).

! ! !

ПРИМЕЧАНИЕ. Вы не можете использовать ограничения ссылочной целостности данных в домене.

. ! .

Преимущества инкапсуляции определения данных очевидны. Для простого, но общего примера предположим, что вы проектируете обращения к множеству малых таблиц, где вы собираетесь хранить текстовые описания пронумерованных множеств - таблицы "типов" - типы счетов, типы продуктов, типы пожертвований и т.д. Вы принимаете решение, что каждый элемент каждого из этих множеств будет иметь ключ, состоящий из трех символов в верхнем регистре, который указывает на символьное описание или поле заголовка, имеющее максимум 25 символов.

Все это требует создания двух доменов.

* Домен для указателя будет CHAR(3) с двумя дополнительными атрибутами: ограничение NOT NULL, поскольку вы собираетесь его использовать в качестве первичного ключа и ключа поиска, и ограничение CHECK для проверки наличия прописных букв. Например:

CREATE DOMAIN Туре_Кеу AS CHAR(3) NOT NULL

CHECK(VALUE = UPPER(VALUE));

* Домен описания будет VARCHAR(25). Вы хотите запретить для него пустые значения, поскольку таблицы, в которых вы собираетесь его использовать, являются управляющими:

CREATE DOMAIN Type_Description AS VARCHAR(25) NOT NULL;

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Глава 20 FTP

Из книги автора

Глава 20 FTP Эта глава посвящена протоколу FTP, настройке сервера FTP, проблемам конфигурации и безопасности сервера.Протокол FTPПротокол FTP (File Transfer Protocol, протокол передачи файлов) предназначен для передачи файлов в сети Интернет. Этот протокол был разработан на заре эры


Предисловие Домены древности и наших дней

Из книги автора

Предисловие Домены древности и наших дней В стародавние времена, когда люди не знали еще даже текстового Интернета, сети связи были другими: к ним относились, например, дороги, по которым гонцы разносили грамоты с сообщениями и приказами. Доменами тогда называли огромные


Глава 6 Страны, коды и домены

Из книги автора

Глава 6 Страны, коды и домены Национальными доменами называют двухбуквенные домены первого уровня, соответствующие кодам, обозначающим государства. Например, домен RU – национальный домен России; домен DE – национальный домен Германии; UZ – национальный домен Узбекистана.


RUсские домены

Из книги автора

RUсские домены История с кириллицей в домене RU, несомненно, уже вошла в летопись Рунета и показательна сразу во многих аспектах.О возможности введения кириллических имен в домене RU заговорили очень давно, еще в конце 90-х годов XX века. Более того, пока одни участники рынка


Глава 11 Безопасность и домены

Из книги автора

Глава 11 Безопасность и домены Безопасность систем адресации Интернета – очень актуальная и живо обсуждаемая в профильных сообществах тема. Только по проблемам безопасности DNS за последние годы написано множество научных трудов. Это неудивительно: DNS лежит в основе


ГЛАВА 13. Процессы, домены приложений, контексты и хосты CLR

Из книги автора

ГЛАВА 13. Процессы, домены приложений, контексты и хосты CLR В предыдущих двух главах мы рассмотрели шаги, которые предпринимаются в среде CLR при выяснении параметров размещения внешних компоновочных блоков, а также роль метаданных .NET. В этой главе мы рассмотрим подробности


Домены приложений .NET

Из книги автора

Домены приложений .NET Теперь, когда вы понимаете роль процессов Win32 и возможностей взаимодействия с ними средствами управляемого программного кода, давайте рассмотрим понятие домена приложения .NET. По правилам платформы .NET компоновочные блоки не размещаются в рамках


2. Домены и атрибуты

Из книги автора

2. Домены и атрибуты Домены и атрибуты – базовые понятия в теории создания баз данных и управления ими. Поясним, что же это такое.Формально, домен атрибута (обозначается dom(a)), где а – некий атрибут, определяется как множество допустимых значений одного и того же типа


Домены

Из книги автора

Домены В Firebird вы можете сделать предварительное объявление столбца с типом данных и "шаблонным набором" атрибутов в виде домена. Как только домен будет создан и подтвержден (commit), он может быть использован в любой таблице вашей базы данных, как если бы он был типом данных.! !


Когда домены не работают

Из книги автора

Когда домены не работают Домен не может быть использован:* в функции CAST (<имя_домена> AS <другой_тип>);* вместо явного типа данных при определении входных и выходных аргументов хранимых процедур;* при объявлении типа данных локальной переменной в триггере или хранимой


2.2.7. Домены

Из книги автора

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


ГЛАВА 22

Из книги автора

ГЛАВА 22 Создание экранного вводаКогда речь идет об экранном вводе, или вводе данных, подразумевают ввод информации (в нашем случае с помощью клавиатуры), а затем — проверку достоверности введенных данных. Если данные удовлетворяют неким критериям, они


ГЛАВА 23

Из книги автора

ГЛАВА 23 Отладка сценариевОдной из самых сложных задач при создании shell–сценариев является их отладка. Желательно, чтобы пользователь, выполняющий эту задачу, получил консультации на данном этапе. Чтобы избежать распространенных ошибок, достаточно следовать указанному


Веб на пороге Большого взрыва: частные домены высшего уровня открыты для всех желающих! Евгений Золотов

Из книги автора

Веб на пороге Большого взрыва: частные домены высшего уровня открыты для всех желающих! Евгений Золотов Опубликовано 05 февраля 2014 Сегодня большой день для Веба. 5 февраля 2014 года стартует открытая регистрация имён в частных доменах высшего уровня.