- •230100 000000 013 Пз
- •2012 Оглавление
- •1. Описание предметной области и определение цели проектирования информационной системы
- •2. Анализ предметной области и инфологическое проектирование
- •2.1. Функциональная модель предметной области
- •2.2. Информационная модель предметной области
- •2.3. Спецификации сущностей
- •2.4. Спецификации атрибутов
- •2.5. Спецификации связей
- •2.6. Ограничения ссылочной целостности
- •2.7. Запросы пользователей
- •3. Даталогическое проектирование
- •3.1. Даталогическая модель базы данных
- •3.2. Спецификации таблиц
- •3.3. Спецификации связей между таблицами
- •3.4. Sql – запросы
- •4. Рабочее проектирование
- •6. Библиографический список
6. Библиографический список
Компьютерное проектирование баз данных в среде СУБД Access. В 2 ч. Ч.1: Структура данных и запросы-выборки: методические указания к лабораторному практикуму по дисциплинам «Базы данных», «Управление данными» /сост. В. Ю. Кара-Ушанов. Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2006. 47 с.
Компьютерное проектирование баз данных в среде СУБД Access. В 2 ч. Ч.2: Нормализация структуры данных и корректирующие запросы: методические указания к лабораторному практикуму по дисциплинам «Базы данных», «Управление данными» /сост. В. Ю. Кара-Ушанов. Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2006. 46 с.
Приложение
unit WatchAndEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Buttons, DBCtrls,
ComCtrls, ExtCtrls, Mask;
type
TForm2 = class(TForm)
OriginalTable: TDBGrid;
DBNavigator1: TDBNavigator;
MyTab: TTable;
MyTabName: TStringField;
MyTabYear: TIntegerField;
MyTabCapital: TStringField;
MyTabSquare: TIntegerField;
MyTabPopulation: TIntegerField;
MyTabInUn: TBooleanField;
DataSource1: TDataSource;
Query1: TQuery;
Table: TComboBox;
FieldToSortBy: TComboBox;
Label9: TLabel;
FindField: TButton;
PageControl1: TPageControl;
Airports: TTabSheet;
Stuff: TTabSheet;
Vehicles: TTabSheet;
Passangers: TTabSheet;
Label4: TLabel;
FlightTasks: TRadioGroup;
FlightExecute: TButton;
StuffActions: TRadioGroup;
StuffCrewLabel: TLabel;
Label6: TLabel;
Label7: TLabel;
StuffPosLabel: TLabel;
PlanesActions: TRadioGroup;
StuffExecute: TButton;
PassangersExecute: TButton;
PlanesExecute: TButton;
Label10: TLabel;
Label11: TLabel;
PassengersActions: TRadioGroup;
Label13: TLabel;
NewFlightNum: TEdit;
NewPassNum: TEdit;
NewPassSeries: TEdit;
NewPosCrew: TComboBox;
NewPosition: TComboBox;
CrewLabel: TLabel;
NewDepTime: TEdit;
DepDateLabel: TLabel;
NewDepDate: TEdit;
DepTimeLabel: TLabel;
NewTerminal: TComboBox;
TerminalLabel: TLabel;
NewArrTime: TEdit;
ArrDateLabel: TLabel;
NewArrDate: TEdit;
ArrTimeLabel: TLabel;
StuffFIOLabel: TLabel;
NewFIO: TEdit;
NewPlaneNum: TEdit;
NewPlaneName: TEdit;
Baggage: TTabSheet;
ItemsActions: TRadioGroup;
Button1: TButton;
Label18: TLabel;
Label19: TLabel;
PassFIOLabel: TLabel;
PassNum: TEdit;
PassSeries: TEdit;
PassFIO: TEdit;
PassFlightLabel: TLabel;
PassFlight: TEdit;
BoardingPlaceLabel: TLabel;
BoardingPlace: TEdit;
Label22: TLabel;
ItemNameLabel: TLabel;
BagNum: TEdit;
BagName: TEdit;
ItemFlightLabel: TLabel;
BagFlight: TEdit;
NewPlaneCrew: TComboBox;
PlaneCrewLabel: TLabel;
Label1: TLabel;
NewCrew: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FindFieldClick(Sender: TObject);
procedure SortClick(Sender: TObject);
procedure FieldToSortByChange(Sender: TObject);
procedure TableChange(Sender: TObject);
procedure StuffShow(Sender: TObject);
procedure OtherTablesClick(Sender: TObject);
procedure VehiclesShow(Sender: TObject);
procedure PassangersShow(Sender: TObject);
procedure AirportsShow(Sender: TObject);
procedure FlightExecuteClick(Sender: TObject);
procedure FlightTasksClick(Sender: TObject);
procedure StuffExecuteClick(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure PlanesExecuteClick(Sender: TObject);
procedure PassangersExecuteClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure NewFlightNumChange(Sender: TObject);
procedure StuffExecuteEnter(Sender: TObject);
procedure NewPlaneNumChange(Sender: TObject);
procedure PlanesExecuteEnter(Sender: TObject);
procedure NewPassNumChange(Sender: TObject);
procedure PassangersExecuteEnter(Sender: TObject);
procedure PassengersActionsExit(Sender: TObject);
procedure StuffActionsClick(Sender: TObject);
procedure PassengersActionsClick(Sender: TObject);
procedure ItemsActionsClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
select,distinct:string;
Flight:string;
implementation
uses StraniUnit;
{$R *.dfm}
//----------------------------------------------------------
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate;
end;
//----------------------------------------------------------
procedure TForm2.FormCreate(Sender: TObject);
begin
Table.Text:='Рейс';
Query1.Active:=false;
Query1.SQL.Add('SELECT * FROM '+Table.Text);
Query1.Active:=true;
Caption:='Таблица '+Table.Text;
// Добавление в список для сортировки
Query1.GetFieldNames(FieldToSortBy.Items);
end;
//----------------------------------------------------------
procedure TForm2.FindFieldClick(Sender: TObject);
begin
if (Table.Text<>'') then
begin
Query1.Active:=false;
Query1.SQL.Clear();
Form2.Caption:='Таблица '+ Table.Text;
Query1.SQL.Add('SELECT * FROM '+Table.Text);
Query1.Active:=true;
//ItemToSelect.Items.Clear;
//ItemToSelect.Items.Insert(0,'*');
// Добавление в список для сортировки
FieldToSortBy.Items.Clear;
Query1.GetFieldNames(FieldToSortBy.Items);
end;
end;
//----------------------------------------------------------
procedure TForm2.SortClick(Sender: TObject);
begin
end;
//----------------------------------------------------------
procedure TForm2.FieldToSortByChange(Sender: TObject);
begin
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM '+Table.Text+' ORDER BY '+FieldToSortBy.Text);
Query1.Active:=true;
end;
//----------------------------------------------------------
procedure TForm2.TableChange(Sender: TObject);
begin
if (Length(Table.Text)>0) then
begin
Query1.Active:=false;
Query1.SQL.Clear();
Form2.Caption:='Таблица '+ Table.Text;
Query1.SQL.Add('SELECT * FROM '+Table.Text);
Query1.Active:=true;
//ItemToSelect.Items.Clear;
//ItemToSelect.Items.Insert(0,'*');
// Добавление в список для сортировки
FieldToSortBy.Items.Clear;
Query1.GetFieldNames(FieldToSortBy.Items);
end;
end;
//----------------------------------------------------------
procedure TForm2.StuffShow(Sender: TObject);
begin
end;
//----------------------------------------------------------
procedure TForm2.OtherTablesClick(Sender: TObject);
begin
end;
//----------------------------------------------------------
procedure TForm2.VehiclesShow(Sender: TObject);
begin
end;
//----------------------------------------------------------
procedure TForm2.PassangersShow(Sender: TObject);
begin
// Доступна таблица Пассажиры и Грузы
end;
//----------------------------------------------------------
procedure TForm2.AirportsShow(Sender: TObject);
begin
// Доступны таблицы Аэропорт_назначения и А_отправления
end;
//----------------------------------------------------------
procedure TForm2.FlightExecuteClick(Sender: TObject);
begin
case FlightTasks.ItemIndex of
0://Организовать рейс
begin
try
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO '+Table.Text);
Query1.SQL.Add(' VALUES ('+QuotedStr(NewFlightNum.Text)+','+NewCrew.Text+','+QuotedStr(NewDepDate.Text)+','+QuotedStr(NewDepTime.Text)+','+QuotedStr(NewTerminal.Text)+','+QuotedStr(NewArrDate.Text)+','+QuotedStr(NewArrTime.Text)+')');
Query1.ExecSQL;
except
end;
end;
1://Отменить рейс
begin
Query1.SQL.Clear;
NewFlightNum.Show;
Query1.SQL.Add('DELETE FROM '+Table.Text+' WHERE Номер='+QuotedStr(NewFlightNum.Text));
Query1.ExecSQL;
end;
end;//case
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM '+Table.Text);
Query1.Active:=true;
end;
//----------------------------------------------------------
procedure TForm2.FlightTasksClick(Sender: TObject);
begin
case FlightTasks.ItemIndex of
0:
begin
// показать надписи
CrewLabel.Show;
DepDateLabel.Show;DepTimeLabel.Show;TerminalLabel.Show;
ArrDateLabel.Show;ArrTimeLabel.Show;
// показать поля
NewFlightNum.Show;NewCrew.Show;NewDepDate.Show;NewDepTime.Show;
NewTerminal.Show;NewArrDate.Show;NewArrTime.Show;
end;
1:
begin
// скрыть поля
NewCrew.Hide;NewDepDate.Hide;NewDepTime.Hide;
NewTerminal.Hide;NewArrDate.Hide;NewArrTime.Hide;
// скрыть надписи
CrewLabel.Hide;
DepDateLabel.Hide;DepTimeLabel.Hide;TerminalLabel.Hide;
ArrDateLabel.Hide;ArrTimeLabel.Hide;CrewLabel.Hide;
end;
end;//case
end;
//----------------------------------------------------------
procedure TForm2.StuffExecuteClick(Sender: TObject);
begin
case StuffActions.ItemIndex of
0://Принять на работу на должность в экипаж
begin
try
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO '+Table.Text);
Query1.SQL.Add(' VALUES ('+QuotedStr(NewPassNum.Text)+','+QuotedStr(NewPassSeries.Text)+','+QuotedStr(NewPosition.Text)+','+QuotedStr(NewPosCrew.Text)+')');
Query1.ExecSQL;
except
end;
end;
1://Назначить в экипаж
begin
try
Query1.SQL.Clear;
Query1.SQL.Add('UPDATE '+Table.Text);
Query1.SQL.Add(' SET Экипаж='+NewCrew.Text);
Query1.SQL.Add(' WHERE Номер_паспорта='+QuotedStr(NewPassNum.Text)+' AND Серия_паспорта='+QuotedStr(NewPassSeries.Text));
Query1.ExecSQL;
except
end;
end;
2: //Изменить личные данные
begin
// try
Query1.SQL.Clear;
Query1.SQL.Add('UPDATE '+Table.Text);
Query1.SQL.Add(' SET ФИО='+QuotedStr(NewFIO.Text));
Query1.SQL.Add(' WHERE Номер_паспорта='+NewPassNum.Text+' AND Серия_паспорта='+NewPassSeries.Text);
Query1.ExecSQL;
// except
// end;
end;
3://Уволить
begin
//try
Query1.SQL.Clear;
Query1.SQL.Add('DELETE FROM '+Table.Text);
Query1.SQL.Add(' WHERE Номер_паспорта='+QuotedStr(NewPassNum.Text)+' Серия_паспорта='+QuotedStr(NewPassSeries.Text));
Query1.ExecSQL;
// except
// end;
end;
end;//case
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM '+Table.Text);
Query1.Active:=true;
end;
//----------------------------------------------------------
procedure TForm2.PageControl1Change(Sender: TObject);
begin
case PageControl1.ActivePageIndex of
0:
begin// вставка значений полей
Table.Text:='Рейс';
end;
1:
begin // вставка значений полей
Table.Text:='Бортовой_персонал';
end;
2:
begin // вставка значений полей
Table.Text:='Воздушное_судно';
end;
3:
begin // вставка значений полей
Table.Text:='Пассажир';
end;
4:
begin // вставка значений полей
Table.Text:='Груз';
end;
end;// case
end;
//----------------------------------------------------------
procedure TForm2.PlanesExecuteClick(Sender: TObject);
begin
case PlanesActions.ItemIndex of
0://Поставить на учёт
begin
// try
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO '+Table.Text);
Query1.SQL.Add(' VALUES ('+NewPlaneNum.Text+','+QuotedStr(NewPlaneName.Text)+','+NewPlaneCrew.Text+')');
Query1.ExecSQL;
// except
// end;
end;
1://Снять с учёта
begin
Query1.SQL.Clear;
Query1.SQL.Add('DELETE FROM '+Table.Text);
Query1.SQL.Add(' WHERE Регистрационный_номер='+NewPlaneNum.Text);
Query1.ExecSQL;
end;
end;// case
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM '+Table.Text);
Query1.Active:=true;
end;
//----------------------------------------------------------
procedure TForm2.PassangersExecuteClick(Sender: TObject);
begin
case PassengersActions.ItemIndex of
0://Забронировать рейс для пассажира
begin
// try
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO '+Table.Text);
Query1.SQL.Add(' VALUES ('+QuotedStr(PassNum.Text)+','+QuotedStr(PassSeries.Text)+','+QuotedStr(PassFIO.Text)+','+QuotedStr(BoardingPlace.Text)+','+QuotedStr(PassFlight.Text)+')');
Query1.ExecSQL;
// except
// end;
end;
1://Снять пассажира с рейса
begin
try
Query1.SQL.Clear;
Query1.SQL.Add('DELETE FROM '+Table.Text);
Query1.SQL.Add(' WHERE Номер_паспорта='+PassNum.Text+' AND Серия_паспорта='+PassSeries.Text);
Query1.ExecSQL;
except
end;
end;
end;//case
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM '+Table.Text);
Query1.Active:=true;
end;
//----------------------------------------------------------
procedure TForm2.Button1Click(Sender: TObject);
begin
case ItemsActions.ItemIndex of
0://Забронировать рейс для груза
begin
try
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO '+Table.Text);
Query1.SQL.Add(' VALUES ('+BagNum.Text+','+QuotedStr(BagName.Text)+','+QuotedStr(BagFlight.Text)+')');
Query1.ExecSQL;
except
end;
end;
1: //Снять груза с рейса
begin
try
Query1.SQL.Clear;
Query1.SQL.Add('DELETE FROM '+Table.Text);
Query1.SQL.Add(' WHERE Номер='+BagNum.Text);
Query1.ExecSQL;
except
end;
end;
end;
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM '+Table.Text);
Query1.Active:=true;
end;
//----------------------------------------------------------
procedure TForm2.NewFlightNumChange(Sender: TObject);
begin
if (Length(NewFlightNum.Text)>0)then
FlightExecute.Enabled:=true
else
FlightExecute.Enabled:=false;
end;
//----------------------------------------------------------
procedure TForm2.StuffExecuteEnter(Sender: TObject);
begin
if (Length(NewPassNum.Text)>0) and (Length(NewPassSeries.Text)>0) then
StuffExecute.Enabled:=true
else
StuffExecute.Enabled:=false;
end;
//----------------------------------------------------------
procedure TForm2.NewPlaneNumChange(Sender: TObject);
begin
if (Length(NewPlaneNum.Text)>0) and (Length(NewPlaneName.Text)>0) and (Length(NewPlaneCrew.Text)>0) then
PlanesExecute.Enabled:=true
else
PlanesExecute.Enabled:=false;
if PlanesActions.ItemIndex=1 then
begin
if (Length(NewPlaneNum.Text)>0) then
PlanesExecute.Enabled:=true
else
PlanesExecute.Enabled:=false;
end;
end;
//----------------------------------------------------------
procedure TForm2.PlanesExecuteEnter(Sender: TObject);
begin
end;
//----------------------------------------------------------
procedure TForm2.NewPassNumChange(Sender: TObject);
begin
// позволить выполнить команды только если заполнены все необходимые поля
if (Length(NewPassNum.Text)>0) and (Length(NewPassSeries.Text)>0) then
StuffExecute.Enabled:=true
else
StuffExecute.Enabled:=false;
end;
//----------------------------------------------------------
procedure TForm2.PassangersExecuteEnter(Sender: TObject);
begin
// позволить выполнить команды только если заполнены все необходимые поля
if (Length(PassNum.Text)>0) and (Length(PassSeries.Text)>0) then
PassangersExecute.Enabled:=true
else
PassangersExecute.Enabled:=false;
end;
//----------------------------------------------------------
procedure TForm2.PassengersActionsExit(Sender: TObject);
begin
// позволить выполнить команды только если заполнены все необходимые поля
if (Length(PassNum.Text)>0) and (Length(PassSeries.Text)>0) then
PassangersExecute.Enabled:=true
else
PassangersExecute.Enabled:=false;
end;
//----------------------------------------------------------
procedure TForm2.StuffActionsClick(Sender: TObject);
begin
if StuffActions.ItemIndex=3 then
begin
StuffFIOLabel.Hide;StuffPosLabel.Hide;StuffCrewLabel.Hide;
NewFIO.Hide;NewPosition.Hide;NewPosCrew.Hide;
end
else
begin
StuffFIOLabel.Show;StuffPosLabel.Show;StuffCrewLabel.Show;
NewFIO.Show;NewPosition.Show;NewPosCrew.Show;
end;
end;
//----------------------------------------------------------
procedure TForm2.PassengersActionsClick(Sender: TObject);
begin
if PassengersActions.ItemIndex=1 then
begin
PassFIOLabel.Hide;BoardingPlaceLabel.Hide;PassFlightLabel.Hide;
PassFIO.Hide;BoardingPlace.Hide;PassFlight.Hide;
end
else
begin
PassFIOLabel.Show;BoardingPlaceLAbel.Show;PassFlightLabel.Show;
PassFIO.Show;BoardingPlace.Show;PassFlight.Show;
end;
end;
//----------------------------------------------------------
procedure TForm2.ItemsActionsClick(Sender: TObject);
begin
if ItemsActions.ItemIndex=1 then
begin
ItemNameLabel.Hide;ItemFlightLabel.Hide;
BagName.Hide;BagFlight.Hide;
end
else
begin
ItemNameLabel.Show;ItemFlightLabel.Show;
BagName.Show;BagFlight.Show;
end;
end;
//----------------------------------------------------------
procedure TForm2.PlanesActionsClick(Sender: TObject);
begin
if PlanesActions.ItemIndex=1 then
begin
NewPlaneNameLabel.Hide;NewPlaneCrewLabel.Hide;
NewPlaneName.Hide;NewPlaneCrew.Hide;
end
else
begin
NewPlaneNameLabel.Show;NewPlaneCrewLabel.Show;
NewPlaneName.Show;NewPlaneCrew.Show;
end;
end;
end.