что такое ограничения в дБмс? - PullRequest
0 голосов
/ 02 сентября 2010

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

CREATE TABLE Persons
(
    PersonID int identity(1,1) NOT NULL,
    FirstName nvarchar(20),
    LastName nvarchar(20) NOT NULL,
    CONSTRAINT PrimKeyPeople PRIMARY KEY(PersonID)
);

здесь все готовый PersonID является первичным ключом, тогда почему нужно дать другое имя primkeypeople. почему мы используем ограничения имя здесь PrimKeyPeople здесь, что такое PrimKeyPeople?

Ответы [ 2 ]

2 голосов
/ 02 сентября 2010

Каждое ограничение, определенное в СУБД, имеет имя.В вашем примере PrimKeyPeople - это имя ограничения, которое определяет PersonID в качестве первичного ключа.

Имена ограничений (вместе с именем таблицы, Имена представлений и именем всех других объектов, существующих в базе данных)хранятся в SQL / схемах (или схемах информации и определения).SQL / Schemata делает базы данных SQL и объекты с самоописанием.SQL / Schemata позволяет, например, писать обновления SQL, которые снимают ограничение первичного ключа.Как вы можете удалить ограничение?Конечно, ссылаясь на его имя!

Обратите внимание, что если вы не назначите имя для ограничения, СУБД автоматически сгенерирует его.

1 голос
/ 02 сентября 2010

Ограничение можно описать как правило, которому вы должны следовать.

В СУБД известно несколько ограничений: Первичный ключ, Внешний ключ и Уникальный.Первичный ключ и уникальный гарантирует, что все значения в нем уникальны.Следовательно, любое неуникальное значение никогда не будет принято.

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

В вашем случае PrimKeyPeople является первичным ключом в таблице Persons.Этот первичный ключ (ограничение уникальности) будет утверждать, что каждое значение в нем будет уникальным.Обозначение ограничения обязательно (для СУБД), но необязательно для пользователей.Это «наименование» необходимо, потому что иногда нам нужно отключить / включить / удалить некоторые ограничения.Чтобы сделать его удобным для пользователя, некоторые СУБД предоставляют имя по умолчанию для всех ограничений, чтобы пользователю не приходилось объявлять его явно.

...