Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания лабы БД программисты.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
797.7 Кб
Скачать

Государственное бюджетное образовательное учреждение

среднего профессионального образования

«Уфимский колледж информатики, статистики и вычислительной техники»

Методические указания

к выполнению

лабораторных работ

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

специальность 230105

курс III

преподаватель: Махмутова Г.М.

2012

Содержание

Цели и задачи лабораторных работ

Лабораторная работа № 1. Анализ предметной области. Проектирование структуры базы данных

Лабораторная работа № 2. Создание таблиц БД инструментальным способом

Лабораторная работа № 3. Разработка приложений в Delphi

Лабораторная работа № 4. Создание таблиц БД навигационным способом

Лабораторная работа № 5. Определение отношений между таблицами

Лабораторная работа № 6. Создание таблиц БД реляционным способом

Лабораторная работа № 7. Навигация НД. Модификация НД

Лабораторная работа № 8. Сортировка и фильтрация НД

Лабораторная работа № 9. Поиск записей

Лабораторная работа № 10. Запросы

Лабораторная работа № 11. Запросы с параметром. Динамический запрос

Лабораторная работа № 12. Простой отчет (Rave Report, QReport)

Лабораторная работа № 13. Отчет с группировкой. Отчет со связанными таблицами.

Лабораторная работа № 14. Экспорт и импорт данных из Word, Excel

Лабораторная работа № 15. Экспорт данных в Calc, Writer

Цели и задачи лабораторных работ

Лабораторные работы по курсу «Базы данных» предназначены для студентов 3 курса очной формы обучения по специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных сетей» и имеют следующие цели и задачи:

    • систематизацию и закрепление теоретических и практических знаний в области организации, проектирования и создания баз данных;

    • изучение конкретной системы управления базами данных;

    • освоение навыков практической работы в конкретной аппаратно-программной среде СУБД.

В конце лабораторных работ приведены варианты заданий для лабораторных работ.

В качестве примера приведен отчет студента, разработанный в среде Delphi.

Рекомендуется оформить отчет, который содержит следующие элементы:

  1. Титульный лист;

  2. Отчеты по каждой лабораторной работе;

  3. Машинный листинг программы - в виде приложения.

Лабораторная работа №1 Тема: Анализ предметной области задачи. Проектирование структуры базы данных

Цель: Изучить предметную область задачи. Построить ER-диаграмму задачи. Произвести нормализацию БД.

Задание:

  1. Постановка задачи. Описать информацию об объектах предметной области, которая требуется для решения задачи и которая должна храниться в БД.

  2. Сформулировать задачи, которые будут решаться с использованием данной БД, и краткое описание алгоритмов их решения.

  3. Описать входные документы, которые служат основанием для заполнения данными БД.

  4. Описать выходные документы, которые должны генерироваться в системе.

  5. Разработать ER-диаграмму задачи.

  6. Все таблицы привести к 3НФ.

  7. Оформить отчет.

Постановка задачи

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

Целью задачи является быстрое и удобное получение информации об оплате за обучение, а также её хранении и обновлении в продолжение всего учебного периода и удаления её в случае окончания студентом учебного заведения.

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

Данная задача позволяет быстро получить необходимые данные по мере их необходимости и предоставлять их на бумажном носителе, если в этом есть необходимость.

Программа обеспечивает копирование выбранной информации, её сортировку и фильтрацию, а так же редактирование и распечатку на принтере.

Входными документами для задачи являются:

  • данные паспорта студента:

  • Фамилия;

  • Имя;

  • Отчество;

  • Номер и серия паспорта;

  • Прописка.

  • справочные данные о специальности:

  • Название;

  • Плата;

  • Срок обучения;

- данные о договорах:

  • № договора;

  • Дата заключения;

  • Сумма.

- платёжные поручения:

  • № платёжного документа;

  • Дата оплаты;

  • Сумма.

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

Выходным документом является:

- полная карточка студента об оплате обучения.

О сновной экономический эффект достигается за счёт сокращения времени оформления входной и выходной информации. Сокращение времени происходит за счет компактного отображения данных о студенте с последующей возможностью их создания и редактирования.

ER - диаграмма

Структура БД

Лабораторная работа №2 Тема: Создание таблиц бд инструментальным способом

Цель: Изучить среду программы Database Desktop. Создать таблицы БД инструментальным способом. Разработать приложение в Delphi.

Задания:

  1. Изучить среду Database Desktop.

  2. Создать таблицы в Database Desktop для задачи.

  3. Создать псевдоним.

  4. Создать приложение в Delphi.

  5. Использовать модуль данных.

  6. Для набора данных создать вычисляемое поле, поле выбора данных.

  7. Оформить отчет.

1) Задание структуры таблиц.

Для создания таблиц БД инструментальным способом нужно воспользоваться программой Database Desktop.

Процесс создания новой таблицы:

FileNewTable

В начале создания таблицы в окне Create Table выбирается её формат, в нашем случае это Paradox7.

Задаём структуру таблиц:

Таблица Dogovor.db

Название поля

Тип

Размер

Ключ

1.

Nom_dogovora

A (Alpha)

10

*

2.

Kod_styd

A (Alpha)

4

3.

Data

D (Date)

4.

Symma

$ (Money)

Таблица Gryppa.db

Название поля

Тип

Размер

Ключ

1.

Nazvanie_gr

A (Alpha)

4

*

2.

Kyrator

A (Alpha)

20

3.

Kod_spec

A (Alpha)

4

Таблица Plat_por.db

Название поля

Тип

Размер

Ключ

1.

Nom_plat_por

A (Alpha)

10

*

2.

Nom_dogovora

A (Alpha)

10

3.

Data_opl

D (Date)

4.

Symma

$ (Money)

Таблица Specialnost.db

Название поля

Тип

Размер

Ключ

1.

Kod_spec

A (Alpha)

4

*

2.

Nazvanie

A (Alpha)

30

3.

Srok_ob

N (Number)

4.

Plata_b

$ (Money)

5.

Plata_k

$ (Money)

Таблица Stydent.db

Название поля

Тип

Размер

Ключ

1.

Kod_styd

A (Alpha)

4

*

2.

FIO

A (Alpha)

20

3.

Forma_ob

A (Alpha)

10

4.

Nazvanie_gr

A (Alpha)

4

5.

Nom_ser_pasp_st

A (Alpha)

15

5.

Propiska

A (Alpha)

15

5.

Nom_ser_pasp_rod

A (Alpha)

15

2) Создание псевдонима.

Чтобы подключиться к БД в Delphi, необходимо создать псевдоним, который указывает местонахождение файла БД и представляет собой специальное имя для обозначения каталога.

В Delphi – приложении доступ к БД осуществляется через BDE (процессор БД фирмы Borland).

Псевдоним создаётся с помощью программы BDE – Администратор.

После запуска программы выбираем:

ObjectNew

В появившемся окне оставляем без изменения тип БД – Standart и нажимаем OK.

В левой части окна указываем имя псевдонима, в нашем случае Oplata.

Чтобы сохранить все изменения, выбираем:

ObjectApply.

3) Создание приложения в Delphi.

Набор невизуальных компонентов работы СУБД группируются в создаваемой программе в специальном модуле данных.

Модуль данных представляет собой хранилище объектов, которое позволяет управлять их работой.

Новый модуль добавляется командой:

FileNewData Module

Затем созданный модуль(Unit2) необходимо подключать ко всем формам, где происходит работа с БД.

На модуле данных размещаем:

  • 5 невизуальных компонентов Table (вкладка BDE):

    • TSpec

DatabaseName: Oplata;

TableName: Specialnost.db;

    • TGryppa

DatabaseName: Oplata;

TableName: Gryppa.db;

    • TStydent

DatabaseName: Oplata;

TableName: Stydent.db;

    • TPlatPor

DatabaseName: Oplata;

TableName: Plat_por.db;

    • TDogovor

DatabaseName: Oplata;

TableName: Dogovor.db.

  • 5 невизуальных компонентов DataSourse (вкладка DataAccess):

- DSSpec

DataSet: TSpec;

  • DSGryppa

DataSet: TGryppa;

  • DSStydent

DataSet: TStydent;

  • DSPlatPor

