Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема3_ДСН.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
52.89 Кб
Скачать

3.3 Фундаментальні властивості відношень

Зупинимося тепер на деяких важливих властивостях відношень, які виходять з приведених раніше означень:

  1. Відсутність кортежів-дублікатів

Та властивість, що відносини не містять кортежів-дублікатів, виходить з визначення відношення як множини кортежів. У класичній теорії множин за визначенням кожна множина складається з різних елементів.

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

При виборі первинного ключа доцільно використовувати наступні правила:

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

  • Єдина функція, яку повинен нести первинний ключ, - унікальна відмінність одного рядка від іншої; нічого іншого йому не властиво.

  • Краще якщо первинний ключ буде коротким і числовим. Короткі ключі простіше набирати, а для числових ключів простіше призначати наступне значення.

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]