УЗБЕКСКОЕ  АГЕНТСТВО  СВЯЗИ И  ИНФОРМАТИЗАЦИИ

 

 

ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

 

 

 

 

 

 

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

 

 

 

 

 

 

     Банки, базы данных

 

          Методические указания к выполнению лабораторных работ

 

 

 

 

 

 

 

 

 

 

 

 

 

Ташкент 2011

 

Авторы :  Салахутдинов В.Х., Гаипназаров Т.С.

«Банки, базы данных» /ТУИТ.   34с.  Ташкент, 2011

 

      Методические указания по курсу «Банки, базы данных» предназначены для студентов  направления 5521900-«Информатика и информационные технологии» учебным планом предусмотрено проведение лабораторных занятий на 4-м семестре обучения.

       Методические указания разработаны с целью закрепления материала курса,  изучения    методов проектирования баз данных для ЭВМ на основе разрабатываемой модели данных предметной области.

 Предусматривается изучение методов анализа предметной области, выделение объектов и их свойств, построение неформальной модели «Сущность - связь».  

Лабораторные занятия включают в себя также  разработку программ создания и ведения баз данных, поиска и обработки данных с применением языков высокого уровня  и SQL.

 

Рецензенты: 

 к.т.н., доц. каф. «ПОИТ» , ТАТУ                               Комилов М.М.

    

 к.т.н, доц. кафедры «Автоматизация,

Информатика и Управление »    ТИХТ                       Акрамходжаев Ю.Т.

 

Ташкентский Университет Информационных Технологий, 2011

 

 

 

 

ВВЕДЕНИЕ

 

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

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

 

 

С этой целью по курсу банки и базы данных были выполнены следующие лабораторные работы:

 

 

 

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

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

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

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

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

 

 

 

 

 

                                   

Лабораторная Работа 1.

Тема: Анализ предметной области.  Разработка модели "СУЩНОСТЬ-СВЯЗЬ".

 

Цель работы: научиться:

- проводить обследование заданной предметной области (ПО),

- формулировать постановку задачи  по разработке неформальной модели ПО,

- реализовывать поставленную задачу.

Задание.

1.Провести анализ предметной области,

2. Выявить основные объекты,

3. Определить свойства выявленных объектов,

4. Построить объектную систему.

5. Разработать для ПО модель «Сущность - связь»

6. Подготовить отчет по лабораторной работе №1.

   Пример анализа ПО  «Склад». 

    В результате анализа ПО выделены следующие основные объекты (табл.1.1)

и свойства объектов (таблицы 1.2 -1.7), построена объектная система (рис. 1).

    1. Основные объекты ПО.

                                                      Таблица 1.1

 №

объекты

      Количество

1.

2.

3.

4.

5.

6.

Склад

Материалы

Поставщики     

Потребитель

Город

Детали

n1

n2

n3

n4

n5

n6

                                                                                                     

 2. Свойства объектов.   

  Склад                                         Таблица 1.2

Индекс

Адрес склада

    Название

   

 

 

      

 Материалы                                                            Таблица1.3

Индекс

Название

 

Приход на дату

Расход на дату

Остаток     на дату

 

 

 

 

 

  

                                                                                                   

 

 

     

Поставщики                                                  Таблица1.4

Индекс

     Имя

     Адрес

  Счет

 

 

 

 

                                                                                                                  

Потребители                                                 Таблица1.5

Индекс

    Имя

     Адрес

   Счет

 

 

 

 

 

Город    Таблица1.6                                                                                                                

Индекс

 

Название

 

 

 

 

 

Детали                                                      Таблица 1.7

Индекс

Название

Приход на дату

 Расход на  дату

Остаток

На дату

 

 

 

 

 

                                                                                                                                                                                                                             

 

                                         

3. Объектная система.

      Рис. 1.  Объектная система.

 

 

 

 

4.  Модель "Сущность - Связь".  

   

 Модель "Сущность - Связь" строится с использованием  трех основных компонент, составляющих ПО : СУЩНОСТЬ , АТРИБУТ , СВЯЗЬ. Составляющая "ВРЕМЯ" в составе конструктивных элементов может присутствовать только в неявном виде. Время в модели представлено атрибутами: год, дата и тому подобным.

При построении модели СВЯЗЬ выступает как абстракция, существующего объекта, процесса или явления. АТРИБУТ представляет характеристику с именем, которая принимает значения из некоторого множества значений.

    К связям в модели "Сущность - Связь" необходимо добавить отношения, присущие для каждого типа связи между двумя сущностями(бинарные, тернарные, ... , n – нарные ).

Информация о проекте оформляется в виде диаграммы, для этого обозначают: типы сущностей - прямоугольниками, атрибуты - овалами, соединяя их с соответствующими сущностями -  ненаправленными ребрами. Связи(отношения) - ромбами, соединяя их, в общем случае, ненаправленными ребрами с типами сущностей, а при бинарных связях направленными ребрами.

Если Модель "Сущность - Связь" отражает, только часть ПО, то в этом случае ее называют локальной. Для более полной информации о ПО ее необходимо дообследовать  и построить, если это необходимо,   локальные модели других частей ПО. После чего локальные модели объединяются в композиционно-единое представление.

На рисунке  2 приведен пример модели "Сущность - Связь" для ПО «Склад». Модель  объединяет в себе пять локальных моделей: город, склад, материалы, детали, поставщик, потребитель.

Связям между объектами модели даны следующие имена.

 

 

 

Рис.2.  Пример Модели  "Сущность - Связь"

 

 

 

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

 

 Тема: Создание реляционной модели  базы данных для заданной предметной области.

 

  Цель работы:  Разработать систему таблиц реляционной модели базы данных. При этом необходимо учесть, что система таблиц базы данных должна соответствовать разработанной Вами модели «Сущность - Связь»

   В таблице 2.1 представлены сущности и имена связей между сущностями, модели «Сущность - связь»  ПО «Склад».

 Таблицами  2.2 – 2.7 представлены сущности  и их атрибуты, даны примеры заполнения таблиц.

 

  Склады                                         Таблица 1.2

Индекс

Адрес склада

 Наименование

      С1

Ташкент, 100020 Самаркандская, 3

Склад лакокрасочных                    изделий

   

Материалы                                                                                                 Таблица1.3

Индекс

Наименование

 

Приход на дату

Расход на дату

Остаток на дату

Приход   кг

Дата

Расход кг

Дата

Остаток кг

Дата

ЭК-15

Эмаль белая

10

20.01.10

0.6

20.04.10

0.4

20.04.10

 

 

Поставщики                                                  Таблица1.4

Индекс

     Имя

     Адрес

  Счет

  ПС1

Керимов К.Ф.

Ташкент

2345

                                                                                                                  

 

Потребители                                                 Таблица1.5

Индекс

    Имя

     Адрес

   Счет

  ПТ1

 Таксопарк

Ташкент

44444

 

Город    Таблица1.6                                                                                                                

Индекс

 

Наименование

100000

   Ташкент

                                                                                                         

 

Детали                                                                                                    Таблица 1.7

Индекс

Наименование

Приход на дату

 Расход на  дату

Остаток на дату

Приход   шт

Дата

Расход шт

Дата

Остаток шт

Дата

 Д1

Консоль

10

20.01.10

6

20.04.10

4

20.04.10

 

 

 

 

 

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

         Тема:   Создание системы запросов к базе данных. Выбор СУБД.

 

Цель лабораторной работы:

1. Совместно с заказчиком базы данных(БД) разработчику необходимо определить систему запросов к БД , максимально удовлетворяющую требованиям заказчика и релевантной созданной модели "Сущность - связь".

Если при заданных требованиях заказчика данная модель "Сущность

- связь" не может полностью удовлетворить системе запросов, то необходимо дополнительно обследовать предметную область и дополнить модель "Сущность - связь" необходимыми элементами, связями и отношениями.

2. Классифицировать систему запросов по выдаваемой пользователю БД информации на стандартные запросы и нестандартные (нерегламентированные).

Нерегламентированные запросы к БД - запросы, которые могут менять свою формулировку в зависимости от текущих потребностей пользователя, но только в пределах возможностей построенной модели и ее релевантности этих запросов к ней.

3. Система запросов для предметной области "Склад":

1) Найти внешнее описание всех материалов, находящихся на складе.

2) Найти названия и даты приема материалов.

3) Найти название материалов, не имеющихся на складах.

4) Найти название материалов и потребителей.

5) Найти название складов, получивших материалы.

6) Для каждого материала найти номер склада, количество на складе, приход, расход.

7) Найти потребителей и количество требуемого материала с номером М1.

8) Найти количество прихода и расхода материалов с весом > 100.

9) Найти название материалов и их количество для склада с номером С1.

10) Найти название материалов красного цвета с максимальным весом.

11) Найти потребность в материале (количество и потребителя) для деталей с минимальным весом.

12) Найти номера материалов, принятых 31.4 числа.

13) Найти все склады, на которых хранятся все материалы, необходимые потребителю П1.

14) Найти всех потребителей, которым нужны материалы красного цвета.

15) Найти всех потребителей и требуемое количество для всех материалов с весом больше 40.

16) Найти все склады, на которых хранятся материалы М1 и М2.

17) Найти всех потребителей, которым нужны какие-нибудь материалы, полученные 31.4 числа.

18) Найти название материалов и их количество для склада с номером С1.

19) Найти общий вес материалов, необходимых потребителю П1.

20) Найти общее число материалов, необходимых потребителю П1.

21) Для каждого материала и каждого склада подсчитать новое состояние склада по формуле

кол = кол0 + кол1 - кол2

|        |        |

остаток  приход  расход

22) Найти общее количество прихода по каждому материалу.

23) Для каждого склада и каждого материала найти общее количество расхода.

24) Найти материалы с наибольшим требуемым количеством.

25) В отношение "Приход" добавить выборки:

 

 

 

26) Изменить текущее состояние склада (учесть приход и расход).

27) Во всех отношениях уничтожить выборки.

28) Вычислить нехватку для каждого материала.

29) Вычислить избыток белого материала.

30) Выбрать материалы с максимальным избытком.

31) Найти все склады, на которых хранятся материалы М1 и М2, создав дополнительные отношения.

4. Представление БД в виде реляционной схемы. Выбор СУБД.

Необходимо выполнить работы:

а) По модели "Сущность - связь" выделить три типа отношений:

- понятия,

- отношения "событие",

- отношения " характеристика".

Пример.

Для модели "Сущность - связь" все типы отношений сведем в таблицу 2.1.

 

 Выбор СУБД.

Выбор СУБД в большей степени зависит от типа приложений. Тип приложений определяется методами доступа к Б.Д., которые, в свою очередь, определяются планируемыми запросами.

Различают следующие типы:

Тип 1. Получить все или многие записи. Под этот тип попадают чаще всего последовательная обработка, генерация больших отчетов и пакетная обработка.

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

Тип 3. Получить некоторые записи. Для такого типа запросов наибольший интерес представляет поиск по вторичному ключу. Здесь лучше всего использовать инвертированный метод доступа.

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

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

 

 

 

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

                   Тема: Создание программ ведения баз данных.

 

Цель работы:  Приобретение навыков по разработке программ ведению баз данных.

Задание к работе

1.    Изучить конструкции языка SQL для создания базы данных

2.  Создать базу данных для табличных структур полученных при разработке модели «Сущность - связь», заданной предметной области.

3.  В среде SQL-Explorer создать физическую структуру разработанной базы данных

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

 

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

    Преимущества архитектуры клиент-сервер:

·     Большинство вычислительных процессов происходит на сервере, что снижает требования к вычислительным мощностям компьютеров клиентов

·     Снижается сетевой трафик за счет посылки клиенту только тех данных, которые он запрашивал, а не всей базы данных

