База данных книжного магазина

Автор работы: Пользователь скрыл имя, 03 Октября 2013 в 23:35, курсовая работа

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

В данной курсовой работе была разработана база данных книжного магазина.
В проекте были исследованы три основных составляющих проектирования и создания БД, а именно:
1. Анализ предметной области. 2. Проектирование логической модели. 3. Реализация Базы Данных.

Содержание работы

Введение 5
1. Исследовательская часть 7
1.1 Постановка задачи 7
1.2 Анализ предметной области 8
1.3 Описание предметной области 8
1.4 Сбор данных по выбранной теме 9
1.5 Средства реализации 10
2. Конструкторская часть 16
2.1 Основные этапы разработки 16
2.2 Создание структуры базы данных 16
2.3 Создание таблиц 19
2.4 Создание приложения в Delphi 2010 22
2.5 Создание отчётов по базе данных 30
2.6 Тестирование разработанного продукта 32
3. Технологическая часть 35
Заключение 35
Список литературы 37
Приложение А 38
Приложение Б 39
Приложение В 42

Файлы: 1 файл

Курсак БД копия.docx

— 817.83 Кб (Скачать файл)

3. Реализация  Базы Данных.

После описания логической модели выбирается необходимая  СУБД и создается физическая модель.

Основной  задачей в данном разделе является непосредственно реализация БД на программном  продукте.

Необходимо  сформулировать основные требования и  задачи к будущей системе и, опираясь на поставленные критерии провести анализ и сравнение программ СУБД.

Заключительным  этапом является разработка приложения к СУБД.

Таким образом, разработанная база данных полностью  отвечает предъявленным к ней  требованиям.

 

 

 

 

 

 

 

Список литературы

 

  1. Архангельский А. Я. Программирование в Delphi 7. – М.: ООО «Бином-Пресс», 2003г. – 1152 с.
  2. Иванова Г. С. Технология программирования: Учебник для ВУЗов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 320с.
  3. Фаронов В. В., Учёбный курс Delphi 7, Москва,  2007
  4. Базы данных: Учебник для высших учебных заведений под ред. Хомоненко А. Д. – СПб КОРОНА принт. 2002г. – 416с.
  5. Освой самостоятельно SQL. 10 минут на урок, 3-е издание.: Пер. с англ. – М.: Издательский дом "Вильямс", 2009
  6. www.ibase.ru
  7. www.taurion.ru
  8. www.lessons-tva.info
  9. www.sql.ru

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение Б

 

unit UMain;

 

interface

 

uses

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

  Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls;

 

type

  TForm1 = class(TForm)

    GroupBox1: TGroupBox;

    bbtnBooks: TBitBtn;

    bbtnAuthor: TBitBtn;

    bbtnGanr: TBitBtn;

    bbtnPuplish: TBitBtn;

    bbtnCustomer: TBitBtn;

    bbtnPurchases: TBitBtn;

    bbtnCountries: TBitBtn;

    bbtnCities: TBitBtn;

    bbtnIndex: TBitBtn;

    Image1: TImage;

    procedure bbtnBooksClick(Sender: TObject);

    procedure bbtnAuthorClick(Sender: TObject);

    procedure bbtnGanrClick(Sender: TObject);

    procedure bbtnPuplishClick(Sender: TObject);

    procedure bbtnCustomerClick(Sender: TObject);

    procedure bbtnPurchasesClick(Sender: TObject);

    procedure bbtnCountriesClick(Sender: TObject);

    procedure bbtnCitiesClick(Sender: TObject);

    procedure bbtnIndexClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

uses UBooks, UAuthor, UGanr, UPublisher, UCustomers, UPurchases, UCountries,

  UCities, UIndex;

 

{$R *.dfm}

 

procedure TForm1.bbtnAuthorClick(Sender: TObject);

begin

  frmAuthor := TfrmAuthor.Create(Application);

  frmAuthor.Show;

end;

 

procedure TForm1.bbtnBooksClick(Sender: TObject);

begin

  frmBooks := TfrmBooks.Create(Application);

  frmBooks.Show;

