Негізгі кілт - Primary key

Ішінде реляциялық модель туралы мәліметтер базасы, а бастапқы кілт Бұл нақты таңдау а минималды атрибуттар жиынтығы (бағандар кортежді ерекше түрде көрсететін (қатар ) ішінде қатынас (кесте ).[a][1] Бейресми түрде негізгі кілт «бұл атрибуттар жазбаны анықтайды», ал қарапайым жағдайларда жай атрибут болып табылады: бірегей идентификатор. Ресми түрде негізгі кілт таңдау болып табылады кандидат кілті (минималды супер кілт ); кез келген басқа үміткердің кілті балама кілт.

Бастапқы кілт нақты бақыланатын заттардан тұруы мүмкін, бұл жағдайда ол а деп аталады табиғи кілт, ал кілт ретінде жұмыс жасау үшін жасалған және мәліметтер базасынан тыс идентификациялау үшін қолданылмайтын атрибут а деп аталады суррогат кілт. Мысалы, адамдардың (белгілі бір ұлттың) дерекқоры үшін туған уақыты мен орны табиғи кілт болуы мүмкін.[b] Ұлттық сәйкестендіру нөмірі табиғи кілт ретінде қолданылуы мүмкін атрибуттың тағы бір мысалы.

Тарих

Негізінен бүгінде реляциялық мәліметтер қорының контекстінде қолданылғанымен, «бастапқы кілт» термині реляциялық модельді алдын-ала белгілейді және мәліметтер қорының басқа модельдерінде де қолданылады. Чарльз Бахман өзінің анықтамасында навигациялық мәліметтер базасы, негізгі кілттерді анықтаған бірінші адам.[2]

Дизайн

Реляциялық мәліметтер қорының терминдерінде бастапқы кілт формасы немесе қызметі жағынан негізгі емес кілттен ерекшеленбейді. Іс жүзінде әр түрлі мотивтер кез-келген бір кілтті басқасынан гөрі негізгі етіп таңдауды анықтауы мүмкін. Бастапқы кілттің белгіленуі кестедегі деректер үшін «артықшылықты» идентификаторды көрсете алады немесе бастапқы кілт үшін пайдаланылуы керек шетелдік кілт басқа кестелерден алынған сілтемелер немесе кестенің мағыналық емес, техникалық сипаттамаларын көрсетуі мүмкін. Кейбір тілдер мен бағдарламалық жасақтамада арнайы кілтті анықтауға болатын арнайы синтаксистік мүмкіндіктер бар (мысалы, SQL-дегі НЕГІЗГІ НЕГІЗГІ шектеу).

Реляциялық есептеу және реляциялық алгебра арқылы көрсетілген реляциялық модель бастапқы кілттер мен кілттердің басқа түрлерін ажыратпайды. Негізгі кілттер SQL стандартты, негізінен қолданбалы бағдарламалаушыға ыңғайлы.[дәйексөз қажет ]

SQL-де бастапқы кілттерді анықтау

Бастапқы кілттер ISO SQL стандарты, PRIMARY KEY шектеуі арқылы. Мұндай шектеуді бар кестеге қосу үшін синтаксис анықталды SQL: 2003 ж Бұл сияқты:

АЛТЕР КЕСТЕ <кесте идентификатор>     ҚОСУ [ ШЕКТЕУ <шектеу идентификатор> ]     БАСТАУЫШ КІЛТ ( <баған аты> [ {, <баған аты> }... ] )

Бастапқы кілт тікелей кесте құру кезінде де көрсетілуі мүмкін. SQL стандартында негізгі кілттер бір немесе бірнеше бағаннан тұруы мүмкін. Бастапқы кілтке қатысатын әрбір баған жанама түрде NULL деп анықталады. Кейбіреулеріне назар аударыңыз RDBMS бастапқы кілт бағандарын анық белгілеуді талап етеді ЖОҚ.[дәйексөз қажет ]

ЖАСАУ КЕСТЕ кесте_аты (      ...)

Егер бастапқы кілт тек бір бағаннан тұрса, бағанды ​​келесі синтаксисті қолдану арқылы белгілеуге болады:

ЖАСАУ КЕСТЕ кесте_аты (   id_col  INT  БАСТАУЫШ КІЛТ,   col2    МІНДЕТ ТҮРЛІ(20),   ...)

Суррогат кілттері

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

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

Суррогаттық негізгі кілттердің танымалдылығына байланысты көптеген әзірлеушілер және кейбір жағдайларда тіпті теоретиктер суррогаттық негізгі кілттерді реляциялық деректер моделінің ажырамас бөлігі ретінде қарастырды. Бұл көбінесе гибридті объектілік-реляциялық модель құра отырып, объектіге бағытталған бағдарламалау моделінен реляциялық модельге принциптердің көші-қонымен байланысты. Ішінде ORM сияқты белсенді жазу үлгісі, бұл қосымша шектеулер негізгі кілттерге орналастырылған:

  • Бастапқы кілттер өзгермейтін болуы керек, яғни ешқашан өзгертілмеуі немесе қайта қолданылмауы керек; олар байланысты жазбамен бірге жойылуы керек.
  • Бастапқы кілттер белгісіз бүтін немесе сандық идентификаторлар болуы керек.

Алайда, бұл шектеулердің ешқайсысы реляциялық модельдің немесе кез-келген SQL стандартының бөлігі емес. Кешенді тексеру мәліметтер базасы мен қосымшаларды жобалау кезінде негізгі кілттердің өзгермейтіндігі туралы шешім қабылдаған кезде қолданылуы керек. Кейбір мәліметтер қоры жүйелері бастапқы кілттер бағандарындағы мәндерді ЖАҢАРТУ SQL операторы.[дәйексөз қажет ]

Балама кілт

Әдетте, негізгі кілт ретінде бір үміткер кілті таңдалады. Басқа үміткерлердің кілттері балама кілттерге айналады, олардың әрқайсысы қайталанудың алдын-алу үшін өзіне тән шектеулерге ие болуы мүмкін (қайталанатын жазба бірегей бағанда жарамсыз).[3]

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

Сондай-ақ қараңыз

Ескерту

  1. ^ Сәйкес терминдер сәйкесінше теориялық (атрибут, кортеж, қатынас) және нақты (баған, жол, кесте) болып табылады.
  2. ^ Екі адам бірдей сәтте туа алмайтындай дәлдікте.

Әдебиеттер тізімі

  1. ^ «Access бағдарламасында кестенің негізгі кілтін қосу немесе өзгерту». Microsoft. Алынған 20 қаңтар, 2020. Бастапқы кілт - бұл кесте бойында ерекше болатын мәндері бар өріс немесе өрістер жиынтығы.
  2. ^ «Бағдарламашы штурман ретінде». Portal.acm.org. дои:10.1145/355611.362534. Алынған 2012-10-01.
  3. ^ Балама кілт - Oracle туралы жиі қойылатын сұрақтар