Додаток А. Приклад реляційної моделі даних
Побудуємо реляційну модель даних для задачі 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 |
Як видно із наведеного прикладу структура бази даних (яка включає- кількість Таблиць, атрибутний склад Таблиць) Структура бази даних залежить від моделі предметної області, факторів, які мають бути обов’язково включеними у інформаційну модель предметної області.
Для підвищення якості проектування структури бази даних необхідно самостійно декомпозувати відношення Довідник несправностей, бо вказане відношення має інформаційну збитковість неключевого поля Контролер, див.Додаток Б.