14 декабря 2015

Схемы БД ко второй контрольной

На второй контрольной надо будет писать запросы разной степени сложности. Сами запросы вы увидите во время контрольной, а схемы БД можно поизучать уже сейчас.

Вариант 21 "Пироги" (почти те самые, но с некоторыми изменениями)
Вариант 23 "Банк"



01 декабря 2015

Схема БД для контеста

Контест посвящен космическим путешествиям!

Схема БД тут.
А тут SQL-скрипт, генерирующий данные.

 А  тут запросы

Оба скрипта доступны в SQooL в виде шаблона "Контест 2 декабря"

Напомню правила:

  • Баллы можно получить за авторство запросов и за решение
  • Автор запроса должен написать запрос в человекочитаемом текстовом виде, дать ему оценку по шкале "простой" - "средний" - "сложный" - "никто не решит!", написать свое каноническое решение и прислать мне по почте. 
    • У нас не будет много времени на уточнение решения, поэтому постарайтесь делать канонические решения правильными. 
    • Каноническое решение должно давать детерминированный ответ. Лучше всего делать ответ упорядоченным и оговаривать условие сортировки в тексте
  • В процессе решения на паре вы выбираете запросы из имеющихся, решаете и присылаете мне ответы. Постараюсь проверять в реальном времени. За правильное решение запроса со стоимостью P каждый из N решивших получает P/(N+1) баллов. Автор получает тоже P/(N+1) балл, при условии что запрос вообще хоть кто-то решал (была хоть одна попытка).
Пример запроса:

Найти всех пилотов, водивших корабли на планеты с диктатурой. В ответе должны быть имена пилотов, отсортированные по возрастанию.
Простой.
Решение: 

SELECT DISTINCT C.name FROM Commander C JOIN Flight F ON(C.id = F.commander_id) JOIN Planet P ON (F.planet_id = P.id) JOIN Government G ON (G.id = P.government_id)
WHERE G.value = 'диктатура'

ORDER BY name;