Лекция 1. Введение в базы данных: Понятие БД, СУБД и их классификация

1. От файловых систем к базам данных

Исторически данные хранились в обычных файлах. Каждое приложение имело собственный формат файлов, что приводило к проблемам:

  • Избыточность данных: одинаковая информация дублировалась в разных файлах.
  • Противоречивость данных: изменение данных в одном файле не гарантировало их обновление в других.
  • Сложность доступа: для извлечения данных требовалось писать специализированные программы.

Базы данных были созданы для решения этих проблем, предложив централизованный и стандартизированный подход к хранению и управлению данными.

2. Основные понятия

Данные - это зарегистрированная информация, представление фактов, понятий или инструкций в форме, пригодной для общения, интерпретации или обработки человеком или автоматическими средствами.

База данных (БД) - это именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области. Проще говоря, это организованное хранилище данных.

Система управления базами данных (СУБД) - это комплекс программ, которые позволяют создавать базы данных, а также выполнять операции над данными: вставку, обновление, удаление и выборку.

3. Цели и функции СУБД

  • Управление данными во внешней памяти: СУБД берет на себя всю работу с дисками.
  • Управление данными в оперативной памяти: кэширование данных для ускорения доступа.
  • Журнализация изменений: возможность восстановления после сбоев.
  • Управление транзакциями: обеспечение целостности данных при одновременном доступе нескольких пользователей.
  • Обеспечение безопасности и разграничения доступа.

4. Преимущества и недостатки использования СУБД

Преимущества:

  • Снижение избыточности и противоречивости: Данные хранятся в одном месте, что уменьшает дублирование и упрощает поддержание их в актуальном состоянии.
  • Обеспечение целостности данных: СУБД предоставляют механизмы (ограничения, триггеры) для поддержания корректности и согласованности данных.
  • Стандартизация доступа к данным: Языки вроде SQL предоставляют универсальный интерфейс для работы с данными.
  • Многопользовательский доступ: СУБД управляют одновременным доступом нескольких пользователей к данным, предотвращая конфликты.
  • Безопасность: Предоставляются средства для контроля доступа, чтобы только авторизованные пользователи могли просматривать или изменять данные.

Недостатки:

  • Высокая стоимость: Затраты на программное обеспечение, мощное оборудование и лицензии могут быть значительными.
  • Сложность: Установка, настройка и администрирование мощных СУБД требуют специальных знаний и навыков.
  • Избыточность для простых задач: Для небольших приложений с простыми требованиями к данным использование полноценной СУБД может быть излишним.

5. Классификация СУБД

СУБД можно классифицировать по различным признакам:

По модели данных:

  • Иерархические: данные организованы в виде древовидной структуры (например, IMS).
  • Сетевые: обобщение иерархической модели, где каждый элемент может иметь несколько "предков" (например, IDMS).
  • Реляционные: данные хранятся в таблицах, связанных между собой. Это самая распространенная модель (например, PostgreSQL, MySQL).
  • Объектно-ориентированные: данные представляются в виде объектов, как в ООП (например, Caché).
  • NoSQL (нереляционные):
    • Документо-ориентированные: хранят данные в виде документов, например, JSON (MongoDB).
    • Ключ-значение: простейшая модель, где данные хранятся как набор пар "ключ-значение" (Redis).
    • Графовые: предназначены для хранения данных с большим количеством связей, представляют их в виде графа (Neo4j).

По архитектуре:

  • Файл-серверные: БД хранится в виде файла на сервере, а обработка происходит на клиенте (например, MS Access).
  • Клиент-серверные: есть сервер, который хранит и обрабатывает данные, и клиенты, которые отправляют запросы (например, PostgreSQL, MS SQL Server).
  • Встраиваемые: СУБД является частью приложения, не требует отдельной установки (например, SQLite).

6. Роли в мире баз данных

  • Администратор БД (DBA): отвечает за установку, настройку, резервное копирование и общую работоспособность СУБД.
  • Разработчик БД: проектирует структуру базы данных, пишет хранимые процедуры и триггеры.
  • Разработчик приложений: создает приложения, которые используют базу данных.
  • Аналитик данных: извлекает из данных полезную информацию и знания.

Практическое задание 1

Для закрепления материала выполните Практическое задание 1: Анализ и сравнение СУБД.