I. Основи на субд 2


Релационна цялостност на данните: Първични ключове



страница6/14
Дата23.02.2017
Размер1.28 Mb.
#15584
1   2   3   4   5   6   7   8   9   ...   14

3.Релационна цялостност на данните: Първични ключове

3.1.Въведение


Това е компонентът на релационния модел, който през последните години е най-много променян.

Забележки:

  • във всеки момент всяка БД съдържа определена конфигурация от стойности на данните и тази конфигурация отразява (е модел на) една реална ситуация;

  • определени конфигурации нямат смисъл, ако те не представляват някакво възможно състояние на реалния свят;

  • следователно дефиницията на БД трябва да бъде разширена - тя трябва да включва правила за цялостност. Тяхната цел е да информират СУБД за някои ограничения в реалния свят (напр., теглото не може да бъде отрицателно число). Така могат да се избегнат някои конфигурации, които нямат смисъл.

БД са субект на многобройни правила за цялостност.

Пример за таблицата с книгите от библиотеката:



  • цената не е реално да е отрицателно число, т.е. стойността й трябва да е по голяма от нула;

  • годината на публикуване не може да е по-голяма от текущата година;

  • ISBN (BOOK_ISBN) номерът не се формира по произволен начин, той е уникален за всяка книга.

Някои правила за цялостност са специфични за точно определена БД. Освен специфични правила за цялостност релационният модел включва две общовалидни правила за цялостност, т.е. те са важни за всяка релационна БД:

  • концепцията за първични ключове;

  • концепцията за външни ключове.

Правилата са общи в този смисъл, че те са приложими за всички БД, които претендират, че се съобразяват с изискванията на релационния модел. Наистина, всяка отделна БД има допълнително свои собствени специфични правила, които допълват двете основни правила. Двете правила имат отношение към първичния и външния ключ.

3.2.Ключове-кандидати


Първичните ключове са специален случай на по-общата конструкция, наречена ключове-кандидати (candidate keys).

Ключ-кандидат (неформална): един ключ-кандидат е преди всичко точно един уникален идентификатор.

По дефиниция всяка една релация има най-малко един ключ-кандидат (на практика, обаче, повечето релации имат точно един, но има такива с по два и повече ключа). За дадена релация ние избираме един от ключовете-кандидати за първичен и всички останали стават (ако съществуват) алтернативни ключове.



Ключ-кандидат (формална):

  1. Нека R е релация с атрибути { A1, A2,..., An }.

  2. Множеството на атрибутите K = (Ai, Aj,..., Ak) от R е candidate key на R, ако то удовлетворява следните две, независещи от времето условия:

    • уникалност (uniqueness) - в един и същ момент не съществуват два различни записа на R с еднаква стойност за Ai , за Aj ,...., за Ak;

    • достатъчност (minimality) - никой от Ai, Aj,..., Ak не може да бъде премахнат, без това да нарушава уникалността.

Всяка релация има най-малко един ключ-кандидат, понеже релациите не съдържат дублирани n-торки. Понеже n-торките са уникални, следва че най-малко комбинацията от всички атрибути на релацията притежава свойството уникалност.

Дефиницията на ключ-кандидат се прилага към стойността на релацията, а не към релационната променлива.

За по-голяма прецизност ние можем да дадем следната дефиниция: нека R е релационна променлива. Тогава един ключ-кандидат за R е K {A1R, A2R, .. , AnR}, така че за всеки момент той притежава свойствата:


  • уникалност - няма две n-торки в текущата стойност на R, които да имат една и съща стойност за K;

  • достатъчност - всички S  K, не притежават свойството уникалност.


Ключ-кандидат (формална):

candidate-key-definition ::= CANDIDATE KEY (attribute-list)

| PRIMARY KEY (attribute-list)
Забележка: повечето релации в практиката имат точно един ключ кандидат, но е възможно да имат и повече от един.

Пример: релацията ELEMENTS, представляваща таблицата на химическите елементи. Всеки хим. елемент има уникален:



  • име;

  • символ;

  • атомарен номер.

CREATE BASE RELATION ELEMENTS

( NAME ..... ,

SYMBOL .... ,

NUMBER .... ,

... )
CANDIDATE KEY (NAME)

CANDIDATE KEY (SYMBOL)

CANDIDATE KEY (NUMBER)




  • ние дефинираме ключовете-кандидати като множества от атрибути. Един ключ-кандидат, който се състои от повече от един атрибут, се нарича съставен. С един атрибут - прост;

  • за понятието достатъчност - напр., дефинираме комбинацията {BOOK_ISBN, TITLE} вместо само BOOK_ISBN за ключ-кандидат. Тогава системата не може да приложи ограничението, че номерът на книгата е уникален в “глобален” смисъл, тя го интерпретира като уникален в “локален” смисъл, т.е. за това заглавие. Следователно верните ключове кандидати не трябва да включват атрибути, които не са съществени за целите на уникалната идентификация;

  • не трябва да се смесва понятието за ключ-кандидат с това за физически уникален индекс, понеже последният често се използва за реализация на първия.

Защо са важни ключовете-кандидати?

Те поддържат единствения адресен механизъм на ниво записи в релационния модел. Т.е. единственият гарантиран от системата начин за определяне точно положението на даден запис е посредством комбинацията (R,k), където R е името на релацията, съдържаща записа, а k е стойността на ключа-кандидат. Стойностите на ключа-кандидат се използват другаде в БД да служат като референции към записите, които се идентифицират чрез тези стойности.



Забележка: това не означава, че достъпът до една релация ще се ограничи само в "достъп чрез ключ-кандидат". По-точно това означава, че само този ключ гарантира връщането на един единичен запис.

Следователно, ключовете-кандидати са абсолютно основополагащи за функционирането на цялостния релационен модел (по същата причина, по която адресите на оперативната памет са важни за компютъра).



Заключителна забележка: често се твърди, че релационният модел изисква асоциативно адресиране на паметта. Понеже цялото релационно адресиране (в частност адресирането с ключове-кандидати) е асоциативно (т.е. value-based, а не position-based), твърдението е вярно - само на логическо ниво, т.е. от това не следва, че релационният модел изисква асоциативен хардуер. Както многократно беше изтъквано, релационният модел се отнася за логическото ниво на системата, а не за физическото ниво.

3.3.Първични и алтернативни ключове


Както видяхме, възможно е една базова релация да има повече от един ключ-кандидат. В такъв случай релационният модел изисква един от тях да бъде обявен (избран) за първичен ключ (ПК). Останалите се наричат алтернативни ключове (АК).

Кой ключ ще бъде избран зависи от прагматични причини.



Първичен ключ: идентифицира еднозначно една n-торка на релациите.

Каталог: sites -> default -> files
files -> Образец №3 справка-декларация
files -> Р е п у б л и к а б ъ л г а р и я
files -> Отчет за разкопките на праисторическото селище в района на вуз до Стара Загора. Аор през 1981 г. ХХVІІ нац конф по археология в Михайловград, 1982
files -> Медии и преход възникване и развитие на централните всекидневници в българия след 1989 година
files -> Окръжен съд – смолян помагало на съдебния заседател
files -> Семинар на тема „Техники за управление на делата" 18 19 юни 2010 г. Хисар, Хотел „Аугуста спа" Приложение
files -> Чинция Бруно Елица Ненчева Директор Изпълнителен директор иче софия бкдмп приложения: програма
files -> 1. По пътя към паметник „1300 години България


Сподели с приятели:
1   2   3   4   5   6   7   8   9   ...   14




©obuch.info 2024
отнасят до администрацията

    Начална страница