Базы данных. Системы управления базами данных (СУБД).
Историческая необходимость БД
Исторически первыми системами для хранения и обработки данных были файловые системы.
(Рис. 1).
Ограничения, присущие файловым системам:
Разделение и изоляция данных.
Дублирование данных (→ неэкономичное расходование ресурсов, нарушение целостности данных (их противоречивость)).
Зависимость от данных (физическая структура и способ хранения записей файлов жестко зафиксированы в коде приложения).
Фиксированные запросы (→ быстрое увеличение количества приложений).
Несовместимость файлов (т.к. структура файла определяется приложением).
Базы данных – это совместно используемый набор логически связанных данных (и описания этих данных), описывающий характеристики каких-либо физических или виртуальных систем.
(Рис. 2).
Описания данных называются системным каталогом (или словарем данных). Наличие самоопределения данных в БД обеспечивает в ней независимость программ от данных.
СУБД – это программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также осуществлять к ней контролируемый доступ.
Функции СУБД
Позволяет создавать БД (т.е. определять ее структуру, обычно с помощью языка определения данных (DDL – Data Definition Language)).
Позволяет добавлять, удалять и обновлять информацию в БД (обычно с помощью языка запросов – языка манипулирования данными (DML – Data Manipulation Language)). Один из вариантов языка запросов – язык SQL – Structured Query Language – язык структурированных запросов.
Осуществляет контролируемый доступ БД.
Одними из основных аспектов обеспечения доступа в БД являются управление транзакциями и ведение журнала.
Транзакция – группа последовательных операций, которая представляет собой логическую единицу работы с данными. Она может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта.
Определяет принцип, согласно которому рекомендуется строить СУБД. Был предложен в 1975 году.
3 уровня СУБД:
Внешний уровень – это представление БД с точки зрения пользователя, описывает ту часть БД, которая относится к каждому пользователю. Каждый пользователь получает в распоряжение часть представлений о данных, но полная концепция скрыта.
Концептуальный уровень – обобщающее представление БД, описывает то, какие данные хранятся в БД, а также связи, существующие между ними. В основе всей архитектуры БД лежит именно этот уровень.
Внутренний уровень – отвечает за физическое представление БД, описывает, как информация хранится в БД (например, организация пространства на жестком диске, файловая система, файлы подкачки и т.д.)
Отделение внутреннего уровня от концептуального обеспечивает так называемую физическую независимость данных.
Отделение внешнего уровня от концептуального обеспечивает логическую независимость данных.