Делфи және мәліметтер қоры

Автор работы: Пользователь скрыл имя, 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 Генераторлар мен триггерлер
Қортынды
Әдебиеттер тізімі

Файлы: 1 файл

621.doc

— 2.30 Мб (Скачать файл)

Қайта қалпына келтірудің жалпы қағидалары:

  • тіркелген транзакциялардың нәтижесі мәліметтер қорының қалпына келтірілген күйінде сақталуы керек;
  • тіркелмеген транзакциялардың нәтижесі мәліметтер қорының қалпына келтірілген күйінде сақталмауы керек;

Мәліметтер қорын қайта қалпына келтіру кезінде келесідей жағдайлар кездесуі мүмкін:

  • Транзакцияның жеке дара шегінуі. ROLLBACK операторымен аяқталатын транзакцияның шегінуі құр бос жағдай ғана болып қалады. Кейде транзакция шегінуі жүйемен басталуы да мүмкін. Мысалы қолданбалы бағдарламада ерекше жағдайлар туындап қалуы мүмкін (санды нөлге бөлу). Транзакцияның жеке дара шегінуі кезіндегі деректерді қайта қалпына келтіру үшін, мәліметтер қоры өзгерістерінің осы транзакция кезінде орындалған операторлардың салдарын жою керек.
  • Жедел жадының деректерін жоғалтқан кезде қайта қалпына келтіру (жеңіл ақау). Мұндай жағдай электрлік қоректі авариялық өшірген кезде, жүйелі блоктың жойылмайтын ақауы кезінде (мысалы, жедел жадтың ақауы) және т.б. Бұл жағдайлар ақау кезінде жедел жадтың буферінде қалып қойған мәліметтер қорының жоғалуымен сипатталады.
  • Мәліметтер қорын тасушы негізгі сыртқы жадтың бұзылуы (қатаң ақау). Бұл жағдай сирек кездеседі, дегенмен де қазіргі заманның мәліметтер қорын басқару жүйесі қайта қалпына келтіруге қандай жағдай болмасын дайын болуы керек. Қайта қалпына келтірудің негізінде мәліметтердің өзгеріс журналы мен архивтік көшірме жатыр.

Қайта қалпына келтірудің үш түрінің негізінде де мәліметтерді артық сақтау жатыр. Бұл артық мәліметтер журналда сақталатын болады.

Журналдық ақпаратты жүргізудің екі нұсқасы бар. Бірінші нұсқасында әр транзакция үшін мәліметтер қоры өзгерісін тіркейтін жергілікті журналы болады. Бұл жергілікті журналдар жеке транзакция шегінуінде қолданылады және жедел жадпен (нақтырақ айтсақ виртуалды жадпен) сүйемелденеді. Одан басқа деректер өзгерісін тіркеп отыратын жалпы журнал болады, ол қатаң және жеңіл түрдегі ақаулардан кейін мәліметтерді қайта қалпына келтіруде қолданылады. Бірінші нұсқаның өз кемшілігі бар, яғни жергілікті және жалпы журналдарда ақпараттарды қайталап сақтап отырады. Сондықтан да екінші нұсқа жиі қолданылады.

Журнал жүргізу – мәліметтер қорымен операциялар журналын жүргізу. Операторлардың іс-әрекеттерін мамандандыру. Мәліметтер қорын тіркеу журналы бүкіл мәліметтер қорына немесе белгілі бір кестелерге ғана жүргізілуі мүмкін. Бұл журналға кестеге енгізілген өзгерістердің уақыты мен мерзімі, сол өзгерістерді енгізіп отырған қолданушының жүйелік аты тіркеледі. Сонымен қатар, өзгерістер енгізілгенге дейінгі және кейінгі кестедегі өзгерген жазбалардың күйі көрсетіледі. Тіркеу журналын толық түрінде немесе қолданушының сүзгілеп алған белгілі бір мерзімі не арнайы кестесі түрінде де көруге болады. Әдетте журналдағы ақпаратты бұзылған мәліметтер қорын қалпына келтіру үшін қолданады.

Журналға келесі ақпараттар тіркеледі:

  • реттік нөмірі, типі және өзгерген мерзімі;
  • транзакцияның идентификаторы;
  • өзгеріске ұшыраған объект (сақталған файл нөмірі мен ондағы деректер  

   блогінің нөмірі, блок ішіндегі жолдың нөмірі);

  • объектінің алдыңғы жағдайы мен соңғы жағдайы.

