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

Konspekt_lektsiy_BD_amp_amp_SD

.pdf
Скачиваний:
28
Добавлен:
10.02.2016
Размер:
1.41 Mб
Скачать

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

21

 

 

рамках проекту Apollo.

Ця СУБД цікава тим, що на внутрішньому рівні в ній реалізовані 4 способи збереження (і, відповідно, методу доступу) даних, у яких виконувалась спроба спільного збереження екземпляра кореневого сегмента й екземплярів усіх його сегментів-нащадків:

HSAM — ієрархічний послідовний метод доступу (Hierarchical Serial Access Method).

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

воруч — праворуч).

HISAM — ієрархічний індексно-послідовний метод доступу (Hierarchical Index-Serial Access Method) відрізняється тим, що в ньому забезпечується індексний доступ до кореневих сегментів.

HDAM — ієрархічний прямий метод доступу (Hierarchical Direct Access Method). Екзе-

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

HIDAM — ієрархічний індексно-прямий метод доступу (Hierarchical Index-Direct Access Method) — спроба об’єднати переваги методів HISAM і HDAM. До кореневих сегментів забезпечується й індексний, і прямий доступ, а кожний з них містить покажчики на сегментинащадки.

На відміну від мережевої моделі для реалізації відображення M:N тут виконується дублювання записів (рис. 34):

студент

S1

S2

 

S3

S1

S2

S3

 

 

 

 

 

 

 

 

дисципліна

d1

d2

d3

d4

d1

d2

d1 d3

d4

Рис. 34. Приведення зв’язків M:N у відповідність до вимог ієрархічної моделі

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

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

Наприклад: сутність „дисципліна“

Назва

Кількість годин

Семестр

Іспит

Фізика

54

1

Є (Т)

Фізика

54

2

Є (Т)

ОТ і програмування

72

3

Немає (F)

Асемблер

36

3

Немає (F)

Асемблер

36

4

Є (Т)

Множина усіх можливих значень якого-небудь атрибута зветься доменом. Наприклад: атрибуту „Назва“ сутності „Дисципліна“ відповідає домен, що містить назви всіх дисциплін, що викладаються у вузі; до домену, що відповідає кількості годин, входять фіксовані значення 18, 36, 54, 72, …, 180...; семестру відповідає домен з натуральним рядом чисел 1-12; а домен, з якого беруться значення для атрибута „Іспит“ включає тільки 2 значення Є/Немає

(True/False).

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

22

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

 

 

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

ном.

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

Під відношенням розуміється деяка підмножина декартового добутку списку доменів.

Зцього визначення випливають 2 висновки:

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

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

}та D2 ={a,b,c} дає таб- D1 D2

лицю з двома стовпцями, яка і є відношенням:

 

 

1

a

Рядок такої таблиці називається кортежем відношення.

 

1

b

Отже, на різних рівнях архітектури СБД у реляційній моделі використову-

 

1

c

ються такі терміни:

 

 

 

2

a

 

 

 

 

2

b

Концептуальна схема

Зовнішня схема

Внутрішня схема

 

2

c

Відношення

Таблиця

Файл або таблиця

 

 

 

 

 

 

Кортеж

Рядок

Запис

 

 

 

Атрибут

Стовпець

Поле

 

 

 

Множину імен атрибутів називають схемою відношення: REL (A1 , A2 ,, An ). Число цих

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

Незабаром після появи ідея (і теорія) реляційних баз даних стала популярна серед розроблювачів СУБД. Однак зробити реляційну СУБД виявилося непросто. Склалася неоднозначна ситуація, коли після деяких удосконалень одні фірми стали називати свої розробки реляційними (іноді просто додаючи ‘/R’ до імені своєї СУБД), а інші відмовлятися від створення реляційних СУБД у силу складності задачі. Для того щоб внести ясність в оцінку розробок одних фірм і більш виразно сформулювати мету, до якої розроблювачам потрібно прагнути, для інших (або тих же самих) фірм, Е. Кодд, автор реляційного підходу, наприкінці 70-х рр. опублікував свої 12 правил відповідності довільної СУБД реляційній моделі (пізніше з’явилися 12 правил К. Дейта оцінки відповідності системи розподіленій СУБД, а на початку 90-х — 12 правил E.F. Codd & Assocіates відповідності системи системам оперативної аналітичної обробки даних, тобто OLAP-системам), доповнивши основні поняття реляційних баз даних визначеннями, важливими для практики. Нижче наводяться ці правила разом з загальним положенням, що розуміється і доповнює їх.

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