DataSet: TPlatPor;

  • DSDogovor

TDogovor.

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

Для управления набором данных необходим визуальный компонент DBNavigator (вкладка DataControls), у которого также необходимо указать свойство DataSource и определить состав видимых кнопок при помощи свойства VisibleButtons.

Создание поля выбора данных:

Поле выбора данных создаётся с помощью редактора полей. Для этого в контекстном меню редактора выбирается пункт:

New Field

Открывается одноимённое диалоговое окно, в котором указываем следующие значения:

Name – spec;

Type – String;

Size – 15;

Field Type – LookUp;

Key Fields – Kod_spec (поле, связывающее таблицы);

DataSet – TSpec (связываемый набор данных);

LookUp Keys – Kod_spec (поле соответствия);

Result Field – Nazvanie (подставляемое поле).

Задание для самостоятельной работы:

Разработать приложение с использованием ADO технологий.

  1. Создать таблицы в MS Access для задачи.

  2. Создать приложение в Delphi.

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

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

Тема: Разработать приложение в Delphi

Цель: Разработать приложения в Delphi, используя базы данных Paradox и MS Access.

Задания:

  1. Разработать модуль для заполнения таблицы базы данных (обеспечить заполнение текущей записи).

  2. Используя навигацию по записям, произвести расчет в приложении.

  3. Оформить отчет.

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

Тема: Создание таблиц БД навигационным способом

Цель: Создать таблицы БД навигационным способом.

Задание:

  1. Познакомиться с методом CreateTable набора данных.

  2. Создать таблицы для задачи навигационным способом.

  3. Отобразить таблицы в Delphi.

  4. Оформить отчет.

Для создания новой таблицы БД навигационным способом используется метод CreateTable. Перед вызовом данного метода требуется определить структуру таблицы (то есть описать все её поля), задать расположение БД, имя и тип таблицы, а также определить индексы при необходимости. Это осуществляется путём установки соответствующих свойств.

С помощью установки свойства DatabaseName задаётся расположение БД. Этому свойству можно задать имя заранее определённого псевдонима, либо путь к каталогу, где содержится БД.

Имя файла, содержащего таблицу БД, задаётся с помощью свойства TableName.

Тип таблицы определяет свойство TableType, которое в нашем случае имеет значение ttParadox.

Свойство FieldDefs содержит список полей таблицы. Перед вызовом метода CreateTable должно быть определено хотя бы одно поле новой таблицы. Прежде всего, содержимое свойства FieldDefs должно быть удалено с помощью метода Clear, так как в нём может содержаться информация о полях другой таблицы, с которой ранее был связан набор данных. Для добавления новых полей в список используется метод Add, где указываются имя, тип и размер поля.

Для определения индексов используется свойство IndexDefs, содержимое которого также изначально удаляется. Добавление индексов в список производится при помощи метода AddIndex.

Также необходимо использовать такие невизуальные компоненты, как Table и DataSource, чтобы отобразить данные.

Создание таблиц:

  1. Specialnost.db

with Table1 do begin

Active := False;

DatabaseName := 'Oplata';

TableType := ttParadox;

TableName := 'Specialnost';

if not Table1.Exists then begin

with FieldDefs do begin

Clear;

with AddFieldDef do begin

Name := 'Kod_spec';

DataType := ftString;

Size:=4;

end;

with AddFieldDef do begin

Name := 'Nazvanie';

DataType := ftString;

Size := 30;

end;

with AddFieldDef do begin

Name := 'Srok_ob';

DataType := ftFloat;

end;

with AddFieldDef do begin

Name := 'Plata_b';

DataType := ftCurrency;

end;

with AddFieldDef do begin

Name := 'Plata_k';

DataType := ftCurrency;

end;

end;

with IndexDefs do begin

Clear;

with AddIndexDef do begin

Name := '';

Fields := 'Kod_spec';

Options := [ixPrimary];

end;

end;

CreateTable;

end;

end;

table1.Active:=true;

DataSource1.DataSet:=table1;

DBGrid1.DataSource:=DataSource1;

2) Dogovor.db

with Table2 do begin

Active := False;

