Статья представляет собой расширенный текст доклада, подготовленного для конференции "Корпоративные базы данных-2006" (11-12 апреля 2006 г., Москва).
На собраниях, подобных Лоуэллскому, собираются представители различных школ и направлений в области управления данными. Поскольку отчеты этих собраний строятся на основе мнения большинства участников, они неизбежно носят очень компромиссный характер, определяя общие проблемы и задачи, но не концентрируясь на конкретных технологических решениях (хотя, как показано в [6], часто формулировки проблем связаны с уже имеющимися исследовательскими проектами). Затем уже более узкие группы авторов предлагают подходы к решению этих проблем и задач, основанные на более конкретных идеях и методах.
В этом отношении показательным является отчет Лагуна-Бич [1], в котором, в частности, на абстрактном уровне говорилось о необходимости внедрения в СУБД встроенных средств расширения возможностей систем для удовлетворения потребностей новых приложений. Среди авторов этого отчета, среди прочих, числятся Дэвид Девитт и Дэвид Майер, с одной стороны, и Филипп Бернштейн, Джим Грей, Брюс Линдсей, Лоуренс Роув и Майкл Стоунбрейкер, с другой стороны. В том же 1989 г. группа исследователей, в которую входили Девитт и Майер, опубликовала "Манифест систем объектно-ориентированных баз данных" [8], а годом позже другой группой, в которой активно участвовали Берштейн, Грей, Роув и Стоунбрейкер, был выпущен "Манифест систем баз данных третьего поколения" [9]. (Подробный обзор и сравнительный анализ этих манифестов, а также "ортогонального" им Третьего манифеста Кристофера Дейта и Хью Дарвена [10] можно найти в [11].) В этих, уже практически бескомпромиссных документах предлагались практические шаги для решения общих проблем на основе сравнительно конкретных технологий. Следует заметить, что первые два манифеста оказали существенное воздействие на современный облик технологии баз данных, а третий манифест, с моей точки, зрения весьма способствует пониманию достоинств и недостатков этой технологии.
Асиломарский отчет не привел к появлению подобных документов, хотя под его влиянием был выполнен ряд известных исследовательских работ, облегчающих доступ к данным в Web. До конца 2005 г. не были заметны какие-либо попытки обобщенной конкретизации* подходов и к решению проблем, перечисленных в Лоуэллском отчете. Однако в декабрьском номере журнала ACM SIGMOD Record за 2005 г. появились две статьи, обладающими, на мой взгляд, некоторыми свойствами манифестов. В [12] Майкл Стоунбрейкер и Стенли Здоник формируют технологический облик типичной системы управления потоковыми данными. В [13] Майкл Франклин и Дэвид Майер предлагают концепцию пространства данных как обобщение систем баз данных, систем интеграции данных, файловых систем и т.д. Формулируются конкретные требования и задачи, предлагаются конкретные пути к решению этих задач.
Обе статьи явно или неявно опирается на идеи Лоуэллского отчета. В каждой из них предлагается некоторая стратегическая линия развития технологии управления данными. Эти предложения носят не столь глобальный характер, как предложения трех классических манифестов конца прошлого века. Тем не менее, обе статьи представляются мне как предшественники будущих манифестов, которые будут определять развитие технологии управления данными.
Для удобства чтения в следующем разделе я приведу краткую классификацию основных положений Лоуэллского отчета, а в последующих разделах проанализирую в контексте этой классификации каждую из двух статей.
По здравому мнению участников собрания в Лоуэлле, область управления данными должна способствовать решению "сверхзадач", выдвигаемых в других областях человеческой деятельности, которые ориентируются на достижение результатов, непосредственно влияющих на жизнь людей. Сама же область управления данными должна способствовать развитию новой инфраструктуры управления данными, облегчающих решение проблем в различных прикладных областях. В Лоуэллском отчете перечисляется ряд компонентов этой инфраструктуры, для создания которых требуются дополнительные исследования и опытные разработки, но порядок их перечисления достаточно произволен, а в обоснованиях их потребности и предложениях возможных подходов к реализации имеется ряд повторов. Попытаемся ввести некоторую более строгую структуризацию и классификацию предложений Лоуэллского отчета.
Как это вообще свойственно Стоунбрейкеру (вспомним основанные им компании Ingres Corporation (1982 г., на основе университетского проекта Ingres) и Illustra (1992 г, на основе университетского проекта Postgres)), в 2003 г. он основал компанию StreamBase Systems для коммерциализации технологии, разработанной в проектах Aurora и Medusa. В настоящее время я не знаю других компаний, которые бы полностью специализировались на средствах управления потоками данных.
Хотя в исследовательском сообществе известно несколько успешно реализованных проектов в области управления потоковыми данными (см., например, [18]), Стоунбрейкер и Здоник являются наиболее авторитетными представителями этой части сообщества баз данных, наиболее активными и последовательными. Поэтому я имею основания считать их публикацию [12] "предманифестом" систем обработки потоковых данных. (В действительности, на манифест систем баз данных третьего поколения [9] также оказала сильнейшее влияние система Postgres Майкла Стоунбрейкера.)
Система должна быть в состоянии выполнять обработку сообщений, не прибегая к дорогостоящим операциям с внешней памятью. Операции с внешней памятью существенно увеличивают задержки процесса (например, для фиксации записи в базе данных требуется запись на диск записи журнала). Существует дополнительная проблема задержек в пассивных системах, которые до начала обработки ждут, пока приложение скажет им, что нужно делать. Для пассивных систем требуется, чтобы приложения непрерывно опрашивали интересующие их условия.
При наличии миллионов действующих серверов реляционных баз данных, поддерживающих SQL, имеет смысл взять на вооружение знакомые модель запросов и операции языка SQL и просто расширить их для выполнения запросов над непрерывными потоками данных. StreamSQL должен расширять семантику стандартного SQL путем добавления к нему мощных оконных конструкций и потоковых операций. Требуются новые, ориентированные на потоки операции, не представленные в стандартном SQL. Набор операций должен быть расширяемым, чтобы разработчики могли легко получить от системы новые функции.
В системах реального времени, в которых данные никогда не сохраняются, инфраструктура должна обеспечить управление данными, которые запаздывают или задерживаются, отсутствуют или поступают не в ожидаемом порядке. Любому вычислению, которое может блокироваться, должно быть разрешено устанавливать контрольный интервал времени, после истечения которого вычисление будет возобновлено над частично доступными данными. Для работы с данными, нарушающими порядок, должен обеспечиваться механизм, позволяющий окнам оставаться открытыми в течение дополнительного периода времени.
Недостаточно просто упорядочивать сообщения до их ввода в систему - корректность можно гарантировать только в том случае, когда во всем обрабатывающем конвейере системы поддерживается упорядоченная по времени, детерминированная обработка. Возможность производить предсказуемые результаты также важна и с точки зрения отказоустойчивости и восстановления, поскольку воспроизведение и повторная обработка того же входного потока должны приводить к тем же результатам независимо от времени выполнения.
Для многих приложений потоковой обработки распространенной задачей является сравнение "настоящего" с "прошлым". Поэтому система потоковой обработки должна также обеспечивать тщательное управление сохраненным состоянием. Для приложений потоковой обработки данных, которые должны гарантировать небольшую задержку, использование подключения к клиент-серверной базе данных будет увеличивать задержку и поэтому такой способ непригоден для эффективного долговременного хранения данных и доступа к ним. Следовательно, состояние должно сохраняться в адресном пространстве той же операционной системы, в среде которой работает приложение, с использованием встроенной системы баз данных. Областью видимости команды StreamSQL должен являться либо реальный поток, либо таблица, сохраняемая во встроенной системе баз данных.
Для сохранения целостности критически важной информации и во избежание нарушений обработки в реальном времени система потоковой обработки должна основываться на решении с высоким уровнем доступности. Если происходит сбой, приложение должно переключиться на резервную аппаратуру и продолжить выполнение. Перезапуск операционной системы и восстановление приложения по журналу порождают слишком большие накладные расходы и поэтому неприемлемы для обработки в реальном времени.
Должна иметься возможность расщепить приложение для выполнения на нескольких машинах для его масштабирования без потребности переписывания низкоуровневого кода его разработчиком. Для использования преимуществ современных многопотоковых архитектур процессоров в системах потоковой обработки должно также поддерживаться многопотоковое функционирование. Должна обеспечиваться автоматическая и прозрачная балансировка нагрузки результирующего приложения между доступными машинами, чтобы это приложение не тормозилось какой-либо одной перегруженной машиной.
Важной проблемой является минимизация числа "пересечений границ" путем интеграции всех важнейших функций (например, обработки и сохранения) в одном системном процессе. Однако только этого недостаточно; все компоненты системы должны разрабатываться с учетом требования высокой производительности.
Например, требование iii (устойчивость к "дефектам" потоков) находится в явном родстве с п. 2.2.1 (в моей нумерации) Лоуэллского отчета (использование неточных данных) в контексте потоковых данных. В данном случае требуется, чтобы система выдавала предельно точные ответы на запросы при различных нарушениях потоков данных.
Требование v (бесшовная интеграция потоковых и хранимых данных) соответствует положению 2.1.1 (интеграция текста, данных, кода и потоков). Причем в данном случае соответствие является предельно точным: в модели системы потоковой обработки Стоунбрейкера и Здоника и потоки, и хранимые данные являются сущностями "первого класса"; ни одна из них не реализуется на основе другой.
Наконец, требование viii (высоко оптимизированный процессор) является уточнением п. 2.3.2 (оптимизация запросов). В случае потоковых систем, поддерживающих ответы на запросы в реальном времени, оптимизация запросов является одновременно критическим фактором приемлемости системы и новой, интересной и сложной задачей.
Майкл Франклин получил степень PhD в Висконсинском университете в 1993 г., с 1999 г. работает в университете Беркли, с 2004 г. - полный профессор. Один из наиболее активных исследователей среднего поколения в области баз данных. Алон Хэлеви получил степень PhD в Стэнфордском университете в 1993 г. С 1998 г. работает в University of Washington. В настоящее время профессор этого университета.
Похоже, что основным подвижником идеи пространств данных являлся именно Хэлеви. 2 сентября 2005 г. он вместе с Майклом Франклином выступил на семинаре группы баз данных университета Беркли. Интересно, что в опубликованной в Internet презентации этого доклада [21] соавторами числятся Дэвид Майер и Дженнифер Видем (профессор Стэндфордского университета, автор многочисленных статей и книг, в том числе, соавтор (вместе с Джеффри Ульманом и Гектором Гарсиа-Молина) популярной книги [22]). В октябре 2005 г. появилась самостоятельная публикация Хэлеви [23] и, наконец, в декабре вышла статья [13].
К настоящему времени мне удалось обнаружить два ведущихся проекта, ориентированных на поддержку пространств индивидуальных данных. Первый из них (проект SEMEX - SEMantic EXplorer, выполняется в University of Washington под руководством Хэлеви. Второй, называемый iMeMex, выполняется с 1 апреля 2006 г. под руководством Йенса-Петера Диттриха в ETH Zurich. Может показаться интересной статья [24], написанная Дитрихом совместно с Дональдом Коссманом специально к началу проекта.
Таким образом, вокруг идей, выказанных в [13] сплачивается значительная часть сообщества баз данных, что также дает возможность рассматривать этот документ как предвестник манифеста.
Рис. 1. Пространство решений управления данными
Пространства данных не являются подходом к интеграции данных; скорее, это подход сосуществования данных. Цель поддержки пространства данных состоит в обеспечении базового набора функций надо всеми источниками данных, а не в их интеграции. Например, DSSP (DataSpace Support Platform) может обеспечить надо всеми своими источниками данных поиск по ключевым словам, аналогично тому, что обеспечивают существующие поисковые системы в десктопах. При потребности в более сложных операциях, таких как запросы в реляционном стиле, анализ данных (data mining) или мониторинг каких-либо источников, можно приложить дополнительные усилия к более тесной интеграции этих источников в инкрементной манере.
Аналогичная гибкость имеется и в измерении административной близости. Если желательно наличие административной автономии, то DSSP не сможет гарантировать согласованность, устойчивость результатов операций обновления и т.д. Для удовлетворения потребности в более строгих гарантиях нужны дополнительные усилия для достижения соглашений между владельцами источников данных и открытия некоторых интерфейсов (например, для протоколов фиксации транзакций).
На основе этих рассуждений авторы делают вывод, что отличительными свойствами систем пространств данных является следующее:
Участниками пространства данных являются индивидуальные источники данных: они могут быть реляционными базами данных, репозиториями XML, текстовыми базами данных, Web-сервисами и пакетами программного обеспечения. Они могут храниться или быть потоками данных (локально управляемыми системами потоков данных), или даже сенсорными установками. Некоторые участники могут поддерживать выразительные языки запросов, а другие - быть неинтеллектуальными и поддерживающими лишь ограниченные интерфейсы для формулировки запросов (например, структурированные файлы, Web-сервисы или другие софтверные пакеты). Участники могут быть очень структурированными (например, реляционными базами данных), полуструктурированными (XML, коллекции кода) или полностью неструктурированными. Некоторые источники могут поддерживать традиционные операции обновления, другие - допускать только добавления (в целях архивации), а третьи могут быть полностью неизменчивыми.
В пространстве данных должна иметься возможность моделирования любого вида связи между двумя (или несколькими) участниками. Нужно уметь представлять в виде связей традиционные ситуации, когда один участник является представлением или репликой другого участника, или когда схемы двух участников отображаются одна на другую. Однако желательно уметь моделировать намного более широкий набор связей, например, что источник A был вручную произведен из источников B и C, или что источники E и F создавались независимо, но отражают одну и ту же физическую систему. Связи могут быть даже менее конкретными, например, отражающими ту ситуацию, что два набора данных образованы из одного источника данных в одно и то же время. Пространства данных могут вкладываться одно в другое, и они могут перекрываться. Поэтому в пространстве данных должны содержаться правила разграничения доступа. Вообще говоря, в некоторых случаях границы между пространствами данных могут быть плавающими, но в большинстве случаев эти границы будут определяться естественным образом.
Вместе с неоднородностью содержимого пространства данных возникает потребность в поддержке нескольких стилей доступа к данным. По всей видимости, DSSP будут допускать много разных режимов взаимодействия, и требуется предельная общность, чтобы допустить применение различных служб к различным типам содержимого.
Базовой службой пространства данных является каталогизация элементов данных от участников. Каталог - это реестр ресурсов данных, содержащий наиболее общую информацию о каждом из них: источник, имя, местоположение в источнике, размер, дата создания и владелец и т.д. Каталог является инфраструктурой для большинства других сервисов пространства данных, но он также может поддерживать базовый пользовательский интерфейс просмотра пространства данных.
Двумя основными службами, которые будут поддерживаться в DSSP, являются поиск и запрашивание данных. Поиск является основным механизмом работы конечных пользователей с большими коллекциями незнакомых данных. Поиск менее требователен, чем запрашивание данных, поскольку он основан на сходстве, предоставлении конечным пользователям ранжированных результатов и поддержке интерактивного совершенствования. DSSP должны позволять пользователям задавать поисковый запрос и итерационно его совершенствовать, если это уместно, до вида запроса в стиле базы данных. Ключевой принцип пространств данных состоит в том, что поиск должен быть применим ко всему содержимому пространства данных, независимо от форматов данных. Универсальные возможности поиска и запросов должны распространяться на метаданные. У пользователей должны иметься возможности нахождения требуемых источников данных и получения информации об их сложности, корректности и актуальности.
DSSP будут также поддерживать и обновления данных. Очевидно, что эффекты обновлений будут определяться уровнем изменчивости соответствующих источников данных. Одной из основных исследовательских проблем пространств данных является разработка и обеспечение гарантированной семантики обновлений в разнородной среде с высоким уровнем автономности компонентов.
Другие ключевые сервисы DSSP включают мониторинг, обнаружение событий и поддержку сложных потоков работ. Например, мы можем захотеть произвести вычисление при поступлении новой части данных и распространить результаты этого вычисления в набор приемных источников данных. Аналогично, в DSSP должны поддерживаться различные формы анализа данных.
Не каждый участник пространства данных будет обязательно обеспечивать интерфейсы, требуемые для поддержки всех функций DSSP. Поэтому появится потребность в различных расширениях источников данных. Источник не обязательно будет хранить свои собственные метаданные, поэтому для таких источников нам потребуется независимый репозиторий метаданных. Может потребоваться облечение информации во внешнюю форму на основе источника или его контекста. Для источников, в которых отсутствует собственная служба нотификации, может потребоваться поддержка соответствующего мониторинга.
Каталог и просмотр. Каталог содержит информацию обо всех участниках пространства данных и о связях между ними. Для каждого участника каталог должен включать схему источника, статистические данные, скорость изменения, точность, возможности ответов на запросы, информацию о владельце и данные о политике доступа и поддержке конфиденциальности. Связи могут сохраняться в виде преобразований запросов, графов зависимости, а иногда даже в виде текстовых описаний.
При наличии возможности в каталоге должен содержаться базовый реестр элементов данных в каждом участнике: идентификатор, тип, дата создания и т.д. Тогда в нем можно поддерживать базовую возможность просмотра объединенного реестра всех участников. Интерфейс просмотра можно использовать для ответов на вопросы пользователей о наличии или отсутствии элемента данных или определения того, какие участники хранят документы данного типа.
Поверх каталога DSSP должна поддерживаться среда управления моделями, позволяющая создавать новые связи и манипулировать существующими связями (например, объединять или инвертировать отображения, сливать схемы и создавать единые представления нескольких источников).
Поиск и запрашивание. У пользователей должна иметься возможность запроса любого элемента данных, независимо от его формата и модели данных. В начале работы с пространством данным DSSP должна поддерживать для каждого участника запросы по ключевым словам. По мере получения большей информации об участнике, DSSP должна постепенно начать поддерживать более сложные запросы. Должно поддерживаться плавное переключение между запросами по ключевым словам, просмотром и структурированными запросами.
Структурированные запросы могут поддерживаться на основе общих интерфейсов (схем-посредников), обеспечивающих доступ к нескольким источникам, или же они могут адресоваться к конкретному источнику данных (с использованием его собственной схемы) с намерением получения ответов и от других источников. Запросы могут формулироваться на разнообразных языках (и на основе разных моделей данных), и они должны, по возможности, наилучшим образом переформулироваться на другие модели данных и схемы, обеспечивая точные и приближенные семантические отображения.
В системе должен поддерживаться широкий спектр запросов к метаданным. Должны обеспечиваться возможности получения данных об источнике ответа или о том, как этот ответ был выведен или вычислен; обеспечения временных меток на элементах данных, которые участвовали в вычислении ответа; указания того, какие другие элементы данных в пространстве данных могут зависеть от заданного элемента данных; запрашивания источников и уровня недостоверности ответа. DSSP должны также поддерживать запросы на установление местоположения данных, ответами на которые являются источники данных, а не конкретные элементы данных. При наличии XML-документа должна иметься возможность запросить XML-документы с похожей структурой и получить соответствующие XML-преобразования. При наличии фрагмента схемы или описания Web-сервиса должно быть возможно найти в пространстве данных похожие фрагменты.
Все перечисленные службы поиска и запрашивания данных должны также поддерживаться в инкрементной форме, применимой в реальном времени к потоковым или изменяемым источникам данных. Мониторинг может быть организован в виде процесса без состояния, в котором элементы данных рассматриваются по отдельности, или в виде процесса с состоянием, в котором анализируется несколько элементов данных. Служба инкрементного мониторинга может обеспечить дополнительные функции обнаружения сложных событий и генерации сигналов.
Локальное хранение и индексирование. В DSSP должен иметься компонент хранения и индексирования, обеспечивающий следующие возможности: создание запрашиваемых ассоциаций между объектами данных от разных участников; совершенствование доступа к источникам с ограниченными собственными средствами доступа; обеспечение возможности выполнения некоторых запросов без доступа к реальному источнику данных; поддержку высокого уровня доступности и восстановления.
Средства индексирования должны обладать высоким уровнем адаптивности к неоднородным средам. В качестве входных данных должно приниматься любое элементарное значение, встречающееся в пространстве данных, и должны выдаваться координаты всех объектов данных, в которых имеется такое значение, и роли каждого его вхождения. Важными аспектами индекса является то, что, во-первых, он определяет информацию для всех участников, когда некоторые значения входят в несколько источников данных. Во-вторых, индекс должен справляться с разнообразием ссылок на объекты реального мира.
Может потребоваться кэшировать некоторые фрагменты пространства данных (вертикальные или горизонтальные), чтобы строить на них дополнительные индексы для поддержки более эффективного доступа; повышать уровень доступности данных, хранимых в ненадежных участниках и уменьшать нагрузку на участников.
Компонент раскрытия. Назначение этого компонента состоит в обнаружении участников в пространстве данных, создании связей между ними и оказании помощи администраторам при совершенствовании и усилении этих связей. Обнаружение участников может происходить в нескольких формах, например, в форме обхода справочной структуры, начиная от корня, или форме поиска координат всех баз данных в корпоративной сети. Компонент должен выполнять начальную классификацию участников на основе их типов и содержимого.
После раскрытия участников система должна обеспечить среду для полуавтоматического создания связей между участниками и совершенствования и поддержки существующих связей. Этот процесс включает нахождение пар участников, которые, вероятно, должны быть связаны один с другим, и предложение связей, которые потом проверяются и уточняются человеком. Компонент раскрытия должен осуществлять мониторинг содержимого пространства данных, чтобы можно было со временем предложить новые связи.
Компонент расширения источников. У некоторых участников могут отсутствовать существенные функции управления данными. У DSSP должны иметься средства наполнения такого участника дополнительными возможностями, такими как схема, каталог, поиск по ключевым словами и мониторинг обновлений. Может оказаться необходимо обеспечивать эти расширения "по месту", поскольку могут иметься существующие приложения или потоки данных, рассчитанные на имеющиеся форматы или справочные структуры.
Этот компонент также должен поддерживать информацию с "добавленной стоимостью", сохраняемую DSSP, но не присутствующую в исходных участниках. Такая информация может включать "лексические переходы" между словарями, таблицы трансляции закодированных значений, классификаторы и рейтинги документов, а также аннотации или ссылки, привязанные к наборам данных или содержимому документов. Должна иметься возможность распространения такой информации на несколько участников.
Хотя DSSP с полным набором служб должны содержать все эти компоненты, многие из них могли бы использоваться независимо для достижения некоторого компромисса между расходами и получаемыми преимуществами. Важно, что DSSP допускает инкрементное инвестирование, а не представляет собой только монолитное решение.
Моделирование данных и базовые возможности запросов. В отличие от СУБД, в ядре DSSP требуется поддержка нескольких моделей данных, чтобы естественным образом поддерживалось как можно больше типов участников. Модели данных, поддерживаемые DSSP, будут образовывать иерархию в соответствии с их выразительной мощностью. Каждый участник пространства данных поддерживает некоторую модель данных и некоторый язык запросов, соответствующий этой модели.
На самом верхнем уровне иерархии находятся коллекции именованных ресурсов, возможно, с базовыми свойствами - размер, дата создания и тип. "Запрос" к такой модели данных соответствует тому, что обычно поддерживается в файловых системах по отношению к их директориям: сопоставление имен, поиск в диапазоне дат, сортировка по размеру файла и т.д. На следующем уровне DSSP должны поддерживать модель данных мультимножества слов, обеспечивающую возможность формулировки запросов по ключевым словам для любого участника пространства данных. Ниже уровня модели мультимножества слов в иерархии может располагаться модель полуструктурированных данных, основанная на помеченных графах. Если участник поддерживает некоторую структуру, то должна иметься возможность формулировки простых путевых запросов или запросов по включению, а может быть, и более сложных запросов, основанных на модели полуструктурированных данных. В иерархии будут присутствовать и другие модели данных: реляционная модель, XML со схемой, RDF, OWL (Web Ontology Language).
Проблема состоит в переформулировании запроса, представленного на сложном языке, для источника, который поддерживает более слабую модель данных, и наоборот, переформулировании запроса, представленного на простом языке, для источника, который поддерживает более выразительные модель данных и язык запросов (например, запрос по ключевым словам к реляционной базе данных).
Более широкое представление запрашивания. Ключевой проблемой является обеспечение интуитивных средств поиска и запрашивания всего, что угодно. С точки зрения пользователя различие между поиском и запрашиванием должно исчезнуть. Пользователи должны начинать с простейших способов поиска, а затем, по мере потребности, направляться к более специальным интерфейсам поиска и запросов. На основе имеющегося запроса система должна обеспечивать для пользователя полезные советы относительно других тем, которые могут быть ему интересны, и возможностей соответствующего поиска. Нужно также разработать интуитивную визуализацию результатов, направляющую пользователей в правильном направлении.
Раскрытие пространства данных. Распространенной проблемой сегодняшних крупных предприятий состоит в том, что они даже не знают, какие источники данных имеются в организации. Окончательной целью раскрытия пространства данных является обнаружение участников пространства данных, создание связей между ними и повышение точности существующих связей между участниками. Исследовательской проблемой является создание системы раскрытия пространства данных, обеспечивающей обнаружение участников в организации; кластеризацию участников и нахождения связей между ними в полуавтоматическом режиме; создание более точных связей между участниками (в пределе, отображений схем).
Повторное использование человеческого труда. Важно, чтобы DSSP знали, как повторно использовать работу, проделанную людьми, обобщать ее результаты и повторно их использовать для решения других задач. Задача состоит в том, чтобы предыдущая работа запоминалась в системе, и ее результаты могли использоваться при попытках создания дополнительных связей между участниками пространства данных или ответов на запросы к этому пространству. По мнению авторов, при решении этой проблемы будут полезными методы машинного обучения (Machine Learning).
Хранение и индексирование пространств данных. Ключевые проблемы, возникающие при создании компонента DSSP локального хранения и индексации, связаны с неоднородностью индекса. Индекс должен единообразно индексировать все возможные элементы данных, являются ли они словами, встречающимися в тексте, значениями, встречающимися в базе данных, или элементом схемы одного из источников. Кроме того, в индексе должна предусматриваться возможность наличия нескольких способов ссылки на один и тот же объект реального мира. Сложно будет поддерживать индекс в актуальном состоянии, особенно для участников, не имеющих механизмов извещения об обновлениях. Кроме того, несколько интересных проблем автоматической настройки следуют из потребности решать, какие части пространства данных следует кэшировать в локальном хранилище, и какие индексы следует создавать и поддерживать
Гарантии корректности. Исследовательская проблема состоит в определении реализуемых, практичных и осмысленных уровней гарантий обслуживания, которые могут быть обеспечены в области пространств данных. Для решения этой проблемы потребуется переосмыслить многие фундаментальные принципы управления данными и ввести новые абстракции. Также потребуются инструментальные средства, помогающие разработчикам и пользователям понимать неустранимые компромиссы в терминах качества, эффективности и контроля.
Теоретические основы. Имеется несколько вопросов относительно теоретических обоснований пространств данных. Требуется формальное понимание различных моделей данных, связей и ответов на запросы в пространстве данных. Требует изучения выразительная мощность языка запросов над множеством участников с использованием определенных свойств связей, специфицированных между ними: Какие запросы могут быть выражены над пространством данных? Как распознать семантически эквивалентные, но синтаксически различные способы ответов на запросы?
Пункт 2.1.1 (интеграция текста, данных, кода и потоков) в [13] развивается и обогащается на основе идеи иерархии моделей данных. В данном случае говорится не об однородной интеграции в пределах одной базы данных, а об организации однородного доступа к разнородным источникам данных. Но цель преследуется та же, и мне кажется заманчивой перенести идею иерархии моделей на локальную СУБД.
Пункт 2.1.2 (слияние информации) в контексте [13] получает оригинальную и, как мне кажется, предельно ясную трактовку. С использованием предусматриваемых в [13] компонентов DSSP и зависящего от конкретной ситуации объема человеческого труда можно обеспечить интеграцию любого числа источников данных любой природы с требуемым уровнем качества (в зависимости, конечно, от качества исходных данных в источниках). Возможность внешнего индексирования и кэширования позволяет добиться компромисса между виртуальной интеграцией данных и построением физически отдельного хранилища данных. Весь вопрос в том, сколько это будет стоить.
Что касается пункта 2.2.1 (неточные данные), то при работе с пространствами данных придется сталкиваться и неполнотой данных (вследствие, например, недоступности некоторых источников или устареванием данных в кэше), и с неточностью запросов (в связи, например, с возможностью сочетания поисковых и структурированных запросов). И снова авторы предлагают прагматичный подход, позволяющий пользователям итеративным образом совершенствовать результаты своих запросов путем сочетания различных стилей доступа к данным.
Пункт 2.3.1 (самоадаптация) трансформируется в [13] в "повторное использование человеческого труда". И снова это кажется очень здравой идеей, поскольку первичным источником знаний, которыми должна руководствоваться программная система, является человек.
Наконец, целый ряд идей [13] можно соотнести с пунктом 2.3.4 (пользовательские интерфейсы). Здесь и комбинирование средств контекстного поиска и структурированных запросов, и итерационное совершенствование формы запроса под руководством системы, и т.д.
Для реального развития области управления данными необходимы работы, выходящие за пределы этой категории, и их появление стимулируется отчетами регулярных собраний ведущих исследователей. Одним из результатов собрания в Лагуна-Бич [1] стало появление Манифеста систем объектно-ориентированных баз данных [8] и Манифеста систем баз данных третьего поколения [9], за которыми последовал Третий манифест Криса Дейта и Хью Дарвена [10]. Эти документы во многом определили развитие технологии баз данных в конце прошлого столетия.
Публикации [12] и [13], последовавшие за официальным опубликованием Лоуэллского отчета [7], кажутся мне продолжением этой традиции в новом столетии. Отличаясь по духу и форме от классических манифестов, эти работы обеспечивают основу нового этапа развития технологии управления данными.
| [1] | Philip A. Bernstein, Umeshwar Dayal, David J. DeWitt, Dieter Gawlick, Jim Gray, Matthias Jarke, Bruce G. Lindsay, Pete C. Lockemann, David Maier, Erich J. Neuhold, Andreas Reuter, Lawrence A. Rowe, Hans-Jörg Schek, Joachim W. Schmidt, Michael Schrefl, and Michael Stonebraker. Future Directions in DBMS Research - The Laguna Beach Participants. SIGMOD Record 18(1): 17-26 (1989) |
| [2] | Philip A. Bernstein, Michael L. Brodie, Stefano Ceri, David J. DeWitt, Michael J. Franklin, Hector Garcia-Molina, Jim Gray, Gerald Held, Joseph M. Hellerstein, H. V. Jagadish, Michael Lesk, David Maier, Jeffrey F. Naughton, Hamid Pirahesh, Michael Stonebraker, and Jeffrey D. Ullman. The Asilomar Report on Database Research. SIGMOD Record 27(4): 74-80 (1998). |
| [3] | Сергей Кузнецов. Направления исследований в области баз данных: десять лет спустя. Открытые системы, N 1, 1999 |
| [4] | The Lowell Database Research Self-Assessment Meeting. |
| [5] | Jim Gray, Hans Schek, Michael Stonebraker, Jeff Ullman. The Lowell Report. Proceedings of the 2003 ACM SIGMOD International Conference on Management Of Data. http://www.sigmod.org/sigmod03/eproceedings/papers/panel2.pdf |
| [6] | Сергей Кузнецов. Крупные проблемы и текущие задачи исследований в области баз данных. |
| [7] | Serge Abiteboul, Rakesh Agrawal, Phil Bernstein, Mike Carey, Stefano Ceri, Bruce Croft, David DeWitt, Mike Franklin, Hector Garcia Molina, Dieter Gawlick, Jim Gray, Laura Haas, Alon Halevy, Joe Hellerstein, Yannis Ioannidis, Martin Kersten, Michael Pazzani, Mike Lesk, David Maier, Jeff Naughton, Hans Schek, Timos Sellis, Avi Silberschatz, Mike Stonebraker, Rick Snodgrass, Jeff Ullman, Gerhard Weikum, Jennifer Widom, and Stan Zdonik. The Lowell Database Research Self-Assessment. Commun. ACM, 48(5):111-118, 2005. |
| [8] | Malcolm Atkinson, Francois Bancilhon, David DeWitt, Klaus Dittrich, David Maier, and Stanley Zdonik: "The Object-Oriented Database System Manifesto", Proc. 1st International Conference on Deductive and Object-Oriented Databases, Kyoto, Japan (1989). New York, N.Y.: Elsevier Science (1990), http://www.cl.cam.ac.uk/Teaching/2003/Databases/oo-manifesto.pdf. (Имеется русский перевод: М. Аткинсон и др. "Манифест систем объектно-ориентированных баз данных", СУБД, No. 4, 1995.) |
| [9] | M. Stonebraker, L. Rowe, B. Lindsay, J. Gray, M. Carey, M. Brodie, Ph. Bernstein, D. Beech. "Third-Generation Data Base System Manifesto" Proc. IFIP WG 2.6 Conf. on Object-Oriented Databases, July 1990, ACM SIGMOD Record 19, No. 3 (September 1990). http://www.cl.cam.ac.uk/Teaching/2003/DBaseThy/or-manifesto.pdf. (Имеется русский перевод: Стоунбрейкер М. и др. "Системы баз данных третьего поколения: Манифест", СУБД, No. 2, 1996) |
| [10] | Hugh Darwen and C. J. Date: The Third Manifesto. ACM SIGMOD Record 24, No. 1 (March 1995), http://www.sigmod.org/sigmod/record/issues/9503/manifesto.ps. (Имеется русский перевод: Х. Дарвин, К. Дейт. "Третий манифест", СУБД, No. 1, 1996) |
| [11] | Сергей Кузнецов. Три манифеста баз данных: ретроспектива и перспективы. Базы данных и информационные технологии XXI века. Материалы международной научной конференции. Москва, 29-30 сентября 2003 г. Москва, РГГУ, 2004, стр. 52-229. |
| [12] | M. Stonebraker, U. Cetintemel, and S. Zdonik: The 8 Requirements of Real-Time Stream Processing. ACM SIGMOD Record 34, No. 4 (December 2006), http://www.sigmod.org/sigmod/record/issues/0512/p42-article-stonebraker.pdf. (Имеется русский перевод: Майкл Стоунбрейкер, Угур Гетинтемел, Стэн Здоник. "Восемь требований к системе потоковой обработки в реальном времени") |
| [13] | M. Franklin, A. Halevy and D. Maier: From Databases to Dataspaces: A New Abstraction for Information Management. ACM SIGMOD Record 34, No. 4 (December 2006), http://www.sigmod.org/sigmod/record/issues/0512/p27-article-franklin.pdf. (Имеется русский перевод: Майкл Франклин, Элон Хэлеви, Дэвид Майер. "От баз данных к пространствам данных:новая абстракция управления информацией".) |
| [14] | Samuel Madden, Michael J. Franklin, Joseph M. Hellerstein, Wei Hong. TinyDB: An Acquisitional Query Processing System for Sensor Networks. ACM TODS, 30, No. 1 (March 2005), http://db.csail.mit.edu/madden/html/tinydb_tods_final.pdf |
| [15] | C. Li, K. C.-C. Chang, I. F. Ilyas, and S. Song: RankSQL: Query Algebra and Optimization for Relational Top-k Queries. In Proceedings of the 2005 ACM SIGMOD Conference (SIGMOD 2005), Baltimore, Maryland, June 2005, http://eagle.cs.uiuc.edu/pubs/2005/ranksql-sigmod05-lcis-mar05.pdf |
| [16] | Ganesh Ramesh, William A. Maniatty. Mohammed J. Zaki. Indexing and Data Access Methods for Database Mining: 7th ACM SIGMOD Workshop on Research Issues in Data Mining and Knowledge Discovery (DMKD'2002), Madison, WI, June 2002, www.bell-labs.com/user/minos/DMKD02/Papers/ramesh.pdf |
| [17] | Surajit Chaudhuri, Vivek R. Narasayya, Sunita Sarawagi. Extracting predicates from mining models for efficient query evaluation. ACM Trans. Database Syst. 29(3): 508-544 (2004), http://hwanjoyu.org/teaching/dmml-s06/lecture-note/extracting-predicate.pdf |
| [18] | Special Issue on Data Stream Processing. Bulletin of the Technical Committee on Data Engineering, Vol. 26 No. 1 (March 2003) |
| [19] | David Maier. The Theory of Relational Databases. Computer Science Press, 1983. (Русский перевод: Мейер М. Теория реляционных баз данных. - М.: Мир, 1987.) |
| [20] | Stanley B. Zdonik, David Maier. Readings in Object-Oriented Database Systems, Morgan Kaufmann, 1990 |
| [21] | Mike Franklin, Alon Halevy, David Maier, Jennifer Widom. Dataspaces: A New Abstraction for Data Management. http://db.cs.berkeley.edu/dblunch-fa2005/alon.pdf |
| [22] | H. Garcia-Molina, J.D. Ullman, and J. Widom. Database Systems - The Complete Book. Prentice Hall, 2002. (Русский перевод: Гектор Гарсиа-Молина, Дженнифер Уидом, Джеффри Ульман. Системы баз данных. Полный курс. Изд. "Вильямс", 2003 г.) |
| [23] | Alon Halevy. Why Your Data Won't Mix. ACM Queue, 3, No. 8 (October 2005) |
| [24] | Donald Kossmann, Jens-Peter Dittrich. Personal Data Spaces. |