Базы данных

Санкт-Петербург, осень 2016

Описание

Краткое содержание

Мы рассмотрим основные этапы в создании приложения, включая создание схемы БД, написание SQL запросов и организацию эффективного взаимодействия между бизнес логикой и базой данных.

Концепция

Курс предназначен для тех, у кого нет существенного практического опыта в разработке приложений баз данных и построен по принципу сначала наступи на грабли, а потом узнай, как этого можно было избежать. На аудиторном занятии будет даваться введение в некоторую тему и минимально необходимое количество материала. При выполнении домашнего задание, вы решате некую практическую задачу, связанную с этой темой, а на последующей лекции узнаёте о типичных ошибках и других возможных вариантах решения.

Будет ли сложно?

Скорее всего будет. Ожидайте, что на выполнение домашнего задания может потребоваться несколько часов.

Домашние задания

Как правило, домашнее задание будет не традиционной проверкой усвоения материала после лекции, а темой самостоятельного исследования с некоторым количеством специально заготовленных граблей. Обычно домашнее задание может быть выполнено разными способами, более или менее эффективными (условно, обычным и хорошим). Знания, позволяющие оценить эффективность решения можно получить либо изучением дополнительных материалов, либо на разборе ДЗ на следующем занятии. Оценка за ДЗ почти всегда будет ненулевой, если есть хоть какая-то попытка решения, до 50% если решение есть, но не самое эффективное. и больше 50% если решение достаточно хорошее.

Обратите внимание, что 50% от 5 баллов -- это 2-3. В отличие от школы и вуза, 2 является довольно неплохой оценкой, а 3 так вообще выше границы.

Онлайн курс

На Степике сделан онлайн курс, клон прошлогоднего Погружение в СУБД, который будет давать более глубокие знания по пройденному материалу. Очередной модуль, открывающийся в день лекции, может оказаться подсказкой в выполнении домашнего задания. Тем не менее, рекомендую сначала попробовать решить ДЗ без этой подсказки, потом посмотреть модуль онлайн курса и потом решить, не надо ли что-нибудь скорректировать в решении ДЗ.

Записаться на онлайн курс можно здесь: https://stepik.org/invitation/70f7cc7b1abfc7fbddfb6de09c3429e985a5b00a/

Как будем оценивать

Оценка бинарная: зачет/незачет. Возможно, будет еще зачет с отличием.

Зачет или незачет по курсу будет выставляться на основе домашних заданий.

  • Регулярно решал ДЗ хорошим способом и набрал больше 50% ? Получаешь зачет.
  • Решал ДЗ ни шатко ни валко, набрал от 33% до 50%, но прошел онлайн курс? Получаешь зачет
  • Решал ДЗ ни шатко ни валко, набрал от 33% до 50% и онлайн курс не прошел? Получаешь тестовое задание в конце курса, и получаешь или не получаешь зачет по его результатам.
  • Набрал меньше 33% по ДЗ? Попробуй еще раз в следующем году.

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

Список лекций

Краткое введение в базы данных и SQL программирование

Занятие для тех, кто ничего или почти ничего не знает о том, как работать с реляционной БД. Поговорим о концепциях, программных компонентах, простейших конструкциях языка SQL.

Деревянные абстракции

Приложения, работающие с деревянными структурами, хранимыми в базе данных

SQL контест

Соревнуемся в написании SQL-запросов.

Правила контеста

Баллы в контесте можно получить, решая SQL-задачи или составляя SQL-задачи, бросая тем самым вызов остальным участникам.

Схема БД

Схему БД и скрипт, заполняющий её данными, можно скачать из приложенных файлов. Обратите внимание, что данные генерируются случайным образом. Те данные, которые вы сгенерируете себе, совершенно точно будут отличаться от тех, что будут на контесте. Но схемы будут совпадать.

Авторство задач

Для того, чтобы задача появилась в контесте, необходимо составить её текстовое описание, включающее в себя смысловую часть и условия на то, что должно быть в результате и в каком порядке. Например Выберите все планеты с демократическими правительствами. В результате должен быть столбец с названием планеты, отсортированный по возрастанию. Необходимо также прислать правильное и соответствующее условиям авторское решение в виде SQL запроса. Обратите внимание на слово правильное. Подумайте о тонкостях, таких как NULL-значения, необходимость внешних соединений, группировка по ключам или не по ключам, упорядочивание в случае, если значения атрибута, по которому требуется выполнить упорядочивание, равны.

Задачи можно присылать до вечера 25 ноября, посылая решения на соответствующее задание в этом курсе.

Решение задач

Задачи будут решаться во время контеста, методом отсылки текста запроса, оформленного некоторым несложным образом, через веб-интерфейс проверяющему роботу. Можно выбрать уровень задачи (лёгкая/средняя/тяжёлая) и выбрать, если захочется, конкретного автора. Впрочем, авторы будут анонимными. Свою собственную задачу вы на решение не получите. Решения можно посылать неограниченное количество раз, штрафов нет.

Начисление баллов

У каждой задачи будет стоимость в N баллов, которая поделится поровну между всеми участниками контеста, решившими задачу и её автором, по N/(K+1) балла каждому, где K - количество решивших задачу. Автор получит свой авторский гонорар за задачу только в том случае, если кто-нибудь сделает попытку решить задачу, то есть пошлёт хотя бы одно решение (возможно, неправильное).

Баллы участника суммируются по всем задачам, как за авторство так и за решения.