Тапсырма 2. Кадр құрамын есепке алу.
Мұнда «ҚЫЗМЕТКЕР» (СОТРУДНИК) карточкасында ұсынылған,
қызметкерлер туралы мәліметтер өңделеді:
Тегі,
аты-жөні,
әкесінің аты
Қызметі
Туған жылы
Еңбек
ақысы
Мекен
жайы
FIO
D
G
O
M
Есепті шешу келесі сатылардан тұрады:
Бастапқы деректерді енгізу және оларды сыртқы жадыға кіргізу.
Жазбаны жою, жөндеу немесе қосу мақсатымен сыртқы жадыдан
бастапқы деректерді оқу.
...
{ Сыртқы жадыдан деректерді оқу }
Assign(F, 'MyFile.fsf');
Reset(F);
IsFound := False;
For I := 1 to N do
Begin
Read(F, Sotr);
If Sotr.FIO = KeyFio Then
Begin
IsFound := True;
Sotr.D := Бөлім бастығы';
Seek(F, FilePos(F)-1);
Write(F, Sotr);
Break;
End;
If IsFound Then
WriteLn('Жөндеу сәтті жүргізілді')
Else WriteLn('Қызметкер ', KeyFio, 'табылған жоқ');
Close(F);
...
Қарастырылып отырған жағдайда тапсырма 2 тапсырма 1 тәуелсіз
шешіледі.
Тапсырма 3. Қызметкердің ауыруына байланысты еңбек ақы қорын
(ЕАҚФ) үнемдеу есебі.
«ЕАҚФ ҮНЕМДЕУ» (ЭКОНОМИЯ ФОТ) жазбасымен ұсынылған,
деректер өңделеді:
Тегі, аты-жөні,
әкесінің аты
Еңбек ақы
Еңбекке
жарамсыз
парағындағы
күндер саны
Төленбеген
сома
FIO
O
K
дв
SN
SN=K
дв
O/K
r
.
Тапсырма 3 шешу бағдарламасы тапсырма 1 шешу бағдарламасына ұқсас.
Жоғарыда көрсетілген барлық үш бағдарламалық жүйе бір мекемеде
болатын, әдеттегі жағдайды қарастырайық. Келесі түбегейлі пайдалану
кемшіліктерін атап өтейік:
Ақпараттар қайталанады. Үш файлда да FIO, O өрістері бар, бұл елеулі
артық жұмсалуына алып келеді. Өзгертулер енгізу кезінде (мысалы, тектерін
өзгерту) бір мәнді бірнеше рет әртүрлі файлға енгізуге тура келеді, бұл
машиналық уақыт шығынының жоғарлауына алып келеді. Деректердің қарама-
қайшылығының әлеуетті мүмкіндігі бар (бір файлға өзгертулер енгізілген, ал
екіншісіне енгізілмеген).
Сәйкес жазбаларды біріктіру және жоғарыда аталған есептердің барлығы
үшін бір ақпараттық қор (база) құру арқылы аталған кемшіліктерді жоюға
болады. Бір қарағанда, қайталанатын өрістерді алып тастап, барлық жазбаларды
бір жазбаға біріктіру барынша табиғи. Біріктірудің мүмкін нұсқасын аламыз:
FIO
D
O
G
K
o
M
K
дв
S
SN
Ақпараттардың қайталануы толығымен алынып тасталды. Жады шығыны
аз. Кемшіліктер жойылды. Бұл жағдайда 1–3 тапсырмаларының қалай
өзгеретінін қарастырайық. Есепті шешу уақыты сыртқы жадыдағы деректерді
санау көлеміне тікелей тепе тең.
Әр есеп үшін жеке файлдарды қолдану кезінде i –ші есептің ( i = 1, 2, 3)
шешу уақытын, жазба ұзындығын, жазба санын сәйкесінше T
i
, l
i
, N
i
белгілейік:
Т
і
≈C ·L
i
·N
i
,,
мұндағы C – тепе-теңдіктің кейбір коэффициенті.
Біріккен жазбаларды, жазба ұзындығын, жазба санын қолдану кезіндегі
i –ші есептің ( i = 1, 2, 3) шешу уақытын сәйкесінше R
i
, d, N белгілейік:
R
і
≈C ·d ·N,
N1 = N2 = N, N3 << N ескерейік.
Онда i –ші есепті ( i = 1, 2) шешу уақыты біріккен файлды қолдану кезінде
R
і
/T
i
≈d/L
i
рет жоғарылайды. Біздің мысалымыз үшін таңдалған өріс ұзындығына
байланысты 2–3 есе өзгеруі мүмкін. Осылайша, қайталануды жою есепті шешу
уақытының өсуіне алып келеді. Ережеге сәйкес мұндай өсу мүмкін.
Тапсырма 3 шешу уақыты R3/T3 ≈d·N/l3·N3 есе өседі. Себебі берілген
мысал үшін N3 << N, онда R3 >> T3. Тапсырма 3 шешу уақыты бірнеше қатарға
өсуі мүмкін, бұл тіптен мүмкін емес.
Бір ақпараттық қорды құрудың басқа нұсқасын қарастырайық. 1 және 2
тапсырмалардың жазбаларын біріктіріп, тапсырма 3 жеке қалдырайық. Екі
жазбаны аламыз:
FIO
D
O
G
K
o
S
M
FIO
O
K
дв
SN
Бұл жағдайда қайталану қалады (FIO, O өрістері қайталанады).
Бірақ N3<1 және 2 тапсырмаларды шешу уақыты жеке файлдық жүйелер
нұсқасымен салыстырғанда аздап өседі, тапсырма 3 шешу уақыты жеке
файлдың алдыңғы нұсқасындағыдай қалады. Мұндай біріктіру
кемшіліктердің ықпал етуін біршама азайтады және сонысмен бірге
барлық тапсырмалардың шешу уақытын біршама жоғарылатады.
Барлық үш тапсырмаларды, екі түрлі жазбадан тұратын ортақ
ақпараттық қорды қолдана отырып, шешуге болады. Екі келтірілген
жазба типтері бір-бірімен FIO өрісі бойынша байланысқан.
Интеграцияның келтірілген нұсқалары келтірілген тапсырмалар үшін
интеграцияның барлық мүмкін тәсілдерін тамамдамайды және ең
жақсы нұсқаны таңдау сұрағына келесі дәрістерде ораламыз.
Мұнда бұл жағдайда жоғарыда көрсетілген тапсырмаларды шешу
үшін, жазбаны интеграциялау негізінде құрылған, деректердің кейбір
жаңа түрлері қолданылады.
Бұл түрдегі деректерді сипаттау үшін «Деректер қоры» деген
жаңа түсінік енгізіледі [1.1].
Деректер қоры – әртүрлі типтегі жазба даналарының жиынтығы
және жазбалар мен элементтер арасындағы қатынастар.
Деректер қорын мнималды артықтығы бар болған кезде өзара
байланысқан бірге сақталатын деректер ретінде анықтауға болады. Бір
немесе бірнеше қосымшалар үшін оларды тиімді қолдануға мүмкіндік
береді.
Осылайша, «Деректер қоры» түсінігінің пайда болуы есептеуіш
емес есептердің жаңа класының пайда болуымен шарттасқан. Оларды
шешу кезінде ортақ деректер қолданылады. Деректер қорын
құрастырудың тиімді критериі ретінде, ережеге сәйкес, қолданбалы
бағдарлама қолданушылары сұраныстарын жүзеге асырудың уақытша
сипаттамалары қолданылады.
Қысқаша
қорытынды.
Деректерді
ұсынудың
негізгі
түсініктерінің дамуы қарастырылды. Деректермен (айнымалы, жиын)
байланысты бағдарламалаудың калассикалық нұсқасы және шешілетін
есептердің кеңу нәтижесі мен олардың бағдарламалау жүйесіндегі
бейнесі секілді бағдарламалаудың жаңа түсініктерінің пайда болуы
сипатталды. Жалпы деректердің бірнеше есептерін қолдану кезіндегі
деректерді интегралдау есебі қойылды. Деректер қоры түсінігі
анықталды.
Document Outline - 1.1 Деректерді ұсынудың негізгі түсініктерінің дамуы
Достарыңызбен бөлісу: |