DatabaseName := 'Oplata';

TableType := ttParadox;

TableName := 'Dogovor';

if not Table2.Exists then begin

with FieldDefs do begin

Clear;

with AddFieldDef do begin

Name := 'Nom_dogovora';

DataType := ftString;

Size:=10;

end;

with AddFieldDef do begin

Name := 'Kod_styd';

DataType := ftString;

Size := 4;

end;

with AddFieldDef do begin

Name := 'Data';

DataType := ftDate;

end;

with AddFieldDef do begin

Name := 'Symma';

DataType := ftCurrency;

end;

end;

with IndexDefs do begin

Clear;

with AddIndexDef do begin

Name := '';

Fields := 'Nom_dogovora';

Options := [ixPrimary];

end;

end;

CreateTable;

end;

end;

table2.Active:=true;

DataSource2.DataSet:=table2;

DBGrid2.DataSource:=DataSource2;

3) Gryppa.db

with Table3 do begin

Active := False;

DatabaseName := 'Oplata';

TableType := ttParadox;

TableName := 'Gryppa';

if not Table3.Exists then begin

with FieldDefs do begin

Clear;

with AddFieldDef do begin

Name := 'Nazvanie_gr';

DataType := ftString;

Size:=4;

end;

with AddFieldDef do begin

Name := 'Kyrator';

DataType := ftString;

Size := 20;

end;

with AddFieldDef do begin

Name := 'Kod_spec';

DataType := ftString;

Size := 4;

end;

end;

with IndexDefs do begin

Clear;

with AddIndexDef do begin

Name := '';

Fields := 'Nazvanie_gr';

Options := [ixPrimary];

end;

end;

CreateTable;

end;

end;

table3.Active:=true;

DataSource3.DataSet:=table3;

DBGrid3.DataSource:=DataSource3;

  1. Stydent.db

with Table5 do begin

Active := False;

DatabaseName := 'Oplata';

TableType := ttParadox;

TableName := 'Stydent';

if not Table5.Exists then begin

with FieldDefs do begin

Clear;

with AddFieldDef do begin

Name := 'Kod_styd';

DataType := ftString;

Size := 4;

end;

with AddFieldDef do begin

Name := 'Nazvanie_gr';

DataType := ftString;

Size:=4;

end;

with AddFieldDef do begin

Name := 'FIO';

DataType := ftString;

Size := 20;

end;

with AddFieldDef do begin

Name := 'Forma_ob';

DataType := ftString;

Size := 10;

end;

with AddFieldDef do begin

Name := 'Nom_ser_pasp_st';

DataType := ftString;

Size := 15;

end;

with AddFieldDef do begin

Name := 'Nom_ser_pasp_rod';

DataType := ftString;

Size := 15;

end;

with AddFieldDef do begin

Name := 'Propiska';

DataType := ftString;

Size := 15;

end;

end;

with IndexDefs do begin

Clear;

with AddIndexDef do begin

Name := '';

Fields := 'Kod_styd';

Options := [ixPrimary];

end;

end;

CreateTable;

end;

end;

table5.Active:=true;

DataSource5.DataSet:=table5;

DBGrid5.DataSource:=DataSource5;

  1. Plat_por.db

with Table4 do begin

Active := False;

DatabaseName := 'Oplata';

TableType := ttParadox;

TableName := 'Pl_por';

if not Table4.Exists then begin

with FieldDefs do begin

Clear;

with AddFieldDef do begin

Name := 'Nom_pl_por';

DataType := ftString;

Size := 10;

end;

with AddFieldDef do begin

Name := 'Nom_dogovora';

DataType := ftString;

Size:=10;

end;

with AddFieldDef do begin

Name := 'Data_opl';

DataType := ftDate;

end;

with AddFieldDef do begin

Name := 'Symma';

DataType := ftCurrency;

end;

end;

with IndexDefs do begin

Clear;

with AddIndexDef do begin

Name := '';

Fields := 'Nom_pl_por';

Options := [ixPrimary];

end;

end;

CreateTable;

end;

end;

table4.Active:=true;

DataSource4.DataSet:=table4;

DBGrid4.DataSource:=DataSource4;