Базы данных: конспект лекций - страница 5
2. Домены и атрибуты
Домены и атрибуты – базовые понятия в теории создания баз данных и управления ими. Поясним, что же это такое.
Формально, домен атрибута (обозначается dom(a)), где а – некий атрибут, определяется как множество допустимых значений одного и того же типа соответствующего атрибута а. Этот тип должен быть простым, т. е:
dom(a) ⊆ {x | type(x) = type(a)};
Атрибут (обозначается а), в свою очередь, определяется как упорядоченная пара, состоящая из имени атрибута name(a) и домена атрибута dom(a), т. е.:
a = (name(a): dom(a));
В этом определении вместо привычного знака «,» (как в стандартных определениях упорядоченных пар) используется «:». Это делается для того, чтобы подчеркнуть ассоциацию домена атрибута и типа данных атрибута.
Приведем несколько примеров различных атрибутов:
а>1 = (Курс: {1, 2, 3, 4, 5});
а>2 = (МассаКг: {x | type(x) = real, x 0});
а>3 = (ДлинаСм: {x | type(x) = real, x 0});
Заметим, что у атрибутов а>2 и а>3 домены формально совпадают. Но семантическое значение этих атрибутов различно, ведь сравнивать значения массы и длины бессмысленно. Поэтому домен атрибута ассоциируется не только с типом допустимых значений, но и семантическим значением.
В табличной форме представления отношений атрибут отображается как заголовок столбца таблицы, и при этом домен атрибута не указывается, но подразумевается. Это выглядит следующим образом:
Нетрудно заметить, что здесь каждый из заголовков a>1, a>2, a>3 столбцов таблицы, представляющей какое-то отношение, является отдельным атрибутом.
3. Схемы отношений. Именованные значения кортежей
В теории и практике СУБД понятия схемы отношения и именованного значения кортежа на атрибуте являются базовыми. Приведем их.
Схема отношения (обозначается S) определяется как конечное множество атрибутов с уникальными именами, т. е.:
S = {a | a ∈ S};
В каждой таблице, представляющей отношение, все заголовки столбцов (все атрибуты) объединяются в схему этого отношения.
Количество атрибутов в схеме отношений определяет степень этого отношения и обозначается как мощность множества: |S|.
Схема отношений может ассоциироваться с именем схемы отношений.
В табличной форме представления отношений, как нетрудно заметить, схема отношения – это не что иное, как строка заголовков столбцов.
S = {a>1, a>2, a>3, a>4} – схема отношений этой таблицы.
Имя отношения изображается как схематический заголовок таблицы.
В текстовой же форме представления схема отношений может быть представлена как именованный список имен атрибутов, например:
Студенты (№ зачетной книжки, Фамилия, Имя, Отчество, Дата рождения).
Здесь, как и в табличной форме представления, домены атрибутов не указываются, но подразумеваются.
Из определения следует, что схема отношения может быть и пустой (S = ∅). Правда, возможно это только в теории, так как на практике система управления базами данных никогда не допустит создания пустой схемы отношения.
Именованное значение кортежа на атрибуте (обозначается t(a))определяется по аналогии с атрибутом как упорядоченная пара, состоящая из имени атрибута и значения атрибута, т. е.:
t(a) = (name(a) : x), x ∈ dom(a);
Видим, что значение атрибута берется из домена атрибута.
В табличной форме представления отношения каждое именованное значение кортежа на атрибуте – это соответствующая ячейка таблицы: