Не мыслите категориями блок-схем — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Не мыслите категориями блок-схем

2017-07-31 268
Не мыслите категориями блок-схем 0.00 из 5.00 0 оценок
Заказать работу

Когда мы пытаемся решить какую-то задачу, как это ни странно, некоторым из нас нравится рисовать что-то на листке бумаги. Даже простенькая диаграмма помогает разобраться в сложном вопросе, особенно когда вы изучаете что-нибудь новое. Мы — создания с визуальным восприятием бытия.
Для облегчения программирования на процедурных языках программисты пользовались блок-схемами, определенными в стандарте ANSI X3.5. Все эти схемы базируются на блочно-стрелочной идеологии, очерчивая поток данных и/или управления в процедурной системе. Если вы используете такие устаревшие инструменты, готовьтесь, что у вас будут получаться устаревшие системы. Вы будете писать код SQL, но по сути он будет процедурным.

Рисуйте диаграммы для множеств

Рисуя диаграммы для множеств, вы будете создавать приложения, ориентированные на работу с множествами. Например, изобразим предложения GROUP BY в виде маленьких изолированных овалов внутри другого овала большего размера. Таким образом, мы представили их в виде подмножеств другого множества. Прибегайте к хронологической линии, работая с временными запросами, но помните: при работе с множествами нет потока данных. Схема, ориентированная на множества, существует вне времени и связана только ограничивающими условиями.
Вероятно, наиболее ярким примером разницы между “блочно-стрелочным” подходом и диаграммами для множеств являются модели представления древовидных структур с помощью списков смежных вершин (adjacency list) и вложенных множеств (nested sets). Примеры этих моделей вы найдете с помощью поисковой системы Google или купив экземпляр моей книги Trees and Hierarchies in SQL for Smarties (Селко, 2004). Диаграммы для каждой из этих моделей показаны на рис. 9.1.


Рис. 9-1а. Деревья, представленные посредством списка смежных вершин


Рис. 9-1б. Деревья, представленные посредством вложенных множеств

Изучайте свой диалект

Хотя вы и должны при написании кода пытаться придерживаться стандартного SQL, важно знать также, какие диалектные конструкции поддерживаются в вашей системе. Например, в старых продуктах, основывающихся на последовательных файловых структурах, важную роль играет конструирование индексов и ключевых полей. С другой стороны, ядро Nucleus от Sand Technology рассматривает всю БД как набор сжатых битовых векторов и не имеет специальных механизмов индексации, потому что все индексируется автоматически.

Представьте, что предложение WHERE обладает “многопроцессорной архитектурой”

Это самый странный заголовок в главе, так что будьте внимательны. В идеальной многопроцессорной системе каждый процессор занимается выполнением исключительно своей задачи. Допустим, что у вас имеется некоторая рабочая таблица, структурно определенная предложением FROM. Представьте себе, что каждой строке этой таблицы назначен один процессор, который будет проверять в этой строке поисковое условие отбора, записанное в предложении WHERE. Здесь мы имеем дело с одним из вариантов правила Пурнеля (Pournelle): “Одна задача — один процессор”.
Если каждую строку в вашей таблице можно независимо от других проанализировать на предмет соответствия простому условию поиска, значит, ваша схема данных, скорее всего, имеет хорошую реляционную структуру. Если же при выполнении запроса необходимо ссылаться на другие строки той же таблицы, или обращаться к внешним источникам данных, или запрос в соответствие с этими условиями вообще не может быть выполнен, у вас, вероятно, проблемы с нормализацией.
Мы уже рассматривали модель вложенных множеств и модель списка смежных вершин для деревьев. Рассматривая одну строку таблицы обособленно от остальной ее части, сможете ли вы ответить на один из основных вопросов об узлах моделируемого дерева? Вы, конечно, спросите, что такое “вопрос об узле”. Далее представлен их короткий список, который применяется для древовидных структур в теории графов.
1. Является ли узел оконечным?
2. Является ли узел корневым?
3. Насколько большим является поддерево, подчиненное данному узлу?
4. Выше или ниже располагается один рассматриваемый узел относительнодругого? Или они находятся на одном и том же уровне иерархии?
Четвертый вопрос чрезвычайно важен, поскольку является основой для операций сравнения в иерархических структурах. Как видите, модель вложенных множеств может дать ответ на все перечисленные вопросы. Напротив, модель списка смежных вершин не может ответить ни на один из них.


Поделиться с друзьями:

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

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

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.