Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Новости сайта "Упражнения по SQL" (http://www.sql-ex.ru)


Информационный Канал Subscribe.Ru

Новости сайта "Упражнения по SQL" Выпуск 9 (14 ноября 2004 г.)

http://www.sql-ex.ru

Новым посетителям сайта

Сайт посвящен изучению языка, с помощью которого осуществляется взаимодействие с реляционными (и не только) СУБД. Суть обучения состоит в выполнении заданий на написание запросов к учебным базам данных; при этом система контролирует правильность выполнения заданий. В настоящее время реализованы все операторы подъязыка манипуляции данными (DML), которые включают в себя оператор извлечения данных SELECT, а также операторы модификации данных - INSERT, DELETE и UPDATE.

Мы надеемся, что справочного материала сайта окажется достаточно для самостоятельного обучения. Кроме того, свои решения вы можете обсудить на форуме сайта. Опытных же специалистов приглашаем проверить (продемонстрировать) свое мастерство и принять участие в соревновании, обеспечиваемом рейтинговой системой учета времени выполнения заданий. Фактически, рейтинг ведется на втором этапе тестирования, который начинается после решения 62-х задач первого этапа. При подсчете рейтинга каждого участника отбрасывается один самый худший показатель среди всех решенных им упражнений.


Новости сайта

§ Как заметил l0ng, нетрудно было "подогнать" решение задачи #17(DML). Меры приняты.

§ Обнаружена ошибка (Draggie) в английской формулировке задачи #6 (DML). Исправления сделаны. Приятно, что у нас есть читатели английской версии сайта. :-)

Число участников рейтинга - 2205

Число участников второго этапа - 205

Лучшие результаты (ТОР 20)

No Surname Number of
Sel_ex
Number of
DML_ex
Scores Days Days_2 Last_Solved Last_Visit
1 Зверев Д.Л. (dimzv) 136 17 274 252.92 2.219 14 Jul 2004 14 Jul 2004
2 Иткин И.Л. (joseph_itkin) 136 17 274 245.84 2.792 29 Oct 2004 12 Nov 2004
3 Якутин Н.В. (ZrenBy) 136 6 274 428.80 3.993 24 Jun 2004 24 Jun 2004
4 Леденев С.А. (Shurgenz) 136 17 274 60.94 8.315 18 Oct 2004 13 Nov 2004
5 Михайлов В.Г. (mslava) 136 17 274 498.01 9.734 26 Oct 2004 26 Oct 2004
6 Spirin (spirin) 136 17 274 44.06 13.429 29 Sep 2004 29 Sep 2004
7 Валуев Д.И. (Fiolent) 136 17 274 293.15 19.314 23 Jun 2004 12 Nov 2004
8 Мельникова И.А. (Iris_m) 136 17 274 141.12 65.651 30 Sep 2004 30 Sep 2004
9 Карабанов А. (gipa) 133 0 268 138.58 5.022 10 Jul 2004 10 Jul 2004
10 Новиков Д.А. (DimaN) 130 0 264 68.17 2.104 01 Mar 2004 01 Mar 2004
11 Драконов Ф.А. (f_d) 130 0 264 36.32 7.243 03 Jun 2004 11 Nov 2004
12 Пятница О.А. (Robin) 128 17 259 589.55 70.834 06 Oct 2004 06 Oct 2004
13 Губарь Д.К. (DEathkNIghtS) 124 17 251 22.67 1.048 03 Nov 2004 03 Nov 2004
14 Смирнов А. (Leshich) 124 17 251 147.15 84.180 03 Aug 2004 11 Nov 2004
15 Ганя А.Д. (Sandman25) 123 1 248 154.83 3.130 16 Jun 2004 16 Jun 2004
16 Шулакова Н. (nshu) 121 0 244 81.03 5.468 28 Feb 2004 28 Feb 2004
17 Митронин А.А. (mitronin) 120 9 241 405.96 2.150 09 Aug 2004 09 Aug 2004
18 Муравейко О.Ю. (Aaz) 120 4 241 134.65 5.720 07 Mar 2004 12 Nov 2004
19 сафрошкин В.Ю. (safervas) 120 14 241 81.82 65.873 06 Nov 2004 11 Nov 2004
20 Сныткин В.Л. (vlad_snt) 119 17 238 70.15 2.563 11 Nov 2004 12 Nov 2004

Лучшие результаты за неделю

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Кубович (Sakateka) 27 45 55 0 55 322 13 Nov 2004
2 Nikiforova J.K. (CharmedJulia) 36 36 51 0 51 497 13 Nov 2004
3 Бобровских А.В. (Rekvy) 28 34 42 3 45 537 10 Nov 2004
4 Мартыненко О. (OMar) 25 25 40 5 45 599 10 Nov 2004
5 Paskha (paskha) 24 24 35 9 44 684 13 Nov 2004
6 Zhelnovsky L. (Lёva) 21 63 43 0 43 174 12 Nov 2004
7 Isachenko I.I. (Caesar) 24 46 42 0 42 348 11 Nov 2004
8 Назаренко И.И. (iin) 24 24 39 0 39 626 12 Nov 2004
9 Chogovadze E. (Joke) 19 37 37 0 37 434 13 Nov 2004
10 Серков М. (Mikeserkov) 26 26 33 3 36 746 09 Nov 2004
11 Diachenko I.V. (jd) 19 35 29 6 35 539 12 Nov 2004
12 Шаповалов М.П. (shap) 9 62 24 10 34 214 12 Nov 2004
13 Petrenko (ruporr) 23 23 34 0 34 718 12 Nov 2004
14 Kachnibud Е. (andrewd) 22 22 31 3 34 809 13 Nov 2004
15 Телицын М.В. (Sam) 22 23 33 0 33 734 14 Nov 2004
16 Дегтярь С.Б. (degtyar) 15 92 31 0 31 53 11 Nov 2004
17 Порутчиков К.В. (3ABXO3) 22 22 31 0 31 802 13 Nov 2004
18 Власенко М.Ю. (mari) 21 22 30 0 30 820 12 Nov 2004
19 Лукьянов А.Н. (Spider) 9 64 22 7 29 145 13 Nov 2004
20 Воробьев П.А. (crow1) 13 51 29 0 29 298 11 Nov 2004
21 Hakobyan H.H. (hamlet) 11 78 25 2 27 76 12 Nov 2004
22 Соболев Д.В. (SDV) 18 45 25 0 25 355 11 Nov 2004
23 Ovchinnikov A.S. (AlexScorpiO) 8 32 16 7 23 484 11 Nov 2004
24 Прозорова Т.И. (prozorovat) 1 65 3 19 22 117 11 Nov 2004
25 Харанфиль А.Е. (kharanfil) 2 62 5 17 22 205 12 Nov 2004
26 Osipovic P. (Osipovic) 16 19 22 0 22 920 12 Nov 2004
27 Мостайкина М.Ю. (Lady) 5 28 15 6 21 527 12 Nov 2004


Характерные ошибки при решении упражнений

SELECT

Задача 24
Найдите номер модели продукта (ПК, ПК-блокнота или принтера), имеющего самую высокую цену. Вывести: model

Вот одно из решений, опубликованных на форуме сайта:

(1)
SELECT model FROM
  (SELECT model, price FROM Pc
      WHERE price = (SELECT MAX(price) FROM Pc)
   UNION
   SELECT model, price FROM Laptop
      WHERE price = (SELECT MAX(price) FROM Laptop)
   UNION
   SELECT model, price FROM Printer
      WHERE price = (SELECT MAX(price) FROM Printer)) T
WHERE price = (SELECT MAX(price) FROM Laptop)

Как справедливо утверждает автор (nika_k), такое решение не должно приниматься системой. Предлагаю разобраться с тем, какие данные должны быть в проверочной базе, чтобы блокировались такие решения.

Итак, что же делает этот запрос. В каждом из трех аналогичных подзапросов разыскиваются максимальные по цене модели по каждому из трех видов продукции - ПК, блокнотам и принтерам. Далее используется UNION для объединения найденных моделей, что, помимо этого, устраняет дубликаты строк {модель, цена}. Наконец, отбираются только те модели, цена которых совпадает с максимальной ценой на ПК-блокноты.

Поэтому, если максимальной окажется цена на принтеры, то данное решение не будет приниматься системой. Но тогда будет приниматься решение, в котором последней строкой будет:

WHERE price = (SELECT MAX(price) FROM Printer)

Более того, если максимальная цена будет у моделей только одного типа продукции (скажем, принтеров), то будет приниматься еще более неправильно решение:

(2)
SELECT DISTINCT model FROM Printer
WHERE price = (SELECT MAX(price) FROM Printer)

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

Кстати говоря, данные подобраны оптимально к рассматриваемым случаям, но, тем не менее, не спасают от "прохождения" неправильных запросов.

Оставив в стороне вопрос "кто виноват?", сосредоточимся на вопросе "что делать?". Выход, и не только для данной ситуации, можно найти в увеличении количества проверочных баз, где будут смоделированы различные варианты данных. Единственное, что удерживает меня от этого шага, - замедление работы системы, в результате чего пользователь будет дольше находиться в состоянии ожидания. Еще я успокаиваю себя мыслью, что посетителей нашего сайта движет желание изучения языка SQL и повышения квалификации, а не стремление обмануть систему.

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

Еще я предлагаю рассмотреть вопрос модификации формулировки (и решения) задачи 24. Так что пишите.

§ Приведенные здесь примеры можно выполнить непосредственно на сайте, установив флажок "Без проверки" на странице с упражнениями на SELECT.


Полезная информация

§ Я отвечаю на все письма, которые требуют ответа. Поэтому, если вы писали и не получили ответ, проверьте состояние своего почтового ящика. Это не шутка. На этой неделе не смог ответить на письма
Дацюка В.Ю. и
Лукьянова А.Н.
т.к. мои письма возвращались почтовыми серверами. При отправке письма с сайта просьба заполнять/проверять обратный адрес. Кроме того, если при регистрации указан фиктивный адрес, мы не сможем напомнить вам пароль, который отправляется по этому адресу. Кто-то уже видит происки москалей в том, что система не прислала забытый пароль. :-)

§ FAQ от Майкрософт о проблемах установки SQL Server 2000 и SQL Server Desktop Engine (MSDE) на Microsoft Windows XP Service Pack 2 (SP2)
http://www.microsoft.com/sql/techinfo/administration/2000/security/winxpsp2faq.asp


Контакты

По всем вопросам, связанным с функционированием сайта, проблемами при решении упражнений, идеями вы можете обращаться к Сергею И.Моисеенко msi77@yandex.ru. Вы также можете предложить свои задачи для публикации на сайте.

Подписка Subscribe.Ru
Новости сайта "Упражнения по SQL"

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.db.sqlex
Отписаться

В избранное