ВВОДНАЯ ЛЕКЦИЯ ПО INFORMIX. КОНСПЕКТ.
Для начала несколько определений, которые, впрочем, всем из-
вестны и ничего не определяют.
Понятие "Система Управления Базами Данных" (СУБД), она же DBMS
(DataBase Managment System) может означать, по большому счету,
все что угодно.
В самом общем случае это собственно база данных, которая пред-
полагает какой либо метод сохранения информации на диске и воз-
можности доступа и манипуляции с нею, и набор программных про-
дуктов, предоставляющий пользователю все допустимые в базе
средства работы с данными.
Набор программных средств манипуляции данными СУБД удовлетворя-
ет свойствам полноты (консистентности). Полагаю, что коммерчес-
кие варианты СУБД стремятся быть еще и замкнутыми, т.е. само-
достаточными, не требующими и не поддающимися расширению.
АРХИТЕКТУРА КЛИЕНТ-СЕРВЕР.
Очень многие СУБД разделяют свою работу на два уровня по систе-
ме "DКлиентE-DСерверE". Хитрость состоит в том, что не только поль-
зователь, но и программист этого не замечает. Разделение функ-
ций его задачи выполняется автоматически системой.
Итак, двухуровневая система "Клиент-Сервер" это:
1. КЛИЕНТ - Программа обработки, она же DпользовательскаяE, она
же прикладная DпрограммаE. Занимается обычно интерфейсом с поль-
зователем, а всю фактическую работу с базой данных возлагает на
плечи БД-сервера.
2. СЕРВЕР БАЗЫ ДАННЫХ - базис (Ddatabase engineE), он же ядро ба-
зы данных. Отдельная программа, выполняемая как отдельный про-
цесс. Передает выбранную из базы информацию по межпроцессному
каналу клиенту. Именно он, и только он фактически работает с
данными, занимается их размещением на диске.
В первый момент может возникнуть вопрос, а зачем такие сложнос-
ти? Вот несколько соображений в пользу такого подхода.
Представьте, вы работаете в сети, ваша программа обработки идет
на одном компьютере, а сама база данных хранится на другом. Тут
разделение выглядит совершенно естественным: клиент - ваша
программа (точнее та ее часть, которая отвечает за интерфейс с
вами), гонит по сети запросы на обработку самих данных на дру-
гой компьютер, а там БД-сервер их прочитывает, выполняет требу-
емое, и по сети гонит ответы вам. При этом по сети передается
только полезная информация.
Другое соображение: постоянно идет работа по совершенствованию
самого метода хранения и обработки информации, и если его реа-
лизация (т.е. БД-сервер) сменилась, та вам не потребуется пере-
лопачивать и перекомпилировать с новыми библиотеками все свои
разработанные программы, а достаточно будет инсталлировать но-
вый БД-сервер взамен старого и перевести свои базы данных в
формат нового сервера (применив для этого прилагаемую к нему
утилиту). Естественно, все это можно проделать, если новый сер-
вер придерживается тех же правил обмена между ним и пользова-
тельской программой, что и старый, что, впрочем, наверняка име-
ет место.
Всвязи с СУБД INFORMIX нас, естественно, интересует только одна
модель данных - реляционная. Сетевых и иерархических моделей
рассматривать здесь я не буду. Можно, конечно, дать строгое оп-
ределение реляционной модели данных по Э.Ф. Кодду, но ведь ни
одну из коммерческих СУБД нельзя назвать реляционной в строгом
смысле этого слова.
ОСНОВНЫЕ ОБЪЕКТЫ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ.
(DDATABASEE) DРеляционная База Данных:E
это множество прямоугольных DтаблицE с данными. Никаких дополни-
тельных сведений и ссылок не хранится.
(DTABLEE) DТаблицаE
прямоугольная таблица, состоящая из DстрокE и DстолбцовE. Задать
таблицу - значит указать, из каких столбцов она состоит. Обра-
щаю внимание поклонников DBase - то, что в DBase называлось ба-
зой данных, в INFORMIX называется таблицей.
(DROWE) DСтрокаE
запись, состоящая из полей - столбцов. В каждом поле сидит его
значение, либо значение NULL - "пусто". Строк в таблице может
быть сколько угодно. Физический порядок их расположения друг
относительно друга неопределен.
(DCOLUMNE) DСтолбецE
Каждый столбец в таблице имеет собственные имя и тип.
В INFORMIX допустимы следующие типы столбцов:
INTEGER SERIAL - автоматический счетчик
SMALLINT CHAR(n) DATE
FLOAT DECIMAL(m,n) DATETIME qualif1 TO qualif2
REAL MONEY(m,n) INTERVAL qualif1 TO qualif2
где qualif \in {YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,FRACTION(n)}
возможны и другие типы, в зависимости от реализаций.
Реляционная модель идейно проста - основной ее принцип - "База
Данных обеспечивает хранение и выдачу информации из своих пря-
моугольных таблиц, и ничего не желает знать о логической струк-
туре данных, которую на ней реализовывают." Все логические от-
ношения и связи между разными таблицами вынесены наружу "Испол-
нителя База Данных" и отданы на откуп программисту. Такой под-
ход позволяет просто и эффективно реализовывать саму базу дан-
ных, соответственно и быстродействие и мощность реляционных баз
удается держать на весьма высоком урвне.
Физическую целостность базы данных обычно поддерживает сам ме-
тод доступа, сервер базы.
Но логическая (внешняя) структура пользовательской базы может
быть весьма сложной. Для поддержания целостности логической
структуры базы данных в реляционной базе имеется механизм тран-
закций. Транзакция, это объединение нескольких простых операто-
ров манипулирования данными, которые должны быть выполнены
только вместе, а если это не удается, то база вернется в состо-
яние, предшествующее выполнению самого первого из них.
ПОНЯТИЯ, СВЯЗАННЫЕ С РЕЛЯЦИОННОЙ БАЗОЙ ДАННЫХ.
DРЕЛЯЦИОННЫЕ МЕТОДЫ МАНИПУЛИРОВАНИЯ ТАБЛИЦАМИ.E Запросы на поиск.
Соединение таблиц. Внешнее соединение таблиц.
Представьте, что вам нужно в таблице "КАДРЫ" хранить данные о
личном составе предприятия. О каждом человеке желательно пом-
нить его фамилию, зарплату, пол, и т.д., а так же название под-
разделения, в котором он работает. Но название подразделения
длинно, самих подразделений немного, зато строк в таблице "КАД-
РЫ" много. Для экономии места применяется стандартный реляцион-
ный метод: в таблице "КАДРЫ" хранится не само название, а толь-
кое его короткий код, и создается еще одна таблица, с помощью
которой мы будем определять название подразделения по его коду.
Табличку эту мы, естественно, назовем "ПОДРАЗДЕЛЕНИЯ", и будет
в ней всего два столбца: столбец "КОД" и второй "название под-
разделения". И вот мы подошли к самому главному, что есть в ре-
ляционной базе, к "СОЕДИНЕНИЮ ТАБЛИЦ" по значению столбца (оно
же соединение по ключу, по коду). Когда нам потребуются данные
о человеке по фамилии Иванов, мы захотим увидеть название под-
разделения в котором он работает, а не малопонятный код. Значит
поиск данных об Иванове нужно вести в двух таблицах. Сперва мы
найдем в таблице "КАДРЫ" строчку, в которой в столбце ФАМИЛИЯ
стоит значение "Иванов", мы возьмем в этой строчке значение ко-
да подразделения, и будем искать в таблице "ПОДРАЗДЕЛЕНИЯ"
строку, со значением в столбце КОД равным коду из строки с с
Ивановым. А найдя мы соединим данные из строки с Ивановым и з
первой таблицы и из строки с кодом из второй, получив одну, об-
щую строку.
DИНДЕКСАЦИЯE
Индекс=поисковый массив. {(Значение столбца, физический адрес)}
Отсортирован по значению в порядке возрастания или убывания.
Если индекс создан, то система будет пользоваться им автомати-
чески, самостоятельно при выполнении поиска в таблице.
Ускорение соединения таблиц по столбцу. Индексировать нужно
более длинный столбец.
Обеспечение уникальности значений в столбце.
Затраты машинного времени на поддержание индекса.
Индекс совместный, для нескольких столбцов, не путать с нес-
колькими индексами для различных столбцов.
Индекс кластеризованный: Физическое упорядочивание данных на
диске согласно индексу. Поскольку операционная система поддер-
живает буферизацию дискового обмена, физически упорядоченные
данные оказываются в буферном кэше вместе, можно сказать, "ав-
томатически". Следовательно возрастает скорость запросов.
DСИСТЕМНЫЙ ЖУРНАЛE (logfile), он же журнал транзакций.
Запись всех изменений, происходящих в базе данных.
Контрольные точки.
Откатка.
Транзакции.
Оператор начала транзакции.
Оператор нормального завершения транзакции.
Оператор ненормального завершения транзакции - откатка к преды-
дущей контрольной точке.
Базы данных в режиме ANSI.
Прогон базы данных по системному журналу из backup копии.
МНОГОПОЛЬЗОВАТЕЛЬСКИЙ РЕЖИМ ОБРАБОТКИ БАЗЫ ДАННЫХ.
DБЛОКИРОВАНИЕE (loking), оно же запирание.
Сервер базы блокирует строки и таблицы во избежание коллизий
при записи в одну и ту же строку.
Строки блокируются автоматически (неявно).
В блокированную строку нельзя писать, но можно смотреть.
На время выполнения транзакции все измененные в ней строки бло-
кируются.
Можно заблокировать всю таблицу целиком явной командой блоки-
ровки. Таблицы можно блокировать не только от записи, но и от
просмотра.
Программе можно задавать режим: ждать/ не ждать блокированных строк.
SET LOCK MODE.
DПРАВА ДОСТУПА В БАЗЕ ДАННЫХE, которые могут иметь пользователи.
На уровне базы данных:
- пользовательский, право на ресурсы, администратор базы данных
На уровне таблиц:
- читать, вставлять, изменять, уничтожать строки, переопреде-
лять таблицу.
SQL - СТРУКТУРНЫЙ ЯЗЫК ЗАПРОСОВ.
ANSI (American National Standart Institute) разработал
Структурный Язык Запросов (SQL) - Structured Query Language
для определения, манипуляции и контролирования данных.
Операторы описания данных:
CREATE, DROP, ALTER
Операторы манипуляции данными:
INSERT, DELETE, SELECT, UPDATE
Операторы задания прав доступа:
GRANT / REVOKE , LOCK / UNLOCK , SET LOCK MODE
Операторы защиты и восстановления данных:
Transaction, Audit trail, Logfile
ПОНЯТИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ БАЗ ДАННЫХ.
Язык программирования базы данных:
Средства стандартных языков программирования 3-го поколения.
Программные переменные.
Изготовление операторов по ходу программы.
Операторы манипуляции базой данных. SQL.
Переброска данных из базы данных в програмные переменные, и об-
ратно.
Курсоры.
Печать результатов запросов. Отчеты.
Экранный обмен с пользователем.
Меню. Окна.
Экранные формы, экранные поля, экранные массивы.
Файл описания экранной формы.
Файлы с исходными текстами.
Описание состава программы.
ПРОДУКТЫ INFORMIX ДЛЯ ОБРАБОТКИ БАЗ ДАННЫХ.
Программное обеспечение Informix содержит следующие компоненты:
I. БАЗИСЫ, ОНИ ЖЕ ЯДРА, ОНИ ЖЕ СЕРВЕРЫ БАЗЫ ДАННЫХ:
DInformix-SE.E
Сервер для многопользовательских баз данных INFORMIX, на нижнем
уровне обеспечивающий работу всех программ, обращающихся к ба-
зам данных INFORMIX.
DInformix-NET.E
Сетевое дополнение к INFORMIX-SE. Превращает его в сервер уда-
ленных баз данных. Работает поверх сетевого протокола TCP/IP.
DInformix-OnLine.E
Современный OLTP (On-Line-Transaction-Processing) базис баз
данных. В отличие от SE взял физическое хранение данных в свои
руки, отнимает у операционной системы логический раздел(ы) дис-
ка и самостоятельно работает с ними на низком уровне. В 2-4 ра-
за быстрее SE, однако более сложен в настройке на конкретный
компьютер, требует от администратора OnLine базы данных хороших
познаний в операционной системе. Имеет много дополнительных
возможностей по сравнению с SE, в том числе хранение таких ти-
пов данных как Binary Large Objects, текстовых и байтовых, а
так же символьных строк переменной длины как полей в базе дан-
ных, разделяемую буферизацию данных, буферизацию транзакций,
зеркальный диск, автоматическое восстановление после системных
сбоев, автоматический backup.
DInformix-STAR.E
Сетевое дополнение к INFORMIX-OnLine. Превращает его в сервера
распределенной базы данных. Разрешает одновременный доступ к
данным нескольких INFORMIX-STAR систем. Работает поверх прото-
кола TCP/IP. Естественно, в MS-DOSе отсутствует.
II. ДИАЛОГОВАЯ СИСТЕМА ПОДДЕРЖКИ И АДМИНИСТРИРОВАНИЯ
БАЗ ДАННЫХ ДЛЯ ПОДГОТОВЛЕННЫХ ПОЛЬЗОВАТЕЛЕЙ.
DInformix-SQL.E
Система управления и поддержки баз данных.Содержит 5 компонент:
- интерпретатор языка SQL.
- экранные формы для просмотра и изменения таблиц базы данных.
- генератор отчетов.
- организация пользовательких меню.
- диалоговое описание структуры таблиц.
III. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА РАЗРАБОТКИ
ПОЛЬЗОВАТЕЛЬСКИХ ПРИЛОЖЕНИЙ.
DInformix-4GL.E
Основное инструментальное средство для программирования баз
данных и создания пользовательских приложений на языке 4GL.
Включает:
- компилятор с 4GL на Си и далее, в машинный код.
- генератор и компилятор экранных форм 4GL
- описание и поддержка многомодульных программ
(а ля make)
Все это собранно в единую интегрированную среду-оболочку под-
держки программирования, управляемую меню.
Язык 4GL содержит в себе:
а. Операторы SQL - для работы с данными.
б. Программные операторы - IF, CASE, CALL, FUNCTION, FOR,
WHILE, GOTO, DEFINE и т.д.
в. Операторы экранного обмена - меню, окона, ввод-вывод через
экранные формы и экранные массивы.
г. Перехват и обработка исключительных ситуаций
DInformix-4GL-RDS+ID.E
Rapid Development Sistem and Interactive Debugger
То же самое, только компилируются программы гораздо быстрее, но
не до выполнимого кода, а до "псевдо"-кода, который выполняется
runner'ом. Диалоговый Отладчик 4GL программ использует "псев-
до"-код.
DInformix-ESQL/C.E
EmbeddedSQL/C (Вложенный в Си SQL)
Система Программирования Баз Данных на языке Си к которому до-
бавлены операторы языка SQL.
- представляет собой компилятор-препроцессор, который превра-
щает программный код, написанный на ESQL/C (Си с SQL), в
чистый Си код, который дальше транслируется обычным Си ком-
пилятором.
Не имеет среды-оболочки.
DC-ISAM.E
Библиотека подпрограмм индексно-последовательного метода досту-
па для языка Си, на котором реализован INFORMIX-SE.
IV. ОБЕСПЕЧЕНИЕ ПОЛЬЗОВАТЕЛЬСКИХ ПРИЛОЖЕНИЙ INFORMIX
DInformix-RunTime.E
Подмножество INFORMIX, которое необходимо поставить на машину,
чтобы на нем смогли работать пользовательские программы, изго-
товленные с использованием средств разработки INFORMIX. (SQL,
ESQL, 4GL - для каждого из них требуется своя собственная вер-
сия RunTime). Собственно, это несколько служебных файлов с сис-
темными сообщениями, и программы выполнятели "псевдо"╜кода для
4GL-RDS, и выполнятели отчетов, меню и экранных форм INFORMIX╜
SQL. Дополнительно к RunTime необходимо иметь сам сервер базы
SE или OnLine, поставляемые как отдельный продукт.
V. СИСТЕМЫ АВТОМАТИЗАЦИИ КОНТОРСКОЙ ДЕЯТЕЛЬНОСТИ
DWingz.E
Электронная таблица с трехмерной графикой для обработки данных
большого объема (32.768 строк и столько же столбцов, до биллио-
на элементов). Таблица дополнена возможностями 140 встроенных
функций на все случаи жизни и собственным языком HiperScript
для написания прикладных программ. Может выполнять как стан-
дартные операции над базами данных, так и строить объемные
цветные иллюстрации достижений вашей деятельности. Возможно
вращение и движение по графическому изображению, использование
данных из баз данных INFORMIX. Позволяет в рабочей области, на
одной странице разместить тексты, числа, графы и графические
изображения.
DSmartWareII.E
Интегрированная система, объединяющая базу данных, электронную
таблицу с деловой графикой, текстовый процессор и сетевые воз-
можности. Имеется собственный язык для создания пользователь-
ских программ. Используется язык QBE для доступа к базе данных.
В создании отчетов могут участвовать до 100 файлов. Текстовый
процессор имеет словарь синонимов и может выполнять орфографи-
ческую проверку написания 140.000 слов, конвертирует файлы из
других редакторов. Работает в операционных системах UNIX и DOS.
Могут использоваться данные из баз данных INFORMIX-SQL.
V. Прочее.
DInformix-QuickStep.E
Интерактивный генератор отчетов. Позволяет создавать отчет без
программирования, используя систему выпадающих меню. На выходе
получаетыся отчет, а так же генерится программа на 4GL, этот
отчет производящая.
DInformix-FORMS.E
Генератор экранных форм и программного 4GL кода для работы с
ними. Для Informix-4GL.
DInformix-Menu.E
Позволяет сгенерить систему меню, объединяющую прикладные прог-
раммы на уровне вызова выполнимых модулей и Shell-процедур.
DInformix-GX.E
Графический runner-выполнятель 4GL-программ. Берет откомпилиро-
ванный 4GL-RDS "псевдо"╜код, и отрабатывает его не в алфавитно╜
цифровом режиме, а в графическом окошке - клиенте MS╜Windows
3.0 или X-Window OSF/Motif. Позволяет понизить скорость перери-
совки экрана прикладной программы на SPARC станции до уровня
алфавитно-цифрового терминала. Для Informix-4GL Compiler пос-
тавляется в виде библиотеки замещающей стандартные функции ри-
сования на АЦТ через curses.
DInformix-Optical.E
Пакет обеспечивает пользователю работу с информационно поиско-
выми системами использующими Informix╜Online(и его возможности
по хранению изображений, звуков, и т.п. BLOBов) в качестве
средства хранения, индексирования и доступа к данным "зашитым"
на отическом CD╜ROMе. В последнее время Informix предлагает
большое количество справочных систем и комплектов документации,
использующих технологию Optical.
DInformix-HiperScript.E
Система, не имеющая ничего общего с линией SQL продуктов фирмы
Informix. Это система для организации доступа к разнообразным
данным (графическим, текстовым, мультимедиа) в виде гипертекс-
та. Имеет собственный язык для описания/программирования прило-
жений. Есть версии для Unix/X-Windows, и для МС/Windows.
DInformix-4GL for Windows.E
Старый знакомый 4GL версии 4.12, только в среде MS Windows.
Включает компилятор 4GL и среду-оболочку для программиста со
стандартным для MS Windows мышино╜оконным интерфейсом.
DInformix-View.E
Нечто вроде ISQL для MS Windows. Экранные (пардон, графические)
формы для работы с базой данных Informix. С естественными для
графических приложений прибамбасами (шрифты, картинки, мышка.)
Генератор отчетов. Средство гля генерации-разработки этих самых
форм.
Last-modified: Wed, 30 Nov 1994 11:36:32 GMT