Базы данных: конспект лекций - страница 6



Здесь t(a>1), t(a>2), t(a>3) – именованные значения кортежа t на атрибутах а>1, а>2, а>3.


Простейшие примеры именованных значений кортежей на атрибутах:

(Курс: 5), (Балл: 5);

Здесь соответственно Курс и Балл – имена двух атрибутов, а 5 – это одно из их значений, взятое из их доменов. Разумеется, хоть эти значения в обоих случаях равны друг другу, семантически они различны, так как множества этих значений в обоих случаях отличаются друг от друга.

4. Кортежи. Типы кортежей

Понятие кортежа в системах управления базами данных может быть интуитивно найдено уже из предыдущего пункта, когда мы говорили об именованном значении кортежа на различных атрибутах. Итак, кортеж (обозначается t, от англ. tuple – «кортеж») со схемой отношения S определяется как множество именованных значений этого кортежа на всех атрибутах, входящих в данную схему отношений S. Другими словами, атрибуты берутся из области определения кортежа, def(t), т. е.:

tt(S) = {t(a) | adef(t) ⊆ S;.

Важно, что одному имени атрибута обязательно должно соответствовать не более одного значения атрибута.

В табличной форме записи отношения кортежем будет любая строка таблицы, т. е.:


Здесь t>1(S) = {t(a>1), t(a>2), t(a>3), t(a>4)} и t>2(S) = {t(a>5), t(a>6), t(a>7), t(a>8)} – кортежи.


Кортежи в СУБД различаются по типам в зависимости от своей области определения. Кортежи называются:

1) частичными, если их область определения включается или совпадает со схемой отношения, т. е. def(t) ⊆ S.

Это общий случай в практике баз данных;

2) полными, в том случае если их область определения полностью совпадает, равна схеме отношения, т. е. def(t) = S;

3) неполными, если область определения полностью включается в схему отношений, т. е. def(t) ⊂ S;

4) нигде не определенными, если их область определения равна пустому множеству, т. е. def(t) = ∅.

Поясним на примере. Пусть у нас имеется отношение, заданное следующей таблицей.


Пусть здесь t>1 = {10, 20, 30}, t>2 = {10, 20, Null}, t>3 = {Null, Null, Null}. Тогда легко заметить, что кортеж t>1 – полный, так как его область определения def(t>1) = { a, b, c} = S.

Кортеж t>2 – неполный, def(t>2) = { a, b} ⊂ S. И, наконец, кортеж t>3 – нигде не определенный, так как его def(t3) = ∅.

Надо заметить, что нигде не определенный кортеж – это пустое множество, тем не менее ассоциируемое со схемой отношений. Иногда нигде не определенный кортеж обозначается: ∅(S). Как мы уже видели в приведенном примере, такой кортеж представляет собой строку таблицы, состоящую только из Null-значений.

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

5. Отношения. Типы отношений

И наконец дадим определение отношению, как некой вершине пирамиды, состоящей из всех предыдущих понятий. Итак, отношение (обозначается r, от англ. relation – «отношение») со схемой отношений S определяется как обязательно конечное множество кортежей, имеющих ту же схему отношения S. Таким образом:

r ≡ r(S) = {t(S) | t ∈r};

По аналогии со схемами отношений количество кортежей в отношении называют мощностью отношений и обозначают как мощность множества: |r|.

Отношения, как и кортежи, различаются по типам. Итак, отношения называются: