Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных




Скачать 130.03 Kb.
НазваниеЛабораторная работа №2. (6 часов) Тема № Системы управления базами данных
Дата конвертации15.02.2016
Размер130.03 Kb.
ТипЛабораторная работа
источникhttp://sgpi.ru/userfiles/Лабораторная работа №2.doc
Конспекты лабораторных занятий


Лабораторная работа №2.

(6 часов)


Тема № 2. Системы управления базами данных


Создание и подключение базы данных


Задание: На лабораторных занятиях выполняется примерный вариант задания. На самостоятельную работу планируется выполнение индивидуального варианта по образцу задания проделанного на занятиях. Выполнение работы разбивается на 4 этапа:

  • Создание проекта в Delphi для подключения таблицы базы данных для варианта по образцу.

  • Программирование редактирования, фильтрации и вычислений по полям базы данных для варианта по образцу.

  • Создание проекта в Delphi для подключения таблицы базы данных для индивидуального варианта.

  • Программирование редактирования, фильтрации и вычислений по полям базы данных для индивидуального варианта.


Основные понятия, определения, рассматриваемые на данном занятии

  1. Компонент Table, его свойства и методы

  2. Компонент DataSourse, его свойства и методы

  3. Компоненты визуализации


Теоретическое введение


Компоненты Delphi, обеспечивающие доступ к БД

Имеются несколько основных компонентов (объектов), которые используют постоянно для доступа к БД. Эти объекты могут быть разделены на три группы:

  • 1.Невизуальные: Table, Query, TDataSet, TField

  • 2.Визуальные: DBGrid, DBNavigator, DBEdit, DBMemo.

  • 3. Связующие: TDataSource

Первая группа включает невизуальные классы, которые используются для управления таблицами и запросами. Эта группа сосредотачивается вокруг компонент типа Table, Query, и классами TDataSet и TField. В Палитре компонент они расположены на странице Data Access и BDE.

Вторая группа классов - визуальные, которые показывают данные пользователю, и позволяют ему просматривать и модифицировать их. Эта группа классов включает компоненты типа DBGrid, DBNavigator, DBEdit, DBMemo, DBImage и DBComboBox. В Палитре Компонентов они расположены на странице Data Controls.

Имеется и третий тип классов, который используется для того, чтобы связать предыдущие два типа объектов. К 3 типу относится только невизуальный компонент DataSource.

При организации работы с БД следует иметь в виду определенный порядок связи между этими компонентами и БД:

БД <-> BDE <-> Невизуальный компонент <-> Связующий компонент <-> Визуальный компонент

Использование компонента Table





При использовании Table для доступа к таблице:

  1. Необходимо поместить на форму объект Table (страница BDE палитры компонент) и указать, с какой таблицей нужно работать. Для этого нужно заполнить в Инспекторе объектов свойства DatabaseName (алиас или строка, содержащая путь к каталогу БД) и TableName (имя файла БД).

  2. В DatabaseName можно либо указать каталог, в котором находятся БД (например, ‘C:\DELPHI\DEMOS\DATA’), либо выбрать из списка псевдонимов (алиасов) БД.

  3. Свойство Active объект Table установить в True. Table1.Active := True; или выполнить метод Open.

При запуске БД будет открываться автоматически.

Нет различия между результатом вызова метода и установки свойства. Метод Open, однако, сам заканчивается установкой свойства Active в True, так что лучше использовать свойство Active. Также, есть два способа закрыть БД.

Первый способ просто вызывать Close:

Table1.Close;

Или можно использовать свойство active:

Table1.Active := False;

Основное отличие между этими командами только то, что Open и Close это методы (процедуры), а Active - свойство.

Использование компонента Datasource


Компонент DataSource расположен на странице Data Access палитры компонент. Компонент DataSource используется в качестве соединителя между компонентами связанными с БД или запросом (Table или Query) и компонентами, визуализирующими данные, типа TDBGrid, TDBEdit и TDBComboBox. При этом в компоненте DataSource необходимо указать в свойстве DataSet соответствующий TTable или TQuery. Затем в компонентах визуализации в свойстве DataSource указывается имя компонента DataSource.

DataSource имеет свойство Enabled, и оно может использовано для временного разрыва связи копонентов визуализации от БД или запроса. Эти нужно, например, для программного сканирования всех записей в БД. Тогда, если таблица связана с визуальными компонентами, то каждый раз, когда вызывается метод TTable.Next, визуальные компоненты будут перерисовываться. Сканирование тысяч записей займет много меньше времени, чем время для перерисовки визуальных компонент.

В таких случаях нужно установить поле DataSource.Enabled:=False. Это позволит сканировать записи без перерисовки визуальных компонент. Это операция может увеличить скорость в некоторых случаях на несколько тысяч процентов. Логическое свойство TDataSource.AutoEdit указывает, переходит ли БД автоматически в режим редактирования при вводе текста в компоненте визуализации.

Использование визуальных компонентов

Как правило просмотр и редактирование таблиц БД производят в одном из двух вариантов:

1. Режим таблицы (используется комбинация компонентов DBGrid, DBNavigator)

2. Режим формы (используется комбинация визуальных компонентов DBEdit, DBText, DBMemo, DBImage, DBListBox, DBComboBox, DBRadioGroup …)

Располагаются визуальные компоненты на странице Data Controls.

Компонент DBGrid



Компонент DBGrid обеспечивает представление базы данных в виде таблицы. Свойства компонента DBGrid определяют вид таблицы и действия, которые могут быть выполнены над данными во время работы программы. Для того чтобы задать, какая информация будет отображена в таблице во время работы программы, нужно сначала определить источник данных для таблицы (установить значение свойства DataSource), затем — установить значения уточняющих параметров свойства Columns

Свойства компонента DBGrid

  • Name Имя компонента

  • DataSource Источник отображаемых в таблице данных

  • Columns Отображаемую в таблице информацию

  • Options = dgTitles Разрешает вывод строки заголовка столбцов

  • Options = dgIndicator Разрешает вывод колонки индикатора. Во время работы с базой данных текущая запись помечается в колонке индикатора треугольником, новая запись — звездочкой, редактируемая — спец. знаком

  • Options = dgColumnResize Разрешает менять во время работы программы ширину колонок таблицы

  • Options = dgColLines Разрешает выводить линии, разделяющие колонки таблицы

  • Options = dgRowLines Разрешает выводить линии, разделяющие строки таблицы

Чтобы установить значение свойства Columns, надо в окне Object Inspector выбрать это свойство и щелкнуть на кнопке с тремя точками. В результате открывается окно редактора колонок



Для того чтобы в компонент DBGrid добавить колонку, обеспечивающую просмотр содержимого поля записи файла данных, необходимо нажать кнопку Add New, находящуюся на панели инструментов в верхней части окна (это единственная доступная после запуска редактора кнопка), выделить добавленный элемент и, используя Object Inspector, установить значения свойств этой колонки . Свойство columns компонента DBGrid представляет собой массив компонентов типа TCoiumn. Каждой колонке соответствует элемент массива. Устанавливая значения свойств компонентов column, программист задает вид колонок компонента DBGrid и определяет вид всей таблицы.

Свойства объекта column

FieldName Поле записи, содержимое которого выводится в колонке

Width Ширина колонки в пикселах

Font Шрифт, используемый для вывода текста

Color Цвет фона колонки

Alignment Способ выравнивания текста. Текст может быть выровнен по левому краю (taLeftJustify), по центру (taCenter) или по правому (taRight Justify)

Title. Caption Заголовок колонки. Значением по умолчанию является имя поля записи

Title .Alignment Способ выравнивания заголовка. По левому краю (taLeftJustify), по центру (taCenter), по правому краю (taRight Justify)

Title. Color Цвет фона заголовка колонки

Title. Font Шрифт заголовка колонки

Компонент DB Navigator



Внешний вид компонента представляет собой сроку управляющих кнопок:



назначение управляющих кнопок



Можно прямо связать каждую кнопку компонента с методами класса TDataSet.

Фильтрация записей

Для использования выборки-фильтрации доступа к данным можно использовать простой фильтр или фильтр-диапазон.

Процедура ApplyRange позволяет установить фильтр-диапазон, который ограничивает диапазон просматриваемых записей. Например, в БД , поле CN имеет диапазон от 1000 до 10000. Если нужно чтобы были видны только те записи, которые имеют номер заказчика между 2000 и 3000, то используется метод ApplyRange, и еще два связанных с ним метода. Данные методы работают только с индексированным полем.

Вот процедуры, которые Вы будете чаще всего использовать при установке фильтров:

procedure SetRangeStart; procedure SetRangeEnd; procedure ApplyRange; procedure CancelRange;

Кроме того, у Table есть дополнительные методы для управления фильтрами:

procedure EditRangeStart; procedure EditRangeEnd; procedure SetRange;

