Совместимость по типу
Две таблицы считаются совместимыми по типу, если у них одинаковые заголовки, а именно:
– каждая из таблиц имеет одно и то же множество полей;
– соответствующие поля определены на одном и том же домене.
Такие таблицы иногда называют совместимыми по объединению или просто совместимыми.
Для проведения операций объединения, пересечения и разности необходимо, чтобы исходные таблицы-операнды были совместимости по типу.
Рассмотрим на примерах основные бинарные операции РА. В качестве исходных рассмотрим две таблицы с конкретной смысловой информацией.
тСпецподготовка (тСп)
Код | Група | Прізвище | Середній бал | информация о студентах, проходящих спецподготовку на военной кафедре |
Гр1 | Андреев | |||
Гр2 | Антонов |
тОбщежитие (тО)
Код | Группа | Фамилия | Комната | информация о студентах, проживающих в общежитии |
Гр1 | Андреев | |||
Гр3 | Петров |
Для обеих таблиц можно утверждать следующее:
– они имеют ключ (Код);
– они состоят из одинакового числа полей, равного 4;
– три первых поля определены на одних и тех же доменах соответственно.
Основные теоретико–множественные операции РА с этими таблицами не могут быть проведены, потому что исходные таблицы-операнды несовместимы. Видно,что в таблицах возникает два вида конфликтов:
– конфликт имен полей, так как поля имеют разные имена;
– конфликт доменов, так как последние (четвертые) поля определены имеют разный смысл (определены на разных доменах).
Прежде чем рассматривать примеры выполнения бинарных операций РА, необходимо разрешить перечисленные конфликты путем достижения совместимости исходных таблиц по типу. Для этого выполним преобразования исходных таблиц.
Любые две таблицы могут быть сделаны совместимыми путем применения преобразования к одной из этих таблиц. При этом операция переименования наряду с операциями проекции применяется только к одной из таблиц-операндов. Но часто удобнее с целью симметрии произвести двойное преобразование обеих таблиц.
Применим сначала к обеим таблицам переименование.
тC2 := тСп RENAME Група AS Гр,
Фам AS Фам, Бал As Балл
тО2 := тО RENAME Группа AS Гр,
Фамилия AS Фам
Теперь в таблицах тС2 и тО2 частично разрешен конфликт имен полей: три поля имеют одинаковые имена. При этом в таблицах осталось по одному полю с различными именами: Балл (тС2) и Комната (тО2). Это числовые поля, относящиеся к разным доменам. Можно было дать им одинаковые имена, например, переименовать поле Комната в Балл, и рассматривать далее таблицы как совместимые. Однако при этом был бы нарушен смысл доменов.
Для исключения конфликта доменов приведем таблицы к полной совместимости путем исключения полей Балл и Комната из дальнейшего рассмотрения.
Для этого применим проекцию к таблицам тС2 и тО2
тА:=тС2 [Код, Гр, Фам]
тВ:=тО2 [Код, Гр, Фам]
Теперь тА и тВ совместимы. С ними без проблем могут быть выполнены основные теоретико–множественные операции РА.
Дата добавления: 2015-12-16; просмотров: 533;