--- FAQ или HowTo или КАК ЭТО СДЕЛАТЬ?!!!! ---


Как подключить БД
Виды БД
Последовательность действий по подключению новой БД
Как установить интервалы по каждой координате соответственно БД
Как проверить правильность подключения/чтения БД. Типичные проблемы
Как подключить нестандартные (вспомогательные) переменные
Как построить дерево интервалов и как установить соответствие между интервалами и кодами БД
Основные "разрезы" куба данных для обзора
Как обнаружить "сомнительные" данные
Как сохранить рабочую выборку и далее использовать ее

Как подключить БД

Q Виды БД

A В зависимости от содержания БД (выбросы, концентрации, заболеваемости и т.д.) и от создавшего БД ведомства (федеральное, региональное, местное) БД могут иметь разные форматы. Ниже перечислены основные разновидности форматов, для которых отлаживалась программа.
Варианты организации баз данных
Набор независимых "плоских" таблиц Реляционная БД: связанные таблицы
В ряде случаев создается специальный файл с перечнем источников выбросов, химических веществ или станций метеорологических измерений. К нему подцепляется как "slave" файл с характеристиками выбросов или с временным рядом измеренных концентраций химических веществ. При этом источник выброса, вещество и/или станция измерения кодируется номером в специальной колонке.

В других случаях реляционная взаимосвязь не используется и название источника выброса, химического вещества или станции измерения вносится напрямую в соответствующую колонку плоской таблицы.
Содержание: регистр случаев Содержание: средние значения
На уровне города или района существуют две основные БД типа регистра случаев: результаты ежедневных измерений метеорологических параметров и загрязнения воздуха, а также регистр обращений в лечебные учреждения. В первом случае каждая строка записи содержит численное значение измеряемого параметра. Во втором случае содержание каждой записи имеет характер логической переменной ("да - нет"), указывающей на сам факт обращения. Из-за этой разницы при построении агрегированных характеристик в первом случае получается средняя концентрация за период времени и т.п., а во втором случае - среднее число обращений за единицу времени.

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

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

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

Модельные алгоритмы для расчета распространения выброса и риска производят вычисления на основе целого набора чисел из БД, при этом используются как основные БД (например, данные о выбросах), так и вспомогательные (например, данные метеорологических измерений).
Год и территория записаны внутри таблиц в колонках "Время" и "Место" Год и территория закодированы в названии файла таблицы. Для каждого места / времени - свой файл
Корректное заполнение БД требует наличие отдельных колонок для даты и времени измерения, а также для территориальной единицы (метеостанция, поликлиника и т.д.), к которой относится запись.

К сожалению, таких "корректных" БД меньшинство, а по большей части данные о месте или времени закодированы в названии файла БД, например moscow1200.dbf - Москва, декабрь 2000 года.

В других случаях такие "кодовые имена" даются строкам или колонкам таблицы, куда данные записываются, подобно тому, как описано здесь.

Естественно, в этих случаях невозможно прочитать БД и правильно распределить данные по времени и территории, не задав конкретный способ расшифровки подобных обозначений. Это делается при подключении БД к программе
Кодировка всех значений в таблице числовая Кодировка некоторых значений (например, румба ветра или пола) - буквенная
Как правило, основное содержимое БД - числа. "Качественные" признаки, такие как название территории, пол больного и др. тоже часто кодируются индексами с использованием реляционной связи с таблицей индексов. Однако те же самые переменные могут быть записаны в БД, как числом, так и кодовым буквенным обозначением. Например, пол: 1/2 или М/Ж, направление ветра: числом в градусах или кодом румба (СВ, З и т.д.).

При использовании "говорящих" кодов, как правило, таблица числовых индексов для них не создается. В этих случаях необходимо при подключении БД к программе задать количественную расшифровку таких обозначений.
Кодировка времени стандартная (например, 1/11/00) Кодировка времени нестандартная
Корректная запись даты и времени в БД должна следовать европейской системе обозначений (31.12.2000) или американской системе обозначений (12/31/2000), причем в соответствии с тем, какая система используется на компьютере, где работает программа.

