Сущностноя целостность, первичные и дополнительные ключи

Целостность доменов, null-значения и сложные домены

Целостность доменов {domain integrity) определяет домены (области) значений, допустимых для столб­цов. Например, запись о клиенте недостоверна, если сокращенный код штата, в котором проживает клиент, не входит в группу пятидесяти кодов штатов США.

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

• Можно исключить, возможность ввода null-значений в столбец, воспользовавшись ограничением (constraint) NOT NULL.

• Можно объявить правило целостности сложных доменов частью таблицы, воспользовавшись ограничением СНЕСК, обычно содержащим явный список значений, допустимых для столбца. Например, "М" (мужской) и "F" (женский) в столбце, содержащем информацию о поле клиен­та: "AL" (.Алабама), "АК" (Аляска), ..., "WY" (Вайоминг) в столбце, содержащем коды штатов США, и т.д.

 

Сущнпстная целостность (entity integrity) обеспечивает уникальность каждой строки таблицы. В резуль­тате сущностная целостность устраняет возможность появления в таблице повторяющихся значений и делает каждую строку таблицы однозначно идентифицируемой.

Первичные ключи обеспечивают поддержание сущностной целостности таблиц: Первичный ключ, (primary key) — это столбец, однозначно идентифицирующий строки таблицы. Как правило, в качестве первичных ключей таблиц реляционных баз данных используются столбцы типа ID (столбцы-идентификаторы). Напри­мер, в таблице клиентов может содержаться ID-столбец, однозначно идентифицирующий каждую запись о клиенте. Таким образом, даже если два клиента (скажем, Джон Смит и его сын Джон Смит-младший) имеют одинаковые имена, фамилии, адреса, номера телефонов и т.д., их идентификационные номера различны, что позволяет отличить одного от другого.

Первичный ключ таблицы часто бывает составным {composite), т.е. состоящим из нескольких столб­цов. Например, в типичной таблице системы ввода заказов, содержащей информацию о пунктах заказов товаров, первичным ключ может быть составным и описываться столбцами ORDER_ID (идентифика-тор_заказа) и ITEM _ID (идентификатор_пункта_заказа). В этой таблице многие записи пунктов заказов могут иметь одинаковые идентификаторы (1,2, ...), но никакие две записи пунктов заказов не могут иметь одновременно одинаковые идентификатор заказа и идентификатор пункта заказа (идентификатор заказа 1, идентификашры пунктов заказа 1, 2, 3, ...; идентификатор заказа 2, идентификаторы пунктов заказа 1, 2, 3, ...; и т. д.).

Иногда в таблице необходимо обеспечить дополнительные уровни сущностной целостности. Допол­нительные ключи (altenate keys) — это столбцы или группы столбцов, в которых не содержатся повто­ряющиеся значения. Например, столбец EMAIL таблнцы, содержащей информацию о служащих компании, может быть дополнительным ключом, что будет гарантировать уникальность адресов элек­тронной почты всех служащих.