Осылайша құрастырылған ақпарат мәліметтер қорының өзгерістер журналы болып табылады. Журнал транзакцияның басталғаны мен аяқталғаны жайлы белгілерге және бақылау нуктесінің қабылдау белгілеріне ие. Жазбалары тоқтатылып қойылған мәліметтер қорын басқару жүйесіндегі жазбалар блоктары сыртқы жадыда соңғы өзгерген  реттік нөмір белгісімен жабдықталады. Жүйенің ақауы кезінде бұл белгі блоктың қай нұсқасы сыртқы жадыға жетпей қалғанын көрсететін болады. Жазбалары тоқтатылып қойылған мәліметтер қорын басқару жүйесі уақ-уақ бақылау нүктелерін орындайды. Бұл үрдіс кезінде тіркелмеген деректер сыртқы жадыға көшіріледі, ал журналда бақылау нүктесінің қабылданғаны туралы белгі тұратын болады.  Осыдан кейін, бақылау нүктесіне дейін жазылған журналдың мазмұнын өшіре беруге болады. Өзгерістер журналы тікелей сыртқы жадыға жазылмай, жедел жадыға топтастырылуы да мүмкін. МҚБЖ-ның транзакциясына қолдау көрсетілген жағдайда, сигналдан кейін деректер сыртқы жадқа көшірілетін болады. Егер де логикалық бас тарту немесе бір транзакцияның шегінуі болып жатса журнал кері қарай жүреді. Транзакциямен тоқтатылған барлық жазбалар журналдан шығарылады. Ал журналға орнын толтыратын жазбалар тіркелетін болады. Бұл үрдіс шегіну (rollback) деп аталады. Ал физикалық бас тарту кезінде, журнал да мәліметтер қоры да бұзылмаған жағдайда айдау (rollforward) үрдісі жүргізіледі. Журнал тура бағытта жүргізіледі. Журналдан шығарылған барлық ақпарат сыртқы жадының блоктарына енгізіледі.

«Сервис» пунктінің «Журнализация» командасына мына кодты жазамыз:

procedure TForm1.N23Click(Sender: TObject);

begin

  with TdfShowLog.Create(Application) do

    begin

      ShowModal;

      Free;

   end;

end;

Бұл код орындалу үшін жаңа форма құрып оның атауын dfShowLog деп атаймыз, оған 67-суреттегідей компоненттерді қоямыз.

1-формадағы   процедуралар тізіміне

procedure DataSource1StateChange(Sender: TObject); атауын  жазамыз да, оның кодын {$R *.dfm} директивасынан  кейін мына түрде жазамыз:

procedure TForm1.DataSource1StateChange(Sender: TObject);

begin

  if DataSource1.State = dsEdit then

    IsAppend := False

  else if DataSource1.State = dsInsert then

    IsAppend := True

  else

    IsAppend := False;

end;

Мұндағы    IsAppend айнымалысы ақиқат және жалған қабылдауы керек, сондықтан оны модульдің private бөліміне IsAppend : Boolean; деп сипаттау керек.

Журналға қолданушылардың қандай операция орындағанын анықтайтын

67-сурет-Журнализацияны жүргізу формасы

 

бағдарлама кодын жазу үшін 1-формадағы ADOQuery1 компонентін белгілеп, Object Inspector терезесінің Events бөлігіндегі AfterPost оқиғасына мына кодты жазамыз:

procedure TForm1.ADOQuery1AfterPost(DataSet: TDataSet);

begin

  qrLog.Edit;

  qrLog.Append;

  qrLog.FieldByName('user').AsInteger := USER;

  qrLog.FieldByName('evtdate').AsDateTime := Now;

  qrLog.FieldByName('rowid').AsInteger := ADOQuery1.FieldByName('kod').AsInteger;

  if IsAppend then

    begin

      qrLog.FieldByName('action').AsInteger := 1;

      qrLog.FieldByName('message').AsString := 'Жана жазба енгізілді';

    end

  else

    begin

      qrLog.FieldByName('action').AsInteger := 2;

      qrLog.FieldByName('message').AsString := 'Жазба озгертілді';

    end;

  qrLog.Post;

  IsAppend := False;

end;

Мұндағы qrLog  1-формада қойылған ADOQuery3 компонентінің атауы.

