Лекция 1. Вводная лекция
Почему PostgreSQL?
- Популярность — большое сообщество, много документации и готовых решений.
- MS SQL Server ушёл из России — миграция на PostgreSQL стала практической необходимостью для многих компаний.
- Open source — бесплатный и с открытым исходным кодом.
- Лёгкость запуска на любом устройстве — в отличие от MS SQL Server, который тяжело запустить где-то кроме Windows.
- Нетребовательна к ресурсам — MS SQL Server не запустить на сервере с 2 ГБ ОЗУ, в то время как PostgreSQL может работать даже в очень скромных условиях (условно, от ~16 МБ).
Правила курса
- Сервера с mock-данными для практики.
- Методичка (ликбез по SQL).
Защита лабораторных работ
- Тестовый запрос, который вы не видели, — пишете его за отведённое время.
- 5 минут на запрос: если корректен — сдали.
- Пары дробятся на слоты по 25 минут.
- Запись через Telegram-бота (или Google-таблицу, если не успеют).
- Приходим ко времени, есть ~20 минут на написание теста.
Дедлайны
Жёстких дедлайнов нет — только мягкие, со снятием баллов:
- Сдал вовремя — полный балл.
- Не сдал — штрафы по арифметической прогрессии (-1, -1, -2, -3, …).
- Сдавать желательно равномерно: количество людей на слот ограничено.
Распределение баллов
| Компонент | Баллы |
|---|---|
| Лабораторные работы | 60 |
| Рубежное тестирование | 20 (диапазон может меняться, обсуждается) |
| Экзамен | 20 |
Рубежка одна, поэтому баллы могут перераспределить (например, 10 на рубежку и 30 на экзамен).
Разбалловка лаб
6 + 8 + 10 + 12 + 12 + 12
- Лабы 1 и 2 идут вместе.
- Лабы 3 и 4 — скорее всего, тоже вместе.
- Освободившиеся «лабы» могут уйти на другие СУБД, например MongoDB.
Полезная ссылка: https://info.sqlwars.ru
Что такое данные?
- Данные — нет контекста, нет осмысленности. Своего рода «атомы» — измеряются в байтах.
- К данным добавляется контекст — получается информация.
- Знания — субъективное понятие: по одной и той же информации каждый делает свой вывод.
Данные — ресурс. Информация — продукт. Знания — сила.
База данных
Аналогия с библиотекой:
- Книги — данные.
- Полки и каталоги — структура базы данных.
- Библиотекарь — Система Управления Базами Данных (СУБД).
Какую структуру данных лучше использовать? — всё зависит от специфики данных.
База данных — это компонент информационной системы.
Почему бы не писать просто в файл?
- Безопасность. Если есть доступ к ОС, к файлу легко добраться напрямую.
- Дубликаты. Как исключить повторы? Сложно и долго.
- Плюс отсутствие транзакционности, многопользовательского доступа, индексов и т.д.
Требования к БД
- Структура.
- Целостность.
- Многопользовательский доступ (в т.ч. параллельный).
- Безопасность — даже при доступе к системному уровню данные защищены.
- Язык запросов — более-менее одинаков для всех БД (SQL).
Нас не интересует, что под капотом у СУБД. Мы говорим, что нужно сделать, а как — это её забота.
Модель данных
Архитектурный «чертёж» будущего здания, где кирпичи — это данные.
Формальное описание того, как мы будем хранить данные, как они связаны между собой и какие у них правила (ограничения).
Уровни моделирования
- Концептуальный уровень
- Сущности и связи.
- Модель для общения с заказчиками.
- Логический уровень
- Для реляционной модели: проектирование без привязки к конкретной СУБД.
- Физический уровень
- На какие диски будут положены данные?
- Какие индексы создать для ускорения поиска?
- Как партиционировать данные?
Реляционные базы данных
Виды связей:
- one-to-one
- one-to-many
- many-to-one
- many-to-many
Избыточность приемлема ради оптимизации.