·     Возрастает безопасность всей системы за счет перенесения большей части бизнес-правил на сервер, существенного увеличения защищенности центральной базы данных от несанкционированного доступа, централизованного управления транзакциями.

 

SQL-сервер InterBase (IBDataBase) предназначен для хранения и обработки больших объемов информации в условиях одновременной работы с БД множества клиентских приложений. Ниже представлены основные возможности сервера:

 

Для задания целостности БД определяются:

·     Отношения подчиненности между таблицами путем задания первичных и внешних ключей

·     Проверка ограничений на вводимые значения для столбцов — проверка диапазона, соответствие маске, требуемое отношение с записями в других таблицах

·     Триггеры — автоматически выполняются до или после модификации записей в таблицах

·     Генераторы используются для задания уникальных значений полей

Для ускорения работы клиентских приложений используются

·     хранимые процедуры и

·     виртуальные таблицы (или просмотры)

 

Для введения отсутствующих в ядре сервера функций, InterBase позволяет использовать подключаемые с помощью DLL

·     функции, определяемые пользователем

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

    Для доступа к БД используется SQL Explorer, входящий в поставку Delphi. Для просмотра и анализа процессов, проходящих на сервере при реализации пользовательского запроса, используется утилита SQL Monitor.

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

 

 

 

Создание новой базы данных.

      Предполагается, что сервер InterBase уже запущен