1-форманың экранда көріну оқиғасына мына кодты жазамыз:

procedure TForm1.FormShow(Sender: TObject);

begin

  qrLog.Edit;

  qrLog.Append;

  qrLog.FieldByName('user').AsInteger := USER;

  qrLog.FieldByName('evtdate').AsDateTime := Now;

  qrLog.FieldByName('rowid').AsInteger := 0;

  qrLog.FieldByName('action').AsInteger := 4;

  qrLog.FieldByName('message').AsString := 'Жуйеге  кіру';

  qrLog.Post;

end;

1-форманың жабылу оқиғасына  мына кодты жазамыз:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

  qrLog.Edit;

  qrLog.Append;

  qrLog.FieldByName('user').AsInteger := USER;

  qrLog.FieldByName('evtdate').AsDateTime := Now;

  qrLog.FieldByName('rowid').AsInteger := 0;

  qrLog.FieldByName('action').AsInteger := 5;

  qrLog.FieldByName('message').AsString := 'Жуйеден шыгу';

  qrLog.Post;

end;

Бұл кодтар арқылы қолданушылардың жүйеге кіргені, шыққаны туралы ақпарат  деректер қорына жазылып отырады. Бағдарламаның нәтижесінде «Сервис» мәзірінің «Журнализация» командасын орындағанда жүйені қолданушылар және олардың орындаған әрекеттері, уақыты, мерзімі кесте түрінде көрініп тұрады (68-сурет).

 

68-сурет-Журнализация формасының нәтижесі

 

 

Өзін өзі бақылау сұрақтары

 

  1. Мәліметтер қорын қалай сенімді сақтауға болады?
  2. Транзакция деген не?
  3. Оның қандай түрлері бар?
  4. Тіркелген транзакциялар қандай нәтиже береді?
  5. Тіркелмеген транзакциялар қандай нәтиже береді?
  6. Транзакцияның жеке дара шегінуі деген не?
  7. Транзакцияның бекітілуі деген не?
  8. Жеңіл ақау деген не? Ол қалай анықталады?
  9. Қатаң ақау деген не? Ол қалай анықталады?
  10. Журнал жүргізу не үшін қажет?
  11. Журналға қандай ақпараттар тіркеледі?

 

5-БӨЛІМ. СЕРВЕРЛІК МӘЛІМЕТТЕР ҚОРЫ ЖӘНЕ INTERBASE СЕРВЕРІМЕН ТАНЫСУ

 

Мұндай МҚ бір немесе бірнеше компьютерлерде орналасады. МҚ серверлері бір бірінен ақпаратты сақтау әдістерімен ерекшеленеді, бірақ барлығы бірігіп SQL- құрылымды сұраныстар тілін қолдану арқылы өзара байланыстарды орнатады. Осы қасиетіне қарап МҚ-мен жұмыс істейтін барлық серверлерді  SQL-срверлер дейді. Бұл серверлерге қосылатын қосымшалар көпдеңгейлі деп аталады, себебі ондай қосымшалар әртүрлі жүйелерде жұмыс істей береді.

SQL-срверлердің көпшілігі SQL-командаларды  және басқа да қосымша қызметтерді  орындайды. Сондықтан әр сервердің  өз диалекті болады.

SQL тілі локальды МҚ-мен де  жұмыс істейді, бірақ SQL-серверлермен  салыстырғанда жұмысы баяу болады, себебі SQL-серверлер SQL-командаларды талдап, тиімді етіп орындайды, ал локальды базада ол жоқ. Сондықтан қосымшалар құрған кезде Paradox, dBase, FoxPro МҚБЖ-н тек басқа қолдануға тұрарлық программа жоқ болғанда ғана қолданады.

SQL-серверлерге жататын программалар:

InterBase, Oracle, SyBase, Informix, MS SQL Server, DB2. 

МҚ типін таңдағанда келесі факторларды ескеру қажет:

- МҚ-на бірмезгілде қосылатын  қолданушылар саны. SQL-серверлер  бірмезгілде көпқолданушылықты  ұйымдастырады және транзакция механизмімен жұмыс істейді. Ал локальды МҚ файлдық жүйенің қолданылуына негізделген блоктау механизмімен жұмыс істейді. Егер осыны ескерсек, локальды базаны аз қолданушылық режимде таңдайды.

