ЭФФЕКТИВНЫЕ ОПЕРАЦИИ ПРОСМОТРА БАЗЫ ДАННЫХ

1. Способ ответа на запрос базы данных (108), содержащий этапы, на которых
принимают запрос базы данных (108);
в качестве реакции на прием этого запроса преобразовывают одну или несколько процедурных проверок в одну или несколько операций базы данных и выполняют эти операции для генерации набора возможных результатов для этого запроса;
сохраняют этот набор возможных результатов для данного запроса;
вычисляют конкретный ответ на упомянутый запрос из сохраненного набора возможных результатов;
отвечают на упомянутый запрос (108) базы данных этим конкретным ответом; и
удовлетворяют будущие запросы базы данных путем вычисления ответа на запрос из сохраненного набора возможных результатов.
2. Способ по п.1, в котором запрос содержит запрос на публикацию присутствия (304), при этом набор возможных результатов содержит таблицу (400), содержащую одну или несколько строк, причем каждая строка имеет поле (402А) данных издателя для хранения данных, идентифицирующих издателя запрашиваемой публикации присутствия, поле (402С) данных запросчика для хранения данных, идентифицирующих запросчика публикации присутствия, поле (402В) данных контейнера для хранения данных, идентифицирующих контейнер (300), из которого запрос может быть удовлетворен, и поле (402D) данных ранга для хранения ранга.
3. Способ по п.2, в котором контейнер (300) содержит структуру данных, включающую в себя поле (302) данных членства для хранения данных, идентифицирующих одного или нескольких запросчиков, авторизованных для приема публикаций присутствия, содержащихся в поле (304) данных публикаций этого контейнера, и поле (304) данных публикаций для хранения одной или нескольких публикаций присутствия, которые члены, идентифицированные в поле (302) данных членства, авторизованы принимать.
4. Способ по п.3, в котором при вычислении конкретного ответа на запрос выполняют операцию выбора в отношении таблицы (400) для идентификации набора строк-кандидатов из таблицы (400) и выполняют операцию соединения между набором строк-кандидатов и полями (304) данных публикаций контейнеров (300), идентифицированных в наборе строк-кандидатов, для идентификации этого конкретного ответа.
5. Способ по п.4, в котором при выполнении операций для генерации набора возможных результатов для упомянутого запроса
создают новую строку в таблице (400) для каждого контейнера (300), поддерживаемого издателем, который идентифицирует запросчика в поле (302) данных членства, и для каждой новой строки сохраняют данные в поле (402А) данных издателя, идентифицирующем издателя, сохраняют данные в поле (402С) данных запросчика, идентифицирующем запросчика, сохраняют данные в поле (402В) данных контейнера, идентифицирующем контейнер (300), и сохраняют значение в поле (402D) ранга на основе способа, которым поле (302) данных членства идентифицирует запросчика.
6. Способ по п.5, в котором таблица (400) дополнительно содержит поле (402Е) данных второго ранга для хранения данных, указывающих длину совпадения между доменом запросчика и доменом, идентифицированным в поле (302) данных членства контейнера (300).
7. Считываемый компьютером носитель, имеющий исполняемые компьютером команды, хранимые на нем, которые при исполнении компьютером предписывают компьютеру
принимать запрос базы данных;
в качестве реакции на этот запрос, вычислять ответ на данный запрос из ранее сохраненного набора возможных ответов на данный запрос, причем этот ранее сохраненный набор возможных ответов на данный запрос создан посредством преобразования одного или нескольких процедурных вычислений в одну или несколько операций базы данных и выполнения этих операций в отношении базы данных (108) для генерации этого набора возможных результатов для данного запроса; и
обеспечивать этот ответ в качестве реакции на упомянутый запрос базы данных.
8. Считываемый компьютером носитель по п.7, в котором запрос базы данных содержит запрос на публикацию присутствия (304), хранимую в базе данных (108).
9. Считываемый компьютером носитель по п.8, в котором набор возможных ответов содержит таблицу (400), включающую в себя одну или несколько строк, причем каждая строка включает в себя данные, идентифицирующие запросчика публикации присутствия, издателя публикации присутствия, контейнерную структуру данных, которая включает в себя одну или несколько публикаций присутствия, и первый ранг.
10. Считываемый компьютером носитель по п.9, в котором запросчик может быть авторизован издателем для приема запрашиваемой публикации на основе конкретных идентификационных данных запросчика или домена, с которым связан этот запросчик.
11. Считываемый компьютером носитель по п.10, в котором таблица (400) дополнительно содержит данные, идентифицирующие второй ранг, причем второй ранг указывает длину совпадения между доменом, с которым связан запросчик, и доменом, определенным издателем.
12. Считываемый компьютером носитель по п.11, в котором контейнерная структура (300) данных содержит поле (302) данных членства для хранения данных, идентифицирующих одного или нескольких запросчиков, авторизованных для приема публикаций присутствия, идентифицированных контейнером, и поле (304) данных публикаций для хранения одной или нескольких публикаций присутствия, которые члены, идентифицированные в поле данных членства, авторизованы принимать.
13. Считываемый компьютером носитель по п.12, в котором преобразование одного или нескольких процедурных вычислений в одну или несколько операций базы данных и выполнение этих операций в отношении базы данных (108) для генерации набора возможных результатов для упомянутого запроса предусматривает
создание новой строки в таблице (400) для каждого контейнера (300), поддерживаемого издателем, который идентифицирует запросчика в поле (302) данных членства, и сохранение данных в каждой новой строке, идентифицирующих издателя, запросчика, контейнер и ранг на основе способа, которым поле данных членства идентифицирует запросчика.
14. Способ ответа на запрос на публикацию присутствия, содержащий этапы, на которых
принимают запрос на публикацию присутствия от запросчика;
в качестве реакции на этот запрос, определяют, существует ли ранее вычисленный набор возможных ответов на данный запрос;
в качестве реакции на определение того, что ранее вычисленный набор возможных ответов существует, используют этот ранее вычисленный набор возможных ответов для генерации ответа на данный запрос на публикацию присутствия; и
в качестве реакции на определение того, что ранее вычисленный набор возможных ответов не существует, вычисляют такой набор возможных ответов и используют вычисленный набор возможных ответов для генерации ответа на упомянутый запрос на публикацию присутствия.
15. Способ по п.14, в котором набор возможных ответов содержит таблицу (400), включающую в себя одну или несколько строк, причем каждая строка имеет поле (402А) данных издателя для хранения данных, идентифицирующих издателя запрашиваемой публикации присутствия, поле (402С) данных запросчика для хранения данных, идентифицирующих запросчика публикации присутствия, поле (402В) данных контейнера для хранения данных, идентифицирующих контейнер, из которого запрос может быть удовлетворен, и поле (402D) данных ранга для хранения ранга.
16. Способ по п.15, в котором контейнер (300) содержит структуру данных, включающую в себя поле (302) данных членства для хранения данных, идентифицирующих одного или нескольких запросчиков, авторизованных для приема публикаций присутствия, содержащихся в поле данных публикаций этого контейнера, и поле (304) данных публикаций для хранения одной или нескольких публикаций присутствия, которые члены, идентифицированные в поле данных членства, авторизованы принимать.
17. Способ по п.16, в котором при вычислении набора возможных ответов
создают новую строку в таблице (400) для каждого контейнера (300), поддерживаемого издателем, который идентифицирует запросчика в поле (302) данных членства, и для каждой новой строки сохраняют данные в поле (402А) данных издателя, идентифицирующем издателя, сохраняют данные в поле (402С) данных запросчика, идентифицирующем запросчика, сохраняют данные в поле (402В) данных контейнера, идентифицирующем контейнер (300), и сохраняют значение в поле (402D) ранга на основе способа, которым поле (302) данных членства идентифицирует запросчика.
18. Способ по п.17, в котором при использовании ранее вычисленного набора возможных ответов для генерации ответа на упомянутый запрос на публикацию присутствия
выбирают одну или нескольких строк-кандидатов из таблицы (400), где строка-кандидат представляют собой строку в таблице (400), имеющую данные, хранимые в поле (402А) данных издателя, соответствующем издателю, и данные, хранимые в поле (402С) данных запросчика, соответствующем запросчику;
упорядочивают строки-кандидаты в убывающем порядке на основе содержащего поля (402D) данных ранга и выполняют последующее упорядочение строк-кандидатов в убывающем порядке на основе содержимого поля (402В) данных контейнера;
идентифицируют контейнер (300), из которого должен быть удовлетворен запрос, посредством нахождения строки из упорядоченных строк-кандидатов, которая имеет наивысший ранг и которая также включает в себя данные в поле (402В) данных контейнера, которые относятся к контейнеру (300), имеющему запрашиваемую публикацию, хранимую в его поле (304) данных публикаций; и
отвечают на упомянутый запрос с использованием значения запрашиваемой публикации, хранимой в поле (304) данных публикаций идентифицированного контейнера (300).
19. Способ по п.18, в котором таблица дополнительно содержит поле (402Е) данных второго ранга для хранения данных, указывающих длину совпадения между доменом запросчика и доменом, идентифицированном в поле (302) данных членства контейнера (300).
20. Считываемый компьютером носитель, имеющий исполняемые компьютером команды, хранимые на нем, которые при исполнении компьютером предписывают компьютеру выполнять способ по п.14.