Структури даних реляційної моделі - студопедія

Е.Ф.Кодд в 1970 р сформулював концепцію реляційної моделі баз даних. Реляційна модель бази даних є зручною і найбільш звичною формою представлення даних у вигляді таблиці. У математичних дисциплінах таблиці відповідає термін «відношення» (relation). Звідси і пішла назва моделі - реляційна.







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

Реляційна модель має два головних властивості:

1) базові порції даних являють собою відносини (relations);

2) операції над таблицями зачіпають тільки співвідношення.

Модель пред'являє до таблиць наступні вимоги:

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

2. Дані в одному стовпці повинні бути одного типу.

3. Кожен стовпець повинен бути унікальним (неприпустимі дублювання стовпців).

4. Стовпці розміщуються в довільному порядку.

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

6. Стовпці мають унікальні найменування.

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

Структурними складовими таблиці є записи і поля.

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

Для кожної таблиці реляційної БД повинен бути определенглавний ключ-ім'я поля або декількох полів, сукупність значень яких однозначно визначають запис. Інакше кажучи, значення головного ключа не повинно повторюватися в різних записах. Наприклад, в бібліотечній базі даних таким ключем може бути обраний інвентарний номер книги, який не може співпадати у різних книг.

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

Ім'я_таблиці (ІМЯПОЛЯ_1, ІМЯ_ПОЛЯ_2. ІМЯ_ПОЛЯ_М)

Підкреслюються імена полів, составляющіеглавний ключ.

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

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

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

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

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

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

Схема БД (в структурному сенсі) - це набір іменованих схем відносин.

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

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

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







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

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

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

§ між полями таблиці не повинно бути небажаних функціональних залежностей;

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

Визначено декілька основних нормальних форм (НФ), кожна з яких знімає певні залежності між полями і усуває певні труднощі обробки даних:

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

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

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

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

Для приведення таблиці до 1НФ (повторення одних і тих же самих полів небажано) необхідним є дотримання наступних правил:

1. кожне поле має бути атомарним, тобто містити єдиний елемент даних.

2. Поля в таблиці не повинні повторюватися.

Приведення таблиці до 2НФ (кожне поле має залежати від єдиного первинного ключа) вимагає відповідності з такими правилами:

1. Кожна таблиця містить дані про один предмет (об'єкт).

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

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

· Дублювання (надмірності) даних;

· Аномалій виконання операцій додавання, видалення і оновлення (зміни) даних.

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

Інакше правило для 3НФ звучить так: все неключових поля повинні бути взаімонезавісімие. тобто зміна неключевого поля не повинно тягти за собою зміни іншого неключових поля.

3. ОПЕРАЦІЇ З ДАНИМИ В реляційної моделі

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

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

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

Розглянемо основні оператори мови реляційної алгебри.

Об'єднання - операція виконується над двома сумісними відносинами (з ідентичною структурою -). В результаті операції об'єднання будується нове ставлення. Відношення R має той же склад атрибутів і сукупність кортежів вихідних відносин. Причому в цю сукупність не включаються дублікати.

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

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

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

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

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

З'єднання виконується для заданого умови над двома логічно пов'язаними відносинами. Вихідні відносини і мають різні структури, в яких є однакові атрибути - зовнішні ключі (ключі зв'язку). Операція з'єднання формує нове ставлення, структура якого є сукупністю всіх атрибутів вихідних відносин. Результуючі кортежі формуються об'єднанням кожного кортежу з з тими кортежами, для яких виконується умова. При цьому умовою, як правило, є однакові значення зовнішнього ключа в початкових відносинах.

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

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

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







Схожі статті