Дерекқорды басқаруды жеңілдететін негізгі кілттер

Дерекқор кілті тиімді реляциялық дерекқорды жасаудың ең оңай жолы болып табылады

Өздеріңіз білетіндей, дерекқорлар ақпаратты ұйымдастыру үшін кестелерді пайдаланады. (Егер дерекқор туралы түсініктермен негізгі танысу болмаса, онда Дерекқор дегеніміз не? ) Әрбір кесте бір дерекқордың жазбасына сәйкес келетін бірқатар қатардан тұрады. Сонымен, дерекқорлар осы жазбалардың барлығын қалай сақтайды? Бұл кілттерді қолдану арқылы.

Бастапқы кілттер

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

Мысалы, бізде біздің фирмадағы әрбір қызметкерге арналған персонал туралы ақпаратты қамтитын Қызметкерлер деп аталатын үстел бар деп есептеңіз. Әрбір қызметкерді анықтайтын тиісті бастапқы кілт таңдау қажет. Алғашқы ойыңыз қызметкердің атын қолдануы мүмкін. Бұл өте жақсы жұмыс істемейді, себебі сіз бірдей атымен екі қызметкерді жалдауға болар еді деп ойлайсыз. Әр қызметкерге жалдаған кезде тағайындайтын бірегей қызметкердің жеке нөмірін пайдалану жақсы таңдау болуы мүмкін. Кейбір ұйымдар бұл тапсырма үшін Әлеуметтік қауіпсіздік нөмірін (немесе үкіметтің ұқсас идентификаторларын) пайдалануды таңдайды, себебі әр қызметкердің біреуі бар және олар бірегей болуға кепілдік береді. Дегенмен, Әлеуметтік қамсыздандыру қауіпсіздігінің осы мақсаттарға қолжетімділігі құпиялылыққа байланысты мәселелерге байланысты өте қарама-қайшы. (Егер сіз үкіметтік ұйымда жұмыс істесеңіз, 1974 жылғы Құпиялылық туралы Заңда Әлеуметтік қамсыздандыру нөмірін пайдалану заңсыз болуы мүмкін). Осы себептен көптеген ұйымдар бірегей идентификаторларды (қызметкердің жеке куәлігі, студенттің идентификаторы және т.б.) пайдалануға көшті. .), бұл құпиялылық туралы мәселелерді бөліспейді.

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

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

Көптеген дерекқорлар өздерінің бастапқы кілттерін жасай алады. Microsoft Access, мысалы, кестеде әрбір жазбаға бірегей идентификатор тағайындау үшін Автосанағыш деректер түрін пайдалануға теңшелген болуы мүмкін. Тиімді болғанда, бұл нашар дизайн тәжірибесі, себебі ол сізді үстелдегі әрбір жазбаға мәнсіз мән қалдырады. Неге пайдалы нәрсе сақтау үшін осы кеңістікті қолдануға болмайды?

Шетелдік кілттер

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

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

Деректер базасы қызметкерлердің кестесінің бағандар бағанындағы барлық мәндер бөлімшелер кестесінде тиісті жазбаларға ие болуын қамтамасыз ету арқылы сілтеме тұтастығын қамтамасыз етеді.

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

Осы тақырып бойынша қосымша ақпарат алу үшін, Шетелдік кілттерді жасау бөлімін оқыңыз.