Для использования этих процедур необходимо:

  1. Сначала вызвать SetRangeStart и использовать свойство Fields для определения начала диапазона.

  1. Затем вызвать SetRangeEnd и вновь использовать свойство Fields для определения конца диапазона.

  1. Первые два шага подготавливают фильтр, и теперь необходимо вызвать ApplyRange, и новый фильтр вступит в силу.

  1. Когда нужно прекратить действие фильтра - вызвать CancelRange.

Пример

with Table1 do

begin

EditRangeStart; {начало значение диапазона}

FieldByName('Matem').AsString := Edit1.Text;

EditRangeEnd; {конечное значение диапазона}

FieldByName('Matem').AsString := Edit2.Text;

ApplyRange; {применить диапазон}

end;

Создание фильтров

Простой фильтр использует 2 свойства Filter и Filtered. Перед установкой фильтра необходимо вызвать установить для TABLE свойстваActive:=FALSE, т.е. отключить БД. Далее в свойство Filter вносится текстовая строка условия фильтрации например 'CN>3'. Далее необходимо установить для логического свойства Filtered:=true и активизировать БД.

Пример:

TABLE1.Active:=FALSE;

table1.Filter:='matem<>3';

table1.Filtered:=true;

table1.Active:=true;

Здесь устанавливается фильтр для записей, где поле matem не равно 3.

Замечание. Если необходимо использовать в условии фильтрации строку, то необходима функция QuotedStr(строка) которая позволяет включить такую строку в строку фильтра:

Пример: Table1.Filter := 'Fio = ' + QuotedStr('M*'); - установка фильтра на фамилии, которые начинаются на М. Здесь так же можно использовать символ маски * для обозначения – любой.

Сортировка записей

Сортировка записей производится путем подключения индекса, т.е. индексирования. Фактически индекс – массив, содержащий нумерацию записей для отсортированного вида. Т.е. если записать абсолютные номера записей в том порядке, как они расположены в отсортированном списке записей, то это и будет индекс. Имея такой массив легко выводить записи в отсортированном порядке – выбирай запись с номером из индекса и добавляй ее на экран. Поскольку БД – файлы прямого доступа, то хранить отсортированный вид файла БД нет необходимости. Хранится только массив индекса. Это вариант логической сортировки. Физическая сортировка предполагает реальное переписывание файла БД. Очевидно, что логическая сортировка удобнее. Кроме того, можно иметь для 1 БД много индексов и подключать их по необходимости, что значительно сократит время на сортировку.

Как правило, индексы создаются при создании БД (Database Desktop), но можно из создавать и программным путем. Для подключения индекса достаточно записать в свойстве IndexName класса table строку с именем индекса. Пример: table1.IndexName:='Fio1'.


Ход выполнения:


  1. Изучаем теоретическое введение.

  2. Переходим в рабочий каталог для хранения базы данных и проекта, созданный в лабораторной работе №1.

  3. Создаем новый проект.

  4. Помещаем на форму основные компоненты подключения БД – Table, DataSource, DBGrid, DBNavigator. Добавляем кнопку Button – «Подключить».

  5. Проверяем вариант прямого подключения, для этого сделаем следующие установки

  • Компонент Table – для свойства Databasename выбираем созданный алиас mybase, для свойства Tablename выбираем prim.db.

  • Связываем компонент DataSource с Table (свойство DataSet).

  • Связываем компоненты DBGrid, DBNavigator с DataSource (свойство DataSource).

  1. Проверить работоспособность подключения. Для этого в режиме конструирования установить свойство (компонента Table) Active=True. При этом, в окне компонента DBGrid должно появиться изображение таблицы БД.

Примечание: Если в выпадающем списке свойства DatabaseName нет вашей БД, то значит были допущены ошибки при создании псевдонима. Следовательно необходимо создать Alias снова.

  1. Повторить подключение с помощью программы. Для этого создаем обработчик события – щелчка по кнопке «Подключить»:

table1.Active:=true;

  1. Проверить работу проекта и внести в БД 5-6 записей о фамилиях, адресах и оценках учеников. Проверить работу кнопок компонента DBNavigator.

  2. Выполним альтернативный вариант подключения, без использования алиаса. Для этого очистим свойства Table и поместим на форму кнопку «2-й вариант». Для нее создадим обработчик события щелчка:

Table1.DatabaseName:=extractfilepath(paramstr(0));

Table1.TableName:='prim.db';

Table1.Active:=true;

