- •4.5. Упражнения 67
- •Глава 6. Устройство Informix Dynamic Server 165
- •Глава 7. Эксплуатация информационных систем 177
- •Глава 1 Обзор основных архитектур баз данных
- •1.1. Архитектура на основе разделяемых файлов
- •1.2. Архитектура “Хост-терминал”
- •1.3. Архитектура “Клиент-Сервер”
- •1.4. Архитектура с использованием сервера приложений (трехзвенная архитектура)
- •1.5. Упражнения
- •Глава 2 Модели данных
- •2.1. Уровни восприятия данных
- •2.2. Иерархическая модель данных
- •2.3. Сетевая модель данных
- •2.4. Реляционная модель данных
- •2.5. Объектно-реляционная модель данных
- •Глава 3 Реализация информационных систем на основе продуктов Informix Software
- •3.1. Обзор продуктов Informix
- •3.2. Варианты построения систем
- •Internet/Intranet-конфигурация
- •3.3. Выбор оптимальной конфигурации
- •Глава 4 Математические основы реляционных субд
- •4.1. Основные понятия
- •4.2. Ключи
- •4.3. Основные операции над таблицами и их интерпретация
- •4.4. Нормализация
- •4.5. Упражнения
- •Глава 5 Язык sql
- •5.1. Типы данных, доступные в sql
- •5.3. Основные sql-операторы для доступа и модификации данных
- •5.4. Управление транзакциями
- •5.5. Продвинутые варианты оператора поиска
- •5.5.1. Поиск по нескольким таблицам
- •5.5.2. Устранение повторения данных в операторе select
- •5.5.3. Вычисления внутри оператора select
- •5.5.4. Логические выражения в условии sql-операторов
- •5.5.5. Слияние двух выборок
- •5.5.6. Сортировка выборки
- •5.5.7. Вставка в таблицу нескольких строк одновременно
- •5.6. Использование sql в языках программирования
- •5.7. Программирование сервера базы данных
- •5.7.1. Динамический sql
- •5.7.3. Хранимые процедуры
- •5.7.4. Триггеры
- •5.8. Ограничители (задание целостности на уровне схемы)
- •5.9. Разграничение в sql прав пользователей
- •5.9.1. Права доступа
- •5.9.2. Права на уровне базы данных
- •5.9.3. Права на таблицы
- •5.9.4. Права на хранимые процедуры
- •5.9.5. Кто и как следит за соблюдением прав
- •5.9.6. Механизм ролей
- •5.9.7. Псевдотаблицы (view)
- •5.9.7. Синонимы
- •5.10. Управление одновременным доступом к данным
- •5.10.1. Что бывает, когда несколько человек одновременно пытаются обновить одни и теже данные
- •5.10.2. Открытие базы данных только для себя
- •5.10.3. Блокирование таблицы
- •5.10.4. Механизм блокирования записей и уровни изоляции
- •5.10.5. Управление ожиданием снятия блокировок
- •5.10.6. Тупиковые ситуации
- •5.11. Повышение скорости обработки запросов.
- •5.11.1. Индексы
- •5.11.2. Буферизация журнала транзакций
- •5.11.3. Блокировка на уровне записей и страниц
- •5.11.4. Эффективное построение запросов
- •5.11.5. Сортировка и поиск по коротким полям. Классификаторы
- •5.12. Объектное расширение sql в Informix ds/Universal Data Option
- •5.12.1. Зачем нужна поддержка объектов в серверах бд?
- •5.12.3. Внедрение объектно-ориентированной технологии
- •5.12.4. Реализация объектного подхода в Informix
- •Informix ds/Universal Data Option - объектно-реляционная субд
- •5.12.5. Итак…
- •Глава 6. Устройство Informix Dynamic Server
- •6.1. Внутренняя архитектура dsa
- •6.2. Механизм хранения данных
- •6.3. Инсталляция продукта
- •6.4. Запуск и останов сервера
- •6.5. Работа с русским языком
- •Глава 7. Эксплуатация информационных систем
- •Администрирование серверов баз данных
- •7.2. Обеспечение сохранности данных.
- •7.2.1. Технологии постоянного дублирования
- •7.2.2. Архивация
- •7.2.3. Так как же обеспечить сохранность данных?
- •7.3. Архивирование и восстановление данных
- •7.3.1. Что нужно архивировать
- •7.3.2. Утилиты архивации и восстановления
- •7.3.3. Создание архивов утилитой ontape
- •7.3.4. Восстановление из архивов утилитой ontape
- •7.3.5. Как узнать “когда”?
- •7.3.6. Практические советы
- •7.4. Средства контроля за доступом
- •7.4.1 Как работает аудитинг?
- •7.4.2. Конфигурирование списков протоколируемых событий
- •7.4.3. Задание файлов, запуск и остановка механизма аудитинга
- •Анализ протокола
- •7.4.5. Практические советы или Что делать, если вы хотите…
- •7.5. Реагирование на чрезвычайные ситуации
- •7.6. Мониторинг текущего состояния сервера базы данных
- •7.6.1. Кто работает с сервером базы данных
- •7.6.2. Сколько памяти использует сервер бд
- •7.6.3. Сколько свободного места имеется у сервера бд
- •7.7. Достижение требуемой производительности
- •7.7.1. Как узнать, что ждет некоторый запрос
- •7.7.2. Как выяснять причины падения производительности
- •2. Общие принципы предлагаемой технологии
- •3. Как портировать приложение
Глава 3 Реализация информационных систем на основе продуктов Informix Software
Краткий обзор основных продуктов Informix. Варианты конфигурации. Основные критерии выбора инструментальных систем.
3.1. Обзор продуктов Informix
Рассмотрим архитектуру “клиент-сервер” на вполне реальном наборе продуктов - на продуктах фирмы Informix Software. Здесь мы не будем рассматривать эти продукты во всех подробностях, мы только обрисуем их основные свойства и задачи, которые с их помощью можно решать. Список продуктов тоже, естественно, будет далеко не полным.
Сервер Informix Dynamic Server
Сервера баз данных фирмы Informix Software являются реляционными или объектно-реляционными. Все современные серверы выполнены по архитектуре Informix Dynamic Scalable Architecture (DSA) и поддерживают стандарты ANSI на язык SQL. В этом семействе есть несколько серверов, которые полностью совместимы и различаются по размеру решаемых задач.
Informix-Dynamic Server - это базовый сервер баз для работы с большими и сверхбольшими объемами данных. Informix DS существует для, практически, всех Unix-платформ, а также для MS Windows NT/95. Для приложений для работы внутри рабочих групп выпускается вариант данного сервера для рабочих групп - Informix DS WorkGroup Edition. Этот сервер доступен для Windows NT и популярных Unix-систем (SCO Unix, Sun Solaris, IBM AIX и т.д.). Основным отличием от базового сервера является упрощенное администрирование данного сервера. Продукт Informix DS Developer Edition представляет собой однопользовательский вариант Informix DS.
Informix-4GL и Informix Dynamic 4GL
Informix-4GL получил такое название, так как был одним из первых языков 4-го поколения. К таковым языкам относят проблемно-ориентированные языки, предназначенные для быстрой разработки в какой-то, вполне определенной области. Informix-4GL позволяет проводить быструю разработку приложений для баз данных. Informix-4GL является pеально используемым сpедством для pазpаботки алфавитно-цифpовых пpиложений для Informix. А алфавитно-цифpовые пpиложения являются оптимальными во многих ситуациях.
Informix-4GL получился настолько удачным, что большинство пpиложений, работающих на продуктах Informix, написаны именно на Informix-4GL. Данный продукт относится к тем редким программным продукта, где есть все, что надо и нет ничего лишнего. Фактически, язык Informix-4GL представляет собой язык доступа к данным SQL, плюс средства сpедства постpоения фоpм и меню, плюс сpедства написания отчетов и плюс упpавляющие стpуктуpы ноpмального ЯП. Язык свой, с очень пpостым и понятным синтаксисом. В системе программирования Informix-4GL имеются сpедства для автоматизации pаботы (генеpатоp фоpм, менеджеp пpоекта, отладчик etc).
В качестве пpимера пpогpаммы приведем описание функции на языке Informix-4GL, которая возвращает наибольшее из двух целых:
FUNCTION nBiggest (val1, val2) # это комментаpий на всю стpоку DEFINE val1 INTEGER {это тоже комментаpий, но внутpи стpоки} DEFINE val2 INTEGER; #для pазделения опеpатоpов можно ставить ";", #а можно использовать новую стpоку IF val1>val2 THEN RETURN val1 ELSE return VAL2 {язык не зависит от больших-малых букв} END IF END FUNCTION
Используя стандартные средства работы с экранами, можно очень просто и быстро строить формы ввода типа такой:
CUSTOMER: One-add Many-add Find-cust Update-cust Delete-cust Exit Add a new customer to the database +------------------------------+ --------------------------------------- ¦ Type Control-W for MENU HELP ¦ ----- +------------------------------+ +-----------------------------------------------------------+ ¦ Customer Form ¦ ¦-----------------------------------------------------------¦ ¦ Number :[ ] ¦ ¦ Owner Name :[ ][ ] ¦ ¦ Company :[ ] ¦ ¦ Address :[ ] ¦ ¦ [ ] ¦ ¦ City :[ ] State:[ ] Zipcode:[ ] ¦ ¦ Telephone :[ ] ¦ +-----------------------------------------------------------+
Рис. 3.1. Пример формы, реализованной на Informix‑4GL
Система программирования Informix-4GL доступна для Unix‑систем.
Существует еще один продукт из семейства 4GL – это Informix Dynamic 4GL. Обеспечивая совместимость с классическим Informix 4GL, Dynamic 4GL позволяет запускать приложения и в графической среде – как MS Windows, так и в Motif. Кроме того, Informix Dynamic 4GL позволяет при разработке программ использовать такие встроенные возможности, как выпадающие меню, графические значки и т.д. Пример диалога (формы), построенного на Informix Dynamic 4GL:
Informix-ViewPoint
INFORMIX-ViewPoint Pro и INFORMIX-ViewPoint - удобные среды быстрой разработки форм и отчетов средней сложности. Эти продукты не содержат языка программирования, вся разработка веджется на основе системы меню и работы мышью, следовательно данная система доступна для непрофессионалов. Версия ViewPoint Pro дополнительно содержит графические средства администрирования схемы базы данных.
Informix ViewPoin доступен для Windows, MacOS и графических Unix-оболочек (motif).
Informix-CLI
Informix-CLI является набором библиотек, реализованных на основе стандарта ODBC. Данный продукт обеспечивает возможность использовать для разработки клиентской части любое ODBC-совместимое приложение (MS Excel, MS WinWord, MS FoxPro for Windows, Inprise Delphi и т.д.).
Informix‑CLI доступен для Windows и Unix-систем.
Informix-ESQL/C
Informix ESQL/C является продуктом, позволяющим разрабатывать приложения на языке C/C++ и включать в эти приложения SQL-операторы доступа к данным. Пример фрагмента программы на ESQL/C:
for(i=0; i<20; i++) { exec sql select field1 into $var1 from table1 where id=$i; …… }
Продукт Informix‑ESQL/C доступен для всех платформ, которые поддерживаются серверами и клиентами Informix.
Informix Universal WebConnect
Informix Universal WebConnect является продуктом, обеспечивающим доступ из любого Web-сервера к серверам баз данных Informix. Этот продукт относят к так называемому “промежуточному” слою (middleware). Он позволяет встраивать запросы к данным в HTML-формат (данный формат используется для создания страниц, доступных по Web). Соответственно, появляется возможность интегрировать Web-приложения и приложения баз данных. Пример html-текста, расширенного SQL:
<H1>Добро пожаловать в наш электронный магазин!</H1> Cегодня у нас Вы можете заказать:<BR> <?MISQL SQL=”select name from goods where quantity>0”><BR><?/MISQL> . . . . . . .
Informix Universal WebConnect доступен для Windows NT и Unix операционных систем. Он позволяет работать с, фактически, произвольным Web-сервером и поддерживает стандарты CGI, ISAPI, NSAPI.
