Дипломная работа: Обучающе-контроллирующая система для подготовки студентов
· Наконец, в четвертой главе разбираются вопросы работы с базами данных. Здесь описаны специальные компоненты доступа к данным, а также компоненты отображения и управления данными. Рассматриваются способы использования этих компонентов в приложениях, предназначенных как для работы с локальными базами данных, так и для систем клиент/сервер. Отдельные разделы посвящены ядру процессора баз данных BorlandDatabaseEngine, драйверам SQLLinks, локальному серверу InterBase. В главу включен пример связывания приложения-клиента с сервером Informix.
Для усвоения материала книги требуется понимание основ объектно-ориентированного программирования и принципов построения программ, управляемых событиями. Какую-то часть кода сгенерирует за вас Delphi, но для серьезной работы потребуется и серьезное знание языка Паскаль. Некоторые неосновные свойства компонентов, описанных в книге, ссылаются напрямую на программный интерфейс Windows. Его знание, конечно, не будет лишним, но и не является обязательным. Та часть книги, которая посвящена работе Delphi с базами данных, требует наличия у читателя основ знаний в этой области.
3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
3.1 Концептуальная модель базы данных
Первый шаг процесса проектирования состоит в определении всех атрибутов, включаемых в базу, и в определении связей между ними.
Наш набор атрибутов - следующий:
ТЕМА№ - порядковый номер темы с вопросами;
ТЕМА - название раздела(темы);
ВОПРОС№ - уникальный номер вопроса;
ВОПРОС - текст вопроса;
ОТВЕТ№ - уникальный номер варианта ответа на вопрос;
ОТВЕТ - текст варианта ответа на вопрос;
ИСТИННОСТЬ - истинность варианта ответа на вопрос(правда или ложь).
Сведем все атрибуты и принимаемые ими на некоторый момент времени значения в следующую таблицу:
Таблица 3.1
Сводная таблица атрибутов ПРО и их значений
ТЕМА№ | ТЕМА | ВОПРОС№ | ВОПРОС | ОТВЕТ№ | ОТВЕТ | ИСТИННОСТЬ |
1 | тема1 | 1 | вопрос1 | 1 | ответ1 | True |
2 | ответ2 | False | ||||
3 | ответ3 | False | ||||
2 | вопрос2 | 4 | ответ4 | False | ||
5 | ответ5 | True | ||||
2 | тема2 | 3 | вопрос3 | 6 | ответ6 | True |
7 | ответ7 | False | ||||
4 | вопрос4 | 8 | ответ8 | False | ||
9 | ответ9 | True | ||||
10 | ответ10 | False | ||||
3 | тема3 | 5 | вопрос5 | 11 | ответ11 | True |
12 | ответ12 | False |
Эта таблица не является отношением, так как значения первых четырех полей в ней - атомарные, а значения оставшихся трех - множественные. Чтобы таблица стала отношением, ее нужно реконструировать таким образом, чтобы каждый элемент кортежа имел атомарное значение. Это делается с помощью простого процесса вставки (табл.3.2.).
Хотя вставка добавила большой объем избыточных данных, новая таблица получает статус отношения, которое называют универсальным отношением проектируемой БД. Такое отношение включает все представляющие интерес атрибуты и все данные, которые предполагается размещать в БД. Таким образом, получена концептуальная модель проектируемой БД.
Таблица 3.2
Концептуальная модель БД
ТЕМА№ | ТЕМА | ВОПРОС№ | ВОПРОС | ОТВЕТ№ | ОТВЕТ | ИСТИННОСТЬ |
1 | тема1 | 1 | вопрос1 | 1 | ответ1 | True |
1 | тема1 | 1 | вопрос1 | 2 | ответ2 | False |
1 | тема1 | 1 | вопрос1 | 3 | ответ3 | False |
1 | тема1 | 2 | вопрос2 | 4 | ответ4 | False |
1 | тема1 | 2 | вопрос2 | 5 | ответ5 | True |
2 | тема2 | 3 | вопрос3 | 6 | ответ6 | True |
2 | тема2 | 3 | вопрос3 | 7 | ответ7 | False |
2 | тема2 | 4 | вопрос4 | 8 | ответ8 | False |
2 | тема2 | 4 | вопрос4 | 9 | ответ9 | True |
2 | тема2 | 4 | вопрос4 | 10 | ответ10 | False |
3 | тема3 | 5 | вопрос5 | 11 | ответ11 | True |
3 | тема3 | 5 | вопрос5 | 12 | ответ12 | False |
3.2 Логическая модель базы данных
Проектирование реализации БД(логическое проектирование) представляет собой трансформацию концептуальной модели в набор отношений в нормальной форме Бойса-Кодда(НФБК). Для приведения спроектированного универсального отношения в НФБК воспользуемся декомпозиционным методом проектирования, содержанием которого является описание семантики универсального отношения в терминах функциональных зависимостей(ФЗ) и использование последних для нормализации отношения.
Введем следующие понятия: функциональная зависимость, ключ, первичный ключ, детерминант, НФБК.
Если даны два атрибута A и B, то говорят, что B функционально зависит от A (обозначается A-B), если для каждого A существует ровно одно связанное с ним значение B. A и B могут быть не только единичными атрибутами, но и группами из двух и более атрибутов.
Ключом называется атрибут или совокупность атрибутов, которые используются для идентификации записи и обнаружения ее на ЗУ. Ключей может быть несколько.
Первичный ключ используется для уникальной идентификации кортежа.
Детерминант. Если в ФЗ A-BB не зависит от любого подмножества A(т.е. функциональная зависимость полна), то A является детерминантом B.
НФБК определяется следующим образом: отношение находится в НФБК, если каждый детерминант отношения является ключом. Проверим находится ли универсальное отношение R(ТЕМА № , ТЕМА, ВОПРОС № , ВОПРОС, ОТВЕТ № , ОТВЕТ, ИСТИННОСТЬ) в НФБК.
Выпишем ФЗ для универсального отношения: