• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Бакалаврская программа «Прикладная математика и информатика»

21
Апрель

Язык SQL

2019/2020
Учебный год
RUS
Обучение ведется на русском языке
5
Кредиты
Статус:
Курс по выбору
Когда читается:
3-й курс, 1, 2 модуль

Преподаватель

Программа дисциплины

Аннотация

Предлагаемый курс имеет ряд особенностей. 1. Курс является практическим. Это означает, что он не дублирует курс «Теория баз данных». Он предназначен, в первую очередь, для более глубокого изучения языка SQL. 2. Для изучения курса «Язык SQL» не требуется обязательного предварительного знакомства с базами данных. В рамках этого курса вы сможете получить все минимально необходимые знания основ теории баз данных, которые требуются для полноценного освоения языка SQL. 3. Используется учебная база данных «Авиаперевозки», разработанная специалистами компании «Постгрес Профессиональный». Эта база данных содержит правдоподобные данные, с которыми интересно работать. 4. Будут рассмотрены не только методы построения запросов, но и такие важные темы, как транзакции, основы оптимизации запросов и основы программирования на стороне сервера баз данных. 5. Язык SQL изучается в среде свободной СУБД PostgreSQL. Эта СУБД становится все более популярной в настоящее время. 6. Для занятий подготовлены виртуальные машины с операционной системой Linux, в которой уже установлена СУБД PostgreSQL. Поэтому для создания рабочей среды на компьютерах студентов не потребуется больших усилий. 7. Дисциплина проводится в следующем формате: первые три недели семестра – очно, затем – дистанционно, с использованием технологий компании Zoom (https://zoom.us/) и других электронных технологий. Экзамен проводится в очной форме.
Цель освоения дисциплины

Цель освоения дисциплины

  • Получение студентами углубленных знаний языка SQL в среде СУБД с открытым программным кодом PostgreSQL и с учетом ее специфики.
Планируемые результаты обучения

Планируемые результаты обучения

  • знать основные понятия теории баз данных и владеть основами проектирования баз данных
  • уметь использовать полнотекстовый поиск
  • владеть базовыми навыками оптимизации запросов к серверу баз данных
  • знать принципы организации совместной работы транзакций с учетом специфики конкретных уровней изоляции и ее реализации в СУБД PostgreSQL
  • уметь создавать различные объекты базы данных (таблицы, представления, индексы)
  • уметь использовать возможности СУБД PostgreSQL по работе со слабоструктурированными данными
  • владеть базовыми навыками программирования на стороне сервера на языках SQL и PL/pgSQL
  • знать правила построения запросов к базе данных, различные виды соединений таблиц, различные виды подзапросов, общие табличные выражения
  • знать типы данных СУБД PostgreSQL и уметь использовать их на практике
  • знать назначение хранимых процедур и функций
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Элементы теории баз данных
    История баз данных. Модели данных. Системы управления базами данных (СУБД). Реляционная модель (в неформальном изложении). Кортежи и отношения. Ключи. Ограничения целостности. Ссылочная целостность. Элементы реляционной алгебры. Жизненный цикл разработки системы с базой данных. Модель данных «сущность – связь». Понятие о нормализации. Обзор методологии проектирования баз данных: концептуальное, логическое и физическое проектирование.
  • Введение в язык SQL
    Создание таблиц. Простые запросы. Использование утилиты psql. Вставка строк в таблицы, обновление и удаление строк. Использование первичных и внешних ключей. Группирование и сортировка строк.
  • Типы данных СУБД PostgreSQL
    Числовые типы: целочисленные, числа фиксированной точности, числа с плавающей точкой. Символьные (строковые) типы: character, text и varchar. Типы «дата/время». Логический тип. Массивы. Типы JSON.
  • Основы языка определения данных
    Значения по умолчанию и ограничения целостности: ограничение уникальности UNIQUE, ограничение CHECK, первичный ключ, внешний ключ. Создание и удаление таблиц. Модификация таблиц. Представления. Схемы базы данных.
  • Запросы
    Дополнительные возможности команды SELECT: шаблоны LIKE, регулярные выражения POSIX, предикаты сравнения, вычисляемые столбцы, упорядочение строк при выводе, ключевое слово DISTINCT, предложение LIMIT, предложение OFFSET, условные выражения (конструкция CASE). Соединения таблиц: внешние соединения, многотабличные запросы. Ключевое слово VALUES. Операции с множествами строк: UNION, INTERSECT, EXCEPT. Агрегирование и группировка, предложение HAVING. Оконные функции (window functions). Подзапросы: скалярный подзапрос, коррелированный подзапрос. Предикат EXISTS. Подзапросы в предложениях SELECT, FROM, HAVING. Вложенные подзапросы. Общее табличное выражение (Common Table Expression — CTE). Рекурсивное общее табличное выражение.
  • Изменение данных
    Вставка строк в таблицы: команда INSERT. Команда INSERT с общим табличным выражением. Предложение RETURNING. Предложение ON CONFLICT. Команда COPY. Обновление строк в таблицах: команда UPDATE. Удаление строк из таблиц: команда DELETE. Команда TRUNCATE.
  • Индексы
    Создание индексов: команда CREATE INDEX. Удаление индексов: команда DROP INDEX. Индексы по нескольким столбцам. Уникальные индексы. Индексы на основе выражений. Частичные индексы.
  • Транзакции
    Сериализация транзакций. Уровни изоляции транзакций: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE. Фиксация транзакции: команда COMMIT. Отмена транзакции: команда ROLLBACK. Блокировки. Предложение FOR UPDATE команды SELECT. Команда LOCK TABLE.
  • Повышение производительности
    Функции и процедуры. Категории: VOLATILE, STABLE, IMMUTABLE. Перегрузка функций. Значения параметров по умолчанию. Переменное число аргументов. Функции, возвращающие множества. Полиморфные функции. Функции с параметрами типа OUT. Триггеры и триггерные процедуры (функции). Язык PL/pgSQL: объявления, управляющие структуры, курсоры, сообщения об ошибках, отладка.
  • Программирование на стороне сервера (язык PL/pgSQL)
    Функции и процедуры. Категории: VOLATILE, STABLE, IMMUTABLE. Перегрузка функций. Значения параметров по умолчанию. Переменное число аргументов. Функции, возвращающие множества. Полиморфные функции. Функции с параметрами типа OUT. Триггеры и триггерные процедуры (функции). Язык PL/pgSQL: объявления, управляющие структуры, курсоры, сообщения об ошибках, отладка.
  • Полнотекстовый поиск
    Таблицы и индексы: поиск в таблице, создание индексов. Управление текстовым поиском: разбор документов, разбор запросов, ранжирование результатов поиска, выделение результатов. Типы индексов GIN и GiST.
Элементы контроля

Элементы контроля

  • неблокирующий Домашнее задание 1
  • неблокирующий Домашнее задание 2
  • неблокирующий Домашнее задание 3
  • неблокирующий Домашнее задание 4
  • неблокирующий Домашнее задание 5
  • неблокирующий Домашнее задание 6
  • неблокирующий Домашнее задание 7
  • неблокирующий Домашнее задание 8
  • неблокирующий Домашнее задание 9
  • неблокирующий Домашнее задание 10
  • неблокирующий Домашнее задание 11
  • неблокирующий Экзамен
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (2 модуль)
    0.05 * Домашнее задание 1 + 0.1 * Домашнее задание 10 + 0.03 * Домашнее задание 11 + 0.03 * Домашнее задание 2 + 0.05 * Домашнее задание 3 + 0.05 * Домашнее задание 4 + 0.12 * Домашнее задание 5 + 0.03 * Домашнее задание 6 + 0.03 * Домашнее задание 7 + 0.05 * Домашнее задание 8 + 0.06 * Домашнее задание 9 + 0.4 * Экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Джуба С., Волков А. - Изучаем PostgreSQL 10 - Издательство "ДМК Пресс" - 2018 - 400с. - ISBN: 978-5-97060-643-8 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/116125
  • Новиков Б.А. - Основы технологий баз данных - Издательство "ДМК Пресс" - 2019 - 240с. - ISBN: 978-5-94074-820-5 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/123699

Рекомендуемая дополнительная литература

  • Астахова И.Ф., Мельников В.М., Толстобров А.П. - СУБД: язык SQL в примерах и задачах - Издательство "Физматлит" - 2009 - 168с. - ISBN: 978-5-9221-0816-4 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/2101