Базы данных

Автор: Пользователь скрыл имя, 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 Мб (Скачать)

 

 

 

4.5 Сақталатын процедуралар сипаттамасы

 

Сақталатын процедура  – SQL Server жүйесіндегі бірге орындалатын, T-SQL операторларының жиынтығы. T-SQL сақталатын процедуралары басқа программалау тілдерінде сияқты кіріс және шығыс параметрлерін немесе Сәтті немесе сәтсіз орындалған операция жайлы хабарлама көрсетеді. Процедураның барлық операторлары процедура шақырылғанда орындалады. Олармен әр түрлі қолданушы пайдалана алады.

Сақталатын процедураға көшу үшін «Хранимые процедуры» басу керек, сонда сақталатын процедура орындау үшін қосымша терезе пайда болады. (сурет 4.5.1).

 

 

Рисунок 4.5.1 – Сақталынатын процедурамен жұмыс істеу терезесі

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Қорытынды

 

 

Берілген курсттық жұмыста келесі жұмыс атқарылды:

    • Деректер қорының құрылымын құру;
    • Деректер қорын құру;
    • Сақтау, іздеу, енгізу сияқты операцияларға арналған клиенттік бағдарлама құрылды.

Құрылған бағдарлама барлық функцияларды қамтиды. Тесттік  жұмыстар өткізілді, барлық қателер түзетілді.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Қолданылған әдебиеттер тізімі

 

  1. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. –М.: Издательский дом «Вильямс», 2003. – 1440 с.: ил.
  2. Мамаев Е. Microsoft SQL Server 2000. Наиболее полное руководство - СПб: ХВ-Петербург, 2005 – 1280с.
  3. Гарсиа А. MS SQL Server 2000. Справочник администратора.: Пер. с англ. –М.: Издательство ЭКОМ, 2002. – 976 с., ил.
  4. К.Дейт. Введение в системы БД. : Пер. с англ. –М.: Издательский дом «Вильямс», изд.6, 1999, – 1440 с.: ил.
  5. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 1989. – 351 с.
  6. Кириллов В.В. Структуризованный язык запросов (SQL). – СПб.: ИТМО, 1994. – 80 с.
  7. Фаронов В.В. Программирование баз данных в Delphi 7. Учебный курс. – Спб.: Питер, 2005. – 459 с., ил.
  8. Фаронов В. «Система программирования Delphi» - СПб: БХВ-Петербург, 2005
  9. Хомоненко А.Д. Базы данных. Учебник для вузов - Корона-Принт, 2004 – 736с
  10. Джеймс Р.Грофф, Пол Н.Вайнберг SQL полное руководство: Пер.с англ. – 2-е изд., перераб. и доп.- К. – Издательская группа BHV, 2001г - 816с., ил.

 

Қосымша А

Бағдарламаны қосу коды:

unit Connect;

 

interface

 

uses

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

  Dialogs, StdCtrls;

 

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

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

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

uses Unit2, Zapros;

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

   if (Edit2.Text='') or (Edit1.Text='') then

    begin

    ShowMessage('Вы не ввели имя базы либо имя сервера!')

    end

  else

  begin

  try

    Form2.ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='+Edit1.Text+';'+'Data Source='+Edit2.Text;

    Form2.ADOConnection1.Connected:=True;

    MessageBox(Form1.Handle,'База  успешно подключена!','Подсистема "Кадры-Зарплаты"', MB_ICONINFORMATION);

    Form1.Hide;

    Form2.Show;

  except

    begin

      Form2.ADOConnection1.Connected:=False;

      MessageBox(Form1.Handle,'Ошибка подключения! ','Подсистема "Кадры"', MB_ICONWARNING);

    end;

  end;

  end;

 

 

end;

 

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

begin

Application.Terminate;

end;

 

end.

 

Жұмысшы кестесіне мәлімет  қосу:

unit add1;

 

interface

 

uses

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

  Dialogs, DB, ADODB, StdCtrls, Buttons;

 

type

  TForm11 = class(TForm)

    Label1: TLabel;

    Label3: TLabel;

    Label5: TLabel;

    Label9: TLabel;

    Label11: TLabel;

    Label19: TLabel;

    Label2: TLabel;

    Label4: TLabel;

    Label6: TLabel;

    Label10: TLabel;

    Label12: TLabel;

    Label13: TLabel;

    Label14: TLabel;

    Label15: TLabel;

    Label17: TLabel;

    Label18: TLabel;

    Edit1: TEdit;

    ComboBox2: TComboBox;

    ComboBox4: TComboBox;

    ComboBox8: TComboBox;

    Edit6: TEdit;

    Edit10: TEdit;

    ComboBox3: TComboBox;

    ComboBox5: TComboBox;

    ComboBox9: TComboBox;

    Edit7: TEdit;

    Edit2: TEdit;

    Edit8: TEdit;

    Edit3: TEdit;

    Edit5: TEdit;

    Edit9: TEdit;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    Edit11: TEdit;

    ADODataSet1: TADODataSet;

    DataSource1: TDataSource;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form11: TForm11;

 

implementation

 

uses Unit2;

 

{$R *.dfm}

 

procedure TForm11.BitBtn1Click(Sender: TObject);

begin

ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select FIO_rabotnika from Rabotnik where FIO_rabotnika ='''+Edit1.Text+'''';

  ADODataSet1.Active:=True;

  if ADODataSet1.RecordCount<>0 then

  begin

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

   Edit1.Clear;

   Exit;

  end;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select RNN from Rabotnik where RNN ='''+Edit6.Text+'''';

  ADODataSet1.Active:=True;

  if ADODataSet1.RecordCount<>0 then

  begin

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

   Edit6.Clear;

   Exit;

  end;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select tab_nomer_rabotnika from Rabotnik where tab_nomer_rabotnika ='''+Edit11.Text+'''';

  ADODataSet1.Active:=True;

  if ADODataSet1.RecordCount<>0 then

  begin

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

   Edit11.Clear;

   Exit;

  end;

 

ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select SIK from Rabotnik where SIK ='''+Edit7.Text+'''';

  ADODataSet1.Active:=True;

  if ADODataSet1.RecordCount<>0 then

  begin

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

   Edit7.Clear;

   Exit;

  end;

 

ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select kol_izhdevencov from Rabotnik where kol_izhdevencov ='''+Edit2.Text+'''';

  ADODataSet1.Active:=True;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select data_rozhdeniya from Rabotnik where data_rozhdeniya ='''+Edit8.Text+'''';

  ADODataSet1.Active:=True;

 

   ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select adres_prozhivanita from Rabotnik where adres_prozhivanita ='''+Edit3.Text+'''';

  ADODataSet1.Active:=True;

 

    ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select oklad from Rabotnik where oklad ='''+Edit5.Text+'''';

  ADODataSet1.Active:=True;

 

    ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select data_priema_na_rabotu from Rabotnik where data_priema_na_rabotu ='''+Edit9.Text+'''';

  ADODataSet1.Active:=True;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select data_uvolneniya from Rabotnik where data_uvolneniya ='''+Edit10.Text+'''';

  ADODataSet1.Active:=True;

 

