Автор работы: Пользователь скрыл имя, 06 Декабря 2013 в 13:47, курсовая работа
Қазіргі кездегі өмір тиімді басқарусыз мүмкін емес. Ақпартты өңдеу жүйесі маңызды категория болып тбылады.
КУРСТЫҚ ЖҰМЫСТЫҢ ӨЗЕКТІЛІГІ: Мәліметтер қорын құру. Ол мәліметтерді кесте, форма, сұрату, есеп беруші және макростар көмегі арқылы құрып, мәліметтерді өңдеуде — есеп берушіні пайдалана білу.
КІРІСПЕ....................................................................................................................3
1. МӘЛІМЕТТЕР ҚОРЫ ТУРАЛЫ ЖАЛПЫ ТҮСІНІКТЕР..............................5
1.1. Мәліметтер қоры және ақпараттық жүйелер................................................5
1.2.Мәліметтер қорын іздеу, сорттау және индексалау; формаларды және есептерді құру.........................................................................................................9
1.3. Мәліметтер кестесінің индексін сипаттайтын қасиеттері..........................11
2. DELPHI ЖӘНЕ МӘЛІМЕТТЕР ҚОРЫ...........................................................15
2.1. Delphi-де қорлармен жұмыс істеу.................................................................15
2.2. Delphi ортасы қолдайтын мәліметтер қорлары.........................................16
2.3.Delphi-дегі МҚБЖ-мен жұмыс істеуге қажетті базалық класстар мен компоненттер.....................................................................................................19
3. МӘЛІМЕТТЕР ҚОРЫН ҚҰРУ ЖӘНЕ БАСҚАРУ.......................................21
3.1. Мәліметтер қоры кестелерін құру және басқару......................................21
3.2. Кестені индекстеу.......................................................................................27
ҚОРЫТЫНДЫ.......................................................................................................32
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ...........................................................34
Егер бірнеше алаң индекстелген болса, онда реттеу алғашқы құрылған индекс алаңынан басталады.
Мәліметтер қоры көптеген кестелерден тұруы мүмкін. Қолданбалы программалар бөлек кестелермен жұмыс жасамайды. Олар кестелер жиынтығымен жұмыс жасайды.
Көбінде бір кесте ең басты кесте болады да, ал қалғандары бағынышты болады. Басты және көмекші кестелер кілт арқылы байланысуы мүмкін, кілт ретінде екі кестеде де бар бірдей алаң болады.
Кез келген деректер қорының талаптарының біріне - сыртқы жадыға мәліметтерді сақтау сенімділігі болып табылады.
Сақтау сенімділігі ол - кез келген ақаудан кейін деректер қорын қайтадан қалыпқа келтіру. Ақаулар аппараттық және программалық болуы мүмкін. Аппараттық ақаулар екі түрге бөлінеді: жұмсақ және қатты.
Жұмсаққа компьютердің аяқ астынан өшуі. Ал қатты ақауға: сыртқы жады тасымалдаушысындағы ақпараттың жоғалуы.
Осы ақаулардан кейін, деректер қорын қалыпқа келтіру үшін қосымша ақпарат керек. Сондықтан да деректер қорындағы мәліметтерді қосымша сақтау керек. Ол үшін журнализация әдісін қолданады.
Журнал – ол мәліметтер қорының қолданушының қолы жетпейтін деректер қорының бір бөлігі. Кейде әртүрлі дискілерде журналдың көшірмелері сақталады. Онда негізгі деректер қорындағы өзгерістердің бәрі тіркеліп отырады.
Әртүрлі МҚБЖ деректер қорындағы өзгерістер журналдарда әртүрлі деңгейде жазылады.
1.3. Мәліметтер кестесінің индексін сипаттайтын қасиеттері
Мән |
Индекс қасиеттері |
ixPrimary |
Алғашқы индекс |
ixUnigue |
Индекстің өрістердің барлық мәндері уникалды |
ixDescending |
Индекс сорттау кему тәртібінде орындалады |
ixCaseInsensitive |
Сорттау үрдісі мәтіндік өрістердің ішіндегі мәліметтің регистріне сезімтал емес. |
Екіншілік индексті жою үшін келесі тәсілді қолдануға болады:
Procedure DeleteIndex (const Name: String);
Қатынауы бар индекстер тізімін
Procedure GetIndexNames (List: TStrings); тәсілі алуға мүмкіндік береді.
Көп жазбалары бар кестелерді көру ыңғайсыз. Белгілі бір шартпен байланысқан жазбалар тобын ғана ерекшелеу жиі қажет болады. Мысал қарастырайық. Бізге Parts кестесінің бөлшектердің саны 50-ден аз (OnHand өрісі) екені көрсетілген немесе бөлшектің құны 500 теңгеден көп емес екені көрсетілген (Cost өрісі) барлық жазбаларды таңдап алу қажет делік. Ол үшін мәліметтер жиынтығын берілген шарт бойынша фильтрлеу қажет.
Мұндай шарт (ол сұрау деп аталады) мәтіндік жол түрінде мәліметтер жиынтығының Filter қасиетінде жазылады және құрамына ағымдағы мәліметтер жиынтығының өрістері, константалары, логикалық және қатынас операциялары қолданылатын логикалық өрнек кіреді: мысалға, ондай жазбаларды айқындау үшін Filter қасиетіне келесі жолды жазу керек:
OnHand <50 or Cost < =500
Мәндердің фильтрациялануына рұқсат ету үшін мәліметтер жиынтығының Filtered қасиетін true тең деп орнату керек.
Егер Filter қасиетіне жол жобалау кезеңінде емес, бағдарламаның орындалуы барысында еңгізілсе (мысалға, батырманы шерту бойынша), онда қажет жазбалардың таңдаулы динамкалық түрде орындалады.
Шарттың құрылымына белгілі бір шектеулер қойылады. Көптеген автономды және файл-серверлік МҚБЖ-лер үшін өрічтер мәндерін бір бірімен салыстыруға рұқсат берілмейді. PartNo < Cost
Бірақ та, клиент-серверлік МҚБЖ-лердің көбісі мұндай мүмкіндікті қолдайды. Бұл SQL тілінің ерекшеліктерімен байланысты.
Фильтрациялау үрдісінде FilterOptions қасиетінің қосымша баптарын қолдану мүмкін. FoCaseInsensitive бабы мәтіндік ақпаратты салыстырған кезде реистр есепке алына ма, жоқ па екенін анықтайды, foNoPartialCompare бабы мәтіндік өрістер мәндерінің толық сәйкес келуі бойынша фильтрлеуді орындауға немесе жлдардың біреуі жұлдызшаға аяқталса жолдары бірдей деп санауға мүмкіндік береді.
‘123*’ = ‘12345’
Фильтрлерді қолдану өте күрделі
сұрауларды қалыптастыруға мұмкіндік
береді, бірақ үлкен көлемді
Ең бірінші:
Рrocedure SetRangeStart;
тәсілі шақырылады.
Ол кестені аралықтың алғашқы мәнін қабылдау жағдайына қояды. Осы тәсілден кейін алғашқы мәндерді индекстелген өрістерге меншіктеу операторлары келуі керек. Әрі қарай
Procedure SetRangeEnd;
тәсілі щақырылады.
Оның көмегімен аналогиялық
әдіспен аралықтың соңғы
Procedure ApplyRange;
Мысалы, егер Button1 батырмасын шерткенде Cost өрісінің мәндері50-ден кем емес және 100-ден артық емес болатын бүкіл жазбаларды сұрыптау керек болса, келесі кодты қолдануға болады:
DataModule2.Parts.
DataModule2.Parts.FieldByName(
DataModule2.Parts. SetRangeEnd;
DataModule2.Parts. FieldByName(“Cost”).AsCurrency := 100;
DataModule2.Parts.ApplyRange;
Кестенің аралықты қолданып жұмыс істеу режимін жою үшін
Procedure CancelRange;
тәсілі қолданылады.
Көлемі үлкен мәліметтер қорларында ақпаратты қажет жазбаны іздеу құралдарсыз түзету мен редакторлау өте қиын. Ең жеңілі ондай іздеуді
Function Find Key (const KeyValues: array of const): Boolean;
тәсілі арқылы орындау.
Іздеу кілті деп аталатын параметр IndexName және IndexFieldNames қасиетінде көрсетілген әр бір өріс үшін мәндер тізімін сипаттайды. Мысалы, егер мәліметтер қорының көрсеткішін Parts кестесінің PartNo өрісінің мәні 900-ге тең жазбасына жылжыту үшін келесі команданы орындау керек
DataModule2. Parts.FindKey ([900])
Осы кезде Parts кестесі PartNo өрісі бойынша индекстелуі және IndexName қасиетінде индекс ретінде сәйкес екіншілік индекстің атуының тұруы талап етіліде. FindKey тәсілі қажет жазба табылмағанда false мәнін қайтарады. Қолданушының ыңғайлылығы үшін қосымшаға келесі тәсілді қосқан артық болмайды:
Procedure FindNearest (const KeyValues: array of const);
Бұл тәсіл KeyValues параметріне нақты сәйкес келмесе де оған ең жақын болатын сәйкес қрістің мәні бар жазбаны табуға әрекеттенеді.
Мысалы, бүтін 5 санына 4 пен 6 ең жақын сандар ‘AA’ жолына - ‘AB’ жолы ең жақын және т.с.с. болады.
Іздеу кілтін, сондай-ақ, келесі тәсіл арқылы қалыптастыруға болады:
Procedure SetKey;
Сәйкес әдіс аралықыт қалыптастыруды еске түсіреді. Іздеу кілті қалыптастырылғаннан кейін керекті жазбаға
Function GotoKey: Boolean;
тәсілі арқылы өтуге болады.
Мәні бойынша ұқсас жазбаға өту
Function GotoNearest;
тәсілдің көмегімен жүзеге асырылады.
Мысалы:
DataModule2.Parts.SetKey;
DataModule2.Parts.FieldByName(
DataModule2.Parts.GotoNearest;
Іздеу үшін, сондай-ақ, әмбебап тәсілдерді де қолдануға болады:
Function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions):Boolean;
Function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant;
Бірінші тәсіл параметр ретінде іздеу орындалатын өрістер тізімін, әрбір өрістің мәндерінің тізімін және іздеудің қосымша баптауларының жиынтығын (TlocateOptions типі) алады. Мысалы, PartNo индекстелген өрісте 900 мәнін іздеу келесі жолмен орындалуы мүмкін.
DataModule2. Parts. Locate (‘PartNo’; VarArrayOf([900]), [ ]);
Екінші тәсіл іздеу мен қоса атаулары ResultFields параметрінде көрсетілген өрістер мәндерінің массивін (Variant типті) қайтарады.
DataModule2. Parts. Lookup (‘PartNo’; VarArray[900]), ‘Cost’);
2. DELPHI ЖӘНЕ МӘЛІМЕТТЕР ҚОРЫ
2.1. Delphi-де қорлармен жұмыс істеу
Delphi-де қорлармен жұмыс
істеу үшін компоненттердің
Олардың бәрі мәліметтерге қатынаудың әр түрлі технологияларын қолданады және мүмкіншіліктер бойынша ажыратылады. Microsoft өзінің өнімдеріне тек АДО мәліметтерге қатынау технологиясын енгізді. Borland фирмасы әртүрлі технологиялар арқылы жұмыс істейтін әр түрлі құралдарды ұсынды және бағдарламалаушыны тек өзінің жобаларымен шектемейді. Осындай жағдай өте улкен артықшылықтарды береді. Одан басқа, кез келген жағдайда қолданыла алатын компоненттер топтары бар.
Мәліметтер қорларына қатынаудың бар құралдарына қысқаша шолу жасайық.
компоненттері орналасқан. Олар жалпыға ортақ және басқа компоненттері топтарымен қоса қолданулары мүмкін.
менредакторлауға арналған компоненттер орналасқан. Бұл компоненттер осы кезде қолданылатын мәліметтерге қатынау технологиясының қандай екеніне қарамастан бірдей қолданылған.
жобалаған технология бойынша мәліметтер қорларына қатынауға мүмкін беретін компоненттерді құрайды. Бұл технология өте қатты ескірді және ескі версиялармен өзара байланысу үшін ғана қолданылады. Оған қарамастан ол мәліміттер қорқарының ескірген типтерімен (Paradox, dBase сияқты)жақсы жұмыс істейді.
технологиясы. Ол жоғары иілгіштікпен ерекшеленеді және мәлімет қорларын қолданатын клиент-серверлік қосымшаларды бағдарламалауға жақсы келеді. DBExpress вкладкасындағы компоненттерді Oracle, BB2 және MySQL сияқты серверлік технологиямен құрылған мәлімет қорларында қолданған жөн.
мәліметтерге қатынау технологиясы. Ол өте жақсы кітапхана, бірақ оны тек Microsoft мәлімет қорларымен, яғни MS Access және MS SQL Server қолданған жөн. Оны сондай-ақ тек ODBC арқылы жұмыс істей алатын мәлімет қорларының спецификалық сервері болса да қолдануға болады.
2.2. Delphi ортасы қолдайтын мәліметтер қорлары
Delphi ортасы қолдайтын
мәліметтер қоры кестелерінің
бірнеше форматтарын
Delphi бағдарламалау тілінің өзіндік кестелер форматы жоқ, бірақ ол көптеген сыртқы форматтармен жұмыс істеуге мүмкіндік беретін құралдарға ие.
Delphi бағдарламалау тілі
қолдайтын мәліметтер
Delphi бағдарламалау тілі қолдайтын мәліметтер қорының локальді кестелеріне:
Delphi көмегімен құрылған қосымша мәліметтер қорына BDE (Borland Database Engine) мәліметтер қорларының арнайы процессоры арқылы қол жеткізеді.
BDE – мәліметтерге
қол жеткізуді қамтамасыз
Мәліметтер қорларының BDE процессоры dBase және Paradox типті мәліметте қорларының кестелерімен өте эффективті жұмыс істеуге мүмкіндік береді.
Мәліметтер қорларының кестелеі мен қосымшаларының өзара орналасуына байланысты, мәліметтер қорларды екі үлкен топқа бөлуге болады:
Локальді – кестелері, олармен жұмыс істейтін қосымшалар орналасқан компьютерлерде болатын мәліметтер қоры.
Локальді мәліметтер қорлармен жұмыс істейтін қосымшалар – бір ярусты (single-tiered applications) деп аталады, себебі қосымша да, мәліметтер қоры да бір компьютерде (яруста) орналасқан.
Кестедегі мәліметтерді алу сондай-ақ көп қолданушылық та бола алады. Осындай вариант сервер мен компьютерлер желісін көздейді. Мәліметтер қорын ұйымдастырудың бұл тәсілі файл-сервер деп аталады.
Осы архитектураның бірқатар кемшіліктері бар:
Мәліметтер қорларының көшірмелерін жасау жән олармен бөлек компьютерлерде жұмыс істеу үшін бүкіл мәліметтер қорының белгіл
бір мерзім сайын жаңарту қажеттігі туады. Бұл желілік трафикті жоғарлатады және бүкіл жүйенің жылдамдығын азайтады;
Бір қолданушы мәліметтерді өзгерткен жағдайда олар басқа
қолданушылардың мәліметтер қорларының локальді көшірмелеріне бірден бармайды, сондықтан кезкелген қолданушы ескірген ақпаратты көре алады;