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

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


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

http://www.sql-ex.ru

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

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

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

Демонстрация плана выполнения запроса и сравнительная оценка эффективности решений поможет вам освоить принципы оптимизации запросов.

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


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

§ Strider5 обратил внимание на то, что линейный корабль не всегда ассоциируется с боевым кораблем (английская формулировка). Я привел в формулировке тип корабля в соответствие с используемым в описании предметной области (battle ship). В связи с этим хочу дать небольшую справку. Линейный корабль (линкор) - то же, что и большой боевой корабль (отсюда 'bb' - big battle ship).

§ Galogen пополнил небольшой список тех, кто решил 138 задачу. Теперь ему для попадания в десятку осталось решить несколько добавленных позже менее сложных задач. Хороший пример того, как упорство в хорошем смысле позволяет достичь высоких рейтинговых показателей даже при неконкурентном результате (задач 136, время 100.285).

§ Сохранили шансы на попадание в десятку:
OlegE (131, 4.720)
Testo (121, 2.816)
EO (117, 10.843)
Strider5 (110, 3.344)

§ Продолжили свое восхождение к вершине:
User_Name (136, 25.936)
xax (131, 86.377)
Eugeniе (117, 42.140)
arm (113, 24.348)
gps (111, 159.481)
FanOfBeer (110, 34.889)

§ На этой неделе сертифицированы:
AYakovlev (A06009215)[BK] (Россия, г.Чебоксары)
vp (A06008376)[BK] (Россия, г.Пушкино, МО)
LBK-fighter (A06005608) [BK] (Украина, г.Киев)

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

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

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

Сертифицировано на сайте - 61

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 LastSolved LastVisit
1 Кувалкин К.С. (Cyrilus) 138 138 20 320 484 5.460 23 Mar 2006 28 Apr 2006
2 Kamaev V.M. (Heromantor) 138 138 20 320 128 9.066 14 Mar 2006 25 Mar 2006
3 Бураков С.Г. (burakov58) 138 138 20 320 419 17.395 24 Mar 2006 07 Apr 2006
4 Тарасов Д.Б. (Gavrila) 138 138 20 320 208 19.424 22 Mar 2006 28 Apr 2006
5 Голубин Р.С. (Roman S. Golubin) 138 138 20 320 210 20.835 16 Mar 2006 28 Apr 2006
6 Валуев Д.И. (Fiolent) 137 138 20 318 925 47.930 17 Mar 2006 28 Apr 2006
7 Войнов П.Е. (pаparome) 137 137 20 316 203 1.769 15 Mar 2006 28 Apr 2006
8 Зверев Д.Л. (dimzv) 137 137 20 316 869 3.278 22 Mar 2006 04 Apr 2006
9 Юлдашев М.Р. (Snowbear) 137 137 20 316 239 3.448 14 Mar 2006 28 Apr 2006
10 Абашин П.И. (Dizil) 137 137 20 316 203 3.776 15 Mar 2006 26 Apr 2006
11 Самохвалов В. (ValdemarES) 137 137 20 316 117 7.788 14 Mar 2006 19 Apr 2006
12 Мурашкин И.В. (lepton) 137 137 20 316 25 7.943 17 Apr 2006 24 Apr 2006
13 Носков Н.В. (niko2) 137 137 20 316 274 8.472 06 Apr 2006 06 Apr 2006
14 Крижевич С.А. (yaff) 137 137 20 316 259 14.801 16 Mar 2006 22 Mar 2006
15 Иванов А.Н. (Goapsy) 137 137 20 316 128 16.076 18 Mar 2006 25 Mar 2006
16 Держальцев В.А. (MadVet) 137 137 20 316 357 18.639 08 Apr 2006 15 Apr 2006
17 Зырин В.Е. (Vezyr) 137 137 20 316 63 20.618 17 Mar 2006 27 Apr 2006
18 Страшников А.С. (EffEct) 137 137 20 316 305 59.972 16 Mar 2006 03 Apr 2006
19 Матвеева Ю.Б. (Julia_M) 137 137 20 316 137 68.931 24 Mar 2006 28 Apr 2006
20 >Галиаскаров Э.Г. (Galogen) 136 52 20 315 522 100.285 28 Apr 2006 28 Apr 2006

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Черноусов В.И. (_student_) 70 70 132 0 132 360 25 Apr 2006
2 Коростелева Е.С. (Шилохвость) 54 58 99 0 99 583 27 Apr 2006
3 Кузнецов И.В. (Joy757) 50 50 87 3 90 861 27 Apr 2006
4 Акоев М. (mrcs) 47 47 80 1 81 977 28 Apr 2006
5 Ушаков С.М. (Progrs) 33 33 58 19 77 1048 28 Apr 2006
6 Водчиц Ю.Е. (Чица) 36 59 74 0 74 576 28 Apr 2006
7 Меньшиков С.И. (Меня) 38 38 68 0 68 1228 23 Apr 2006
8 Ардашева Ю.Л. (julik) 31 46 64 1 65 969 27 Apr 2006
9 Doinikov A.A. (adoinikov) 36 36 64 1 65 1283 27 Apr 2006
10 Smart T. (Tony Smart) 38 38 60 5 65 1285 27 Apr 2006
11 >Островерх Д.В. (_Dima) 34 34 60 0 60 1425 28 Apr 2006
12 Маркин (/\/0!$e) 28 53 54 5 59 764 26 Apr 2006
13 >Basarab A.N. (Aleandru) 33 33 56 0 56 1555 28 Apr 2006
14 >Брязгунов С.Н. (p_bsn) 32 36 52 1 53 1536 28 Apr 2006
15 >Ахметов В.Р. (Навар) 32 32 53 0 53 1630 28 Apr 2006
16 >Гайко А.Н. (uzik) 14 72 30 21 51 180 28 Apr 2006
17 Тимофеев О. (Greek) 34 34 51 0 51 1694 24 Apr 2006
18 >lob (loblob) 30 30 51 0 51 1695 27 Apr 2006
19 >Беляков М.В. (Буремиг) 22 29 45 0 45 1648 28 Apr 2006
20 Kocar M. (matejk) 23 23 36 9 45 1892 22 Apr 2006
21 g (preved medved) 18 44 41 0 41 1093 28 Apr 2006
22 Спирин А.В. (Alexey Spirin) 21 55 39 0 39 759 28 Apr 2006
23 Деревенских М.Н. (kugu_chaos) 23 23 36 3 39 2096 26 Apr 2006
24 >Баширов Р.Г. (Ринат) 13 59 29 8 37 425 28 Apr 2006
25 >Иванов К.Е. (x.es) 19 26 37 0 37 1932 28 Apr 2006
26 >Хотеева М.А. (Мария) 24 24 37 0 37 2161 28 Apr 2006
27 >Хмара Е.В. (Evgeny72) 23 23 34 0 34 2359 28 Apr 2006
28 Зубко А.В. (wNomad) 23 23 34 0 34 2378 23 Apr 2006
29 Seok E. (moonuh) 22 22 34 0 34 2382 27 Apr 2006
30 >Комлев Е.А. (JokeR) 23 23 34 0 34 2399 28 Apr 2006
31 >Баланов М. (Соник) 22 22 31 3 34 2401 28 Apr 2006
32 >Кирпичёв А.Н. (Ir0nF) 12 69 24 9 33 203 28 Apr 2006
33 >Taipov D. (Dealer) 10 65 20 13 33 223 28 Apr 2006
34 Козуля А.А. (Angi) 22 22 32 0 32 2508 27 Apr 2006
35 >- (_Vita) 12 28 30 0 30 1782 28 Apr 2006
36 Fiddelaers (scOOb) 20 20 27 3 30 2655 25 Apr 2006
37 bandel C.H. (chander) 22 22 29 1 30 2658 27 Apr 2006

