Мәліметтер қоры және ақпараттық жүйелер sql тілінің стандарты және жүзеге асуы


MS SQL Server ортасындағы кесте кілттерінің түрлері



бет7/10
Дата15.06.2023
өлшемі51,07 Kb.
#101489
1   2   3   4   5   6   7   8   9   10
MS SQL Server ортасындағы кесте кілттерінің түрлері

Кестелерді жобалау үдерісінде деректер қорына қандай кестелер кіру керек, олардың аттары (идентификаторлары) қандай, кестелерді құру үшін қандай деректер типтері қажет, әрқайсысына қандай пайдаланушылар қол жеткізетіні туралы шешім қабылданады. Кестені тиімді құру үшін келесі сұрақтарға жауап беру керек: Кестедегі әрбір баған
қандай типтен және өлшемнен құралады, кестедегі бағанға қандай ат таңдау керек? NULL мағынасын қандай бағандар қолдана алады? Бағандар үшін тұтастықты шектеулер, үнсіз бойынша мәндер және ережелер қолданыла ма? Бағандарды индекстеу қажет пе, нақты бағандарға қандай индекс типі қолданылады? Алғашқы және сыртқы кілттерге қандай бағандар кіреді? MS SQL Server-де кесте құру үшін келесі команда қолданылады: ::= 83 CREATE TABLE [дерекқор_аты.[иемденуші]. иемденуші.] кесте_аты ([,…n]) Қайда ::= {}  AS >кестені_шектеу< (dbo) кестесін кім құрса, сол иемденуші болады. «Өрнек» есептелетін бағанға мән береді. Есептелетін бағандар – виртуалды бағандар, физикалық түрде кестеде сақталмайды және бағандағы мәндерді қолдана отырып есептеледі. Есептелетін баған үшін өрнекті бір немесе бірнеше оператормен байланысты кәдімгі бағандардың аттары, тұрақты сандар және функциялар болу мүмкін. Бұндай өрнекке бағынқы сұраныстар қатыспайды. Есептелетін бағандар SELECT бөліміне бағандар тізімін көрсеткен кезде кіру мүмкін. Көрсетілген бағандар сұраныс орындау нәтижесінде қайтарылуы керек. Есептелетін бағандар сыртқы кілтке кіре алмайды, олар үшін үнсіз мәндерді қолданбайды. Осыған қоса, есептелетін бағандар INSERT және DELETE операторларына қатыспайды. ::= {баған_аты } [ [ DEFAULT ] | [ IDENTITY (басы, қадам) [NOT FOR REPLICATION]]]] [ROWGUIDCOL][][ …n]] Баған тағайындағанда тиісті бағанның баған-санауыш болатынын көрсететін IDENTITY параметріне назар аударайық. Кесте үшін тек бір ғана баған осындай қасиетпен анықталуы мүмкін. Қосымша бастапқы мағына мен өсу қадамын көрсетуге болады. Егер бұл мәндер көрсетілмеген болса екеуі де 1- ге тең болады. Егер IDENTITY кілттік сөзімен NOT FOR REPLICATION көрсетілсе, онда сервер бұл баған үшін автоматты түрде мәндерді генерациялауды орындамайды, бағанға кез келген мәндерді енгізуге рұқсат береді. Шектеу ретінде баған шектеуін және кесте шектеуін қолданады. Бағанның шектеуі анықталған өріске, ал кестенің шектеуі-бір немесе бірнеше өрістерден тұратын топтарға қолданылады. ::= [ CONSTRAINT шектеу_аты ] { [ NULL | NOT NULL ] | [ {PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR=толықтыру_факторы ] [ ON {файдар_тобының_аты | DEFAULT } ] ] ] | [ [ FOREIGN KEY ] REFERENCES басты_кестенің_аты 84 [(басты_кестенің_баған_аты) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ]] | CHECK [ NOT FOR REPLICATION]() } ::= [CONSTRAINT шектеу_аты ] { [ {PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] {(баған_аты [ASC | DESC][,...n])} [WITH FILLFACTOR= толықтыру_факторы] [ON { файдар_тобының_аты | DEFAULT } ]] |FOREIGN KEY[(баған_аты [,...n])] REFERENCES басты_кестенің_аты [(басты_кестенің_баған_аты [,...n])] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] | NOT FOR REPLICATION ] | CHECK [ NOT FOR REPLICATION ] (логикалық_өрнек) } Тұтастықты шектеулерде триггерлер, ережелер және үнсіз мәндер алдында басымдық бар. Тұтастықтың шектеулерге бастапқы кілт шектеуі PRIMARY KEY, сыртқы кілт шектеуі FOREIGN KEY, бірегейліктің шектеуі UNIQUE, мәндердің шектеуі NULL, тексерудің шектеуі CHECK жатады.
9.3.2. Алғашқы кілттің шектеуі (PRIMARY KEY) Әдетте кестеде мәндері кестенің әр жолын бірегей идентификациялайтын баған немесе бағандар комбинациясы болады. Бұл баған (немесе бағандар) кестенің алғашқы кілті деп аталады және ол кестенің тұтастығын қамтамасыз ету үшін керек. Егер алғашқы кілтке бірнеше баған кіретін болса, онда бір баған ішінде мәндер қайталануы мүмкін, бірақ барлық алғашқы кілттер бағандар мәндерінің комбинациясы бірегей болуы керек. Алғашқы кілт құру кезінде SQL Server алғашқы кілтке кіретін бағандар үшін автоматты түрде бірегей индекс құрады. Алғашқы кілтті сұраныстарда қолдану кезінде осы бағандар деректеріне қол жеткізуді жылдамдатады. Кестеде тек бір PRIMARY KEY шектеуі болуы мүмкін, алғашқы кілтке кіретін бағандарының мәндері NULL мәнін қабылдай алмайды. Алғашқы кілт ретінде алғашқы кілт шектеулері орындалмайтын бағанды (немесе бағандар тобын) таңдау кезінде, алғашқы кілт құрылмайды, ал жүйе қате туралы хабарлама береді. PRIMARY KEY шектеуі деректердің бірегейлігіне кепілдік беретіндіктен, ол жиі санауыш-бағандар үшін анықталады.
9.3.3. Сыртқы кілттің шектеуі (FOREIGN KEY) Сыртқы кілттің шектеуі – реляциялық дерекқор кестелері арасындағы сілтемелік тұтастықтықты қолдаудың негізгі тетігі. FOREIGN KEY параметрінде сыртқы кілт ретінде анықталған бағыныңқы кестенің бағаны, бас кестенің алғашқы кілт болатын бағанына сілтеме жасау үшін қолданылады. Бас кестенің аты және алғашқы кілт бағандары REFERENCES сөйлемінде көрсетіледі. Сыртқы кілт ретінде анықталған бағандардағы деректер, олар байланысқан бас кестенің алғашқы кілтті бағандарымен мәндері бірдей болуs керек. Бас және бағыныңқы кестедегі баған атаулары сәйкес келуі міндетті емес. Алғашқы кілт бір аты бар баған үшін анықталуы мүмкін, ал FOREIGN KEY шектеуі қойылған бағанның аты басқа болуы мүмкін. Тек бір талап койылады: бағандар деректер типі мен мөлшеріне бойынша сәйкес болуы керек. Алғашқы кілтке басқа кесетегі бағандар ғана емес өз кестесіндегі бағандар да сілтеме жасауы мүмкін, бұл рекурсивті құрылымдарды құруға мүмкіндік береді. Сыртқы кілт басқа кестенің байланысы алғашқы кілтпен ғана емес болуы мүмкін. Ол екінші кестенің UNIQUE шектеу бар бағандар үшін немесе қандай да бір басқа бағандар үшін анықталуы мүмкін, бірақ кестелер бір дерекқорда болуы тиіс. Сыртқы кілт бағандарында NULL мәні болуы мүмкін, бірақ FOREIGN KEY шектеуіне тексеру еленбейді. Сыртқы кілт индекстелуі мүмкін, сонда сервер қажетті деректерді тез табады. Сыртқы кілт кестені құрғанда және өзгерткенде анықталады. 9.3.4. Бірегей кілт шектеуі (UNIQUE) Бұл шектеу басқа жазбаларға қатысты бірегей кілтке кіретін өріс (баған) немесе өрістер тобы (бағандар) мәндерінің бірегейлік талабын орнатады. Кесте бағаны үшін UNIQUE шектеуі алғашқы кілтке ұқсас: деректердің әр жолы үшін 86 бірегей мәндер болуы тиіс. Кейбір баған үшін алғашқы кілт шектеуін қойып, бір мезгілде басқа баған үшін UNIQUE шектеуін орнатуға болады. Алғашқы және бірегей кілт шектеуіндегі айырмашылық келесіде: алғашқы кілтті кестедегі деректерді реттеуге және өзара байланысқан кестелерді жалғау үшін қолданады. Сонымен қатар, бірегей шектеуді пайдаланған кезде бір рет қана NULL мәні болуы мүмкі


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет