ВУЗ:
Составители:
Рубрика:
76
Для третьей ситуации элементы векторов
τ
i
и
τ
j
имеют следующие значения:
- х
i1
имеет значение «2»;
- х
j1
имеет значение «4»;
- х
i2
имеет значение у, где у – идентификатор таблицы, содержащей идентификатор
столбца, расположенного в i-той вершине;
- х
j2
имеет значение у, где у – идентификатор таблицы, содержащей идентификатор
столбца, расположенного в j-той вершине;
- х
j3
имеет значение z, где z – идентификатор столбца, содержащий значение j-той
вершины;
- остальные элементы векторов
τ
i
и
τ
j
имеют значение null.
В этом случае значения элементов х
i2
, х
j2
векторов
τ
i
и
τ
j
совпадают.
Рассмотрим формирование множества
Γ
для каждой гипотезы.
Для первой гипотезы множество
Γ
будет включать множество параметрических
предикатов, описывающих физическую модель данных и продукции pr
19
Tr
, pr
20
Tr
нахождения связи между таблицами SQL–запроса.
Для второй гипотезы множество
Γ
будет включать также множество параметрических
предикатов, описывающих физическую модель данных и продукции pr
21
Tr
, pr
22
Tr
.
Для доказательства первой гипотезы необходимо просмотреть все пары смежных
вершин графа
G
~
, применяя соответственно каждой ситуации правила pr
19
Tr
, pr
20
Tr
нахождения связи между таблицами SQL–запроса.
Для доказательства второй гипотезы необходимо найти путь от i-той таблицы к j-той
таблице и преобразовать граф
G
~
в граф G , в котором будут добавлены все
промежуточные таблицы. Для новых таблиц необходимо сформировать вектор
τ
. В связи с
тем, что граф Е задан множеством предикатов, то путь от i-той таблицы к j-той таблице
будем искать как транзитивное замыкание
k
dd →
*
0
или
k
dddd
iii
→→→
Pr
2
Pr
1
Pr
0
... .
Первое применение продукции pr
i
Tr
(
22,21=i
) позволит получить новое состояние d
1
, в
котором будет определена таблица, с которой связана исходная таблица, следующее
применение продукции pr
i
Tr
позволит получить состояние d
2
, в котором будет определена
таблица, с которой связана предыдущая таблица и так далее, пока не найдем таблицу,
которая является вершиной у
2
. Здесь исходная ситуация d
0
и индекс продукции
i учитывают
три случая комбинации типов вершин, описанных выше. В действия продукции pr
i
Tr
входит
добавление вершины в граф
G и формирование вектора
τ
.
3.3.3. Формирование оператора SQL
Из множества SQL-операторов нас интересует класс операторов Select, касающихся
только выборки информации из таблиц базы данных. Эти операторы имеют следующий
синтаксис [92-94, 23]:
SELECT select_list
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
Для третьей ситуации элементы векторов τi и τj имеют следующие значения:
- хi1 имеет значение «2»;
- хj1 имеет значение «4»;
- хi2 имеет значение у, где у – идентификатор таблицы, содержащей идентификатор
столбца, расположенного в i-той вершине;
- хj2 имеет значение у, где у – идентификатор таблицы, содержащей идентификатор
столбца, расположенного в j-той вершине;
- хj3 имеет значение z, где z – идентификатор столбца, содержащий значение j-той
вершины;
- остальные элементы векторов τi и τj имеют значение null.
В этом случае значения элементов хi2, хj2 векторов τi и τj совпадают.
Рассмотрим формирование множества Γ для каждой гипотезы.
Для первой гипотезы множество Γ будет включать множество параметрических
предикатов, описывающих физическую модель данных и продукции pr19Tr, pr20Tr
нахождения связи между таблицами SQL–запроса.
Для второй гипотезы множество Γ будет включать также множество параметрических
предикатов, описывающих физическую модель данных и продукции pr21Tr, pr22Tr.
Для доказательства первой гипотезы необходимо просмотреть все пары смежных
~
вершин графа G , применяя соответственно каждой ситуации правила pr19Tr, pr20Tr
нахождения связи между таблицами SQL–запроса.
Для доказательства второй гипотезы необходимо найти путь от i-той таблицы к j-той
~
таблице и преобразовать граф G в граф G , в котором будут добавлены все
промежуточные таблицы. Для новых таблиц необходимо сформировать вектор τ. В связи с
тем, что граф Е задан множеством предикатов, то путь от i-той таблицы к j-той таблице
* Pri Pri Pri
будем искать как транзитивное замыкание d0 → dk или d0 →
d1 → dk .
d 2 ... →
Первое применение продукции priTr ( i = 21,22 ) позволит получить новое состояние d1, в
котором будет определена таблица, с которой связана исходная таблица, следующее
применение продукции priTr позволит получить состояние d2, в котором будет определена
таблица, с которой связана предыдущая таблица и так далее, пока не найдем таблицу,
которая является вершиной у2. Здесь исходная ситуация d0 и индекс продукции i учитывают
три случая комбинации типов вершин, описанных выше. В действия продукции priTr входит
добавление вершины в граф G и формирование вектора τ.
3.3.3. Формирование оператора SQL
Из множества SQL-операторов нас интересует класс операторов Select, касающихся
только выборки информации из таблиц базы данных. Эти операторы имеют следующий
синтаксис [92-94, 23]:
SELECT select_list
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
76
Страницы
- « первая
- ‹ предыдущая
- …
- 74
- 75
- 76
- 77
- 78
- …
- следующая ›
- последняя »
