Лекция 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: Анализ и сравнение СУБД.