Навігація
Головна
 
Головна arrow Інформатика arrow Бази даних
< Попередня   ЗМІСТ   Наступна >

Загальні відомості

Показана "таблична" суть бази даних на прикладі процесу автоматизації табличних розрахунків. Введені необхідні поняття і визначення. Наведено класифікація баз даних і систем управління базами даних. Відзначено, що теорія баз даних має три основних складових: теорія створення, теорія використання і теорія роботи (функціонування) баз даних. З позицій реалізації баз даних виділено три складові: реалізація власне бази даних (система пов'язаних таблиць), інтерфейсу користувача і алгоритму програми.

База даних та автоматизація табличних розрахунків

Вважається, що поняття "база даних" (БД), а тим більше - "система управління базами даних" (СУБД) досить складно в засвоєнні. Воно значно спрощується, якщо зрозуміти "фізичну сутність" процесів, що відбуваються в досліджуваному програмному продукті.

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

Такі розрахунки мають місце в процесах проектування різних процесів, технологій, пристроїв, блоків; в управлінні виробництвом; в курсових і дипломних проектах.

Підтвердимо сказане простим конкретним прикладом. Почнемо з ручного розрахунку.

Приклад 1.1.

Завдання. Є склад матеріалів (M1, М2, М3), що постачає виробництво, що випускає вироби И1, И2. Кожен з виробів складається з деталей Д1, Д2 і ДЗ, кількість яких у виробах (входимость) відомо. Відомі й норми витрат матеріалів на кожну деталь. Заданий - протягом місяця - щоденний план випуску виробів, який склад повинен забезпечити матеріалами. Тривалість технологічного циклу (виробництва) виробів t d - 3 дні. Рекомендується створити страховий запас матеріалів на складі на один день. Склад періодично замовляє матеріали постачальникам. Час τ виконання заказу г по першому і третьому матеріалами - 2 дні, за другим - I день. Поставки матеріалів виробляються по першому і третьому матеріалами - кожен третій день, по другому - кожен четвертий день.

Необхідно щодня протягом місяця визначити (вирішити завдання):

  • 1) запуск матеріалів під план виробництва;
  • 2) замовлення па матеріали;
  • 3) поставки матеріалів;
  • 4) рух матеріалів на складі по днях.

Вихідні дані отримані з різних джерел.

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

Нехай дані впорядковані у вигляді системи таблиць: "Матеріали", "Деталі", "Вироби", "Норми" (витрати), "входимость", "План" (випуску виробів) (табл. 1.1 -1.6).

Таблиця I. /

Матеріали

Шифр матеріалу

Катанці матеріалу

Одиниця виміру

Ml

Сталь

кг

М2

Чавун

кг

М3

Залізо

кг

Таблиця 1.2

Деталі

Шифр деталі

Катання деталі

Одиниця виміру

Д!

Втулка

шт.

Д2

Фланець

шт.

Д3

Палець

шт.

Таблиця 1.3

Виріб

Шифр виробі

Найменування виробу

Одиниця виміру

И1

Виріб 1

шт.

И2

Виріб 2

шт.

Таблиця 1.4

Норми

Шифр матеріалу

Шифр деталі

Одиниця виміру

Норма витрат

Ml

Д1

кг / шт

2,1

Ml

Д2

кг / шт

1,8

М2

Д1

кг / шт

3,4

М2

Д3

кг / шт

4,3

М3

Д2

кг / шт

1,5

М3

Д3

кг / шт

3,7

Таблиця 1.5

Входимость

Шифр деталі

Шифр вироби

Одиниця виміру

Кількість

Д1

И1

шт / изд

7

Д2

И1

шт / изд

9

Д2

И2

шт / изд

8

Д3

И2

шт / изд

5

Таблиця 1.6

План

Дата

Шифр вироби

Кількість виробів

1

И1

7

2

И1

11

3

И1

8

4

И1

9

5

И1

12

6

И1

13

7

И1

9

8

И1

8

9

И1

7

10

И1

9

11

И1

14

12

И1

11

13

И1

8

14

И1

4

15

І!

7

16

І!

5

17

І!

8

18

И1

9

19

И1

10

20

И1

14

21

И1

17

22

И1

12

23

HI

1 січня

24

І!

10

25

И1

8

1

И2

5

2

И2

