потенційні ключі
За визначенням тіло відносини - є безліч кортежів, тому відношення не можуть містити однакові кортежі. Кожен кортеж повинен мати властивість унікальності. Насправді ж властивістю унікальності в межах відношення можуть володіти окремі атрибути кортежів або групи атрибутів. Такі унікальні атрибути використовують для ідентифікації кортежів.
Потенційним ключем відносини R називається підмножина атрибутів К, яке має такі властивості:
унікальність, тобто в відношенні не може бути двох різних кортежів з однаковим значенням К.
не надмірною, тобто ніяке підмножина в До не має властивість унікальності.
Будь-яке відношення має принаймні один потенційний ключ. Якщо ніякої атрибут або група атрибутів не є потенційним ключем, то в силу унікальності кортежів всі атрибути разом утворюють потенційний ключ.
Потенційний ключ, який складається з одного атрибута називається простим, з декількох - складним.
Ставлення може включати кілька потенційних ключів. Один з них оголошується первинним, інші - альтернативні (в DB2 - Candidat), але відмінності між ними немає.
Поняття потенційного ключа відображає сенс деякого об'єкта з предметної області.
Потенційні ключі служать засобом ідентифікації об'єктів предметної області, дані про яких зберігаються в відношенні.
Так як потенційні ключі служать ідентифікаторами об'єктів предметної області, то значення цих ідентифікаторів не можуть містити NULL-значень. Це твердження визначає правило цілісності сутності.
Зовнішні ключі.
Різні об'єкти предметної області, інформація про яких зберігається в БД, завжди взаємопов'язані один з одним. Такі взаємозв'язки даних відображаються за допомогою зовнішніх ключів.
Для таблиць EMPLOYEE, DEPARTMENT, PROJECT існують три типи взаємозв'язків:
Один до одного (один співробітник може працювати в одному відділі).
Один до багатьох (в одному відділі може працювати кілька співробітників).
Багато до багатьох (в кількох відділах може виконуватися кілька проектів). Це зв'язок між таблицями, метаотношеніе.
Батьківське (або базова) відношення - це відношення, яке входить в зв'язок з боку «один».
Ставлення, що входить в зв'язок з боку «багато» називається дочірнім.
Зовнішній ключ - це підмножина атрібутовFK (foreignkey) деякого отношеніяR, яке має такі властивості:
Існує ставлення Sс потенційним ключомK
Кожне значення FKв отношенііRвсегда збігається зі значенням К для деякого кортежу ізS, або являетсяNULL-значенням.
Ставлення Rназивается дочірнім.
Властивості зовнішнього ключа:
зовнішній ключ, так само як і потенційний, може бути простим і складним.
зовнішній ключ повинен бути визначений на тих же доменах, що і відповідний первинний ключ батьківського відносини.
зовнішній ключ може бути не унікальним, тому що в дочірньому відношенні може бути кілька кортежів, що посилаються на один і той же кортеж батьківського відносини. Це дає відношення «один до багатьох».
якщо зовнішній ключ все таки має властивість унікальності, то зв'язок між відносинами має тип «один до одного» і такі відносини можна об'єднати в одне.
хоча кожне значення зовнішнього ключа повинно збігатися із значенням потенційного ключа в деякому кортежі батьківського відносини, але зворотне невірно.
для зовнішнього ключа не потрібно, щоб він був компонентом деякого потенційного ключа.
NULL-значення для атрибутів зовнішнього ключа допустимо тільки в тому випадку, коли атрибути зовнішнього ключа не входять до складу жодної потенційного ключа.
Лекція №7 (21.03.02.)