Здесь мы используем специальные функции Delphi. Функция paramstr(0) – выдает путь и имя исполняемого файла проекта, если база данных и этот файл расположены в одном каталоге, то путь будет совпадать. Функция extractfilepath выделяет путь из полного имени файла.

  1. Выполним третий вариант подключения. Для этого поместим на форму кнопку «3-й вариант» и компонент OpenDialog. Для кнопки создадим обработчик события щелчка мыши:

OpenDialog1.Execute;

if OpenDialog1.FileName<>'' then

begin

Table1.DatabaseName:=extractfilepath(OpenDialog1.FileName);

Table1.TableName:=extractfilename(OpenDialog1.FileName);

Table1.Active:=true;

end;

Функция extractfilename выделяет имя из полного имени файла.

  1. Проверить работоспособность проекта.

  2. Создадим программным образом фильтрацию данных. Для примера выберем вариант записей с оценками по математике 4 и 5. Поместим на форму кнопку «Выделить оценки». Для кнопки создадим обработчик события щелчка мыши:

TABLE1.Active:=FALSE;

table1.Filter:='matem>3';

table1.Filtered:=true;

table1.Active:=true;

Проверить работу проекта.

  1. Подключим программным образом индекс для сортировки данных. Для примера выберем сортировку по фамилиям – индекс 1Fio. Поместим на форму кнопку «Сортировка». Для кнопки создадим обработчик события щелчка мыши:

table1.IndexName:='1Fio';

Проверить работу проекта.

  1. Произведем вычисления среднего балла по математике. Для этого Поместим на форму кнопку «Вычислить» и компонент Edit1 для вывода результата. Для кнопки создадим обработчик события щелчка мыши:

procedure TForm1.Button6Click(Sender: TObject);

var n,k:integer; s:real;

begin

if not(table1.Active) then table1.Active:=true;

n:=table1.RecordCount;

table1.First;

s:=0;

for k:=1 to n do

begin

s:=s+table1.Fields[2].AsInteger;

table1.Next;

end;

s:=s/n;

edit1.Text:=floattostr(s);

end;

Здесь используется сканирование по базе данных с вычислением суммы. Поле оценок по математике имеет номер 2, так как нумерация полей начинается с нуля.

  1. Проверить работу всего проекта.

  2. Продемонстрировать преподавателю работу разработанного образца проекта.

  3. Получить от преподавателя индивидуальное задание и создать проект (по аналогии) для выполнения индивидуального задания.

  4. Подготовиться к защите лабораторной работы, которая включает в себя демонстрацию индивидуального варианта, защиту по контрольным вопросам теоретической части работы.


Контрольные вопросы:

  1. Какие визуальные компоненты доступа к базам данных вы использовали в своей работе?

  2. Какие невизуальные компоненты доступа к базам данных вы использовали в своей работе?

  3. Как установить условие фильтрации?

  4. Как установить индекс?

  5. Как производится пошаговое сканирование базы данных?

  6. Как можно считать значение поля для заданного номера записи?

  7. Что делает метод AsInteger и какие варианты аналогичных методов есть у класса Table?

  8. Что делают методы Next First и какие варианты аналогичных методов есть у класса Table?

  9. Как определить количество записей у базы данных не просматривая ее?


Литература

  1. Избачков Ю.С., Петров В.Н. Информационные системы: учебник для вузов. 2-е изд. –СПб.: Питер. 2005. -656 с.

  2. Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика. – М.: Академия. 2000.-816 с.

  3. Хомоненко а.Д., Цыганков В.М., Мальцев М.Г. Базы данных. – СПб.: «Корона Принт». 2004. -736 с.

  4. Бобровский С. Delphi 7: учебный курс. – СПб: Издательство “Питер”, 2005. – 736 с.

  5. Бобровский С. Delphi 5: учебный курс. – СПб: Издательство “Питер”, 2000. – 640 с.

  6. Фаронов В.В. Delphi. Программирование на языке высокого уровня. –СПб.: Питер.2004.-640 с.

  7. Кузин А.В., Левонисова С.В. Базы данных. –М.: Академия. 2005. -320 с.

  8. Дарахвелидзе П.Г., Марков Е.П. Программирование в Delphi 7. – СПб.:БХВ-Петербург. 2005. -784 с.

  9. Фаронов В.В., Шумаков П.В. Delphi 5. Руководство разработчика баз данных. –М.: «Нолидж». 2000. -640 с.


Лабораторная работа №2. Индивидуальные задания.

