В начало
Изучение IB Expert (Лабораторная
работа)
Цель работы: Ознакомиться
с процессом инсталляции СУБД InterBase и оболочки IB Expert. Научится
устанавливать соединение с сервером из программных систем, создавать базу
данных и произвести элементарные действия с ней как c удаленного, так и
локального компьютера. Выполнение задания: Утилита
IBExpert
предназначена для администрации баз данных в СУБД Interbase и FireBird. Создание нового набора данных
осуществляется с помощью пункта меню База
данных - Создать базу. Раздел «Сервер» (удаленный/локальный)
предназначен для выбора места создания файла базы данных. Выберем тип «локальный» для создания базы данных на
локальной машине. В разделах «Имя
сервера» и «протокол» вводится
имя машины, на которой расположен сервер баз данных Interbase (для локальной базы данных эти
поля не нужны). Поле ввода «Файл БД»
предназначено для указания пути к создаваемому файлу базы данных. «Имя пользователя» - строка ввода имени
администратора баз данных (имя пользователя - SYSDBA,
пароль – masterkey). Диалект 1 - "родной" формат IB 5. Поле ввода «Кодировка» предназначена для выбора
набора символов национального алфавита для текстовых полей базы данных. Русские
символы Windows
содержатся в кодировке Win1251. Определившись
со структурой таблицы БД, создаем ее из меню База данных – Новая таблица. Имя таблицы – STUDENT
(вводится в верхней строке окна таблицы), состоит из 3 полей (Преподаватель, курс, предмет). Для каждого поля
необходимо указать его имя и тип (по необходимости длину). Большинство баз данных поддерживают
следующие типы полей: - CHAR. Синтаксис: CHAR(n). Размер: n символов. Диапазон/Точность: от 1 до 32767
байтов. Размер символа кодировки определяет максимальное число символов,
которые разместятся в 32K. Описание: Фиксированной длины CHAR или строка
текста. - DATE. Синтаксис: DATE. Размер: 64 бита. Диапазон/Точность: от 1
янв 100 до 11 янв 5941. Описание: Так же включает информацию о времени. - DECIMAL.
Синтаксис: DECIMAL (precision, scale). Размер: Переменный. Диапазон/Точность:
precision = от 1 до 15. Определяет, что сохраняется, по крайней мере precision цифр числа. scale = от 1 до 15. Определяет
число знаков после запятой. Должно быть меньше или равно precision. Описание:
Для примера, DECIMAL(10,3) сохраняет
числа точно в следующем формате: ppppppp.sss - DOUBLE
PRECISION. Синтаксис: DOUBLE PRECISION. Размер: 64 бита.
Диапазон/Точность: от 1.7E-308 до 1.7E308. Описание: Для научных вычислений: 15
цифр точности. Текущий размер типа DOUBLE зависит от платформы. Большинство
платформ поддерживает размер в 64 бита. - FLOAT. Синтаксис: FLOAT. Размер: 32 бита. Диапазон/Точность: от 3.4E-38 до 3.4E38.
Описание: Одиночная точность: 7 цифр точности. - INTEGER. Синтаксис: INTEGER. Размер: 32 бита. Диапазон/Точность: от -2 147 483 648 до 2
147 483 648. Описание: Длинное целое со знаком (long, longword). - NUMERIC. Синтаксис: NUMERIC
(precision, scale). Диапазон/Точность: precision = от 1 до 15. Определяет, что
сохраняется, по крайней мере precision цифр числа.
scale = от 1 до 15. Определяет число знаков после запятой. Должно быть меньше
или равно precision. Описание: Для примера, NUMERIC(10,3)
сохраняет числа точно в следующем формате: ppppppp.sss - SMALLINT. Синтаксис: SMALLINT. Размер: 16 бит.
Диапазон/Точность: от -32768 до 32767. Описание: Короткое целое со знаком.
(shot, word). - VARCHAR Синтаксис: VARCHAR(n). Размер: n символов. Диапазон/Точность: от 1 до 32767
байтов. Размер символа кодировки определяет максимальное число символов,
которые разместятся в 32K. Описание: переменной длины CHAR или строка текста. - BLOB. Синтаксис: BLOB. Размер: Переменный. Диапазон/Точность: Нет. Описание: Большой
двоичный объект. Сохраняет данные большого объема, такие как графика, текст и
цифровой звук. После
завершения ввода полей необходимо нажать кнопку «Компиляция» (Ctrl+F9) с
изображением молнии на панели инструментов окна. Ввод
данных выполняется на вкладке «Данные»
окна «Таблица». Разработка
приложения для работы с базой данных Клиентская часть систем баз данных часто оформляется
в виде прикладных программ (приложений). Для создания приложений баз
данных в среде Delphi имеется набор компонентов на
вкладках Data Access, Data Controls и Interbase. Добавим в проект специальную невизуальную форму DataModule (File/New/DataModule), в
которой будем размещать компоненты для доступа к данным. Поместим в нее
компоненты IBTable, IBTransaction, IBQuery со вкладки Interbase и
компонент IBSource со вкладки Data Access. Компонент IBDataBase1 предназначен для связи с базой данных. На странице
свойств диспетчера объектов необходимо определить имя набора данных (DataBaseName),
параметры доступа (Params) и компонент для работы с транзакциями по умолчанию
(DefaultTransaction). В разделе «Params»
необходимо ввести имя пользователя, пароль и тип кодировки символов: user_name=SYSDBA password=masterkey lc_ctype=WIN1251 Свойство LoginPrompt следует установить в false, в том случае если нет необходимости запрашивать
имя пользователя и пароль при каждом подключении к базе данных. В противном
случае следует установить это свойство в значение true. Компонент IBTransaction предназначен для управления транзакциями приложения
с базой данных. Транзакция - набор логически связанных операций, работающих с
данными базы данных, и либо переводящий базу данных из одного целостного
состояния в другое, либо нет (т.е. оставляющий БД в целостном состоянии,
существовавшем до начала транзакции). Транзакции обладают следующими
свойствами: упорядочиваемостью, неделимостью, постоянством. Упорядочиваемость
гарантирует, что если две или более транзакции выполняются в одно и то же
время, то конечный результат выглядит так, как если бы все транзакции
выполнялись последовательно в некотором (в зависимости от системы) порядке.
Неделимость означает, что когда транзакция находится в процессе выполнения, то
никакой другой процесс не видит ее промежуточные результаты. Постоянство
означает, что после фиксации транзакции никакой сбой не может отменить
результатов ее выполнения. Базовыми примитивами при работе с транзакциями
являются: Start Transaction –
начать транзакцию; Commit – завершить транзакцию и принять сделанные
изменения; RollBack - завершить транзакцию и отменить сделанные
изменения. В компоненте IBTransaction необходимо установить свойство DefaultDatabase, указав в нем имя компонента IBDatabase. Компонент IBQuery предназначен для передачи запросов от клиентского
приложения серверу баз данных. На странице свойств необходимо указать компонент
управления транзакциями IBTransaction и заполнить редактор предложений SQL. Компонент DataSource выполняет связь источника данных (TIBQuery, TIBTable и
др.) и интерфейсных компонентов формы для отображения данных. На странице свойств следует указать компонент источник данных DataSet (в
нашем случае IBQuery). Свойства
основных компонентов на форме Form1: Обработчик событий для компонента Button1
(…): procedure TForm1.Button1Click(Sender: TObject); begin begin if
OpenDialog.Execute then begin //Выводим его в строку редактирования
EdDataBaseName.Text:=OpenDialog.FileName; //Устанавливаем имя для компонента IBDataBase
DataModule2.IBDataBase1.DatabaseName:=OpenDialog.FileName; //Устанваливаем связь с базой данных
DataModule2.IBDataBase1.Connected:=true; //Активизируем запрос DataModule2.IBQuery1.Active:=true; end; end; end; Обработчик событий для компонента Button2
(Обновить): procedure TForm1.Button2Click(Sender: TObject); begin //Завершаем транзакцию. Запрос
закрывается. DataModule2.IBQuery1.Transaction.Commit; //Вновь активизируем запрос DataModule2.IBQuery1.Active:=true;
end; После запуска приложения и
выбора файла базы данных (test1.GDB) главная форма проекта имеет вид: Вывод: В ходе выполнения
лабораторной работы бали проинсталлированы СУБД InterBase и оболочка IB Expert.
Была создана и зарегистрирована новая база данных в соответствии с вариантом
задания (вариант #7), создана таблица и заполнена данными. Было разработано
приложение средствами среды Delphi для
установки соединения с указанным набором данных. Также был исследован
механизм работы транзакций с помощью разработанного приложения и оболочки IB Expert. |
| |