Андрей Попов. Доцент.

Еврейский SQL-сервер отвечает запросом на запрос...

Базы данных

Короткий вводный курс в базы данных: основные понятия, модели и механизмы.


Вопросы к экзамену

  1. Значение данных. Базы данных и СУБД как часть технологий работы с данными.
  2. Файловая система как прообраз СУБД. Хранение информации в файлах и в базах данных.
  3. СУБД как средство обеспечения логической и физической независимости данных. Функции СУБД.
  4. СУБД: основные понятия и функции, классификация.
  5. Первые СУБД: архитектура и основные идеи. Навигационный подход к обработке данных.
  6. Иерархические и сетевые модели данных. Стандарт CODASYL DBTG.
  7. Навигационный и реляционный подходы к обработке данных.
  8. Математические основы реляционной модели данных. Реляционная алгебра и реляционное исчисление.
  9. История возникновения и развития реляционных СУБД.
  10. Пирамида абстрагирования при работе с данными. Функции и задачи файловой системы и СУБД.
  11. Архитектуры СУБД. Встраиваемые СУБД, технологии файл-сервер и клиент-сервер.
  12. Классификация СУБД по способу структурирования данных.
  13. Классификация инструментов для обработки данных по масштабу задач. Электронные таблицы и разные типы СУБД.
  14. Возможности языка запросов SQL. Категории команд SQL.
  15. Использование SQL для создания баз данных и таблиц. Особенности SQLite.
  16. Функции агрегирования и оконные функции в SQL-запросах.
  17. Обобщенные табличные выражения в SQLite.
  18. Типы соединения таблиц в реляционной БД с помощью SQL-запросов.
  19. Задание связей и ограничений в реляционной СУБД с помощью SQL.
  20. Сортировка, группировка и объединение результатов SQL-запросов.
  21. Вложенные и связанные подзапросы SQL.
  22. Использование SQL для вставки, изменения и удаления данных в таблицах.
  23. Форматы структурированных файлов. Инструменты для анализа и обработки наборов данных.
  24. Три уровня описания данных и этапы проектирования базы данных.
  25. Концептуальное моделирование базы данных. ER-диаграммы.
  26. Логическое проектирование базы данных. Диаграммы в нотации IDEF1x и UML.
  27. Аномалии при работе с данными. Нормализация таблиц в реляционной БД.
  28. Методика моделирования базы данных.
  29. SQL как язык программирования. Генерация байт-кода для SQL-команд в SQLite.
  30. Архитектура и принцип работы СУБД SQLite.
  31. План выполнения SQL-запросов. Команды EXPLAIN и EXPLAIN QUERY PLAN.
  32. Индексирование данных для ускорения выполнения запросов. Кластерные, простые, составные и покрывающие индексы.
  33. Принцип работы оптимизатора запросов в СУБД. Факторы, влияющие на производительность запросов.
  34. Внутреннее устройство базы данных SQLite. Страничная организация памяти, организация таблиц и индексов в виде B-дерева.
  35. Транзакции в базе данных. ACID-свойства транзакций и CAP-теорема.
  36. Журнализация транзакций в СУБД. Типы журналов.
  37. Проблемы параллелизма при одновременном доступе к данным в СУБД.
  38. Блокировки в базе данных. Уровни изоляции транзакций.
  39. Нереляционные (NoSQL) базы данных. Причины появления, типы.
  40. Работа с базами данных из приложений PHP с помощью PDO.

Литература к курсу

  1. Токмаков Г.П. "Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML : учебное пособие" – Ульяновск : УлГТУ, 2010. − 192 с.
  2. Швецов В.И., Визгунов А.Н., Мееров И.Б. "Базы данных. Учебное пособие" - Нижний Новгород : Изд-во ННГУ, 2004. - 217 с.
  3. Грабер М. "Понимание SQL" - М.: 1993. – 291 с.
  4. Форта Б. "SQL за 10 минут" - М.: Вильямс, 2014. – 288 с.
  5. Тарасов С.В. "СУБД для программиста. Базы данных изнутри" — М.: СОЛОН-Пресс, 2015. — 320 с.
  6. Кузнецов М.В., Симдянов И.В. "MySQL 5" — СПб.: БХВ-Петербург, 2006. — 1024 с.
  7. Дюбуа П. "MySQL. Сборник рецептов" — СПб.: Символ-плюс, 2006. — 1056 с.
  8. Маклафлин Б. "PHP и MySQL. Исчерпывающее руководство" — СПб.: Питер, 2013. — 512 с.
  9. Колисниченко Д. "PHP и MySQL. Разработка web-приложений" — СПб.: БХВ-Петербург, 2013. — 560 с.
  10. Смольянов А.Г., Карьгин И.П., Смольянова Е.Г. "Работа с удаленными базами данных средствами Web : учебное пособие" — Саранск: Мордов. гос. пед. ин-т, 2017. — 122 с.

Презентации к лекциям

Схема сдачи лабораторных работ через Pull Request.

1.0. Содержание курса.

1.1. Значение и классификация данных. Базы данных как часть технологий работы с данными.

1.2. История возникновения баз данных. Файловая система как их прообраз. Типы задач, для решения которых необходимы базы данных.

2. Первые СУБД. Сетевая и иерархические модели данных. Навигационный подход к обработке данных.

3. Реляционная модель данных. Первые реляционные СУБД.

4. Файловая система и СУБД. Функции СУБД. Классификация и выбор СУБД.

5. Язык SQL. История создания, базовые возможности.

6. Язык SQL. Варианты соединения таблиц. Подзапросы в операторах языка SQL.

7. Язык SQL. Подзапросы, аналитические запросы и оконные функции.

8. Язык SQL. Простые и рекурсивные CTE. Резюме по теме SQL. SQL для анализа наборов данных.

9.1. Трехуровневая модель данных. Проектирование базы данных.

9.2. Аномалии данных. Нормализация базы данных.

10. Характеристики и методика моделирования базы данных.

11. Производительность SQL-запросов. Индексирование данных

12. Внутреннее устройство базы данных

13. Транзакции и блокировки в СУБД.

14. Нереляционные (NoSQL) базы данных.


9. Консольные приложения на PHP

10. Frontend и backend. Веб приложения на PHP

12. Реляционные и нереляционные СУБД.

13. Объектно-реляционные отображения.

15. Презентация для общества Знание.

Видео лекций

Лабораторные работы

Тематика заданий
  1. Интерактивная работа с реляционными базами данных. Проектирование базы данных. Создание и изменение таблиц. Вставка, выборка, изменение и удаление данных.
  2. Программная работа с реляционной базой данных. Создание PHP-приложения для работы с базой данных через PDO и ORM.
Отчетность по заданиям

Статистика группы 304

При расчете баллов учитываются два критерия:
  1. Полнота выполнения задания (в процентах).
  2. Своевременность сдачи задания:
    • К контрольному сроку - коэффициент 1.
    • Задержка до 14 дней - коэффициент 0,8.
    • Задержка 14 дней и более - коэффициент 0,5.