III. Самостоятельная работа
I. Выполнения задания по инструкции
Понятие БД (база данных). Типы БД.
С точки зрения пользователя, база данных – это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную.
С точки зрения программиста, база данных – это набор файлов, содержащих информацию. Разрабатывая базу данных для пользователя, программист создаёт программу, которая обеспечивает работу с файлами данных.
В зависимости от расположения программы, использующей данные, и самих данных, а также способа разделения данных между несколькими пользователями различают локальные и удалённые базы данных.
Данные локальной базы данных (файлы данных) находятся на одном (локальном) устройстве, в качестве которого может выступать диск компьютера или сетевой диск (диск другого компьютера, работающего в сети).[1]
Для обеспечения разделения (доступа к данным) между несколькими пользователями, в качестве которых выступают программы, работающие на одном или нескольких компьютерах, в локальных базах данных применяется метод, получивший название блокировка файлов. Суть этого метода заключается в том, что пока данные используются одним пользователем, другой пользователь не может работать с этими данными, т.е. данные для него закрыты, заблокированных.
Paradox, dBase, FoxPro и Access – это локальные базы данных.[2]
Данные (файлы) удалённой базы данных находятся на удалённом компьютере. (Следует обратить внимание, что каталоги удалённого компьютера не могут рассматриваться как сетевые диски).
Программа работы с удалённой базой данных состоит из двух частей: клиентской и серверной. Клиентская часть программы, работающая на компьютере пользователя, обеспечивает взаимодействие с серверной программой: посредством запросов, передаваемых на удалённый компьютер, представляет доступ к данным.
Серверная часть программы, работающая на удалённом компьютере, принимает запросы, выполняет их и пересылает данные клиентской программе. Запросы представляют собой команды, представленные на языке SQL (Structured Query Language) – языке структурированных запросов.
Программа, работающая на удалённом сервере, проектируется таким образом, чтобы обеспечить одновременный доступ к информации нескольким пользователям. При этом для обеспечения доступа к данным вместо механизма блокировки файлов используется механизм транзакций.
Транзакция – это некоторая последовательность действий, которая должна быть обязательно выполнена над данными перед тем, как они будут переданы. В случае обнаружения ошибки во время выполнения любого из действий вся последовательность действий, составляющая транзакцию, повторяется снова. Таким образом, механизм транзакций обеспечивает защиту от аппаратных сбоев. Он также обеспечивает возможность многопользовательского доступа к данным.[3]
Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server – это удалённые базы данных.[4]
Разработка программы работы с удалённой базы данных – сложная и трудоёмкая заданча. Её решение предполагает наличие у разработчика глубоких знаний и больщого опыта разработки программного обеспечения. Поэтому в данном курсе задача разработки удалённых баз данных не рассматривается.
Алгоритм создания БД
Процесс создания базы данных в Delphi может быть представлен как последовательность следующих шагов:
1. Создание каталога.
2. Создание псевдонима.
3. Создание таблиц.
4. Разработка приложения, работающего с БД.
- Создание каталога
Каталог (папка) для файлов базы данных создаётся обычным образом, например, при помощи Проводника. Обычно файлы локальной базы данных помещаются в отдельном каталоге программы работы с базой данных.[5]
На диске D создайте папку со своей фамилией. Это будет ваша рабочая папка в течение всего этого курса. В этой папке создайте ещё одну папку с именем PR1 (что значит – Практическая работа №1).
- Создание псевдонима
Разрабатывая программу работы с базой данных, программист не может знать, на каком диске и в каком каталоге будут находиться файлы базы данных во время её исполнения. Например, пользователь может поместить в один из каталогов дисков C:, D: или сетевой диск. Поэтому возникает проблема передачи в программу информации о месте нахождения файлов базы данных.
В Delphi проблема передачи в программу информации о месте нахождения файлов базы данных решается путём использования псевдонима базы данных. Псевдоним (Alias) – это короткое имя, поставленное в соответствие реальному, полному имени каталога базы данных. Например, псевдонимом каталога C:\data\SРeterburg может быть имя Рeterburg. Программа работы с базой данных для доступа к данным использует не реальное имя, а псевдоним.[6]
Характерной особенностью программ, создаваемых с помощью Delphi и предназначенных для работы с базами данных, является их зависимость от специальной беблиотеки программ, которая называется BDE (Borland Database Engine – машина баз данных корпорации Borland). BDE представляет собой набор библиотек DLL, предназначенных для низкоуровнего доступа к данным самых различных форматов. BDE автоматически устанавливается в процессе установки Delphi и регистрируется в реестре 32-разрядной версии Windows. В BDE имеется собственный интерпретатор языка SQL, что позволяет создавать запросы не только к серверам БД, но и таблицам файл-сервера. Без установки и регистрации BDE на компьютере не может работать ни одна программа БД, созданная в Delphi и использующая механизм BDE.[7]
Для доступа к информации программа, обеспечивающая работу с базой данных, подключает библиотеку Borland Database Engine (BDE), которая в свою очередь, использует конфигурационный файл, содержащий информацию о всех зарегистрированных в системе псевдонимов.[8]
Псевдоним базы даннных создаётся при помощи входящей в Delphi утилиты BDE Administrator, которая запускается из Windows выбором из меню Пуск à Программы à Borland Delphi 7 à BDE Administrator.[9] Запустите её. Вид диалогового окна BDE Administrator после запуска приведён на рисунке 1.
Рис. 1. Окно BDE Administrator.
В левой части окна, на вкладке Database, перечислены псевдонимы, зарегистрированные на данном компьютере. Создадим новый псевдоним. Для этого из меню Object выберем команду New. В результате откроется диалоговое окно New Database Alias (Новый псевдоним базы данных), где будет предложен список Database Driver Nameв котором перечислены зарегистрированные в системе драйверы доступа к базам данных, иными словами тип создаваемой базы данных.
При создании псевдонима по умолчанию предлагается драйвер STANDARD (default driver), который обеспечивает доступ к таблицам в формате Paradox. Мы ничего менять не будем и просто нажмём кнопку ОК. (рис. 2)
Рис. 2. Диалоговое окно New Database Alias
После выбора драйвера и щелчка на кнопке ОК в список псевдонимов будет добавлен новый элемент (рис. 3).
Рис. 3. Регистрация нового псевдонима
Изменим автоматически созданное администратором имя STANDARD1 на PR1, а во вкладке Definition укажем путь к папке, где будут храниться файлы нашей БД. Для этого в конце поля PATHщелкаем левой кнопкой мыши по пиктограмме с трёмя точечками – откроется диалоговое окно. Находим на компьютере папку PR1и щёлкаем по кнопке ОК(рис. 4).
Рис. 4. Результат создания псевдонима
Теперь, чтобы вновь созданный псевдоним был зарегистрирован на нашем компьютере, сохраним его. Для этого из меню Object выберем команду Apply.В открывшемся диалоговом окне Confirm следует подтвердить необходимость сохранения изменений в файле конфигурации (кнопка ОК).
- Создание таблицы
Теперь, когда создан каталог и зарегистрирован псевдоним, приступим непосредственно к созданию таблицы. Таблицы создаются при помощи входящей в состав Delphi утилиты Database Desktop.
Утилита Database Desktop позволяет выполнять все необходимые при работе с базами данных действия. Она обеспечивает создание, просмотр и модификацию таблиц баз данных различных форматов (Paradox, dBASE, Microsoft Access). Кроме того, утилита позволяет выполнять выборку информации путем создания запросов.[10]
Запускается данная утилита из Windows выбором из меню Пуск à Программы à Borland Delphi 7 à Database Desktop. Запустим её.
Затем в появившемся окне утилиты Database Desktop надо из меню File выбрать команду New и в появившемся списке выбрать тип создаваемого файла – Table (рис. 5). Затем в открывшемся диалоговом окне Create Table (рис. 6) следует выбрать тип создаваемой таблицы (значением по умолчанию является тип Paradox 7[11] – его мы и оставим, нажав кнопку ОК).
Рис. 5. Диалоговое окно Database Desktop
Рис. 6. Выбор типа таблицы
В результате открывается диалоговое окно Create Paradox 7 Table (рис. 7), в котором можно определить структуру записей таблицы.
Рис. 7. Диалоговое окно Create Paradox 7 Table
Сегодня мы создадим с вами однотабличную БД «Записная книжка», таблица которой будет содержать следующие поля:
Таблица 1. Поля записей базыданных «Записная книжка»
Для каждого поля создаваемой таблицы прежде всего указывается имя (FieldName) – идентификатор поля. Идентификатор может включать до 25 символов и не может начинаться с пробела (формально для таблицы Paradox внутри пробелы допускаются, но я не советую их использовать – это вызовет немало проблем). Затем надо выбрать тип (Type) данных этого поля. Для этого перейдите в раздел Type поля и щёлкните правой кнопкой мыши (или нажмите пробел). Появится список доступных типов, из которого вы можете выбрать необходимый вам.[12]
В диалоговом окно Create Paradox 7 Table создадим необходимые поля в соответствии с таблицей 1 (см. рис. 8).
Рис. 8. Создание полей таблицы
Теперь нам необходимо сохранить нашу таблицу. Нажимаем кнопку Save As…в открывшемся диалоговом окне Save Table As в поле Имя файла пишем имя таблицы записная_книжка, в поле Тип файла всё оставляем без изменения, а в поле Alias из выпадающего списка выбираем псевдоним PR1, ставим галочку в пункте Display table и нажимаем кнопку Сохранить. (см. рис. 9).
Рис. 9. Окно сохранения таблицы
Таблица создана! Теперь мы можем вносить в неё данные. Для этого щёлкните по пиктограмме и внесите в таблицу 5 записей (рис. 10).
Рис. 10. Записи таблицы БД «Записная книжка»
После того, как все записи внесены. Утилиту можно закрыть. Все изменения в таблице будут сохранены автоматически.
- Разработка приложения, работающего с БД.
Теперь создадим непосредственно приложение, которое будет работать с нашей БД. Запускаем Delphi. Размещаем на форме следующие компоненты (см. Таблица 2). и настраиваем их свойства
Имя компонента | Вкладка | Свойства компонента |
Table | BDE | DatabaseName – PR1 TableName – записная_книжка.db Active – True |
DataSource | Data Access | DataSet – Table1 |
DBGrid | Data Controls | DataSource – DataSource1 |
Сохраняем проект и запускаем приложение на исполнение. Если вы всё правильно сделали, то должны получить вот такое окно (рис. 11):
Рис. 11. Готовое приложение БД «Записная книжка»
II. Контрольные вопросы
- Какие бывают БД? Охарактеризуйте каждый вид. Приведите примеры.
- Что такое транзакция?
- Для чего предназначен BDE?
- Для чего предназначены утилиты BDE Administrator и Database Desktop?
- Как загрузить утилиты BDE Administrator и Database Desktop?
- Что такое псевдоним БД?
- Как создать псевдоним БД?
- Перечислите основные пункты алгоритма создания БД в Delphi.
III. Самостоятельная работа
Задание:Напишите программу работы с базой данных «Ежедневник», каждая запись которой содержит информацию о запланированном мероприятии.
Таблица 2. Поля записей базы данных «Ежедневник»
[1] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 507)
[2] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 508)
[3] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 508)
[4] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 507)
[5] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 511)
[6] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 510)
[7] Фаронов В.В. Программирование баз данных в Delphi 7. Учебный курс. СПб.: Питер, 2006. – 459 с.: ил. (стр. 20)
[8] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 511)
[9] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 512)
[10] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 515)
[11] Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 516)
[12] А.Я Архангельский. Программипование в Delphi для Windows. Версии 2006, 2007, Turbo Delphi. – М.: ООО «Бином-Пресс», 2007 г. – 1248 с.: ил. (стр. 710).