К сожалению, на практике время записывается по-разному: без указания года, с разнесением даты и месяца по разным колонкам, с использованием буквенных обозначений месяца, с использованием дефиса и др. разделителей и т. д. Поэтому, как правило, при подключении БД необходима предварительная настройка способа подключения даты и времени.
Формат данных внутренний для поддерживающей их базы данных Формат данных экспортный или универсальный (например, dbf)
Программа работает только с универсальным экспортным форматом БД (*.dbf), а также с БД типа Paradox (*.db). В то же время, многие БД ведутся во внутреннем формате, поддерживающих их систем (Access и т.д.). С такими БД программа не умеет работать напрямую: их надо предварительно экспортировать в формат DBF, причем полностью, т.е. с сохранением реляционных отношений, если они имеются.
Кодировка русского текста в таблицах - для DOS Кодировка русского текста в таблицах - для Windows
Программа читает БД, сформированные как под DOS, так и под Windows, если в них корректно указана кодировка русскоязычных текстов. В ряде случаев это бывает сделано некорректно, например, русскоязычный текст внутри БД имеет кодировку DOS, а для колонки, в которой он находится, указана кодировка Windows. В этом случае программа может показывать нечитабельные символы, и необходимо переформатировать БД (например, средствами Borland DataBase Desktop), приведя ее к корректному виду.
Модуль программы, отвечающий за подключение БД, позволяет точно указать вид формата БД в соответствии с приведенными выше пунктами. Результирующее определение формата вместе с другими параметрами чтения БД записывается в файл Local.Ini, который служит основой для правильной интерпретации БД.
[Верх]


Q Последовательность действий по подключению новой БД

A
  1. Пользователь должен задать описание структуры соотношения названий файлов, блоков и координат (см.).
  2. Для каждого блока задается:

[Верх]
Q Как установить интервалы по каждой координате соответственно БД

A После подключения БД необходимо по каждой переменной задать интервалы, в которые будут читаться данные из БД. Это интервалы времени, территориальное деление, загрязнители, половозрастные группы и т.д. Есть два основных способа организации этих интервалов:
  1. Интервалы отражают все значения переменных, присутствующих в БД. Например, если в данной БД нет заболевания "Астма", то не будет интервала с таким именем по переменной "Диагноз".
  2. Интервалы задаются соответственно решаемой задаче, а под них уже подбираются БД, которые могут снабдить их данными. Например, можно включить интервал "Астма", даже если в текущей БД его нет, в расчете на то, что этот диагноз может присутствовать в БД по другой территории или периоду времени.
Мы сокращенно называем эти варианты как: "под БД" и "под задачу". В данном разделе мы рассматриваем вариант "под БД". Вариант "под задачу" рассматривается ниже.

Для задания координатных интервалов "под БД" существует отдельный модуль. Им можно пользоваться как до, так и после модуля подключения БД, описанного выше. Если он используется до модуля подключения БД, то при выходе автоматически формируется некоторый вариант подключения БД "по умолчанию" и соответствующий файл Local.ini. При необходимости можно затем заменить вариант подключения с помощью модуля подключения БД.

При использовании модуля задания интервалов после модуля подключения БД, т.е. когда уже имеется некоторая модель подключения, при выходе из модуля задания интервалов надо вручную заменить имя автоматической модели подключения на имя вышеуказанной модели. Например, модуль подключения БД сформировал модель.

Последовательность операций по заданию координатных интервалов под БД см. здесь.
[Верх]
Q Как проверить правильность подключения/чтения БД. Типичные проблемы

A Правильность подключения БД проверяется чтением из БД в куб данных. Это происходит по нажатию соответствующей кнопки под панелью соответствующего блока. При неправильном подключении БД типичны следующие ошибки.
  1. Отсутствие или неправильное название модели БД. Проявляется в виде соответствующего сообщения. Как исправить: привести в соответствие название модели подключения в файле Local.ini и в дереве координатных интервалов (по координате "Территория") блока, куда подключена БД.

    Модель может быть недоступна, если файл Local.ini не находится в каталоге программы.
  2. Не найдена БД, описанная в модели. Проявляется в виде соответствующего сообщения ("Невозможно выполнить запрос"). Как правило, это происходит при переносе БД в директорию, отличную от прописанной в Local.ini. Как исправить: поменять директорию вручную в файле Local.ini.
  3. Программа не находит в БД данных, соответствующих дереву координат блока. Это наиболее частая ошибка. При этом в строке состояний индикатора чтения из БД подразделы "Всего" или "Принято" остаются неизменными. Куб данных, в который производится чтение, заполнен символами "Нет данных". Это может происходить по следующим причинам.

[Верх]
Q Как подключить нестандартные (вспомогательные) переменные

A Некоторых данных может не быть в БД, но они могут вычисляться на основе других данных из БД. Например, категория устойчивости атмосферы не измеряется напрямую, но может быть вычислена по другим метеопараметрам. В подобных случаях необходимо следующее. Предусмотреть во входном кубе данных координатные интервалы для данных, на основе которых рассчитывается искомая величина. Ввести указанную величину как группирующий интервал для них в выходной куб данных. В качестве правила группировки указать функцию с входными параметрами, соответствующими указанным полям БД. Они заполняются в ходе общего чтения из БД в куб данных. Расчет функций производится одновременно с агрегацией всех группирующих интервалов - например, при передаче данных в выходной куб блока.
[Верх]

