Мова SQL. Оператори створення та видалення об’єктів баз даних. Оператори пошуку інформації. Агрегатні функції. Вкладені запити, страница 9

Як відомо, електронні таблиці є ефективним і зручним засобом при розв’язанні задач розподілення та  отримання балансів. Будемо розглядати випадки, коли розподілення та/або отримання балансу виконується людиною і при цьому немає потреби використовувати спеціальні моделі, наприклад, моделі лінійного програмування.

Системи керування базами даних (СКБД) зручні для ведення великої кількості взаємопов’язаних таблиць і для отримання у вигляді запитів, форм та звітів різного роду інформації з цих таблиць. Але користувачу не дуже зручно працювати з пов’язаними таблицями в діалоговому режимі для різного роду балансувань. Проілюструємо це на прикладі задачі “постачальники (П) – споживачі (С)”. Хай початкові умови задані такою таблицею 1, комірки якої закодовані двовимірними індексами.

Таблиця 1. Початкові умови задачі розподілення

Постачальники

Споживачі

С1

С2

С3

Разом

Потужності Пij

50

60

30

140

П1

40

10

10

П2

30

15

П3

50

30

П4

20

5

Всього

140

Як бачимо, витримано баланс між загальними потужностями усіх постачальників і усіх споживачів, але поки що не зроблено закріплення постачальників за споживачами (або навпаки), яке витримує наведений баланс. Поки що в таблиці наведені окремі закріплення, які не можна змінювати, хоча це не принципово для подальшого викладення матеріалу.

Таку таблицю легко створити у програмному середовищі електронної таблиці, наприклад Excel, і далі розробляти варіанти розв’язання задачі розподілення (закріплення) з дотриманням балансу. Коли таких таблиць небагато і користувача цікавить тільки задача розподілення, то можна обійтися тільки засобами електронної таблиці. Але частіше за все користувачу потрібно створити базу даних (БД) для отримання різноманітних запитів, форм і звітів. Тому в ній крім аналога таблиці, що наведена на рисунку , потрібні й інші таблиці.

Так, у  нашому демонстраційному прикладі така таблиця-матриця після нормалізації буде представлена трьома таблицями : двома основними “Постачальники” (П) іСпоживачі” (С) та зв’язувальною таблицею “Постачальники-споживачі” (П_С).    Структура і вміст цих таблиць бази даних наведено нижче  у таблицях 2,3 і 4. Як бачимо, таблиця 1 являє собою двовимірне представлення моделі початкових умов  задачі, сутність якого  відображається у зв’язувальній таблиці П_С  реляційної моделі даних.

Таблиця 2                             Таблиця 3                                              Таблиця 4

 Таблиця БД „П”                      Таблиця БД „С”                        Таблиця БД „П_С”                  

NP                 

QP

NC

NP

NC

QTY

П1

40

C1

50

П1

C1

10

П2

30

C2

60

П1

C3

10

П3

50

C3

30

П2

C2

15

П4

20

П3

C1

30

П4

C3

5

В таблицях 2-4 застосовані такі позначення :

NP  - код постачальника;

QP  - ресурс постачальника;

NC  - код споживача;

  - потреба споживача;

QTYкількість закріпленого ресурсу постачання/споживання.

Ставиться задача закріпити споживачів за постачальниками, при цьому необхідно не порушити  баланс між сумарними потужностями усіх постачальників й усіх споживачів.