Разработка автомобильной базы данных
Описание предметной области разработки. Особенности хранения информации об автомобилях и владельцах. Описание структуры базы данных. Основные таблицы: автомобили, владельцы, виды работ, запчасти, заказы, услуги. Инструкции программисту и пользователю.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.11.2010 |
Размер файла | 318,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
17
Содержание
1. Описание предметной области
2. Описание структуры базы данных
3. Инструкция программисту
4. Инструкция пользователю
5. Исходные тексты
1. Описание предметной области
Данная база данных предназначена для организаций, занимающихся любыми видами услуг по техническому обслуживанию автомобилей (Автосервис). БД позволяет вести учет всех автомобилей, когда-либо находящихся в автосервисе, хранит полную информацию о каждом автомобиле (марка, регистрационный знак, цвет, год выпуска, серийные номера завода-изготовителя и т.п.), позволяет вести учет владельцев автомобилей, которые когда-либо обращались в автосервис. Программа позволяет также распечатать отчет по всем параметрам, интересующим как владельцев автосервиса (информация о владельцах автомобилей, информация об автомобилях, полный отчет по всем заказам либо по заказам за определенный интервал времени), так и его клиентов (расценки на услуги, новые запчасти, сезонные скидки); это позволяет вести отчетность на бумаге.
В БД хранится информация о каждом владельце, о каждом автомобиле, которые хотя бы единожды пользовались услугами автосервиса. Существует возможность хранения не только основной и самой необходимой информации, но и примечаний, уточнений, фотографий владельцев и автомобилей, описания и тех. характеристик устанавливаемых запчастей и много другой полезной информации.
Существует один, на первый взгляд, недостаток, который при постоянном использовании БД характеризует себя с положительной стороны: в данной БД информация об автомобилях и владельцах в исходном состоянии является независимой. Связь владельца с автомобилем отслеживается лишь в процессе оформления заказа, после чего успешно хранится в базе. Это допущение создано с целью предотвращения нестандартных ситуаций, возникающих при существовании у владельца нескольких автомобилей и т.п.
2. Описание структуры БД
Схема данных
Описание таблиц
1) Автомобили (Cars)
* Код автомобиля |
CodeAuto |
+ |
|
Марка авто |
TMAuto |
A(30) |
|
Регистр. знак |
StateSign |
A(11) |
|
Тех. паспорт |
Tpasssport |
A(10) |
|
Цвет авто |
ColourAuto |
A(20) |
|
Год выпуска |
Year |
S |
|
Двигатель № |
MotorNum |
A(10) |
|
Кузов № |
BodyNum |
A(10) |
|
Шасси № |
UnderCgeNum |
A(10) |
|
Примечание |
Info |
M(200) |
2) Владельцы (Owners)
* Код владельца |
CodeOwner |
+ |
|
Фамилия |
OLastName |
A(30) |
|
Имя |
OFirstName |
A(20) |
|
Отчество |
OSecondName |
A(25) |
|
Паспорт № |
OPassportNum |
A(10) |
|
Права № |
ODrvLicence |
A(15) |
|
Телефон |
Phone |
A(12) |
|
Фото |
Foto |
B |
|
Примечание |
Info |
M(200) |
3) Виды работ (KindOfWork)
* Код работы |
CodeWork |
+ |
|
Вид работы |
KindWork |
A(30) |
|
Стоимость работы |
CostWork |
$ |
|
Срок выполнения |
PeriodEx |
N |
|
Гарантия |
Guarantee |
N |
4) Новые запчасти (New Part)
* Код автозапчасти |
CodePart |
+ |
|
Наименование |
PartName |
A(30) |
|
Стоимость |
CostPart |
$ |
|
Гарантия |
Guarantee |
N |
5) Заказы (AOrders)
* Номер заказа |
OrderNum |
+ |
|
Код автомобиля |
CodeAuto |
I |
|
Код владельца |
CodeOwner |
I |
|
Дата поступления |
ActDate |
D |
|
Примечание |
Info |
M(200) |
6) Услуги заказа (OrderWork)
* Номер заказа |
OrderNum |
I |
|
* Код работы |
CodeWork |
I |
7) Установка запчастей (PutInPart)
* Номер заказа |
OrderNum |
I |
|
* Код автозапчасти |
CodePart |
I |
3. Инструкция программисту
ПО разработано в среде Borland Delphi 6.0.
Все таблицы, запросы находятся в DateModule. Для получения доступа к любой таблице или запросу в этом модуле необходимо просто обратится к нему, а потом и к выбранному элементу. Каждой таблице, приведенной выше, соответствует форма для ввода данных в эту таблицу: Cars.db - CarsForm, Owners.db - OwnersForm, AOrders.db - FormAOrders и т.д. Ввод информации о владельцах, об автомобилях, оформление заказов осуществляется с соответствующих форм, содержащих стандартные элементы управления, связанные с данными в таблице.
Используются следующие основные запросы:
1) Query1 - запрос, на основе которого производится поиск всех заказов, оформленных в период времени с даты «А» по дату «В»:
SELECT OrderNum, CodeAuto, CodeOwner, ActDate, Info
FROM "AOrders.DB" Aorders
Where (ActDate>:A) and (ActDate<:B)
2) Query2 - запрос, на основе которого строится диаграмма процентного соотношения востребованности услуг, производимых автосервисом:
SELECT CodeWork, Count(*) AS CountWork
FROM "OrderWork.DB" Orderwork
GROUP BY CodeWork
3) Query3 - запрос, с помощью которого определяется промежуточная стоимость заказа (стоимость работ, произведенных для данного заказа):
SELECT SUM( Kindofwork.CostWork ), Orderwork.OrderNum
FROM "OrderWork.DB" Orderwork
INNER JOIN "KindOfWork.DB" Kindofwork
ON (Kindofwork.CodeWork = Orderwork.CodeWork)
GROUP BY Orderwork.OrderNum
Кроме указанных выше, также присутствуют и другие аналогичные запросы, с помощью которых производятся различные вычисления, осуществляется параметризованный поиск и т.п.
Все операции с таблицами и запросами необходимо искать в DateModule в соответствующих обработчиках событий. Для правильного функционирования программы необходимо перед первым запуском создать псевдоним БД с именем Autoservice, настроить его на каталог с файлами таблиц, выбрать драйвер PARADOX (сделать это можно, например, с помощью программы BDE Administrator). Для поддержки целостности данных при создании связей между таблицами было включено каскадное удаление и обновление.
4. Инструкция пользователю
При загрузке базы данных «Автосервис» открывается главная форма, с помощью которой осуществляется полный контроль над базой данных и перемещение по ней.
Диаграмма-отчет о востребованности услуг, предоставляемых автосервисом, для проведения соответствующих расчетов и получения информации для размышления как для владельцев автосервиса, так и для его клиентов.
Аналогичная диаграмма, но по устанавливаемым на автомобили запчастям.
Просмотр и печать прайс-листа «Услуги автосервиса». Функция необходима как для владельцев автосервиса, так и для его клиентов. Прайс-лист приведен в приложении к данному отчету.
Аналогично прайс-листу «Услуги автосервиса», но по новым автозапчастям.
Занесение информации о новом владельце, ранее не пользовавшимся услугами автосервиса.
Регистрация нового автомобиля, до сей поры не замеченного в автосервисе.
Оформление нового заказа с занесением всей необходимой информации.
Здесь же есть возможность зарегистрировать новый автомобиль, нового владельца, напечатать отчет по данному заказу (чек), выполнить поиск заказов за определенный интервал времени и т.п.
Просмотр, редактирование и внесение новых компонентов в список услуг, которые предоставляет автосервис.
Аналогично услугам, но по новым автозапчастям.
6. Исходные тексты
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, jpeg, ExtCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Image1: TImage;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1, Unit4, Unit5, Unit3, Unit6, Unit7, Unit8;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Show;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Form4.Show;
Form4.Table1.Insert;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
Form5.Show;
end;
procedure TForm2.Button4Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TForm2.Button5Click(Sender: TObject);
begin
Form2.Close;
end;
procedure TForm2.Button6Click(Sender: TObject);
begin
Form6.Show;
end;
procedure TForm2.Button7Click(Sender: TObject);
begin
Form7.Show;
end;
procedure TForm2.Button8Click(Sender: TObject);
begin
Form8.QuickRep3.Preview;
end;
end.
unit Unit4;
interface
uses
Windows, Messages, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms,
Dialogs, DBCtrls, DB, DBGrids, DBTables, Grids, ExtCtrls, Mask, Buttons;
type
TForm4 = class(TForm)
Table2OrderNum: TIntegerField;
Table2CodeWork: TIntegerField;
Table1OrderNum: TAutoIncField;
Table1CodeAuto: TIntegerField;
Table1CodeOwner: TIntegerField;
Table1ActDate: TDateField;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
Panel1: TPanel;
DataSource1: TDataSource;
Panel2: TPanel;
Panel3: TPanel;
Splitter1: TSplitter;
Table1: TTable;
Table2: TTable;
DataSource2: TDataSource;
Table3: TTable;
DataSource3: TDataSource;
Table1Marca: TStringField;
Table1Reg: TStringField;
DBGrid3: TDBGrid;
Table4: TTable;
DataSource4: TDataSource;
Table4OrderNum: TIntegerField;
Table4CodePart: TIntegerField;
DataSource5: TDataSource;
Table5: TTable;
Table6: TTable;
DataSource6: TDataSource;
Table2KindWork: TStringField;
Table4PartName: TStringField;
DataSource7: TDataSource;
Table7: TTable;
Table1Name: TStringField;
Table1LasteName: TStringField;
Table1SecondName: TStringField;
Table6CodePart: TAutoIncField;
Table6PartName: TStringField;
Table6CostPart: TCurrencyField;
Table6Guarantee: TIntegerField;
Table5CodeWork: TAutoIncField;
Table5KindWork: TStringField;
Table5CostWork: TCurrencyField;
Table5PeriodExecution: TIntegerField;
Table5Guarantee: TIntegerField;
Table2CostWork: TCurrencyField;
Table1CostSum: TCurrencyField;
Table4CostPart: TCurrencyField;
Button1: TButton;
Button2: TButton;
Query1: TQuery;
Query1SUMOFCostWork: TCurrencyField;
Query1OrderNum: TIntegerField;
DataSource8: TDataSource;
Table3CodeAuto: TAutoIncField;
Table3Info: TMemoField;
Table3TradeMarkAuto: TStringField;
Table3StateSign: TStringField;
Table3TPassport: TStringField;
Table3ColourAuto: TStringField;
Table3OutputYear: TSmallintField;
Table3MotorNum: TStringField;
Table3BodyNum: TStringField;
Table3UnderCgeNum: TStringField;
Table7CodeOwner: TAutoIncField;
Table7OLastName: TStringField;
Table7OFirstName: TStringField;
Table7OSecondName: TStringField;
Table7OPassportNum: TStringField;
Table7ODrivingLicence: TStringField;
Table7OContactPhone: TStringField;
Table7Info: TMemoField;
Table7Photo: TBlobField;
DBEdit1: TDBEdit;
Button3: TButton;
Label2: TLabel;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure Table1CalcFields(DataSet: TDataSet);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Query1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
procedure Table1AfterInsert(DataSet: TDataSet);
procedure Button3Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit5, Unit6, Unit9;
{$R *.DFM}
procedure TForm4.FormCreate(Sender: TObject);
begin
Table1.Open;
Table2.Open;
//Edit1.Text:=DateToStr(Date);
Label2.Caption:=DateToStr(Date);
end;
procedure TForm4.Table1CalcFields(DataSet: TDataSet);
begin
//Table1CostSum.Value:=Summ(Table2CostWork.Value);
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
Form5.Show;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
Form6.Show;
end;
procedure TForm4.Query1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
//Query1.Filter:='OrderNum='+ Form4.Table1OrderNum.AsString;
end;
procedure TForm4.Table1AfterInsert(DataSet: TDataSet);
begin
Form4.Table1ActDate.Value:=Date;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
Form9.Show;
end;
end.
unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QuickRpt, QRCtrls, ExtCtrls, DB, DBTables;
type
TForm8 = class(TForm)
QuickRep1: TQuickRep;
QuickRep2: TQuickRep;
QuickRep3: TQuickRep;
TitleBand1: TQRBand;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
SummaryBand1: TQRBand;
QRLabel1: TQRLabel;
Table1: TTable;
PageFooterBand1: TQRBand;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRSysData1: TQRSysData;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRSysData2: TQRSysData;
QRLabel6: TQRLabel;
QRDBText4: TQRDBText;
QRLabel7: TQRLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
{$R *.dfm}
end.
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, DBTables, DB, Grids, DBGrids;
type
TForm9 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
Query1: TQuery;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
BitBtn1: TBitBtn;
DBGrid1: TDBGrid;
DataSource2: TDataSource;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
{$R *.dfm}
procedure TForm9.BitBtn1Click(Sender: TObject);
begin
Query1.Params.ParamValues['A']:=DateTimePicker1.Date;
Query1.Params.ParamValues['B']:=DateTimePicker2.Date;
Query1.Close;
Query1.Open;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
Table1CodePart: TAutoIncField;
Table1PartName: TStringField;
Table1CostPart: TCurrencyField;
Table1Guarantee: TIntegerField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Подобные документы
Определение понятия и общее описание базы данных как упорядоченной информационной системы на носителе информации. Описание предметной области и разработка приложения базы данных, содержащей информацию о расписании занятий, для преподавателей кафедры.
курсовая работа [1,3 M], добавлен 08.08.2012Разработка базы данных для предметной области "Подразделения предприятия – Рабочие помещения". Описание используемых данных, предметной области и результатной информации. Создание запросов, форм и отчетов в базе данных. Описание построения диаграмм.
курсовая работа [5,6 M], добавлен 24.07.2014Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.
курсовая работа [624,5 K], добавлен 30.05.2019Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.
курсовая работа [318,6 K], добавлен 24.12.2014Анализ предметной области с использованием моделей методологии ARIS и разработка ER-диаграммы. Описание входной и выходной информации для проектирования реляционной базы данных. Разработка управляющих запросов и связей между ними с помощью языка SQL.
курсовая работа [975,2 K], добавлен 30.01.2014Описание предметной области разрабатываемой базы данных для теннисного клуба. Обоснование выбора CASE-средства Erwin 8 и MS Access для проектирования базы данных. Построение инфологической модели и логической структуры базы данных, разработка интерфейса.
курсовая работа [3,8 M], добавлен 02.02.2014Процесс разработки базы данных для хранения и обработки информации. Ключи, индексы, триггеры, хранимые процедуры. Разработка пользовательского интерфейса и базы данных. Основные инструментальные средства для разработки клиентской и серверной частей.
дипломная работа [225,0 K], добавлен 18.05.2013Анализ предметной области - магазин "Канцелярские товары". Проектирование и реализация базы данных в MS SQL Server. Перечень хранимой информации: таблицы, поля, типы. Моделирование предметной области. Выделение сущностей, атрибутов, ключей, связей.
курсовая работа [2,2 M], добавлен 05.02.2015База данных как компьютеризованная система, предназначенная для хранения информации и предоставления ее по требованию. Описание предметной области для проектирования и организации базы учета данных готовой продукции и сопровождения ее программой.
дипломная работа [1,0 M], добавлен 19.05.2011Разновидности систем управления базами данных. Анализ предметной области. Разработка структуры и ведение базы данных. Структурированный язык запросов SQL. Организация выбора информации из базы данных. Общие принципы проектирования экранных форм, макросов.
курсовая работа [3,1 M], добавлен 26.02.2016