Управление данными. Громов Ю.Ю - 15 стр.

UptoLike

несёт определённую смысловую нагрузку.
Например, домен
D
, имеющий смысл «возраст сотрудника», можно описать как следующее под-
множество множества натуральных чисел:
{
}
60and18: =
nnNnD
.
Если тип данных можно считать множеством всех возможных значений данного типа, то домен на-
поминает подмножество в этом множестве.
Отличие домена от понятия подмножества состоит именно в том, что
домен отражает семантику
,
определённую предметной областью. Может быть несколько доменов, совпадающих как подмножества,
но несущих различный смысл. Например, домены «Вес детали» и «Имеющееся количество» можно
одинаково описать как множество неотрицательных целых чисел, но смысл этих доменов будет различ-
ным, и это будут различные
домены.
Основное значение доменов состоит в том, что
домены ограничивают сравнения
. Некорректно, с
логической точки зрения, сравнивать значения из различных доменов, даже если они имеют одинако-
вый тип. В этом проявляется смысловое ограничение доменов. Синтаксически правильный запрос «вы-
дать список всех деталей, у которых вес детали больше имеющегося количества» не соответствует
смыслу понятий «количество» и «вес».
Замечание. Понятие домена помогает правильно моделировать
предметную область. При работе с
реальной системой в принципе возможна ситуация, когда требуется ответить на запрос, приведённый
выше. Система даст ответ, но, вероятно, он будет бессмысленным.
Замечание. Не все домены обладают логическим условием, ограничивающим возможные значения
домена. В таком случае множество возможных значений домена совпадает с множеством возможных
значений типа данных.
Замечание. Не всегда очевидно, как задать логическое условие, ограничивающее возможные зна-
чения домена. Автор будет благодарен тому, кто приведёт ему условие на строковый тип данных, за-
дающий домен «Фамилия сотрудника». Ясно, что строки, являющиеся фамилиями, не должны начи-
наться с цифр, служебных символов, с мягкого знака и т.д. Но вот является ли допустимой фамилия
«Ггггггыыыыы»? Почему бы нет? Очевидно, нет! А может, кто-то назло так себя назовёт. Трудности
такого рода возникают потому, что смысл реальных явлений далеко не всегда можно формально опи-
сать. Просто мы интуитивно понимаем, что такое фамилия, но никто не может дать такое формальное
определение, которое отличало бы фамилии от строк, фамилиями не являющихся. Выход из этой ситуа-
ции простойположиться на разум сотрудника, вводящего фамилии в компьютер.
2.2.3. Отношения, атрибуты, кортежи отношения.
Определения и примеры
Фундаментальным понятием реляционной модели данных является понятие
отношения
.
Определение 1.
Атрибут отношения
есть пара вида <Имя_атрибута : Имя_домена>.
Имена атрибутов должны быть уникальны в пределах отношения. Часто имена атрибутов отноше-
ния совпадают с именами соответствующих доменов.
Определение 2.
Отношение
R
, определённое на множестве доменов
D
1
,
D
2
, …,
D
n
(необязательно
различных), содержит две части: заголовок и тело.
Заголовок отношения
содержит фиксированное количество атрибутов отношения:
(
)
><><><
nn
DADADA
:...,,:,:
2211
.
Тело отношения
содержит множество кортежей отношения. Каждый
кортеж отношения
представ-
ляет собой множество пар вида <Имя_атрибута : Значение_атрибута>:
1 1 2 2
( : , : ,..., : )
n n
A Val A Val A Val
< > < > < >
таких, что значение
Val
i
атрибута
A
i
принадлежит домену
D
i
.
Отношение обычно записывается в виде:
(
)
><><><
nn
DADADAR
:...,,:,:
2211
,
или короче:
(
)
n
AAAR
...,,,
21
, или просто
R
.
Число атрибутов в отношении называют
степенью
(или
-арностью
) отношения.
Мощность множества кортежей отношения называют
мощностью
отношения.
Возвращаясь к математическому понятию отношения, введённому в предыдущей главе, можно сде-
лать следующие выводы.