Изучаем SQL

Худшие методы - непродуманное добавление столбца!

Andy Warren (оригинал: Worst Practice - Adding a Column Without Thinking!)
Перевод Моисеенко С.И.

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

· Реплицируется ли таблица? Если так, то должен ли новый столбец быть добавлен к статье и отправлен подписчикам, или лишь добавлен к основной таблице?

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

· Должен ли столбец быть включен в какие-нибудь представления, которые имеют ссылку на эту таблицу? Если представления используют запрос типа 'select *', Вы должны будете выполнить sp_refreshview, чтобы эти изменения вступили в силу. Если столбцы задаются явно, Вы должны будете изменить представления, чтобы добавить новый столбец.

· Соответствует ли новый столбец принятому соглашению об именовании?

· Имеет ли столбец значение по умолчанию и должны ли существующие строки получить это значение?

· Допускаются ли NULL-значения?

· Не превысит ли добавление столбца допустимый максимальный размер строки?

· Если Вы реплицируете таблицу, не превысит ли это добавление предельное значение на 256 столбцов для транзакционных статей? Или предел для слияния - 246 столбцов/6000 символов?

· Является ли столбец битовым? Особенность некоторых версий Access (см. 280730) состоит в том, что все битовые столбцы были полностью заполнены - никаких NULL-значений - или Вы получите сообщение об ошибке, "Эта запись была изменена другим пользователем после того, как Вы начали редактировать ее."

· Должен ли он иметь ограничение на уникальность (UNIQUE)? Иметь индекс?

· Используется ли подходящий тип данных? В частности, использование типа float (число с плавающей точкой) может привести к проблемам при обновлениях, выполняемых при помощи рекордсетов DAO/ADO с использованием оптимистической блокировки, поскольку ошибки округления выглядят так, как будто запись была изменена.

· Используется ли еще где-либо в той же базе данных столбец с тем же именем? Это происходит довольно часто, когда Вы добавляете внешний ключ. К сожалению, если где-то имеются ссылки на обе таблицы в операторе select, но имя столбца не уточнено именем таблицы или алиасом, Вы получите ошибку "ambiguous column name" (неоднозначное имя столбца).

· Должно ли быть задано ограничение внешнего ключа? Если так, должны ли допускаться каскадные операции обновления/удаления?

19.02.2004

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

§ Все статьи, публикуемые в рассылке, затем выкладываются на сайте Книги и статьи по SQL.

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

Контакты

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

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

В избранное