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