АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Про первинні й зовнішні ключі

Читайте также:
  1. ВЗАЄМОВІДНОСИНИ ПІДПРИЄМСТВА З ЗОВНІШНІМИ КОНТРАГЕНТАМИ І РИНКОВОЮ ІНФРАСТРУКТУРОЮ
  2. Виготовлення деталей типу хрестовин карданного валу з чотирма зовнішніми циліндричними поверхнями.
  3. Зиків, які, як правило, поділяють на внутрішні і зовнішні.
  4. Зовнішні інформаційні війни
  5. Зовнішні та внутрішні інформаційні джерела
  6. ЗОВНІШНІ ТА ВНУТРІШНІ ФАКТОРИ ПОЛІТИКИ МЕНЕДЖМЕНТУ ПЕРСОНАЛУ
  7. ЗОВНІШНІЙ АНАЛІЗ ЗВАЖУВАЛЬНИХ ПРОБ
  8. Зовнішній вигляд
  9. Зовнішній вигляд дистанційного навчального курсу та навігація
  10. Зовнішність людини - не показник її душі
  11. Керування забезпечує необхідний рівень стійкості системи у процесах взаємодії її з зовнішнім середовищем та взаємодій всередині самої системи.
  12. Переваги та недоліки використання зовнішніх шляхів розв’язання проблеми для задоволення потреб суб’єктів інформаційної діяльності.

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

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

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

При виборі первинного ключа слід віддавати перевага нескладовим ключам або ключам, складеним з мінімального числа атрибутів.

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

Не допускається, щоб первинний ключ стрижневої сутності (будь-який атрибут, що брав участь у первинному ключі) ухвалював невизначене значення. Інакше виникне суперечлива ситуація: з'явиться, що не володіє індивідуальністю, і, отже не існуючий екземпляр стрижневої сутності. По тим же причинам необхідно забезпечити унікальність первинного ключа.

Тепер про зовнішні ключі:

Якщо сутність Зі зв'язує сутності А и В, то вона повинна включати зовнішні ключі, відповідні до первинних ключів сутностей А и В.

Якщо сутність У позначає сутність А, то вона повинна включати зовнішній ключ, відповідний до первинного ключа сутності А.

Зв'язок між первинними й зовнішніми ключами сутностей ілюструється мал. 3.

 
 

 

Рис. 3. Структури: а - асоціації; б - позначення (характеристики)

 

Тут для позначення кожної з асоційованих сутностей (стрижнів, характеристик, позначень або навіть асоціацій) використовується новий узагальнюючий термін "Ціль" або "Цільова сутність".

Таким чином, при розгляді проблеми вибору способу вистави асоціацій і позначень у базі даних основне питання, на яке слід одержати відповідь: " Які зовнішні ключі?". И далі, для кожного зовнішнього ключа необхідно розв'язати три питання:

1. чи Може даний зовнішній ключ ухвалювати невизначені значення (Null-Значення)? Інакше кажучи, чи може існувати деякий екземпляр сутності даного типу, для якого невідома цільова сутність, що вказується зовнішнім ключем? У випадку поставок це, імовірно, неможливо – поставка, здійснювана невідомим постачальником, або поставка невідомого продукту не мають змісту. Але у випадку зі співробітниками така ситуація однак могла б мати сенс – цілком можливо, що який-небудь співробітник у цей момент не зарахований взагалі ні в який відділ. Помітимо, що відповідь на дане питання не залежить від примхи проектувальника бази даних, а визначається фактичним образом дій, прийнятим у тій частині реального миру, яка повинна бути представлена в розглянутій базі даних. Подібні зауваження мають відношення й до питань, обговорюваних нижче.

2. Що повинне трапитися при спробі ВИДАЛЕННЯ цільової сутності, на яку посилається зовнішній ключ? Наприклад, при видаленні постачальника, який здійснив принаймні одну поставку. Існує три можливості:

Операція видалення "каскадуєтся" для того, щоб вилучити також поставки цього постачальника.

ОБМЕЖУЄТЬСЯ Віддаляються лише ті постачальники, які ще не здійснювали поставок. Інакше операція видалення відкидається.

УСТАНОВЛЮЄТЬСЯ Для всіх поставок постачальника, що віддаляється, Null-Значення зовнішній ключ установлюється в невизначене значення, а потім цей постачальник віддаляється. Така можливість, звичайно, незастосовна, якщо даний зовнішній ключ не повинен містити Null-Значень.

3. Що повинне відбуватися при спробі ВІДНОВЛЕННЯ первинного ключа цільової сутності, на яку посилається деякий зовнішній ключ? Наприклад, може бути почата спроба обновити номер такого постачальника, для якого є принаймні одна відповідна поставка. Цей випадок для визначеності знову розглянемо докладніше. Є ті ж три можливості, як і при видаленні:

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

Обновляються первинні ключі лише тих постачальників, які ще не здійснювали поставок. Інакше операція відновлення відкидається.

УСТАНОВЛЮЄТЬСЯ Для всіх поставок такого постачальника Null-Значення зовнішній ключ установлюється в невизначене значення, а потім обновляється первинний ключ постачальника. Така можливість, звичайно, незастосовна, якщо даний зовнішній ключ не повинен містити Null-Значень.

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

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

Null-Значення не припустимі

ВИДАЛЕННЯ З (ціль) КАСКАДУЄТЬСЯ

ВІДНОВЛЕННЯ (первинний ключ мети) КАСКАДУЄТЬСЯ

Зазначені специфікації представляють залежність по існуванню характеристичних сутностей.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)