Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Практическая работа №1.
Тема: Технология создания БД в Дельфи: BDE.
Цели:
Ход работы:
I. Выполнения задания по инструкции
1. Понятие БД (база данных). Типы БД.
С точки зрения пользователя, база данных это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную.
С точки зрения программиста, база данных это набор файлов, содержащих информацию. Разрабатывая базу данных для пользователя, программист создаёт программу, которая обеспечивает работу с файлами данных.
В зависимости от расположения программы, использующей данные, и самих данных, а также способа разделения данных между несколькими пользователями различают локальные и удалённые базы данных.
Данные локальной базы данных (файлы данных) находятся на одном (локальном) устройстве, в качестве которого может выступать диск компьютера или сетевой диск (диск другого компьютера, работающего в сети).1
Для обеспечения разделения (доступа к данным) между несколькими пользователями, в качестве которых выступают программы, работающие на одном или нескольких компьютерах, в локальных базах данных применяется метод, получивший название блокировка файлов. Суть этого метода заключается в том, что пока данные используются одним пользователем, другой пользователь не может работать с этими данными, т.е. данные для него закрыты, заблокированных.
Paradox, dBase, FoxPro и Access это локальные базы данных.2
Данные (файлы) удалённой базы данных находятся на удалённом компьютере. (Следует обратить внимание, что каталоги удалённого компьютера не могут рассматриваться как сетевые диски).
Программа работы с удалённой базой данных состоит из двух частей: клиентской и серверной.
Клиентская часть программы, работающая на компьютере пользователя, обеспечивает взаимодействие с серверной программой: посредством запросов, передаваемых на удалённый компьютер, представляет доступ к данным.
Серверная часть программы, работающая на удалённом компьютере, принимает запросы, выполняет их и пересылает данные клиентской программе. Запросы представляют собой команды, представленные на языке SQL (Structured Query Language) языке структурированных запросов.
Программа, работающая на удалённом сервере, проектируется таким образом, чтобы обеспечить одновременный доступ к информации нескольким пользователям. При этом для обеспечения доступа к данным вместо механизма блокировки файлов используется механизм транзакций.
Транзакция это некоторая последовательность действий, которая должна быть обязательно выполнена над данными перед тем, как они будут переданы. В случае обнаружения ошибки во время выполнения любого из действий вся последовательность действий, составляющая транзакцию, повторяется снова. Таким образом, механизм транзакций обеспечивает защиту от аппаратных сбоев. Он также обеспечивает возможность многопользовательского доступа к данным.3
Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server это удалённые базы данных.4
Разработка программы работы с удалённой базы данных сложная и трудоёмкая задача. Её решение предполагает наличие у разработчика глубоких знаний и больщого опыта разработки программного обеспечения. Поэтому в данном курсе задача разработки удалённых баз данных не рассматривается.
В комплекте с Delphi поставляется целый ряд инструментальных средств, предназначенных для работы с БД.
Название |
Назначение |
BDE (Borland Database Engine) |
Набор библиотек. Устанавливается на каждом компьютере, который использует приложения для работы с БД, написанные в среде Delphi. Выполняет действия по доступу к данным и проверке их правильности. Является, по существу, центральным средством для работы с БД из приложений, созданных с помощью Delphi. |
BDE Administrator |
Утилита служит для установки псевдонимов (имен) баз данных, параметров БД и драйверов баз данных на конкретном компьютере. |
Database Desktop (DBD) |
Представляет собой средство для создания, изменения и просмотра БД. |
Database Explorer (SQL Explorer) |
Утилита предназначена для конфигурирования псевдонимов БД, просмотра структуры БД, таблиц БД, выдачи запросов к БД, создания словарей данных. |
SQL Monitor |
Средство, предназначенное для отслеживания порядка выполнения SQL- запросов. |
SQL Links |
Драйверы предназначены для работы с удаленными "промышленными" СУБД, такими как Sybase, MS SQL Server, Oracle. Для работы с "родным" SQL-сервером Borland InterBase устанавливать SQL Links нет необходимости. Доступ к таблицам локальных ("настольных", "персональных") СУБД типа Paradox, dBase также осуществляется BDE напрямую, без использования SQL Links. |
Datapump |
Программа, обеспечивающая возможность перемещения таблиц из одной БД в другую. |
Local InterBase Server |
Локальная однопользовательская версия SQL-сервера Borland InterBase, применяемая для поддержания двух активных линий соединения клиентов с сервером. Используется в основном для создания БД, отладки приложений клиентов, которые предназначаются для работы с удаленными БД. В дальнейшем, после отладки, БД переносятся на удаленный сервер, а приложение клиента перенастраивается для работы с удаленной БД. Данная перенастройка обычно не требует больших трудозатрат. |
InterBase Server for Windows |
Представляет собой 4-пользовательскую версию SQL-сервера Borland InterBase, которая может устанавливаться на компьютерах, работающих под управлением Windows. Используется для тех же целей, что и Local InterBase Server, однако на InterBase for Windows можно производить отладку в многопользовательском режиме, что важно для проверки корректности изменений, одновременно вносимых пользователями в БД при параллельной работе с ней. |
Visual Query Builder |
Средство в составе интегрированной среды Delphi, служит для автоматического создания SQL-запросов методом QBE (Query By Example - запрос по образцу). |
Data Dictionary |
Словарь данных, является средством для хранения атрибутов полей таблиц БД отдельно от самих БД и приложений. |
Data Module |
Невизуальные компоненты типа TDataModule применяются для централизованного хранения наборов данных (НД) в приложении, работающем с БД. Одним из главных удобств является возможность приписывания каждому НД правил по управлению данными. Такие правила называются бизнес-правилами. Они обычно определяют реакцию системы при добавлении, изменении, удалении данных, при вводе ошибочных значений и реализуют блокировку действий, которые могут разрушить ссылочную и смысловую целостность БД. Такие бизнес-правила, хранящиеся централизованно на уровне приложения, при использовании одного и того же набора данных в разных формах приложения позволяют унифицировать поведение НД на уровне всего приложения. |
Object Repository |
Представляет собой репозиторий объектов Delphi. Будучи единожды разработанными для какого-либо приложения, формы с визуальными и невизуальными компонентами, а также компоненты TDataModule могут сохраняться в репозиторий. В этом случае они могут использоваться другими, вновь создаваемыми приложениями. Таким образом устраняется необходимость повторного написания идентичного или схожего кода в приложениях. |
Data Migration Wizard. |
Средство для перемещения данных между БД различных типов. |
Невизуальные компоненты для работы с БД |
Служат для соединения приложения с таблицами БД. |
Визуальные компоненты для работы с БД |
Визуальные компоненты Delphi предназначены для визуализации записей наборов данных (например, компонент TDBGrid) или отдельных полей текущей записи набора данных (например, TDBEdit, TDBText). |
QuickReport, Rave Reports |
Инструментальные средства, предназначенные для формирования отчетов БД. |
2. Алгоритм создания БД
Процесс создания базы данных в Delphi может быть представлен как последовательность следующих шагов:
Каталог (папка) для файлов базы данных создаётся обычным образом, например, при помощи Проводника. Обычно файлы локальной базы данных помещаются в отдельном каталоге программы работы с базой данных.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 711 его мы и оставим, нажав кнопку ОК).
Рис. 5. Диалоговое окно Database Desktop
Рис. 6. Выбор типа таблицы
В результате открывается диалоговое окно Create Paradox 7 Table (рис. 7), в котором можно определить структуру записей таблицы.
Рис. 7. Диалоговое окно Create Paradox 7 Table
Сегодня мы создадим с вами однотабличную БД «Записная книжка», таблица которой будет содержать следующие поля:
Таблица 1. Поля записей базыданных «Записная книжка»
Каждая строка таблицы соответствует полю. Назначения столбцов:
Рассмотрим возможные типы полей СУБД Paradox:
Тип поля |
Обозна-чение |
Размер |
Хранимые значения |
Alpha |
A |
1-255 |
Текстовое поле указанной длины. |
Number |
N |
Числа с плавающей запятой в диапазоне от -10307 до +10307 с 15 значащими десятичными разрядами. |
|
Money |
$ |
Денежное поле. Содержит вещественные числа с фиксированной запятой, 6 знаками целой части и 2 знаками дробной. |
|
Short |
S |
Целые числа в диапазоне от -32 768 до +32 767 |
|
Long Integer |
I |
Целые числа в диапазоне от -2 147 483 648 до +2 147 483 647. |
|
BCD |
# |
0-32 |
Двоично-десятичные вещественные числа. Size ‒ количество разрядов после запятой. |
Date |
D |
Дата в диапазоне от 1.01.0000 до 31.12.9999. |
|
Time |
T |
Время с точностью до миллисекунд. |
|
Timestamp |
@ |
Дата и время. |
|
Мемо |
M |
1-240 |
Мемо-поле для размещения произвольных текстовых строк неограниченной длины. Первые Size символов хранятся в основной таблице, остальные ‒ в файле с расширением .MB. |
Formatted Memo |
F |
0-240 |
Мемо-поле для размещения форматирован-ного текста в формате RTF. |
Graphic Fields |
G |
0-240 |
Графическое изображение в формате BMP. Size байтов этого поля хранится в основной таблице, остальные ‒ в отдельном файле. |
OLE |
O |
0-240 |
Объект OLE. |
Logical |
L |
Логическое поле. Содержит значение True или False. |
|
Autoincrement |
± |
Автоинкрементное поле. Значения доступны только для чтения. Обычно- ключевой поле в составе первичного ключа. При добавлении новой записи значение поля вычисляется автоматически таким образом, чтобы в одной и той же таблице не было одинаковых значений. Значение поля из удаленных записей повторно не используются. |
|
Binary |
B |
0-240 |
Набор байтов произвольной длины. Первые Size байтов хранятся в основной таблице, остальные ‒ в отдельном файле. |
Bytes |
Y |
1-255 |
Набор из Size байтов (целиком хранится в таблице). |
В диалоговом окно Create Paradox 7 Table создадим необходимые поля в соответствии с таблицей 1 (см. рис. 8).
Рис. 8. Создание полей таблицы
Для каждого поля определим требование обязательного заполнения поля значением. Для этого, переходя от поля к полю, включим переключатели Required Field. Другие поля служат для наложения ограничений на значение поля:
Отсутствие значения в одном из полей означает отсутствие ограничений на значение поля.
Теперь нам необходимо сохранить нашу таблицу. Нажимаем кнопку Save As… в открывшемся диалоговом окне Save Table As в поле Имя файла пишем имя таблицы записная_книжка, в поле Тип файла всё оставляем без изменения, а в поле Alias из выпадающего списка выбираем псевдоним PR1, ставим галочку в пункте Display table и нажимаем кнопку Сохранить. (см. рис. 9).
Рис. 9. Окно сохранения таблицы
После того, как мы определим имя создаваемой таблицы AVTO, в каталоге C:\Proba (он назначен псевдониму Proba, используемому нами в качестве рабочего псевдонима) будет создан файл Avto.DB и файлы индексов с соответствующими расширениями
Если в структуру существующей таблицы БД необходимо внести изменения, следует выбрать элемент меню File|Open|Table, в появившемся диалоговом окне выбрать имя таблицы и нажать кнопку Ok. Будет показано содержимое таблицы.
Теперь мы можем вносить в неё данные. Для этого щёлкните по пиктограмме и внесите в таблицу 5 записей (рис. 10).
Рис. 10. Записи таблицы БД «Записная книжка»
В том случае, если мы хотим ввести новые записи в таблицу прямо в DBD (а также изменить значения в некоторых записях или произвести удаление), следует нажать кнопку F9. После этого таблица будет переведена в режим внесения изменений.
Чтобы изменить структуру таблицы, выберите элемент меню Table|Restructure. Вслед за этим будет показано диалоговое окно для определения структуры таблицы.
Создадим индекс по полям «Год выпуска» и «Марка». Для этого в комбинированном списке Table Properties (в правом верхнем углу окна) выберем элемент Secondary Indexes. После этого диалоговое окно приобретет вид, показанный на рис.1.11.
Рис.1.11. В правой части окна появился элемент Secondary Indexes
Чтобы определить новый индекс, нажмем кнопку Define. В появившемся диалоговом окне в поле Fields содержится список полей определяемой нами таблицы. Поле Index Fields предназначено для хранения полей, входящих в создаваемый индекс. Чтобы скопировать конкретное поле из списка Fields в список Index Fields, нужно нажать кнопку с изображением правой стрелки. Последовательность добавления полей в список важна, она определяет порядок чередования полей в списке. После того как поместили нужные поля в список Index Fields. Нажмем кнопку Ok.
Рис.1.12. Определение полей, входящих в состав индекса
В появившемся окне запрашивается имя индекса. Следует ввести имя и нажать Ok.
Рис.1.13. Окно сохранение индекса
Не рекомендуется составлять название индекса только из имени полей, поскольку такой способ именования используется автоматически при создании ссылочной целостности между таблицами.
Как видно на рис.1.14, после добавления нового индекса его имя появилось в списке индексов.
Рис.1.14. Список индексов, определенных для таблицы AVTO
Впоследствии, щелкнув по имени индекса, мы можем его удалить (кнопка Erase) или изменить (кнопка Modify).
После того, как все записи внесены. Утилиту можно закрыть. Все изменения в таблице будут сохранены автоматически.
II. Контрольные вопросы
III. Самостоятельная работа
Задание: Требуется создать БД, состоящую из одной таблицы, которая содержит сведения о деканате.
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)