Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Базы данных

б. Задание альтернативного ключа

В некоторых таблицах совместно с первичным ключом (или без построения первичного ключа) удобно иметь альтернативный ключ (UNIQUE). В некоторых изданиях альтернативный ключ называют Candidate.

Альтернативный ключ задается атрибутом UNIQUE, который указывается при описании поля последним параметром (задание ключа на уровне поля) либо на уровне таблицы аналогично первичному ключу.

Альтернативный ключ может быть как простым, так и сложным.

Пример 5.6. Задать альтернативный ключ на уровне поля.

CREATE TABLE AUTHOR (

KEY AUT INTEGER NOT NULL PRIMARY KEY,

KEY FAM INTEGER NOT NULL UNIQUE,

KEY IM INTEGER NOT NULL,

KEY ОТ INTEGER NOT NULL,

Пример 5.7. Задать сложный альтернативный ключ на уровне таблицы.

CREATE TABLE AUTHOR (

KEY_AUT INTEGER NOT NULL PRIMARY KEY,

KEYFAM INTEGER NOT NULL,

KEYIM INTEGER NOT NULL,

KEY OT INTEGER NOT NULL,

POST IDX INTEGER,

DATE R DATE,

UNIQUE (KEY FAM, KEY IM, KEY ОТ)

в. Задание ссылочной целостности

Ссылочная целостность (взаимосвязь между таблицами) задается с целью обеспечения целостности данных, т. е. отсутствия в таблицах «висячих» записей. Так как одна сущность описывается одной записью в нескольких таблицах, то для прочтения всей записи надо переходить из одной таблицы в другую по значениям ключей.

Ссылочная целостность (взаимосвязь) задается со стороны дочерней таблицы. Со стороны дочерней таблицы указывается внешний ключ (FOREIGN KEY), а со стороны родительской таблицы — либо первичный ключ (PRIMARY KEY), либо альтернативный ключ {UNIQUE).

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

После задания условий ссылочной целостности между дочерней и родительской таблицами по ключам PRIMARY KEY и FOREIGN KEY InterBase запрещает каскадные воздействия. То есть:

  • • нельзя изменить значение поля (полей) первичного ключа родительской таблицы;
  • • нельзя удалить запись из родительской таблицы, если для записи родительской таблицы существуют связанные по ключу записи в дочерней таблице.

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

Пример 5.8. Определить ссылочную целостность.

CREATE TABLE FAM (

KEYFAM INTEGER NOT NULL,

FAM VARCHAR(20) CHARACTER SET WIN 1251 NOT NULL, FOTO CHAR(30),

PRIMARY KEY (KEY FAM));

CREATE TABLE IM (

KEYIM INTEGER NOT NULL,

IM VARCHAR(15) CHARACTER SET WIN 1251 NOT NULL, PRIMARY KEY (KEY IM));

CREATE TABLE ОТ (

KEYOT INTEGER NOT NULL UNIQUE,

ОТ VARCHAR(20) CHARACTER SET WIN1251 NOT NULL

);

CREATE TABLE AUTHOR (

KEYAUT INTEGER NOT NULL,

KEY FAM INTEGER NOT NULL,

KEY IM INTEGER NOT NULL,

KEY OT INTEGER NOT NULL,

KEY_TOWN INTEGER NOT NULL,

KEY STREET INTEGER NOT NULL,

KEYBOOK INTEGER NOT NULL,

TEL VARCHAR(20) CHARACTER SET WIN 1251 NOT NULL, PRIMARY KEY (KEY AUT),

FOREIGN KEY(KEY FAM) REFERENCES FAM,

FOREIGN KEY(KEYJM) REFERENCES IM,

FOREIGN KEY(KEYOT) REFERENCES ОТ (KEY OT)

В примере 5.8 созданы три родительские таблицы Fam, Im и Ot, а также одна дочерняя таблица Author. Между этими таблицами установлены связи: с таблицами Fam и 1т — по первичному ключу, а с таблицей Ot — по альтернативному ключу.

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Пред   СОДЕРЖАНИЕ   След >
 

Популярные страницы