Смекни!
smekni.com

Создание клиентских частей SQL БД под ОС Windows'95 и WindowsNT (стр. 7 из 27)

DB2 Parallel Edition создана на основе DB2 для RS/6000 и предназначена для поддержки приложений, требующих выполнения сложных запросов к большим массивам данных. DB2 Parallel Edition использует технологию Sharing Nothing, позволяющею почти линейно масштабировать систему до сотен и даже тысяч параллельно работающих узлов.

DB2 Parallel Edition разработана для работы на различной аппаратной архитектуре, на системах POWERparallel SP2, на комплексах HACMP/6000 и группе рабочих станций RISC/6000, связанных локальной сетью.

Данные любой базы данных распределяются между несколькими узлами DB2 Parallel Edition с использованием схемы хеширования. При этом алгоритмы распределения данных обеспечивают сбалансированность работы между узлами, позволяющую избежать перегрузки одних узлов и простоя других, и минимизирование передачи данных между узлам во время исполнения запросов, например.

IBM предлагает набор продуктов для репликации данных между серверами семейства DB2, а также между DB2 и базами данных других производителей. Решение от IBM DataReplication состоит из двух типов компонентов Capture и Apply для всех платформ, где функционирует DB2. Компоненты Capture предназначены для выборки из базы данных источника измененных данных и организации таблиц для промежуточного хранения и обработки реплицируемых данных. Компоненты Apply ответственны за передачу реплицируемых данных между серверами баз данных и добавление их в целевые таблицы.

Сложность построения хранилища данных, охватывающего все источники данных большой корпорации или предприятия, заставляет иногда предпочесть локальные и более дешевые варианты внедрения небольших информационных хранилищ для отдельного подразделения или конкретной предметной области. Продукт IBM Visual Warehouse использует в качестве основы административной базы данных для хранилища DB2 для OS/2 или Windows NT и серверы из семейства DB2 для самого хранилища.

Компоненты собственно Visual Warehouse обеспечивают процесс преобразования данных из баз данных DB2, Oracle, Informix, Sybase, ODBC - источников в информационные данные, и организуют семантически значимые представления (business view) для разнообразных аналитических, статистических и отчетных приложений клиентов. Другой важнейшей функцией, которую выполняют административные компоненты Visual Warehouse, является автоматизация непрерывных процессов создания и управления хранилища.

Продукт IBM Intelligent Miner представляет собой интегрированное средство для сложного анализа данных, хранящихся в реляционных базах данных и файлах. Он позволяет добывать из баз данных ранее неизвестную и содержательную информацию, предоставлять ее для анализа и принятия решений.

Набор API для приложений-клиентов позволяет разработчикам создавать свои собственные приложения, использующие алгоритмы Intel-ligent Miner. Для конечных пользователей Intelligent Miner имеет функцию подготовки данных к поиску и представления найденной информации в графическом виде. Серверные компоненты Intelligent Miner функционируют в настоящее время под AIX, OS/390, OS/400.

По сравнению с многочисленными средствами создания отчетов и запросов для персональных компьютеров и рабочих станций, аналогичных средств для хост-систем не так много. В своем составе QMF (Query Management Facility для DB2/390) имеет средство формирования запросов, редактор таблиц, средство составления отчетов и обеспечивает интерфейсы для поддержки приложений. QMF поддерживает несколько методов формирования интерактивных запросов. Результаты запроса могут быть выведены на экран в самых разных форматах, включая табличный, матричный, свободный и графический. QMF является достаточно мощным продуктом, даже с точки зрения специалистов в области обработки данных. Последние версии QMF поддерживают работу в среде рабочих станций, а также содержат ряд усовершенствований для среды мэйнфреймов.

Клиентский компонент QMF для работы в среде Windows, который известен под названием Shuttle, дает пользователям возможность выполнять запросы QMF к центральному хост-компьютеру и выводить результат на экран рабочей станции для встраивания в другие программные продукты для рабочих станций, например в электронные таблицы Lotus 1-2-3 или Microsoft Excel.

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

С одной стороны, многое обещает организация доступа огромного числа пользователей Internet к коммерческим OLTP-системам. Распространение intranet как технологии для корпораций делает эту задачу еще более актуальной.

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

Использование в Internet потребовало создания определенных дополнений для DB2, таких как поддержка JDBС, приложений, хранимых процедур и UDF, написанных на Java, и дополнительных программных средств для взаимодействия с серверами Internet, такими как DB2 WWW Connection и являющимся его развитием Net Data.

1.1.3 RDMS Oracle