12

3

И2

8

4

И2

7

5

И2

4

6

И2

3

7

И2

15

8

И2

4

9

И2

8

10

И2

7

11

И2

4

12

И2

20

13

И2

25

14

И2

14

15

И2

11

16

И2

10

17

И2

15

18

И2

5

19

И2

7

20

И2

10

21

И2

8

22

И2

4

23

И2

12

24

И2

15

25

И2

18

Структура (сукупність елементів і їх зв'язків) наведених таблиць є лінійною.

Однак система вихідних таблиць може бути представлена інакше. Наприклад, замість таблиць "Деталі" та "Норми" може бути побудована одна таблиця "Деталі-Норми" (табл. 1.7).

Деталі-Норми

Таблиця 1. 7

Шифр деталі

Незнання деталі

Одиниця виміру

Норма витрати матеріалів (Ml. М2, М3)

Д1

Втулка

шт.

2,1; 2,4: 0

Д2

Фланець

шт.

1,8; 0; 1,5

Д3

Палець

шт.

0; 4,3; 3,7

Неважко бачити, що в останньому стовпчику таблиці "деталі-Норми" використовуються списки. Дані такого рола звуться неатомарних. Всі інші дані таблиць є атомарними.

Можливий і інший варіант організації таблиць "Матеріали", "Деталі", "Норми" у вигляді однієї таблиці "Матеріали-деталі-Норми" (табл. 1.8).

Таблиця 1.8

Матеріали-Деталі-Норми

Шифр матеріалу

Назва матеріалу

Одиниця виміру

Деталі

Норма витрат

Шифр деталі

Назва деталі

Одиниця виміру

Ml

Сталь

кг

Д1

Втулка

шт.

2,1

кг

Д2

Фланець

шт.

1,8

кг

Д3

Палець

шт.

0

М2

Чавун

кг

Д1

Втулка

шт.

3,4

кг

Д2

Фланець

шт.

0

кг

Д3

Пален

шт.

4,3

М3

Залізо

кг

Д1

Втулка

шт.

0

кг

Д2

Фланець

шт.

1,5

кг

ДЗ

Палець

шт.

3,7

У останній таблиці має місце "таблиця в таблиці". Таблиці "Деталі-Норми" і "Матеріали-Деталі-Норми" володіють нелінійною структурою.

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

Відзначимо також уразливість (порушення цілісності даних) "ручних" таблиць з великою кількістю стовпців і рядків: при заповненні таблиць в стовпець з числовими даними помилково можуть бути записані символьні дані.

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

Одночасно акцентуємо увагу на технології формування системи вихідних таблиць:

  • • створення структури полів ("шапки") таблиці;
  • • визначення стовпців для зв'язку таблиць в подальших обчисленнях (наприклад, стовпчик "Шифр матеріалу" для таблиць "Матеріали" і "Норми"), хоча явно зв'язку не задаються;
  • • заповнення таблиць даними.

Знову відзначимо, що помилково в стовпці "Норми" може бути вписано значення, відсутнє в однойменному стовпці таблиці "Матеріали" (порушення посилальної цілісності).

Для отримання результатів розрахунку можна використовувати систему таблиць з будь-якою структурою. Для визначеності скористаємося таблицями з лінійною структурою. Приступимо до вирішення завдань прикладу.

Завдання 1. специфіковані потребою (нормою) називають кількість матеріалу М., необхідного для одного виробу Іk, якщо враховувати тільки деталь Д.

(1.1)

де Н і В - норма і входимость, відповідно.

Для матеріалу Ml, деталі Д1 і вироби И1

(1.2)

Кількість матеріалу Mik для одного виробу

(1.3)

Для першого матеріалу і першого виробу

(1.4)

У базах даних обчислення виду (1.3) називають агрегованими в порівнянні з виразом (1.1). Функцією агрегації тут є сума.

Неважко бачити, що обчислення (1.1) - (1.4) є фактично матричними обчисленнями виду

які в числовій формі мають вигляд

Якщо щоденний план випуску - поточний день, то щоденний запуск (потреба в матеріалах, звана потребою в укрупненої номенклатурі), в матричній формі має вигляд

(1.5)

а в числовому вигляді для першого дня

(1.6)

Перейдемо до вирішення інших завдань. Завдання 2 і 3 відрізняються лише зсувом у часі на величину r, тому розглянемо рішення лише третього завдання.

Завдання 3. Величину поставки можна розраховувати різними способами. Зробимо розрахунок, виходячи із середньої щоденної потреби в матеріалах МС, необхідної для виконання плану

(1.7)

де Т - кількість днів у місяці (в даному випадку - 25). Операція (1.7) в базах даних також належить до операцій агрегації з усередненням в якості функції агрегації.

Очевидно

(1.8)

Тоді величина поставки

(1.9)

або

(1.10)

Щоденні поставки для першого і третього матеріалів (i = 1, i = 3)

(1.11)

для другого матеріалу

(1.12)

Завдання 4. Розрахунок запасів З (t) матеріалів ведеться за формулою

(1.13)

де (t), | t | - Моменти і інтервали часу, відповідно. Іншими словами, запаси З (t) відрізняються від запасів на початку дня. Відзначимо, що новий запас даного дня стає старим запасом наступного дня.

Очевидно

(1.14)

У загальному вигляді

(1.15)

На цьому річний розрахунок закінчений.

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

Однак часто завдання містять більше десяти таблиць, в яких понад 15 стовпців і 20000 рядків. При цьому вихідні дані можуть оперативно змінюватися і потрібно постійне коректування результатів. Електронні таблиці (Excel) тут використовувати незручно, оскільки зв'язок і цілісність даних таблиць забезпечити складно, та й кількість рядків у таблиці не повинно перевищувати 16000.

У цьому випадку без баз даних нс обійтися.

На перший погляд, технологія роботи з БД нс повинна викликати ускладнень. Раніше слід:

  • • сформувати структуру ("шапку") для всіх таблиць;
  • • визначити зв'язку таблиць;
  • • заповнити їх даними.

Для порівняння розглянемо результати комп'ютерної реалізації прикладу 1.1 з використанням, зокрема, СУБД Access.

Комп'ютерна таблиця "Деталі" (рис. 1.1) повністю збігається з ручною таблицею "Деталі" (див. Табл. 1.2).

Схема зв'язків таблиць, створена до роботи БД, показана в явному вигляді на рис. 1.2.

Слід помститися, що зв'язки в СУБД Access можуть бути задані і в процесі формування запитів (виконання розрахунків). Однак переважніше робити це до розрахунків, що надійно забезпечить цілісність даних:

1) при заповненні підлеглих таблиць комп'ютер не внесе дані із зовнішніми ключами, відсутніми в головній таблиці (посилальна цілісність);

