Разработка базы данных "Система ДГТУ"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?ествовать, так как операционная система, СУБД автоматически проектирует физическую среду хранения информации. Так СУБД dBASE, FoxPro,Visual FoxPro создают файлы с расширением dbf, Paradox с расширением db

5. Проектирование базы данных

Процесс проектирования БД включает в себя несколько этапов. Для того, чтобы спроектировать структуру БД необходима исходная информация о предметной области.

Инфологическая модель строится первая, затем на её основе строится Даталогическая модель. Физическая и внешняя модель после этого могут строится в любой последовательности.

.1 Инфологическая модель

Для данной курсовой работы инфологическая модель будет выглядеть следующим образом:

Инфологическая модель

5.2 Даталогическая модель

Таблица 1.

Кафедры№НаименованиеНазначениеТипРазмер1Poln_naimНазвание кафедрыA552Sokr_naimСокращенное названиеA153StatusСтатус кафедрыA304Vip_specВыпускаемая специальностьA705FIO_zav_kafФИО зав. кафедройA406Step_zavedУченая степень заведующегоA307Zvanie_zavedУченое звание заведующегоA158Kod_facКод факультетаI

Таблица 2.

Факультеты№НаименованиеНазначениеТипРазмер1Kod_facКод факультетаI2Naim_polnНазвание факультетаA553Naim_sokrСокращенное названиеA84FIO_dekanaФИО деканаA405Uch_step_dekУченая степень деканаA306Uch_zvanie_dekУченое звание деканаA157Kol_studentsКоличество студентовI8OchnikiКоличество очниковI9ZaochnikiКоличество заочниковI10God_osnovanГод основания факультетаI

Распечатки с Database Desktop.

)По кафедрам.

) По факультетам.

.3 Описание команд

В данной курсовой были реализованы следующие команды:

.Ввод, запись и удаление данных. Данная команда позволяет нам ввести в базу данных сведения о кафедрах и факультетах и сохранить их, либо удалить. Для реализации данных команд используем компоненту Button и в ее событие OnClick запишем в редакторе кода код программы.

2.Фильтрация и поиск. Данная команда позволяет осуществлять фильтрацию и поиск в базе данных по каким-то конкретным данным. В данном случае фильтрация осуществляется по следующим полям: по Статусу кафедры, по Коду факультета, по Году основания факультета и по Количеству студентов.

Поиск осуществляется по Коду факультета и по Сокращенному названию кафедры. Для реализации данных команд используем компоненту RadioGroup и в ее свойстве Items пишем названия полей, по которым будем проводить фильтрацию. Для фильтрации по ученому званию заведующего кафедрой, сокращенному название кафедры и ученой степени декана используем компоненты ComboBox и в свойсве Items компоненты ComboBox пишем ученые звания заведующих, сокращенные названия кафедр и ученые степени деканов. Чтобы провести фильтрацию по количеству студентов используем две компоненты CSpinEdit. В ее свойстве Value первой компоненте CSpinEdit указываем минимальное количество студентов, а во второй компоненте максимальное количество. А также в свойствах MaxValue и MinValue указываем максимальное и минимальное количество студентов. Поиск по полю Код факультета. Для этого используем компоненту Edit.

3.Вывод. Для вывода используем компоненту QuikRep и связываем ее с таблицей с помощью свойства DataSet. Вывод сведений по кафедрам и факультетам осуществляем на отдельных отчетах. Для вывода данных на компаненте ставим компоненту QRSubDetail. На ней ставим компоненту QRDBText. В ее свойстве DataSet указываем нашу таблицу и в свойстве DataField указываем выводимое поле.

6. Программа

//---------------------------------------------------------------------------

#include

#pragma hdrstop

#include "Unit1KetyaKursovaya.h"

#include "Unit2.h"

#include "Unit3.h"

#include "ShellAPI.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "CSPIN"

#pragma resource "*.dfm"*Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------__fastcall TForm1::FormCreate(TObject *Sender)

{_naim->Text=Table1Poln_naim->AsString;>Text=Table1Status->AsString;_naim->Text=Table1Sokr_naim->AsString;_spec->Text=Table1Vip_spec->AsString;_zav_kaf->Text=Table1FIO_zav_kaf->AsString;_zaved->Text=Table1Step_zaved->AsString;_fac->Text=IntToStr(Table1Kod_fac->AsInteger);_poln->Text=Table2Naim_poln->AsString;_osnovan->Text=IntToStr(Table2God_osnovan->AsInteger);_students->Text=IntToStr(Table2Kol_students->AsInteger);_dekana->Text=Table2FIO_dekana->AsString;_step_dek->Text=Table2Uch_step_dek->AsString;>Text=IntToStr(Table2Ochniki->AsInteger);>Text=IntToStr(Table2Zaochniki->AsInteger);_sokr->Text=Table2Naim_sokr->AsString;_zaved->ItemIndex=CZvanie_zaved->Items->IndexOf(Table1Zvanie_zaved->AsString);_zvanie_dek->ItemIndex=CUch_zvanie_dek->Items->IndexOf(Table2Uch_zvanie_dek->AsString);

}

//---------------------------------------------------------------------------__fastcall TForm1::Table1AfterScroll(TDataSet *DataSet)

{_naim->Text=Table1Poln_naim->AsString;>Text=Table1Status->AsString;_naim->Text=Table1Sokr_naim->AsString;_spec->Text=Table1Vip_spec->AsString;_zav_kaf->Text=Table1FIO_zav_kaf->AsString;_zaved->Text=Table1Step_zaved->AsString;_fac->Text=IntToStr(Table1Kod_fac->AsInteger);_poln->Text=Table2Naim_poln->AsString;_osnovan->Text=IntToStr(Table2God_osnovan->AsInteger);_students->Text=IntToStr(Table2Kol_students->AsInteger);_dekana->Text=Table2FIO_dekana->AsString;_step_dek->Text=Table2Uch_step_dek->AsString;>Text=IntToStr(Table2Ochniki->AsInteger);>Text=IntToStr(Table2Zaochniki->AsInteger);_sokr->Text=Table2Naim_sokr->AsString;_zaved->ItemIndex=CZvanie_zaved->Items->IndexOf(Table1Zvanie_zaved->AsString);_zvanie_dek->ItemIndex=CUch_zvanie_dek->Items->IndexOf(Table2Uch_zvanie_dek->AsString);

}

//---------------------------------------------------------------------------__fastcall TForm1::Table2AfterScroll(TDataSet *DataSet)

{_naim->Text=Table1Poln_naim->AsString;>Text=Table1Status->AsString;_naim->Text=Table1Sokr_naim->AsString;_spec->Text=Table1Vip_spec->AsString;_zav_kaf->Text=Table1FIO_zav_kaf->AsString;_zaved->Text=Table1Step_zaved->AsString;_fac->Text=IntToStr(Table1Kod_fac->AsInteger);_poln->Text=Table2Naim_poln->AsString;_osnovan->Text=IntToStr(Table2God_osnovan->AsInteger);_students->Text=IntToStr(Table2Kol_students->AsInteger);_dekana->Text=Table2FIO_dekana->AsString;_step_dek->Text=Table2Uch_step_dek->AsString;>Text=IntToStr(Table2Ochniki->AsInteger);>Text=IntToStr(Table2Zaochniki->AsInteger);_sokr->Text=Table2Naim_sokr->AsStrin