Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Інформаційно-комунікаційне забезпечення фінансової діяльності навчальний посібник

.pdf
Скачиваний:
31
Добавлен:
29.03.2016
Размер:
5.31 Mб
Скачать

Агрегат типу "повторювана група" відповідає сукупності векторів даних. Наприклад, агрегат "Відсотки за кредит" відповідає типу повторювана група з кількістю повторень 12 (рис. 2.10).

Адреса

Місто

 

Вулиця

 

Будинок

 

Квартира

 

 

 

 

 

 

 

 

 

Рис. 2.9. Приклад агрегату

 

 

 

 

 

 

Зарплата

 

 

 

 

 

 

 

 

 

Місяць

 

 

 

Сума

 

 

 

 

 

 

 

 

 

Рис. 2.10. Приклад агрегату типу "повторювана група"

Запис – це складовий агрегат, який не входить до складу інших агрегатів. Запис характеризується структурою взаємозв'язків складових його елементів і агрегатів.

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

(рис. 2.11).

Угода

 

Дата

 

Кредит

 

 

 

 

 

 

 

 

 

 

 

 

Число

 

Місяць

 

Рік

 

Назва

 

Відсоток

 

Термін

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.11. Ієрархічна модель даних

Об'єкти, пов'язані ієрархічними відносинами, утворюють орієнтований граф (перевернене дерево), вигляд якого показаний на рис. 2.12.

До основних понять ієрархічної структури належать рівень, елемент (вузол), зв'язок. Вузол – це сукупність атрибутів даних, що описують певний об'єкт. На схемі ієрархічного дерева вузли подані вершинами графа. Кожен вузол на більш низькому рівні пов'язаний тільки з одним вуз-

51

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

одна точка прямого доступу

Рис. 2.12. Графічне зображення ієрархічної структури БД

Залежні (підпорядковані) вузли перебувають на другому, третьому і т. д. рівнях. Жоден елемент не має більше від одного вихідного. Кожен з них може бути пов'язаний з одним або декількома елементами на більш низькому рівні. Вони називаються породженими. Кількість дерев у базі даних визначається кількістю кореневих записів. До кожного запису бази даних існує тільки один (ієрархічний) шлях від кореневого запису [23; 60].

Мережева модель даних

Концепція мережевої моделі даних пов'язана з ім'ям Ч. Бахмана. Мережева модель складається з набору записів і набору зв'язків між цими записами, точніше, з набору екземплярів записів заданих типів (з допустимого набору типів) і набору примірників із заданого набору типів зв'язків. У мережевих моделях будь-який об'єкт може підпорядковуватися декількам об'єктам (рис. 2.13).

 

Банк

 

 

 

 

Філіал

 

 

 

Банк складається з філій

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Працівники

 

 

 

Банк має працівників

 

 

 

 

Філії мають працівників

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.13. Мережева модель даних

52

Крім основних структур даних, у мережевій моделі використовується поняття "набір". Набором називається дворівневий граф, який пов'я- зує відношенням "один-до-багатьох" два типи запису.

Набори бувають декількох видів:

1)з одними й тими ж типами записів, але різними типами наборів;

2)набори з трьох записів і більше, в тому числі зі зворотним зв'яз-

ком;

3) сингулярний набір (тільки один екземпляр). У такого набору немає природного власника і в якості нього виступає система. Надалі такі набори можуть отримати власника.

Набір фактично відображає ієрархічний зв'язок між двома типами записів. Батьківський тип запису в даному наборі називається власником набору, а дочірній тип запису – членом того ж набору.

Для будь-яких двох типів записів може бути задана будь-яка кількість наборів, які їх пов'язують. Фактично наявність подібних можливостей дозволяє промоделювати ставлення "багато-до-багатьох" між двома об'єктами реального світу, що вигідно відрізняє мережеву модель від ієрархічної. У рамках набору можливий послідовний перегляд примірників членів набору, пов'язаних з одним екземпляром власника набору.

Між двома типами записів може бути визначена будь-яка кількість наборів: наприклад, можна побудувати два взаємопов'язаних набори. Суттєвим обмеженням набору є те, що один і той же тип запису не може бути одночасно власником і членом набору.

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

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

Перевагами баз даних, заснованих на ієрархічній і мережевий моделях, є їх компактність і, як правило, висока швидкодія їх обробки. До недоліків можна віднести відсутність універсальності програмних засобів обробки і високий ступінь залежності від конкретних даних [23; 60; 102].

53

прямий доступ до будь-якого об'єкта

Рис. 2.14. Графічне зображення мережевої структури

Реляційна модель даних

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

