Реляциялық деректер қоры

Деректер қоры (ДҚ) – мекеменің ақпараттық қажеттіліктерін қанағатандыруға арналған логикалық байланысқан деректердің жиынтығы (және олардың сипаттамасы).

Реляциялық  деректер қоры Негізгі ақпараттық ағындарды басқару бастауын дәстүрлі деректер қоры жүйесінен алатын реляциялық басқару жүйесі көмегімен жүзеге асырылады. Реляциялық деректер қоры мен клиент-сервер технологиясын біріктіру заманауи кәсіпорынға тауарлар мен қызметтер нарығында бәсекеге қабілеттілігін сақтай отырып, өз деректерін табысты басқаруға мүмкіндік береді. Реляциялық деректер қорында математикалық қатынастар теориясына негізделген қуатты теориялық негіз бар. Реляциялық деректер қоры теориясының пайда болуы, екі класқа бөлінетін сұраныстар тілін жасауға негіз болды:

– қатынастарға қолданылатын арнайы операторлар арқылы сұраныстарды сипаттауға мүмкіндік беретін алгебралық тілдер;

– қолданыстағы қарым-қатынастардың белгілі бір жиынтығынан жаңа қатынасты анықтайтын өрнекті жазу ережелерінің жинағы болып табылатын предикаттық есептеу тілдері. Ендеше предикаттық есептеу тілі деректер қорындағы қолданыстағы қатынастардан сұранысқа жауап ретінде алынатын жаңа қатынасты анықтау әдісі болып табылады. Реляциялық ДҚБЖ мысалдары: MySql, PostgreSql. Реляциялық модель де шынайы өмір нысандары және нысандар арасында ғы байланыс, өзара байланысқан кестелер (қатынастар) көмегімен ұсынылады. ДҚБЖ функциялары бір немесе бірнеше кестеден ақпарат таңдау үшін пайдаланған жағдайда да (яғни сұраныс жасалғанда) нәтиже кесте түрінде ұсынылады. Сонымен қатар сұранысты басқа сұраныстың нәтижелерін пайдалану арқылы жасауға болады.

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

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

Деректер қоры кестелерінің арасындағы реляциялық байланыс

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

– «біреуден – көпке»;

– «біреуден – біреуге»;

– «көптен – көпке».

«Біреуден – көпке» қатынасы

«Біреуден – көпке» қатынасында негізгі кестенің бір жаз басына бағынышты кестенің бірнеше жазбасы сай келеді. «Біреуден – көпке» байланысын кейде «көптен – біреуге» деп те атайды. Екі жағдайда да кестелер арасындағы байланыс өзгеріссіз қалады. Байланыстың бұл түрі реляциялық деректер қоры үшін кең тарал ған. Сонымен қатар ол деректердің иерархиялық құрылымын модельдеуге мүмкіндік береді.

«Біреуден – біреуге» қатынасы

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

«Көптен – көпке» қатынасы

«Көптен – көпке» қатынасы мынадай жағдайларда қолданылады: – негізгі кестедегі бір жазбаға бағынышты кестенің бірден көп жазбалары сәйкес келеді;  – бағынышты кестенің бір жазбасына негізгі кестенің бірнеше жазбасы сәйкес келеді. Реляциялық деректер қорындағы кез-келген «көптен – көпке» қатынасын, қосымша кестелерді енгізу арқылы «біреуден – көпке» қатынасына ауыстыру керек.

Деректер қорында бастапқы кілтті анықтау

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