Дәріс №8. Қатынасты қарапайымдау
Дәріс жоспары
-
Қатынасты қарапайымдау.
-
Бірінші қарапайым форма.
-
Екінші қарапайым форма.
-
Үшінші қарапайым форма.
Дәрістің қысқаша мазмұны
Қатынасты қарапайымдау түсінігі
Бірдей деректер кестеде әр түрлі әдістермен топтасуы мүмкін, яғни байланысқан ақпараттық объектілер қатынастының әр түрлі жиынтығын ұйымдастыру мүмкін. Қатынаста атрибуттарды топтау рационалды болуы керек, яғни деректердің көшірмесін минимизациялайтын және оларды өңдеу мен жаңарту процедурасын жеңілдететін.
Қатынастың белгілі жиынтығы деректерді қосу, модификациялау, жою кезінде қатынастың барлық қалған мүмкін жиынтықтарына қарағанда жақсы құрамдармен қамтамасыз етіледі.
Қатынасты қарапайымдау – көшіруді жоюға мүмкіндік беретін қатынастарды (кестелер) қалыптастыруға формальды аппарат шегі.
Е.Коддпен қатынастың үш қарапайымдау формасы ерекшеленген және кез келген қатынасты үшінші қарапайымдау формасына айналдыруға мүмкіндік беретін механизмді ұсынды.
Бірінші қарапайымдау формасы
Егер барлық атрибуттары қарапайым болса, қатынас бірінші қарапайымдау формасына келтірілген деп аталады. Қатынастың бірінші қарапайымдау формасына айналуы қатынас реквизиттер (өрістер) санының өсуіне және кілттің өзгеруіне әкелуі мүмкін.
Мысалы, Студент=(Номер, Фамилия, Аты, Отчество, Күні, Тобы) қатынасы бірінші қарапайымдау формасында тұр.
Екінші қарапайымдау формасы
Қатынасты екінші қарапайымдау формасына келтіру сұрағын қарастыру үшін функционалды тәуелділік және толық функционалды тәуелділік сияқты түсініктерге сипаттама беріп кету қажет.
Ақпараттық объектінің бейнеленген реквизиттері оларға арналған жалпы кілтпен логикалық байланысқан, бұл байланыс реквизиттердің функционалды тәуелділігін сипаттайды.
Реквизиттердің функционалды тәуелділігі – кілттік реквизиттің анықталған мәнінде ақпараттық объектінің көшірмесі кезіндегі тәуелділік суреттелген реквизиттің бір ғана мәніне сәйкес келеді.
Функционалды тәуелділіктің мұндай анықтамасы пәндік облыс реквизиттерінің барлық қарым-қатынастарын анализдеу кезінде жеке ақпараттық объектілерді бөлуге мүмкіндік береді.
Мысал 4. Студент реквизитінің функционалды тәуелділігін графиктік бейнелеу мысалы суретте көрсетілген, мұнда кілттік реквизит * түрінде берілген.
Номер*
Фамилия
Аты
Отчество
Күні
Тобы
Құрама кілт жағдайында функционалды толық тәуелділік түсінігі енгізіледі.
Кілттік емес атрибуттардың функционалды толық тәуелділігі әрбір кілттік емес атрибут функционалды түрде кілтке байланысты, бірақ құрама кілттің ешқандай бөлігінің функционалды тәуелділігінде жатпайтынымен анықталады.
Қатынас екінші қарапайымдау формасында жатады, егер ол бірінші бірінші қарапайымдау формасынада жатса, және әрбір кілттік емес атрибут құрама кілттен функционалды байланысты болады.
Мысал 5. Студент=(Номер, Фамилия, Аты, Отчество, Күні, Тобы) қатынасы біруақытта бірінші және екінші қарапайымдау формасында тұр, өйткені суреттелген реквизиттер бірмәнді анықталған және Номер кілтіне функционалды байланысты. Үлгерім=(Номер, Фамилия, Аты, Отчествосы, Пән, Баға) қатынасы бірінші қарапайымдау формасында жатыр және Номер+Пән құрама кілті бар. Бұл қатынас екінші қарапайымдау формасында тұрған жоқ, өйткені Фамилия, Аты, Отчествосы атрибуттары қатынастың құрама кілтімен толық функционалды тәуелділікте тұрған жоқ.
Үшінші қарапайымдау формасы
Үшінші қарапайымдау формасы түсінігі транзитивтік емес тәуелділік түсінігіне негізделген.
Транзитивтік тәуелділік егер екі суреттелген реквизиттердің біреуі кілтке тәуелді, ал басқа суреттелген реквизит бірінші суреттелген реквизитке тәуелді болған жағдайда бақыланады.
Қатынас үшінші қарапайымдау формасында болады, егер ол екінші қарапайымдау формасында тұрса, және әрбір кілттік емес атрибут бастапқы кілттен транзитивті емес тәуелді болады.
Мысал 6. Егер Студент ақпараттық объектісінің суреттелген реквизиттер құрамына тек топ номерімен анықталатын топ старостасының фамилиясын қоссақ, онда старостаның фамилиясы берілген ақпараттық объектінің әр түрлі көшірмелерінде бірнеше рет қайталанады. Бұл жағдайда жаңа старостаны сайлау кезінде староста фамилиясын өзгерту кезіндегі қиындықтар пайда болады.
Суреттелген реквизиттердің транзитивті тәуелділігін жою үшін берілген ақпараттық объектінің «бөліктеуін» (расшепление) жүргізу қажет. Бөліктеу нәтижесінде реквизиттер бөлігі берілген ақпараттық объектіден жойылады және басқа ақпараттық объектілер (мүмкін жаңа құрылған) құрамын қосады.
Мысал 7. Суреттелген реквизиттердің құрамында транзитивті тәуелділігі бар ақпараттық объектілерді «бөліктеу» суретте көрсетілген. 5 мысалдан көргеніміздей, топ Студенті ақпараттық объектісі құрылымдық ақпараттық объектілер (Студент және Топ) жиынтығы түрінде көрсетіледі. Студент=(Номер, Фамилия, Аты, Отчество, Күні, Тобы) қатынасы біруақытта бірінші, екінші және үшінші қарапайымдау формасында тұр.
Топ студенті Студент Топ
Номер* Номер* Топ*
Фамилия Фамилия Староста
Аты Аты
Отчество Отчество
Күні Күні
Топ Топ
Староста
Бақылау сұрақтары
-
Қарапайымдау дегеніміз не?
-
1-ші қарапайым формаға түсініктеме беріңіз.
-
Функционалдық қатыстылық дегеніміз не?
-
Толық функционалды қатыстылық дегеніміз не?
-
Транзитивті қатыстылық дегеніміз не?
-
2-ші қарапайым формаға түсініктеме беріңіз.
-
3-ші қарапайым формаға түсініктеме беріңіз.
Әдебиет: (1)
Дәріс №9, 10. Деректерді физикалық ұйымдастыру әдістері
Дәріс жоспары
-
Деректердің физикалық құрылымының жалпы сипаттамасы.
-
Деректерді физикалық сақтаудың әдістері.
-
Деректер базасына кіру әдістері.
-
Деректер базасында ақпаратты іздеу тәсілдері.
-
Деректердің физикалық форматы.
6. Қазіргі ДББЖ қолданылатын физикалық кәсіпорынның тәсілдері.
Дәрістің қысқаша мазмұны
ДБ физикалық жобалау – бұл қосымшаның тиімді жұмыс істеуін қамтамасыз етуге арналған сыртқы тасымалдағыштарда ДБ тиімді орналастыруды таңдау.
Физикалық жобалау нәтижесі физикалық модель болып табылады, ол сақтау ортасына даталогиялық модельді байланыстыру үшін пайдаланылады.
Деректер базасының физикалық құрылымын сипаттау сақтау схемасы деп аталады.
Деректер базасын физикалық өндіру сұрақтары осы уақытқа дейін өте маңызды орын алып келді. Егер логикалық модельді таңдау ақпараттың құрылымын анықтаса және сұралатын ақпаратты іздеу үшін қажет орындалатын операциялардың құрамымен деректер базасының тиімділігі жинақталса, онда физикалық өңдіру ақпараттың элементін іздеу операциясына қатысты тиімді орындауды анықтайды. Қазіргі деректер базасын басқару жүйелері физикалық жадыға деректердің логикалық құрылымын автоматты түрде сипаттауды өндіреді және іздеу процедурасының шексіз жиынын береді.
Жалпы, деректер базасының физикалық өнімі келесіні қарастырады:
1. Деректерді физикалық сақтау әдістері
Деректер базасын басқару жүйесі ақпараттың физикалық тасымалдағышында ақпаратты адрестемейді, ал тек қана жадыны бөлу ережелерін анықтайды. ЭЕМ жадында деректерді сақтаудың ең қарапайым және таралған формасы бірөлшемді сызықты тізім болып табылады. Сызықты тізім – бұл X[1], X[2], ..., X[n] объектілерінің (тораптарының) n 0 жиынтығы, құрылымдық құрамы тораптардың сызықты орналасуымен ғана байланысқан. Сызықты тізім элементтердің сызықты реттелуі ретінде анықталатын құрылымды өндіреді.
X сызықты тізім X[1], X[2], ..., X[i], ..., X[n] ретінде қарастырылады, оның компоненттері X–те орналасуын көрсететін реттік номермен идентификацияланған.
ЭЕМ жадында логикалық деректерді көрсету кезінде ДББЖ-мен шешілетін негізгі мәселе Деректердің логикалық құрылымын сақтаудың физикалық құрылымында көрсетудің тиімді әдістерін табу болып табылады. Мұндай бейнелеу адрестік функция деп аталады. Адрестік функцияны өндіру кезінде екі негізгі әдіс пайдаланылады: жадыны тізбектей бөлу және жадыны байланыстыра бөлу.
1.1. Жадыны тізбектей бөлу
Жадыны тізбектей бөлу жадының тізбектелген эдлементтерінде тізімнің тораптарын орналастыруға негізделген. Тізбектей бөлудің адрестік функциясы қарапайым жағдайда мына түрде болады:
мұнда i – жазба номері;
m – байтта тізім элементінің өлшемі (мысалы, жазба);
- ізделінді адрес;
- жадыда деректер векторының басын көрсететін базаның адресі.
Жадыны тізбектей бөлудің негізгі құндылығы деректердің физикалық тәуелсіздігінің жоғары деңгейі мен қарапайым өндірілуі болып табылады. Кемшіліктеріне деректердің иерархиялық және желілік құрылымын өндіру қиындығы мен ақпаратты өңдеу және іздеу тиімсіздігін жатқызуға болады.
1.2. Жадыны байланыстыра бөлу
Сызықты тізімді байланыстыра бөлу байланысқан тізім деп аталады. Құрылымды құру үшін жадыны байланыстыра бөлу кезінде көрсеткіштер көмегімен элементтерді іздеу қатынасын беру қажет. Көрсеткіштерге мәлімет жазбаларында сақталған адрестер жатады. Адрестік функция көмегімен келесі элементтің адресі есептелетін жадыны тізбектей бөлуге қарағанда адрестік функция мәнін жадыны байланыстыра бөлу кезінде сақталған көрсеткіштерді көру жолымен ғана алуға болады. Жадыны бөлудің мұндай әдісі ЭЕМ жадында деректердің өзін ауыстырмай-ақ деректер құрылымын ұлғайтуға және қысқартуға мүмкіндік береді. Бірақ жадыны тізбектей бөлумен салыстырғанда құрылымды сақтау үшін көп жады қажет.
Байланысқан бөлу - өте қиын, бірақ сызықты тізімді сақтаудың иілгіш әдісі. Әрбір торап құрамында тізімнің басқа тораптарына көрсеткіштері бар. Байланыстыра бөлу кезінде жадының реттелген элементтерінде тізімнің сақталғанын қажет етпейді. Сақтаудың берілген әдісінде байланыс адрестерінің бар болуы жадының кез келген бос жерінде жеке тізім тораптарын орналастыруға мүмкіндік береді. Тізімнің сызықты құрылымы көрсеткіштермен қамтамасыз етіледі.
Байланысқан тізім келесідей өндірілуі мүмкін:
-
екі жаққа бағытталған тізім – берілген тізімде екі көрсеткіш пайдаланылады, олардың біріншісі алдыңғы торап адресі, ал екіншісі – тізімнің келесі торабының адресінен тұрады;
Қарастырылып отырған тізімдердің негізгі кемшілігі ақпаратты іздеудің төмен тиімділігі болып табылады (қажет торапты іздеу үшін тораптардың жеткілікті үлкен санын көру қажет болуы мүмкін).
-
өткізу мүмкіндігі бар тізім – мұнда сызықты тізім өзара кері көрсеткіштермен байланысқан тораптар тобына бөлінеді. Басында қажет торап табылатын топқа кері көрсеткіш бойынша кіру жүзеге асады, ал содан кейін түзу көрсеткіштер бойынша қажет торап табылмағанша топтың торабы іріктеледі. Топтың оптималды өлшемін табайық. Топтар саны анық
Қажет торапқа кіру кезінде топтар ішінен торапты табу үшін орташа тобын, ал әрбір топта - қарап шығу керек. Демек, көріністердің жалпы саны
Әрбір топта элементтер саны минималды
Алынған мәнді нөлге теңестіре отырып, аламыз.
Тізімдердің қарастырылған типін өндірудің басқа әдісі арнайы қосымша сызықты тізім - әрбір топтың бірінші торабының мәні мен адресі бар индекс құру болып табылады.
Бұл жағдайда тізімнің арнайы торабын - head (басы) құру және оны арнайы тіркелген ұяшықта сақтау керек. Бұл торапқа тізімнің бірінші элементіне көрсеткіш, сонымен қатар тізімді өңдеу (идентификатор, тізімдегі тораптар саны және т.с.с.) үшін арналған қызметші ақпарат орналасады.
Ең кең тараған циклдік тізімдер (бір жаққа бағытталған және екі жаққа бағытталған) болып табылады. Сонымен қатар байланыс тізімнің соңғы элементінен бірінші элементіне және бірінші элементтен соңғысына қарай жүреді. Циклдік тізімдер тізімнің кез келген торабына кіруді қамтамасыз етуге мүмкіндік береді.
Практикалық өндіру үшін көрсеткіштердің үш типі пайдаланылады:
-
нақты адрес – тізім түрінде ұйымдастырылған деректерді өңдеудің жоғары жылдамдығын қамтамасыз етеді;
-
қатысты адрес – жазбаларды жадының кез келген жеріне және көрсеткіштер мәнін өзгертпей әртүрлі құрылғыларға орналастыруға мүмкіндік береді, сонымен қатар тізім орнын ауыстыру кезінде жазбадағы көрсеткіштер өзгермейді, ал нақты адресті есептеу кезінде базалық адрес қана өзгереді.;
-
символдық адрес (идентификатор) – тізімді түгелдей, сонымен қатар бір-біріне қатысты оның жеке жазбаларының орнын ауыстыруға мүмкіндік береді. Тізімнің барлық қалған жазбаларынан көрсеткіштерді өзгертпей тізімге жазбаларды қосуға және жоюға мүмкіндік береді.
1.3. Иерархиялық және желілік құрылымдарды көрсету.
Тоғай тәрізді және желілік құрылымды физикалық ұйымдастыру кезінде екі сұрақты шешу қажет:
-
құрылымның төбесімен (тораппен) көрсетілген деректерді ұйымдастыру;
-
құрылым доғасымен көрсетілген деректер арасында байланыстарды ұйымдастыру.
Жадыны тізбектей бөлуді пайдалануға негізделген тоғай тәріздес құрылымды көрсетудің келесі әдістері бар:
1) Адрестік арифметика әдісі. Берілген әдісті жетілдірудің екі әдісі бар – олардың бірі бірінші тораптан бастап, тізімдер торабын тізбектей орналастыруға негізделген. Берілген жоба балансталған тоғайларды жетілдіру үшін ыңғайлы, яғни кез келген тораптан туындаған тораптар саны, соңғысынан басқа, тоғайлар бірдей болады. Кез келген тораптың адресі алдында келтірілген адрестік функция көмегімен табылады; бірақ ең қызықтысы торап-ұрпақтардың (потомок) адрестік функциясы болып табылады. Үшінші ретті тоғай үшін белгілі бір k торабының ұрпағы 3k-1, 3k, 3k+1 тізімінің ерекшеленген торабына жады квантасында орналасады. Негізді кемшілігі төртінші және одан да жоғары ретті балансталған тоғайлар үшін адрестік функция күрделілігі болып табылады. Екінші әдіс екілік тоғайлар (екінші ретті балансталған тоғайлар) үшін ғана қолданбалы және тізімді орналастыру үшін бөлінген жады векторының ортасына тізімнің бірінші торабын орналастыруға негізделген, яғни адресімен жады ұяшығына, мұндағы i және j – тізімді орналастыру үшін бөлінетін жадының бастапқы және соңғы квантасының адресі. i -ден l-1-ге дейін жады квантасында сол жақ тоғайасты деп аталатын, ал l+1 –ден j-ге дейін оң жақ тоғайасты орналастырылады.
2) Сол жақ тізімді құрылым әдісі алғашқы тоғай тәріздес құрылымды жоғарыдан төмен және сол жақтан оң жаққа айналып өту (обход) жолымен тізім құруға негізделген. Сол жақ тізімді құрылым әдісі кез келген тоғайлар үшін қолданбалы.
Байланысқан жадыны бөлуді пайдалануда тоғай тәріздес құрылымды көрсетудің келесі әдістері негізделген:
1) Туындаған жазбаларға көрсеткіштер әдісі – берілген әдіс тоғай бойымен түзу бағытта қозғалуды өндіруге мүмкіндік береді. Бұл әдісті пайдаланған жағдайда кез келген жазба, төменгі деңгейдің жазбасынан басқа, туындаған жазбада бар көрсеткіштер санымен тең болуы керек.
2) Алғашқы жазбаға көрсеткіштер әдісі тоғай бойымен кері бағытта – түпкі тораптардан түбіне жүруді ұйымдастыру үшін пайдаланылады.
3) Алғашқы және туындаған жазбаларға көрсеткіштер әдісі – берілген әдіс тоғайдың түзу де, кері де бағытта жүріп өтуін қамтамасыз етеді, өйткені екібағытты тізім пайдаланылады. Әдістің кемшілігі – туындаған жазбаларға көрсеткіштер әдісі сияқты, өйткені тораптарда көрсеткіштер саны ауыспалы және туындаған жазбалар санымен анықталады.
4) Туындаған және сол сияқты жазбаларға көрсеткіштер әдісі тоғайдың түзу бағытта өтуін қамтамасыз етеді. Туындаған жазбаларға көрсеткіштер әдісімен салыстырғанда берілген әдістің ерекшелігі көрсеткіштердің шектеулі саны – соңғы торабында бір көрсеткіштен және қалғандарында екеуден болып табылады. Бірақ сол сияқты жазбалар санының өсуімен жазбаларға кіру уақыты көрсеткіштер тізбегі бойынша кіру тізбегі есебімен өседі.
5) Алғашқы, туындаған және сол сияқты жазбаларға көрсеткіштер әдісі – берілген әдістің артықшылығы мен кемшілігі алдыңғы әдістер үшін қарастырылғандарға ұқсас; ерекшелігі берілген әдісті пайдалану кезінде тоғай бойымен кері жүруді ұйымдастырудан тұрады.
6) Сақиналы құрылым әдісі – бірбағытты циклді тізімдер туындаған және сол сияқты жазбаларға әрбір торапқа екі көрсеткіштен енгізе отырып, алғашқы тоғай тәріздес құрылымды алуға мүмкіндік береді. Берілген әдістер жазбаларға кіру уақыты туындаған және сол сияқты жазбаларға көрсеткіштер әдісін пайдалану кезінде жазбаларға кіру уақытына тең. Екібағытты циклді тізімдерді пайдалану кезінде әрбір торапқа туындаған және сол сияқты жазбалардың сақинасы бойымен түзу және кері айналым үшін төрт көрсеткіш қосылады.
7) Анықтамалар әдісі – берілген әдісте көрсеткіштер жазбалардан жойылады және арнайы файлдар – анықтамаларға ұйымдастырылады. Әдістің артықшылығы: анықтамаларда тек көрсеткіштер сақталатындықтан олар өлшемі бойынша көбінесе кіші, оларда алғашқы деректердің жазбалары сақталады. Сондықтан анықтама жедел жадыға оқылуы мүмкін және байланыстың барлық өңделуі жедел жадыда орындалады, содан кейін қажет алғашқы жазбалар сыртқы жадыдан оқылады, ол өңдеудің жылдамдығын ұлғайтады.
Желілік құрылымды көрсету үшін желілік құрылымды өндіруге мүмкіндік беретін жоғарыда қарастырылған әдістердің белгілі бір комбинациясын пайдаланады. Мысалы, туындаған, сол сияқты және алғашқы жазбаларға көрсеткіштермен әдістердің комбинациясын пайдаланады. Көбінесе сақиналы құрылым пайдаланылады.
Егер жазбада көрсеткіштер саны шектеулі болған жағдайда, онда күрделі емес желілік құрылым өндіруге болады. Күрделі желілік құрылым үшін айнымалының әрбір жазбасы үшін көрсеткіштер енгізу қажет.
Желілік құрылымды ұйымдастырудың ең тиімді әдісі анықтамаларды пайдалану болып табылады. Сонымен қатар, көрсеткіштер жазбалардан алынып, жеке файлдарға – анықтамаларға орналастырылады. Анықтаманы сәйкес бөлімде деректерді іздеуді тез орындайтындай етіп оптималды түрде ұйымдастыруға болады. Анықтамаларды пайдалану желілік құрылым күрделілігіне тура пропорционал деп айтуға болады.
1.4. Кілт мәнімен адресті есептеу әдістерін пайдалану арқылы ақпаратты сақтауды ұйымдастыру
Адресті кілтке түрлендіру ретінде белгілі «адресті есептеу әдісі» термині кілт атауымен адресті есептеуден басталатын ақпаратты іздеу және сақтау әдістерінің үлкен тобын қамтиды. Мұндай әдістер жады қасиетін толықтай пайдаланады. Адресті есептеу әдістерінде деректер жазбасының кілт мәнін оған сәйкес жады адресін түрлендіретін белгілі бір есептеу операциясы пайдаланылады, яғни адрестерті функция өндіріледі.
Мысал қарастырайық – адреске эквивалентті кілт көмегімен адрестеу әдісі – адрес ретінде әмбебап идентификатор, мысалы, сынақ кітапшасының номері пайдаланылуы мүмкін. Берілген әдістің дамуы кілттің адреске түрлену алгоритмін пайдалану көмегімен адрестеу әдісі болып табылады. Әдіс адрестеу орындалатын файлда жазбалардың сызықты реттілігін және фиксацияланған ұзындықтың жазбасын пайдалануды болжайды. (НОМЕР, ЖҮРУ_УАҚЫТЫ, БОС_ОРЫННЫҢ_БОЛУЫ) ақпарат берілсін. НОМЕР 1 ден 699 аралығында, ЖҮРУ_УАҚЫТЫ 1 ден 366 аралығында өзгерсін және бір жазбаға 20 байт берілсін, сонда жазба адресі былайша анықталуы мүмкін
Ұсынылған әдістердің басты кемшілігі, егер кілттер адрестердің үзіліссіз жиынына түрленбеген жағдайда, жадыны толтырудың төмен дәрежесі болып табылады.
Ең көп таралған әдістерге араластыру немесе хэштеу (кейде рандомизация әдісі термині пайдаланылады) жатады. Берілген әдістің негізгі идеясы мынандай: сақталатын жазбаның әрбір экземпляры кілт мәні бойынша белгілі бір псевдокездейсоқ функция (хэш-функция) көмегімен есептелетін ардеспен жадыға орналастырылады. Бұл жағдайда алғашқы кілт мәнімен сәйкестендіріп жазбаны ұйымдастыру қажет емес.
Кілтті, эквивалентті адресті және кілтті адреске түрлендіру алгоритмін пайдалану көмегімен адрестеудің қарастырылған әдісі көбінесе қолданбалы емес, өйткені алғашқы кілт мәнінің диапазоны жады адресінің диапазонынан өте үлкен болуы мүмкін. Хэш-функция алғашқы кілт мәнін жазбаны сақтау үшін оқшауланған жады адресі мәнінің диапазонына түрлендіруге мүмкіндік береді.
Деректер базасында ақпаратты іздеу әдістері
Деректер базасының көлемі бірнеше гигабайтқа жетуі мүмкін. Деректер базасымен басқару жүйесінде деректер базасында ақпараттың белгілі бір бөлігін іздеу бойынша функция артылған. Деректер базасын басқару жүйесінің операциялық жүйемен өзара іс-әрекеті физикалық жазба деңгейінде ғана өндіріледі. Осыған байланысты деректер базасын басқару жүйесінде логикалық жазбалар адресін физикалық жазбалар адресіне түрлендіру және логикалық жазбаларды физикалық жазбалардан ерекшелеу механизмі құрылған.
Бірақ, физикалық жазбалар адресін есептеу процедурасы деректер базасының логикалық жазбаларын іздеу процедурасынан оңай. Деректер базасында ақпаратты іздеу әдістерінің ең кең таралғандары мыналар:
-
тізбектей іздеу;
-
бинарлы (екілік) іздеу;
-
индекс бойынша іздеу;
-
екінші кілт бойынша іздеу (файлдарды инверттау);
-
хэш-функцияны пайдалану арқылы іздеу.
Тізбектей іздеу файлдың барлық жазбаларын Q іздеу шартының олардың сәйкестігіне тізбектей тексеруден тұрады. Жазбалар Q шартын қанағаттандырады, нәтиже ретінде беріледі. Егер барлық файлды көру нәтижесінде Q шартын қанағаттандыратын бір де бір жазба табылмаса, онда іздеу аяқталады және іздеудің дұрыс емес аяқталған коды шығады. Q шартына жауап беретін жазбаларды орналастыра отырып, файлда іздеу үшін қажет орташа уақытты бағалауға болады
мұндағы - енгізу-шығару операциясы орындалуының орташа уақыты; - деректер базасы файлының сақтаулына берілген физикалық блоктар саны.
Бинарлы немесе екілік іздеу бір немесе бірнеше өрістер мәнінің өсу немесе кемуі бойынша реттелген деректер файлында қолданылады. Егер іздеу жазбадан тұратын белгілі бір өріс мәнінің өсуі бойынша реттелген файлда жүргізілсе, онда бірінші тексерілетін жазба номері бар жазба болады. Егер бойынша іздеу жүргізілетін өріс мәні Q іздеу шартымен сәйкес келсе, онда іздеу сәтті аяқталады; кері жағдайда, егер >Q , файлдың сол жағында жалғасса. Сонымен қатар сәйкесінше жазбалар таңдап алынады:
және
Іздеу аяқталады, егер іздеу шартын қанағаттандыратын жазба табылса, онда =Q. Берілген әдісті пайдалану кезінде іздеу тиімділігі жоғары.
Индекс бойынша іздеу индекс деп аталатын қосымша ақпаратты алдын ала құру және пайдалануды қарастырады. Индекс пен анықтаманы ұйымдастыруда аналогиясы бар – индекстің де анықтаманың да ақпараты жазба кілтінің мәнінен және оның адресі туралы ақпараттан тұрады. Сонымен қатар, индекс ешқандай басқа ақпаратты сақтамайды және барлық жазбалар туралы мағлұматты сақтауы мүмкін емес, сонда толық және толық емес индекстерді ерекшелейді.
Белгілі бір файл қандайда бір К өрісі бойынша реттелген болсын. Сонда индексті файл мынандай құрылымнан тұрады: К1- деректер файлының К өріс мәнінен тұратын өріс; RefK – деректер файлының сәйкес жазбасына сілтемеден тұратын өріс.
Толық емес индекс жағдайында индексті файл жеке жазбаларға көрсеткіштерден тұрады. Толық емес индексті пайдалану арқылы іздеу кезінде индексті-реттелген кіру өндіріледі – ең алдымен физикалық жазба басталатын жазба адресі анықталады
Толық индекс жағдайында деректер файлын кілт бойынша реттеу қажет емес.
Бұл жағдайда индексті файл деректердің барлық жазбаларына көрсеткіштерден тұрады. Толық индексті пайдалану кезінде индексті файлда логикалық жазба адресі анықталады.
Толық индексті пайдалану тиімді. Толық емес индекс артықшылығы индекстер тоғайын құру мүмкіндігі деп есептеу болады. Кемшіліктері деректер файлының іздеу кілті бойынша реттілігін қажет етумен байланысты. Толық индекс артықшылығы деректердің бір физикалық файлы бойынша жазбалардың бірнеше логикалық тізбегін құру мүмкіндігі болып табылады, іздеудің жоғары тиімділігі. Кемшілігі толық емес индекспен салыстырғанда индексті файлдың үлкен көлемімен анықталады.
Екінші кілт бойынша іздеу инвертталған файлдар – белгілі бір өріс мәнінен және сәйкес жазбалар номерінен тұратын массивтерді құруды болжайды. Инвертталған файлда элементтер саны деректер файлының өрістер мәнінің санына тең. Қазіргі уақытта екінші кілт бойынша іздеу пайдаланылмайды.
Хэш-функцияны пайдалану арқылы іздеу тек қана хэш-функцияны пайдалану арқылы ұйымдастырылған деректер файлында мүмкін. Іздеу хэш-функция көмегімен іздеу кілтін адреске түрлендіруге негізделген. Сонымег қатар, ақпаратты сақтау және іздеуді ұйымдастыру үшін дәл сол хэш-функцияны пайдалану қажет. Хэш-адресация әдісін пайдаланудың негізгі артықшылығы іздеудің жоғары тиімділігі болып табылады.
Достарыңызбен бөлісу: |