Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
01.05.2014
Размер:
348.67 Кб
Скачать

Федеральное агентство по образованию Российской Федерации

Волжский политехнический институт (филиал)

Волгоградского государственного технического университета

Кафедра «Информатика и технология программирования»

Лабораторная работа №1

по дисциплине «Базы данных»

Выполнил: студент гр. ВВТ-210

Царьков А. В.

Проверил: доцент

Рыбанов А.А.

Волжский 2008г.

Лабораторная работа №1

АДМИНИСТРИРОВАНИЕ СЕРВЕРА С ПОМОЩЬЮ УТИЛИТЫ IBEXPERT.

УСТАНОВКА СОЕДИНЕНИЯ С СЕРВЕРОМ

Цель работы: Ознакомиться с процессом инсталляции СУБД InterBase и оболочки IB Expert. Научится устанавливать соединение с сервером из программных систем, создавать базу данных и произвести элементарные действия с ней как c удаленного, так и локального компьютера.

№ вар.

Среда программирования

Поля таблицы

7

Delphi

Преподаватель, курс, предмет

Выполнение задания:

Утилита 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).

В клиентской части окна расположим компонент DBGrid со вкладки DataControls для отображения результатов запроса IBQuery. В качестве источника данных укажем компонент DataSource.

Свойства основных компонентов на форме 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.