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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.3. Чужий (зовнішній) ключ відношення

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

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

Відношення ВАНТАЖ і ПОСТАЧАННЯ зв’язані між собою за допомогою атрибута <Код_вантажу>. Тільки у відношенні ВАНТАЖ атрибут <Код_вантажу> є можливим ключем, а у відношенні ПОСТАЧАННЯ атрибут <Код_вантажу> не є можливим ключем, отже він є чужим ключем відношення ПОСТАЧАННЯ.

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

Відношення ОДЕРЖУВАЧ і ВАНТАЖ безпосередньо між собою не зв’язані, вони зв’язані через відношення ПОСТАЧАННЯ.