Базы данных

Автор: Пользователь скрыл имя, 14 Февраля 2013 в 18:48, курсовая работа

Описание работы

Курстық жобаны әзірлеуде пайдаланылатын ДҚБЖ Microsoft SQL Server 2008 R2 ең көп таралған және ДҚБЖ мұмкіншіліктері зор, клиент-сервер технологиясымен жұмыс істей реляциялық деректер қоры болып табылады.
Осы курстық жобаның мақсаты болып тапсырманың жеке варианты бойынша (вариант №4 – ішкі жүйе «Жұмысшылар») деректер қорын және клиенттік қосымшаны құру болып табылады.

Содержание

Кіріспе
4
1 Тапсырма
5
2 Деректер қоры құрылымын өңдеу
6
2.1 Пәндік аумақтың сипаттамасы
6
2.2 Ақпараттық ағындарды талдау
7
2.3 Инфологиялық модельді құру
8
2.3.1 Мәндерді нормализациялау процедурасы
14
2.4 Даталогиялық модельдің құрылуы
14
2.5 Мәліметтер базасын іске асыру үшін техникалық-бағдарламалық құралдарды және клиент қосымшасын таңдау
27
3 «Жұмысшылар» мәліметтер базасын құру
28
3.1 Мәліметтер базасының құрылымының сипаттамасы
28
3.2 Мәліметтер базасының кесте қасиеттерінің сипаттамасы
28
3.3Мәліметтер базасының кестелерінің арасындағы қатынастың және мәліметтің бүтінді шарттарының сипаттамасы
34
3.4 Сақталатын процедура сипаттамасы
37
4 Ақпараттық жүйенiң қолданбалы интерфейсiнiң жасалуы
40
4.1 Қолданушы мәзірі
40
4.2 Мәліметтер базасына мәліметтерді өзгерту, қосу, өшіру, көру үшін формалар
41
4.3 Мәліметтер базасының сұраныстарының дайындалуы
44
4.4 Есептеу негіздерінің құрылуы
46
4.5 Сақталатын процедурамен жұмыс
48
4.6 Анықтамалық жүйе
49
Қорытынды
50
Қолданылған әдебиеттердің тізімі
51
Қосымша А
52
Қосымша Б
74

Работа содержит 1 файл

Курсовая МОЯ.doc

— 7.23 Мб (Скачать)

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, DB, ADODB, StdCtrls, Buttons;

 

type

  TForm15 = class(TForm)

    Label2: TLabel;

    Label1: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    ADODataSet1: TADODataSet;

    DataSource1: TDataSource;

    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form15: TForm15;

 

implementation

 

uses Unit2;

 

{$R *.dfm}

 

procedure TForm15.BitBtn2Click(Sender: TObject);

begin

Form15.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

 

procedure TForm15.BitBtn1Click(Sender: TObject);

begin

