Веду курс по БД в университете, один семестр второго курса, 12 лекций, много лаб и курсовая. Последовательность подавания материала примерно такая:
0. Байки о том, что БД — это хлеб программиста, и описание всех полученных за последнюю неделю просьб найти oracle-программиста для банка на NNN тыщ рублей в месяц :)
1. Вступление, общее описание проблемы, немного истории. (0.5 лекции)
2. Табличное представление данных сразу на примере: рисуем огромную денормализованную таблицу с проданными билетами в кинотеатр и начинаем думать о том, что в ней не так, и как это исправить. Студенты сами называют слова «дублирование», «противоречивость» и пр., и сами придумывают, как эти проблемы решать (разбиение на таблицы); рождаются (пока неформально) понятия первичного ключа и внешнего. Это самый важный раздел, я считаю — здесь мы учимся проектировать реляционные БД на примере нетривиальной БД кинотеатра. Здесь же обсуждаются и многие концептуальные вопросы БД на примере того же кинотеатра. (1-1.5 лекций)
3. Реляционная модель данных: формальные определения, обозначения, и определения первичных и внешних ключей и функциональных зависимостей; NULL и трехзначная логига (1 лекция) (1 лекция)
4. Нормальные формы 1-3 и НФБК, формальные определения и процедура нормализации. (1 лекция)
5. Транзакции и параллелизм (описание проблематики, возможные подходы к решению). (0.5 лекций)
6. Язык SQL: DDL, DML (insert-update-delete), транзации. (1 лекция)
7. Язык SQL: select: from, where, select. (0.5 лекции)
8. Язык SQL: соединение, группировка, мелочи (union-minus, exist, outer join). (1 лекция)
9. Язык SQL: подзапросы (в from, в where, в select). (1 лекция)
10. Язык SQL: сложные подзапросы, решение задач выборки реляционных данных (1-1.5 лекции)
11. Процедурные расширения: процедуры, функции, триггеры (0.5 лекции)
12. Индексирование: что такое индекс, как и для чего он работает (0.5 лекции)
13. Прочие объекты схемы Oracle: последовательности (и вообще проблема уникальности), обзоры, снапшоты, временные таблицы и т.д. (0.5 лекции)
14. Инфологическое моделирование (0.5 лекции)
15. Нереляционные БД (1 лекция)