Компания Oracle проникла на российский рынок более десяти лет назад, и продукция этой фирмы хорошо известна. В 1979 г. небольшая компания Silicon Valley разработала Oracle - первую коммерческую реляционную базу данных с языком доступа к данным SQL. Первой СУБД клиент/сервер стал выпущенный в 1985 г. Oracle5. До недавнего времени, Oracle7 была последней версией сервера базы данных Oracle, появившейся в 1992 г. В прошлом году фирма выпустила новую версию Oracle8. К сожалению, пока еще очень мало литературы по новой версии, так что придется рассматривать технологию уже не самую "горячую". С другой стороны практически все направления развития серверной технологии, получившие отражение в Oracle8, в той или иной степени уже заложены в Oracle7.3.

Oracle7 это реляционная СУБД и семейство продуктов, обеспечивающих создание автоматизированных и информационных систем различного назначения. В состав семейства входят: СУБД Oracle7 RDBMS, средства проектирования приложений CDE CASE (Designer/2000), средства разработки приложений CDE Tools (Developer/2000), средства конечного пользователя, средства интерфейса с программными продуктами третьих фирм, коммуникационные средства и т.д.

Общие функциональные возможности. Версия 7.3 сервера Oracle содержит ряд функциональных новшеств, направленных как на расширение возможностей разработчиков приложений, так и на развитие возможностей самой системы по обслуживанию большого числа одновременных пользователей. Обусловлено это целым рядом архитектурных решений, и не в последнюю очередь хорошо выверенным механизмом блокировок. Oracle устроен так, что разработчик приложений может не заботиться об эффектах многопользовательского режима работы. Сервер сам обеспечивает все необходимые блокировки (хотя позволяет выпонять их и "вручную"), причем осуществляет их всегда на минимально возможном уровне: скажем при изменении записи только эта запись и будет заблокирована от изменений другими пользователями (до завершения транзакции). В Oracle необходимость обеспечения блокировок учитывается уже в организации хранения данных, а сам этот механизм является неотъемлемой частью ядра сервера, "переплетаясь" со всеми его внутренними алгоритмами.

И все-таки, проблема блокировки (моды изоляции чтения) продолжает существовать (пока один пользователь читает данные, другой пользователь может эти данные изменять). Стандарт ANSI SQL-92 описывает требования к реализации нескольких мод изоляции операций чтения от выполняющихся одновременно с ним транзакций. Они варьируются от самой "слабой" моды - "незафиксированного" (часто называемого "грязного") чтения, при котором допускается считывание данных незафиксированных транзакций, до самой "сильной" - "повторяемого" чтения, при котором гарантируется повторяемость результата при повторении операции в рамках транзакции. Беда в том, что само наличие всех этих различных мод изоляции в стандарте SQL отражает отнюдь не потребности пользователей, а различные степени компромисса с возможностями разработчиков СУБД. Пользователей же волнует совсем другое: как избежать тех неприятных эффектов, которые могут быть связаны с использованием всех стандарных мод изоляции, кроме самой "сильной" из них.

Сущность моды изоляции "согласованное чтение", реализуемой сервером Oracle состоит в том, что любая операция чтения в Oracle выдает пользователю данные только тех транзакций, которые были завершены к моменту начала операции. Oracle реализует "согласованное чтение" без использования блокировок вообще. Операция чтения в Oracle никогда не блокируется и никогда не блокирует других. Данный режим работы является среди коммерческих СУБД уникальным. Мода "согласованного чтения" не совпадает ни с одной из мод изоляции, принятых в стандарте SQL-92. Она "сильнее" (и следовательно покрывает) все моды, кроме "повторяемого чтения", но она "слабее" последней. Действительно, при повторе операции в моде "согласованного чтения" можно получить совсем другой результат, ибо изменится момент времени, по которому синхронизуется "срез" данных. Oracle, правда, предоставляет возможность объединять несколько операций чтения в read-only транзакцию, синхронизуя их при этом к одному моменту времени. В версии 7.3 Oracle позволяет в явном виде установить моду изоляции "repeatable read", причем опять без использования блокировок.

Функциональные новшества. В Oracle 7.3 появилась возможность читать и писать поля таблиц типа Long по частям (на уровне Oracle Call Interface), что безусловно полезно, ибо размер таких полей может доходить до 2 Гбайт. Расширился набор типов представлений (views), для которых допускается их непосредственная модификация. Появился ряд новшеств в языке PL/SQL (процедурном расширении SQL), самое заметное из которых - поддержка таблиц, хранимых в памяти сервера. Новые алгоритмы обработки запросов. Выполнение SQL-запроса - особенно имеющего сложную структуру - обычно распадается на несколько взаимосвязанных операций. Само это разбиение, а тем более выбор методов выполнения операций, как правило, допускают множество альтернативных решений. Выбор оптимальной их комбинации - задача оптимизатора, который на основании как характера запроса, так и имеющейся информации о задействованных таблицах и индексах, наличии тех или иных системных ресурсов (в Oracle 7.3 расширен набор видов предоставляемой оптимизатору информации: теперь он может учитывать частотные гистограммы индексируемых полей) строит оценку стоимости разных вариантов решения.