semenova

навигация

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

РЕАЛИЗАЦИЯ БАЗ ДАННЫХ С ЭЛЕМЕНТАМИ ИЕРАРХИЧЕСКОЙ СТРУКТУРЫ В РЕЛЯЦИОННОЙ СУБД
Ю.С. Кулик, А.С. Реснянский, студенты группы 41БИ
Руководитель Семенова И.И., к.т.н., доцент кафедры ИБ
УДК 681.3.06


В статье описывается способ построения иерархической структуры базы данных средствами реляционной СУБД.

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

Целями создания системы стали:
  • повышение эффективности работы кинологического клуба;
  • систематизация данных о собаках, зарегистрированных в клубе;
  • возможность оперативно предоставить необходимую информацию о собаке и ее владельце;
  • сбор информации об украденных и потерявшихся собаках.

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

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

Такая задача является типичной для иерархической СУБД. Но, в нашем случае, по ряду причин решено было остановиться на реляционной модели базы данных. Таким образом, возникла задача построения иерархической структуры базы данных в реляционной СУБД.

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

Различные категории сведений о собаках распределены в наборе таблиц БД. Причем, одна из таблиц является основной. В общем виде структура этой таблицы имеет вид:

Код собаки (ключевое поле)
Основные сведения о собаке(перечень атрибутов)

Остальные таблицы являются "дочерними" и связаны с основной по полю "Код собаки" (тип связи - "один-ко-многим").

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

Рис. 1. Фрагмент схемы данных, построенный в CASE-пакете ERwin.

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


Copyright © 2006 design: vasin anton