Таблиця

Рис. 1.1. Таблиця "Деталі бази даних" в СУВД Access

Схема зв'язків таблиць

Рис. 1.2. Схема зв'язків таблиць

2) якщо не забезпечити посилальну цілісність даних до використання БД, то при помилковому заповненні комп'ютер (у процесі запиту) може і не створити зв'язки між таблицями.

Таким чином, виявилося перше обмеження роботи з БД.

З рис. 1.2 видно також, що таблиці мають лінійну структуру.

Заповнення БД даними може бути здійснено прямо в таблицю (рис. 1.1) або через форму (рис. 1.3), як аналог накладення лінійки на рядок таблиці при введенні даних в ручному режимі. Вид форм може бути різним. Зокрема, він може повністю копіювати розташування стовпців ручного документа, з якого запозичуються дані для бази даних.

Вихідні дані (результати розрахунків) оформляються у вигляді запитів або звітів (якщо до запитів необхідні пояснення).

Сформуємо запит на візуальному мовою QBE, що не вимагає знання програмування.

Запит, представлений на рис. 1.4, реалізує вираз (1.1).

Хоча запит будується із застосуванням мови QBE, комп'ютер автоматично формує оператор на мові SQL, що є основною мовою роботи баз даних.

Форма для заповнення таблиці

Рис. 1.3. Форма для заповнення таблиці "Деталі"

Витрата (неагрегірованний) матеріалу на один виріб

Рис. 1.4. Витрата (неагрегірованний) матеріалу на один виріб

SELECT Primen. [Шифр вироби], Material. [Шифр матеріалу], [Normy]! [Норма витрати] * [Primen]! [Кількість] AS Расход1, Primen. [Шифр деталі]