end;

 

procedure TForm1.bbtnCitiesClick(Sender: TObject);

begin

  frmCities := TfrmCities.Create(Application);

  frmCities.Show;

end;

 

procedure TForm1.bbtnCountriesClick(Sender: TObject);

begin

  frmCountries := TfrmCountries.Create(Application);

  frmCountries.Show;

end;

 

procedure TForm1.bbtnCustomerClick(Sender: TObject);

begin

  frmCustomer := TfrmCustomer.Create(Application);

  frmCustomer.Show;

end;

 

procedure TForm1.bbtnGanrClick(Sender: TObject);

begin

  frmGanr := TfrmGanr.Create(Application);

  frmGanr.Show;

end;

 

procedure TForm1.bbtnIndexClick(Sender: TObject);

begin

  frmIndex := TfrmIndex.Create(Application);

  frmIndex.Show;

end;

 

procedure TForm1.bbtnPuplishClick(Sender: TObject);

begin

  frmPublisher := TfrmPublisher.Create(Application);

  frmPublisher.Show;

end;

 

procedure TForm1.bbtnPurchasesClick(Sender: TObject);

begin

  frmPurchases := TfrmPurchases.Create(Application);

  frmPurchases.Show;

end;

 

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение В

 

unit UBooks;

 

interface

 

uses

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

  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Buttons, DBCtrls, Mask, ComCtrls,

  RpCon, RpConDS, RpBase, RpSystem, RpDefine, RpRave;

 

