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

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


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

Новости сайта "Упражнения по SQL (http://www.sql-ex.ru)" Выпуск 38 (4 июня 2005 г.)

http://www.sql-ex.ru

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

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

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

Имеется возможность получить сертификат по SQL DML при выполнении определенного количества заданий.


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

§ Благодаря сообщению на форуме от VIG и письму от OLEG2005, подлатал проверку задачи 41.

§ Исправлено описание БД "Корабли". Подробности ниже (опять 41-я задача).

§ Исправлена персональная страница. Список решенных задач по DML содержал также начатую, но еще не решенную задачу.

§ Число подписчиков - 2125

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 LastSolved LastVisit
1 Гонтовой В.А. (noname) 137 137 20 312 68 9.705 23 May 2005 30 May 2005
2 Галиаскаров Э.Г. (Galogen) 137 137 20 312 185 61.297 26 May 2005 02 Jun 2005
3 Валуев Д.И. (Fiolent) 136 137 20 310 630 26.470 26 May 2005 03 Jun 2005
4 Кувалкин К.С. (Cyrilus) 135 137 20 308 167 5.020 10 May 2005 03 Jun 2005
5 Леденев С.А. (Shurgenz) 135 137 20 308 264 9.831 09 May 2005 02 Jun 2005
6 Мельникова И.А. (Iris_m) 135 41 20 308 380 89.865 27 May 2005 27 May 2005
7 Колосов А.С. (KAS) 134 137 20 306 25 3.398 11 Mar 2005 03 Jun 2005
8 >Зверев Д.Л. (dimzv) 134 41 20 304 577 2.422 03 Jun 2005 03 Jun 2005
9 Сныткин В.Л. (Ded I) 134 136 20 304 252 7.456 12 May 2005 03 Jun 2005
10 Рахманов И.Е. (bloom) 134 136 20 304 148 14.171 11 May 2005 23 May 2005
11 Hakobyan H.H. (hamlet) 134 136 20 304 220 37.869 07 May 2005 03 Jun 2005
12 Шипунов И. (IAS) 134 136 20 304 334 82.080 13 May 2005 26 May 2005
13 Иткин И.Л. (joseph_itkin) 132 136 20 299 375 2.849 07 Mar 2005 13 Apr 2005
14 Spirin (spirin) 131 136 19 296 158 13.461 21 Jan 2005 24 Jan 2005
15 Михайлов В.Г. (mslava) 132 136 17 293 648 10.504 25 Mar 2005 25 Mar 2005
16 Пятница О.А. (Robin) 125 128 20 287 754 74.630 19 Mar 2005 06 May 2005
17 Митронин А.А. (mitronin) 124 124 20 285 701 27.585 31 May 2005 01 Jun 2005
18 Gershovich (VIG) 120 122 20 277 805 10.525 25 May 2005 03 Jun 2005
19 Булаев В.В. (Kvix) 119 121 20 274 266 24.671 18 May 2005 18 May 2005
20 Тортумашев Е.А. (Johnny) 119 121 20 274 219 68.741 19 May 2005 01 Jun 2005

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 >Алалыкин В.М. (BOBAH) 28 60 54 26 80 252 03 Jun 2005
2 >Бевзюк А.А. (ABev.SQL) 27 62 47 32 79 232 03 Jun 2005
3 >Гончаров В.В. (gvv) 44 44 77 1 78 528 03 Jun 2005
4 Кабанов Д.В. (Werewolf) 47 47 76 1 77 537 02 Jun 2005
5 >Quark (Quark.) 38 38 66 3 69 635 03 Jun 2005
6 Булгаков А.К. (Ales) 34 51 66 0 66 437 01 Jun 2005
7 >Нестерова О.Б. (oksla) 30 30 55 9 64 798 03 Jun 2005
8 S E.I. (Jeha) 30 40 61 0 61 581 02 Jun 2005
9 Michaelov I. (Itzikm) 34 34 59 0 59 743 31 May 2005
10 >Fadyakin O.U. (OF) 35 35 49 3 52 877 03 Jun 2005
11 >Страшников А. (EffEct) 16 75 36 9 45 113 03 Jun 2005
12 >Luzhnov A. (Lartem) 23 23 34 9 43 1161 03 Jun 2005
13 >Плеханов А.В. (Alen_Barnaul) 15 35 34 7 41 714 03 Jun 2005
14 >Гончаров В.В. (VaGon) 24 24 37 3 40 1083 03 Jun 2005
15 >Федотов Д.Е. (Федотов Дмитрий) 24 24 37 3 40 1091 03 Jun 2005
16 >Кирьяков И.В. (iv_kir) 15 57 30 2 32 361 03 Jun 2005
17 Eremitsky A. (Андрей1970) 22 22 32 0 32 1248 31 May 2005
18 >Крупенько О.В. (Oks) 8 65 16 15 31 160 03 Jun 2005
19 Chipiga D. (chapai) 21 23 31 0 31 1201 01 Jun 2005
20 >Буданов А.А. (ba) 22 22 31 0 31 1272 03 Jun 2005
21 Кузнецов (slahr) 22 22 31 0 31 1297 30 May 2005

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

