Тақырып 3. Дерекқор жүйесінің сəулеті. Деректерді ұсыну деңгейлері: сыртқы, тұжырымдамалық, ішкі. Пайдаланушының сұранысының өту үрдісі. Деректердің күрделі типтерінің көптеген түрлері бар, бірақ үлкен тəжірибелік материалда жүргізілген зерттеулер сол түрлердің ішінен бірнеше жалпы түрлерін бөліп көрсетуге болатынын көрсетті. Жалпылама құрылымдарды сонымен қоса деректер үлгілері деп те атайды, өйткені олар қолданушының шынайы өмірдің деректерін елестетуін бейнелейді. Деректердің құрылымының осы түріне тиесілі қасиеттерінің жиынытығын деректердің құрылымының сұлбасы белгілейді. Əрбір белгілі бір деректер үлгісінде деректер құрылымын құру анықталған ережелер бойынша орындалады. Деректер құрылымының сұлбалары топтардың жəне топтық қарым-қатынастың типтерін сипаттау үшін қолданылады, яғни ДҚ құрылымының сипаттамасын оның сұлбасы белгілейді. Деректердің сұлбасын көрсету үшін көбіне деректерді көрсетудің екі түрі қолданылады: графтық түрі, кестелік түрі. Сұлбаны графтық түрде көрсеткен кезде топтардың типтері графтың төбелерімен бейнеленеді, ал топтық қарым-қатынастар – сəйкес доғалармен. Сұлбаны кестелік түрде көрсету əдетте екі өлшемді кесте болып келеді. Түсіну жəне интерпретациялау жағынан осы əдіс ыңғайлырақ. Машиналық өңдеу кезінде кестелердің жəне олардың элементтерінің аналогтары ретінде файлдар, жазбалар, өрістер болуы мүмкін. Дерекқор белгілі бір пəндік аймаққа арналып жасалады жəне оның үлгісі болып табылады, өйткені белгілі бір мəселелерді шешу кезінде шынайылық сол мезетке бар шектеулермен іске асады, ал ол шектеулер жұмыс аймағына, алдыға қойылған мақсаттарға жəне есептеу жабдықтарының қуатына тəуелді. ДҚ жұмыс кезінде əртүрлі адамдар болады жəне осы əртүрлі адамдар іске қосатын əртүрлі бағдарламалар болады, адамдар ДҚ əртүрлі көреді. Соңғы қолданушы қандай да бір қолданбада жұмыс істейді жəне ішкі құрылым жайлы ешнəрсе білмейді. Бұл қолданушы пайдаланып отырған бағдарлама жəне сəйкесінше осы бағдарламаны жазған бағдарламашы дерекқордың тек қана оларға көруге рұқсат етілген бөлігін көреді. Қандай да бір қолданушыларға қандай да бір деректерді көруге рұқсат ететін əкімші дерекқордың бүкіл сұлбасын көреді. ДҚБЖ ядросын жасаған жəне əкімшіге дерекқордың сұлбасын жасауға мүмкіндік берген бағдарламашылар тобы дерекқордың сыртқы құрылғыларға жəне жадыға бейнеленуін іске асырды. Сондықтан деректер үлгісін көрсетудің үш түрі қолданылады: o Концептуалдық – ақпараттық жүйенің əкімшісінің, яғни ДҚ жұмысына толығымен жауапты адамның көзқарасы бойынша, бүкіл тапсырманы қамтитын; o Сыртқы – нақты қолданушының, яғни белгілі бір жұмыс орнында жүйенің жұмысының тар тапсырмасын шешетін адамның көзқарасы бойынша, тапсырма жайлы көрсетімді бейнелейді (əрбір ақпараттық жүйе деректер үлгісінің бірнеше сыртқы көрсетімдерін иемденетін болады – А, В, С жəне т.б.); o Ішкі – шешілетін тапсырма іске асыраылатын белгілі бір ДҚБЖ мен компьютерлердің ерекшеліктері мен мүмкіндіктерін ескере отырып əзірлеушінің (бағдарламашының) ақпараттық тапсырмасы жайлы көрсетімді бейнелейді. Осыған сəйкес деректерді көрсетудің бірнеше деңгейлерін бөледі, олардың жиынтығы дерекқорлар жүйесінің сəулетін құрады. Дерекқорлар жүйесінің стандартты сəулеті (ANSI стандарты – American National Standart Institut, сосын ISO – International Standart Organization) сəулеттің үш деңгейін иемденеді: сыртқы, концептуалды, ішкі. Əрбір деңгейде өзінің үлгісі (көрсетімі) қолданылады, ол жазбалардан тұрады (əрбір жазба объектінің бір данасы жайлы деректерден тұрады). 1. Сыртқы үлгілер деңгейі – ең жоғарғы деңгей, мұнда əрбір үлгінің өзінің деректер «көрсетмі» болады. Бұл деңгей жеке қолданбалардың ДҚ көзқарасын анықтайды. Əрбір қолданба дəл осы қолданбаға қажетті деректерді ғана көреді жəне өңдейді. 2. Концептуалды деңгей – мұнда дерекқор жалпылама түрде келтірілген, ол осы дерекқормен жұмыс істейтін барлық қолданбалар пайдаланатын деректерді біріктіреді. Шынында, концептуалды деңгей осы дерекқор арналып жасалған пəндік аймақтың (шынайы өмірдің объектілерідің) жалпыланған үлгісін бейнелейді. Кез-келген үлгі сияқты, концептуалды үлгі шынайы өмірдің объектілерінің, өңдеу жағынан алып қарағанда, тек қана маңыздыларын бейнелейді. 3. Физикалық деңгей – файлдарда немесе сыртқы ақпарат тасуыштарда орналасқан парақтық құрылымдарда орналасқан деректер. Бұл сəулет деректермен жұмыс істеген кезде логикалық (1 жəне 2 деңгейлерінің арасында) жəне физикалық (2 жəне 3 деңгейлерінің арасында) тəуелсіздікті қамтамасыз етуге мүмкіндік береді. Логикалық тəуелсіздік дегеніміз бір қолданбаны дəл осы дерекқормен жқмыс істейтін басқа қолданбаларды өзгерту енгізусіз өзгерту мүмкіндігін білдіреді. Физикалық тəуелсіздік осы дерекқормен жұмыс істейтін барлық қолданбалардың жұмыс істеу қабілетін сақтаған кезде сақталып тұрған ақпаратты бір тасуыштардан екіншілерге көшіру мүмкіндігін білдіреді. Бұл файлдық жүйелерді қолданған кезде жетіспеген нəрсенің дəл өзі. Концептуалды деңгейді бөлу дерекқорды ориталықтан басқару аппаратын əзірлеуге мүмкіндік берді. Пайдаланушының сұранысының өту үрдісі: 1. Пайдаланушы ДҚ деректер алуға сұранысын ДҚБЖ жібереді. 2. Осы пайдаланушы мен деректердің сыртқы үлгісіне сəйкес құқықтарды талдайды жəне сұралған деректерге осы қолданушының қатынас құруын растайды немесе рұқсат бермейді. 3. Деректерге рұқсат бермеу жағдайында ДҚБЖ пайдаланушыға осы жайлы хабарлайды жəне деректерді ары қарай өңдеу үрдісін тоқтатады, керісінше жағдай болса, онда ДҚБЖ концептуалды үлгінің қолданушының сұранысы қозғайтын бөлігін анықтайды. 4. ДҚБЖ концептуалдық үлгінің сұратылған бөлігі жайлы ақпаратты алады. 5. ДҚБЖ физикалық деңгейде (файлдар жəне физикалық мекен-жайлар) деректердің қайда орналасқаны жайлы ақпарат сұрайды. 6. ДҚБЖ-ға операциялық жүйенің терминдерінде деректердің қайда орналасқаны жайлы ақпарат қайтарылады. 7. ДҚБЖ операциялық жүйенің өз жабдықтарын қолдана отырып қажетті деректерді беруді сұрайды. 8. Операциялық жүйе сақтау құрылғысынан ақпаратты шығарады жəне оны жүйелік буферге жібереді. 9. Операциялық жүйе ДҚБЖ жіберудің аяқталғаны жайлы хабардар етеді. 10. ДҚБЖ жүйелік буферде орналастырылған жеткізілген ақпараттан тек қана қолданушыға керекгін алады да, бұл деректерді қолданушының жұмыс аймағына жібереді. Əрине, шын ДҚБЖ сұраныстың өту тетігі бұдан əлдеқайда күрделірек, бірақ соған қарамастан келтірілген қысқа сұлба да шынай ДҚБЖ сұранысты өңдеу тетіктері қаншалықты күрделі жəне қиын болуы мүмкін екендігін көрсетеді. Əрбір ДҚБЖ белгілі бір деректер үлгісін қолдайды. Деректер үлгісінің негізгі сыңарларына деректер құрылымы, деректерге жасалатын операциялар, деректердің бүтіндігін шектеу жатады. Олар бір-бірімен жақын байланысқан жəне əртүрлі деректер үлгілерінде түрліше əдістермен іске асырылуы мүмкін. Төменде деректерді құрылымдаудың жалпы ұстанымдары, құрылымдарды құру ережелері, негізгі операциялар жəне бүтіндікті шектеу түсініктері қарастырылады, олар ДҚ-ны жасау жəне жүргізу кезінде деректер үлгісінің түріне байланыссыз қолданылады. Деректердің құрылымдарының белгілі бір түрлерін белгілеу үшін қолданылатын терминдердің түрлерінің көптігіне қарамастан, қазіргі кезде КОДАСИЛ (CODASIL – the Conference on Data Systems Languages) – деректерді: өңдеу жүйелерінің тілдері бойынша Ассоциациясы ұсынған терминология кеңінен таралған: деректер элементі, деректер тобы (агрегат), жазба, жиын, файл, дерекқор. Деректер элементі – деректердің ең кіші бірлігі (файлдық жүйелердегі өрістің аналогы). Деректер элементі – ДҚБЖ тікелей қатынас құратын жəне соның көмегімен барлық қалған құрылымдарды құру іске асырылатын деректердің ең кіші элементі. Əдетте деректер элементі объектінің қасиетін (атрибутын) белгілеу үшін қолданылады. Деректер элементінің мəні кезкелген типте болуы мүмкін: символдық, сандық, күн/уақыт типті, логикалық типті жəне т.б. Мысалы, объект – студент, қасиеті – туған күні, деректер элементінің мəні – 20.07.1982. Деректер тобы (агрегат) – деректер элементтерінің жиынтығы жəне (немесе) бір бүтін деп қарастыруға болатын жазбаның ішіндегі басқа да топтардың атаулы жиынтығы. Жазба – ешқандай топтарға кірмейтін элементтердің немесе элементтер мен топтардың атаулы жиынтығы. Əдетте жазба объектінің экземплярының қасиеттері жайлы деректерді бейнелейді. Жиын – екі деңгейлі иерархиялық құрылымды құратын екі типтес жазбалардың атаулы жиынтығы. Жиынның əрбір типі жазбалардың екі немесе бірнеше типтерінің арасындағы қатынасты білдіреді. Жиынның негізгі мəні – жазбалар арасындағы байланыстарды көрсету. Деректер файлы – жазбалардың реттелген жиынтығы. Дерекқор – əртүрлі типтес жазбалардың экземплярларының аитаулы жиынтығы, ол жиындардың экземплярлары ретінде көрсетілген жазбалар арасындағы сілтемелерді сақтайды. Дерекқор бір немесе бірнеше деректер файлдарынан тұруы мүмкін. ДҚ-да дерекқордағы топтардың арасындағы байланыстарды тағайындау үшін қажет топтық қатынастар қолданылады. ДҚ – топтардың жəне топтық қатынастардың экземплярларының атаулы жиынтығы деп айтуға болады. Топтық қатынастарда топтың бір типі – қатынастың иесі, ал екіншісі – қатынастың мүшесі. Топтық қатынастың типі топтардың екі типтерінің арасында белгіленеді. Қарастырылып отырған топтардың экземплярларының арасындағы бинарлық байланыстардың сипаттамасы бойынша мынадай топтық қатынастарды бөлеміз: 1:1 (бір бірге), 1:М (бір көпке), М:1 (көп бірге), М:М (көп көпке). Деректермен жасалған кез-келген оперцияға кіреді: таңдау (ізделінетін деректерді бөліп көрсету) жəне белгіленген деректерге жасалған операция. Таңдау келесі мəндердің бірін қолдану арқылы орындалады: деректің логикалық позициясын қолдану арқылы, деректің мəнін қолдану арқылы, деректер арасындағы байланыстарды қолдану арқылы. Белгіленген деректерге қолданылатын барлық операцияларды негізгі жəне қосымша деп бөлуге болады. Негізгі операцияларға жатады: oдеректерді идентификациялау жəне ДҚ олардың орналасу орнын табу; oДҚ деректерді таңдау (оқу); oДҚ деректерді қосу (жазу); oДҚ деректерді жою (өшіру); oДҚ деректерді өзгерту. Қосымша операцияларға дерекетердің құрылымдарының арасында байланыс орнату жəне оны үзу жатады. Деректер үлгісінің мағыналы сыңары – бүтіндікті шектеу болып табылады. Бүтіндікті шектеу деп деректердің бір-біріне қарама-қайшы болмауын сақтау мақсатында жəне белгілі бір ДҚБЖ құрылымдық ерекшеліктеріне сəйкес болуын сақтау мақсатында дерктерге қойылатын логикалық шектеулерді түсінеміз. Бүтіндікті шектеулер мынадай болады: oішкі (ДҚ белгілі бір сұлбасындағы деректер құрылымының сəйкестендіру ережелері арқылы деректер үлгісінде келтіріледі); oайқын немесе сыртқы (шектеулерді ДҚ əкімшісі немесе бағдарламашы айқын түрде тағайындайды). Бүтіндікті шектеулерді деректер элементтері, топтар, жазбалар, топтық қатынастар үшін арнайыландыруға болады. Қазіргі ДҚБЖ айқын бүтіндікті шектеулерді тағайындау үшін өрістерге енгізілетін мəндерді, жазбаларды тексерудің əртүрлі ережелері, арнайы қою, жою, өзгерту триггерлері жəне т.б. жабдықтар қолданылады. Бақылау сұрақтары: 1. ДҚ көрсетудің сыртқы деңгейінің анықтамасын айтыңыз. 2. ДҚ көрсетудің концептуалды деңгейінің анықтамасын айтыңыз. 3. Дерекқордың стандартты сəулетінің қанша деңгейлері бар? 4. Деректердің сыртқы үлгісі қандай болып келеді? 5. Деректердің концептуалды үлгісі қандай болып келеді? 6. Деректердің ішкі үлгісі қандай болып келеді? 7. Дерекқорлар сəулетінің кез-келген квалификациялы қолданушы қол жеткізе алатын деңгейі қалай аталады? 8. Сұлбаыс мен үлгісінде сақтау құрылымы мен қатынас құру стратегиясы есепке алуынсыз, деректер жайлы барлық ақпарат сақталатын дерекқорлардың сəулетінің деңгейі қалай аталады?