Занятие 08 является поворотным в курсе «Основы проектирования баз данных». До этого занятия обучающиеся воспринимали базу данных преимущественно декларативно и статично — как структуру сущностей, атрибутов, таблиц и внешних ключей. Данная тема открывает манипуляционную часть реляционной модели данных: переход от структуры хранения к формальной математической логике извлечения и преобразования информации.
WHERE и SELECT); дать системный обзор базовых теоретико-множественных операций ($R \cup S$, $R \cap S$, $R \setminus S$, $R \times S$).В зависимости от расписания и организационных условий занятие реализуется по основному (80 минут) либо сокращенному (60 минут) регламенту.
| Этап занятия | Основной регламент (80 мин) | Сокращенный регламент (60 мин) | Дидактический фокус и методы обучения |
|---|---|---|---|
| 1. Организационный момент и мотивация | 5 минут | 4 минуты | Приветствие, фиксация явки, проблемный вызов: «Как процессор СУБД понимает SQL-запрос? Откуда берется гарантия, что результат запроса — это снова таблица?». Постановка темы и целей. |
| 2. Актуализация опорных знаний | 7 минут | 5 минут | Фронтальный экспресс-опрос: сущность отношения (подмножество декартова произведения доменов), кортеж как строка, атрибут как именованный столбец, отсутствие порядка строк и уникальность кортежей в математическом множестве. |
| 3. Сообщение новых знаний: теоретический блок | 33 минуты | 25 минут |
1. Алгебра Кодда и свойство замкнутости (Closedness). 2. Селекция ($\sigma_\varphi$): предикат отбора, горизонтальный срез. 3. Проекция ($\pi_A$): список атрибутов, вертикальный срез, устранение дубликатов кортежей. 4. Композиция/суперпозиция: $\pi(\sigma(R))$. Порядок выполнения операций. 5. Связь с теоретико-множественными операциями ($\cup$, $\cap$, $\setminus$, $\times$). 6. Прямой мостик в SQL: SELECT <атрибуты> FROM <отношение> WHERE <предикат>.
|
| 4. Первичное закрепление и разбор эталонов | 12 минут | 10 минут | Демонстрация интерактивной презентации (слайды с геометрическими схемами и примерами вычислений). Пошаговый коллективный расчет эталонного отношения на доске/экране. |
| 5. Практическая работа обучающихся (рабочий лист) | 15 минут | 11 минут | Самостоятельное выполнение расчетных заданий в интерактивном рабочем листе zanyatie.html по 4 дифференцированным вариантам. Преподаватель выступает в роли тьютора/консультанта. |
| 6. Подведение итогов, рефлексия, инструктаж ДЗ | 8 минут | 5 минут | Анализ типичных ошибок по критериям рубрики .rubrika.md. Самооценка студентов. Разъяснение статуса резервного домашнего задания. Просмотр заключительного слайда с профессиональным юмором (мем). |
Реляционная алгебра была предложена Эдгаром Ф. Коддом в 1970 году как замкнутая система операций над отношениями. В строгом математическом смысле алгебра — это пара $\langle \Omega, \mathcal{O} \rangle$, где $\Omega$ — множество объектов (в нашем случае — реляционные отношения), а $\mathcal{O}$ — совокупность операций, определенных на этом множестве.
Из замкнутости вытекают три критически важных практических следствия:
Выборка (селекция) — это унарная операция, которая строит горизонтальный срез отношения. Она отбирает подмножество кортежей, удовлетворяющих заданному логическому условию (предикату $\varphi$).
Характеристики операции селекции:
Проекция — это унарная операция, формирующая вертикальный срез отношения. Она оставляет только заданное подмножество атрибутов $A = \{A_1, A_2, \dots, A_k\}$, удаляя все остальные столбцы.
Характеристики операции проекции:
Комбинация выборки и проекции представляет собой классическую форму запроса на извлечение данных. Канонический порядок вычисления:
Педагогическая подсказка: Почему нельзя сначала спроецировать, а потом выбрать? Если мы выполним $\sigma_\varphi(\pi_A(R))$, а атрибут из условия $\varphi$ был удален проекцией $\pi_A$, выражение станет синтаксически некорректным (неопределенный идентификатор атрибута). Это фундаментальный принцип оптимизации запросов: селекцию всегда выгодно проталкивать как можно глубже вниз по дереву разбора (Pushdown Predicate).
Реляционная алгебра включает классические операции теории множеств, модифицированные с учетом схем отношений:
Язык SQL базируется на реляционной алгебре и исчислении кортежей Кодда, однако имеет принципиальное практическое отличие: SQL по умолчанию оперирует мультимножествами (мешками / bags), а не чистыми множествами из соображений вычислительной производительности (сортировка и хэширование для поиска дубликатов на миллионах строк — дорогостоящая операция).
| Операция реляционной алгебры | Конструкция стандарта SQL | Поведение относительно дубликатов |
|---|---|---|
| Селекция $\sigma_{\text{age} > 20}(R)$ | SELECT * FROM R WHERE age > 20; |
Фильтрует строки по предикату; дубликаты не возникают, если в $R$ их не было. |
| Проекция $\pi_{\text{city}}(R)$ (математическая) | SELECT DISTINCT city FROM R; |
Ключевое слово DISTINCT реализует каноническую реляционную проекцию Кодда (устранение дубликатов). |
| Проекция без подавления дубликатов (SQL-стиль) | SELECT city FROM R; |
Возвращает мультимножество (дубликаты сохраняются). Это проекция в реляционном мешке. |
| Суперпозиция $\pi_{A, B}(\sigma_{\varphi}(R))$ | SELECT DISTINCT A, B FROM R WHERE <условие>; |
Фильтрация по строкам с последующим вертикальным срезом и устранением дублей. |
SELECT col FROM tbl в SQL без ключевого слова DISTINCT.zanyatie.html построены на близких и наглядных предметных областях (Сотрудники компании, Студенты вуза, Заказы интернет-магазина, Логистический склад). Каждый студент выполняет свой расчет независимо.WHERE и SELECT DISTINCT.