if Edit1.Text='' then

  begin

    MessageBox(Form15.Handle,'Вы  не ввели код пенсионного фонда!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if Edit2.Text='' then

  begin

    MessageBox(Form15.Handle,'Вы не ввели название пенсионного фонда!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.SetFocus;

    exit;

  end;

  if Edit1.Text='0' then

  begin

    MessageBox(Form15.Handle,'Код  пенсионного фонда должен быть  больше целым положитительным  числом!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if length(Edit2.Text)>25 then

  begin

    MessageBox(Form15.Handle,'Название  пенсионного фонда слишком длинное.  Не должно быть более 25 символов!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.Clear;

    Edit2.SetFocus;

    exit;

  end;

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * FROM Pensionnye_fondy where naimenovanie_pensionnogo_fonda='''+Edit2.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такой пенсионный фонд уже есть в таблице!', mtError, [mbOk], 0);

   Edit2.Clear;

   Exit;

  end;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * from Pensionnye_fondy where kod_pensionnogo_fonda='''+Edit1.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такой код  пенсионного фонда уже есть  в таблице!', mtError, [mbOk], 0);

   Edit1.Clear;

   Exit;

  end;

  Form2.SQL('SELECT kod_pensionnogo_fonda, naimenovanie_pensionnogo_fonda FROM Pensionnye_fondy');

  Form2.InsertQuery('INSERT INTO Pensionnye_fondy(kod_pensionnogo_fonda,naimenovanie_pensionnogo_fonda) VALUES ('''+Edit1.Text+''','''+Edit2.Text+''')');

  MessageBox(Form15.Handle,'Данные  добавлены!','Кадры',mb_Ok+mb_IconInformation);

 

  Form15.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

end.

 

Мамаңдықтар дәрежесі кестесімен жұмыс жасау:

unit add5;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, DB, ADODB, StdCtrls, Buttons;

 

type

  TForm16 = class(TForm)

    Label2: TLabel;

    Label1: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    ADODataSet1: TADODataSet;

    DataSource1: TDataSource;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form16: TForm16;

 

implementation

 

uses Unit2;

 

{$R *.dfm}

 

procedure TForm16.BitBtn1Click(Sender: TObject);

begin

if Edit1.Text='' then

  begin

    MessageBox(Form16.Handle,'Вы  не ввели код категории должности!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if Edit2.Text='' then

  begin

    MessageBox(Form16.Handle,'Вы  не ввели название категории  должности!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.SetFocus;

    exit;

  end;

  if Edit1.Text='0' then

  begin

    MessageBox(Form16.Handle,'Код  категории должности должен быть  больше целым положитительным  числом!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if length(Edit2.Text)>25 then

  begin

    MessageBox(Form16.Handle,'Название  категории должности слишком  длинное. Не должно быть более  25 символов!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.Clear;

    Edit2.SetFocus;

    exit;

  end;

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * FROM Kategoriya_dolzhnostei where naimenovanie_kategorii_dolzhnosti='''+Edit2.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такая категория должности уже есть в таблице!', mtError, [mbOk], 0);

   Edit2.Clear;

   Exit;

  end;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * From Kategoriya_dolzhnostei where kod_kategorii_dolzhnosti='''+Edit1.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такой код  категории должности уже есть  в таблице!', mtError, [mbOk], 0);

   Edit1.Clear;

   Exit;

  end;

  Form2.SQL('SELECT kod_kategorii_dolzhnosti, naimenovanie_kategorii_dolzhnosti FROM Kategoriya_dolzhnostei');

  Form2.InsertQuery('INSERT INTO Kategoriya_dolzhnostei(kod_kategorii_dolzhnosti,naimenovanie_kategorii_dolzhnosti) VALUES ('''+Edit1.Text+''','''+Edit2.Text+''')');

  MessageBox(Form16.Handle,'Данные  добавлены!','Кадры',mb_Ok+mb_IconInformation);

 

  Form16.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

 

 

procedure TForm16.BitBtn2Click(Sender: TObject);

begin

Form16.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

 

end.

 

Мамаңдықтар кестесіне  мәлімет қосу:

unit add6;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, DB, ADODB, StdCtrls, Buttons;

 

type

  TForm17 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    ComboBox1: TComboBox;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    ADODataSet1: TADODataSet;

    DataSource1: TDataSource;

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

    procedure Edit2KeyPress(Sender: TObject; var Key: Char);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form17: TForm17;

 

implementation

 

uses Unit2;

 

 

{$R *.dfm}

 

procedure TForm17.BitBtn1Click(Sender: TObject);

begin

if Edit1.Text='' then

  begin

    MessageBox(Form17.Handle,'Вы  не ввели код должности!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if Edit2.Text='' then

  begin

    MessageBox(Form17.Handle,'Вы  не ввели наименование должности!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.SetFocus;

    exit;

  end;

  if Edit1.Text='0' then

  begin

    MessageBox(Form17.Handle,'Код  должности должен быть больше  целым положитительным числом!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if length(Edit2.Text)>25 then

  begin

    MessageBox(Form17.Handle,'Наименование  должности слишком длинное. Не  должно быть более 25 символов!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.Clear;

    Edit2.SetFocus;

    exit;

  end;

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * FROM Dolzhnosti where naimenovanie_dolzhnosti='''+Edit2.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такая должность  уже есть в таблице!', mtError, [mbOk], 0);

   Edit2.Clear;

   Exit;

  end;

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * from Dolzhnosti where kod_dolzhnosti='''+Edit1.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такой код  должности уже есть в таблице!', mtError, [mbOk], 0);

   Edit1.Clear;

   Exit;

  end;

   Form2.SQL('SELECT * FROM Dolzhnosti');

  Form2.InsertQuery('INSERT INTO Dolzhnosti(kod_dolzhnosti,naimenovanie_dolzhnosti,kod_kategorii_dolzhnosti) VALUES ('''+Edit1.Text+''','''+Edit2.Text+''','''+IntToStr(ComboBox1.ItemIndex+1)+''')');

  MessageBox(Form17.Handle,'Данные  добавлены!','Кадры',mb_Ok+mb_IconInformation);

 

  Form17.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

 

procedure TForm17.BitBtn2Click(Sender: TObject);

begin

Form17.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

 

  procedure TForm17.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

  Case Key of

  '0'..'9':;

  #32:;

  #8:;

  #13:Edit2.SetFocus;

  else Key:=chr(0);

  end;

end;

 

procedure TForm17.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

  Case Key of

  'А'..'я':;

  'A'..'z':;

  '-':;

  #32:;

  #8:;

  #13:BitBtn1.Click;

  else Key:=chr(0);

  end;

end;

end.

 

Штаттық кесте кестесіне  мәлімет қосу:

unit add7;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, DB, ADODB, Buttons;

 

type

  TForm14 = class(TForm)

    Label9: TLabel;

    Label10: TLabel;

    ComboBox8: TComboBox;

    ComboBox9: TComboBox;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    ADODataSet1: TADODataSet;

    DataSource1: TDataSource;

    Edit1: TEdit;

    Edit2: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

    procedure Edit2KeyPress(Sender: TObject; var Key: Char);

    procedure BitBtn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form14: TForm14;

 

implementation

 

uses Unit2;

 

 

{$R *.dfm}

 

procedure TForm14.BitBtn1Click(Sender: TObject);

begin

if Edit1.Text='' then

  begin

    MessageBox(Form14.Handle,'Вы  не ввели общее кол-во единиц!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if Edit2.Text='' then

  begin

    MessageBox(Form14.Handle,'Вы  не ввели кол-во вакансий!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.SetFocus;

    exit;

  end;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * FROM Shtatnoe_raspisanie where kol_vakansii='''+Edit2.Text+'''';

  ADODataSet1.Active:=True;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * from Shtatnoe_raspisanie where obwee_kol_edenic='''+Edit1.Text+'''';

  ADODataSet1.Active:=True;

 

   Form2.SQL('SELECT * FROM Shtatnoe_raspisanie');

  Form2.InsertQuery('INSERT INTO Shtatnoe_raspisanie(obwee_kol_edenic,kol_vakansii,kod_podrazdeleniya,kod_dolzhnosti) VALUES ('''+Edit1.Text+''','''+Edit2.Text+''','''+IntToStr(ComboBox8.ItemIndex+1)+''','''+IntToStr(ComboBox9.ItemIndex+1)+''')');

  MessageBox(Form14.Handle,'Данные  добавлены!','Кадры',mb_Ok+mb_IconInformation);

  Form14.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

 

  procedure TForm14.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

  Case Key of

  '0'..'9':;

  #32:;

  #8:;

  #13:Edit2.SetFocus;

  else Key:=chr(0);

  end;

end;

 

procedure TForm14.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

  Case Key of

  '0'..'9':;

  #32:;

  #8:;

  #13:Edit2.SetFocus;

  else Key:=chr(0);

  end;

end;

end.

 

Бұйрық түрлері кестесіне  мәлімет қосу:

unit add8;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, DB, ADODB, StdCtrls, Buttons;

 

type

  TForm18 = class(TForm)

    Label2: TLabel;

    Label1: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    ADODataSet1: TADODataSet;

    DataSource1: TDataSource;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form18: TForm18;

 

implementation

 

uses Unit2;

 

{$R *.dfm}

 

procedure TForm18.BitBtn1Click(Sender: TObject);

begin

begin

if Edit1.Text='' then

  begin

    MessageBox(Form18.Handle,'Вы  не ввели код типа приказа!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if Edit2.Text='' then

  begin

    MessageBox(Form18.Handle,'Вы  не ввели название приказа!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.SetFocus;

    exit;

  end;

  if Edit1.Text='0' then

  begin

    MessageBox(Form18.Handle,'Код типа приказа должен быть больше целым положитительным числом!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if length(Edit2.Text)>25 then

  begin

    MessageBox(Form18.Handle,'Название  приказа слишком длинное. Не  должно быть более 25 символов!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.Clear;

    Edit2.SetFocus;

    exit;

  end;

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * FROM Tipy_prikazov where naimenovanie_tipa_prikaza='''+Edit2.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такой вид  образования уже есть в таблице!', mtError, [mbOk], 0);

   Edit2.Clear;

   Exit;

  end;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * from Tipy_prikazov where kod_tipa_prikaza='''+Edit1.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такой код  типа приказа уже есть в  таблице!', mtError, [mbOk], 0);

   Edit1.Clear;

   Exit;

  end;

  Form2.SQL('SELECT kod_tipa_prikaza , naimenovanie_tipa_prikaza FROM Tipy_prikazov');

  Form2.InsertQuery('INSERT INTO Tipy_prikazov(kod_tipa_prikaza,naimenovanie_tipa_prikaza) VALUES ('''+Edit1.Text+''','''+Edit2.Text+''')');

  MessageBox(Form18.Handle,'Данные  добавлены!','Кадры',mb_Ok+mb_IconInformation);

 

  Form18.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

end;

 

procedure TForm18.BitBtn2Click(Sender: TObject);

begin

Form18.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

 

end.

 

Бөлімшелер кестесіне  мәлімет қосу:

unit add9;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, DB, ADODB, Buttons;

 

type

  TForm19 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    ADODataSet1: TADODataSet;

    DataSource1: TDataSource;

    Label3: TLabel;

    ComboBox1: TComboBox;

    procedure BitBtn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form19: TForm19;

 

implementation

 

uses Unit2;

 

{$R *.dfm}

 

procedure TForm19.BitBtn1Click(Sender: TObject);

begin

if Edit1.Text='' then

  begin

    MessageBox(Form19.Handle,'Вы  не ввели код подразделения!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if Edit2.Text='' then

  begin

    MessageBox(Form19.Handle,'Вы  не ввели название подразделения!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.SetFocus;

    exit;

  end;

 

 

  if Edit1.Text='0' then

  begin

    MessageBox(Form19.Handle,'Код подразделения должен быть больше целым положитительным числом!','Кадры',mb_Ok+mb_IconWarning);

    Edit1.SetFocus;

    exit;

  end;

  if length(Edit2.Text)>25 then

  begin

    MessageBox(Form19.Handle,'Название  подразделения слишком длинное.  Не должно быть более 25 символов!','Кадры',mb_Ok+mb_IconWarning);

    Edit2.Clear;

    Edit2.SetFocus;

    exit;

  end;

 

ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * FROM Podrazdeleniya where naimenovanie_podrazdeleniya='''+Edit2.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такое подразделение  уже есть в таблице!', mtError, [mbOk], 0);

   Edit2.Clear;

   Exit;

  end;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * from Podrazdeleniya where kod_podrazdeleniya='''+Edit1.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

   MessageDlg('Такой код  подразделения уже есть в таблице!', mtError, [mbOk], 0);

Информация о работе Базы данных