1.Інформаційне правило. Вся інформація, що зберігається в реляційній базі даних, повинна бути явно, на логічному рівні, представлена єдиним чином: у вигляді значень у R- таблицях.

2.Правило гарантованого логічного доступу. До кожного існуючого у реляційній базі атомарного значення повинний бути гарантований доступ за допомогою зазначення імені R-таблиці, значення первинного ключа й імені стовпця.

3.Правило наявності значення (missing information). У цілком реляційній СУБД повинні бути спеціальні індикатори (відмінні від порожнього символьного рядка або рядка з

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

23

 

 

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

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

5.Правило повноти мови роботи з даними. Скільки б багато в СУБД ні підтримувалося мов і режимів роботи з даними, повинна бути принаймні одна мова, яка виражається у вигляді командних рядків у деякому зручному синтаксисі, який би дозволяв формулювати:

визначення даних;

визначення правил цілісності;

маніпулювання даними (у діалозі і з програми);

визначення виведених таблиць (у тому числі можливості їхньої модифікації);

визначення правил авторизації;

границі транзакцій.

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

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

8.Правило фізичної незалежності. Діалогові оператори і прикладні програми на логічному рівні не повинні страждати від яких-небудь змін у внутрішнім збереженні даних або в методах доступу СУБД.

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

10.Правило збереження цілісності. Діалогові оператори і прикладні програми не повинні змінюватися при зміні правил цілісності в БД (що задаються мовою роботи з даними і зберігаються у системному каталозі).

11.Правило незалежності від розподіленості. Діалогові оператори і прикладні програми на логічному рівні не повинні страждати від здійснюваного фізичного рознесення даних (якщо спочатку СУБД працювала з нерозподіленими даними) або перерозподілу (якщо СУБД дійсно розподілена).

12.Правило непорушення реляційної мови. Якщо в реляційній СУБД є мова низького рі-

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

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

Реляційна алгебра

Над відношеннями необхідно вміти виконувати операції, що забезпечують побудову

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

24

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

 

 

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

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

У1972 р. Кодд визначив 8 операцій реляційної алгебри, розподілених на 2 групи:

1.Традиційні операції над множинами, модифіковані з урахуванням того, що операндами є відношення: декартовий добуток, об’єднання, перетинання, різниця.

2.Спеціальні реляційні операції: вибірка, проекція, з’єднання і розподіл.

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

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

що результат кожної операції над відношенням (тобто реляційної операції) також є відношенням.

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

дені вирази. Отже:

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

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

(зчепленням) кожного кортежу відношення R з кожним кортежем відношення S:

R ×S ={r. s

 

r R, s S}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приклад

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

B

C

 

D

E

 

A

B

C

D

E

 

 

X

1

a

 

10

f

 

x

1

a

10

f

 

R

Y

2

a

S

5

e

×

x

1

a

5

e

 

Z

3

a

8

d

 

 

 

R S

 

 

W

4

b

 

4

c

 

w

4

b

4

c

 

 

W

5

b

 

6

b

 

w

4

b

6

b

 

 

W

6

b

 

3

a

 

 

 

 

 

 

 

 

 

 

 

 

w

6

b

3

a

 

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

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

2. Проекція. Нехай r — кортеж з відношення R; r[M] — частина цього кортежу, що містить тільки значення атрибутів, які входять до підмножини М схеми відношення. Тоді проек-

цією R на М буде відношення, що складається з кортежів значень тих атрибутів, які

входять до множини М:

R[M ]={r[M ] r R}

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

25

 

 

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

R[C]

C

A

C

a

x

a

 

b

y

a

 

R[A,C]

z

a

 

 

w

b

 

 

w

b

 

 

w

b

Ця операція також не має прямого аналога в SQL, однак її можна виконати, наприклад, за допомогою найпростішого варіанта команди SELECT:

SELECT [DISTINCT] C FROM R;

SELECT [DISTINCT] A,C FROM R;

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

3. Об’єднання. Це операція одержання відношення, складеного з кортежів, що належать

або відношенню R, або відношенню S, або обом:

R S = {r r R r S}

Очевидно, що обидва вхідних відношення повинні мати сумісні типи атрибутів. При-

клад

 

1

a

 

2

a

 

3

a

R[B,C] S

4

b

5

b

6

b

 

 

10

f

 

 

 

 

4

c

З відношення S необхідно забрати 2 останні рядки.

Уданому прикладі не видно, яка буде схема результуючого відношення. Тому багато мов даних, у тому числі, деякі діалекти SQL, зокрема, PostgreSQL висувають ще більш жорстку вимогу — вихідні відношення повинні мати однакові схеми. Тоді і результат матиме таку

жсхему.

УSQL об’єднання виконує команда UNION:

SELECT B, C FROM R

UNION

SELECT * FROM S;

4.Різниця. Це операція одержання відношення, що складається з кортежів відношення R,

які не входять до відношення S:

R S = {r r R r S}

Вимоги до атрибутів тут такі ж, що і для операції об’єднання.

 

1

a

R[B,C]S

2

a

Приклад:

4

b

Прямого аналога в стандартному SQL немає, однак, біль-

 

шість діалектів мають команду MINUS або SUBTRUCT:

 

5

b

 

 

 

 

 

 

 

 

 

 

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

26

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

 

 

SELECT B, C FROM R MINUS

SELECT D, E FROM S;

В PostgreSQL цю операцію реалізує команда EXCEPT — виключення, яка має аналогічний формат.

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

GF (R, c )= {r r R F (r [M ], c ), c = const c S}

F – це будь-яка функція, частіше, операція порівняння. Тому порівнювані значення повинні бути визначені в тому ж самому домені, а F повинна мати сенс для цього домена. Наприклад, безглуздо порівнювати на більше (<) чи менше (>) значення атрибута „колір“, хоча деякі СУБД допускають і це (наприклад, залежно від порядку проходження при визначенні).

У SQL операція обмеження реалізована у вигляді оператора WHERE.

 

1)

G= (R[A],' z '):

 

 

 

 

SELECT * FROM R

 

 

 

 

A

B

C

 

WHERE A = ‘z’;

z

3

a

2)

G(R[B], S [D]) :

 

 

 

A

B

C

 

SELECT A, B, C FROM R, S

 

x

1

a

 

WHERE R.B <> S.D;

 

 

 

 

y

2

a

У другому прикладі наведений ще один цікавий елемент SQL префікс імені поля у вигляді імені таблиці, відокремленого крапкою: ‘R.’ і ‘S.’. Префікси потрібні для уточнення імен полів, якщо вони співпадають (однакові) в різних таблицях. Якщо імена атрибутів різні, префікси можна опустити.

6. Перетин. Результатом цієї операції є відношення, складене з кортежів, що належать і відношенню R, й відношенню S:

R S ={r r R r S}

Вимоги до атрибутів співпадають з вимогами операцій об’єднання та різниці. Приклад:

R[B,C]S

3

a

6

b

 

В SQL перетин виконує команда INTERSECT:

SELECT B, C FROM R

INTERSECT SELECT * FROM S;

яка в PostgreSQL має найжорсткіші вимоги до схем відношень

Крім того, цю операцію можна виразити через покрокове виконання операції різниці:

R S = R (R S )

7. Ділення. Ця операція має справу з відношеннями, в яких схема одного S (M ) є правильною підмножиною схеми іншогоR (N.M ). Наприклад S (D, E ) і R (A, B,C ), де B ~ D і

C ~ E . Результатом операції ділення є відношення, схема якого є схемою відношення R за винятком схеми відношення S, тобто R[N ], і яке складене з таких кортежів від-

ношення R, що для всіх кортежів відношення S у відношенні R є кортежі з однаковими значеннями атрибутів з множини M:

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

27

 

 

 

R S ={r [N ]

 

 

s S r R

 

r [M ]= s},

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

де M — схема відношення S, N.M — схема відношення R.

 

 

 

 

Тобто r [N ] — частина кортежу відношення R, яка є однаковою для всіх кортежів від-

ношення S. Для ілюстрації прикладу додамо до відношення R ще один кортеж:

 

 

 

A

B

 

C

 

 

 

 

 

 

 

 

 

 

x

1

 

a

 

 

 

 

 

 

 

 

 

R

y

2

 

a

 

 

R

 

 

 

 

z

3

 

a

 

тоді:

A

 

 

 

 

 

 

 

 

 

 

G= (S [E],6 3)

 

 

 

 

 

w

4

 

b

 

 

w

 

 

 

 

w

5

 

b

 

 

 

 

 

 

 

 

 

 

w

6

 

b

 

 

 

 

 

 

 

 

 

 

w

3

 

a

 

 

 

 

 

 

 

 

 

Зверніть увагу, що в цьому прикладі попередньо виконано операцію ви-

 

 

D

E

бірки з відношення S, завдяки якій отримано таку таблицю:

 

 

 

 

6

b

У відношенні R є тільки одне значення w атрибута A, що складає під-

3

a

множину N схеми відношення, яке утворює кортежі відношення R шляхом

конкатенації з кожним з кортежів відношення-дільника (значення z — тільки з одним з цих

кортежів).

 

 

 

 

 

 

 

В реальних діалектах SQL для виконання цієї операції немає відповідної команди, хоча

в

стандарті

її

наведено

як

команду

DIVIDE

або

DIVIDE BY:

 

 

 

 

 

 

R DIVIDE S;

Проте її реалізація можлива шляхом комбінації операцій декартового добутку, різниці

та проекції:

R S = R[N ]((R[N ]×S )R)[N ].

 

 

 

 

 

 

 

 

 

 

 

 

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

ристовується настільки часто, що має своє відображення в більшості

 

 

 

 

версій SQL: операція з’єднання. Для представлення цієї операції відра-

A

В

С

D

зу розглянемо приклад.

x

1

a

3

 

SELECT

R.A, R.B, R.C, S.D FROM R, S

y

2

a

3

 

 

WHERE R.C = S.E;

z

3

a

3

 

 

 

 

w

4

b

6

A

B

C

SELECT A, B, C FROM R

 

 

 

 

w

5

b

6

z

3

A

WHERE C = E AND B = D;

w

6

b

6

w

6

B

 

 

 

 

 

До появи стандарту SQL/92 інструкції такого виду були єдиним варіантом побудови з’єднання. Виконання цієї операції складається з таких кроків:

1. Побудова декартового добутку відношень R і S:

R ×S

2. Виконання вибірки тих кортежів добутку, у яких збігаються значення підмножин M і N

атрибутів (С та Е — у першому прикладі, С та Е, і В та D — у другому тощо):

G= ((R ×S )[M ],(R ×S )[N ])

3. Проекція на всі атрибути добутку за винятком однієї з підмножин M чи N:

(G= ((R ×S )[M ],(R ×S )[N ])) REL(R).(REL(S )N )

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

28

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

 

 

Команда JOIN, додана в SQL/92, працює тільки в тому випадку, якщо схеми з’єднання відношень мають однакові підмножини атрибутів (M = N). Тобто, у відношенні S замість D, E буде записане В та С.

R JOIN S USING C;

Це з’єднання по атрибуту С.

З’єднання за всією такою підмножиною зветься природним (без однакових атрибутів): R NATURAL JOIN S;

Проте в такому вигляді операція з’єднання не реалізована ні в яких СУБД. Замість неї використовуються її 4 розширення: внутрішнє, а також ліве, праве та повне зовнішнє з’єднання.

Наведене вище визначення цілком відповідає внутрішньому з’єднанню.

Будь-яке зовнішнє з’єднання містить в собі кортежі внутрішнього з’єднання, а також ті кортежі одного чи обох відношень, для яких не виконано умову другого шагу алгоритму — вибірки (тобто немає „відповідного“ кортежу в іншому операнді цієї операції) .

Таким чином, множина кортежів результуючого відношення лівого зовнішнього з’єднання визначиться, як об’єднання множин кортежів результату внутрішнього з’єднання та кортежів лівого (першого) відношення R, доповнених, точніше, зціплених кортежами, які мають порожні значення атрибутів другого відношення S:

{r.s G= ((R ×S )[M ],(R ×S )[N ])}

{r.eS r R & R[M ]S [N ],eS порожній кортеж зі схемою S}.

Аналогічно множина кортежів результуючого відношення правого зовнішнього з’єднання визначиться, як об’єднання множин таких кортежів:

{r.s G= ((R × S )[M ], (R × S )[N ])}

{eR .s s S & S [N ]R [M ], eR порожній кортеж зі схемою R}

Повне зовнішнє з’єднання визначиться, як об’єднання всіх описаних вище множин кор-

тежів: {r.s G= ((R ×S )[M ],(R ×S )[N ])}

{r.eS r R & R[M ]S [N ],eS порожній кортеж зі схемою S}

{eR .s s S & S [N ]R[M ],eR порожній кортеж зі схемою R}

Приклади цих видів з’єднань будуть наведені у відповідному розділі при описі їхньої реалізації засобами мови SQL.

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

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

29

 

 

Проектування БД

Насамперед відзначимо найбільш важливі цілі проектування БД [Ошибка! Источник ссылки не найден.].

1. Можливість збереження всіх необхідних даних у БД.

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

2. Виключення надмірності даних.

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

 

A

B

C

 

x

1

a

R

y

2

a

z

3

a

 

w

4

b

 

w

5

b

 

w

6

b

У цьому відношенні значення ‘а’ і ‘b’ атрибута ‘С’ повторюються (дублюються). Однак якщо видалити значення ‘а’, наприклад, з першого кортежу, то відновити цей кортеж ми вже не зможемо. Якщо ж видалити значення ‘b’ з одного чи навіть з усіх, крім одного, кортежів, то його можна відновити за значенням ‘w’ атрибута А, і навпаки. У першому випадку ми маємо необхідне дублювання, у другому — надлишкове.

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

надлишкові дані.

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

A

B

x

1

y

2

z

3

w

4

w

5

w

6

A

C

x

a

y

a

z

a

w

b

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

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

На вирішення цієї проблеми орієнтована і третя мета проектування: 3. Нормалізація відношень.

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

них форм.

Розглянемо відношення R, представивши його таким чином:

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

30

М. Г. Глава. Технологія проектування і адміністрування баз даних та сховищ даних

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

АВ

 

 

С

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

В

 

 

 

 

 

 

x

 

1

 

а

 

 

 

 

y

 

2

 

 

 

 

 

 

 

 

 

 

R’

 

z

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

В

 

 

 

 

 

 

w

 

4

 

в

 

 

 

 

w

 

5

 

 

 

 

 

 

 

 

 

 

 

 

w

 

6

 

 

 

 

 

 

 

 

 

 

 

 

З математичної точки зору відношення R’ цілком коректне: воно складається з двох кортежів, атрибут АВ яких набуває значень, що, у свою чергу, дорівнюють деяким відношенням. Значення же атрибута C атомарні, тобто неподільні.

Відношення, усі значення якого атомарні, називається нормалізованим або представленими у першій нормальній формі: 1НФ. У даному випадку ці два поняття є синонімами.

Отже, R і R’ — це, за суттю, однакові відношення, тільки R — нормалізоване, а R’ — ненормалізоване.

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

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

4. Зведення числа збережених у БД відношень до мінімуму.

Нормалізація відношень

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

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

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

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

Нехай дане відношення R, а Х та Y — правильні підмножини його схеми відношення.

Говорять, що Y функціонально залежить від Х ( X Y [читається: Х функціонально ви-

значає Yчи Х стрілка Y“]) тоді і тільки тоді, коли для кожного припустимого значення множини Х існує рівно одне значення множини Y.

Інакше кажучи, якщо два кортежі відношення R збігаються за значенням Х, то вони збігаються за значенням Y. Ліву і праву частини Ф3 називають детермінантом і залежною час-

Кафедра економічної кібернетики та інформаційних технологій. Одеський національний політехнічний університет

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]