Коллектив авторов

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


Скачать книгу

Дата рождения).

      Здесь, как и в табличной форме представления, домены атрибутов не указываются, но подразумеваются.

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

      Именованное значение кортежа на атрибуте (обозначается t(a))определяется по аналогии с атрибутом как упорядоченная пара, состоящая из имени атрибута и значения атрибута, т. е.:

      t(a) = (name(a) : x), x ∈ dom(a);

      Видим, что значение атрибута берется из домена атрибута.

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

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

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

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

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

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

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

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

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

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

      Здесь t1(S) = {t(a1), t(a2), t(a3), t(a4)} и t2(S) = {t(a5), t(a6), t(a7), t(a8)} – кортежи.

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

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

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

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

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

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

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

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

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

      Надо заметить,