Системы управления базами данных

Автор: Пользователь скрыл имя, 30 Ноября 2011 в 19:55, курсовая работа

Краткое описание

Написать программу на языке СУБД, реа¬лизующей элементы языка SQL. Даны сущности, между кото¬рыми необходимо установить связь. Атрибуты сущностей задаются самостоятельно (3-6 на каж¬дую сущность). При необходимости, добавление новых сущностей приветствуется. Программа должна иметь удобный интерфейс пользователя и корректно реализовывать основные операции (добавление, удаление, изменение, поиск записи по любому атрибуту, сортировку при выводе).

Оглавление

Задание кафедры………………………………………………………………………………..…….3
Описание предметной области……………………………………………………………………..4
Диаграмма «сущность-связь»……………………………………………………………………....8
Нормализованные таблицы в 3 нормальной форме………………………………………………9
Описание основных функций программы ………………………………………………………10
Текст программы…………………………………………………………………………………..13
Выводы по работе………………………………………………………………………

Файлы: 1 файл

Курсяк Системы управления базами данных.doc

— 210.00 Кб (Скачать)

     checkbox18.State:=cbchecked;

     checkbox19.State:=cbchecked;

     checkbox20.State:=cbchecked;

     checkbox21.State:=cbchecked;

     end;

     if CheckBox26.State=cbUnchecked then begin

     checkbox18.State:=cbUnchecked;

     checkbox19.State:=cbUnchecked;

     checkbox20.State:=cbUnchecked;

     checkbox21.State:=cbUnchecked;

     end;

     end;

     end; 

     procedure vibortovar;

     begin

     with form1 do begin

     if CheckBox27.State=cbChecked then begin

     checkbox22.State:=cbchecked;

     checkbox23.State:=cbchecked;

     checkbox24.State:=cbchecked;

     end;

     if CheckBox27.State=cbUnchecked then begin

     checkbox22.State:=cbUnchecked;

     checkbox23.State:=cbUnchecked;

     checkbox24.State:=cbUnchecked;

     end;

     end;

     end; 

     procedure rename;

     var

     a,i:integer;

     begin

     with form1.DBGrid1 do begin

     a:=Columns.Count-1;

     for i:=0 to a do begin

     if columns[i].FieldName='Index1' then columns[i].Title.Caption:='¹ ïîñòàâùèêà';

     if columns[i].FieldName='Name1' then columns[i].Title.Caption:='Ïîñòàâùèê';

     if columns[i].FieldName='Adres' then columns[i].Title.Caption:='Àäðåñ';

     if columns[i].FieldName='Phone' then columns[i].Title.Caption:='Òåëåôîí';

     if columns[i].FieldName='Fax' then columns[i].Title.Caption:='Ôàêñ';

     if columns[i].FieldName='Mail' then columns[i].Title.Caption:='E-mail';

     if columns[i].FieldName='Key2' then columns[i].Visible:=false;

     if columns[i].FieldName='Index2' then columns[i].Visible:=false;

     if columns[i].FieldName='Kod' then columns[i].Title.Caption:='Êîä ïîñòàâêè';

     if columns[i].FieldName='Data' then columns[i].Title.Caption:='Äàòà ïîñòàâêè';

     if columns[i].FieldName='Cena2' then columns[i].Title.Caption:='Ñòîèìîñòü';

     if columns[i].FieldName='Sklad' then columns[i].Title.Caption:='Íîìåð ñêëàäà';

     if columns[i].FieldName='Key3' then columns[i].Visible:=false;

     if columns[i].FieldName='Index3' then columns[i].Visible:=false;

     if columns[i].FieldName='Name3' then columns[i].Title.Caption:='Òîâàð';

     if columns[i].FieldName='Col' then columns[i].Title.Caption:='Êîëè÷åñòâî';

     if columns[i].FieldName='Cena3' then columns[i].Title.Caption:='Öåíà';

     end;

     end;

     end; 

     procedure selectall;

     begin

     with datamodule2.Query1 do begin

     active:=false;

     with sql do begin

     clear;

     add('select *');

     add('from postavshik, postavka, tovar');

     add('where');

     add('(postavshik.index1=postavka.index2) and (postavka.kod=tovar.index3)');

     add('order by index1');

     end;

     end;

     nam:=1;

     end; 

     procedure poisk; // ïîèñê èíôîðìàöèè

     var

     s1, s2, s3:string;

     begin

     s1:='select Index1';

     if form1.CheckBox13.State=cbchecked then s1:=s1+', Name1';

     if form1.CheckBox14.State=cbchecked then s1:=s1+', Adres';

     if form1.CheckBox15.State=cbchecked then s1:=s1+', Phone';

     if form1.CheckBox16.State=cbchecked then s1:=s1+', Fax';

     if form1.CheckBox17.State=cbchecked then s1:=s1+', Mail';

     s1:=s1+', Key2, Index2';

     if form1.CheckBox18.State=cbchecked then s1:=s1+', Kod';

     if form1.CheckBox19.State=cbchecked then s1:=s1+', Data';

     if form1.CheckBox20.State=cbchecked then s1:=s1+', Cena2';

     if form1.CheckBox21.State=cbchecked then s1:=s1+', Sklad';

     s1:=s1+', Key3, Index3';

     if form1.CheckBox22.State=cbchecked then s1:=s1+', Name3';

     if form1.CheckBox23.State=cbchecked then s1:=s1+', Col';

     if form1.CheckBox24.State=cbchecked then s1:=s1+', Cena3'; 

     s2:='where (postavshik.Index1=postavka.Index2) and (postavka.Kod=tovar.Index3)';

     s3:='';

     if form1.CheckBox1.State=cbchecked then

     s2:=s2+' and (name1 like '''+form1.Edit1.Text+''')';

     if form1.CheckBox2.State=cbchecked then

     s2:=s2+' and (adres like '''+form1.Edit2.Text+''')';

     if form1.CheckBox3.State=cbchecked then

     s2:=s2+' and (phone like '''+form1.Edit3.Text+''')';

     if form1.CheckBox4.State=cbchecked then

     s3:=s3+' and (fax like '''+form1.Edit4.Text+''')';

     if form1.CheckBox5.State=cbchecked then

     s3:=s3+' and (mail like '''+form1.Edit5.Text+''')';

     if form1.CheckBox6.State=cbchecked then

     s3:=s3+' and (kod like '''+form1.Edit6.Text+''')';

     if form1.CheckBox7.State=cbchecked then

     s3:=s3+' and (data like '''+form1.Edit7.Text+''')';

     if form1.CheckBox8.State=cbchecked then

     s3:=s3+' and (cena2 like '''+form1.Edit8.Text+''')';

     if form1.CheckBox9.State=cbchecked then

     s3:=s3+' and (sklad like '''+form1.Edit9.Text+''')';

     if form1.CheckBox10.State=cbchecked then

     s3:=s3+' and (name3 like '''+form1.Edit10.Text+''')';

     if form1.CheckBox11.State=cbchecked then

     s3:=s3+' and (col like '''+form1.Edit11.Text+''')';

     if form1.CheckBox12.State=cbchecked then

     s3:=s3+' and (cena3 like '''+form1.Edit12.Text+''')'; 

     with datamodule2.Query1 do begin

     active:=false;

     with sql do begin

     clear;

     add(s1);

     add('from postavshik, postavka, tovar');

     add(s2);

     add(s3);

     add('order by index1');

     end;

     end;

     nam:=2;

     end; 
 
 

     procedure TForm1.FormActivate(Sender: TObject);

     begin

     selectall;

     datamodule2.Query1.Active:=true;

     rename;

     end; 

     procedure TForm1.DBGrid1TitleClick(Column: TColumn); //ñîðòèðîâêà  ïî ñòîëáöàì

     var

     n:integer;

     s:string;

     begin

     n:=datamodule2.Query1.SQL.Count-1;

     s:=column.FieldName;

     if nam=1 then selectall;

     if nam=2 then poisk;

     datamodule2.Query1.SQL[n]:='order by ' + s;

     datamodule2.Query1.Active:=true;

     rename;

     end; 

     procedure TForm1.CheckBox25Click(Sender: TObject);

     begin

     viborpostavshik;

     end; 

     procedure TForm1.CheckBox26Click(Sender: TObject);

     begin

     viborpostavka;

     end; 

     procedure TForm1.CheckBox27Click(Sender: TObject);

     begin

     vibortovar;

     end; 

     procedure TForm1.CheckBox28Click(Sender: TObject);

     begin

     with form1 do begin

     if CheckBox28.State=cbChecked then begin

     checkbox25.State:=cbchecked;

     checkbox26.State:=cbchecked;

     checkbox27.State:=cbchecked;

     end;

     if CheckBox28.State=cbUnchecked then begin

     checkbox25.State:=cbUnchecked;

     checkbox26.State:=cbUnchecked;

     checkbox27.State:=cbUnchecked;

     end;

     end;

     viborpostavshik; viborpostavka; vibortovar;

     end; 

     procedure TForm1.Button1Click(Sender: TObject);

     begin

     poisk;

     datamodule2.Query1.Active:=true;

     rename;

     form1.TabSheet2.Show;

     end; 

     procedure TForm1.Button2Click(Sender: TObject);

     begin

     selectall;

     datamodule2.Query1.Active:=true;

     rename;

     form1.TabSheet2.Show;

     end; 

     end 
 
 
 
 
 
 
 

     unit Unit2; 

     interface 

     uses

       SysUtils, Classes, DBTables, DB; 

     type

       TDataModule2 = class(TDataModule)

         DataSource1: TDataSource;

         DataSource2: TDataSource;

         DataSource3: TDataSource;

         DataSource4: TDataSource;

         Table1: TTable;

         Table2: TTable;

         Table3: TTable;

         Query1: TQuery;

         Table3Key3: TAutoIncField;

         Table3Index3: TStringField;

         Table3Name3: TStringField;

         Table3Col: TStringField;

         Table3Cena3: TStringField;

         Table1Index1: TAutoIncField;

         Table1Name1: TStringField;

         Table1Adres: TStringField;

         Table1Phone: TStringField;

         Table1Fax: TStringField;

         Table1Mail: TStringField;

         Table2Key2: TAutoIncField;

         Table2Index2: TFloatField;

         Table2Kod: TStringField;

         Table2Data: TStringField;

         Table2Cena2: TStringField;

         Table2Sklad: TStringField;

       private

         { Private declarations }

       public

         { Public declarations }

       end; 

     var

       DataModule2: TDataModule2; 

     implementation 

     uses Unit1; 

     {$R *.dfm} 
 

     end.

 

     Выводы  по работе 

     В ходе выполнения данной курсовой работы были изучены:

     - Язык запросов SQL;

     - Теория разработки  и создания  баз данных, которая была применена  на практики при написании  программы;

     - Была написана программа работы  с базами данных на языке Delphi 7. Программы использует язык запросов SQL.

     В ходе выполнения  курсовой работы  были получены навыки работы с компонентами  баз данных Borland Delphi Database Desktop, её драйверами и их свойствами. А так же была спроектирована реляционная база данных, которая позволяет автоматизировать при помощи ПК процесс сбора информации в данной области.

     База  данных состоит из 3 нормализованных  таблиц, связанных между собой  связями.

     Пользователь  может вносить изменения в  базу данных, осуществлять поиск по фамилии, сортировать данные, добавлять в базу данных  данные и удалять данные.

 

      Список использованной литературы 

    1) Архангельский  А. Я. Разработка прикладных  программ для Windows в Delphi 5 –М.: ЗАО «Издательство БИНОМ» 1999. -256 с.: ил. (Все о Delphi)

    2) Архангельский А. Я. 100 компонентов общего назначения библиотеки Delphi 5 –М.: ЗАО «Издательство БИНОМ» 1999. -272 с.: ил. (Все о Delphi)

    3) Фленов  М.Е. Библия Delphi. - СПб.: БХВ - Петербург, 2005 –880 с.

Информация о работе Системы управления базами данных