Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Тоу Д. -> "Настройка SQL. Для профессионалов" -> 67

Настройка SQL. Для профессионалов - Тоу Д.

Тоу Д. Настройка SQL. Для профессионалов — СПб.: Питер, 2004. — 333 c.
ISBN 5-94723-959-0
Скачать (прямая ссылка): nastroykasqldlyaprof2004.djvu
Предыдущая << 1 .. 61 62 63 64 65 66 < 67 > 68 69 70 71 72 73 .. 161 >> Следующая

132

5. Диаграммное изображение простых запросов SQL

¦ Для отдыха на природе Джонни приготовил по восемь лепешек, три сосиски, одной полоске бекона и два яйца для себя и своих друзей Джима, Мэри и Сью. Каждая девочка отдала одну треть своих сосисок, 25 % лепешек и половину яиц мальчикам. Джим уронил лепешку и две сосиски, и их украл енот. У Джонни аллергия на кленовый сироп, а у Мэри на половине лепешек была клубника, но все остальные поливали лепешки кленовым сиропом. Сколько лепешек с кленовым сиропом съел каждый ребенок?

¦ (8+(0.25 х 8) -1) + (0.75 х 8/2) + (0.75 х 8) - ?

Естественно, вторую задачу решать проще.

Диаграмма запроса — это скелетный синтез основных элементов настройки «проблемы эквивалентности» SQL и ключевых распределений данных, необходимых для поиска оптимального плана исполнения. Благодаря скелетному синтезу вы отбрасываете отвлекающие, ненужные детали и сосредотачиваетесь на ядре проблемы. В результате получается намного более компактный язык, который можно использовать для реальных задач и упражнений. Проблемы, которые на языке SQL описывались бы страницами кода (а в реальных проблемах, когда патентованный код нельзя легально просмотреть, потребовались бы дни для изучения поведения запроса), превращаются в простые, абстрактные диаграммы, занимающие половину страницы. Ваш темп изучения чрезвычайно ускорится с этим инструментом, частично благодаря тому, что сходство между проблемами настройки и функционально отличающимися запросами станет очевидным. Вы увидите шаблоны и сходства, которые никогда бы не заметили на уровне SQL-кода, и будете многократно использовать свои решения с минимальными усилиями.

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

Дополнительным и совершенно незапланированным преимуществом оказывается то, что диаграммы запросов оказываются ценным средством в поиске целых классов незаметных логических ошибок приложения, которые трудно обнаружить при тестировании, так как они возникают в достаточно редких и трудных случаях. В главе 7 я буду подробно обсуждать, как использовать эти диаграммы для поиска и исправления таких логических проблем.
Полные диаграммы запросов

133

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

Полные диаграммы запросов

В примере 5.1 показан простой запрос, иллюстрирующий все значимые элементы диаграммы запроса.

Пример 5.1. Простой запрос с одним соединением

SELECT D. DepartmentJame. E.LastJame. Е.First Jame FROM Employees E. Departments D WHERE E.Department_Id=D.Department_Id AND E. ExemptJlag=1Y'

AND D.USJasedJlag-1 Y1:

Этот запрос переводится в диаграмму запроса, показанную на рис. 5.1.

EOJ

20

Ў0.98

D05

Рис. 5.1. Полная диаграмма запроса для простого запроса

Сначала я опишу значение каждого элемента диаграммы, а затем объясню, как создать диаграмму, используя в качестве стартовой точки SQL-код.

Информация, отображаемая в диаграммах запросов

В математических терминах то, что вы видите на рис. 5.1, является направленным графом. Это набор узлов и связей, причем связей часто обозначаются стрелками, указывающие направление. Узлы на этой диаграмме представлены буквами EhD. Рядом с узлами и обоими концами каждой связи есть числа, которые указывают дополнительные свойства узлов и связей. В терминах запроса вы можете интерпретировать эти элементы диаграммы следующим образом.

Предыдущая << 1 .. 61 62 63 64 65 66 < 67 > 68 69 70 71 72 73 .. 161 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100