Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lecture_SBD.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.2 Mб
Скачать

2.3 Деректер қорын басқару жүйелері (дқбж). Инфологиялық және даталогиялық жақындау мәні.

Нақыт өмірді өзара байланысқан және әртүрлі тізбекті болмыспен біріктіруге болады. Бұрыннан бері адамдар осы болмысты сипаттамақшы болды (тіпті түсінбеген кезде де). Мұндай сипаттаманы дерек деп атайды. Әдетте деректер фиксациясы нақты жеткізгіштің хабарласудың нақты құралдары көмегімен (мысалы, нақты тіл мен көрініс көмегімен) іске асырылады (мысалы, таста немесе қағазда). Көбінесе деректер (тұжырым, болмыс, күй, идея немесе пәндер) және олардың интерпретациясы (семантикасы) бірге жылжытылады, сол сияқты нақты тіл ыңғайлы. Мысал болып тұжырым қызмет етеді "Авиабилет құны 128". Мұндағы "128" – деректер, ал "Авиабилет құны" – бұл семантика. Көбінесе деректер және интерпретация бөлінген. Мысалы, "Самолеттің қозғалыс кестесі" кесте түрінде көрсетілген (сур. 3), олардың жоғарғы бөлігінде (деректерден бөлек) оның интерпретациясы келтіріледі. Мұндай бөлу деректер жұмысын қиындатады (кестенің төменгі бөлігінен тез мәлімет алуға тырысыңыз).

Интерпретация

Рейс нөмірі

Апата күндері

Бару пунктті

Ұшу уақыты

Келу пунктті

Келу уақыты

Тікұшақ типі

Билет құны

Деректер

138

2_4_7

Баку

21.12

Москва

0.52

ИЛ-86

115.00

57

3_6

Ереван

7.20

Киев

9.25

ТУ-154

92.00

1234

2_6

Казань

22.40

Баку

23.50

ТУ-134

73.50

242

1–7

Киев

14.10

Москва

16.15

ТУ-154

57.00

86

2_3_5

Минск

10.50

Сочи

13.06

ИЛ-86

78.50

137

1_3_6

Москва

15.17

Баку

18.44

ИЛ-86

115.00

241

1 - 7

Москва

9.05

Киев

11.05

ТУ-154

57.00

577

1_3_5

Рига

21.53

Таллин

22.57

АН-24

21.50

78

3_6

Сочи

18.25

Баку

20.12

ТУ-134

44.00

578

2_4_6

Таллин

6.30

Рига

7.37

АН-24

21.50

Сурет 3 - Деректерді бөлу және олардың интерпретациясы.

