Классика баз данных - статьи

       

приложение выберет один из указателей


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

Навигационная точка зрения была хорошо сформулирована Чарльзом Бахманом (Charles Bachman) в лекции при получении премии Тьюринга [BACH73]. Нам кажется, что 17 лет, прошедшие с того времени, показали, что подобные интерфейсы неудобны, и использовать их не следует. Далее мы обсудим лишь две из множества важных проблем, связанных с навигацией. Во-первых, когда программист осуществляет навигацию к искомым данным таким образом, он заменяет функции оптимизатора запросов написанными вручную вызовами более низкого уровня. История наглядно продемонстрировала, что хорошо написанный и хорошо настроенный оптимизатор почти во всех случаях добивается лучших результатов, чем написанные вручную вызовы. Следовательно, почти наверняка программист создаст программу с более низкой производительностью. Более того, ему придется решать гораздо более сложные задачи при написании кода для сложных низкоуровневых интерфейсов.

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

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

Содержание  Назад  Вперед