FROM Material INNER JOIN (Normy INNER JOIN Primen ON Νormy. [Шифр деталі] = Primen. [Шифр деталі]) ON Material. [Шифр матеріалу] = Normy. [Шифр матеріалу]

ORDER BY Primen. [Шифр вироби];

Запит на рис. 1.5 характеризує агреговані потреби в в матеріалах на один виріб (вираз (1.3)).

SELECT [Primen]. [Шифр вироби], [Material]. [Шифр матеріалу], Sum ([Normy]! [HopMa витрати] * [Primen]! [Кількість]) AS Расход2

FROM Material INNER JOIN (Normy INNER JOIN Primen ON [Normy]. [Шифр деталі] = [Primen]. [Шифр деталі]) ON [Material]. [Шифр матеріалу] = [Normy]. [Шифр матеріалу]

Витрата (агрегований) матеріалу на один виріб

Рис. 1.5. Витрата (агрегований) матеріалу на один виріб

Витрата матеріалів на виконання плану (запуск)

Рис. 1.6. Витрата матеріалів на виконання плану (запуск)

GROUP BY [Primen]. [Шифр вироби], [Material]. [Шифр матеріалу]

ORDER BY [Primen]. [Шифр вироби];

Запит (рис. 1.6) на основі виразу (1.5) дозволяє бачити щоденні планові витрати матеріалів.

Запит на рис. 1.7 визначає поставки відповідно до виразами (1.11) - (1.12)

SELECT Zapusk. Дата, Zapusk. [Шифр матеріалу], llf ([Zapusk]! [Шифр матеріалу] = "М2", llf ([Zapusk]! [Дата] Mod 4) = 0, [Postavka_sum]! [Середнє] * 4,0 ), llf {([Zapusk]! [Дата] Mod 3) = 0, [Postavka_sum]! [Середнє] * 3,0)) AS Постачання, llf ([Zapusk]! [Шифр матеріалу] = "M2", Ilf ({[Zapusk]! [Дата] Mod 3) = 0, [Postavka_sum]! [Середнє] * 4,0), llf (([Zapusk]! [Дата] Mod 3) = 1, [Postavka_sum]! [Середнє ] * 3,0)) AS Замовлення

Постачання матеріалів

Рис. 1.7. Постачання матеріалів

Зміна запасів матеріалів на складі

Рис. 1.8. Зміна запасів матеріалів на складі

FROM Zapusk INNER JOIN Postavka_sum ON Zapusk. [Шифр матеріалу] = Postavka_sum. [Шифр матеріалу];

Неважко бачити присутність в SQL-запиті програмного оператора умовного переходу