Деректерді өңдеу және енгізу үшін ЭЕМ қолдану деректерді бөлу және интерпретациясына әкеліп соғады. ЭЕМ деректермен ғана айналысады. Интерпретацияланатын ақпараттың үлкен бөлігі жалпы түрде жылжымайды (ЭЕМ "білмейді", "21.50" дегеніміз авиабилет құны ма, әлде ұшу уақыты ма). Неге былай болды? Кем дегенде екі тарихи себеп бар, ЭЕМ қолдануда деректі интерпретациядан бөлу. Біріншіден, ЭЕМ мәтінді нақты тілде өңдеу үшін мүмкіндіктері жеткіліксіз – негізінен деректерді интерпретациялау тілінде. Екіншіден, ЭЕМ жады құны алғашқыда үлкен болды. Жады деректердің өзін сақтау үшін қолданылды, ал интерпретация әдетті пайдаланушыға қатысты болды. Пайдаланушы деректер интерпретациясын өзінің программасына қойды, ол "білді", мысалы, алтыншы енгізілетін мән тікұшақтың келетін уақытымен, ал төртінші – оның ұшу уақытымен байланысты. Бұл программа ролін жоғарлатты, өйткені деректер интерпретациядан тыс еске сақтау құрылғысында биттер жиынтығын береді. Деректер арасындағы және оның программаларымен қолданылатын қатты тәуелділік деректер арасында проблемалар тудырады және оны қолдануды иілгіш етеді. Сирек кездесетін жағдай, ЭЕМ қолданатын пайдаланушылар өз программаларында ұқсас ақпараты бар әртүрлі деректер жиынның құрады және қолданады. Бұл мынаумен байланысты, көбінесе пайдаланушы білмейді (әлде білгісі келмей ме), көрші бөлмеде немесе көрші столда қызметкер отыр, ол ЭЕМ керекті деректерді бұрын енгізіп қойды. Бұл жағдайда сол деректер, әртүрлі қосымашаларда тіпті әртүрлі ұйымдастырылыуы болады (жазбаның орналасуының әртүрлі тізбегін, бір өрістің өзі әртүрлі форматта және т.б.). Мұндай деректерді қоғамдастыру қиын: мысалы, өңдеушілермен жүргізілген, файл жазба құрылымының кез келген өзгерісі, осы файл жазбасын қолданатын сол программаны басқа өңдеушілермен өзгерту қажеттілігін тудырады. Көптеген есептеу орталықтарындағы аз ғана өзгертудің аяғы қиын болады. Алты символдан тұратын жаңа өріс адресін үстемелеу, әр программаға өзгеріс енгізу қажеттігін тудырады. Осы тапсырмада қолданылатын деректер өзгертілген өріс ұзақтығы қосындысымен сәйкес. Тұжырым бар, кейбір программаға оның функциясын орындау үшін пошта индексінің білімі қажет емес. Егер кейбір программаға ұзақ жазбаға үндеу болатын болса, онда мұндай программаға жадыдан қосымша орынды қамтамасыз ететін өзгеріс енгізіледі. Орталықтандырылған деректер қорын автоматты басқару шартында мұндай өзгертулер деректер қорын басқару программасының функциясымен байланысты. Пошта индексінің мәннің қолданбайтын программалар, онда модификациялауды қажет етпейді, әдеттегідей, сұранысқа сәйкес сол элементтер жіберіледі. Мұндай жағдайда енгізілген өзгеріс білінбейді. Жаңа элементті қолданатын программаларды ғана модификациялау қажет. Бірінші дәрісте көрсетілгендей, файлдық жүйенің әдеттегі мүмкіндіктері қарапайым ақпараттық жүйе құруға жеткілікті. Біз бірнеше қажеттіліктерді шығардық, файлды басқару жүйелерінің мүмкіндіктерін қолданбайтын: файлдың келісілген жиынның логикалық ұстау; деректерді манипуляциялау тілімен қамтамасыз ету; әртүрлі бұзылудан кейін ақпаратты қалпына келтіру; бірнеше пайдаланушылардың нақты параллельді жұмысы. Енді санауға болады, егер қолдаңбалы ақпараттық жүйе деректерді басқарудың кейбір жүйесіне сүйенетін болса, мұндай деректерді басқару жүйесін деректер қорын басқару жүйесі деп атайды (ДҚБЖ).

Дәлірек, ДҚБЖ функция қатарына келесіні жатқызуға болады:

1) Сыртқы жадыда деректерді тікелей басқару. Бұл функция тікелей ДҚ енетін, сыртқы жадының қажетті құрылыммен қаматамасыз ету, сол сияқты деректерді сақтау үшін де, мысалы, кейбір жағдайларда деректерге қатынауды жылдамдату (көбінесе бұл үшін индекстре қолданылады). ДҚБЖ үлестірудің кейбір жағдайларында бар файлдық жүйе мүмкіндіктері қолданылады, басқаларында жұмыс сыртқы жады құрылғыларының деңгейіне дейін жүргізіледі. Айтып кетеміз, дамыған ДҚБЖ пайдаланушылары кез келген жағдайда білуі керек емес, ДҚБЖ файлдық жүйе қолданатынын, егер қолданса, файл қалай ұйымдасқаны жөнінде. Негізінен ДҚБЖ ДҚ объектілеріне ат берудің жеке жүйесін ұстайды.

