powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача на предикаты
4 сообщений из 4, страница 1 из 1
Задача на предикаты
    #32313011
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доказать ,что множество записей на котором определен и истиннен один предикат является подмножеством записей на котором определен и истиннен другой предикат для некоторой таблицы

Как построить алгоритм, доказывающий ,что множество записей доставляемое одним логическим выражением над полями некоторой таблицы,
является подмножеством записей , доставляемым другим лог выражением над полями той же таблицы.
...
Рейтинг: 0 / 0
Задача на предикаты
    #32313022
YuriAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT SUM ( tt.Res) as Total1 
(
Select Res = ( CASE WHEN 
                      exists( SELECT * FROM TABLE1 t2 WHERE <where2> AND 
                               t1.Field1=t2.Field1 AND ...t1.FieldN=t2.FieldN  
                   THEN  0  ELSE  1  )
FROM TABLE1 t1
WHERE <where1>
)  tt

Если Total1 будет  0  , то это докажет , что она подмножество !
...
Рейтинг: 0 / 0
Задача на предикаты
    #32313078
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 YuriAM >
Ну а теперь нужно , чтобы этот анализ сделал парсер, не производя выборок - суть как раз в том, чтобы не тратить время на выборку.

Вообще в прикладном плане задача следующая -
в некоторой таблице T1 периодически пользователями обновляется из ее некоторой копии T1_1 ( копия меняется со временем) некоторое подмножество записей , определяемое заданным пользователем условием .

Нужно , чтобы при очередном обновлении был произведен анализ - попадает ли подмножество, вырезаемое новым условием в то множество записей, которое уже было обновлено при предыдущем обновлении. И если попадает, то - отказаться от обновления , не тратить на него время.
...
Рейтинг: 0 / 0
Задача на предикаты
    #32314245
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Посмотри алгоритмы приведения предикатов к коньюнктной-дизьюнктной форме. После привидения многое станет очевидным. Это есть в книгах по матлогике.
2) Посмотри алгоритмы оптимизации where выражений, например в книге дейта, там наверное есть ссылки на более подробные источники. Это почти то же самое, что п.1, но с более практической точки зрения.
3) Может оказаться что правильный sql запрос будет отрабатывать быстрее, чем твой парсер. Например если использовать операцию minus для правильных множеств, которая к примеру в оракле соптимизирована очень хорошо, то sql оптимизатор сделает работу за тебя.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача на предикаты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]