- •Билет 13
- •Вопрос 13.2. Пояснить суть следующих компонент ас: информационное обеспечение, лингвистическое обеспечение, правовое обеспечение, эргономическое обеспечение.
- •Билет 14
- •Вопрос 14.1. Указать порядок интерпретации разрешенных выражений реляционного исчисления кортежей. Указать порядок нахождения значения выражения реляционного исчисления кортежей. Привести примеры.
- •Вопрос 14.2. Описать принципиальный порядок разработки интерфейсов с конечным пользователем программ ввода и обработки информации в реляционных базах данных.
- •Билет 15
- •Вопрос 15.2. Описать принципиальный порядок разработки кода прикладных программ обработки реляционных бд
- •Математическое описание и выбор метода решения задачи.
- •Алгоритмизация решения задачи.
- •Билет 16
- •Вопрос 16.1. Провести обзор основных методологий обследования организаций. Семейство методологий idef. Диаграммы потоков данных. Обзор рынка case-средств
Билет 15
Вопрос 15.1. Указать безопасные выражения реляционного исчисления кортежей. Привести примеры запросов к реляционной базе данных на русском языке и их аналоги с помощью реляционной алгебры, безопасных выражений реляционного исчисления кортежей и SQL.
Сначала некоторое предисловие
В качестве примера можно записать выражение реляционного исчисления на переменных-кортежах, соответствующее операции проекции в реляционной алгебре:
Введем ограничения на конечность реальных отношений в БД, чтобы исключить возможность формирования выражений типа {tï-R(t)}, не имеющих смысла. Это выражение обозначает все возможные, не принадлежащие R кортежи, арность которых согласуется с t.
А теперь к сути:
С этой целью в реляционном исчислении рассматривают только безопасные выражения {t ïφ(t)}, для которых выполняется условие, что каждый компонент (элемент столбца) любого кортежа t, удовлетворяющего φ(t) является элементом некоторого множества элементов D(φ). Множество D(φ) определяется как функция фактических отношений, которые указываются в φ(t), и констант, присутствующих в формуле φ(t) и элементов кортежей тех отношений, которые указаны в φ(t). Так как все отношения в БД предполагаются конечными, то и множество D(φ) – конечно:
Где – константы, встретившиеся в формуле – проекции кортежей фактических отношений , встретившихся в формуле (в данном случае – компоненты кортежей).
При таком определении множества D(φ) справедливо следующее:
Например, если задано выражение {tïcÚR(t)}, где R – бинарное отношение, то
Реляционное исчисление является безопасным, если выполняются следующие условия:
1) из истинности φ(t) следует, что каждый компонент кортежа t принадлежит D(φ);
2) для любой подформулы вида ($u)(φ1(u)), входящей в состав ф, из истинности φ1(и) следует, что и принадлежит D(φ1);
3) для любой подформулы вида ("u)(φ1(u)), входящей в состав φ, из истинности φ1(u) следует, что и не принадлежит D(φ1), или же, что то же самое, из истинности Øφ1(u) следует, что и принадлежит D(φ1 ).
При выполнении этих условий выражение {t|φ(t)} является безопасным. Выражению ("u)(φ1(u)) эквивалентно выражение Ø($u)(Øφ1(u)).
На основании вышеизложенного можно утверждать, что если формула φ(t) такова, что любая ее подформула вида ($u)(φ1(t)) или ("u)(φj(t)) безопасна, то безопасно каждое выражение вида {tïR(t)Ùφ(t )}. Действительно, любой кортеж, удовлетворяющий формуле (R(t)Ùφ(t)), принадлежит в соответствии с этой формулой отношению R, следовательно, каждый из его компонентов будет принадлежать также и множеству элементов D(R(t)Ùφ(t)). Тогда в силу выполнения условия 1 (выполнение условий 2 и 3 задано как исходная предпосылка) выражение {t|R(t)Ùφ(t)} – безопасное. Если в φ(t) найдется хотя бы одна из подформул вида ($u)(φi(t)) или ("u)(φj(t)), которая окажется не безопасной, то тогда и выражение {t|R(t)Ùφ(t)} не будет безопасным. Если в формуле φ(t) вообще отсутствуют подформулы вида ($u)(φi(t)) или ("u)(φj(t)) – или соответствующие им эквивалентные -Ø("u)(Øφi(t)) или Ø($u)(Øφj(t) ), – то выражение (t|R(t)Ùφ(t)} всегда является безопасным.
Например, если φ(t) = ØR2(t), то получим безопасное выражение {tïR1(t)ÙØR2(t)}, соответствующее операции разности отношений в реляционной алгебре (R1 – R2).
Безопасным является также выражение {t|R(t)}, соответствующее выражению R (точнее – переменной R, обозначающей отношение).
В реляционном исчислении на переменных-кортежах доказана теорема, устанавливающая эквивалентность безопасных выражений в исчислении операциям реляционной алгебры.
Теорема. Если Е – выражение реляционной алгебры, то существует эквивалентное ему безопасное выражение в реляционном исчислении с переменными-кортежами
Для основных операций реляционной алгебры укажем следующие соответствующие выражения реляционного исчисления на переменных-кортежах.
Операции объединения (R1 È R2) соответствует выражение
Операции разности (R1 – R2) соответствует выражение
Рассматривается все множество кортежей t, таких, что t принадлежит R1 и не принадлежит R2.
Операции декартова произведения (R1 Ä R2) соответствует выражение
Рассматривается все множество кортежей t арности (k+m), таких, что существует кортеж и, принадлежащий R1, и существует кортеж υ, принадлежащий R2, причем k первых компонентов кортежа t образуют компоненты кортежа и, а следующие т компонентов кортежа t образуют компоненты кортежа υ.
Операции проекции соответствует выражение
Операции селекции соответствует выражение {tïR(t)ÙF'}, где F' – это выражение F, в котором каждый операнд, обозначающий компонент i, заменен на t[i].