Само задание:
Учет движения продуктов по складу горюче-смазочных материалов. Составить базу данных, полями которой являются: шифр продукта, наименование продукта, объём, признак прибытие/убытие, дата, наименование (фамилия) потребителя/поставщика номер счёта потребителя/поставщика, адрес, телефон и др. Вывести динамику поступления-убытия каждого конкретного продукта, а также общий объём движения продуктов на складе ГСМ (сколько прибыло и убыло за текущий месяц).
Что нужно проделать
ЛАБОРАТОРНАЯ РАБОТА №1
ОСНОВЫ ПОСТРОЕНИЯ БАЗЫ ДАННЫХ
В СРЕДЕ BORLAND DELPHI
Определение структуры таблицы
Например, в учебном управлении высшего учебного заведения необходимо хранить информацию о студентах заведения: № зачётной книжки, шифр группы, ФИО, год рождения, пол, предмет, среднюю оценку по предмету.
ТаблицаБД представляет собой обычную двумерную таблицу с характеристиками (атрибутами) какого-то множества объектов и имеющая имя - идентификатор, по которому на неё можно сослаться.
Таблица 1. Данные о студентах
№ зач. книжки | Группа | Фамилия | Имя | Отчество | Год рождения | Пол | Предмет | Оценка |
Zach | Group | Fam | Nam | Par | Year_b | Sex | Pred | Oz |
115261 | В2201 | Иванов | Егор | Петрович | 1982 | М | Информатика | 4 |
234582 | Э3514 | Петров | Иван | Сидорович | 1984 | М | Информатика | 5 |
365484 | Э3514 | Сидоров | Иван | Петрович | 1983 | М | СПО | 3 |
498759 | А1501 | Егорова | Инна | Егоровна | 1982 | Ж | ТОЭ | 4 |
… | … | … | … | … | … | … | … | … |
Например, для таблицы введём для последующих ссылок имена полей Zach, Group, Fam, Nam, Par, Year_b, Sex, Pred, Oz, соответствующие указанным в ней заголовкам полей.
Тип поля характеризует тип хранящихся в поле данных. Это могут быть строки, числа, булевы значения,большие тексты (например характеристики сотрудников),изображения (фотографии) и т.п.
Каждая строка таблицы соответствует одному из объектов. Она называется записью и содержит значения всех полей, характеризующих данный объект.
При построении таблиц БД важно обеспечить непротиворечивость информации. Это делается введением ключевых полей, обеспечивающих уникальность каждой записи. Ключевым может быть одно или несколько полей. В приведённом примере можно было бы сделать ключевыми совокупность полей Fam, Nam и Par. Но в этом случае нельзя было бы заносить в таблицу сведения о полных однофамильцах, у которых совпадают фамилия, имя и отчество. Поэтому целесообразнее использовать поле Zach – номер зачётной книжки, которое можно сделать ключевым, поскольку номер зачётной книжки не может быть одинаковым у двух студентов.
В каждый момент времени есть некоторая текущая запись, с которой ведётся работа. Записи в таблице БД физически могут располагаться без какого-либо порядка, просто в последовательности их ввода (появления новых студентов). Но когда данные таблицы предъявляются пользователю, они должны быть упорядочены. Для упорядочения данных в БД, так же, как и для упорядочения данных в массивах, используется понятие индекса. Индекс показывает, в какой последовательности будет просматриваться таблица. Часто индексы хранятся отдельно от файла с данными. Для быстрой сортировки обычно индексы выносят в отдельный индексный файл с тем же названием, но с другим расширением. В таком файле содержатся только первичные ключи и описание очередности записей. Основной же файл при этом остается неупорядоченным. Т. к. индексный файл намного меньше файла объектов, сортировка по индексу происходит гораздо быстрее, чем сортировка основного файла.
Индексы могут быть первичными и вторичными. Например, первичным индексом могут служить поля, отмеченные при создании таблицы как ключевые. А вторичные индексы могут создаваться для других полей как при создании таблицы, так и впоследствии. Вторичным индексам присваиваются идентификаторы, по которым их можно использовать.
Если индекс включает в себя несколько полей, то упорядочение БД сначала осуществляется по первому полю, а для записей, имеющих одинаковое значение первогополя, по второму полю. Например, таблицу о студентах можно проиндексировать по группам, а внутри каждой группыпо алфавиту.
Создание файла таблицы данных
Для работы с базами данныхнаиболее распространённых форматов можно использовать утилиту DatabaseDesktop, поставляемую в составе большинства продуктов корпорации Inprise (Borland). При установке Delphi создаётся типовая структура каталогов и меню "Пуск" Windows, а в меню "Пуск"Прогpaммы->Borland Delphi->Database Desktop.
Создание таблицы базы данных осуществляется выбором опции меню File->New->TableпослезапускаутилитыDatabase Desktop.
ВпоявившемсядиалогеCreate Tableвыбираетсятиптаблицы (изизвестныхстандартных – например,Paradox, Access, dBase, InterBase, Oracle ит.д.).
В этой работе используется наиболее простой тип плоских таблиц dBaseforWindows.
В диалоге задания структурыуказываются: 1. имя поля (FieldName) 2. тип (Type) 3. размер (Size) 4. число десятичных знаков (Dec) и др.
В dBaseforWindows используются типы полей: Character(C) - символьное; Float(F) - вещественное (с высокой точностью); Number(N) - целое, вещественное (с точностью в 2 десятичных знака); Date(D) - дата; Logical(L) - логическое; Мето(М) - текстовое без ограничениядлины;Binary(B) - двоичное (рисунки и другие объекты).
Выбор типа поля осуществляется нажатием клавиши <пробел> или правой клавишей «мыши».
Для примера БД студентов учебного заведения структура файла таблицы может быть представлена в виде (рис. 2).
Рис. 2 Диалог задания структуры таблицы
Изменение кодовой страницы для поддержки русского языка осуществляется следующим образом: в окошке TablePropertiesиз выпадающего списка выбирается пункт TableLanguage, после чего необходимо нажать кнопку Modify; в появившемся диалоге TableLanguage указывается кодовая страница dBaseRUScpp866.
После задания структуры таблицы, её сохранение производится выбором кнопки SaveAs. В диалоге указывается имя файла таблицы (например, stud.dbf).
Если необходимо в дальнейшем изменить структуру таблицы, следует открыть таблицу в DatabaseDesktop и выбрать в главном меню пункты Table->Restructure.
После создания таблицы возможно её редактирование и использование в прикладных программах.
Разработка приложения для работы с таблицей данных
Для разработки системы управлениябазой данных можно воспользоваться как стандартными СУБД (Access, Paradox, dBase и т.д.), так и разработать самостоятельное приложение для работы с БД.
Разработка самостоятельного приложения для работы с БД имеет ряд преимуществ по сравнению с использованием готовых пакетов:
1) ресурсы ОС задействованы только для тех задач, которые будут реализованы в СУБД;
2) полученные программные модули очень компактны;
3) обеспечивается более высокое быстродействие вследствие использования только необходимых для решения задачи операций с БД;
4) многообразие реализаций максимально удобного интерфейса пользователя с СУБД;
5) возможность интегрироваться в любые программные приложения;
6) осуществление расчётных задач сложности, которая не может быть обеспечена применением готовых СУБД.
Для разработки системы управлениябазой данных воспользуемся интегрированной средой визуальной разработки Windows-приложений Borland Delphi. Одним из важнейших достоинств Delphi является наличие удобных средств быстрой визуальнойразработки приложений с использованием специализированных компонент доступа и управления базами данных, генерации отчётов, запросов SQL, a так же наличие технологии BorlandDatabaseEngine (BDE), обеспечивающей доступ к большинству известных баз данных с использованием их собственных драйверов.
Для программирования баз данныхиспользуются следующие вкладки палитры компонент: DataAccess и DataControl(рис. 3, 4, 5).
Рис. 3. Палитра компонентов Borland Delphi
Рис. 4. Вкладка DataAccess
Вкладка Data Access содержит компоненты:
Table (второй слева) - связывающий файл таблицы на диске с приложением и позволяющий оперировать с таблицей (второй компонент).
DataSource (первый слева) - связывает компоненты отображения информации с компонентом Table (первый компонент).
Рис. 5. Вкладка DataControl
Вкладка DataControl содержит компоненты:
DBGrid - для отображения и редактирования записей базы данных (первый компонент)
DBNavigator - для управления данными (удаление, добавление, перемещение и т. д.)
Компоненты переносятся на окно приложения (форму) путём выделения компоненты нажатием правой клавиши мыши на ней, а затем на форме.
Компоненты вкладки DataAccess являются служебными и относятся к невидимым (т. е. отображаются на стадии разработки приложения и не отображаются в процессе выполнения), aDataControl к отображаемым как в процессе разработки, так и в процессе выполнения.