К вопросу о проектировании орнитологических баз данных

Автор: Пыжьянов Сергей Владимирович

Журнал: Русский орнитологический журнал @ornis

Статья в выпуске: 2 т.5, 1996 года.

Бесплатный доступ

Короткий адрес: https://sciup.org/140148617

IDR: 140148617

Текст статьи К вопросу о проектировании орнитологических баз данных

Развитие современных компьютерных технологий позволяет значительно снизить объем непроизводительной подготовительной работы (поиск информации, ее сортировка и т.д.), переложив это неблагодарное дело на плечи компьютера. Особенно это важно при работе с большими массивами данных, каковыми являются данные кольцевания. Об интересе к этой проблеме свидетельствуют последние публикации по развитию орнитологических баз данных (Ефремов, Морозов 1986; Морозов, Ефремов 1993, 1995а,б). Собственно статьи упомянутых авторов и побудили меня изложить свою версию базы данных по кольцеванию. Она создана и используется в нашей лаборатории с 1992 года. Поскольку это была первая и пока единственная спроектированная мною база данных, она получилась далекой от совершенства. Однако несколько интересных, на мой взгляд, решений она содержит. Кроме того, я надеюсь, что мой опыт поможет коллегам избежать типичных ошибок при создании своих баз данных. Реализована рассматриваемая программа в формате dBASE (CLIPPER), но общий ход рассуждений применим для любой системы управления базами данных (СУБД).

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

Для оптимального использования памяти компьютера наиболее логично было бы записывать большие массивы однотипных данных одной строкой — как это делается в полевом дневнике при массовом кольцевании (С 666601-666700 Lar.arg. juv ......). Однако сразу же возникает противоречие между кольцеванием и возвратами — каждый возврат уникален и никакой унификации не подлежит. Это противоречие удалось разрешить за счет совмещения в одной оболочке двух взаимосвязанных баз данных: “БАЗЫ ПЕРВИЧНОГО КОЛЬЦЕВАНИЯ” и “БАЗЫ ВОЗВРАТОВ”.

В “БАЗЕ ПЕРВИЧНОГО КОЛЬЦЕВАНИЯ” запись данных максимально унифицируется, для чего в области “Кольцо” введены три колонки: “Серия”, “Минимальный номер” и “Максимальный номер”. При этом запись максимально приближена к таковой в полевом дневнике. В случае индивидуального кольцевания (например, когда птица уже имеет кольцо), “минимальный номер” равен “максимальному номеру”. Это удлиняет время ввода номера индивидуального кольца, но существенно экономит объем абонируемой памяти и время ввода информации при масовом кольцевании с большими массивами однотипных данных. Количество окольцованных особей (N) при таком способе записи подсчитывается по формуле:

N = максимальный номер — минимальный номер + 1.

Вводимые данные ранжируются по сериям (в алфавитном порядке) и номерам колец и автоматически сопоставляются с уже имеющимися данными. Если одно из значений номера кольца совпадает с имеющимися номерами, либо оказывается внутри уже заданных интервалов, дальнейшая запись не производится, а курсор уходит в начало вводимой строки. В этом случае нажатием клавиши “Т“ над вводимой строкой появляется та, с которой новые данные не совмещаются.

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

Область “Дата кольцевания” представлена одной колонкой, что несколько облегчает ввод данных, но затрудняет их последующий анализ. Например, если нужно подсчитать количество птиц, помеченных в каком-то году, приходится задавать временной интервал. В гаком контексте предпочтительнее запись даты тремя колонками: “День”, “Месяц”, “Год”.

В областях “Координаты места кольцевания” и “Примечание” записывается дополнительная информация.

Связь “БАЗЫ ПЕРВИЧНОГО КОЛЬЦЕВАНИЯ” и “БАЗЫ ВОЗВРАТОВ” осуществляется при заполнении области “Старое кольцо” (серия и номер), которая расположена в конце вводимой строки и заполняется в том случае, если птице одевается новое кольцо. При этом автоматически происходит поиск информации по номеру старого кольца, которая записывается в “БАЗУ ВОЗВРАТОВ” как данные кольцевания, а информация текущей записи — как данные возврата. Если информация не найдена, об этом выдается сообщение и запись не производится.

“БАЗА ВОЗВРАТОВ” может заполняться и непосредственно. При этом после ввода серии и номера кольца автоматически осуществляется поиск данных по этому кольцу в “БАЗЕ ПЕРВИЧНОГО КОЛЬЦЕВАНИЯ”, которые заносятся в раздел “Данные кольцевания”, непосредственный доступ в который из “БАЗЫ ВОЗВРАТОВ” невозможен. Раздел “Данные возврата” заполняется оператором. Здесь также максимально используются словари, в том числе и для обозначения обстоятельств возврата с использованием тех же символов, что приняты в Центре кольцевания (Обозначения... 1974).

Если введены координаты мест кольцевания и возвратов, то после инициации (нажатием клавиши “Enter”) соответствующих колонок автоматически рассчитываются угол и дистанция разлета по общепринятым формулам (Плохинский 1975).

Проблема идентификации особей с минимальными затратами времени при множественной смене колец была решена следующим образом. Последней колонкой в обеих базах является колонка “Начальное кольцо”. В обычном случае значение в ней равно нулю. Но при первом перекольцовывании (когда заполняется область “Старое кольцо”) сюда заносится номер старого кольца, сохраняющийся в дальнейшем при всех последующих сменах колец (т.е. если значение в этой колонке ^ 0, то оно не изменяется). При запросе в “БАЗЕ ВОЗВРАТОВ” информации по любому кольцу, когда-либо носимому птицей, производится поиск информации по данному кольцу, считывается начальный номер и далее по всей базе производится поиск по этой колонке. Все возвраты, имеющие одинаковый начальный номер, выводятся на экран. Таким образом выявляется вся история конкретной особи, независимо от того, какое кольцо носит птица в момент запроса. Это позволило существенно уменьшить время поиска по сравнению с тем, как если бы мы “раскручивали” историю отловов особи по старым номерам колец. В этом случае машине пришлось бы столько раз анализировать “БАЗУ ВОЗВРАТОВ”, сколько раз у птицы меняли кольца.

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

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

Во-вторых, не предусмотрено расширение числа атрибутов: число колонок ограничено, а размер колонки “Примечание” не позволяет записывать туда много информации.

В-третьих, при формировании запросов не предусмотрена возможность использования общепринятых символов — “♦“ и др.

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

Однако появление на рынке новых программных продуктов, таких как “PARADOX”, позволяет уменьшить, если не свести на нет отрицательное значение этих недостатков. Но в любом случае при проектировании новых БД или усовершенствовании старых необходимо обращать внимание на указанные недочеты.

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

Статья