Додаток А. Приклад реляційної моделі даних
Побудуємо реляційну модель даних для задачі 29 “Тестування авто”, див. [1]. Дані представлені у вигляді наступних таблиць:
Таблиця 1
Результати тестування
Код_ автомобіля | Код_ несправності# | Довідка | Код_складової_двигуна# |
KA | KZA | KP | |
Таблиця 2
Довідник несправностей
Код_несправності# | Назва_несправності | Контролер | Ціна тестування |
Стукіт при роботі двигуна | Петринчук І. І. | ||
Припинення іскроутворення | Сидоренко С. С. | ||
Збільшення витрат масла | Іванчук К. І. | ||
Зменшення компресії | Петринчук І. І. | ||
Перегрівання двигуна | Іваненко А. А. | ||
Збільшення витрат палива | Іванов Ф.А. | ||
Порушення сумішестворювання | Перова С.С. | ||
Переохолодження двигуна | Сидоренко С. С. | ||
Збільшення витрат охолоджувальної рідини | Ветров В. В. | ||
Збільшення/зменшення тиску масла | Петринчук І. І. | ||
Перебої роботи свічей | Іванчук К. І. | ||
Порушення загорання | Перова С.С. |
Таблиця 3
Складові двигуна
Код_складової_ двигуна# | Назва | |||
KG | NG | |||
Кривошипно-шатунний механізм | ||||
Газорозподілюючий механізм | ||||
Система живлення | ||||
Система запалювання | ||||
Система охолодження | ||||
Система змащення | ||||
База даних вміщує наступні поля: | ||||
DOMAIN | Код_автомобіля | BYTE | ||
DOMAIN | Код_несправності# | BYTE | ||
DOMAIN | Довідка | ТЕХТ (70) | ||
DOMAIN | Код_частини_двигуна# | BYTE | ||
DOMAIN | Назва_несправності | ТЕХТ (50) | ||
DOMAIN | Контролер | ТЕХТ (50) | ||
DOMAIN | Ціна_тестування | SINGLE | ||
DOMAIN | Назва_складової_двигуна | ТЕХТ (50) | ||
База даних складається із Таблиць, для кожної таблиці вказують принцип упорядкування кортежей таблиці за значеннями ключових полів: RELANIONДовідник несправностей(Код_несправності#, Назва_несправності, )) KEY (Код_несправності# ) | ||||
RELANION Результати тестування (Код_автомобіля, Код_несправності#, Довідка, Код_складової_ двигуна#) KEY (Код_несправності#, Код_складової двигуна#) | ||||
RELANIONСкладові двигуна(Код_складової_двигуна#, Назва_складової_двигуна, Контролер, Ціна)KEY (Код_складово_ двигуна#)) | ||||
Сутність кортежа відношення Результати тестування наступна: після кожного тестування у разі виявлення несправності фіксується автомобіль якого типу перевірявся (код автомобіля), яка несправність була знайдена (код несправності) та у якій частині двигуна (код частини двигуна).
При необхідності, можуть бути внесені короткі (не більше 70 символів) пояснення у домен Довідка.
Структура бази даних може змінюватись зі зміною умов роботи, наприклад, тестування іноземних автомобілей, які раніше не були в експлуатації, почали проводити на трьох полігонах.
Вирішення задачі для кожного з полігонів окремо, не змінююється. При вирішенні задач для усіх полігонів у модель даних необхідно додати поле Полігон, структура відношення Результати тестування зміниться і буде наступною:
RELANION Результати тестування (Полігон, Код_автомобіля, Код_несправності#, Довідка, Код_складової двигуна#)
KEY (Код_несправності#, Код_складової_двигуна#)
DOMAIN | Полігон | BYTE |
Як видно із наведеного прикладу структура бази даних (яка включає- кількість Таблиць, атрибутний склад Таблиць) Структура бази даних залежить від моделі предметної області, факторів, які мають бути обов’язково включеними у інформаційну модель предметної області.
Для підвищення якості проектування структури бази даних необхідно самостійно декомпозувати відношення Довідник несправностей, бо вказане відношення має інформаційну збитковість неключевого поля Контролер, див.Додаток Б.