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

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

Технологии базы данных

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


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

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

Видео лекций

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

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

Статистика групп 301 и 302

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