2) Оперативті жады буферлерін басқару. ДҚБЖ ДҚ белгілі өлшемімен жұмыс жасайды; түбінде бұл өлшем көбінесе оперативті жадының тиісті көлемінен көп болады. Түсінікті, деректердің кез келген элементіне үндеу кезінде сыртқы жады мен алмасу жүргізілсе, онда барлық жүйе сыртқы жады құрылғысы жылдамдығымен жұмыс істейді. Бұл жылдамдықты жоғарлатудың бір тәсілі оперативті жадыдағы деректерді буферлеу. Егер операциялық жүйе жалпы жүйелік буферлеуді жүргізсе, (UNIX ОЖ сияқты), ДҚ бөлігінде этого буферизация жөнінде ақпараты бар ДҚБЖ мақсаты үшін бұл аз. Сондықтан дамыған ДҚБЖ буферді алмастырудың жеке пәнімен оперативті жады буферлерінің жеке жиынымен ұсталынады. Барлық ДҚ оперативті жадыда тұрақты болуына бағытталған ДҚБЖ жеке бағыты болады. Бұл бағыт мынадай болжамға негізделеді, болашақта компьютерлердің оперативті жады көлемі өте үлкен болады, сондықтан буферизация жөнінде ойланбауға да болады. Бірақ бұл жұмыстардың барлығы зерттелу кезеңінде.

3) Транзакцияны басқару. Транзакция –ДҚБЖ бір бүтін болып қаралатын, ДҚ операция тізбегі. Транзакция сәтті орындалады, және ДҚБЖ ДҚ өзгерісін (COMMIT) белгілейді, сыртқы жадыдағы бұл транзакциямен жүргізілген өзгеріс ДҚ күйіне әсер етпейді. Транзакция түсінігі ДҚ логикалық бүтіндігін ұстау үшін қажет. Егер ҚЫЗМЕТКЕР және БӨЛІМ файлдарындағы ақпараттық жүйе мысалын еске түсірсек, онда ДҚ тұтастығын бұзбайтын жалғыз тәсіл, ол жаңа қызметкерді жұмысқа қабылдау операциясын орындаудағы бір транзакцияға ҚЫЗМЕТКЕР және БӨЛІМ файлдарының элементарлы операциясын біріктіру. Сонымен, транзакция механизмін ұстануда міндетті шарт ДҚБЖ бір пайдалнушылары (егер, мұндай жүйе ДҚБЖ деп аталса). Транзакция түсінігі ДҚБЖ көппайдаланушыларына да маңызды. Әр транзакция ДҚ бүтін күйінде басталғандықтан және аяқталғаннан кейін де осы күйді бүтін күйде қалдыруы, транзакция түсінігін қолдану ыңғайлы екенін білдіреді. ДҚБЖ жағынан транзакциямен орындалатын тиісті параллельді басқару кезінде, әр пайдаланушы ДҚБЖ жалғыз пайдаланушысы деп сезінеді (шындығында бұл біршама идеалды көрініс, соншалықты кейбір жағдайларда көппайдаланушыдағы ДҚБЖ пайдалуншысы). Көппайдаланушылар ДҚБЖ транзакциясын басқаруда, транзакция сериализация түсінігімен және транзакция қоспасының орындалуының сериализация жоспарымен байланысты. Сериализациямен параллельді орындалатын транзакция деп жұмыс істеу ретінің жоспары түсіндіріледі, ондағы транзакция қоспасының қорытынды эффектісі кейбір тізбектей орындалатын эффектке эквивалентті. Қоспа транзакциясының орындалуының сериальды жоспары – бұл транзакцияны сериализацияға келтіретін жоспар. Түсінікті, егер шындығында қоспа транзакциясының сериалды орындалуына жетуге болатын болса, онда олардың белсенділігімен транзакция құрылған әр пайдаланушы үшін басқа транзакцияның қатысуы білінбейтін болады (бір пайдалнушылар режиміндегі жұмыспен салыстырғанда). Транзакция сериализациясының бірнеше базалық алгоритмі бар. Орталықтандырылған ДҚБЖ-не ДҚ синхронды басып алынған объектілеріне негізделген алгоритмдер таратылған. Сериализацияның кез келген алгоритмін қолданған кезде, ДҚ объектісіне қатынау үшін, екі немесе одан да көп транзакция арасында келіспейтін жағдай болуы мүмкін. Бұл жағдайда сериализацияны ұстау үшін бір немесе бірнеше транзакцияның шегінісін орындау керек (ДҚ орындалған барлық өзгерістерді жою). Бұл бір жағдай, көппайдаланушылардың ДҚБЖ пайдаланушысы, жүйеде басқа пайдаланушылар транзакциясының бар екендігін сезеді (жағымсыз жағдай).

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

