Иерархические структуры в реляционных базах данныхРефераты >> Программирование и компьютеры >> Иерархические структуры в реляционных базах данных
Глава 7
Разработка тестирующей программы
В моей работе были применены вложенные рекурсивные иерархические данные для отображения предметов, тем и вопросов хранящихся в базе данных. Это означает, что базовые и подчинённые данные хранятся в одной таблице «Data». С помощью компонента TTreeView удобно организовано представление в виде иерархического дерева, что соответствует логике решаемой задачи. Таблица реляционного типа отображает наши данные в виде иерархии. В таблице первое поле ключевое, в нём название тем-родителей: «Механика», «Кинематика», «Кинематика материальной точки», «Физика», «Зачет по механике». Второе поле является подчиненным для первого: раздел «Кинематика материальной точки» содержит Вопрос 1-4.
Key_Id |
Key_Parent |
Поле строкового типа |
0 |
15 |
Механика |
2 |
0 |
Кинематика |
3 |
0 |
Динамика |
23 |
2 |
Кинематика материальной точки |
24 |
23 |
Вопрос 1 |
26 |
23 |
Вопрос 2 |
27 |
23 |
Вопрос 3 |
28 |
23 |
Вопрос 4 |
30 |
30 |
Физика |
31 |
30 |
Зачёт по механике |
32 |
31 |
Вопрос 1 |
33 |
31 |
Вопрос 2 |
34 |
31 |
Вопрос 3 |
35 |
31 |
Вопрос 4 |
36 |
31 |
Вопрос 5 |
37 |
31 |
Вопрос 6 |
На основе таблицы строится иерархия такого типа.
Также база данных содержит следующие таблицы:
Таблица «Факультет» содержит поле название факультета.
Название |
ФИЯ |
ФМИ |
Таблица «Группа» содержит поле номер группы.
Номер |
455 |
465 |
475 |
485 |
Таблица «Статистика» содержит данные о прохождении теста.
№ п/п |
Название темы |
Дата |
Оценка |
1 |
Кинематика материальной точки |
27.03.99 |
4 |
2 |
Электродинамика |
12.05.99 |
3 |
3 |
Механика |
13.05.99 |
2 |
Таблица «Данные студента» - при регистрации данные заносятся в эту таблицу.
№ п/п |
Фамилия |
Группа |
Факультет |
1 |
Иванов |
455 |
ФМИ |
2 |
Петров |
485 |
ФИЯ |
3 |
Ельцин |
465 |
ФМИ |
Таким образом база данных состоит из пяти таблиц.
При решении задачи возникли следующие проблемы:
1. Эффективное хранение информации в базе данных.
Особенность базы в том, что она состоит из полей типа binary, содержащие графические изображения, поэтому при небольшом объёме хранимой информации размер базы становится слишком большим. Хранение информации в стандартном формате bmp оказывается крайне неэффективным. Исследовав большинство распространённых графических форматов jpc, gif, tiff, я пришла к выводу, что наиболее оптимальным с точки зрения сохранения количества сжатия является формат gif. В этом формате и решено было сохранять изображения в базе данных.
Стандартные компоненты Delphi не позволяют хранить графическую информацию в базе данных в формате gif, в связи с этим были использованы продукты компании SkyLine. В своей работе я использовала библиотеку компонентов Image Lib 30 в составе которой есть компоненты, позволяющие хранить информацию в базе данных самых различных форматов.
2. Модификация стандартного компонента Delphi OleContainer.