![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Объекту или сущности реального мира в реляционной БД соответствует кортеж отношения. Требование целостности сущностей состоит в следующем:
Любой кортеж любого отношения должен быть отличим от любого другого кортежа этого же отношения.
Это требование означает, что каждое отношение должно иметь первичный ключ. Это требование выполняется автоматически, если в системе не нарушаются базовые свойства отношений.
Кроме этого, могут быть установлены и следующие ограничения:
- UNIQUE – уникальность значения атрибутов; определяет альтернативные ключи отношения;
- NOT NULL – обязательность значения; при вставке новых или модификации существующих элементов отношения значения соответствующих атрибутов должны быть заданы;
- CHECK (условие) – допустимые значения атрибутов; вставляемые значения должны удовлетворять указанному условию.
Например, отношение ДЕТАЛЬ на SQL для СУБД MS SQL Server может быть определено следующим образом:
CREATE TABLE P(
P_ID SMALLINT IDENTITY(1,1) CONSTRAINT P_PK PRIMARY KEY, --1
PNAME VARCHAR(20) NOT NULL CONSTRAINT P_UQ_01 UNIQUE, --2
PRICE MONEY NOT NULL CONSTRAINT P_CH_01 CHECK(PRICE > 0) --3
)
Пояснения:
1 – определено ограничение первичного ключа (ограничение PRIMARY KEY, имя ограничения – P_PK), значения которого должны устанавливаться автоматически, начиная с 1 и с шагом 1 (т.е. в первой записи будет установлено значение 1, во второй – значение 2 и т.д.)
2 – определены ограничения уникальности (имя ограничения – P_UQ_01) и обязательности значения;
3 – определено условие (имя ограничения – P_CH_01): значение атрибута должно быть строго положительным.
При определении ограничений полезно задавать их имена, которые обычно строятся по следующему правилу: в имя ограничения включается имя таблицы, затем условное название типа ограничения и номер ограничения данного типа, если их в данной таблице может быть несколько.
Дата публикования: 2014-11-26; Прочитано: 633 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!