Автор работы: Пользователь скрыл имя, 24 Апреля 2012 в 20:20, контрольная работа
Целью выполнения данной дипломной работы является разработка системы "ГАИ" и соответствующей ей базы данных, позволяющей документировать в электронном виде автоматизацию учета движений автомобилей и предоставлять необходимые отчеты.
В качестве среды разработки базы данных была выбрана СУБД MSSQL Server 2000.
Введение
1.1 Постановка задачи
1.2 Информационные системы
2.1 Введение в базы данных
2.2 Шаги проектирования базы данных
Заключение
Список использованной литературы
Приложение 1.
V. Пятый шаг предполагает выработку правил, которые будут устанавливать и поддерживать целостность данных. Будучи определенными, такие правила в клиент-серверных СУБД поддерживаются автоматически - сервером баз данных; в локальных же СУБД их поддержание приходится возлагать на пользовательское приложение.
Эти правила включают:
определение типа данных
выбор набора символов, соответствующего данной стране
создание полей, опирающихся на домены
установка значений по умолчанию
определение ограничений целостности
определение проверочных условий.
VI. На шестом шаге устанавливаются связи между объектами (таблицами и столбцами) и производится очень важная операция для исключения избыточности данных - нормализация таблиц.
Каждый из различных типов связей должен быть смоделирован в базе данных. Существует несколько типов связей:
связь “один-к-одному”
связь “один-ко-многим”
связь “многие-ко-многим”.
Связь “один-к-одному” представляет собой простейший вид связи данных, когда первичный ключ таблицы является в то же время внешним ключом, ссылающимся на первичный ключ другой таблицы. Такую связь бывает удобно устанавливать тогда, когда невыгодно держать разные по размеру (или по другим критериям) данные в одной таблице. Например, можно выделить данные с подробным описанием изделия в отдельную таблицу с установлением связи “один-к-одному” для того чтобы не занимать оперативную память, если эти данные используются сравнительно редко.
Связь “один-ко-многим” в большинстве случаев отражает реальную взаимосвязь сущностей в предметной области. Она реализуется уже описанной парой “внешний ключ-первичный ключ”, т.е. когда определен внешний ключ, ссылающийся на первичный ключ другой таблицы. Именно эта связь описывает широко распространенный механизм классификаторов. Имеется справочная таблица, содержащая названия, имена и т.п. и некие коды, причем, первичным ключом является код. В таблице, собирающей информацию - назовем ее информационной таблицей - определяется внешний ключ, ссылающийся на первичный ключ классификатора. После этого в нее заносится не название из классификатора, а код. Такая система становится устойчивой от изменения названия в классификаторах. Имеются способы быстрой “подмены” в отображаемой таблице кодов на их названия как на уровне сервера БД (для клиент-серверных СУБД), так и на уровне пользовательского приложения. Но об этом - в дальнейших уроках.
Связь “многие-ко-многим” в явном виде в реляционных базах данных не поддерживается. Однако имеется ряд способов косвенной реализации такой связи, которые с успехом возмещают ее отсутствие. Один из наиболее распространенных способов заключается во введении дополнительной таблицы, строки которой состоят из внешних ключей, ссылающихся на первичные ключи двух таблиц. Например, имеются две таблицы: КЛИЕНТ и ГРУППА_ИНТЕРЕСОВ. Один человек может быть включен в различные группы, в то время как группа может объединять различных людей. Для реализации такой связи “многие-ко-многим” вводится дополнительная таблица, назовем ее КЛИЕНТЫ_В_ГРУППЕ, строка которой будет иметь два внешних ключа: один будет ссылаться на первичный ключ в таблице КЛИЕНТ, а другой - на первичный ключ в таблице ГРУППА_ИНТЕРЕСОВ. Таким образом в таблицу КЛИЕНТЫ_В_ГРУППЕ можно записывать любое количество людей и любое количество групп.
Итак, после определения таблиц, полей, индексов и связей между таблицами следует посмотреть на проектируемую базу данных в целом и проанализировать ее, используя правила нормализации, с целью устранения логических ошибок. Важность нормализации состоит в том, что она позволяет разбить большие отношения, как правило, содержащие большую избыточность информации, на более мелкие логические единицы, группирующие только данные, объединенные “по природе”. Таким образом, идея нормализации заключается в следующем. Каждая таблица в реляционной базе данных удовлетворяет условию, в соответствии с которым в позиции на пересечении каждой строки и столбца таблицы всегда находится единственное значение, и никогда не может быть множества таких значений.
После применения правил нормализации логические группы данных располагаются не более чем в одной таблице. Это дает следующие преимущества:
данные легко обновлять или удалять
исключается возможность рассогласования копий данных
уменьшается возможность введения некорректных данных.
Процесс нормализации заключается в приведении таблиц в так называемые нормальные формы. Существует несколько видов нормальных форм: первая нормальная форма (1НФ), вторая нормальная форма (2НФ), третья нормальная форма (3НФ), нормальная форма Бойса-Кодда (НФБК), четвертая нормальная форма (4НФ), пятая нормальная форма (5НФ). С практической точки зрения, достаточно трех первых форм - следует учитывать время, необходимое системе для “соединения” таблиц при отображении их на экране. Поэтому мы ограничимся изучением процесса приведения отношений к первым трем формам.
Заключение
В первом разделе данного дипломной работы была описана постановка задачи с нововведениями и дополнениями со стороны разработчика.
Во втором и третьем разделах была описана структура разработанной базы данных и структура хранимой в ней информации. Также были подробно описаны связи между таблицами.
В четвертом разделе была описаны шаги проектирования базы данных.
В пятом разделе было представлено подробное руководство по использованию программы.
Информационная система предназначена для автоматизации учета автомобилей в "ГАИ". Система должна предусматривать режимы ведения системного каталога, отражающего список районов учета движений автомобилей, марок, цвета кузова. Техосмотр автомобиля может быть проведен или просрочен, в связи с этим дорожная полиция должна вовремя отреагировать. В системном каталоге операция имеет код и полное наименование, каждый автомобиль характеризуется следующими параметрами: марка автомобиля, цвет кузова.
Список использованной литературы
1. Delphi 2005 для Win32 (+ CD-ROM): Евгений Марков, Петр Дарахвелидзе — Москва, БХВ-Петербург, 2005 г.- 1136 с.
2. Delphi. Профессиональное программирование: Дмитрий Осипов — Санкт-Петербург, Символ-Плюс, 2006 г.- 1056 с.
3. InterBase и Firebird. Практическое руководство для умных пользователей и начинающих разработчиков (+ CD-ROM): Александр Бондарь — Санкт-Петербург, БХВ-Петербург, 2007 г.- 592 с.
4. Базы данных (+ CD-ROM): В. П. Агальцов — Москва, Мир, 2002 г.- 376 с.
5. Базы данных и Delphi. Теория и практика (+ DVD-ROM): Д. Л. Осипов — Санкт-Петербург, БХВ-Петербург, 2011 г.- 752 с.
6. Базы данных. Разработка приложений: Л. В. Рудикова — Санкт-Петербург, БХВ-Петербург, 2006 г.- 496 с.
7. Базы данных: от проектирования до разработки приложений (+ дискета): Александр Чекалов — Москва, БХВ-Петербург, 2003 г.- 384 с.
8. Основы программирования в Delphi XE (+ CD-ROM): Н. Б. Культин — Москва, БХВ-Петербург, 2011 г.- 416 с.
9. Программирование в Delphi для Windows. Версии 2006, 2007, Turbo Delphi (+ CD-ROM): А. Я. Архангельский — Санкт-Петербург, Бином-Пресс, 2007 г.- 1248 с.
10. Разработка приложений Microsoft Office 2007 в Delphi: Юрий Магда — Санкт-Петербург, БХВ-Петербург, 2009 г.- 160 с.
11. Самоучитель Delphi 7 Studio: Вячеслав Понамарев — Санкт-Петербург, БХВ-Петербург, 2003 г.- 504 с.
12. Галисеев Г. В. Программирование в среде Delphi 7. Самоучитель.М.: Издательский дом «Вильямс», 2004.
Приложение 1.
Исходный код для входа в базу данных
unit paswd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Edit6: TEdit;
RichEdit2: TRichEdit;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
shif_str: string;
implementation
uses adsbaz, usprint;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
if Edit1.Text=''
then ;
if Edit1.Text=shif_str
then
begin
Form3.Show;
Form2.Hide;
end
else
begin
MessageDlg('Неверный пароль!',mtError,[mbOk],0);
Close;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Button1.Click;
end;
procedure TForm2.FormCreate(Sender: TObject);
Label M;
var
i,j,j1,x,n,z,s,s1,tt,c,f: integer;
st,a: string;
begin
Application.Title:='База данных ГАИ';
// пароль как при входе в Win XP
Edit1.Font.Name:='Wingdings';
Edit1.PasswordChar:='l'; // символ "точка"
//
j:=78575;
j1:=j;
Edit6.Text:='
try
RichEdit2.Lines.LoadFromFile('
except
MessageDlg('Файл "conf.ps" не найден!',mtError,[mbOK],0);
Close;
end;
st:='
a:=RichEdit2.Lines.Strings[0];
x:=length(a);
try
for i:=1 to x do
begin
if pos(a[i],Edit6.Text)<>0 then
begin
Edit6.SelStart:=pos(a[i],
n:=Edit6.SelStart;
s1:=n+1;
j:=j1;
s:=s1-j;
if ((s<=159) and (s>=0)) then
begin
s:=s1-j;
a[i]:=st[s];
goto M;
end;
j:=j1-n-1;
repeat
tt:=j-159;
s:=abs(tt);
j:=s;
until (s<=159);
s:=159-s;
a[i]:=st[s];
M:
end
else
end;
shif_str:=a;
except
MessageDlg('Ошибка открытия пароля!',mtError,[mbOK],0);
end;
end;
end.