Создание клиентских частей SQL БД под ОС Windows'95 и WindowsNT
Создание клиентских частей SQL БД под ОС Windows'95 и WindowsNT
Аннотация
Настоящая работа посвящена переносу базы данных на новую технологию с
созданием клиентских частей под современные операционные системы Windows’95
и Windows NT для SQL базы данных. В пояснительной записке рассматриваются
отличительные особенности технологии «клиент-сервер», по сравнению с
технологией предыдущего поколения «файл-сервер». Производится описание
процесса разработки клиентских частей под операционные системы Windows’95 и
Windows NT для SQL базы данных. Описываются процесс разработки интерфейса
пользователя под 32-разрядные операционные системы Windows’95 и Windows NT
Workstation. Разрабатывается алгоритм переноса данных из старой базы данных
в новую систему. Так же представлены результаты отладки и работы
разработанной программы.
СОДЕРЖАНИЕ
Введение 3
1. Теоретическая часть
1. Обзор СУБД 5
1. Sybase System 11 8
2. IBM DB2 17
3. RDMS Oracle 25
4. Microsoft SQL Server 6.5 36
2. Исследование предметной области 49
2. Практическая часть 62
1. Анализ существующей программы 62
2. Выбор платформы и программных средств 64
3. Разработка структуры новой БД 78
4. Перенос данных в новую базу данных 80
5. Разработка программы 83
3. Отладка 88
Заключение 92
Литература 93
Приложение А. Описание Базы данных.
Приложение В. Листинг отлаженных программ.
ВВЕДЕНИЕ
Для большинства средних и мелких российских предприятий информационные
решения с использованием сетей персональных компьютеров являются
фактическим стандартом. В тоже время, прикладное программное обеспечение,
используемое этими предприятиями (такое как автоматизированные системы
документооборота, системы управления промышленными и торговыми
предприятиями, бухгалтерские системы и др.), создано при помощи
инструментария предыдущего поколения, и не способно эффективно использовать
ресурсы, предоставляемые новыми технологиями. К современным информационным
системам уровня предприятия предъявляются очень высокие требования
производительности, надежности, обеспечения целостности и безопасности
данных (особенно при сегодняшнем развитии Internet), защиты от системных и
аппаратных сбоев, масштабируемости, возможности взаимодействия с другими
системами, работы в гетерогенных распределенных вычислительных сетях.
В течение последнего времени большое распространение получила новая
технология построения баз данных – технология «клиент-сервер». Эта
технология дает ряд неоспоримых преимуществ, по сравнению с технологией
предыдущего поколения – технологией «файл-сервер». В частности, она
предоставляет большие возможности по защите данных от несанкционированного
доступа и разграничение прав доступа на уровне отдельных записей и полей,
дает возможность работы с большими мультимедийными и нестандартными
данными. Также новая технология позволяет работать как в локальных сетях,
так и в глобальных и Internet, и многое другое. Системы, построенные на
новой технологии «клиент-сервер», отличаются высокой степенью безопасности,
территориально независимости и не требовательности к аппаратной мощности
клиентских станций.
В настоящее время, в области баз данных и проектировании систем, с
использованием новой технологии «клиент-сервер», ведутся работы в разных
направлениях. Во-первых, продолжают вестись работы по усовершенствованию
технологии и уменьшению требований к аппаратному и программному
обеспечению, с одновременным увеличением производительности. Во-вторых,
ведутся работы в направлении переноса всех программ, использующих
технологию предыдущего поколения «файл-сервер», на новую и более
современную технологию «клиент-сервер».
Весьма актуальным является проблема переноса бухгалтерских программ,
рассчитанных на малые и средние предприятия и фирмы, на новую технологию.
Это обусловлено тем, что область данных программ осталась почти не тронутая
новой технологией. К тому же, все больше пользователей переводят свои
персональные компьютеры под управление 32-разрядными операционными
системами. 32-разрядные операционные системы клиентов, такие как Windows’95
и Windows NT Workstation, используют удобный в работе графический
пользовательский интерфейс и предоставляют все необходимое для эффективной
работы в распределенной среде.
1.1 Обзор СУБД
Несмотря на то, что технологии баз данных становятся все более
распространенными в практике, многие разработчики прикладных систем,
администраторы баз данных и конечные пользователи недостаточно хорошо
понимают, что такое современные базы данных и системы управления базами
данных (СУБД). Сказывается отсутствие или поверхностный уровень
соответствующих курсов в высших учебных заведениях, практическое отсутствие
литературы на русском языке и, наконец, привлечение к деятельности,
связанной с использованием баз данных, специалистов, которые ранее работали
в других областях. Обучение, проводимое коммерческими компаниями, обычно
ориентируется на конкретные программные продукты и не может компенсировать
отсутствие базовой подготовки.
Во всей истории вычислительной техники можно проследить две основных
области ее использования. Первая область - применение вычислительной
техники для выполнения численных расчетов, которые слишком долго или вообще
невозможно производить вручную. Развитие этой области способствовало
интенсификации методов численного решения сложных математических задач,
развитию класса языков программирования, ориентированных на удобную запись
численных алгоритмов, становлению обратной связи с разработчиками новых
архитектур ЭВМ.
Вторая область - это использование средств вычислительной техники в
автоматических или автоматизированных информационных системах. В самом
широком смысле информационная система представляет собой программно-
аппаратный комплекс, функции которого состоят в надежном хранении
информации в памяти компьютера, выполнении специфических для данного
приложения преобразований информации и/или вычислений, предоставлении
пользователям удобного и легко осваиваемого интерфейса. Обычно такие
системы имеют дело с большими объемами информации, и эта информация имеет
достаточно сложную структуру.
Вторая область использования вычислительной техники возникла несколько
позже первой. Это связано с тем, что на заре вычислительной техники
возможности компьютеров по хранению информации были очень ограниченными.
Но поскольку в информационных системах требуется поддержка сложных
структур данных, эти индивидуальные средства управления данными составляли
существенную часть информационных систем, практически повторяясь (как
программные компоненты) от одной системы к другой. Стремление выделить
общую часть информационных систем, ответственную за управление сложно
структурированными данными явилось первой побудительной причиной создания
СУБД, которая, возможно, могла бы представлять некоторую общую библиотеку
программ, доступную каждой информационной системе.
Однако очень скоро стало понятно, что невозможно обойтись такой общей
библиотекой программ, реализующей над стандартной базовой файловой системой
более сложные методы хранения данными.
Вообще, согласованность данных является ключевым понятием баз данных. На
самом деле, если информационная система поддерживает согласованное хранение
информации в нескольких файлах, можно говорить о том, что она поддерживает
базу данных. Если же некоторая вспомогательная система управления данными
позволяет работать с несколькими файлами, обеспечивая их согласованность,
можно назвать ее системой управления базами данных. Уже только требование
поддержания согласованности данных в нескольких файлах не позволяет
обойтись библиотекой функций: такая система должна обладать некоторыми
собственными данными (мета-данными) и даже знаниями, определяющими
целостность данных.
Прежде чем приступить к конкретному обзору Систем Управления Базами
Данных (СУБД), необходимо дать ряд определений терминам, использующимся для
описания СУБД.
Данные – это информация, зафиксированная в определенной
(структурированной) форме, пригодной для последующей обработки, хранения и
передачи. К данным необходим «прозрачный» доступ сразу нескольких
пользователей, т.е. любой пользователь должен иметь возможность получать
необходимую ему информацию, модернизировать ее, заносить новую и удалять
старую, причем конечный пользователь может обо всех этих операциях и не
знать. Банк Данных (БнД) – это информационная система, включающая в себя
информационные, математические (алгоритмические), программные, языковые,
организационные и технические средства (аппаратная платформа и операционная
система) обеспечивающие в совокупности централизованную поддержку и
коллективное использование данных пользователем БнД. Языковые средства –
языки, с помощью которых описывается структура данных (DDL) и языки
манипулирование данными (DML – SQL). База Данных (БД) – это
структурированная определенным образом совокупность данных, относящихся к
конкретной задаче. БД может быть как локальная, так и распределенная.
Система Управления Базами Данных (СУБД) представляет собой комплекс
инструментальных средств (программных и языковых) реализующих
централизованное управление БД и обеспечивающих доступ к данным (изменения,
добавления, удаления, резервного копирования и т.д.). СУБД должна
обеспечивать поиск, модификацию и сохранность данных, а также оперативный
доступ (время отклика), защиту целостности данных от аппаратных сбоев и
программных ошибок, разграничение прав и защита от несанкционированного
доступа, поддержка совместной работы нескольких пользователей с данными.
При работе с СУБД можно выделить несколько уровней представления данных:
- Внешний уровень (уровень конечного пользователя). В некотором смысле это
самый главный уровень. Именно с ним работает конечный пользователь или
конечная программа. Пользователь воспринимает данные как совокупность
некоторых взаимосвязанных полей в удобном виде, позволяющих ему решать
свою задачу.
- Концептуальный уровень (уровень программиста и администратора) – это
обобщенное представление обо всех данных, хранящихся в базе или
совокупность внешних представлений. На этом уровне работают программист,
создающий прикладные программы, и администратор, разрабатывающий
структуру (схему) базы данных. Администратору доступна вся схема, вся
информация, а конкретному программисту - только ее часть, ограниченная
его привилегиями.
- Физический уровень (уровень реализации). На физическом уровне
определяются способы хранения данных с учетом подробностей (вплоть до
физического адреса) и доступа к ним. Сервер СУБД реализует именно этот
уровень.
По логическому представлению структуры данных СУБД делятся на несколько
типов: реляционные, сетевые и иерархические. Главная характеристика,
определяющая тип – это используемое представление данных.
Основной структурой в иерархических моделях данных является «дерево».
Особенности такого представления в наличии корня – единственной точки входа
в дерево, и что каждый порожденный узел имеет только одного родителя.
Недостатком этой системы является высокая избыточность. Одна запись БД –
это совокупность деревьев. Через эту структуру нельзя построить отношение
N:N (многие ко многим).
Основной структурой в сетевых моделях данных является «сеть». При таком
представлении существует несколько входов в сеть – неоднозначность доступа
к данным. Особенности такого представления: один или несколько узлов могут
иметь больше одного родителя; время доступа изменяется в зависимости от
исходного входа. Время доступа в сетевой структуре может быть больше, чем в
иерархической структуре.
Недостатком обеих этих структур является то, что при добавлении новых
вершин или установлении новых связей возникают проблемы выгрузки данных из
базы, перегенерации полностью структуры, загрузка данных обратно в базу.
При этом возникает вероятность потерять данные при обратной загрузке.
В основе структуры данных реляционной модели лежит мощный аппарат
реляционной алгебры, реляционного исчисления и теории нормализации. При
проектировании реляционной модели БД используется понятия ER-модели:
сущность – объект, атрибут – свойства и связь. Связи бывают нескольких
типов: 1:1, 1:N (N:1), N:N. У реляционной модели есть ряд ограничений:
невозможность существования двух одинаковых записей; задание типа столбца,
области значений атрибута. Достоинство реляционных СУБД, обеспечившее
высокую популярность, заключается в не функциональности языка запросов. Это
означает, что формулируете запрос не то, как надо найти данные, а что надо
найти.
Сегодня основы современной информационной технологии составляют базы
данных (БД) и системы управления базами данных (СУБД), роль которых как
единого средства хранения, обработки и доступа к большим объемам информации
постоянно возрастает. При этом существенным является постоянное повышение
объемов информации, хранимой в БД, что влечет за собой требование
увеличения производительности таких систем. Резко возрастает также в
разнообразных применениях спрос на интеллектуальный доступ к информации.
Это особенно проявляется при организации логической обработки информации в
системах баз знаний, на основе которых создаются современные экспертные
системы. Быстрое развитие потребностей применений БД выдвигает новые
требования к СУБД: поддержка широкого спектра типов представляемых данных и
операций над ними (включая фактографические, документальные, картинно-
графические данные); естественные и эффективные представления в БД
разнообразных отношений между объектами предметных областей (например,
пространственно-временных с обеспечением визуализации данных); поддержка
непротиворечивости данных и реализация дедуктивных БД; обеспечение
целостности БД в широком диапазоне разнообразных предметных областей и
операционных обстановок; управление распределенными БД, интеграция
неоднородных баз данных; существенное повышение надежности функционирования
БД.
На российском рынке наиболее популярны СУБД Progress (Progress software),
Oracle RDBMS v7 (Oracle), Microsoft SQL Server v6.5 (Microsoft), DB2 (IBM),
Sybase System 11 (Sybase).
1.1.1 Sybase System 11
Фирма Sybase - один из ведущих производителей промышленных СУБД, средств
разработки приложений и других продуктов, реализующих технологию клиент-
сервер. В конце 1995 года фирма выпустила Sybase System 11. Сейчас Sybase
System 11 выпущена для Intel и основных UNIX-платформ. На Intel-платфорах
работает СУБД для рабочих групп Sybase SQL Anywhere 5.0 - новая версия СУБД
Watcom SQL, которая теперь имеет режим совместимости с Sybase SQL Server на
уровне языка и интерфейсов.
Серверные продукты Sybase System 11 обладают архитектурой, построенной на
основе продуктов и библиотек Sybase Open Client/Server. Среди основных
серверных продуктов Sybase System 11:
- Sybase SQL Server - реляционная СУБД;
- Sybase MPP - расширение архитектуры Sybase SQL Server, разработанное и
оптимизированное для массовой параллельной обработки. Оно обладает
открытой параллельной архитектурой, предназначенной для поддержки очень
больших баз данных (VLDB);
- Sybase IQ - серверный механизм построения битовых индексов для
высокоскоростного выполнения сложных запросов к большим объемам данных;
- Sybase SQL Anywhere - "легкая" полнофункциональная СУБД на Intel-
платформах для мобильных пользователей и небольших групп;
- Sybase Replication Server - репликационный сервер для построения
распределенных систем на основе тиражирования данных;
- Sybase OmniConnect - сервер, обеспечивающий работу приложений-клиентов в
"прозрачном" режиме с несколькими серверами так, как будто работа идет с
одним сервером; при этом в распределенную систему могут включаться СУБД
различных производителей - Sybase, Oracle, IBM и т.д.
Вспомогательные серверные продукты Sybase System 11 включают:
- Sybase Backup Server - специальный сервер для выгрузки и загрузки баз
данных, не требующий остановки SQL Server и не снижающий его
производительности;
- Sybase Monitor Server - в сочетании с графической клиентской частью
выполняет мониторинг различных параметров состояния SQL Server;
- Sybase Replication Agent - специальные компоненты, отслеживающие
изменения в данных через журналы транзакций различных СУБД для включения
их в систему репликации. Replication Agent существуют, в частности, для
Sybase SQL Server, Oracle, DB2, Sybase SQL Anywhere.
- Sybase Audit Server - записывает информацию о действиях пользователей в
специальную базу данных, доступную для анализа.
К инструментальным средствам фирмы Sybase относятся средство быстрой
разработки приложений PowerBuilder и CASE-система S-Designor, выпускаемые
подразделением Powersoft. Эти средства работают со всеми основными СУБД.
Создание Sybase SQL Server 11 основывается на опыте работы предыдущих
версий и содержит ряд новых возможностей:
- Масштабируемость, производительность и эффективность SQL Server 11
основывается на следующих факторах:
. SQL Server 11 работает на множестве платформ, от персональных компьютеров
до многопроцессорных суперсерверов;
. обеспечена высокая производительность на каждой платформе благодаря
тесному взаимодействию с производителями аппаратуры и оптимизации
характеристик;
. полностью симметричная многопотоковая СУБД достигает высокой пропускной
способности и поддерживает большое количество пользователей.
- SQL Server обеспечивает надежность и целостность данных:
. SQL Server содержит механизмы триггеров и процедур, декларативной
ссылочной целостности, транзакций и т.д.;
. СУБД соответствует уровню безопасности C2 NCSA (National Computer
Security Council).
. Доступность данных повышает производительность систем:
. Sybase SQL Server программно поддерживает зеркальный журнал и зеркальную
базу данных;
. высокоскоростные средства загрузки/восстановления минимизируют влияние
этих операций на работу системы.
- Открытость и соответствие стандартам:
. SQL Server соответствует стандартам ANSI/ ISO SQL-89 и entry-level ANSI/
ISO SQL-92;
. поддерживаются приложения в стандарте ODBC и X/Open XA;
. SQL Server может использовать различные сетевые протоколы, что позволяет
соединить клиент и сервер практически на каждой платформе.
- Управление и поддержка:
. наличие многопотоковой архитектуры означает, что на компьютере
запускается и требует управления только один процесс - СУБД;
. для симметричной мультипроцессорной обработки можно конфигурировать
количество процессоров, распределенных для СУБД;
. имеется набор продуктов для конфигурирования областей памяти,
пользователей, контроля доступа и производительности - от одной базы
данных до множества сетей в масштабах предприятия.
Рассмотрим основные характеристики Sybase SQL Server.
Работа SQL Server с кэшами в памяти. Запись в журнал из кэша теперь
происходит пакетами. Это снижает уровень конкуренции за доступ к ресурсу
журнала и, соответственно, повышает производительность. Системный
администратор может разделить кэш SQL Server на несколько именованных
областей и приписать эти области различным базам данных и объектам баз
данных. Имеется возможность группировать именованные области кэша так,
чтобы более эффективно проходил обмен с диском большими блоками. Связывание
именованных кэшей и объектов баз данных осуществляется при помощи вызова
системных процедур.
При создании таблицы или индекса можно указать максимальное число строк,
хранимых на странице данных или странице индекса. Эта возможность позволяет
оптимизировать блокировки для часто обновляемых таблиц. SQL Server
использует установленное значение при добавлении и удалении строк.
Проверка взаимных блокировок. SQL Server использует алгоритм выявления
взаимных блокировок транзакций. Имеется возможность сконфигурировать то
время, через которое выполняется такая проверка. Цель конфигурирования
этого параметра - повышение производительности. Проверка взаимоблокировок -
это достаточно длительная операция для сервера. Так как проверка
запускается не сразу, выше вероятность освобождения ресурса к моменту
запуска проверки. С другой стороны, излишнее увеличение времени задержки
может привести к увеличенному времени реакции для приложения, выдавшего
взаимоблокирующий запрос.
Несколько процессов, работающих с сетевыми соединениями. В предыдущей
версии Sybase System 10 сетевым обменом занимался только один процессор в
SMP-архитектуре. Это ограничивало масштабируемость сервера на симметричной
мультипроцессорной архитектуре, так как было "узким местом" при увеличении
числа процессоров. В версии Sybase System 11 сетевым обменом могут
заниматься все процессоры.
Протокольные службы. Библиотеки Sybase обеспечивают работу серверных и
клиентских компонент со множеством сетевых протоколов от разных
производителей, в том числе TCP/IP, SPX/IPX, Named Pipes, DECNet и другие.
Архитектура Sybase позволяет как приложению-клиенту, так и серверу
одновременно работать с несколькими интерфейсами. Например, SQL Server для
Novell NetWare или Windows NT может одновременно допускать соединения через
SPX и TCP/IP.
Управление транзакциями. Архитектура Sybase System 11 поддерживает как
синхронную, так и асинхронную модель управления транзакциями. Модель
выбирается в соответствии с требованиями предметной области.
Централизованное хранение данных и доступ к центральной БД в условиях
географически распределенной системы приводят к необходимости установления
соединений между центральным сервером, хранящим данные, и компьютерами-
клиентами. Большинство компьютеров-клиентов отделены от центрального
сервера медленными и недостаточно надежными линиями связи, поэтому работа в
режиме удаленного клиента становится почти невозможной. Обмен данными на
практике часто реализуется регламентной передачей файлов, либо через
модемное соединение, либо "с курьером". То, что данные доставляются к месту
назначения не системными средствами, а путем экспорта/импорта файлов,
приводит к необходимости участия человека в процессе обмена, что влечет за
собой неоперативность поступления данных и необходимость реализации внешних
механизмов контроля целостности и непротиворечивости. Результатом является
высокая вероятность ошибок. Кроме того, реализация всех алгоритмов обмена
данными и контроля в этом случае возлагается на прикладных программистов,
проектирующих АРМ. Объем работ по программированию и отладке подпрограмм
обмена соответствует числу различных АРМ. Это также приводит к повышению
вероятности ошибок в системе.
В современной технологии АРМ объединены в локальную сеть. АРМ-клиент
выдает запросы на выборку и обновление данных, а СУБД исполняет их. Запросы
клиента в соответствии с требованиями задачи сгруппированы в транзакции.
Если все операции с базой данных, содержащиеся внутри транзакции, выполнены
успешно, транзакция в целом выполняется успешно (фиксируется). Если хотя бы
одна из операций с БД внутри транзакции не выполнилась успешно, то все
изменения в БД, произведенные к этому моменту из транзакции, отменяются
(происходит откат транзакции). Такое функционирование обеспечивает
логическую целостность данных в базе данных.
При распределенной обработке изменения, проводимые приложением-клиентом,
могут затрагивать более чем один сервер СУБД. В этом случае для поддержания
целостности необходимо применение транзакционного механизма, реализуемого
системными средствами, а не прикладной программой.
Производители современных промышленных СУБД обеспечивают поддержку
распределенной обработки транзакций. Распределенная обработка данных
основывается на синхронных или асинхронных механизмах обработки
распределенных транзакций. Эти механизмы могут использоваться совместно.
Выбор того или иного механизма зависит от требований конкретной подзадачи,
так как каждый механизм обладает сильными и слабыми сторонами.
Фиксация. Исторически первым появился метод синхронного внесения
изменений в несколько БД, называемый двухфазной фиксацией (2PC - two-phase
commit). Этот механизм реализован сейчас практически у всех производителей
СУБД.
Метод двухфазной фиксации состоит в том, что при завершении транзакции
серверы БД, участвующие в ней, получают команду "приготовиться к фиксации
транзакции". После получении подтверждений от всех серверов транзакция
фиксируется на каждом из них. Все ресурсы, используемые в транзакции,
остаются блокированными до тех пор, пока все компоненты транзакции могут
быть атомарно завершены успешно, либо все отменены. Таким образом, в любой
момент времени обеспечивается целостность данных в распределенной системе.
Платой за это является требование доступности всех участвующих серверов и
линий связи во время проведения транзакции и невозможность работы
приложений-клиентов при недоступности, например, удаленного сервера. Кроме
того, требуется высокое быстродействие линий связи для обеспечения
приемлемого времени реакции у приложения-клиента.
В распределенной системе идеальным являлось бы состояние, когда каждая
программа-клиент обращается только к тем серверам, которые находятся в
пределах ее локальной сети, а передача данных и обеспечение целостности
осуществляется системными средствами и не требуют специальных действий со
стороны прикладной программы. Такое распределение функций возможно и
реализуется на практике с помощью механизма асинхронного тиражирования
транзакций.
Асинхронная репликация не делает линии связи более надежными или
скоростными. Она перекладывает передачу данных, обеспечение их целостности
и ожидание при передаче данных с прикладной программы и пользователя на
системный уровень.
Асинхронная репликация, в отличие от 2РС, не обеспечивает полной
синхронности информации на всех серверах в любой момент времени.
Синхронизация происходит через некоторый, обычно небольшой, интервал
времени, величина которого определяется быстродействием соответствующего
канала связи. Для большинства задач кратковременное наличие устаревших
данных в удаленных узлах вполне допустимо. Вместе с тем асинхронная
репликация транзакций принципиально обеспечивает целостность данных, так
как объектом обмена данными здесь является логическая единица работы -
транзакция, а не просто данные из измененных таблиц.
Репликационный сервер Sybase Replication Server, входящий в состав Sybase
System 11, использует асинхронную модель репликации транзакций. При
разработке модели данных проектируются и правила репликации. Затем
проводится конфигурирование системы. При работе прикладной программы
изменения данных отслеживаются системными средствами и в соответствии с
конфигурацией требуемые данные передаются в удаленную СУБД.
Репликационный сервер представляет собой отдельную задачу, запускаемую
одновременно с СУБД. Он имеет свой входной язык и стандартный для продуктов
Sybase сетевой интерфейс Open Server. Такое разделение снижает нагрузку на
СУБД и делает систему в целом более открытой.
Транзакция может вносить изменения в одну или несколько таблиц базы
данных. Выбранные для репликации таблицы специальным образом помечаются.
Для каждой такой таблицы или группы ее строк, выбранной по заданному
условию, определяется один узел, в котором данные таблицы являются
первичными. Это тот узел, в котором происходит наиболее активное обновление
данных. Репликационному серверу, обслуживающему БД с первичными данными,
задается описание тиражирования (replication definition). В этом описании,
в частности, могут быть заданы интервалы значений первичного ключа таблицы
(или другое условие на первичный ключ), при выполнении которого измененные
данные будут тиражироваться из этого узла к подписчикам. Если условие не
задано, то описание тиражирования действует для всех записей таблицы.
Возможность тиражирования группы записей таблицы означает, в частности,
что часть записей таблицы может быть первичными данными в одном узле, а
часть - в других. В одном или нескольких узлах (СУБД), которым нужны
измененные данные, в обслуживающем его репликационном сервере создается
подписка (subscription) на соответствующее описание тиражирования.
В узле, содержащем первичные данные, для каждой тиражируемой базы данных
запускается специальная компонента - репликационный агент (Replication
Agent - RA). Он подключается к серверу БД и получает от него уведомления о
завершении транзакций. Измененные данные передаются репликационному
серверу, обслуживающему этот узел. Репликационный сервер в соответствии с
описанием тиражирования и подписками отправляет данные в специальном
эффективном протоколе по месту назначения - соответствующим репликационным
серверам в удаленных узлах.
Именно в этом месте - между репликационными серверами - связь может быть
медленной или недостаточно надежной. Передаваемые данные в составе
транзакции при недоступности узла-получателя записываются в стабильные
очереди на диске и затем передаются по мере возможности. Данные могут
передаваться в удаленный узел по маршруту, содержащему несколько
репликационных серверов. Данная возможность лежит в основе построения
иерархических систем репликации.
СУБД, хранящая вторичные данные, может быть любой СУБД, доступной через
шлюз, в том числе Oracle, Informix, Ingres, DB2, RMS, ISAM, или даже
приложение Open Server. СУБД, хранящая первичные данные, требует наличия
для нее RA. Сейчас RA имеется для Sybase SQL Server, Oracle, DB2, Sybase
SQL Anywhere. Готовятся RA и для других СУБД. Интерфейс RA открыт и
возможно создание RA для нестандартных источников данных.
Важно, что репликационный сервер тиражирует транзакции, а не отдельные
изменения в базе данных. Метод тиражирования транзакций гарантирует
целостность внутри транзакции, и, как следствие, невозможность нарушения
ссылочной целостности. Схема обновления первичных данных и копий данных
исключает возможность возникновения конфликтов (конфликты могут быть
вызваны только неправильным проектированием системы или сбоем).
В различных узлах предприятия используются базы данных от разных
производителей. Например, в системе принятия решений это может быть Sybase,
а в геоинформационной системе - Oracle.
Sybase OmniConnect осуществляет унифицированный доступ приложений к
разнородным источникам данных. Специальные шлюзовые компоненты организуют
работу в системе с любой промышленной СУБД, включая Oracle, Informix,
Ingres, DB/2, RMS, ISAM. Приложения-клиенты при этом работают только с
сервером OmniConnect на диалекте SQL фирмы Sybase (Transact-SQL), а
необходимая трансляция языка SQL и преобразование типов данных
автоматически осуществляется шлюзовыми модулями. Для работы с хранилищами
данных на "больших" ЭВМ (mainframe) Sybase поставляет также продукцию фирмы
Micro Decisionware (Sybase купила фирму MDI в начале 1994 года). MDI
предоставляет шлюзы в DB/2, SQL/DS, SQL/400, в том числе через IBM DRDA-
интерфейс.
OmniConnect хранит информацию о размещении таблиц на том или ином сервере
БД. Централизованно хранятся и исполняются глобальные хранимые процедуры.
Приложение-клиент может осуществлять транзакции, в которых участвуют
таблицы из различных БД, а также выполнять процедуры, которые OmniConnect
при работе с СУБД, отличными от Sybase, прозрачно преобразует к
соответствующему диалекту SQL.
Sybase MPP - это расширение архитектуры Sybase SQL Server, разработанное
и оптимизированное для массовой параллельной обработки. Он обладает
открытой параллельной архитектурой, предназначенной для поддержки очень
больших баз данных (VLDB). Sybase MPP использует стандартный SQL и открытые
интерфейсы. С ним работают те же приложения, что и с SQL Server, без
необходимости перепрограммирования.
Sybase MPP выполняет параллельно операции считывания (выборки),
добавления, обновления и удаления записей. Параллельно выполняются и
загрузка/восстановление, и создание индексов. Архитектура Sybase MPP не
содержит узких мест, связанных с разделяемой памятью или разделяемым
дисковым пространством. При выполнении параллельной выборки Sybase MPP
использует индексы.
Дополнительные процессоры и диски могут добавляться в систему постепенно,
достигая масштабируемости в сотни раз. Имеется возможность тиражировать и
перестартовать ключевые компоненты системы так, чтобы обеспечить быстрое
восстановление при сбоях.
С точки зрения приложений, пользователей и разработчиков Sybase MPP
выглядит как сервер с одной логической базой данных. Для этой базы данных
работает оптимизатор запросов. Поддерживаются хранимые процедуры и
глобальный репозитарий, где хранится информация о размещении данных. Для
управления системой имеются графические утилиты.
Sybase IQ. В системах поддержки принятия решений используется два типа
продуктов. Одни оптимизированы для предварительно известных запросов, а
другие - для запросов "на лету" (т.е. заранее неизвестных). Sybase IQ не
требует заранее определять "пути", то есть не требует использовать
предварительные знания о структуре запросов.
С использованием побитовой схемой индексации Sybase IQ практически все
данные в БД могут быть проиндексированы. Поэтому никакой запрос не приведет
к просмотру записей таблиц.
Sybase IQ не требует изменений в приложениях - любая программа,
работающая с SQL Server, будет работать с IQ. Собственно Sybase IQ не
выполняет отдельных обновлений данных. Он в прозрачном для клиента режиме
передает их для выполнения SQL Server. Sybase IQ очень эффективно выполняет
пакетные дополнения к базе данных. В отличие от технологий, основанных на B-
деревьях, при добавлении 10 миллионов строк в таблицу, где уже есть десятки
миллионов строк, Sybase IQ просто построит дополнительные страницы индекса
и не потребует перестраивать весь индекс целиком.
Sybase Backup Server - это специальный сервер для выгрузки и загрузки баз
данных, не требующий остановки SQL Server и не снижающий его
производительности.
Страницы: 1, 2, 3, 4, 5, 6, 7
|