Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dbbook(2010.04.15).pdf
Скачиваний:
52
Добавлен:
09.06.2015
Размер:
2.14 Mб
Скачать

Домен, определенный с помощью характеристического предиката, соответствует так называемому

подтипу данных, определенному пользователем.

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

Примечание. Заметим, что среди значений домена null-значение не появляется. Допустимость или не допустимость null-значений среди значений атрибута определяется с помощью специального флажка, указываемого в операторе создания отношения (таблицы)

Атрибут a = (name(a) : dom(a)) определяется как упорядоченная пара, состоящая из имени атрибута name(a) (имени столбца) и домена атрибута dom(a). Вместо запятой в обозначении упорядоченной пары используется двоеточие для того, чтобы подчеркнуть близость понятий домена и типа данных.

2.4.3. Схема отношения

Схема отношения S = fa j a 2 Sg определяется как конечное множество атрибутов с уникальными именами и изображается как строка заголовков столбцов. Число атрибутов в схеме отношения называется степенью отношения и обозначается как мощность множества jSj. Схема отношения может ассоциироваться с именем (схемы) отношения, изображаемым как тематический заголовок таблицы. В текстовой форме именованные схемы отношений изображаются в виде именованного списка имен атрибутов, например, Студенты(№ ЗК, Ф, И, О). При этом домены атрибутов, как правило, не указываются, но подразумеваются.

Согласно определению, схема отношения может быть и пустой. Хотя создание пустой схемы СУБД не допустит, абстракция пустой схемы S = ; удобна в теории.

2.4.4. Именованное значение атрибута

Именованное значение атрибута x(a) = (name(a) : x); x 2 dom(a) определяется как упорядоченная пара, состоящая из имени атрибута и значения атрибута. Значение атрибута берется из домена атрибута. Именованное значение атрибута соответствует ячейке тела таблицы, например, (№ ЗК: 100), (Г.р.: 1986).

2.4.5. Кортеж

Кортеж t t(S) = fx(a) j a 2 def(t) Sg (tuple – кортеж) со схемой отношения S определяется как множество именованных значений атрибутов из области определения кортежа def(t) и изображается как строка тела таблицы. Одному имени атрибута должно соответствовать не более одного значения атрибута. В зависимости от области определения кортеж называется

1)def(t) S – частичным (общий случай),

2)def(t) = S – полным,

3)def(t) S – неполным,

4)def(t) = ; – нигде не определенным.

Приведем примеры изображения полного, неполного и нигде не определенного кортежей в текстовой форме:

t(№ ЗК, Ф, И, О) = {(№ ЗК: 100), (Ф: Иванов), (И: Иван), (О: Иванович)}

t(№ ЗК, Ф, И, О) = {(№ ЗК: 100), (Ф: Иванов)} t(№ ЗК, Ф, И, О) = {} ;(№ ЗК, Ф, И, О)

Полный кортеж определен на всей схеме отношения. Неполный кортеж не определен хотя бы на одном атрибуте. Нигде не определенный кортеж со схемой S представляет собой пустое множество, ассоциированное со схемой, и в расширенной форме обозначается как ;(S).

В табличной форме неопределенные значения кортежа изображаются как null-значения. В частности, нигде не определенный кортеж изображается как строка таблицы, состоящая из одних null- значений.

Почему формы изображения неопределенных значений кортежа в текстовой и табличной формах различаются? Почему бы в текстовой форме не указывать явно null-значения для неопределенных значений кортежа на атрибутах? Дело в том, что из кортежей необходимо образовывать множества, представляющие отношения, а для этого необходимо ввести понятие равенства кортежей. Сравнимыми считаются кортежи над одной и той же схемой отношения (это понятно). Но как быть с null-значениями? Если null-значение ввести в определение кортежа, то например, все кортежи вида {(№ ЗК: 100), (Ф: Иванов), (И: null), (О: null)} считались бы формально различными, так как при их покомпонентном сравнении было бы получено логическое значение null, интерпретируемое как false. Таким образом, согласно данному определению кортежи (в теории) равны только тогда, когда они полностью идентичны, то есть имеют одну и ту же область определения (имеют не null-значения для одних и тех же атрибутов) и в этой области совпадают.

2.4.6. Отношение

Отношение r r(S) = ft(S) j t 2 rg со схемой отношения S определяется как конечное множество кортежей со схемой S. Количество кортежей в отношении называется мощностью отношения и обозначается как мощность множества jrj. В табличной форме представления отношению соответствует тело таблицы.

Отношение со схемой S может быть пустым, и тогда для него необходимо использовать расширенную форму обозначения ;(S). Это обозначение совпадает с обозначением нигде не определенного кортежа и, следовательно, интерпретация обозначения должна определяться по контексту.

Сравнимыми считаются отношения с одной и той же схемой.

Вследующих случаях отношение называется

1)8t 2 r(S) [def(t) S] – частичным (общий случай),

2)8t 2 r(S) [def(t) = S] – полным,

3)9t 2 r(S) [def(t) S] – неполным,

4)8t 2 r(S) [def(t) = ;] – нигде не определенным.

Полное отношение не содержит null-значений в теле таблицы, а неполное – содержит. Нигде не определенное отношение либо является пустым ;(S), либо содержит (единственный, будучи не мультимножеством) нигде не определенный кортеж f;(S)g.

2.4.7. Схема базы данных

Схема базы данных = fS j S 2 g определяется как конечное множество именованных схем отношений с уникальными именами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]