Курсовая работа: Создание базы данных "РЭО-ГАИ"
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - № уд. личности
Владельцы-физ_лица-профессии (РНН владельца, Признак
владельца, Профессия)
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - профессия
Программа "РЭО-ГАИ" реализована на языке
программирования Borland Delphi с подключением MSSQL Server
2000. Структуру программы составляют 4 класса и 6 программных
модулей.
Модули данной программы подразделяются на:
1. Модуль Unit1, который находится в файле Unit1. pas содержит
информацию о всех таблицах данной базы данных.
2. В модуле Unit2, находящемся в файле Unit2. pas происходит
реализация класса TZaprosy (запросы).
3. Модуль Unit3 расположен в файле Unit3. pas, в котором
находится реализация класса TOtchety (отчеты).
4. Модуль Unit4 расположен в файле Unit4. pas, в нем
находится код описания класса TProcedury (процедуры).
5. Модуль Unit5, который расположен в файле Unit5. pas
содержит реализацию класса TSpravka (справка).
6. Модуль Unit6 находится в файле Unit6. pas и содержит
информацию об отчетах.
Запрос 1. Количество автотранспортных средств,
принадлежащих каждому из владельцев.
SELECT [РНН владельца], COUNT ([№автомобиля])
FROM Автомобили
GROUP BY [РНН владельца]
ORDER BY [РНН владельца] ;
Запрос 2. Найти автомобиль по неполному номеру
двигателя <…>
SELECT [№автомобиля], [№двигателя]
FROM Автомобили
WHERE [№двигателя] LIKE '%111%';
Запрос 3. Вычислить "возраст" каждого из
автомобилей, стоящих на учете на текущую дату.
SELECT Движение. [№автомобиля], 'Возраст =', datediff (yy,
Автомобили. [Дата выпуска],getdate ())
FROM Движение, Автомобили, Операции
WHERE Автомобили. [№автомобиля] =Движение. [№автомобиля]
and Операции. [Код операции] =Движение. [Код операции]
and Операции. [Наименование] like '%постан%'
and [Дата операции] < getdate ();
Запрос 4. Какие операции проводились с автомобилями
по <i-му> району учета в текущем месяце.
SELECT Движение. [№автомобиля], Районы_учета. [Наименование
района учета], Операции. [Наименование операции]
FROM Операции, Районы_учета, Движение
WHERE Районы_учета. [Код района учета] =Движение. [Код
района учета]
AND Операции. [Код операции] =Движение. [Код операции]
AND Районы_учета. [Наименование района учета] ='Казыбек-бийский'
AND month ([Дата операции]) =month (getdate ());
Запрос 5. Автомобили, каких категорий цветов
поставлены на учет в текущем году.
SELECT Движение. [№автомобиля], Категории_цвета. [Наименование
категории цвета]
FROM Категории_цвета, Цвета, Автомобили, Операции, Движение
WHERE Категории_цвета. [Код категории цвета] =Цвета. [Код
категории цвета]
AND Цвета. [Код цвета] =Автомобили. [Код цвета]
AND Автомобили. [№автомобиля] =Движение. [№автомобиля]
AND Операции. [Наименование операции] = 'Постановка на учет'
AND year (Движение. [Дата операции]) =year (getdate ());
Отчет 1. Карточка учета автотранспортного средства
SELECT Движение. [№автомобиля],
Движение. [РНН владельца],
Операции. [Наименование операции],
Районы_учета. [Наименование района учета],
Движение. [Дата операции]
FROM Движение, Операции, Районы_учета
WHERE Районы_учета. [Код района учета] = Движение. [Код
района учета]
AND Операции. [Код операции] = Движение. [Код операции] ;
Отчет 2. Отчет о движении транспортных средств на
"I-ю" дату
SELECT Движение. [Дата операции],
Движение. [№автомобиля],
Движение. [РНН владельца],
Районы_учета. [Наименование района учета],
Операции. [Наименование операции]
FROM Движение, Районы_учета, Операции
WHERE Районы_учета. [Код района учета] = Движение. [Код
района учета]
AND Операции. [Код операции] = Движение. [Код операции]
AND year (Движение. [Дата операции]) =year ('13 October 2007')
and month (Движение.
[Дата операции]) =month ('13 October 2007')
and day (Движение. [Дата
операции]) =day ('13 October 2007');
Отчет 3. Список автомобилей, владельцами которых
являются физические лица
SELECT Движение. [№автомобиля],
Категории_цвета. [Наименование категории цвета]
FROM Категории_цвета, Цвета, Автомобили,
Операции, Движение
WHERE Категории_цвета. [Код
категории цвета] =Цвета. [Код категории цвета]
AND Цвета. [Код цвета] =Автомобили.
[Код цвета]
AND Автомобили. [№автомобиля] =Движение.
[№автомобиля]
AND Операции. [Наименование операции]
= 'Постановка на учет'
AND year (Движение. [Дата операции]) =year
(getdate ());
Описание процедур выполняемых в программе
Процедура 1. Необходимо выбрать автомобили, возраст которых
не превышает 10 лет.
USE РЭО_ГАИ
GO
CREATE PROCEDURE Vyboravto1
AS
SELECT *
FROM Автомобили
WHERE year ([Дата выпуска]) > year ('01 January 1997')
GO
execute Vyboravto1
go
Процедура 2. Необходимо выбрать
автомобили определенной марки и с определенным типом кузова.
USE РЭО_ГАИ
GO
CREATE PROCEDURE Vyboravto2 @marka_id int, @kuzov_id
int
AS
SELECT *
FROM Автомобили
WHERE [Код марки авто] = @marka_id
and [Код типа кузова] = @kuzov_id
GO
USE РЭО_ГАИ
GO
EXECUTE Vyboravto2 2, 2
GO
В первом разделе данного курсового проекта была описана
постановка задачи с нововведениями и дополнениями со стороны разработчика.
Во втором и третьем разделах была описана структура
разработанной базы данных и структура хранимой в ней информации. Также были
подробно описаны связи между таблицами.
В четвертом разделе была описана структура программы, её
классы и модули.
В пятом разделе было представлено подробное руководство по
использованию программы.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
Dialogs, Menus, DB, ADODB, ExtCtrls,
DBCtrls, Grids, DBGrids, ComCtrls;
type
TForm1 = class (TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
StatusBar1: TStatusBar;
N17: TMenuItem;
procedure N15Click (Sender: TObject);
procedure N3Click (Sender: TObject);
procedure N4Click (Sender: TObject);
procedure N5Click (Sender: TObject);
procedure N16Click (Sender: TObject);
procedure N6Click (Sender: TObject);
procedure N7Click (Sender: TObject);
procedure N8Click (Sender: TObject);
procedure N9Click (Sender: TObject);
procedure N10Click (Sender: TObject);
procedure N11Click (Sender: TObject);
procedure N12Click (Sender: TObject);
procedure N13Click (Sender: TObject);
procedure N14Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4, Unit5;
{$R *. dfm}
procedure TForm1. N15Click (Sender: TObject);
begin
Spravka. Show; // close;
end;
procedure TForm1. N3Click (Sender: TObject);
begin
Zaprosy. Show;
end;
procedure TForm1. N4Click (Sender: TObject);
begin
Otchety. Show;
end;
procedure TForm1. N5Click (Sender: TObject);
begin
Procedury. Show;
end;
procedure TForm1. N16Click (Sender: TObject);
begin
close;
end;
procedure TForm1. N6Click (Sender: TObject);
begin
ADOTable1. Active: =false;
ADOTable1. TableName: ='Районы_учета';
ADOTable1. Active: =true;
StatusBar1. SimpleText: =n6. Caption;
end;
procedure TForm1. N7Click (Sender: TObject);
begin
ADOTable1. Active: =false;
ADOTable1. TableName: ='Операции';
ADOTable1. Active: =true;
StatusBar1. SimpleText: =n7. Caption;
end;
procedure TForm1. N8Click (Sender: TObject);
begin
ADOTable1. Active: =false;
ADOTable1. TableName: ='Марки_автомобиля';
ADOTable1. Active: =true;
StatusBar1. SimpleText: =n8. Caption;
end;
procedure TForm1. N9Click (Sender: TObject);
begin
ADOTable1. Active: =false;
ADOTable1. TableName: ='Типы_кузова';
ADOTable1. Active: =true;
StatusBar1. SimpleText: =n9. Caption;
end;
procedure TForm1. N10Click (Sender: TObject);
begin
ADOTable1. Active: =false;
ADOTable1. TableName: ='Категории_цвета';
ADOTable1. Active: =true;
StatusBar1. SimpleText: =n10. Caption;
end;
Страницы: 1, 2, 3, 4, 5 |