Организация данных в InterBase




Домены

 

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

 

Замечание: тип данных не может быть переопределен при использовании домена в описании таблицы.

 

Синтаксис описания домена:

create domain <name_domain> as <data_type>

[Default {literal | Null | User}]

[Not null] [Check (<dom_condition>)];

 

Name_ domain - имя создаваемого домена; data_type – тип данных;

[Default {literal | Null | User}] – задание значения по умолчанию – значение по умолчанию присваивается соответствующему атрибуту при создании новой строки в таблице, если его значение не указано явно. Параметр literal указывает значение явно, Null – оставляет значение пустым, User – имя пользователя создавшего запись.

Для полей типа Data можно указывать now, тогда будет вводиться текущая дата.

[Not null] – запрещает ввод пустых значений.

[Check (<domain_condition)] – задает ограничения (описание контроля данных при вводе и изменении). Для задания условия используются следующие ключевые слова:

1. value – подразумевает значение вводимое в поле.

2. Is null, is not null

3. Between … and…, like, in.

4. А также все арифметические и логические операторы.

 

Замечание: домены создаются независимо друг от друга и тем более, от каких либо таблиц, следовательно, Check в домене не может ссылаться ни на какой другой домен или столбец в таблице.

Замечание: домен может иметь только одну конструкцию Check.

Замечание: конструкция Check не может быть переопределена при описании атрибута таблицы. Если при описании поля таблицы, ссылающегося на домен, имеющий Check, указано свое ограничение, то действовать будут оба ограничения.

 

Пример:

Create domain username as varchar(20)

Default user;

 

Create domain month as smallint

Check (value between 1 and 12);

 

Create domain d_elem as char(2)

Check (value in (‘Au’, ‘Ag’, ‘Pt’, ‘Pd’, ‘Os‘));

 

Create domain pweight as numeric(122)

Default null check ((value is null) or (value > 1.25));

 

 

Изменение доменов

 

Изменение доменов осуществляется командой alter domain. С помощью данной команды можно изменить любые характеристики домена, кроме типа данных и установок not null. Сделанные изменения воздействуют на атрибуты всех таблиц, где использовался измененный домен. Команду alter domain может вызвать либо создатель домена, либо пользователь с правами системного администратора.

Для изменения типа поля или установки not null необходимо удалить домен, если это возможно (если домен используется для описания столбцов каких либо таблиц то удалить его нельзя), а затем создать его снова с требуемыми характеристиками.

Синтаксис команды изменения домена:

 

Alter domain name_domain {

[Set default {literal | Null | User}]

[Drop default]

[Add [Constraint] Check (<dom_condition>)]

[Drop constraint]};

 

[Drop default] – удаляет значение по умолчанию.

[Add [Constraint] Check (<dom_condition>)] – добавить ограничение.

[Drop constraint] – удалить ограничение.

 

Замечание: изменить ограничение одной командой нельзя. Сначала ограничение нужно удалить, а потом добавить.

 

Пример:

Alter domain d_elem drop constraint;

Alter domain d_elem add check (value in (‘H’, ‘Li’, ‘K’, ‘Na’);

 

Alter domain username set default ‘***’;

 

 

Удаление доменов

 

Удаление доменов осуществляется командой drop domain. Если домен используется в какой-либо таблице, то удалить его нельзя.

Синтаксис:

Drop domain <name_domain>

 

Таблицы

 

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

 

Создание таблицы

 

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

Упрощенный синтаксис команды:

Create table <name_table>

(Описание полей таблицы);

 

Описание полей таблицы:

Name {<тип_данных> | Computed [by](<выражение>) | <имя домена>}

[Default { literal | Null | User}]

[not null]

[<ограничение столбца>];

 

Name – заголовок столбца

Computed [by] – выражение для вычисляемого столбца. Значения вычисляемых столбцов рассчитываются всякий раз при обращении к ним. Выражение может быть любым допустимым в InterBase выражением, возвращающим единственное значение простого типа. Допустимы выражения с предложением SELECT.

Ограничения столбца – описывает ограничения логической целостности столбца.

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

[Constraint <имя ограничения>]

{ Unique

| Primary key

| Check (<условие>)

| References <имя другой таблицы> [(список атрибутов)]

[On delete {No action | Cascade | Set default | Set null}]

[On update {No action | Cascade | Set default | Set null}]

}

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: