Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_информсистемы_Назаров_11_02_2016.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

3.1. Первинний ключ (суперключ) відношення

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

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

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

В даному прикладі первинними ключами є <Код_одержувача> у відношенні ОДЕРЖУВАЧ, <Код_вантажу> у відношенні ВАНТАЖ і пара атрибутів <Код_вантажу, Код_одержувача> у відношенні ПОСТАЧАННЯ.

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

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

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

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

Наприклад, призначимо первинним ключем у відношенні ОДЕРЖУВАЧ пару атрибутів <Код_одержувача, Станція>. Ця пара атрибутів однозначно ідентифікує кортеж у відношенні ОДЕРЖУВАЧ. Але таке рішення буде неправильним. Атрибут <Станція> в складі первинного ключа зайвий, адже і без нього, знаючи тільки <Код_одержувача>, можна визначити значення решти атрибутів будь-якого кортежу відношення ОДЕРЖУВАЧ.

Наприклад, якщо вилучити з первинного ключа відношення ПОСТАЧАННЯ один атрибут, то атрибут, що залишиться, не дасть змоги однозначно ідентифікувати кортеж.

3.2. Можливий (потенційний) ключ відношення

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

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

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

Якщо найменування вантажів вважати унікальними, то первинним ключем відношення ВАНТАЖ можна призначити атрибут <Найменування_вантажу>. Тобто у відношенні ВАНТАЖ є два можливих ключа: <Код_вантажу> і <Найменування_вантажу>. Проектувальник бази даних за своїм розсудом може призначити первинним ключем будь-який з вище названих атрибутів.