Автор работы: Пользователь скрыл имя, 08 Июня 2015 в 11:14, реферат
Бұл кезеңдерді локальды мәліметтер қорын қолданып BorlandDelphi7 ортасында орындау әрі жеңіл, әрі тиімді. Осы орайда мәліметтер қорын қолдана отырып ақпараттық жүйелерді құру және автоматтандырудың жобасы жасалынып, оның орындалуына әдістемелік нұсқаулар жазылды.
Оқу құралында келтірілген әр мысалдың Дельфи тілінде жобалық пішіні жасалып, бағдарламалары құрылуы оның практикалық маңыздылығын арттырады деген ойдамыз.
Кіріспе
1 Мәліметтер қорын жобалау және ақпараттық жүйелер
1.1 Деректердің шамадан тыс қайталануы және аномалиялар
1.2 Ақпараттық жүйелерді жобалау
2 Delphi ортасында мәліметтер қорына рұқсат алу механизмдері
2.1 ADO провайдерлері
3 Мәліметтер қорын құру және басқару
3.1 Мәліметтер қоры кестелерін құру және басқару
3.2 Мәліметтер қоры кестесімен жұмыс
3.3 Клиенттік қосымшада жоғарғы мәзір құру
3.4 Мемо-өрістер, бағандарды жөндеу және деректерді іздеуді ұйымдастыру
3.5 Сұраныс құру
3.6 Есеп құру
4 Delphi7 ортасында локальды деректер қорын қолданып ақпараттық жүйелер құру
4.1 «Кадрлар бөлімі» ақпараттық жүйесінің жобасы
4.2 Мәліметтер қоры өзгерісін журналға тіркеу
5 Серверлік мәліметтер қоры және interbase серверімен танысу
5.1 INTERBASE локальды сервері
5.2 Индекс құру
5.3 Delphi7 және мәліметтер қоры серверлері
5.4 Генераторлар мен триггерлер
Қортынды
Әдебиеттер тізімі
10-сурет-Mamandik кестесінің құрылымы
«mamandik» кестесін байланыстырушы кілт екенін бақылауға болады. Тағы бір ерекшелік - N_bilet өрісінің типі санаушы болса, тура осы өрістің «mamandik» кестесіндегі типі бүтінсандық. Бұдан шығатыны: сыртқы кілттің атауы да, типі де негізгі кестедегі кілттен өзгеше болуы мүмкін, бірақ мәндері сәйкес келуі - тиістілік шарты. Бұл арада сыртқы кілтті санаушы деп бермей отырған себебіміз - «mamandik» кестесінде оның қабылдайтын мәндері қайталануы мүмкін. Егер біз сыртқы кілттің типін де санаушы деп берсек, оның мәні қайталанбайды, ол мынандай жағдайда тиімсіз: егер қандай да бір студент 2 мамандықта қатар білім алып жатса, 1-ші мамандығы күндізгі бөлімде, 2-ші мамандығы сырттай оқитын бөлімде болсын делік.
Ескерту.
Өте сирек кездесетін жағдай, бірақ мұны Сіздерге қарапайым түрде сыртқы кілттің ерекшелігін түсіндіру үшін ойластырып отырмыз және мұндай жағдайда кестелерді байланыстыру дәрежесі «Бірге-көп» болып анықталады. Тағы бір ескеретін жағдай, мұндай кестелердің арасында сілтемелік толықтылық сақталуын қадағалау керек, яғни басшы кестедегі бір деректі өзгерткенде бағынышты кестедегі деректер де сәйкесінше өзгеріп отыратын болуы керек.
Ол студент өзіне студенттік билет алсын, бірақ ол студент екі бөлімде оқитын болса да, студенттік билет бір-ақ рет берілсін, сонда «student» кестесіндегі билет нөмірі «mamandik» кестесінде 2 рет қайталанып тұр (10а-сурет). Бұл кестелерді N_bilet сыртқы кілтімен байланыстыру үшін тиімді. Егер міндетті түрде бір студент тек қана бір мамандықта оқитын шарт қойылса, онда «mamandik» кестесіндегі N_bilet өрісінің типін санаушы деп бере беруге болады. Онда «student» кестесі мен «mamandik» кестесі - бір жазбаға тек қана бір жазба сәйкестендірілетін байланыстырылған кестелер болып саналады, мұндай жағдайда кестелерді байланыстыру дәрежесі «Бірге-бір» болып анықталады.
10а-сурет-Байланыстырылатын «student», «mamandik» кестелері
Бұл екі кестелерді байланыстыру үшін байланыс дәрежесін анықтау керек. Байланыс дәрежесінің келесі түрлері бар екенін білесіздер:
Егер «student» кестесі мен «mamandik» кестесі «бірге-бір» байланыс дәрежесімен байланыстырылатын болса, онда екі кестенің біреуін басшы кесте деп, екіншісін бағынышты кесте деп анықтаймыз. Біздің мысалымызда «student» кестесі – басшы кесте, себебі студенттердің ең негізгі деректері сонда сақталып тұр, ал «mamandik» кестесі – бағынышты кесте. Ол үшін біз негізгі
кестені өзгеріссіз қалтырып, бағынышты кестенің структурасын ашамыз (құрал-жабдықтар тақтасындағы Restructure пернесін басу арқылы) да, структура терезесінің сол жақ жоғарғы бөлігінде орналасқан Table Properties тізімінен Secondary Indexes командасын таңдаймыз. Осыдан кейін диалогты терезе (11- сурет) көрініс береді.
11-сурет-Secondary Indexes элементі
Жаңа индекс құру үшін, Define батырмасын басамыз. Ашылған диалогтық терезенің Fields тізімінде бағынышты кестенің өрістер тізімі көрсетіледі (12-сурет).
12-сурет-Индекс құрамына кіретін өрістерді анықтау
Бұл терезедегі Indexed Fields бөлігіне біз қай сыртқы кілт арқылы байланыс орнататын болсақ, сол өрісті көрсетіп (яғни Fields тізімінен N_bilet өрісін белгілеп, Indexed Fields тізіміне өткізу үшін оң жаққа сілтеуішті (->) басу керек, сосын ОК батырмасын шертеміз. Сонда сыртқы кілт бойынша индекс құрылып, оны сақтау үшін атау сұрайды (13-сурет). Индекс атауы сыртқы кілт атауымен бірдей болмауы керек, әйтпесе қате шығарады. Біз мысал үшін индекс атауын nb деп енгіздік, сосын ОК батырмасын шерту арқылы сақтаймыз.
Құрылған индексті осы терезеде бірден көруге болады, егер оны белгілесе, онда Modify – индексті жөндеу, Erase – индексті өшіру пернелері белсенді болады (14-сурет). Барлық өзгерістерді сақтау үшін Save пернесін басамыз.
Егер «student» кестесі мен «mamandik» кестесі «бірге-көп» байланыс дәрежесімен байланыстырылатын болса, онда екі кестенің біреуін басшы кесте деп, екіншісін бағынышты кесте деп анықтаймыз. Біздің мысалымызда «student» кестесі – басшы кесте, себебі студенттердің ең негізгі деректері сонда сақталып тұр, ал «mamandik» кестесі – бағынышты кесте. Ол үшін біз негізгі кестені өзгеріссіз қалтырып, бағынышты кестенің структурасын ашамыз
13-сурет-Индексті сақтау терезесі
(құрал-жабдықтар тақтасындағы
14-сурет-«mamandik» кестесі үшін анықталған индекс
Сілтемелі толықтылықты сақтау
Есептің қойылымынан белгілі болғандай «student» кестесі мен «mamandik» кестесі “бірге-көп” деген қатынаста, олай дейтініміз «student» кестесіндегі бір жазбаға «mamandik» кестесінен екі не одан көп жазба сәйкес келеді. Байланыс өрісі болып 2 кестеде де бар N_bilet өрісі болып табылады. Кесте мәліметінің бүтінділігін қарастырайық. Paradox–те сілтемелік бүтінділік бірінші кестедегі деректер өзгеріске ұшырағанда оған байланысты екінші кестедегі деректердің өзгеруін бақылайды.
14а-сурет-Сілтемелік толықтылық командасын таңдау терезесі
Сілтемелік толықтылықты құруды әрі қарай жалғастыру үшін Table Properties сұлама тізімінде Refrential Integrity элементін таңдаймыз және Define батырмасын шертеміз, сонда қай өрістердің деректері бір бірімен байланысты екендігін анықтауға көмектесетін терезе ашылады (15-сурет).
15-сурет-Сілтемелік толықтылықты құруға арналған терезе
Бұл терезенің Fields бөлімінде бағынышты кестенің өрістер тізімі келтірілген, ал Table бөлімінде басшы кестенің атауы көрініп тұрады. «student.db» атауын белгілеп сол жаққа сілтеу пернесін басамыз, сосын сол жақ шеттегі тізімнен N_bilet кілтін белгілеп, оң жаққа сілтеу пернесін, сосын ОК пернесін басамыз, өзгерісті сақтаймыз, ол үшін құрылатын сілтемелік индекске атау енгізіп, ОК пернесін басамыз (16-сурет).
Бұл терезедегі Cascade командасы қосылса – бағынышты кестеден жазуларды жоюды каскадты түрде орындайды; Prohibit - негізгі кестеде жазбаны жою немесе байланыс өрісіне өзгерісті шектеуді орындайды. Cascade
16-сурет-Сілтемелік толықтылық шартын анықтау
таңдап Ok пернесін басамыз.
Өзін өзі бақылау сұрақтары:
бар?
орындалады?
индекстеледі?
DataAccess компоненттер панелінен Ttable компонентін қалыпқа орналастырамыз. Осы объектіні белгілеп ObjectInspector терезесінде компонент қасиетін көрсетеміз:
Осы операциялардан кейн қалыпқа орнатылған компонент көрсетілген мәліметтер қоры кестесіндегі деректермен байланысады. Бірақ байланысты бірден тура осылай орнатпай, аралық деңгейдегі деректер көзі деп аталатын TdataSource компонентін де қолдануға болады. Әрбір деректер көзі деректер модулінде орналастырылғаннан кейін белгілі бір кестемен DataSet қасиеті арқылы байланысады.
Мәліметтерді өңдеуге қолданылатын компоненттер.
Мәліметтер қоры кестесіндегі жазуларды өшіру, жөндеу, жаңа жазу қосу керек болса ол үшін программалық код жазудың қажеті жоқ, қалыпқа DataControls (мәліметтерді басқару элементтері) деп аталатын панельде орналасқан TDGrid компонентін орналастырып, DataSource қасиетінде қажетті деректер көзін көрсету керек.
Бұл компонент кестенің жазуларын навигациялау үшін қолданылады. Навигация жазу бойымен жылжу дегенді білдіреді. Бұл компонент 10 батырмадан тұрады:
Ұзақ мәтін сақталған өріс жазуларын көрсету, өзгерту үшін қолданылады. Tlabel компонентіне ұқсас. DataSource қасиетінде деректер көзі көрсетіледі, DataField қасиетінде қолданылатын өріс көрсетіледі.
Ағымдағы жазуды өзгерту, көрсету үшін қолданылады. Алдыңғы компонентке ұқсас. Қосымша қасиеті ReadOnly қасиетін True десе кестенің жазулары өзгертуді қабылдамайды.
Мәліметтер қорында сақталған бейнелерді, суреттерді экранға шығаруды орындайды. Егер AutoDisplay қасиеті True десе өрістегі бейне автоматты түрде экранда көрінеді. Егер ол қасиет көрсетілмеген болса LoadMemo әдісін шақыру арқылы орындауға болады. Бейнені өріске қою, көбейту, т.б. операциялар Picture қасиетінде көрсетіледі.
Бұл компонент ашылған тізімнен (сұламалы) деректі таңдау, қолдануды орындайды. Енгізу облысындағы мәтін жиыны қажетті жазуға жылдам жылжу, немесе тізімде жоқ элементті енгізуге мүмкіндік береді. ComboBox компонентіне ұқсас, тек қосымша қасиеті Style жолында TcomboBoxStyle арқылы тізімге енетін элементтердің бейнелену стилі көрсетіледі.
Бұл компонент көмегімен екі жағдайдың бірін қабылдайтын өрістердің мәндерін көрсетуге болады. Компонент логикалық мән қабылдайды. Өрістің қандай жағдайда тұрғанын және оның мәнін өзгертуге көмектеседі.
Бұл компонент өрістің шектелген міндер жиынын көрнекі түрде шығаруды орындайды. Әр мәнге ауыстырып қосу тобының біреуін сәйкестендіруге болады. Ауыстырып қосу атауларының тізімі Items қасиетіне енгізіледі, оның типі Tstrings болады. Тізімге сәйкес мәндер Values қасиетінде сақталады, типі String болады.
Кестені экранға екі түрде шығаруға болады: торкөз түрінде, жеке өрістер түрінде. Мысалмен көрсетсек: «student» кестесін торкөз түрінде шығару керек болсын (17-сурет).
17-сурет-Student.db кестесін торкөз түрінде шығару қалыбы
Ол үшін қалыпқа DataAccess қатпарынан DataSource1, BDE қатпарынан table1, DataControls қатпарынан DBGrid1, DBNavigator компоненттерін орналастырамыз. Table1 компонентін белгілеп, DataBaseName қасиетіне Primer деп алиас атауын көрсетеміз, сосын кесте атауын көрсету үшін TableName қасиетіндегі тізімнен Student.db атауын таңдаймыз, кесте активті болсын Active қасиетін True деп береміз. DBNavigator1, DBGrid1 компоненттерін белгілеп, деректер көзіне қосу үшін dataSource қасиеттеріне TdataSource1 деп, DataSource1 компонентін белгілеп, DataSet қасиетін Table1 деп көрсетеміз.
Енді «student» кестесін экранға бір жазбадан шығаруды қарастырайық. Ол үшін қалыпқа Ttable, TdataSource компоненттерін орналастырамыз. Алдыңғы мысалдағы сияқты компоненттердің тиісті қасиеттерін көрсетеміз:
DataControl панелінен қалыпқа DBGrid компонентінің орнына қажетінше DBEdit компоненттерін, бір DBText, бір DBMemo (студенттерге қосымша мағлұмат шығару үшін) компоненттерін орналастырамыз да қасиеттерін көрсетеміз. DBEdit компоненттерінің dataSource қасиетін белгілеп dataSource1 деп, шығарылатын өрістерді көрсету үшін DataField жолында тиісінше өріс атауын тізімнен таңдап көрсетеміз (мысалы: N_bilet, FIO, Adres, Naz, Data т.б.).
Student.db кестесінің структурасына өзгерістер енгізейік. Ол үшін осы кестені ашып, структурасына еніп, студенттердің мінездемесін енгізу үшін Memo типті Kharacter, фотосуреттерін сақтау үшін Graphic типті Photo өрістерін құрып, кестені сақтайық.
Сосын қайта қалыпқа көшіп, DBMemo, DBImage компоненттерін қоямыз да, олардың dataSource қасиетін белгілеп dataSource1 деп, шығарылатын өрістерді көрсету үшін DataField жолында тиісінше өріс атауын тізімнен таңдап көрсетеміз, біздің мысалымыз бойынша олар Kharacter, Photo деген атаулар (17а-сурет).