- •1. Короткі відомості про моделі даних
- •1.1. Реляційна алгебра
- •1.2. Основні поняття та нормалізація відношень реляційної бази даних
- •Сутність та особливості мови запитів sql
- •2.1. Структурована мова запитів
- •2.2. Особливості використання мовиSql
- •Оператори та синтаксис мови sql
- •Синтаксис sql
- •3.2.Ключові слова.
- •3.3. Створення sql-інструкцій (на стадії ознайомлення)
- •3.4. Групи sql – інструкцій
- •3.5. Методи виконання sql-операторів
- •4. Принципи застосування мови sql в системі управління базами данних Access
- •4.1. Використання інструкцій sql у об’єктах Access
- •4.1.2. Створення запитів sql
- •5. Використання sql для розробки запитів в Access
- •5.1. Звичайні вибірки sql та вибірки з умовою для однотабличних запитів
- •Багатотабличні запити
- •5.2.2. Запити з операціями з’єднання Таблиць
- •5.3. Додатові відомості про зв’язування таблиць
- •Вибранні питання роботи з операторами sql, що змінюють структуру бази даних
- •6.1. Створення таблиці
- •Типи даних
- •6.2. Спеціальні запити sql об’єднання
- •6.3. Короткі відомости про використання Ассеss як сервераDde
- •7. Лабораторні роботи
- •7.1.Лабораторна робота №1 Тема «Використання інструкцій sql при розробці об’єктів в системах управління базами данних ассess
- •Лабораторне завдання:
- •7.2. Лабораторна робота № 2
- •Лабораторне завдання №2
- •Хід виконання роботи:
- •7.3. Лабораторна робота № 3 Тема: Використання мови sql для розробки параметричних запитів та різних варіантів простих вибірок з фільтрацією і сортуванням.
- •Лабораторне завдання №3
- •7.4. Лабораторна робота № 4 Тема: Використання мови sql для розробки запитів на пошук відсутніх даних про об’єкти предметної області та вибірки за зразком
- •Лабораторне завдання №4
- •7.5. Лабораторна робота № 5 Тема: Запити з агрегованими функціями
- •Лабораторне завдання №5
- •Індивідуальні завдання
- •7.6. Лабораторна робота № 6 Тема: Використання мови sql для розробки багатотабличних запитів
- •Лабораторне завдання №6
- •7.7. Лабораторна робота № 7 Тема: Використання мови sql для створення структури нової таблицї бази даних
- •Лабораторне завдання №7
- •8. Питання до контролю
- •Додаток а. Приклад реляційної моделі даних
- •Додаток б. Послідовні нормальні форми та вимоги до них
- •Додаток в.Приклади використання інструкцій sql для організаціїDde із інших додатків
- •Контрольні питання
- •Література
Додаток а. Приклад реляційної моделі даних
Побудуємо реляційну модель даних для задачі 29 “Тестування авто”, див. [1]. Дані представлені у вигляді наступних таблиць:
Таблиця 1
Результати тестування
Код_ автомобіля |
Код_ несправності#
|
Довідка |
Код_складової_двигуна# |
KA |
KZA |
|
KP |
10 |
8 |
|
6 |
1 |
5 |
|
1 |
1 |
10 |
|
5 |
1 |
2 |
|
2 |
1 |
5 |
|
1 |
2 |
5 |
|
2 |
2 |
3 |
|
1 |
2 |
5 |
|
2 |
3 |
4 |
|
4 |
3 |
3 |
|
1 |
3 |
2 |
|
2 |
3 |
10 |
|
5 |
4 |
2 |
|
4 |
4 |
4 |
|
4 |
5 |
4 |
|
5 |
5 |
3 |
|
1 |
6 |
2 |
|
2 |
7 |
2 |
|
4 |
8 |
4 |
|
5 |
9 |
8 |
|
6 |
9 |
3 |
|
1 |
10 |
2 |
|
2 |
Таблиця 2
Довідник несправностей
Код_несправності# |
Назва_несправності |
Контролер |
Ціна тестування |
1 |
Стукіт при роботі двигуна |
Петринчук І. І. |
130 |
2 |
Припинення іскроутворення |
Сидоренко С. С. |
34 |
3 |
Збільшення витрат масла |
Іванчук К. І. |
180 |
4 |
Зменшення компресії |
Петринчук І. І. |
50 |
5 |
Перегрівання двигуна |
Іваненко А. А. |
45 |
6 |
Збільшення витрат палива |
Іванов Ф.А. |
50 |
7 |
Порушення сумішестворювання |
Перова С.С. |
45 |
8 |
Переохолодження двигуна |
Сидоренко С. С. |
30 |
9 |
Збільшення витрат охолоджувальної рідини |
Ветров В. В. |
30 |
10 |
Збільшення/зменшення тиску масла |
Петринчук І. І. |
30 |
20 |
Перебої роботи свічей |
Іванчук К. І. |
50 |
21 |
Порушення загорання |
Перова С.С. |
70 |
Таблиця 3
Складові двигуна
Код_складової_ двигуна# |
Назва |
| ||
KG |
NG |
| ||
1 |
Кривошипно-шатунний механізм |
| ||
2 |
Газорозподілюючий механізм |
| ||
5 |
Система живлення |
| ||
6 |
Система запалювання |
| ||
3 |
Система охолодження |
| ||
4 |
Система змащення |
| ||
База даних вміщує наступні поля: | ||||
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 |
Як видно із наведеного прикладу структура бази даних (яка включає- кількість Таблиць, атрибутний склад Таблиць) Структура бази даних залежить від моделі предметної області, факторів, які мають бути обов’язково включеними у інформаційну модель предметної області.
Для підвищення якості проектування структури бази даних необхідно самостійно декомпозувати відношення Довідник несправностей, бо вказане відношення має інформаційну збитковість неключевого поля Контролер, див.Додаток Б.