Как выбрать из данных исходные данные для работы

Q Как построить дерево интервалов и как установить соответствие между интервалами и кодами БД

A Здесь мы рассматриваем построение координатного дерева "под задачу" [см. выше]. Для этого используется специальный модуль. В зависимости от блока, из которого он вызывается, в нем доступны те или иные координаты. По умолчанию, по каждой координате есть два интервала "Весь набор", первый из которых - формальный (то есть ему ничего не соответствует в кубе данных), а второй - реальный. Рекомендуется заменить второй из них на максимальный группирующий интервал, выбранный соответственно задаче: охватываемый период времени, охватываемая территория, "Все загрязнители", "Все источники" и т.д. Для временной и пространственной координаты имеет смысл задать группировку типа "среднего значения", для координат "Источник" и "Загрязнитель" - группировку типа "Суммирование". В зависимости от способа расчета полного риска, в блоке риска используются и более сложные способы агрегации риска по загрязнителям.

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

В каждом блоке - своя специфика задания координатных интервалов. В блоке выбросов обычно нет данных по временной динамике, поэтому задается единственный интервал с кодовым названием "Всегда". Программа интерпретирует такие данные как применимые к любому моменту времени. Обычно для выбросов также нет разбиения по территориям, отличного от разбиения по источникам выброса, поэтому координата "Территория" также задается кодовым словом "Везде". Однако можно и сгруппировать источники по территориям, например заводы - по районам города. Это имеет смысл только для расчета суммарного выброса по территориям. На расчет распространения выбросов и модельных концентраций это не влияет: туда входят только координаты источников.

Для сопоставимости данных по выбросам и концентрациям или по концентрациям и рискам, они должны содержать одни и те же интервалы времени. Соответствие по территориям не обязательно, так как оно устанавливается в ходе расчета по модели распространения выброса или по модели формирования экспозиции.

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

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


Q Основные "разрезы" куба данных для обзора

A В каждом блоке используются свои наборы переменных (координат)

Блоки Координаты
Загрязнители Территория Время Отрасль Экспозиционная группа Тип риска
Выбросы * * * *    
Концентрации * * *      
Риск * * *   * *


При просмотре данных с помощью таблицы можно одновременно видеть развертку только по двум координатам. При просмотре с помощью карты видна только одна, территориальная, координата. При просмотре с помощью графика, как правило, доступна развертка вдоль одной координаты. С помощью объемных графиков представляется развертка по двум координатам, но при этом координата, соответствующая глубине, представлена менее полно. Таким образом, важно выбрать "правильный" разрез куба данных для обзора, чтобы структура данных была видна в одной - двух координатах.

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

В блоке концентраций необходим табличный обзор по всем трем парам координат, в первую очередь, "Пространство" - "Время" при фиксированном загрязнителе. Этот разрез позволяет сравнить между собой территории, в том числе оценить изменение территориального паттерна во времени. Для каждого момента времени этот паттерн удобно визуализировать, подав координату "Территория" на карту. Сравнивать между собой разные загрязнители с помощью этого разреза нельзя. Для сравнения характерного спектра загрязнений на разных территориях удобнее воспользоваться таблицей в координатах "Загрязнитель" - "Территория". При этом желательно выбрать интервал оси "Время", соответствующий группировке за достаточно большой период, например год. Если же необходимо проследить изменение спектра загрязнения по времени, то лучше воспользоваться таблицей в координатах "Загрязнитель" - "Время". При этом представляют интерес интервалы координат "Территория", соответствующие как отдельным районам, так и агрегации всех данных.

Разрез данных вдоль времени хорошо визуализируется с помощью графика. Разрезы вдоль "Территории" и "Загрязнителя" график показывает менее эффективно, потому, что эти переменные не имеют числового характера. Поэтому удобно использовать эти переменные как "глубину" в трехмерном графике, используя время как абсциссу, а значение концентраций - как ординату. Такие графики удобны для сравнения временной динамики разных загрязнителей или одного загрязнителя на разных территориях.

В блоке риска 10 возможных пар координат. Из них представляют интерес, в первую очередь, те же разрезы, что и в блоке концентраций. Они наиболее выпукло показывают итоговые паттерны риска с разбивкой вкладов в риск по загрязнителям. Таким образом, эти разрезы наиболее пригодны для токсикологических исследований. Если же интерес представляет эпидемиологическая и популяционная информация, то имеет смысл использовать те же разрезы, но с заменой координаты "Загрязнитель" на координату "Экспозиционная группа". При этом интервал координаты "Загрязнитель" целесообразно выбрать агрегирующим все вещества.

Определенный интерес представляют еще два разреза риска. Разрез "Загрязнитель" - "Тип риска" позволяет оценить, например, относительный вклад таких загрязнителей, как формальдегид, канцерогенный и неканцерогенный риск. Разрез "Экспозиционная группа" - "Тип риска" позволяет оценить сравнительную канцерогенную и неканцерогенную опасность для разных групп населения.

Для канцерогенных рисков, ввиду дозового механизма накопления, разрез по времени не представляет интереса, хотя формально может быть получен. Поэтому роль графика для этого типа риска невелика.
[Верх]
Q Как обнаружить "сомнительные" данные

A Как правило, в БД встречаются те или иные ошибки ввода данных. Они могут быть следующих типов:
  1. Неправильная строка названия координатного интервала, например территории. Эта ошибка относительно безобидна. Она приводит только к несоответствию строки БД координатному интервалу куба данных, так что указанный интервал оказывается пустым - "Нет данных". Эту ошибку удобно обнаруживать просмотром временного ряда данных в таблице (пробелы в данных хорошо заметны внутри сплошного ряда чисел) или в графике (пробелы выглядят как "провалы" в графике). Для коррекции этой ошибки необходимы средства работы с исходной БД внутри поддерживающей эту БД системы. Программа такие возможности не предоставляет, так как берет БД в готовом виде. Коррекцией же куба данных в программе эта ошибка не исправляется.
  2. Неправильное числовое значение координатного интервала (времени, возраста и т.д.). Эта ошибка приводит к тому, что соответствующая строка БД дает вклад в "чужой" координатный интервал. Обнаружить такую ошибку очень сложно. Наиболее подходящее средство ее обнаружения в программе - просмотр исходной БД соответствующим модулем. Как правило, в БД записи упорядочены, например по времени. И запись, значение которой не соответствует расположению, может быть ошибочной (например, в начале БД "11/1/2000" вместо "1/1/2000"). Эта ошибка, как и предыдущая, исправляется только системой поддержки БД.
  3. Частая ошибка - пропуск или добавление лишнего разряда в значении измеренных величин, например концентрация 0,1 вместо 0,01. Такие ошибки достаточно легко обнаруживаются просмотром временного ряда, как сказано выше. Они выглядят как "выскакивающие значения". Удобно просматривать эти значения графиком в режиме ран жировки. Тогда они выглядят как пики в начале ранжированного ряда значений. Найдя их, следует вернуться к табличному просмотру и вручную исправить значение в кубе данных, если понятно, каким было правильное значение. После исправления желательно опять вернуться в график и проверить, что исправленное значение разумно ложится во временной ряд.

    Предупреждение: таким способом можно подавить реальные пики концентраций и т.п., которые представляют наибольший интерес для анализа. Гарантированного способа отличить значимые пики от ошибок БД нет. Методы различения базируются на том, что ошибки, как правило, однократные, а реальные пики, как правило, сопровождаются шлейфом повышенных значений в развертке по одной из координат: времени, территории и др. Подробнее о выявлении таких кластеров повышенных значений см. анализ с помощью графиков.


    Если ошибки ввода значений - другого типа, то есть меньше, чем на разряд, то их обнаружить крайне трудно.
  4. В ряде БД встречается типичная ошибка: замена отсутствующих измерений на нулевые значения. Например, в выходные дни, когда не производятся измерения концентраций, заносится нулевая концентрация. Это может очень сильно исказить средние значения и сделать невозможным осмысленный статистический анализ. Вручную неудобно изменять все такие значения на признак "Нет данных", так как их много. Поэтому в программе предусмотрена автоматическая замена нулей на "Нет данных" в модуле табличного просмотра и исключение нулей из анализа в модуле графика. Разумеется, при этом подавляются и реальные нулевые измерения, если они есть.

[Верх]
Q Как сохранить рабочую выборку и далее использовать ее

A Рабочая выборка - данные из БД, организованные в специальные структуры (модули данных и кубы данных) для эффективного проведения расчетов. Программа работает именно с такими структурами, а не с БД. Поэтому после однократного считывания из БД в выборку и сохранения этой выборки в программе, БД больше не нужны вплоть до момента, когда потребуется ввести какие-либо новые координатные интервалы, отсутствующие в сохраненной выборке. Выборка из БД, совместно с различными дополнительными пользовательскими установками, образует сессию. Сессия включает в себя информацию из всех модулей и сохраняется и считывается как единое целое. Кроме того, любой куб данных и любое дерево координатных интервалов можно считать или сохранить по отдельности. (Гл. окно правой кнопкой - куб данных; одна ветвь дерева координат). Таким образом, можно считывать вместо сохраненного куба данных другой, при условии, что они имеют один размер. Это удобно для работы с несколькими вариантами расчета, имеющими одну и ту же структуру данных. Если же при такой "подмене" нарушается соответствие структуры координатных деревьев и куба данных, то куб становится непригодным к использованию.
[Верх]