СУБД, или Системы управления базами данных
Источники:
Stepik: Введение в базы данных (https://stepik.org/course/551)
Книга: Распределенные данные. Алгоритмы работы современных систем хранения информации. Алекс Петров. 2021
Введение в системы баз данных. К. Дж. Дейт. 2005
Введение
Основные определения
Система баз данных - компьютеризированная система хранения однотипных записей База данных - хранилище или контейнер для некоторого набора файлов данных, занесенных в компьютер.
Пользователям этой системы предоставляется возможность выполнять (или передавать системе запросы на выполнение) множество различных операций над такими файлами, например:
добавлять новые пустые файлы в базу данных;
вставлять новые данные в существующие файлы;
получать данные из существующих файлов;
удалять данные из существующих файлов;
изменять данные в существующих файлах;
удалять существующие файлы из базы данных.
Note
Распределенные системы управления базами данных являются неотъемлемой частью большинства предприятий и подавляющего большинства программных приложений.
Приложения отвечают за логику и взаимодействие с пользователем, в то время как системы управления базами данных (СУБД) обеспечивают целостность, согласованность и избыточность данных.
План курса (позже удалить)
Базовые операции SQL - “как стать на “ты” с базами данных”
Основы реляционных СУБД - “как написать запрос любой сложности”
Проектирование БД - “от концепции до физической структуры”
Использование ORM - “связь БД с концепциями ООП”
Администрирование MySQL и оптимизация запросов - “как стать системным администратором БД”
Нереляционные СУБД - “когда и как сказать “Not Only SQL””
Технологии и инструменты курса
СУБД:
MySQL - доминирующая РСУБД среди свободного ПО
MongoDB - наиболее популярная документоориентированная СУБД (подходит для проектирвоания баз данных с нечеткой или часто меняющейсчя схемой)
Redis - наиболее стабильная СУБД типа “ключ-значение” (его преимущество - быстрый доступ к данным)
Проектирование:
MySQL Workbench - популярный и свободный инструмент выполнения запросов и проектирования БД
Ваш любимый ORM (наш - Django ORM) - на любом популярном языке есть несколько вариантов
Что такое база данных?
Определений много, но есть схожие характеристики: - Хранит данные по правилам (концепция, схема) - Можно управлять данными по правилам - Нужна для удовлетворения информационных потребностей
Основные понятия баз данных
Определений много, но есть схожие характеристики: - Хранит данные по правилам (концепция, схема) - Можно управлять данными по правилам - Нужна для удовлетворения информационных потребностей
Сущность - класс, хранящийся в базе данных, таблица. (Некоторая основа, наделенная смыслом)
Note
Не всякая таблица является сущностью. Некоторые таблицы используются для связывания сущностей.
Объект - экземпляр сущности или класса. Атрибут - некоторое свойство характеризующие сущность, название столбца в таблице.
Кортеж - строка в таблице, набор значений конкретных атрибутов.
Домен - набор допустимых значений атрибута. Например, пол: мужской и женский
Идентификатор - атрибут с уникальным значением для данной таблицы. Как правило - это целое число.
Банки, картотеки, любые крупные системы, в которых нужно хранить и изменять данные, а также иметь доступ к ним с разными ролями. (системы, где уже не обойтись xls-файлом)
Пример: в базе любого банка определены сущности пользователя, его долгов, операций - Веб-сайты - сервер использует БД для удобства управления информацией и взаимодействия с пользователем. Пример: онлайн-магазины оперируют сущностями, корзин, покупателей, скидок, акций - Приложения (мобильные и десктопные) используют локальные базы для удобства хранения данных по некоторым правилам. - Любой программный продукт, подразумевающий отделение бизнеслогики и уровня хранения данных.
Основные компоненты: - Ядро - процессы, сеть, память, файловая система и т.д. - Диспетчер данных - транзакции, кэш - Диспетчер запросов - парсер запроса, проверяющий валидность запросов; оптимизатор, исполнитель - Набор инструментов для служебных операций - резервное копирование, восстановление, мониторинг
Преимущества: - Простая схема данных для пользователя. - Логическая и физическая независимость от данных. - Целостность и защищенность данных. - Методологический подход к проектированию. Недостатки: - Относительно низкая скость доступа к данным. - Не универсальное решение для любой предметной области. - Меньшая гибкость при добавлении своих типов данных и операций.
Язык SQL
Диалекты: - Oracle (Самый распространенный СУБД) - MySQL (Самый популярный свободный СУБД) - PostgreSQL (Постреляционная СУБД) - MS SQL (СУБД, распространенная в Windows) - SQLite (СУБД, используемая для локальных приложений) - Access (Аналог SQLite от Microsoft)
Первый пример
Надо установить сервер MySQL и MySQL Workbench. Для этого скачивается и запускается MySQL-инсталлер и там выбираются MySQL Server и MySQL Workbench
Далее клонируем с гита курса примеры БД
После этого необходимо сначала File -> Open Model…->