Используются получаемые от преподавателя базы данных или базы данных, разработанные в лабораторной работе №1. При этом базы данных дополняются записями по указанию преподавателя.

№ варианта

Задание

1

Открыть базу данных sss.db в компоненте Table1 и определить количество записей для которых оценки поля matem 2 или 3.

2

Открыть базу данных www.db в компоненте Table1 и определить количество записей для которых оценки поля matem 3 или 4.

3

Открыть базу данных qqq.db в компоненте Table2 и определить число записей у которых все оценки в сумме равны 10.

4

Открыть базу данных qqq.db в компоненте Table1 и определить число записей у которых поле фамилии Fio содержит буквы 'ов' .

5

Открыть базу данных сс.db в компоненте Table2 и вывести в Memo1 фамилии поля Fio у которых в поле адреса Adr есть буква 'а' .

6

Создать процедуру, которая подключает базу данных sss.db в компоненте Table2 и устанавливает фильтр ‘matem>3’.

7

Создать процедуру, которая устанавливает фильтр для базы данных sss.db в компоненте Table1. На форме 3 компонента Edit, которые определяют значения полей matem, fizika, himia.

8

Создать индексы к полям базы данных sss.db по возрастанию и убыванию. Создать программу подключения базы данных sss.db и выбора варианта сортировки.

9

Открыть базу данных sss.db в компоненте Table1 и определить количество записей для которых оценки поля matem 4 или 5.

10

Открыть базу данных www.db в компоненте Table1 и определить количество записей для которых оценки поля matem не равны 3.

11

Открыть базу данных qqq.db в компоненте Table2 и определить число записей у которых все оценки в сумме больше заданной величины.

12

Открыть базу данных qqq.db в компоненте Table1 и определить число записей у которых поле фамилии Fio содержит буквы 'го' .

13

Открыть базу данных сс.db в компоненте Table2 и вывести в Memo1 фамилии поля Fio у которых в поле адреса Adr есть цифра '4' .

14

Создать процедуру, которая подключает базу данных sss.db в компоненте Table2 и устанавливает фильтр ‘matem<4’.

15

Создать индексы к полям базы данных cc.db по возрастанию и убыванию. Подключить базу данных и выбрать вариант сортировки из меню.

16

Создать индексы к полям базы данных qqq.db по возрастанию и убыванию. Подключить базу данных и выбрать вариант сортировки из меню.

Похожие:

Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных icon1. Понятие системы управления базами данных
Основная особенность субд – это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы,...
Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных iconРабочая программа учебной дисциплины «Системы управления базами данных»
Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных iconИнституциональный механизм управления системой государственных закупок
Данная дисциплина рассчитана на 108 часов. Из них: 40 аудиторных часов (20 часов – лекции, 20 часов – семинары) и 68 часов самостоятельная...
Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных iconЛабораторная работа №2
Тема: Системное программное обеспечение. Операционные системы, операционные оболочки, утилиты
Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных iconЛабораторная работа по теме
Мбоу «сош №8 г. Петровска Саратовской области» Лабораторная работа в среде ms dos
Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных iconПрограмма работы с базой данных Blackfish sql "Книги" (books). Подкаталог delploy\database содержит базу данных, подкаталоги deploy\client и deploy\server соответственно клиентскую и серверную части приложения
Программы работы с базами данных требуют, чтобы файлы баз данных находились в каталоге D:\Database
Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных iconМетодические указания и пояснения к выполнению курсовой работы на тему "структурно-параметрический синтез системы управления с сервомеханизмом"
Курсовая работа ориентирована на выполнение графоаналитического расчета системы управления (СУ) с сервомеханизмом (СМ). См представляет...
Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных iconПрограмма и материалы элективного курса для учащихся 10-11 классов «Delphi : работа с базами данных в примерах» Пояснительная записка Error: Reference source not found
Учебные материалы к элективным курсам по информатике для 10 11 классов, выпуск 2
Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных icon1 Основные компоненты системы баз данных Основными компонентами системы баз данных являются
Основными компонентами системы баз данных являются сама бд, субд, оборудование, организационно – методическое обеспечение. Субд включает...
Лабораторная работа №2. (6 часов) Тема № Системы управления базами данных iconЛабораторная работа №1 Тема: Операционная система Windows
Операционная система это программа, которая осуществляет управление всеми устройствами компьютера и процессом обработки на нем информации....
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©kzdocs.docdat.com 2012
обратиться к администрации
Документы
Главная страница