5) ДҚ тілдерін ұстану.

Деректер қорымен жұмыс істеу үшін арнайы тілдер қолданылады, толығымен айтқанда дерек қор тілдері. Бұрынғы ДҚБЖ өз функцияларына қарай бірнеше арнайы тілдер болды. Көбінесе екі тіл ерекше көрінді - ДҚ схемасын анықтау тілі (SDL - Schema Definition Language) және деректерді манипуляциялау тілдері (DML - Data Manipulation Language). SDL негізінен ДҚ логикалық құрылымын анықтау үшін керек болды. DML деректерді манипуляциялау үшін операторлар жиынтығынан тұрды. Операторлар ДҚ деректерді енгізуге, жоюға, модификациялауға және таңдауға мүмкіндік берді. Біз ДҚБЖ бұрынғы тілдерін келесі дәрісте толығырақ қарастырамыз. Қазіргі ДҚБЖ көбінесе бірыңғай интегралданған тіл ұсталынады. Онда барлық ДҚ жұмысы үшін қажетті, оның құрылуынан бастап және деректер қорымен пайдалнушы интерфейсін қамтамасыз ететін құралдар бар. Қазіргі заман талабына сай реляционды ДҚБЖ тарлған стандартты тіл болып SQL (Structured Query Language) табылады. Осы курстың бірнеше дәрісінде SQL тілі толығымен қаралады, әзірше біз реляциялық ДҚБЖ «тіл» деңгейіндегі негізгі функцияларын атап шығамыз (т.с. SQL интерфейсін тарататын функциялар). Алдымен, SQL тілі SDL және DML құралдарын қарайды, т.с.с реляциялық ДҚ схемасын анықтауға және деректерді манипуляциялауға мүмкіндік береді. Бұл жағдайда ДҚ объектілеріне ат беру (реляциялық ДҚ қоры үшін – кесте мен оның тік жолына ат беру) тіл деңгейінде болады, SQL тілінің компиляторы объект аттарын олардың ішкі идентификаторына түрлендіруді жүргізеді. ДҚБЖ ішкі бөлігі (ядро) кесте мен оның тік жолын аттарымен жұмыс жасамайды. SQL тілі ДҚ тұтастығын шектейтін арнайы құралдардан тұрады. Тұтастықты шектеу арнайы кесте-каталогтарында сақталынады, және ДҚ тұтастығын бақылау тілдік деңгейде қамтамасыз етіледі, т.с.с SQL компиляторы ДҚ модификациялаудың операторларының компиляциясы кезінде ДҚ тұтастығын шектеу негізінде программалық кодты генерациялайды. SQL тілінің арнайы операторлары ДҚ көріністерін анықтауға мүмкіндік береді (реляциялық ДҚ кез келген сұраныс нәтижесі кесте болып табылады). Пайдаланушы үшін көрініс ол ДҚ сақталынатын кез келген базалық кесте, бірақ көріністер көмегімен нақты пайдаланушы үшін ДҚ шектеуге және кеңейтуге болады. Көріністі ұстау тіл деңгейінде жүргізіледі. Сонымен, ДҚ объектілерін қатынау авторизациясы SQL операторларының аранйы жиынтығы негізінде жүргізіледі. Әр түрдегі SQL операторларын орындау үшін пайдаланушы жан-жақты болуы керек. ДҚ кестесін құрған пайдаланушы осы кестемен жұмыс істеуге толық мүмкіндігі бар. Мұндай мүмкіндік қатарына, осы мүмкіндіктің барлығын не болмаса жарты бөлігін басқа пайдалнушыға бере алатындығы жатады. Пайдаланушы мүмкіндіктері арнайы кесте-каталогында сипатталады, мүмкіндікті бақылау тіл деңгейінде қаралады.

Негізгі әдебиет [1], бет24 -31

Қосымша әдебиет [2], бет35-40

Бақылау сұрақтары

  1. Сіз деректер қоры архитектурасын қалай түсінесіз?

  2. Деректер қоры деңгейі дегеніміз не?

  3. ДҚБЖ дегеніміз не?

  4. Инфологиялық жақындау мәні ?

  5. Даталогиялық жақындау мәні?

Дәріс 3. Деректер қорын жобалау.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]