4.2.4 Виды ограничений ссылочной целостности
Рисунок 4.2 – Ограничения ключей
При создании таблиц создаются ограничения, которые являются соответствующим стандарту ANSI способом обеспечения целостности данных. Каждый тип целостности данных — доменная, объектная и ссылочная — предполагает использование соответствующих типов ограничений. Ограничения обеспечивают ввод в столбцы допустимых значений и сохранение связей между таблицами.
Ограничения на уровне столбца применяются к отдельному столбцу и являются частью определения столбца. Ограничения на уровне таблицы применяются к одному или нескольким столбцам таблицы. Ограничения на уровне таблицы указываются в отдельном разделе после определения всех столбцов.
Первичный ключ
Ограничение PRIMARY KEY определяет один или несколько столбцов таблицы, которые образуют ключевое поле. Ключевое поле уникальным образом определяет строку таблицы и обеспечивает объектную целостность таблицыоно не может быть нулевым.
Первичный ключ - домен или несколько доменов таблицы, однозначно характеризующие запись согласно третьей нормальной форме Бойесса-Кода. Объявляется при помощи служебных слов PRIMARY KEY( < FIELD1> [,]), где < FIELD > - имя поля или имена полей, перечисленные через запятую. Первичный ключ также может быть задан при создании домена таблицы. Например:
CREATE TABLE Student(
STUD_ID INTEGER PRIMARY KEY,
....
);
или (рекомендуемый вариант, с указанием имени CONSTRAINT - ограничение)
CREATE TABLE Student(
STUD_ID INTEGER NOT NULL,
....
CONSTRAINT PK_Student PRIMARY KEY (STUD_ID)
);
У таблицы может быть только один первичный ключ.
Первичный ключ также можно создать командой ALTER TABLE
Внешний ключ
Внешний ключ представляет собой столбец или сочетание столбцов, которое используется для обеспечения связи между данными двух таблиц. Ограничение FOREIGN KEY обеспечивает ссылочную целостность и определяет ссылку на столбец с ограничением PRIMARY KEY или UNIQUE в той же или в другой таблице. Значения в столбце внешнего ключа должны отображаться в столбце ключевого поля. При наличии ссылок на значения ключевого поля эти значения не могут быть изменены или удалены.
Ограничение FOREIGN KEY имеет параметр CASCADE, с помощью которого можно распространять любое изменение значения столбца, определяющего ограничение UNIQUE или PRIMARY KEY, в любые значения внешнего ключа, ссылающиеся на это значение. Такое действие называется каскадной ссылочной целостностью.
Внешний ключ служит для связки родительской и дочерней таблиц в базе данных, когда одной записи в родительской таблице соответствует множество записей в дочерней таблице. На этом условии могут быть построены отношения сущностей в базе данных «один-к-одному» и «один-ко-многим». Внешний ключ строится по столбцам в дочерней таблице, значения которых ссылаются на значения записей в родительской таблице.
Внешний ключ также можно создать командой ALTER TABLE. Автоматические генераторы скриптов обычно создают описание Внешних ключей именно через ALTER TABLE, и располагают их после создания всех таблиц, т.к. это позволяет избежать проблем, когда Внешний ключ ссылается на таблицу, которая еще не создана скриптом.
Достарыңызбен бөлісу: |