0.  Запустить IBConsole (Пуск | Программы | InterBase6.5| IBConsole

1.  В окне IBConsole нажать на вкладку Register a new Interbase Server

2.  В появившемся окне Descripstion набрать путь к будущей базе данных, например, D:\ База данных_Склад

3.  В поле User Name ввести SYSDBA, в поле Password ввести masterkey. Нажать OK.

4.  Правой кнопкой мышки нажать на строку записи DataBases

5.  В появившемся окошке шелкнуть мышкой по строке Create DataBase

6.  В появившемся окне Create DataDase  в соответсвующих строках набрать:

- в Filename(S) – имя  базе данных CitySklad.gdb.

Size (Page) – 1024.

-  в строке Alias –  CitySclad.

7.  . Нажать OK.

8.  Запустить SQL-Explorer (Пуск | Программы | Borland Delphi7 | SQL-Explorer

9.  Object | New

10.В окне New DataBase Alias выбрать строку InterBase, нажать на кнопку Ок.

11.В появившуюся левом окне рамочку  Interbase1 ввести имя Alias – псевдонима базы данных, например CitySclad.

12.Object | Apply

13. В строке правого окна SQL-Explorer Server Name щелкнуть по эллипсу и определить путь к базе данных CitySklad.gdb.

14.Если сообщений об ошибках не было, база данных создана. Теперь необходимо ее наполнить.

 

 

Открытие существующей базы данных.

     Предполагается, что сервер InterBase уже запущен

0.  Запустить SQL-Explorer (Пуск | Программы | Borland Delphi7 | SQL-Explorer

1.  Выбрать в окне  проводника вкладку  CitySclad, щелкнуть по ней мышкой, в появившемся окне набрать пароль masterkey Нажать OK.

2.  Щелкнуть мышкой по вкладе Enter SQL.

В открывшееся окно можно вводить операторы SQL для  создания таблиц БД.

 

 

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

     После создания или открытия базы данных требуется создать в ней таблицы. Создание таблиц может производиться с помощью SQL explorer. После двойного щелчка на псевдониме базы данных и ввода имени пользователя и пароля, щелкаем левой кнопкой на Enter SQL, появляется окно редактора SQL – операторов. В окне редактора на данном этапе необходимо ввести все операторы создания таблиц базы данных по следующей схеме:

 

CREATE TABLE ИмяТаблицы

(<Опр_ столбца> [,<Опр_ столбца>| <Ограничение>…..]  ) ;

 

 

Примеры:

CREATE TABLE SKLADI (

  ID_SKLAD INTEGER NOT NULL PRIMARY KEY,

  ADDRESS CHAR(30),

  NAIMENOVANIE VARCHAR(40));

 

CREATE TABLE MATERIALI (

  ID_MATERIAL INTEGER NOT NULL  PRIMARY KEY,

   NAME VARCHAR(40) NOT NULL,

  PRIHOD CHAR(30),

DAT_PRIH  CHAR(10),

 RASHOD CHAR(30),

Dat_Rash CHAR(10),

OSTATOK CHAR(30),

DAT_OST  CHAR(10));

 

 

CREATE TABLE POSTAVSHIKI (

  ID_POSTAVSHIK INTEGER NOT NULL PRIMARY KEY,

  NAME CHAR(30) NOT NULL,

  ADDRESS CHAR(30),

  SCHET CHAR(30));

 

CREATE TABLE POTREBITELI (

  ID_POTREBITEL INTEGER NOT NULL  PRIMARY KEY,

  NAME CHAR(30) NOT NULL,

  ADDRESS CHAR(30),

  SCHET CHAR(30));

 

REATE TABLE GOROD (

 ID_GOROD INTEGER NOT NULL PRIMARY KEY,

 NAME VARCHAR(40) NOT NULL));

 

 

    CREATE TABLE DETALI (

  ID_DETAL INTEGER NOT NULL PRIMARY KEY,

  NAME VARCHAR(40) NOT NULL,

  PRIHOD CHAR(30),

DAT_PRIH  CHAR(10),

 RASHOD CHAR(30),

DAT_RASH CHAR(10),

OSTATOK CHAR(30),

DAT_OST  CHAR(10));

 

Создание доменов.

Пример. Создать  домен TPHONE и затем использовать его при создании таблицы POSTAVSHIKI, как тип столбца CHAR(8):

CREATE DOMAIN TPHONE AS CHAR(8) CHECK (VALUE LIKE "238_ ____");

CREATE TABLE POSTAVSHIKI (

  ID_POSTAVSHIK INTEGER NOT NULL PRIMARY KEY,

  NAME CHAR(30) NOT NULL,

  ADDRESS CHAR(30),

TPHONE CHAR(8),

  SCHET CHAR(30));

Предложение ) CHECK  определяет требование к значению каждого столбца, ассоциированного с доменом.

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

Like 238_ ___ определяет, что вводимое значение может содержать 6 символов, из которых первые три 238, а последние три – любые.

 

 

                                                                                  

Создание индексов

Индекс может быть создан оператором

CREATE[UNIQUE][ASC[ENDING]|[DESC[ENDING]];

INDEX  Имя индекса ON  Имя таблицы (столбец1[,столбец2….] );

UNIQUE – требует создания уникального индекса, не допускающего одинаковых значений индексных полей для разных записей таблицы;

ASC[ENDING] – указывает на необходимость сортировки значений индексных полей по возрастанию (режим принят по умолчанию);

DESC[ENDING] – указывает на необходимость сортировки значений индексных полей по убыванию;

Имя индекса – имя создаваемого индекса;

Имя таблицы – таблица, для которой создается индекс;

Столбец N – имена столбцов, по которым создается индекс.

Для создания индексов в окне SQL EXPLORER можно ввести оператор определения индекса.

Пример :

Создать индекс в порядке убывания значений таблицы Материалы для значений

CREATE DESC INDEX D_M

ON  MATERIALI ( NAME,  PRIHOD, DAT_PRIH, RASHOD,DAT_RASH,

OSTATOK,DAT_OST);

 

 

 

 

Создание просмотров   (отображений, представлений, виртуальных таблиц)

 

Ядром представления является оператор SELECT, который и формирует содержимое виртуальной таблицы. Он записывается в теле представления. В заголовке описываются выводимые поля. Схема:

CREATE VIEW ИмяПросмотра [ (столбец_view1[, столбец_view2…])

 AS <оператор_ select>[with check option];

 

Пример просмотра подмножества столбцов таблицы.

CREATE VIEW  RASHOD_VERT

 AS

SELECT DAT_RASH, NAME, RASHOD FROM MATERIALI;

 

Создание хранимых процедур

Хранимая процедура – это модуль, написанный на процедурном языке InterBase и хранящийся в базе данных как метаданные. Хранимую процедуру можно вызвать из приложения.

Хранимые процедуры компилируются, хранятся и выполняются на сервере, посылая клиенту по сети лишь результаты исполнения. Определение хранимой процедуры:

CREATE PROCEDURE      <ИмяПроцедуры>

[(входной параметр тип данных [, входной параметр тип данных…] )]

RETURNS

[(входной параметр тип данных [, входной параметр тип данных…] )]

AS

<тело процедуры>;

 

Тело процедуры имеет формат

[<объявление локальных переменных процедуры>]

 

BEGIN

<оператор>

[<оператор> …..]

END

 

Пример. Хранимая процедура FIND__MAX_KOLVO  возвращает в выходном параметре  процедуры  MAX_KOLVO количество выданного со склада материала, наименование которого передается во входном параметре процедуры  IN_NAME.

 

 

CREATE PROCEDURE FIND__MAX_KOLVO (IN_NAME VARCHAR(40))

RETURNS (MAX_KOLVO INTEGER) AS

BEGIN

SELECT MAX (RASHOD)

FROM RASHOD

WHERE NAME =  : IN_NAME

INTO  : MAX_KOLVO;

SUSPEND;

END

 

 

 

 

 

 

Определение функций пользователя.

 

      Функции пользователя позволяют расширить функции базы данных, наделяя ее такими свойствами, которыми она ранее не обладала. Для подключения функций необходимо заранее создать и откомпилировать DLL- библиотеку, содержащую эту функцию. Если библиотека пишется на Delphi, то после заголовка функции должны быть указаны ключевые слова CDECL;EXPORT;, а сам модуль должен оформляться не как unit, а как library.

 

Пример описания функции пользователей в СУБД    Interbase:

DECLARE EXTERNAL FUNCTION DELS CSTRING(256) CHARACTER SET WIN1251

RETURNS CSTRING(256) CHARACTER SET WIN1251 

ENTRY_POINT "DELSPACES" MODULE_NAME " D:\CITYSCLAD\CITISKLAD.GDB \WALDLL.DLL";

 

   Создание триггеров

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

 

CREATE TRIGGER ИмяТригера  FOR ИмяТаблицы                           

[ACTIVE | INACTIVE]

{ BEFORE | AFTER}  

{DELETE | INSERT | UPDATE}

[POSITION номер]

AS <тело тригера>

Структура тела триггера

[<объявление локальных переменных процедуры>

Begin

<операторы>

end

 

 

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

Тема: Создание программ обработки данных по SQL запросам.

 

Цель работы:  Приобретение навыков по созданию программ обработки данных  на языке  запросов  SQL.

Задание к работе :     Создать клиентское приложение для работы с базой данных, созданной в первой лабораторной работе. Это клиентское приложение должно отвечать следующим требованиям:

1.  Приложение должно представлять собой главную форму, из которой будут вызываться другие формы. Допускается использование компонента TPAGECONTROL (закладок)

2.  Для каждой таблицы или просмотра базы данных должна быть своя форма (или страница), в которой можно было бы осуществлять ее просмотр и редактирование

3.  Для управления базой данных должны использоваться все необходимые элементы управления (TDBMEMO, TDBEDIT, TDBRICHTEXT, TDBGRID, TDBNAVIGATOR, И Т.Д.)

4.  В проекте должна присутствовать хотя бы одна форма, которая бы отражала две таблицы, связанные в отношении MASTER-DETAIL с помощью свойств MASTER SOURCE, MASTER FIELDS.

5.  В проекте должна присутствовать хотя бы одна форма, которая отражала бы использование компонентов TDBLOOKUP (LIST BOX ИЛИ COMBO BOX)

6.  В проекте должен присутствовать VISUAL QUERY BUILDER, с помощью которого можно было бы создавать запросы не только с переменными параметрами, но и с гибкой настройкой структуры, связывания таблиц, выбора условий, полей, способа сортировки и т.д.

7.  В проекте должны быть два отчета — простой и сложный (содержание которого формируется на основе нескольких таблиц, применяется группировка, подсчет итогов, и т.д.)

8.  В проекте должны быть графики, отображающие какую-то статистику по базе данных

9.  В программе должен быть реализован более-менее понятный интерфейс, заголовки полей в компонентах DBGRID должны быть нормальными русскими, немного нужно подумать о дизайне и эстетике программы

 

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

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

Создание программ в архитектуре клиент-сервер имеет следующую специфику:

·     Не рекомендуется использовать компонент TTABLE, поскольку он требует передачи всех данных результата выполнения запроса к серверу; в отличие от этого, компонент TQUERY получает от сервера только ту их часть, которая должна быть визуализирована;

·     Изменение записей БД следует производить не методами INSERT, EDIT, DELETE, POST, CANCEs, которые оперируют с одной (текущей) записью, а при помощи SQL-операторов INSERT, UPDATE, DELETE, которые оперируют сразу множеством записей;

·     Необходимо особое внимание уделять управлению транзакциями и в первую очередь — выбору адекватного потребностям программы уровня изоляции транзакций;

·     Бизнес-правила, где это возможно, нужно переносить на сервер, разгружая от них клиентское приложение;

·     Следует, как можно чаще использовать хранимые процедуры, выполняющиеся быстрее обычных SQL-запросов и уменьшающие загрузку сети;

·     Следует везде. где это необходимо, явно вызывать методы TDATABASE.STARTTRANSACTION и TDATABASE.COMMIT для старта и подтверждения транзакций; подтверждение единичных изменений БД неявно стартуемыми и завершаемыми (в режиме SQLPASSTHRU=SHARED AUTOCOMMIT) транзакциями ведет к возрастанию загрузки сети и, как следствие, к замедлению работы, часто весьма существенному.

·     Необходимо уделять существенное внимание оптимизации запросов к БД, особенно при чтении данных (SELECT), поскольку оптимально построенный запрос может выполняться в несколько раз быстрее и требовать меньшего количества ресурсов.

 

Соединение с БД из программы производится с помощью компонента TDATABASE.

В параметре ALIAS NAME выбираем псевдоним ранее созданной базы данных, в окне PARAMETER OVERRIDES вводим
         USER NAME=SYSDBA
         PASSWORD=masterkey

Снимаем галочку с опции LOGIN PROMPT для отмены запроса пароля в диалоге. Нажимаем OK.

Для соединения с БД устанавливаем свойство CONNECTED в TRUE.

 

Работа с таблицами БД в клиентском приложении

Для каждой из таблиц создаем объект TTABLE

В свойстве DATABASE каждого из них ставим ссылку на псевдоним нашей БД

В свойствах TABLENAME выбираем соответствующее имя таблицы для каждого компонента

Для каждого компонента TTABLE создаем свой компонент TDATASOURCE, и дальше действуем как при работе с обыкновенными локальными таблицами.

Просмотры или виртуальные таблицы для клиентского приложения выглядят как обыкновенные реальные таблицы, поэтому для них тоже можно использовать компоненты TTABLE.

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

 

Создание отчетов

Для создания отчета используется компонент TQUICKREP, на котором с помощью компонентов TQRBAND, TQRSUBDETAIL, TQRGROUP задаются области отчета, на которых размещаются компоненты TQRLABEl, TQRDBTEXT,TQREXPR, TQRSYSDATA и другие, которые отображают информацию в отчете.

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

 

·     TQRBAND — область для расположения данных, заголовков, титула отчета и др. Свойство BANDTYPE позволяет более конкретно определить функцию этого компонента в отчете.

·     TQRSUBDETAIL — область отчета, в которой располагаются данные подчиненной таблицы при реализации в отчете связи MASTER-DETAIL.

·     TQRGROUP — применяется для группировки данных в отчете согласно значению выражения, которое задается в свойстве Expression данного компонента

·     TQRLABEL — позволяет разместить в отчете статический текст, надписи и т.д.

·     TQRDBTEXT — позволяет разместить в отчете содержимое полей наборов данных.

·     TQREXPR — позволяет разместить в отчете значения. являющиеся результатом вычисления выражений. Алгоритм вычисления выражений строится с помощью редактора формул этого компонента.

·     TQRMEMO — для вывода значений полей комментариев

·     TQRRICHTEXT — вывод полей RTF

·     TQRSHAPE — вывод графических фигур, например рамок, линий

·     TQRIMAGE — вывод графической информации из баз данных

·     TQRCHART — вывод в отчет графиков, построенных, например, по информации, содержащейся в базе данных.

·     TQRSYSDATA — позволяет встроить в отчет вывод некоторой специальной информации. например текущей страницы, колонки, даты, времени, количества информации в наборе данных и т.д.

 

Простой отчет должен демонстрировать применение основных компонентов типа TQRLABEL. TQRSHAPE, TQRDBTEXT.

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

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

1. Дайте определение понятию предметная область.

2. Что понимается под моделью "Сущность-связь"?

3. Определите понятие "Базовые элементы модели "Сущность-связь"".

4. Каким образом отображается модель "Сущность-связь" в структуры базы данных?

5. На какие этапы делится процесс проектирования базы данных?

6. На какой стадии проектирования базы данных учитываются особенности конкретной СУБД?

7.  Что понимается под физической моделью базы данных?

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

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

10. Что под понятием "Реляционная база данных"?

11. Дайте определение понятию "Схема базы данных.

 

 

 

 

 

 

 Варианты заданий к лабораторным работам                                                        

                                                   

                                               Таблица 5.1.                                                   

 Предметная область

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

Библиотека

Университет

Отдел продаж

Производство

Кооперативы

Автомастерская

Сессия

Управление проектом

Поликлиника

Телефонизация

Спорт

Сельскохозяйственные поставки

Городской транспорт

География

Домоуправление

Аэропорт

Рынок компьютеров

Деканат

Зоопарк

Шахматы

Судоходство

Автотранспортное предприятие

Научные конференции

Программные продукты

КВН

Добыча полезных ископаемых

Театр

Справочная аптеки

Столовая

  Тележурналистика

Археология

Телевещание

Тур-фирма

Строительство

Искусство

Собственный вариант

 

 

                                               ЛИТЕРАТУРА

 

1.     Четвериков В.Н. и др.   "Базы и банки данных". Москва, ВШ, 1987г.

2.     Кливерт Ч. Энциклопедия пользователя Delphi2,DiaSoft,Киев,1996г.

3.     Т. Коннолли, К Брегг. Базы данных. проектирование, реализация и сопровождение теория и практика, Университет Пейсли, Шотландия, изд М • СПБ •Киев, 2003.

4.     Астахова И.Ф., Толстобров А.П., Мельников В.М. SQL в примерах и задачах; Учеб. пособие /  -  Мн.: Новое знание, 2002.

5.     А.Я. Архангельский Delphi 7, Москва, изд. «Бином», 2003.

 

 

        

СОДЕРЖАНИЕ

 

Введение.   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 

5

Лабораторная Работа 1. Анализ предметной области.  Разработка модели "СУЩНОСТЬ-СВЯЗЬ".. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

 

6

Лабораторная работа № 2.  Создание реляционной модели  базы данных для заданной предметной области.. . . . . . . . . . . . .. . . . . .  . . . . . . . . . . . . . .

 

11

Лабораторная работа  3.  Создание системы запросов к базе данных. Выбор СУБД. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

 

13

Лабораторная  работа 4.  Создание программ ведения баз данных.. . . . . . .

17

Лабораторная работа № 5.  Создание программ обработки данных по SQL запросам. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

 

27

Варианты заданий к лабораторным работам. . . . . . . . . . . . . . . . . . . . . . . . . .  

33

Литература. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34