- Сақталатын деректер көлемі. SQL-серверлер  көп деректерді сақтай алады, себебі локальды МҚ-да бір базадағы кестелер саны 10000-нан аса бастаса кедергілер туындайды.

- Администраторлық қызметтерді  қолдану қажеттілігі. Локальды МҚ-да  SQL-серверге қарағанда ресурстар  аз қолданылады және оларды  басқару жеңіл. Ал SQL-серверде МҚ-н администрациялау үшін көп ресурс керек.

- Сенімді қауіпсіздіктің қажеттілігі. МҚ көп жағдайда конфиденциальды  ақпараттан тұрады, локальды МҚ-да  қауіпсіздік тек қана бір кесте  немесе атрибут деңгейінде орнатылса, SQL-серверде МҚ-н тұтасымен қорғау мүмкіндігі бар.

Сонымен локальды МҚ келесі талаптарға сай қолданылады:

  1. МҚ кестелерінде жазулар саны 10000-нан жоғары болмаса.
  2. МҚ-н қолданатын қолданушылар саны аз болса.
  3. Күрделі администраторлық, қорғау қызметтері қажет болмаса. 

 

5.1 INTERBASE локальды сервері

 

    1. Серверді іске қосу

Бұл сервер екі режимде іске қосылады: қолмен және автоматты түрде. Сонымен қатар, WindowsNT ОЖ-де екі деңгейде іске қосылады:

  1. Сервис түрінде
  2. Қосымша түрінде (Windows95/98-де әрқашан қосымша түрінде қосылады).

InterBase –тің құрамында оның іске  қосылу режимі мен деңгейін  басқаратын  InterBase Manager деп аталатын  утилита бар. Оны InterBase папкасындағы  InterBase Server Manager командасын таңдау  арқылы шақырады. Ол терезенің  жоғарғы жағында іске қосу  режимін таңдауға көмектесетін StartUp Mode бөлігінде екі ауыстырып қосқыш: Automatic (автоматты түрде) және Manual (қолмен қосу) бар. Терезенің төменгі жағында Status облысы бар. Онда сервердің жағдайы көрсетіледі: The InterBase Server is currently Running – сервердің жұмыс істеп тұрғандығын білдіреді, Stop – пернесі серверді тоқтату, егер оны басса орнына Start пернесіне айналады, яғни серверді тоқтаған соң қайта қосу пернесі. Change пернесі – жағдайды өзгерту. Осы терезенің ең астында Run the InterBase server as a service on WindowsNT жалаушасы бар, ол белгіленсе, сервис түрінде қосылады.

    1. Сервердің қосылғандығын тексеру

Windows95/98-де InterBase сервер жұмыс істеп  тұрғанда тапсырмалар тақтасындағы  оң жақ бұрышта белгісі көрініп  тұрады. WindowsNT-де ол қосымша түрінде іске қосылса, белгі көрінеді де, ал қызмет түрінде іске қосылса, онда оның жұмыс істеп тұрғанын білу үшін тапсырмалар тақтасында тышқанның оң жақ пернесін басып, Диспетчет задач терезесін шығарып, Процесстер бөлігінен ibguard.exe немесе ibserver.exe файлдарының бар екекндігін тексеру керек. Егер ол болмаса, онда сервер орнатылмағандығын білдіреді.

    1. Серверде тіркелу.

Сервердің орнатылғанын білгеннен кейін онда тіркелу үшін: ПУСК-ПРОГРАММЫ-InterBase – IBConsole командаларын орындау керек. IBConsole –InterBase  пакетіне енгізілген, сервердің баптауларына қажетті барлық амалдар, серверде МҚ-н құру және администрациялау, SQL – сұранысты қосатын графикалық утилитасы іске қосылады.

Оның терезесі келесі компоненттерден тұрады:

  • Мәзір – серверді басқару командалары бар
  • Құралдар тақтасы – мәзір командаларын жылдам орындаушы құралдар
  • Бұтақтар терезесі – серверде тіркелген серверлер мен МҚ иерархиясын бейнелейді
  • Жұмыс терезесі – сол жақ бөліктегі бұтақтар туралы толық ақпарат береді. Онда басқа да осы объектілерге амалдар қолдануға болады.
  • Жағдай жолы – қай сервердің таңдалғаны, қолданушы туралы ақпарат көрсетіледі.

Информация о работе Делфи және мәліметтер қоры