SELECT

Задача 41
Найдите названия всех кораблей из базы данных, спущенных на воду до 1941 г.

Беда с этими головными кораблями! В описании базы данных сказано, что имя классу дает первый корабль в этом классе, который называется головным. Отсюда однозначно следует, что корабль с именем класса безусловно существовал. Поэтому когда в задании сказано найти "все корабли…", то многие рассматривают таблицу Classes в качестве списка головных кораблей.

Вот как иногда неправильно решается вопрос о головных кораблях, спущенных на воду ранее 1941 года:

SELECT class FROM Classes WHERE EXISTS
   (SELECT 1 FROM Ships WHERE launched < 1941 and Ships.class = Classes.class)

Т.е. здесь класс отождествляется с наличием головного корабля в БД, а именно, разыскивается класс, который имеет в БД корабль, спущенный на воду ранее 1941 года.

Я устал уже повторять свою трактовку наличия корабля в БД, которая заключается в том, что корабль нужно искать только в таблицах Ships и Outcomes. Эта трактовка используется во всех аналогичных задачах.

Итак, я решил отразить сей факт в описании БД "Корабли". И тут я вспомнил! В оригинале (перевод книги Ульмана) было сказано примерно следующее:

"Классу, КАК ПРАВИЛО, дается имя первого корабля, выпущенного по данному проекту".

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

Это "как правило" означает, что класс может получить свое название по первому кораблю, а может получить название, которое вообще НЕ СОВПАДАЕТ С ИМЕНЕМ КАКОГО-ЛИБО КОРАБЛЯ в БД. Например, классу дается имя проекта, существующее еще до строительства первого корабля. Поэтому теперь мы не можем считать класс кораблем, если только не обнаружен корабль с совпадающим именем. В результате все решения ранее принятые системой остаются правильными, а я избавлюсь, возможно, от излишних объяснений по этому поводу. Осталось только коротко и понятно сформулировать эту мысль в описании предметной области.

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

Итак, возможна такая ситуация. Имеется головной корабль с неизвестным годом спуска на воду. Более того, он может участвовать всего в одном сражении, например, в 1945 году. Есть другой корабль этого класса, год спуска на воду тоже неизвестен. Однако если он участвовал в сражении до 1941 года, то нам следует оба эти корабля включить в результирующий набор, т.к. головной корабль (если он есть!!!) должен быть спущен на воду ранее любого другого корабля его класса.

Так что чистая логика, и никаких подвохов.

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

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

Конкурс

§ Мы выставили наш сайт на конкурс Интернить 2005. Победитель определяется числом поданых голосов. Просьба проголосовать. (рекомендуемая оценка 3 :-)).

Контакты

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

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

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.db.sqlex
Отписаться
Вспомнить пароль

В избранное