Кіріспе

Деректер қорында екі немесе одан көп атрибуты бар кандидат кілт. Деректер қоры дизайнында, құрама кілт – екі немесе одан көп атрибуттан (кесте бағандарынан) тұратын кандидат кілт, олар бірлесіп бір жазбаны (кесте жолын) бірегей анықтайды. Ал, құрамындағы әрбір атрибуты дербес сыртқы кілт болып табылатын құрама кілт – күрделі кілт деп аталады.

Артықшылықтар

Композиттік кілттер табиғи кілт сияқты артықшылықтарға ие, себебі олар көбінесе бірнеше табиғи кілт атрибуттарынан құралады.

Сақтау

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

Қолдану мен қолдану оңай

Құрама кілттерді деректер қорының схемасына енгізу оңай, себебі олардың құрамдас бөліктері деректер қорында бұрыннан аталған элементтер болып табылады. Егер олар табиғи кілттер болса, нақты өмірдегі жағдайлар үшін түсінікті болуы мүмкін. Бір құрама кілт жазбаны әрқашан бірегей анықтамаса, олар жиі қолданылады. Мысалы, жеке есім белгілі бір деректер қорында көбінесе бірегей болады, бірақ әрқашан емес, ал бірегейлікті қамтамасыз ету үшін туылған күні сияқты басқа да өрістер қосылуы мүмкін.

Талаптардың өзгеруі

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

Күрделілік және сақтау

Композиттік кілт бірнеше атрибуттан тұрады және композиттік кілт бірнеше кестеде сыртқы кілт ретінде сілтемеленеді. Бұл көп дискілік орынды қажет етеді, себебі сыртқы кілт ретінде бірнеше баған сақталады, әлде тек біреуі ғана сақталуы мүмкін еді. Бұл схеманы күрделендіреді және сұраныстарды жүзеге асыру үшін процессордың көп күші қажет болады, өйткені әрбір қосылу кезінде ДБЖС (Деректерді басқару жүйесі) бір табиғи кілт болғанда тек бір атрибутты салыстырудың орнына үш атрибутты салыстыруға тура келеді.

Мысал

Мысал ретінде әрбір студент университетте оқитын модульдерді көрсететін бірлік қарастырайық. Бұл бірліктің негізгі кілті студенттік идентификаторы мен модуль коды болып табылады. Негізгі кілтті құрайтын әрбір атрибут қарапайым кілт болып саналады, себебі олардың әрқайсысы бір жағдайда студентті, екінші жағдайда модульді анықтауда бірегей сілтеме болып табылады, сондықтан бұл кілт – құрама кілт. Ал, осы мысалдан өзге, студентті аты мен тегі арқылы анықтасақ (адамдардың аты-тегі әртүрлі болуы керек деп есептейміз). Студенттер туралы мәліметтерді сақтайтын кестеде біздің негізгі кілтіміз енді аты + тегі болады. Өйткені студенттердің аты немесе тегі бірдей болуы мүмкін. Студенттер үшін аты + тегінен құралған негізгі кілт – құрама кілт.