type

  TfrmBooks = class(TForm)

    bbtnAddRecorBbook: TBitBtn;

    bbtnUpdateDataRecordBook: TBitBtn;

    DataSourceBooks: TDataSource;

    ADOQueryBooks: TADOQuery;

    DBGrid1: TDBGrid;

    GroupBox1: TGroupBox;

    Edit1: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Label2: TLabel;

    Label4: TLabel;

    Label3: TLabel;

    Label1: TLabel;

    edtStart: TEdit;

    Label5: TLabel;

    edtEnd: TEdit;

    Label6: TLabel;

    Label7: TLabel;

    edtMinPrice: TEdit;

    edtMaxPrice: TEdit;

    bbtnDeleteRecordBook: TBitBtn;

    edtYearB: TEdit;

    edtYearE: TEdit;

    Label8: TLabel;

    Label9: TLabel;

    GroupBox2: TGroupBox;

    RvProject1: TRvProject;

    RvSystem1: TRvSystem;

    RvDataSetConnection1: TRvDataSetConnection;

    Button1: TButton;

    procedure bbtnAddRecorBbookClick(Sender: TObject);

    procedure bbtnUpdateDataRecordBookClick(Sender: TObject);

    procedure Edit1Change(Sender: TObject);

    procedure Edit3Change(Sender: TObject);

    procedure Edit4Change(Sender: TObject);

 

    procedure Edit5Change(Sender: TObject);

    procedure edtStartChange(Sender: TObject);

    procedure edtEndChange(Sender: TObject);

    procedure edtMinPriceChange(Sender: TObject);

    procedure edtMaxPriceChange(Sender: TObject);

    procedure edtYearEChange(Sender: TObject);

    procedure edtYearBChange(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  frmBooks: TfrmBooks;

 

implementation

 

uses UDM, UModifyBooks;

 

{$R *.dfm}

 

procedure TfrmBooks.bbtnAddRecorBbookClick(Sender: TObject);

begin

  try

     frmModifyBooks := TfrmModifyBooks.Create(Application);

     frmModifyBooks.bbtnAddBooks.Caption:= 'Добавить';

     frmModifyBooks.bbtnEditBooks.Enabled := false;

     frmModifyBooks.ShowModal;

  finally

    ADOQueryBooks.Requery();

    ADOQueryBooks.Last;

  end;

end;

 

 

procedure TfrmBooks.bbtnUpdateDataRecordBookClick(Sender: TObject);

var

isb,sql : string;

edit : Boolean;

begin

   try

      isb := ADOQueryBooks.FieldByName('isbn').AsString;

     frmModifyBooks := TfrmModifyBooks.Create(Application);

     frmModifyBooks.bbtnAddBooks.Enabled := false;

     frmModifyBooks.bbtnEditBooks.Caption := 'Изменить';

     frmModifyBooks.edtISBN.Text := ADOQueryBooks.FieldByName('isbn').AsString;

     frmModifyBooks.edtNameBook.Text := ADOQueryBooks.FieldByName('name').AsString;

     frmModifyBooks.edtCountPages.Text := ADOQueryBooks.FieldByName('count_page').AsString;

     frmModifyBooks.edtPrice.Text := ADOQueryBooks.FieldByName('price').AsString;

     frmModifyBooks.edtImprittDate.Text := ADOQueryBooks.FieldByName('imprint_date').AsString;

     if frmModifyBooks.ShowModal = mrOk then

     begin

         if (frmModifyBooks.edtISBN.Text = '') or (frmModifyBooks.edtNameBook.Text = '') or

        (frmModifyBooks.DBLookupComboBoxGanri.Text = '') or

        (frmModifyBooks.DBLookupComboBoxPublishers.Text = '')

        or ( frmModifyBooks.DBLookupComboBox1.Text = '') or

        (frmModifyBooks.edtCountPages.Text = '') or (frmModifyBooks.edtPrice.Text = '')

        or ( frmModifyBooks.edtImprittDate.Text = '')

           then

        begin

          ShowMessage('Заполнены не все поля!');   exit;

        end;

 

       with frmModifyBooks, DataModule1.spUpdateBooks.Parameters do

       begin

           ParamByName('@id').Value := edtISBN.Text;

           ParamByName('@name').Value := edtNameBook.Text;

           ParamByName('@ganr').Value := DBLookupComboBoxGanri.KeyValue;

           ParamByName('@publish').Value := DBLookupComboBoxPublishers.KeyValue;

           ParamByName('@c_page').Value := StrToInt(edtCountPages.Text);

           ParamByName('@price').Value := StrToFloat(edtPrice.Text);

           ParamByName('@date').Value := StrToInt(edtImprittDate.Text);

           ParamByName('@author').Value := DBLookupComboBox1.KeyValue;

           DataModule1.spUpdateBooks.ExecProc;

       end;

        ADOQueryBooks.Requery();

        ADOQueryBooks.Last;

     end;

   except

      ShowMessage('Произошла ошибка! Повторите еще раз.');

   end;

    ADOQueryBooks.Requery();

    ADOQueryBooks.Last;

end;

 

procedure TfrmBooks.Button1Click(Sender: TObject);

begin

   RvProject1.Execute;

end;

 

 

procedure TfrmBooks.Edit1Change(Sender: TObject);

begin

  if(Length(Edit1.Text) >0) then

  begin

    //ADOQueryBooks.Filtered := false;

    ADOQueryBooks.Filter := 'ISBN LIKE ' +#39 +'%'+ Edit1.Text+'%' +#39;//+

    //' or NAME LIKE '+#39 +'%'+ Edit1.Text+'%' +#39;

    ADOQueryBooks.Filtered := true;

  end

else

  ADOQueryBooks.Filtered:=false;

end;

 

 

procedure TfrmBooks.Edit3Change(Sender: TObject);

begin

  if(Length(Edit3.Text) > 0) then

  begin

    ADOQueryBooks.Filtered := false;

    ADOQueryBooks.Filter := 'name_ganr LIKE ' + #39 + '%'+Edit3.Text +'%'+#39;

 

    ADOQueryBooks.Filtered := true;

  end

  else ADOQueryBooks.Filtered := false;

end;

 

procedure TfrmBooks.Edit4Change(Sender: TObject);

begin

if(Length(Edit4.Text) > 0) then

begin

  ADOQueryBooks.Filtered := false;

  ADOQueryBooks.Filter := 'name_a LIKE ' + #39 + '%'+ Edit4.Text + '%' +#39;

  ADOQueryBooks.Filtered := true;

end

else ADOQueryBooks.Filtered := false;

end;

 

procedure TfrmBooks.Edit5Change(Sender: TObject);

begin

//if(StrToInt(edtStart.text)

end;

 

procedure TfrmBooks.edtEndChange(Sender: TObject);

var min:string;

begin

min :='30';

if(Length(edtStart.Text) >0)  and (StrToInt(edtStart.Text) > 0) then

  min := edtStart.Text;

   if(Length(edtEnd.Text) >0) then begin

  ADOQueryBooks.Filtered:= false;

  ADOQueryBooks.Filter:='count_page >= '+  min+

   ' and count_page <= '+ edtEnd.Text;

  ADOQueryBooks.Filtered:=true;

end

else

  ADOQueryBooks.Filtered:=false;

end;

 

procedure TfrmBooks.edtMaxPriceChange(Sender: TObject);

var

min : string;

begin

  min :='10.0';

if(Length(edtMinPrice.Text) >0)  and (StrToFloat(edtMinPrice.Text) > 0) then

  min := edtMinPrice.Text;

   if(Length(edtMaxPrice.Text) >0) then begin

  ADOQueryBooks.Filtered:= false;

  ADOQueryBooks.Filter:='price >= '+  min +

   ' and price <= '+ edtMaxPrice.Text;

  ADOQueryBooks.Filtered:=true;

end

else

  ADOQueryBooks.Filtered:=false;

 

end;

 

procedure TfrmBooks.edtMinPriceChange(Sender: TObject);

var

max : string;

begin

  max :='1000.0';

if(Length(edtMaxPrice.Text) >0)  and (StrToFloat(edtMaxPrice.Text) > 0) then

  max := edtMaxPrice.Text;

   if(Length(edtMinPrice.Text) >0) then begin

  ADOQueryBooks.Filtered:= false;

  ADOQueryBooks.Filter:='price >= '+  edtMinPrice.Text+

   ' and price <= '+ max;

  ADOQueryBooks.Filtered:=true;

end

else

  ADOQueryBooks.Filtered:=false;

 

end;

 

procedure TfrmBooks.edtStartChange(Sender: TObject);

var max:string;

begin

max :='30';

if(Length(edtEnd.Text) >0)  and (StrToInt(edtEnd.Text) > 0) then

  max := edtEnd.Text;

 

if(Length(edtStart.Text) >0) then begin

  ADOQueryBooks.Filtered:= false;

  ADOQueryBooks.Filter:='count_page >= '+ edtStart.Text+

   ' and count_page <= '+ max;

  ADOQueryBooks.Filtered:=true;

end

else

  ADOQueryBooks.Filtered:=false;

 

end;

 

procedure TfrmBooks.edtYearBChange(Sender: TObject);

var

max : string;

begin

  max :='9999';

if(Length(edtYearE.Text) >0)  and (StrToInt(edtYearE.Text) > 0) then

  max := edtYearE.Text;

   if(Length(edtYearB.Text) >0) and (StrToInt(edtYearB.Text)<= StrToInt(max)) then begin

  ADOQueryBooks.Filtered:= false;

  ADOQueryBooks.Filter:='imprint_date >= '+  edtYearB.Text +

   ' and imprint_date <= '+ max;

  ADOQueryBooks.Filtered:=true;

end

else

  ADOQueryBooks.Filtered:=false;

 

end;

procedure TfrmBooks.edtYearEChange(Sender: TObject);

var

min : string;

begin

  min :='1980';

if(Length(edtYearB.Text) >0)  and (StrToInt(edtYearB.Text) > 0) then

  min := edtYearB.Text;

   if(Length(edtYearE.Text) >0) and (StrToInt(edtYearE.Text)>=StrToInt(min)) then begin

  ADOQueryBooks.Filtered:= false;

  ADOQueryBooks.Filter:='imprint_date >= '+  min +

   ' and imprint_date <= '+ edtYearE.Text;

  ADOQueryBooks.Filtered:=true;

end

else

  ADOQueryBooks.Filtered:=false

end;

 

end.


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