llf ([Zapusk]! [Шифр матеріалу] = "М2" ...,

вводиться додатково в процесі запиту. Це говорить про обмежені можливості мови QBE.

Запит на рис. 1.8 зміни запасів матеріалів формується вже з декількох попередніх запитів. Автоматизація їх виконання може бути досягнута або використанням макросів (як в даному випадку), або написанням програми мовою VBA.

Таким чином, ще раз підтверджений факт, що за простоту мови QBE доводиться "платити" різким обмеженням його можливостей.

На рис. 1.9 показаний звіт про зміну запасів матеріалів. Неважко бачити його відмінність від запиту (рис. 1.8), на основі якого побудований звіт.

На рис 1.10 представлені графіки зміни запасів матеріалів, побудовані на основі відповідного запиту. Відзначимо, що вони несуть більше інформації, ніж таблиці. Більше того, можна скористатися графіками для прийняття рішень про вибір величини поставок у виразі (1.10).

Таким чином, при традиційному підході мається пряма аналогія процедур ручного розрахунку за допомогою систем таблиць та комп'ютерного розрахунку з використанням БД. Хоча при сучасному підході ця аналогія має завуальований вигляд, вона дозволяє краще зрозуміти процеси, що мають місце в БД.

Звіт про рух матеріалів на складі

Рис. 1.9. Звіт про рух матеріалів на складі

Графік руху запасів матеріалів на складі

Рис. 1.10. Графік руху запасів матеріалів на складі

Нагадаємо, що при ручних операціях особливих складнощів не виникає. Вони починаються при зверненні до СУБД, оскільки кожна з них має систему структурних обмежень.

Структури різних СУБД мають як загальні, так і специфічні властивості. Загальні структурні властивості визначає модель даних (МД). Вона не залежить від змісту конкретно ї БД і відповідає на запитання "Які загальні структурні елементи і як вони пов'язані між собою?".

Відомі ієрархічні, мережеві, реляційні, об'єктно-орієнтовані та об'єктно-реляційні МД. В даний час найбільш широко використовуються реляційні та об'єктно-реляційні (гібридні) БД. Є тенденція до переходу до об'єктно-орієнтованим МД.

У реляційних МД структурними елементами є таблиці, а зв'язки між ними здійснюються через ключі. У таблицях виділяють рядки (записи) і стовпці (поля), які і беруть участь у різних перетвореннях. Для реляційних МД характерні наступні обмеження.

  • 1. Осередок (перетин стовпця і рядка) повинна бути атомарний. У неї не допускається поміщати дані у вигляді списків, підтаблиць і т. Д. Атомарність досягається використанням так званої першої нормальної форми.
  • 2. Лінійна структура таблиць. Якщо структура нелінійна, проводять відповідне перетворення, зване нормалізацією (побудова другої і третьої нормальних форм).
  • 3. Відсутня спадкування таблиць: не можна отримати з будь -або таблиці іншу шляхом видалення одних і додавання нових полів. Можна лише формувати нові таблиці-запити.

Названі обмеження відсутні в об'єктно-орієнтованих і розширених об'єктно-реляційних моделях даних.

Відмінності СУБД однієї моделі даних (зокрема, реляційних) можуть мати місце за такими характеристиками.

  • 1. За обсягом збережених даних - СУБД Access - до 1 Гбайта, СУБД InterBase - до 10 Гбайт, СУБД Oracle - понад 10 Гбайт. Іншими характеристиками можуть бути гранична кількість стовпців, рядків, кількість символів в поле.
  • 2. За призначенням - СУБД Access, Paradox, FoxPro спочатку призначалися для локального варіанту, тоді як СУБД SyBase, Informix, SQL Server, Interbase, Oracle - для роботи в мережі (віддаленого варіанти).
  • 3. По забезпечення цілісності даних, т. Е. Протидії внесення невірних даних (наприклад, вік тисячі років) за допомогою спеціальних програм-тригерів - в СУБД Access ці програми є вбудованими, тоді як в СУБД InterBase такі програми вводяться розробником БД.
  • 4. По орієнтації на рівень користувача - СУБД Access призначена насамперед для початківців користувачів, практично не знають мов програмування. Для роботи використовується візуальний мова програмування QBE, який припускає у СУБД наявність розвиненого інтерфейсу.

Разом з тим можливості такої СУБД при використанні тільки мови QBE, як показано раніше, різко обмежуються.

Так, у прикладі 1.1 реалізація виразів (1.11) і (1.12) вимагає найпростішого програмування (Ilf <умова>; <результат, якщо умова виконана>; <результат, якщо умова не виконана>).

Сказане відноситься і до виразів (1.13) - (1.15), для реалізації яких необхідно програмування або за допомогою макросів, або із застосуванням алгоритмічної мови Visual Basic for Applications (VBA).

У той же час СУБД InterBase розрахована на так званих "просунутих" користувачів, які знайомі з мовами програмування SQL і Object Pascal. Для цієї СУБД реалізація виразів виду (1.11) - (1.15) не викликає труднощів.

Таким чином, прикладні приклади для початківців користувачів проілюстровані на СУБД Access (гл. 15), а для "просунутих" - на СУБД InterBase в середовищі програмного продукту Delphi (гл. 15).

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

 
Якщо Ви помітили помилку в тексті позначте слово та натисніть Shift + Enter
< Попередня   ЗМІСТ   Наступна >
 
Дисципліни
Агропромисловість
Аудит та Бухоблік
Банківська справа
БЖД
Географія
Документознавство
Екологія
Економіка
Етика та Естетика
Журналістика
Інвестування
Інформатика
Історія
Культурологія
Література
Логіка
Логістика
Маркетинг
Медицина
Нерухомість
Менеджмент
Педагогіка
Політологія
Політекономія
Право
Природознавство
Психологія
Релігієзнавство
Риторика
Соціологія
Статистика
Техніка
Страхова справа
Товарознавство
Туризм
Філософія
Фінанси
Пошук