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

       

использующие базы данных, являются важной


Программы, использующие базы данных, являются важной частью нашей информационной инфраструктуры. В этих системах языки программирования используются для вычислений общего назначения, а базы данных – для надежного и безопасного управления параллельным доступом к данным, поиска в больших объемах данных и обновления данных. Такие системы во все возрастающем количестве разрабатываются с использованием процедурных объектно-ориентированных языков и реляционных баз данных. Для обеспечения масштабируемости и надежности несколько серверов приложений обычно взаимодействует с совместно используемым, реплицируемым сервером баз данных.
Процедурные языки и языки запросов баз данных основываются на разных семантике и стратегиях оптимизации. Эти различия неформально называются «потерей соответствия» (impedance mismatch) []: между императивными программами и декларативными запросами; алгоритмами и структурами данных, с одной стороны, и отношениями и индексами, с другой стороны; потоками управления и транзакциями; пустыми указателями и неопределенными значениями в смысле отсутствия данных. Различаются также подходы к модульности и сокрытию информации. Поскольку базы данных и языки программирования могут выполнять много одинаковых задач, разработчикам приходится принимать архитектурные решения по поводу функциональной организации и разделения системы. Для распределенного исполнения также требуются эффективная структуризация и управление специализированными паттернами коммуникаций. В результате приложения, нуждающиеся в доступе к базам данных, трудно проектировать и разрабатывать. Языки программирования не облегчают эффективное использование баз данных, и для достижения хорошей производительности обычно требуется тщательная оптимизация, основанная на экспертных знаниях, что затрудняет сопровождение и развитие программ.
Эта статья позволяет лучше понять суть потери соответствия, или проблемы интеграции баз данных и языков программирования. Аспекты, влияющие на пограничный слой между языками программирования и базами данных, исследуются для создания списка критериев оценки решений.

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