Реляциялық деректер базасында шетелдік кілттердің күші

Сыртқы кілт деректерді бүкіл әлеміне ашады

Дерекқор дизайнерлері реляциялық дерекқорларды дамытқан кезде кілттерді кеңінен қолданады. Осы кілттердің ең көп тарағандары - бастапқы кілттер және сыртқы кілттер. Дерекқордың сыртқы кілті - басқа кестенің бастапқы кілт бағасына сәйкес келетін салыстырмалы кестедегі өріс. Шетелдік кілт қалай жұмыс істейтінін түсіну үшін, салыстырмалы дерекқор туралы ойды тереңірек қарастырайық.

Реляциялық деректер базасының кейбір негіздері

Реляциялық дерекқорда деректер деректер мен жолдарды қамтитын кестелерде сақталады , бұл іздеуді және манипуляцияны жеңілдетеді. Реляциялық деректер базасының тұжырымдамасынан кейінгі маңызды математика (реляциялық алгебра, EF ұсынған)

IBM-да Codd 1970 жылы), бірақ бұл осы мақаланың тақырыбы емес.

Практикалық мақсаттар үшін (және математиктерден тыс) реляциялық дерекқорлар жолдар мен бағандардағы «байланысты» деректерді сақтайды. Бұдан әрі қызықтыратын жерде - көптеген деректер қорлары бір кестедегі деректер басқа кестедегі деректерге қатынасу үшін жасалған. Кестелер арасындағы қарым-қатынас жасау қабілеті - бұл салыстырмалы дерекқордың нақты күші.

Шетелдік кілттерді пайдалану

Көптеген кестелер, әсіресе үлкен, күрделі дерекқорлардағы, бастапқы кілттері бар. Басқа кестелерге қол жеткізуге арналған кестелерде шетелдік кілт болуы керек.

Northwinds әдеттегі дерекқорын пайдалану үшін мына жерде Өнім кестесінен үзінді келтіріңіз:

Northwind деректер қорының өнім кестесінің үзіндісі
ProductID ProductName CategoryID QuantityPerU Тауар өлшемінің бағасы
1 Чай 1 10 қорап x 20 қап 18.00
2 Chang 1 24 - 12 унция бөтелкелері 19.00
3 Анисидті сироп 2 12 - 550 мл бөтелкелер 10.00
4 Шеф Антонның Кажун дәмдеуіштері 2 48 - 6 унциялық банкалар 22.00
5 Шеф Антонның гумбо қоспасы 2 36 қорап 21.35
6 Үлкен әйелі бәйшешекке арналған спред 2 12 - 8 унциялық банкалар 25.00
7 Бобтың органикалық құрғақ алмұрт ағашы 7 12 - 1 лб pkgs. 30.00

ProductID бағаны - бұл кестенің бастапқы кілті. Ол әр өнімге бірегей идентификаторды тағайындайды.

Бұл кестеде сондай-ақ, ForeignID кілтінің, CategoryID бар . Өнім кестесіндегі әрбір өнім осы санаттың санатын анықтайтын Санаттар кестесіндегі жазбаға сілтеме жасайды.

Дерекқордың Санаттар кестесінен бұл үзіндіге назар аударыңыз:

Northwind дерекқорының санаттары Кесте үзіндісі
CategoryID CategoryName Сипаттама
1 Сусындар Алкогольсіз сусындар, кофе, шай, сыра және аллеректер
2 Дәмдеуіштер Тәтті және дәмді тұздықтар, релиздер, таралулар және тұздықтар
3 Жұқпалар Десерт, кәмпиттер және тәттілер
5 сүт өнімдері Ірімшіктер

Санат CategoryID - бұл бағанның бастапқы кілті. (Сыртқы кілті жоқ, себебі оған басқа кестеге кірудің қажеті жоқ). Өнім кестесіндегі әрбір шетелдік кілт Сандар кестесіндегі негізгі кілтпен байланысады. Мысалы, Chai өнімі «Сусындар» санатына жатады, ал Aniseed сироптары Дәмқосарлар санатында.

Байланыстырудың бұл түрі реляциялық дерекқорда деректерді пайдалану және қайта пайдаланудың көптеген әдістерін жасайды.