Form2.SQl('SELECT tab_nomer_rabotnika,kod_dolzhnosti,kod_nacionalnosti,kod_vida_obrazovaniya,kod_pensionnogo_fonda,kod_podrazdeleniya,FIO_rabotnika,adres_prozhivaniya,'

  +'data_rozhdeniya,pol,RNN,SIK,data_priema_na_rabotu,data_uvolneniya,oklad,kol_izhdevencov FROM Rabotnik');

  Form2.InsertQuery('INSERT INTO Rabotnik(tab_nomer_rabotnika,kod_dolzhnosti,kod_nacionalnosti,kod_vida_obrazovaniya,kod_pensionnogo_fonda,kod_podrazdeleniya,FIO_rabotnika,adres_prozhivaniya,'

  +'data_rozhdeniya,pol,RNN,SIK,data_priema_na_rabotu,data_uvolneniya,oklad,kol_izhdevencov)'

  +' VALUES ('''+Edit1.Text+''','''+Edit6.Text+''','''+Edit11.Text+''','''+Edit7.Text+''','''+Edit2.Text+''','''+Edit8.Text+''','''+Edit3.Text+''','''+Edit5.Text+''','''+Edit9.Text+''', '

  +' '''+IntToStr(ComboBox2.ItemIndex+1)+''','''+IntToStr(ComboBox4.ItemIndex+1)+''','''+IntToStr(ComboBox8.ItemIndex+1)+''','''+IntToStr(ComboBox3.ItemIndex+1)+''', '

  + ' '''+IntToStr(ComboBox5.ItemIndex+1)+''','''+IntToStr(ComboBox9.ItemIndex+1)+''')');

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

  end;

 

procedure TForm11.BitBtn2Click(Sender: TObject);

begin

Form11.Close;

  Edit1.Clear;

  Edit2.Clear;

  Edit3.Clear;

  Edit5.Clear;

  Edit6.Clear;

  Edit7.Clear;

end;

 

end.

 

Ұлттар кестесіне мәлімет  қосу:

unit add2;

 

interface

 

uses

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

  Dialogs, DB, ADODB, StdCtrls, Buttons;

 

type

  TForm12 = class(TForm)

    Label2: TLabel;

    Label1: TLabel;

    Edit2: TEdit;

    Edit1: TEdit;

    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

  Form12: TForm12;

 

implementation

 

uses Unit2;

 

{$R *.dfm}

 

procedure TForm12.BitBtn1Click(Sender: TObject);

begin

if Edit1.Text='' then

  begin

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

    Edit1.SetFocus;

    exit;

  end;

  if Edit2.Text='' then

  begin

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

    Edit2.SetFocus;

    exit;

  end;

  if Edit2.Text='0' then

  begin

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

    Edit2.SetFocus;

    exit;

  end;

  if length(Edit1.Text)>25 then

  begin

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

    Edit1.Clear;

    Edit1.SetFocus;

    exit;

  end;

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * from Nacionalnosti where naimenovanie_nacionalnosti='''+Edit1.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

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

   Edit1.Clear;

   Exit;

  end;

 

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * from Nacionalnosti where kod_nacionalnosti='''+Edit2.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

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

   Edit2.Clear;

   Exit;

  end;

  Form2.SQl('SELECT kod_nacionalnosti,naimenovanie_nacionalnosti FROM Nacionalnosti');

  Form2.InsertQuery('INSERT INTO Nacionalnosti(kod_nacionalnosti,naimenovanie_nacionalnosti) VALUES ('''+Edit2.Text+''','''+Edit1.Text+''')');

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

 

  Form12.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

 

procedure TForm12.BitBtn2Click(Sender: TObject);

begin

Form12.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

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

begin

  Case Key of

  'А'..'я':;

  'A'..'z':;

  #32:;

  #8:;

  #13:BitBtn1.Click;

  else Key:=chr(0);

  end;

end;

 

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

begin

  Case Key of

  '0'..'9':;

  #32:;

  #8:;

  #13:Edit1.SetFocus;

  else Key:=chr(0);

  end;

  end;

end.

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

unit add3;

 

interface

 

uses

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

  Dialogs, DB, ADODB, StdCtrls, Buttons;

 

type

  TForm13 = class(TForm)

    Label2: TLabel;

    Label1: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    ADODataSet1: TADODataSet;

    DataSource1: TDataSource;

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

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

    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form13: TForm13;

 

implementation

 

uses Unit2;

 

{$R *.dfm}

 

procedure TForm13.BitBtn2Click(Sender: TObject);

begin

Form13.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

 

procedure TForm13.BitBtn1Click(Sender: TObject);

begin

if Edit1.Text='' then

  begin

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

    Edit1.SetFocus;

    exit;

  end;

  if Edit2.Text='' then

  begin

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

    Edit2.SetFocus;

    exit;

  end;

  if Edit1.Text='0' then

  begin

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

    Edit1.SetFocus;

    exit;

  end;

  if length(Edit2.Text)>25 then

  begin

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

    Edit2.Clear;

    Edit2.SetFocus;

    exit;

  end;

  ADODataSet1.Active:=False;

  ADODataSet1.CommandText:='select * FROM Obrazovanie where naimenovanie='''+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 Obrazovanie where kod_vida_obrazovaniya='''+Edit1.Text+'''';

  ADODataSet1.Active:=True;

 

  if ADODataSet1.RecordCount<>0 then

  begin

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

   Edit1.Clear;

   Exit;

  end;

  Form2.SQL('SELECT kod_vida_obrazovaniya , naimenovanie FROM Obrazovanie');

  Form2.InsertQuery('INSERT INTO Obrazovanie(kod_vida_obrazovaniya,naimenovanie) VALUES ('''+Edit1.Text+''','''+Edit2.Text+''')');

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

 

  Form13.Close;

  Edit1.Clear;

  Edit2.Clear;

end;

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

begin

  Case Key of

  '0'..'9':;

  #32:;

  #8:;

  #13:Edit2.SetFocus;

  else Key:=chr(0);

  end;

end;

 

procedure TForm13.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 add4;

 

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