Базы данных в Delphi

Создание БД

Базы данных в Delphi

 

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

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

 

Псевдоним 

Разрабатывая программу работы с базой данных, программист не может знать, на каком диске и в каком каталоге будут находиться файлы базы данных во время ее использования. Например, пользователь может поместить базу данных в один из каталогов дисков С:, D: или на сетевой диск.
Поэтому возникает проблема передачи в программу информации о месте нахождения файлов базы данных.
В Delphi проблема передачи в программу информации о месте нахождения файлов базы данных решается путем использования псевдонима базы данных.
Псевдоним (Alias) — это короткое имя, поставленное в соответствие реальному, полному имени каталога базы данных. Например, псевдонимом каталога C:\data\SPetersburg может быть имя Peterburg. Программа работы с базой данных для доступа к данным использует не реальное имя, а псевдоним.
Для доступа к информации программа, обеспечивающая работу с базой данных, подключает библиотеку Borland Database Engine (BDE), которая, в свою очередь, использует конфигурационный файл, содержащий информацию о всех зарегистрированных в системе псевдонимах.
Псевдоним базы данных может быть создан (зарегистрирован) при помощи утилиты BDE Administrator. Эта же утилита позволяет изменить каталог, связанный с псевдонимом.

База данных — это набор файлов (таблиц), в которых находится информация. Как правило, база данных состоит из нескольких таблиц, которые размещают в одном каталоге. Каталог для новой базы данных создается обычным образом, например, при помощи Проводника.
Таблицу можно создать, воспользовавшись входящей в состав Delphi утилитой Borland Database Desktop или организовав SQL-запрос к серверу базы данных
Так как для доступа к файлам (таблицам) базы данных библиотека BDE использует не имя каталога, в котором находятся файлы, а его псевдоним, то перед тем, как приступить к созданию таблиц новой базы данных, необходимо создать псевдоним для этой базы данных.
Таким образом, процесс создания базы данных может быть представлен как последовательность следующих шагов:
  1. Создание каталога.
  2. Создание псевдонима.
  3. Создание таблиц. 

Создание каталога

Каталог (папка) для файлов базы данных создается обычным образом, например, при помощи Проводника. Обычно файлы локальной базы данных помещают в отдельном подкаталоге каталога программы работы с базой данных.

 

Примечание: Для дальнейшей работы с рассматриваемой в качестве примера базой данных "Архитектурные памятники Санкт-Петербурга" следует в каталоге Проекты создать каталог Петербург и в нем — подкаталог Data.


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

Псевдоним базы данных создается при помощи входящей в Delphi утилиты BDE Administrator, которая запускается из Windows выбором из меню Программы | Borland Delphi 7 команды BDE Administrator.

Базы данных в Delphi

Вид диалогового окна BDE Administrator после запуска приведен на рис. 17.2

Рис. 17.2. Окно BDE Administrator 

Базы данных в Delphi 

В левой части окна, на вкладке Databases, перечислены псевдонимы, зарегистрированные на данном компьютере. Для того чтобы создать новый псевдоним, необходимо из меню Object выбрать команду New. Затем в открывшемся диалоговом окне New Database Alias (Новый псевдоним базы данных) из списка Database Driver Name, в котором перечислены зарегистрированные в системе драйверы доступа к базам данных, нужно выбрать драйвер для создаваемой базы данных (рис. 17.3), т. е. фактически выбрать тип создаваемой базы данных.

 

При создании псевдонима по умолчанию предлагается драйвер STANDARD (default driver), который обеспечивает доступ к таблицам в формате Paradox.

Рис. 17.3. Диалоговое окно New Database Alias 

Базы данных в Delphi 

После выбора драйвера и щелчка на кнопке ОК в список псевдонимов будет добавлен новый элемент (рис. 17.4).

Рис. 17.4. Регистрация нового псевдонима 

Базы данных в Delphi 

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

 

Имя псевдонима можно изменить обычным для Windows способом: щелкнуть правой кнопкой мыши на имени псевдонима (на вкладке Databases), в появившемся контекстном меню выбрать команду Rename (Переименовать) и в открывшемся диалоговом окне ввести новое имя.

 

Путь к файлам базы данных можно ввести на вкладке Definition в поле Path с клавиатуры или воспользоваться стандартным диалоговым окном Select Directory (Выбор каталога), которое открывается щелчком на кнопке с тремя точками, находящейся в конце поля Path

 

В качестве примера на рис. 17.5 приведен вид окна BDE Administrator после создания псевдонима Peterburg для базы данных"Архитектурные памятники Санкт-Петербурга".

 

Для того чтобы созданный псевдоним был зарегистрирован в файле конфигурации (Idapi.cfg), необходимо в меню Object выбрать команду Apply (Применить). В открывшемся диалоговом окне Confirm следует подтвердить необходимость сохранения изменений в файле конфигурации.

Рис. 17.5. Результат создания псевдонима 

Базы данных в Delphi


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

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

 

Например, сведения об исторических памятниках Санкт-Петербурга могут быть организованы в виде записей, состоящих из полей "Памятник" и "Историческая справка" или из полей "Памятник", "Архитектор", "Год" и "Историческая справка".

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

 

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

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

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

 

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

 

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

 

Утилита Database Desktop позволяет выполнять все необходимые при работе с базами данных действия. Она обеспечивает создание, просмотр и модификацию таблиц баз данных различных форматов (Paradox, dBASE, Microsoft Access). Кроме того, утилита позволяет выполнять выборку информации путем создания запросов.

 

Рис. 17.6. Диалоговое окно Database Desktop 

Базы данных в Delphi 

Для того чтобы создать новую таблицу, нужно выбором из меню Tools команды Database Desktop запустить Database Desktop. Затем в появившемся окне утилиты Database Desktop надо из меню File выбрать команду New и в появившемся списке выбрать тип создаваемого файла— Table (рис. 17.6).

Затем в открывшемся диалоговом окне Create Table (рис. 17.7) следует выбрать тип создаваемой таблицы (значением по умолчанию является тип Paradox 7).

Рис. 17.7. Выбор типа таблицы

Базы данных в Delphi 

В результате открывается диалоговое окно Create Paradox 7 Table (рис. 17.8), в котором можно определить структуру записей таблицы.

Рис. 17.8. Диалоговое окно Create Paradox 7 Table 

Базы данных в Delphi

Для каждого поля таблицы необходимо задать имя, тип и, если нужно, размер поля. Имя поля используется для доступа к данным. В качестве имени поля, которое вводится в колонку Field Name, можно использовать последовательность из букв латинского алфавита и цифр длиной не более 25 символов. 

 

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

 

Таблица 17.1. Тип поля определяет тип информации, которая может в нем находиться

Константа, определяющая тип поля, может быть введена с клавиатуры или путем выбора типа поля из списка (рис. 17.9), который появляется при щелчке правой кнопкой мыши в колонке Туре или при нажатии клавиши < Пробел >.

Рис, 17.9. Тип поля можно выбрать из списка

Базы данных в Delphi

Одно или несколько полей можно пометить как ключевые. Ключевое поле определяет логический порядок следования записей в таблице. Например, если символьное (тип Alpha) поле Fam (Фамилия) пометить как ключевое, то при выводе таблицы записи будут упорядочены в соответствии с алфавитным порядком фамилий. Если поле Fam не помечать как ключевое, то записи будут выведены в том порядке, в котором они были введены в таблицу. Следует обратить внимание на то, что в таблице не может быть двух записей с одинаковым содержимым ключевых полей. Поэтому в рассматриваемом примере ключевыми полями должны быть поля Fam (Фамилия) и name (Имя). Тогда в таблицу можно будет ввести информацию об однофамильцах. Однако по прежнему нельзя будет ввести однофамильцев, у которых совпадают имена.

 

Поэтому в качестве ключевого поля обычно выбирают поле, которое содержит уникальную информацию. Для таблицы, содержащей список людей, в качестве ключевого можно выбрать поле Рasр (Паспорт).

 

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

 

Если данные, для хранения которых предназначено поле, должны обязательно присутствовать в записи, то следует установить флажок Required Field. Например, очевидно, что поле Fam (Фамилия) обязательно должно быть заполнено, в то время как поле теl (Телефон) может оставаться пустым.

 

Если значение, записываемое в поле, должно находиться в определенном диапазоне, то вводом значений в поля Minimum value (Минимальное значение) и Maximum value (Максимальное значение) можно задать границы диапазона.

 

Поле Default value позволяет задать значение по умолчанию, которое будет автоматически записываться в поле при добавлении к таблице новой записи. Поле Picture позволяет задать шаблон, используя который можно контролировать правильность вводимой в поле информации. Шаблон представляет собой последовательность обычных и специальных символов. Специальные символы перечислены в табл. 17.2.

 

Во время ввода информации в позицию поля, которой соответствует специальный символ, будут появляться только символы, допустимые для данного символа шаблона. Например, если в позиции шаблона стоит символ #, то в соответствующую этому символу позицию можно ввести только цифру. Если в позиции шаблона стоит обычный символ, то во время ввода информации в данной позиции будет автоматически появляться указанный символ. Например, пусть поле Tel типа А (строка символов) предназначено для хранения номера телефона, и программа, работающая с базой данных, предполагает, что номер телефона должен быть представлен в обычном виде, т. е. в виде последовательности сгруппированных, разделенных дефисами цифр.

 

В этом случае в поле Picture следует записать шаблон: ###-##-*#. При вводе информации в поле Tel будут появляться только цифры (нажатия клавиш с другими символами игнорируются), причем после ввода третьей и пятой цифр в поле будут автоматически добавлены дефисы. 

 

Таблица 17.2, Специальные символы, используемые при записи шаблонов 

Некоторые элементы данных поля могут быть необязательными, например, код города для номера телефона. Элементы шаблона, обеспечивающие ввод необязательных данных, заключают в квадратные скобки. Например, шаблон [(###)]###-##-№# позволяет вводить в поле номер телефона как с заключенным в скобки кодом города, так и без кода.

 

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

 

Например, если для поля Address задать шаблон [Санкт-петербург, Москва, Воронеж|*@ или [Санкт-Петербург, Москва, Воронеж]*Э, то во время ввода данных в это поле название соответствующего города будет появляться сразу после ввода одной из букв: с, м или в. Отличие фигурных скобок от квадратных и, следовательно, этих шаблонов друг от друга состоит в том, что в первом шаблоне содержимое поля обязательно должно начинаться с названия одного из перечисленных в списке городов, а во втором — город может называться по-другому, однако его название придется вводить полностью.

 

После того как будет определена структура таблицы, таблицу следует сохранить. Для этого необходимо нажать кнопку Save As (см. рис. 17.8). В результате открывается окно Save Table As. В этом окне из списка Alias нужно выбрать псевдоним базы данных, частью которой является созданная таблица, а в поле Имя файла ввести имя файла, в котором нужно сохранить созданную таблицу (рис. 17.10).

Рис. 17.10. Сохранение таблицы базы данных 

Базы данных в Delphi

Если перед тем как нажать кнопку Сохранить установить флажок Display table, то в результате нажатия кнопки Сохранить открывается диалоговое окно Table (рис. 17.11), в котором можно ввести данные в только что созданную таблицу. 

Рис. 17.11. Окно Database Desktop можно использовать для ввода информации в базу данных

 Базы данных в Delphi

Если таблица базы данных недоступна, то для того чтобы ввести данные в таблицу, таблицу нужно открыть. Для этого надо из меню File выбрать команду Open | Table, затем в появившемся диалоговом окне Open table в списке Alias выбрать псевдоним нужной базы данных и таблицу. Следует обратить внимание, что таблица будет открыта в режиме просмотра, в котором изменить содержимое таблицы нельзя. Для того чтобы в таблицу можно было вводить данные, нужно активизировать режим редактирования таблицы, для чего необходимо из меню Table выбрать команду Edit Data

 

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

 

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

 

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

 

Для этого необходимо в меню Edit выбрать команду Preferences и в появившемся диалоговом окне, во вкладке General, щелкнуть на кнопке Change. В результате этих действий откроется диалоговое окно Change Font (рис. 17.12), в котором нужно выбрать русифицированный шрифт. Следует обратить внимание, что в Windows 2000 (Windows XP) используются шрифты типа Open Type, в то время как программа Database Desktop ориентирована на работу со шрифтами TrueType. Поэтому в списке шрифтов нужно выбрать русифицированный шрифт именно TrueType. После этого надо завершить работу с Database Desktop, так как внесенные в конфигурацию изменения будут действительны только после перезапуска утилиты.

 

Рис. 17.12. Для правильного отображения данных в Database Desktop нужно выбрать

Базы данных в Delphi


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

 

В настоящее время существует достаточно большое количество программных систем, позволяющих создавать и использовать локальные (dBASE, FoxPro, Access, Paradox) и удаленные (Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server) базы данных.
В состав Delphi входят компоненты, позволяющие создавать программы работы с файлами данных, созданными различными системами: от dBASE до Infomix и Oracle. Delphi также позволяет программисту, используя утилиту Borland Database Desktop, создавать файлы баз данных в различных форматах.

Если Вам понравилась эта статья, пожалуйста поделитесь ей с друзьями, с помощью социальных кнопок:

dle

Помоги проекту! Расскажи друзьям об этом сайте: