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

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


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

SQL Exercises

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

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

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

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

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


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

§ Заимствование контента - известная проблема в инете. С удивлением обнаружили, что в ход пошли и мои рассылки:
db-system.od.ua/articles/4/item/2006-09-09.html (прокрутите страницу вниз).
Я считаю, что "приличным" поведением является испрошение разрешения на публикацию и сохранение прямых ссылок, содержащихся в контенте, чего не наблюдалось.
Ввиду отсутствия какой-либо контактной информация на указанном сайте, обращаюсь к владельцам ресурса через рассылку с просьбой поставить прямые ссылки на сайт SQL-EX.RU и восстановить ссылки в текстах статей.

§ Исправил недавно нарушенное функционирование голосования. Заодно посмотрел итоги голосования. Почти один процент готов предложить вопросы для тестов по T-SQL, а это около 40 человек. Если цифры не врут :-), то это серьезная сила, и можно заняться реализацией. Пока я вижу это так:
- сервис, который позволит авторам вводить вопросы, ответы и пояснения, почему ответ является правильным/неправильным;
- страница для тестирования;
- результаты с объяснением допущенных ошибок;
- ветка форума для обсуждения вопросов.
Остальное, в частности, сертификация будет зависеть от того, что у нас получится.

§ Дописал FAQ об ограничении на использование CTE. Другие ограничения пока не вводились, поэтому, если что-то не работает из новых возможностей SS2005 в синтаксисе запросов, будем разбираться и исправлять.
Добавил столбцы с показателями на третьем этапе в таблицу ТОР 10 на главной странице сайта и уже успел исправить замеченную SolYUtor ошибку.

§ Damirishe отстоит от третьего этапа на одну задачу (задач 137, время 8.096).

§ Новые лица в сотне:
Edward_rost (120, 58.757)
15th (113, 8.617)

§ Продвинулись в рейтинге:
PavelPS (133, 3.055)
cmalex (133, 66.734)
avk (125, 50.571)
Fomichev (122, 12.111)
wasp (121, 57.183)
safervas (124, 120.221)

