480___________________________________________Глава|

можностями или обладающих примерно равными возможностями и конкурирую-i
щих друг с другом: Paradox, dBase, Microsoft Access, FoxPro, Oracle, InterBase, Sy-j
base и много других.

Разные СУБД по разному организуют и хранят базы данных. Например, Para-
dox и dBase используют для каждой таблицы отдельный файл. В этом случае база
данных — это каталог, в котором хранятся файлы таблиц. В Microsoft Access ив
InterBase несколько таблиц хранится как один файл. В этом случае база данных —
это имя файла с путем доступа к нему. Системы типа клиент/сервер, такие, как
серверы Sybase или Microsoft SQL, хранят все данные на отдельном компьютере "
общаются с клиентом посредством специального языка, называемого SQL.

Поскольку конкретные свойства баз данных очень разнообразны, пользовате- ,
лю было бы весьма затруднительно работать, если бы он должен был указывать в 1
своем приложении все эти каталоги, файлы, серверы и т.п. Да и приложение часто
пришлось бы переделывать при смене, например, структуры каталогов и при пере- •
ходе с одного компьютера на другой. Чтобы решить эту проблему, используют
псевдонимы баз данных. Псевдоним (alias) содержит всю информацию, необхо
мую для обеспечения доступа к базе данных. Эта информация сообщается тол;

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

При вводе в базы данных больших объемов информации всегда возможны
ошибки. Чтобы уменьшить вероятность таких ошибок, используют понятие тран-
закция. На протяжении транзакции пользователь может что-то изменять в базе
данных, вводить туда новую информацию, но это только видимость. В действите-
льности все изменения сохраняются во временной, виртуальной таблице. И только
после завершения транзакции, после всех проверок правильности вносимых в базу
данных пользователю предоставляется возможность или внести все эти изменения
в реальную базу данных, или отказаться от этого и вернуться к тому состоянию,
которое было до начала транзакции. К сожалению, не все СУБД поддерживают
транзакции. В частности, их не поддерживает Paradox. В этих случаях приходится
использовать искусственные приемы для создания временных таблиц.

9.1.2 Типы баз данных

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

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

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