Технологии базы данных
Короткий вводный курс в базы данных: основные понятия, модели и механизмы.
Вопросы к экзамену
- Опредление и значение данных. Базы данных и СУБД как часть технологий работы с данными.
- Первые бизнес-приложения и поддержка структурированных файлов на уровне языка COBOL.
- Файловая система как прообраз СУБД. Хранение информации в файлах и в базах данных.
- СУБД как средство обеспечения логической и физической независимости данных. Функции СУБД.
- СУБД: основные понятия и функции, классификация.
- Первые СУБД: архитектура и основные идеи. Навигационный подход к обработке данных.
- Иерархические и сетевые модели данных. Стандарт CODASYL DBTG.
- Навигационный и реляционный подходы к обработке данных.
- Математические основы реляционной модели данных. Реляционная алгебра и реляционное исчисление.
- История возникновения и развития реляционных СУБД.
- Пирамида абстрагирования при работе с данными. Функции и задачи файловой системы и СУБД.
- Архитектуры СУБД. Встраиваемые СУБД, технологии файл-сервер и клиент-сервер.
- Классификация СУБД по способу структурирования данных.
- Классификация инструментов для обработки данных по масштабу задач. Электронные таблицы и разные типы СУБД.
- Возможности языка запросов SQL. Категории команд SQL.
- Использование SQL для создания баз данных и таблиц. Особенности SQLite.
- Функции агрегирования и оконные функции в SQL-запросах.
- Обобщенные табличные выражения в SQLite.
- Типы соединения таблиц в реляционной БД с помощью SQL-запросов.
- Задание связей и ограничений в реляционной СУБД с помощью SQL.
- Сортировка, группировка и объединение результатов SQL-запросов.
- Вложенные и связанные подзапросы SQL.
- Форматы структурированных файлов. Инструменты для анализа и обработки наборов данных.
- Инструменты для анализа и обработки наборов данных.
- Три уровня описания данных и этапы проектирования базы данных.
- Концептуальное моделирование базы данных. ER-диаграммы.
- Логическое проектирование базы данных. Диаграммы в нотации IDEF1x и UML.
- Аномалии при работе с данными. Нормализация таблиц в реляционной БД.
- Методика моделирования базы данных.
- SQL как язык программирования. Генерация байт-кода для SQL-команд в SQLite.
- Архитектура и принцип работы СУБД SQLite.
- План выполнения SQL-запросов. Команды EXPLAIN и EXPLAIN QUERY PLAN.
- Индексирование данных для ускорения выполнения запросов. Кластерные, простые, составные и покрывающие индексы.
- Принцип работы оптимизатора запросов в СУБД. Факторы, влияющие на производительность запросов.
- Внутренее устройство базы данных SQLite. Страничная организация памяти, организация таблиц и индексов в виде B-дерева.
- Нереляционные (NoSQL) базы данных. Причины появления, типы.
- Работа с базами данных из приложений PHP с помощью PDO
Литература к курсу
- Токмаков Г.П. "Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML : учебное пособие" – Ульяновск : УлГТУ, 2010. − 192 с.
- Швецов В.И., Визгунов А.Н., Мееров И.Б. "Базы данных. Учебное пособие" - Нижний Новгород : Изд-во ННГУ, 2004. - 217 с.
- Грабер М. "Понимание SQL" - М.: 1993. – 291 с.
- Форта Б. "SQL за 10 минут" - М.: Вильямс, 2014. – 288 с.
- Тарасов С.В. "СУБД для программиста. Базы данных изнутри" — М.: СОЛОН-Пресс, 2015. — 320 с.
- Кузнецов М.В., Симдянов И.В. "MySQL 5" — СПб.: БХВ-Петербург, 2006. — 1024 с.
- Дюбуа П. "MySQL. Сборник рецептов" — СПб.: Символ-плюс, 2006. — 1056 с.
- Маклафлин Б. "PHP и MySQL. Исчерпывающее руководство" — СПб.: Питер, 2013. — 512 с.
- Колисниченко Д. "PHP и MySQL. Разработка web-приложений" — СПб.: БХВ-Петербург, 2013. — 560 с.
- Смольянов А.Г., Карьгин И.П., Смольянова Е.Г. "Работа с удаленными базами данных средствами Web : учебное пособие" — Саранск: Мордов. гос. пед. ин-т, 2017. — 122 с.
Презентации к лекциям
Схема сдачи лабораторных работ через Pull Request.
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-запросов. Индексирование данных
Видео лекций
Youtube playlist, сентябрь-декабрь 2021
VK Видео playlist, сентябрь-декабрь 2021
Лабораторные работы
Тематика заданий- Интерактивная работа с реляционными базами данных. Проектирование базы данных. Создание и изменение таблиц. Вставка, выборка, изменение и удаление данных.
- Программная работа с реляционной базой данных. Создание PHP-приложения для работы с базой данных через PDO и ORM.
- Для каждого студента 301 и 302 групп создан свой репозиторий в https://github.com/andpop-mrsu. В этих репозиториях преподаватель размещает задания для лабораторных работ (файлы task01.md, task02.md, ...), а студент - проекты для решения этих заданий (в соответствующих папках Task01, Task02, Task03, ...).
- Прав на запись в эти репозитории у студентов нет, ваши файлы должны попадать туда из личных репозиториев через механизм Pull Requests.
- Задание будет считаться принятым после закрытия соответствующего Pull Request в https://github.com/andpop-mrsu.
Статистика групп 301 и 302
- Полнота выполнения задания (в процентах).
- Своевременность сдачи задания:
- К контрольному сроку - коэффициент 1.
- Задержка до 14 дней - коэффициент 0,8.
- Задержка 14 дней и более - коэффициент 0,5.