Декомпозицій БЕЗ ВТРАТ І ФУНКЦІОНАЛЬНІ ЗАЛЕЖНОСТІ

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

Як приклад розглянемо вже знайому змінну відносини постачальників S з атрибутами s #, STATUS і CITY (для спрощення завдання атрибут SNAME в даному випадку ігнорується) На рис 123 показаний приклад значень даних в цій змінній відносини і вказані два можливих варіанти її декомпозиції: а і б

Рис 123 Приклад значення змінної відносини S і два можливих варіанти її

Уважно ознайомившись із запропонованими варіантами декомпозиції, можна помітити дві особливості

1 У випадку а інформація не втрачається, оскільки змінні відносини SST і SC все ще містять дані про те, що постачальник з номером S3 має статус 30 і знаходиться в Парижі (Paris), а постачальник з номером S5 має статус 30 і нахо диться в Афінах (Athens) Інакше кажучи, перший декомпозиція дійсно яв ляется декомпозицией без втрат

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

Чому ж вийшло так, що одна декомпозиція була проведена без втрати, а інша – з втратою інформації Насамперед слід зазначити, що процес, який досі називався декомпозицией, насправді є операцією проекції, тобто кожна з показаних на даному малюнку змінних відносини – SST, SC і STC – насправді є проекцією початкової змінної відносини S Таким чином, оператор декомпозиції у цій процедурі нормалізації фактично є оператором проекції

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

Сподіваємося, що використання зазначеної скороченою формулювання не приведе до плутанини

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

змінних відносини SST і SC вихідна змінна відносини S отримана НЕ буде, а це означає, що деяка інформація буде утрачена2 Інакше кажучи, оборотність означає, що для отримання початкової змінної відносини досить застосувати до її проекціям операцію зєднання, тобто вихідна змінна відносини дорівнює зєднанню її проекцій Якщо операцією декомпозиції в процедурі нормалізації є операція проекції, то зворотною операцією (назвемо її рекомпозиції) повинна бути операція зєднання

Виходячи зі сказаного вище, можна задати наступне цікаве питання Нехай R1 і R2 є проекціями деякої змінної відношення R, що містять всі атрибути змінної відносини R Які умови повинні бути дотримані для того, щоб при зворотному зєднанні проекцій R1 і R2 можна було гарантувати отримання

2 Точніше, в початкової змінної відносини S разом з усіма кортежами міститимуться фіктивні кортежі, оскільки при зворотній операції ніколи не вдасться отримати змінну відносини, яка була б менше вихідної змінної відносини S{Вправа Спробуйте довести це твердження) А оскільки не існує загального методу розрізнення фіктивних і справжніх кортежів, інформація в цьому випадку дійсно буде загублена

вихідної змінної відносини R Саме для отримання відповіді на це питання необхідно звернутися до функціональних залежностях У розглянутому прикладі змінна відносини S задовольняє представленому нижче Непріводімие безлічі функціональних залежностей

S#  →

STATUS S#

→ CITY

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

{S #, STATUS} і {S #, CITY} І те, що це не збіг, а закономірність, підтверджується теоремою Хіта (Heath) [124]

■&nbsp Теорема Хіта Нехай R {А, в, С} є змінною відносини, де А, в і с – безлічі атрибутів цієї змінної відносини Якщо R задовольняє функціональної залежності А → в, то R дорівнює зєднанню її проекцій по атрибутам {А, В} І {А, С}

Якщо прийняти, що А-це атрибут s #, в – це атрибут STATUS, а с – це атрибут CITY, то дана теорема підтверджує, як зазначалося вище, що змінна відносини S може бути розбита за допомогою операції декомпозиції на проекції по атрибутах (S #, STATUS} і {S #, CITY} без втрати інформації Водночас вже відомо, що змінна відносини S не може бути розбита без втрати інформації на проекції по атрибутах {S #, STATUS} і {STATUS, CITY} Теорема Хіта не дає пояснення, чому так проісходіт3 Однак інтуїтивно ясно, що при такій декомпозиції втрачається одна з функціональних залежностей, тобто функціональна залежність S # → STATUS все ще представлена ​​(завдяки проекції по атрибутах {S #, STATUS}), а функціональна залежність S # → CITY втрачена

На закінчення можна відзначити, що декомпозиція змінної відношення R на проекції Rl, R2, .., Rn виконується без втрат, якщо R дорівнює зєднанню Rl, R2,

…,   Rn

Примітка Ймовірно, з точки зору практики слід було б висунути додаткову вимогу, щоб у зєднанні обовязково були потрібні всі проекції R1, R2, .., Rn Це дозволяє гарантувати, що вдасться уникнути певної надмірності, яка могла б виникнути в іншому випадку Наприклад, навряд чи варто розглядати декомпозицію змінної відносини S на проекції (скажімо) за атрибутами

{S #}, {S #, STATUS} і {S #, CITY} як якісну декомпозицію без втрат, хоча S зрештою стає рівною зєднанню цих трьох проекцій Для простоти надалі будемо вважати, що це додаткове вимога завжди залишається в силі (якщо явно не вказано інше)

3 Справа в тому, що ця теорема сформульована у виразах якщо .., то ..”, а не тоді і тільки тоді, коли ..” (Див упр 121,

наведене наприкінці глави) Більш сувора формулювання теореми Хіта будетпредставленавразделе132главы13

Глава 12 Подальша нормалізація: форми 1НФ, 2НФ, ЗНФ і НФБК465

Додаткові відомості про функціональні залежностях

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

1 Непріводімие Як зазначено в розділі 11, функціональна залежність називаєте приводиться ліворуч, якщо її ліва частина не дуже велика. Розглянемо, наприклад, змінну відносини SCP, наведену в розділі 121, яка задовольняє наступної функціональної залежності

{S #, Р #} → CITY

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

S#  →   CITY

(Інакше кажучи, атрибут CITY функціонально залежить тільки від s #) Остання функціональна залежність є не приводиться зліва, а попередня – ні Поряд з цим, можна сказати, що атрибут CITY є неприводимого завісімим4 від атрибута S #, але не є неприводимого залежним від безлічі атрибутів {s #, Р #} Непріводімие зліва ФЗ і Непріводімие ФЗ відіграють важливу роль при визначенні другий і третій нормальній форм (подробиці приведені в розділі 123)

2&nbsp Діаграми ФЗ Нехай дана змінна відносини R і нехай до неї застосовано деякий неприводимого безліч функціональних залежностей I (більш докладні відомості про непріводімих множинах ФЗ наводяться в главі 11) Найзручніше можна представити це безліч I у вигляді діаграми функціональних залежностей (Діаграми ФЗ) Наприклад, на рис 124 показані цілком очевидні за змістом діаграми функціональних залежностей, відповідно, для змінних відносини s, SP і Р Такі діаграми будуть часто використовуватися далі в цьому розділі

Рис, 124 Діаграма функціональних залежностей для змінних відносини

S, SP і Р

4 Тут терміни Непріводімие зліва ФЗ і неприводимого залежний використовуються замість термінів Повна ФЗ і Повністю залежний , які часто можна зустріти в літературі (і в попередніх виданнях цієї книги) Хоча останні терміни відрізняються стислістю, вони менш інформативні і не дуже зручні

Як можна бачити, на рис 124 кожна стрілка починається з потенційного ключа (Насправді – з первинного ключа) відповідної змінної відносини За визначенням стрілки повинні починатися з кожного потенційного ключа5, оскільки одному значенню такого ключа завжди відповідає ще принаймні одне яке-небудь значення такі стрілки не можна видаляти ні за яких умов Якщо ж на діаграмі є якісь інші стрілки, то виникають складнощіТаким чином, процедуру нормалізації можна досить неформально охарактеризувати як процедуру виключення стрілок, які не починаються з потенційних ключів

3 ФЗ як семантичне поняття Як було зазначено в главі 11, функціональні залежності безумовно являють собою особливий вид обмежень цілісності До того ж вони, безсумнівно, відносяться до категоріїсемантичнихпонять (фактично функціональні залежності входять до складу визначення предиката змінної відносини) Виявлення функціональних залежностей являє собою частину процесу зясування сенсу тих чи інших даних Наприклад, той факт, що змінна відносини S задовольняє функціональної залежності S # → CITY, по суті означає, що кожен постачальник знаходиться точно в одному місті Інакше цю ситуацію можна охарактеризувати наступним чином

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

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

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

■ Спосіб опису обмеження у визначенні бази даних полягає в оголо нии відповідної функціональної залежності

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

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*