Реляційна модель орієнтована на організацію даних у вигляді двовимірних таблиць. Кожна реляційна таблиця становить двовимірний масив і має наступні властивості:

кожен елемент таблиці – один елемент даних; усі стовпці в таблиці однорідні, тобто всі елементи в стовпці мають

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

порядок проходження рядків і стовпців може бути довільним. Приклад. Реляційною таблицею (або відношенням) можна подати

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

тежам або записам, а стовпці – атрибутам відносин, доменам, полям. Поле "Табельний номер" є первинним ключем. Якщо записи од-

нозначно визначаються значеннями декількох полів, то така таблиця ба-

зи даних має складений ключ.

54

Табельний

Прізвище

Ім'я

По батькові

Дата

Назва філії

номер

народження

 

 

 

 

 

 

 

 

 

 

001111

Грищенко

Наталія

Петрівна

05.10.67

Філія № 1

 

 

 

 

 

 

001112

Степанов

Семен

Максимович

22.03.54

Філія № 1

 

 

 

 

 

 

001211

Литвин

Юлія

Олегівна

01.04.80

Філія № 2

 

 

 

 

 

 

Рис. 2.15. Приклад реляційної таблиці

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

Приклад. На рис. 2.16 показано приклад реляційної моделі, побудованої на основі відносин: СЕСІЯ, СТУДЕНТ, ГУРТОЖИТОК, ПРОЖИВАННЯ.

ПРАЦІВНИК: табельний номер, ПІБ

табельний

номер

ТАБЕЛЬ: табельний номер, період,

відпрацьований час

ФІЛІЇ:

код філії, назва філії

код філії

ШТАТНИЙ РОЗПИС: код філії, код посади, назва посади, оклад

табельний номер, період

ЗАРОБІТНА ПЛАТА: період табельний номер, код філії, код посади, нараховано

код посади, код філії

Рис. 2.16. Приклад реляційної моделі

ПРАЦІВНИК (табельний номер, прізвище, ім'я, по батькові); ФІЛІЇ (код філії, назва філії); ТАБЕЛЬ (табельний номер, період, відпрацьований час)

ШТАТНИЙ РОЗПИС (код філії, код посади, назва посади, оклад); ЗАРОБІТНА ПЛАТА (табельний номер, код посади, код філії, період,

нараховано).

55

Сутності ПРАЦІВНИК і ТАБЕЛЬ мають спільні ключі (табельний номер), що дає можливість легко організувати зв'язок між ними. Сутність ЗАРОБІТНА ПЛАТА має складений ключ (табельний номер, код посади, код філії, період), таблиці ТАБЕЛЬ і ШТАТНИЙ РОЗПИС мають первинний ключ (період та код посади) і містять зовнішні ключі (табельний номер і код філії), які забезпечують її зв'язок із сутностями ПРАЦІВНИК й ФІЛІЇ.

Реляційна модель описує, які дані можуть зберігатися в реляційних базах даних, а також способи маніпулювання такими даними. У спрощеному вигляді основна ідея реляційної моделі полягає в тому, що дані повинні зберігатися в таблицях і тільки в таблицях [60].

2.4. Поняття нормалізації відношення

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

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

Мета нормалізації: скоротити надмірність збережених даних. Переваги: економія обсягу використовуваної пам'яті; зменшення

витрат на багаторазові операції оновлення надлишкових копій; усунення можливості виникнення суперечностей через зберігання в різних місцях відомостей про одні й ті ж об'єкти.

Нормалізація таблиць бази даних – перший крок на шляху до проектування структури реляційної бази даних. Теорія реляційних баз даних була розроблена в кінці 70-х років ХХ століття. Відповідно до неї, виділяються шість нормальних форм, п'ять з яких так і називаються: перша нормальна форма, друга нормальна форма, третя нормальна форма, нормальна форма Бойса – Кодда, четверта нормальна форма, п'ята нормальна форма. База даних вважається нормалізованою, якщо її таблиці подані як мінімум в третій нормальній формі. У нормалізованій базі

56

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

Нормалізація відношень – це формальний апарат обмежень на формування відношень (таблиць), що дозволяє усунути дублювання, забезпечує несуперечливість збережених у базі даних, зменшує трудовитрати на ведення (уведення, коректування) бази даних [23].

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

Основні властивості нормальних форм:

кожна наступна нормальна форма в певному сенсі краща від попередньої;

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

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

1NF (1НФ) – перша нормальна форма: таблиця (відношення) пе-

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

Складені атрибути, на відміну від простих, – це атрибути, що складаються з декількох простих атрибутів.

Багатозначні атрибути, на відміну від однозначних, – це атрибути, що мають різні значення.

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

 

 

 

Таблиця 2.1

Складені та багатозначні атрибути

 

 

 

 

 

Атрибут

Простий

 

Складений

 

 

 

 

Однозначний

Електронна пошта

 

Адреса

 

 

 

 

Багатозначний

Електронні пошти

 

Адреси

 

 

 

 

57

2NF (2НФ) – друга нормальна форма: відношення перебуває в другій нормальній формі, відносно заданої множини функціональних залежностей тоді й тільки тоді, коли воно знаходиться в 1НФ і кожен неключовий атрибут функціонально повністю залежить від кожного ключа.

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

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

Функціональна залежність – це зв'язок між атрибутами. Якщо припустити, що нам відоме значення одного атрибута, тоді можна знайти значення іншого атрибута. Наприклад, якщо нам відомий номер рахунка клієнта, тоді можна визначити стан цього рахунка. У такому разі можна сказати, що атрибут "Стан_Рахунка_Клієнта" функціонально залежить від атрибута "Номер_Рахунка_Клієнта". Інакше кажучи, якщо відоме значення X, можна визначити значення Y.

Функціональну залежність R.Х. → R.Y. називають повною, якщо атрибут Y не залежить функціонально від будь-якої точної підмножини X (точною підмножиною множини X називають будь-яку її підмножину, яка не збігається з множиною X).

3NF (3НФ) – третя нормальна форма: відношення перебуває в

3НФ, якщо воно перебуває в 2НФ і кожен неключовий атрибут нетранзитивно залежить від первинного ключа.

Функціональна залежність X Z називається транзитивною, якщо існує такий атрибут Y, який має функціональні залежності X Y і Y Z, а функціональна залежність Y X Y Z відсутня. Приклад транзитивної залежності наведено на рис. 2.17.

Виконувати нормалізацію баз даних до 3НФ теоретично необхідно, проте не завжди виправдано. Наприклад , для усунення всіх можливих залежностей між атрибутами відношення ФІЛІЯ доведеться створити окремі таблиці для зберігання відомостей про міста, поштові індекси, вулиці та будь-які інші відомості, які можуть дублюватися в декількох записах. З теоретичної точки зору нормалізація бажана. Однак значне збільшення числа маленьких відношень може привести до зниження продук-

58

тивності СУБД або вичерпання пам'яті й числа дескрипторів відкритих файлів.

Працівник

Табельний номер * Прізвище Ім'я По батькові Дата прийому Філія банку Керівник

Працівник

Табельний номер *

Прізвище

Ім'я

По батькові

Дата прийому

Філія банку

Філія банку

Філія * Керівник

Рис. 2.17. Приклад "розщеплення" структури

інформаційного об'єкта

Виконувати нормалізацію до 3НФ може бути доцільно тільки для даних, які часто змінюються. Якщо при цьому збережуться залежні атрибути додаток проектуеться так, щоб при зміні одного з цих атрибутів користувач мав перевірити всі пов'язані поля.

Запитання і завдання для самоконтролю

Запитання

1.Наведіть класифікацію бази даних (БД).

2.Що таке модель даних та структура даних моделі?

3.Які типи відношень визначають зв'язки між інформаційними об'є-

ктами?

4.Опишить фізичну та логічну структури даних.

5.Охарактеризуйте інфологічну модель даних.

6.Що означає нормалізація реляційних таблиць даних?

7.Які функціональні залежності існують?

8.У чому полягає сутність транзитивної функціональної залежнос-

ті?

9.Що означає поняття "неключовий атрибут"?

10.Назвіть основні властивості нормалізації.

11.У чому полягає сутність зведення реляційного відношення до

1 НФ?

59

12.У чому полягає сутність зведення реляційного відношення до

2НФ?

13.У чому полягає сутність зведення реляційного відношення до

ЗНФ?

14.Назвіть переваги нормалізованої бази даних.

Тести

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

д) структурна.

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

а) першій нормальній формі (1NF); б) другій нормальній формі (2NF); в) третій нормальній формі (3NF);

г) нормальній формі Бойса-Кодда (BCNF); д) четвертій нормальній формі (4NF)?

3.Приклад сутності:

а) фірма; б) конкретна людина;

в) прізвище; г) подія;

д) ідентифікаційний номер. 4. Зв'язок – це:

а) асоціація, встановлена між кількома сутностями; б) асоціація, встановлена між кількома атрибутами; в) асоціація, встановлена між кількома моделями.

5. Які існують типи зв'язків між сутностями:

а) "один-до-багатьох", "багато-до-багатьох", "один-до-одного"; б) "багато-до-багатьох", "багато-до-одного", "один-до-кількох"; в) "один-до-одного", "один-до-двох", "один-до-трьох"?

60