СИСТЕ́МА УПРАВЛЕ́НИЯ БА́ЗАМИ ДА́ННЫХ
-
Рубрика: Технологии и техника
-
-
Скопировать библиографическую ссылку:
СИСТЕ́МА УПРАВЛЕ́НИЯ БА́ЗАМИ ДА́ Н НЫХ (СУБД, англ. Database Management System), комплекс программ, позволяющих создать базу данных (БД) и манипулировать данными (вставлять, обновлять, удалять и выбирать). Обеспечивает безопасность, надёжность хранения и целостность данных, а также предоставляет средства для администрирования БД. СУБД с помощью компилятора языка запросов обрабатывает обращения к БД от пользователей, проверяет корректность поступающих операторов и на основе метаданных (сведения о составе данных) формирует одно или неск. процедурных представлений оператора (планов выполнения). Наиболее эффективный план исполняется в СУБД при помощи внутр. подсистемы (ядра СУБД), поддерживающей интерфейс доступа к данным на уровне их отд. элементов (записей). Ядро СУБД обеспечивает буферизацию данных – кэширование (см. Кэш-память), синхронизацию доступа к данным и управление транзакциями (короткий во времени цикл взаимодействия объектов, включающий запрос – выполнение задания – ответ), а также журнализацию изменений БД (сохранение истории). Каждая СУБД основывается на некоторой модели данных (напр., реляционной). В большинстве совр. СУБД внешний интерфейс обычно основывается на использовании спец. языка (напр., SQL, Structured Query Language – стандартный язык запросов, язык определения структур и манипулирования данными), в котором отражаются осн. черты модели данных.
СУБД классифицируют: на сетевые, иерархич., реляционные (и SQL-ориентированные), объектно ориентированные, XML-ориентированные (англ. eXtensible Markup Language – расширяемый язык разметки) и др., т. е. по модели данных; универсальные и специализир., которые ориентированы на эффективную поддержку одного класса информац. систем (напр., транзакц. или аналитич.); файл-серверные (БД хранятся в файлах специализир. файлового сервера), клиент-серверные (все осн. компоненты СУБД выполняются на отд. сервере, на котором хранится и БД, а на клиентской части выполняется код приложения), встраиваемые (СУБД тесно связана с прикладной программой и полностью выполняется на том же компьютере, не требуя проф. администрирования); однопроцессорные (не используют аппаратные возможности параллелизма, были распространены до появления многоядерных процессоров), параллельные с общей памятью (обеспечивают межзапросный или внутризапросный параллелизм с использованием нескольких ядер), параллельные с общими дисками (неск. экземпляров СУБД работают в разных узлах вычислит. кластера, но обращаются к общей дисковой подсистеме, в которой хранится БД) и параллельные без использования общих ресурсов СУБД (неск. СУБД работают в разных узлах кластера, каждый со своим разделом БД, что обеспечивает горизонтальное масштабирование при росте объёма данных).
Первые СУБД (нач. 1960-х гг.) были основаны на иерархич., сетевой и др. ранних моделях данных. В нач. 1970-х гг. Э. Кодд (США) предложил новый – реляционный – подход к организации БД и СУБД, на основе которого в 1970-е гг. выполнены эксперим. проекты System R (IBM) и Ingres (Калифорнийский ун-т в Беркли) и заложены основы будущих технологий (язык SQL, принципы оптимизации запросов, методы управления транзакциями и др.). В 1980-е гг. разработаны объектно ориентированные, объектно реляционные и первые коммерч. реляционные СУБД. В 1990-е гг. появился ряд развитых универсальных SQL-ориентированных СУБД с объектно реляционными возможностями (Informix Universal Server, Oracle8, DB2, Universal Database). Принят стандарт SQL:1999, в котором эти возможности, а также все осн. средства SQL-ориентированных СУБД были окончательно согласованы и утверждены. Одновременно развивались объектно ориентированные СУБД. В нач. 21 в. М. Стонбрейкер (США) обосновал конец эпохи универсальных СУБД и переход к специализир., ориентированным на поддержку отд. классов информационных систем – XML-ориентированные (напр., Tamino, Sedna), потоковые (Streambase), аналитические (Vertica, Greenplum), транзакц. СУБД (VoltDB). Из-за взрывообразного роста данных (BigData) стала актуальной возможность горизонтального масштабирования; в результате практически все совр. СУБД являются массивно-параллельными. Проблема BigData привела к появлению ряда систем категории NoSQL, разработчики которых опираются на опыт в области распределённых систем (совокупность логически взаимосвязанных баз данных, распределённых по узлам компьютерной сети) и не следуют канонам традиционных СУБД. В СССР и РФ разрабатывали СУБД ИНЕС и НИКА (1980-е гг., Ин-т системного анализа РАН), ЛИНТЕР (компания РЕЛЭКС, Воронеж, с кон. 1980-х гг.), Sedna (2000-е гг., Ин-т системного программирования РАН).