Программирование >>  Oracle 

1 ... 275 276 277 [ 278 ] 279 280 281 ... 469



interMedia

interMedia - это набор средств, тесно интегрированных в СУБД Oracle и обеспечивающих загрузку в базу данных и безопасное управление разнородной информацией (rich content), а также доступ к ней в приложениях. Подобная информация широко используется в большинстве современных Web-приложений и включает текст, данные, изображения, аудио- и видеофайлы.

Эта глава посвящена одному из моих любимых компонентов interMedia: interMedia Text. Я считаю, что технология interMedia Text обычно используется мало. Это происходит из-за недостаточного понимания ее сути и возможностей. Большинству специалистов известны только общие сведения о возможностях interMedia; еще они знают, как обеспечить поддержку работы с текстом для своих таблиц. При ближайшем же рассмотрении оказывается, что interMedia Text - замечательное и уникальное средство СУБД Oracle.

После краткого обзора истории interMedia мы:

обсудим использование компонента interMedia Text, в частности, для поиска текста, индексирования данных из множества различных источников и поиска в приложениях XML;

кратко рассмотрим, как реализованы соответствующие возможности в СУБД;

рассмотрим ряд особенностей компонента interMedia Text: индексирование, ис-

пользование оператора ABOUT и поиска в разделах.



1248 Глава 17

Краткий исторический экскурс

В ходе разработки большого проекта в 1992 году я впервые столкнулся с компонентом interMedia Text, или, как он тогда назывался, SQL*TextRetrieval. В это время одной из моих задач б1ла интеграция множества различных СУБД для создания большой распределенной сети баз данных. Одна из этих СУБД б]ла настолько закрытой , насколько это вообще возможно. Она не обеспечивала SQL-интерфейс для управления базой данных и доступа к текстовым данным. Мы должны б1ли создать для нее SQL-интерфейс.

Примерно в середине работы над проектом наш консультант по технологиям Oracle предоставил информацию о следующем поколении программного продукта Oracle SQL*TextRetrieval, которое должно было называться TextServer3. Одно из преимуществ TextServer3 состояло в высокой степени оптимизации для работы в клиент/серверной среде. Кроме того, в составе TextServer3 предлагался несколько заумный интерфейс на языке С, но теперь я, по крайней мере, мог хранить все текстовые данные в базе данных Oracle и иметь при этом возможность обращаться к другим данным в той же базе данных с помощью SQL-операторов. Мне это понравилось.

В 1996 году корпорация Oracle выпустила следующее поколение продукта TextServer под названием ConText Option, которое существенно отличалось от предыдущих версий. Не надо было больше хранить тексты и управлять ими через функциональный интерфейс на языке С или в среде Forms. Все можно было сделать в SQL. Компонент ConText Option предоставил множество PL/SQL-процедур и пакетов, позволяющих сохранять текст, создавать индексы, выполнять запросы, выполнять операции сопровождения для индексов и т.п., и для этого больше не требовалось писать ни одной строки кода на яз1ке С. Среди многих преимуществ ConText Option, по моему мнению, два были наиболее существенными. Первое, и самое главное - ConText Option перестал быть лишь слабо интегрированным, периферийным компонентом СУБД. Он поставлялся в составе СУБД Oracle7 как отдельно лицензируемый необязательный компонент СУБД и был интегрирован в Oracle7. Второе преимущество состояло в том, что компонент ConText Option не только выполнял стандартную процедуру поиска текста, но и поддерживал лингвистический анализ текстов и документов, что позволило разработчикам создавать системы, читающие между строк и реально учитывающие общий смысл текстов. Не забывайте также, что все это б1ло доступно через SQL, т.е. существенно упрощало использование этих развитых средств.

Одним из существенных усовершенствований СУБД Oracle8i является стройная система расширения возможностей. На основе поддерживаемых служб разработчики получили средства создания специализированных, сложных типов данных, а также возможность организовывать собственные базовые службы СУБД для поддержки этих типов данных. В рамках этой системы расширения можно создавать новые типы индексов, использовать специализированные методы сбора статистической информации, а также интегрировать в СУБД Oracle специализированные функции оценки стоимости и избирательности методов доступа. На основе этой информации оптимизатор запросов может разумно и эффективно обращаться к новым типам данных. Создававшая ConText Option команда разработчиков оценила значимость этой системы расширения и занялась со-



interMedia 1249

зданием современного продукта, interMedia Text, который впервые появился в составе Oracle8i в 1999 году.

Использование компонента interMedia Text

Компонент interMedia Text можно использовать в приложениях для многих целей, в том числе:

Поиск текста. Компонент interMedia Text позволяет быстро создать приложение, обеспечивающее эффективный поиск в текстовых данных.

Управление разнородн1ми документами. Компонент interMedia Text позволяет создать приложение, обеспечивающее поиск по документам в различных форматах, в том числе в текстовых файлах, файлах Microsoft Word, Lotus 1-2-3 и Microsoft Excel.

Индексирование текста из различн1х источников данн1х. Компонент interMedia

Text позволяет создать приложение, управляющее текстовыми данными не только в базе данных Oracle, но и в файловой системе и в сети Internet.

Создание приложений, читающих между строк . Помимо обеспечения эффективного поиска слов и фраз, компонент interMedia Text позволяет построить базу знаний с краткими резюме по каждому документу или проклассифицировать документы по описываемым в них понятиям, а не просто по содержащимся словам.

Поиск в приложениях XML. Компонент interMedia Text предоставляет разработчикам приложений все необходимые средства для создания систем, не только запрашивающих содержимое XML-документов, но и позволяющих выполнять запросы к определенной структуре в XML-документе.

Наличие всех этих функциональных возможностей в СУБД Oracle позволяет при работе с текстовыми данными в полном объеме использовать присущую ей масштабируемость и защиту данных.

Поиск текста

Разумеется, есть много способов поиска текста в базе данных Oracle и без использования компонента interMedia. В следующем примере мы создадим простую таблицу, вставим несколько строк, а затем воспользуемся стандартной функцией INSTR и оператором LIKE для поиска по текстовому столбцу таблицы:

SQL> create table mytext

2 (id number primary key,

3 thetext varchar2(400 0)

Table created.

SQL> insert into mytext

2 values(1, The headquarters of Oracle Corporation is 11



1 ... 275 276 277 [ 278 ] 279 280 281 ... 469

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика