Поняття ключа та типи ключів. Цілісність даних 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Поняття ключа та типи ключів. Цілісність даних

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

 

Основою сучасної теорії баз даних є реляційна модель. Основоположником теорії реляційних баз даних вважається співробітник фірми IBM доктор Е.Кодд, який опублікував у 1970 р. статтю „Реляційна модель даних для великих колективних банків даних.” Е. Кодд, будучи математиком за освітою, запропонував використати для обробки даних апарат теорії множин (об’єднання, декартів добуток, різницю) і логіки. Він довів, що довільний набір даних можна подати у вигляді особливих двомірних таблиць, відомих у математиці як „відношення” (relation) – звідки і пішла назва “реляційні бази даних”. Теорія реляційних баз даних, розроблена Е. Коддом, має під собою потужну математичну основу, яка описує правила ефективної організації даних. У реляційній моделі розглядаються три аспекти даних: структура даних (об’єкти даних), цілісність даних і обробка даних.

 

2.1. Реляційні об’єкти даних

 

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

Формальний реляційний термін

Неформальний еквівалент

Відношення

Кортеж

Атрибут

Кардинальне число

Степінь

Таблиця

Рядок або запис

Стовпець або поле

Кількість рядків

Кількість стовпців

 

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

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

Розглянемо приклад відношення Постачальник.

 

Код

Ім’я

Статус

Місто

Іваненко

Шевчук

Сидорюк

Петренко

Гринів

Київ

Львів

Львів

Київ

Тернопіль

  

У цьому відношенні: степінь – 4, кардинальне число – 5, домени: для атрибуту Статус: 10,20,30; для атрибуту Місто: Київ, Тернопіль, Львів.

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

Визначення відношення. Відношення визначається на множині доменів і складається з двох частин: заголовка і тіла. Заголовок – це рядок заголовків стовпців. Тіло – множина рядків даних. Тіло містить множину кортежів. Кортеж містить множину пар: ім’я атрибута і значення атрибута.

Відношення має такі властивості:

· немає однакових кортежів;

· кортежі не впорядковані зверху вниз;

· атрибути не впорядковані зліва направо;

· всі значення атрибутів атомарні.

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

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

Четверта властивість означає, що всі значення атрибутів атомарні – неподільні. Відношення, яке задовольняє цю умову, називається нормалізованим, або представленим в 1-й нормальній формі (1НФ), є ще 2НФ, 3НФ, 4НФ та ін.

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

Реляційна теорія забороняє використання неатомарних значень атрибутів. Але в реальному житті бувають протилежні випадки. Наприклад, в історичних записах іноді зустрічаються такі: „дата народження невідома” або в паспортному столі „без певного місця проживання”. Для подолання цієї проблеми Е.Кодд запропонував для наведення невідомої чи відсутньої інформації використовувати спеціальні маркери, які називаються NULL – значеннями. Тобто, якщо зустрічається в позиції атрибута значення NULL – це означає, що воно відсутнє. Звернемо увагу, що NULL – це маркер, а не порожня множина.     

 

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

 Ключі бувають таких типів: потенційний, первинний, альтернативний, зовнішній.

Потенційний (можливий) ключ має кожне відношення (у всякому разі один). Потенційний ключ – це той можливий ключ, за яким можна знайти кортеж.

Визначення потенційного ключа. Нехай задано деяке відношення R. Тоді потенційний ключ К – це підмножина атрибутів відношення R, яка має такі властивості:

· унікальність (немає різних кортежів у відношення R з однаковим значенням К);

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

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

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

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

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

Тут Код_п і Код_д відношення Постачальники_деталей є зовнішніми ключами.

Визначення зовнішнього ключа. Нехай R2 – відношення, FK – зовнішній ключ відношення R2. Зовнішній ключ FK – це підмножина атрибутів з R2 така, що:

· існує цільове відношення R1 з потенційним ключем СК.

· кожне значення зовнішнього ключа FK відношення R2 збігається зі значенням СК відношення R1. Тобто кожне значення зовнішнього ключа повинно бути значенням відповідного потенційного ключа.

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

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

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

2.3. Функціональні залежності

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

Нехай R – відношення, Х і Y – довільні підмножини множини атрибутів. Тоді Y функціонально залежить від Х, X->Y ( Х функціонально визначає Y), коли кожне значення Х пов’язано точно з одним значенням Y. Інакше: якщо два кортежі збігаються за значенням Х, то вони збігаються за значенням Y.

Якщо Х – потенційний ключ, то всі атрибути функціонально залежать від нього.

Якщо у відношенні R: A->B і А не є потенційним ключем, то R характеризується надлишковістю. A->B виконується тоді й тільки тоді, коли два кортежі з однаковими значеннями А мають однакові значення В. Наприклад tab->adres.

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

Повною функціональною залежністю неключових атрибутів називається така залежність, при якій кожний неключовий атрибут функціонально залежить від усього ключа (тобто від усієї сукупності атрибутів ключа), але не знаходиться у функціональній залежності від жодної частини складеного ключа. Наприклад fio+data->adres.

Транзитивна залежність спостерігається в тому випадку, якщо один із двох неключових атрибутів залежить від ключа, а другий неключовий атрибут залежить від першого. A->B->C (С транзитивно залежить від А )

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

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

 

 



Поделиться:


Последнее изменение этой страницы: 2024-07-06; просмотров: 39; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.009 с.)