§ На этой неделе сертифицированы:
Chupokabr (A07012969) [AR] (г.Пермь, Россия)

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1 Агапов В. (KERBEROS) 141 141 20 333 89 6.183 1.262 11 20 Nov 2006 16 Feb 2007
2 Солдатенков Ю.С. (SolYUtor) 141 141 20 333 265 17.216 2.517 11 07 Feb 2007 16 Feb 2007
3 Кувалкин К.С. (Cyrilus) 141 141 20 333 746 12.417 2.519 11 10 Dec 2006 16 Feb 2007
4 Карасёва Н.В. (vlksm) 141 141 20 333 196 27.850 2.710 11 18 Nov 2006 16 Feb 2007
5 Мурашкин И.В. (lepton) 141 141 20 333 240 14.865 4.724 11 18 Nov 2006 14 Feb 2007
6 Зверев Д.Л. (dimzv) 141 141 20 333 1141 9.324 4.938 11 19 Dec 2006 22 Dec 2006
7 Голубин Р.С. (Roman S. Golubin) 141 141 20 333 457 54.984 33.803 11 18 Nov 2006 16 Feb 2007
8 Войнов П.Е. (pаparome) 140 140 20 329 489 2.738 .049 7 26 Dec 2006 16 Feb 2007
9 Тарасов Д.Б. (Gavrila) 140 140 20 329 466 20.242 .513 7 05 Dec 2006 16 Feb 2007
10 Мальцев А.В. (Палкин) 140 141 20 329 145 27.557 7.373 7 09 Jan 2007 12 Feb 2007
11 Васьков Е.В. (Johan) 140 140 20 329 124 12.713 11.402 7 20 Nov 2006 15 Feb 2007
12 Валуев Д.И. (Fiolent) 139 140 20 326 1188 117.017 62.302 4 05 Dec 2006 16 Feb 2007
13 Юлдашев М.Р. (Snowbear) 139 139 20 325 546 4.113 .000 3 15 Jan 2007 13 Feb 2007
14 Держальцев В.А. (MadVet) 138 139 20 324 540 34.249 3.085 3 08 Oct 2006 19 Oct 2006
15 Палий С.А. (PS_Sergey) 139 139 20 325 212 15.756 4.188 3 01 Dec 2006 03 Dec 2006
16 Бородкина М.И. (marishkin) 138 138 20 322 67 15.105 .000 0 22 Jan 2007 26 Jan 2007
17 Утёнков М.Н. (=Maxim=) 138 138 20 322 200 24.998 .000 0 19 Nov 2006 08 Feb 2007
18 Slobodcicov A.N. (Testo) 136 138 20 319 337 7.171 .000 0 25 Aug 2006 10 Nov 2006
19 Иванов А.Н. (Goapsy) 136 138 20 319 270 18.911 .000 0 07 Aug 2006 10 Feb 2007
20 Абашин П.И. (Dizil) 137 137 20 318 453 3.966 .000 0 20 Nov 2006 09 Feb 2007

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Yakovleva (ya.na) 50 50 90 11 101 1134 15 Feb 2007
2 >Куравлёв Д. (Demonius) 44 44 76 23 99 1201 16 Feb 2007
3 >Накеури Г.Д. (Георгий Давидович) 36 71 79 15 94 319 16 Feb 2007
4 Черниговский С.А. (isergey) 33 41 66 23 89 1261 16 Feb 2007
5 Платонов А. (KAYDevelop) 36 56 78 9 87 571 16 Feb 2007
6 m00n (m00n) 39 39 62 17 79 1629 12 Feb 2007
7 >Филиппова Е. (e_f) 44 44 75 3 78 1663 16 Feb 2007
8 >Мухачев О.В. (Oleg_B5) 40 40 73 0 73 1833 16 Feb 2007
9 St D. (Dmitriy_S) 35 35 54 11 65 2090 14 Feb 2007
10 >Олейникова О.С. (olga_olga) 36 36 65 0 65 2092 16 Feb 2007
11 Науменко С.М. (kambei) 36 36 65 0 65 2098 14 Feb 2007
12 >Рябцев К.А. (Djamal) 33 33 59 5 64 2137 16 Feb 2007
13 Яблочкин (Zasyab) 34 34 60 0 60 2305 14 Feb 2007
14 Воронова Е.А. (Macadamia) 34 34 60 0 60 2313 15 Feb 2007
15 >Полеводов А. (Шyрик) 26 51 55 1 56 1282 16 Feb 2007
16 Мухаметшин Р.С. (Schummi) 8 57 23 32 55 534 16 Feb 2007
17 >Большакова К.И. (Bolschakova) 28 36 55 0 55 2141 16 Feb 2007
18 Я К.М. (alexanderrr) 30 30 55 0 55 2589 14 Feb 2007
19 >Селиверстов А. (alex_s9v) 30 30 55 0 55 2591 16 Feb 2007
20 Фынтынэ К.М. (Fintina Cornel) 31 31 52 0 52 2728 14 Feb 2007
21 Богданов В.А. (Valery A. Bogdanov) 28 28 49 0 49 2903 15 Feb 2007
22 Денисов В.Д. (ambal) 16 43 29 17 46 1350 16 Feb 2007
23 >wu (wildbean) 27 27 46 0 46 3080 16 Feb 2007
24 K (supertramp) 31 31 44 0 44 3168 11 Feb 2007
25 Макарова (Стриж) 19 34 43 0 43 2332 14 Feb 2007
26 Макаров Й.Ь. (tntn) 19 34 43 0 43 2334 14 Feb 2007
27 >Запольский А.Н. (a_zapolski) 26 26 43 0 43 3226 16 Feb 2007
28 Кожемякин М.А. (fatum) 18 56 36 4 40 943 14 Feb 2007
29 Кукушкин И. (ik) 25 25 40 0 40 3391 11 Feb 2007
30 Моглан В.И. (slavean) 25 25 40 0 40 3394 13 Feb 2007
31 Lev R. (revivo77) 22 22 40 0 40 3419 13 Feb 2007
32 Belov I.A. (sa1nt) 26 26 35 5 40 3431 14 Feb 2007
33 >melkhov (axl melkhov) 25 25 40 0 40 3435 16 Feb 2007
34 >Йцукен (Lemin) 29 29 37 3 40 3448 16 Feb 2007

Изучаем SQL

Начинаем работать с SQL Native Client

Chris Lee (оригинал: Getting started with SQL Native Client)
Перевод Моисеенко С.И.

Как Acey Bunch уже объяснил в апрельском блоге (см. выпуск рассылки 126), SQL Native Client удовлетворяет потребностям тех разработчиков, которые хотят использовать новые возможности SQL Server 2005 из приложений, работающих через ADO, ODBC и OLE DB. Для тех из Вас, кто еще не обращался к SQL Native Client, мы начинаем изучение его использования. Хорошая новость состоит в том, что это очень просто. Мы реализовали очень небольшое количество новых интерфейсов для OleDb, однако самые новые функциональные возможности реализованы через атрибуты подключения или операторы, которые Вы уже знаете, как использовать.

Я начну с самого нижнего уровня и расскажу о том, как преобразовать существующие приложения для использования SQL Native Client. Здесь имеется три стадии: во-первых, выполнение существующего кода; во-вторых, подготовка к эксплуатации новых возможностей; в-третьих, использование новых возможностей. В этом сообщении я ограничусь первыми двумя из них. Третья стадия будет изложена в моем следующем сообщении, где, в частности, речь пойдет об использовании множественных активных результирующих наборов (МАРС). Если на Вашей машине установлен SQL Server 2005, то установлен и SQL Native Client. В противном случае, а SQLNCLI.msi включен в дистрибутив 2005 Server SQL, просто скопируйте этот файл с дистрибутивного носителя в папку \Setup.

Стадия 1: Выполнение существующего кода

Для ADO Вы меняете строку подключения на использование SQLNCLI в качестве провайдера и добавляете ключевое слово для обеспечения совместимости с типами данных SQL Server 2000 следующим образом:

"…; Provider=SQLOLEDB; …"

становится

"…;Provider=SQLNCLI;DataTypeCompatibility=80;…"

ADO представляет собой общий API доступа к данным, который является теперь частью платформы Windows, и не частью SQL Native Client, поэтому ADO на вашей машине не изменилась при установке SQL Native Client. Следовательно, вообще говоря, не требуется ни каких-либо специфических знаний SQL Server, ни новых типов данных, добавленных в SQL Server 2005. Поэтому, используя ADO, мы должны дать указание SQL Native Client согласовать новые типы данных SQL Server 2005 с типами данных, которые понимает ADO. Я объясню, как это делается в более поздней статье, а пока лишь отмечаю зачем это нужно и что это не мешает нам использовать другие новые возможности SQL Server 2005.

Для ODBC Вы меняете имя драйвера 'SQL Server' на 'SQL Native Client'. Если ваше приложение использует DSN, Вы должны создать новый DSN и выбрать 'SQL Native Client' в качестве драйвера. Если Вы используете подключение без DSN, просто обновите строку подключения в вашем приложении.

Для OLE DB Вы просто меняете имя провайдера 'SQLOLEDB' на 'SQLNCLI', или используете CLSID_SQLNCLI вместо CLSID_SQLOLEDB.

Стадия 2: Подготовка к использованию новых возможностей

Для ADO: Если Вы используете ADO, Вы хорошо подготовлены.

Приложениям ODBC и OLE DB необходимо использовать sqlncli.h, чтобы получить доступ к новым возможностям. Вы также должны использовать Visual Studio.Net. Sqlncli.h - новый заголовочный файл, общий как для ODBC, так и для OLE DB, который обычно устанавливается в C:\Program Files\Microsoft SQL Server\90\SDK\Include.

Для ODBC sqlncli.h является прямой заменой odbcss.h. Если вы используете API-вызовы bcp наряду с вызовами ODBC, тогда вам потребуется привязка к sqlncli.lib вместо odbcbcp.lib.

Для OLE DB Вы можете добавить #include для sqlncli.h после #include для sqloledb.h, если Вам необходимо использование как старого, так и нового провайдеров (sqlncli.h не содержит CLSID для SQLOLEDB), или же Вы можете заменить #include для sqloledb.h на #include для sqlncli.h, если Вы не нуждаетесь в старых CLSID. Если требуются оба заголовка, #include для sqloledb.h должен следовать первым.

Так как sqlncli содержит имена как для ODBC, так и OLE DB, есть шанс конфликта имен с вашими собственными именами и именем, определенным для использования 'другим' API (тем, который Вы не собирались использовать). В этом случае Вы можете добавить #define, чтобы избавиться от имен не нужного вам API. Если Вы используете OLE DB, напишите #define _SQLNCLI_OLEDB_ , а если - ODBC - #define _SQLNCLI_ODBC_.

Следующие шаги …

Теперь Вы готовы начать использовать новые возможности SQL Server 2005, доступные через SQL Native Client. Познакомьтесь с деталями программирования SQL Native Client в руководстве SQL Server Programming Refernce в BOL. Документация на SQL Native Client была недавно значительно обновлена, поэтому Вам следует использовать последнюю доступную версию. Большинство новых возможностей очень просты в программировании и управляются свойствами подключения или операторов. В своем следующем сообщении я рассмотрю множественные активные результирующие наборы (МАРС).

27 сентября 2006

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

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

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

§ Желающих поспособствовать популяризации сайта прошу проголосовать/поставить закладку в социальных сетях:
del.icio.us
dzone.com
Digg.com

Контакты

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

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

В избранное