Екзаменаційна сесія

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ БУДІВНИЦТВА І АРХІТЕКТУРИ

КАФЕДРА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ


Курсовий проект

з дисципліни «Організація баз даних»

на тему: «Екзаменаційна сесія»


Київ - 2014


Вступ


Екзаменаційна сесія. Необхідно зберігати дані, необхідні для планування проведення екзаменаційної сесії: назву та коди спеціальностей, груп, дисциплін, прізвища викладачів. Сформувати графік проведення екзаменаційної сесії. Надрукувати розклад проведення екзаменаційної сесії.

Інформація, що повинна зберігатися в базі даних.


м

Рис. 1


1. Опис предметного середовища

база дана таблиця посилання

Для формування графіку проведення екзаменаційної сесії потрібна наступна інформація:

декілька спеціальностей,

на кожній спеціальності навчається декілька груп різних курсів,

на кожній спеціальності є декілька дисциплін, що виносяться на екзаменаційну сесію,

на спеціальності викладаю різні дисципліни декілька викладачів.


1.1 Перелік вхідної інформації


Спеціальність має: унікальний код та назву.

Кожна група має:унікальний код, назву, номер, а також код спеціальності до якої група належить.

Кожен викладач має: унікальний код, ПІБ та ступінь.

Дисципліна має:унікальний код, назву та код викладача, що викладає дану дисципліну.

Іспит має: дату, час, місце проведення, а також код групи та дисципліни.


2. Концептуальна модель бази даних


На основі опису предметного середовища та переліку вхідної інформації визначаємо основні сутності та їх атрибути.


СутностіАтрибутиІдентифікаториСпеціальністьКод НазваSCode SNameГрупаКод Назва Номер Код спеціальностіGCode GName GNum SCodeВикладачКод ПІБ СтупіньTCode TName TPostДисциплінаКод Назва Код викладачаDCode DName TCode

Визначення звязків між сутностями:


СутностіТип звязкуОпис звязкуСпеціальність-Група1:МНа кожній спеціальності навчається декілька груп.Викладач-Дисципліна1:МОдин викладач може викладати різні дисципліни.Дисципліна-ГрупаМ:МІспит з певної дисципліни можуть складати декілька груп та кожна група може складати іспит з декількох дисциплін.

На основі виділених сутностей та звязків будуємо концептуальну модель, рисунок 2.


Рис. 2 - Концептуальна модель бази даних


3. Дата-логічна модель бази даних


На основі концептуальної моделі створимо дата-логічну модель бази даних, зв'язки М:М представлені у вигляді додаткової таблиці, рисунок 3.


Рис. 3 - Дата-логічна модель бази даних


4. Фізична модель бази даних


Властивості кожної з таблиць бази даних.

Спеціальність:


Рис. 4


Група:


Рис. 5


Викладач:

Рис. 6


Дисципліна:


Рис. 7


Іспит:


Рис. 8


5. Опис функціональних запитів


Опис запитів мовою SQL:

При формуванні розкладу для певної групи використовуємо SQL запит та компонент Query2для реалізації цього запиту.GName, GNum, DName, EData, ETime, EPlaceExamination E INNER JOIN Discipline D ON E.DCode = D.DCode INNER JOIN "Group" G ON E.GCode = G.GCodeGName='''+ Form3.Edit6.Text+''''

Опис даного запиту в термінах реляційної алгебри:



Рис. 9


Для заповнення проміжної таблиці Examination використовуємо компонент Query1.

procedureTForm3.Button1Click(Sender: TObject); var_1,code_2:integer;_text,text:string;begin_1:=DataModule2.Table2.FieldByName('GCode').Value;_2:=DataModule2.Table3.FieldByName('DCode').Value;_text:='Insert into Examination values('+inttostr(code_2)+','+inttostr(code_1)+','+quotedstr(Edit1.text)+','+quotedstr(Edit2.text)+','+quotedstr(Edit3.text)+')';.Query1.SQL.Clear;.Query1.SQL.Add(SQL_text);.Query1.ExecSQL;.Table5.Refresh;.Text:= '';.Text:= '';.Text:= '';end;

При формуванні звіту (report)також використовуємо SQL запит та компонент Query1.GName, GNum, DName, EData, ETime, EPlaceExamination E INNER JOIN Discipline D ON E.DCode = D.DCode INNER JOIN "Group" G ON E.GCode = G.GCodeBYGName, GNum, DName, EData, ETime, EPlace

Опис даного запиту в термінах реляційної алгебри:



6. Опис функціональних залежностей


Татблиця Speciality:>SName

Таблиця Group:>GName, GNum

Таблиця Examination:,GCode->EData,ETime,EPalce

Таблиця Discipline:>DName

Таблиця Teacher:>TName, TPost


7. Опис структури програми


Файл проекту Project1.dprмістить 12 програмних модулів:-модуль містить форму перегляду таблиць Speciality та Group.-модуль данихDataModule2.

Unit3-модуль містить форму перегляду таблиці Examination.-форма для додавання або редагування даних таблиці спеціальностей.-модуль головної форми.- модуль містить форму перегляду таблиць Discipline та Teacher.-форма для додавання або редагування даних таблиці дисципліна.-форма для додавання або редагування даних таблиці іспит.-форма для додавання або редагування даних таблиці група.- форма для звіту.-форма для SQLзапитів.-форма для додавання або редагування даних таблиці викладачі.


Рис. 10 - Взаємодія програмних модулів


8. Опис реалізації проекту бази даних


8.1 Заповнення таблиць бази даних


Для заповнення таблиць спочатку відкриваємо Tools/DatabaseDesktop. Далі обираємо «File» та команду «Open/Table»і відкриваємо таблицю. Переходимо у режим редагування «Table/Restructure» та вносимо дані в таблицю.


Рис. 11


8.2 Визначення цілісності посилань між таблицями бази даних


Для визначення цілісності посилання відкриваємо підпорядковану таблицю та заходимо в режим реструктуризації «Table/Restructure». У списку Tableproperties обираємо елемент ReferentialIntegrity та натискаємо кнопку Define. У вікні, що відкрилося показані два списки: Fields та Table. УспискуFields вказані поля таблиці, яку ми відкрили; у списку Table вказані всі таблиці нашої бази даних. Зі списку Fields обираємо поле, що є зовнішнім ключем таблиці, яку ми відкрили та ставимо йому у відповідність поле, що є таблицею, для якої обраний ключ є первинний:


Рис. 12


8.3 Розробка програми


Рис. 13 - Ієрархія форм застосування


Головна форма програми

На головній формі програми розташовані кнопки, завдяки яким можна здійснити перехід на інші форми для перегляду основних таблиць бази даних, а також для перегляду звіту.


Рис. 14


procedure TForm5.Button6Click(Sender: TObject);;

end;TForm5.Button1Click(Sender: TObject);.Show;;TForm5.Button2Click(Sender: TObject);.Show;;TForm5.Button3Click(Sender: TObject);.Show;.GroupBox2.Visible:=False;.GroupBox1.Visible:=False;;TForm5.Button7Click(Sender: TObject);.show;;TForm5.Button4Click(Sender: TObject);.Show;.GroupBox2.Visible:=False;.GroupBox1.Visible:=True;;TForm5.Button5Click(Sender: TObject);.Show;.QuickRep1.Preview;end;

Форма Спеціальність - Група.

Дана форма має дві таблиці та можливості редагування, а сама додавати, змінювати або видаляти дані.


Рис. 15


procedure TForm1.Button1Click(Sender: TObject);.Show;.Table1.Insert;;TForm1.Button3Click(Sender: TObject);.Show;.Table1.Edit;;TForm1.Button2Click(Sender: TObject);.Table1.Delete;;TForm1.Button7Click(Sender: TObject);;;TForm1.Button4Click(Sender: TObject);.Show;.Table2.Insert;;TForm1.Button5Click(Sender: TObject);.Show;.Table2.Edit;;TForm1.Button6Click(Sender: TObject);.Table2.Delete;;

Форми для редагування даних:

Рис. 16


procedure TForm4.Button1Click(Sender: TObject);.Table1.Post;;;TForm4.Button2Click(Sender: TObject);.Table1.Cancel;;;

Форма Дисципліна - Викладачі

Дана форма має дві таблиці та можливості редагування, а сама додавати, змінювати або видаляти дані.


Рис. 17


Форми редагування даних:


Рис. 18


Форма Іспит

Дана форма є проміжною таблицею. Дану таблицю ми заповнюємо за допомогою таблиць Група і Дисципліна та вносимо дані про дату, час та місце проведення іспиту, а також маємо змогу редагування таблиці.


Рис. 19


procedure TForm3.Button2Click(Sender: TObject);.Table5.Delete;;TForm3.Button1Click(Sender: TObject);_1,code_2:integer;_text,text:string;_1:=DataModule2.Table2.FieldByName('GCode').Value;_2:=DataModule2.Table3.FieldByName('DCode').Value;:=Edit1.Text;_text:='InsertintoExamination values('+inttostr(code_2)+','+inttostr(code_1)+','+quotedstr(Edit1.text)+','+quotedstr(Edit2.text)+','+quotedstr(Edit3.text)+')';.Query1.SQL.Clear;.Query1.SQL.Add(SQL_text);.Query1.ExecSQL;.Table5.Refresh;.Text:= '';.Text:= '';.Text:= '';;

Форма для редагування даних:


Рис. 20


procedure TForm9.Button1Click(Sender: TObject);.Table5.Post;;;TForm9.Button2Click(Sender: TObject);.Table5.Cancel;;;

Форма для визначення розкладу для певної спеціальності.

Форма за допомогою якої ми можемо визначати розклад для певної спеціальності обравши її з випадаючого списку.


Рис. 21


procedure TForm3.Button9Click(Sender: TObject);_text:string;

begin_text:='SELECT GName, GNum, DName, EData, ETime, EPlace FROM Examination E INNER JOIN Discipline D ON E.DCode = D.DCode INNER JOIN "Group" G ON E.GCode = G.GCode WHERE GName='''+ Form3.Edit6.Text+'''';.Query2.SQL.Clear;.Query2.SQL.Add(sql_text);.Query2.Open;.Show;;TForm3.FormCreate(Sender: TObject);Datamodule2.Table1.Eof dobegin.Items.Add(Datamodule2.Table1.FieldByName('SName').AsString);.Table1.Next;;;TForm3.ComboBox1Change(Sender: TObject);.Edit6.Text:= Combobox1.Text;;

Результат формування розкладу:


Рис. 22


Форма DataModule.

Дана форма містить усі застосування компонентів програм, а саме такі компоненти, як Table, DataSource та Query.


Рис. 23


Форма Звіт.

Для створення розкладу екзаменаційної через звіт використовуємо компоненти вкладки QReport.


Рис. 24

Для формування розкладу задаємо SQLзапит.TForm10.FormActivate(Sender: TObject);_text:string;

begin_text:='SELECT GName, GNum, DName, EData, ETime, EPlace FROM Examination E INNER JOIN Discipline D ON E.DCode = D.DCode INNER JOIN "Group" G ON E.GCode = G.GCodeORDER BY GName, GNum, DName, EData, ETime, EPlace ';.Query1.SQL.Clear;.Query1.SQL.Add(sql_text);.Query1.Open;;

Розклад екзаменаційної сесії:


Рис. 25


Список використаної літератури


1. Архангельский А.Я. Программирование в Delphi для Windows. -М.: ООО «Бином-Пресс», 2003. - 1152 с.

. Дарахвелидзе П.Г., Марков Е.П. Программирование в Delphi. 7- СПб.: БХВ-Петербург, 2003. - 784 с.

. Дейт К.Дж. Введение в системы баз данных, 7-е издание. - М.: Издательский дом «Вильямс», 2001. -1072 с.

. Гайна Г.А. Основипроектування баз даних: Навчальнийпосібник. - К.: Кондор, 2008. - 200 с.

. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс - М.: «Вильямс», 2003. - 1088 с.

. Кандзюба С.П., Громов В.Н. Delphi 6/7. Базы данных и приложения. Лекции и упражнения. - СПб.: ООО «ДиаСофтЮП», 2005.- 576 с.

. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е. - М.: Издательский дом «Вильямс», 2003. -1440 с.

8. Понамарев В. Базы данных в Delphi 7. Самоучитель. - СПб.: «ПИТЕР», 2003.- 224 с.

. Шумаков П.В., Фаронов В.В. Delphi 5. Руководство разработчика баз данных. - М.: "НОЛИДЖ", 2000. - 640 с.


Теги: Екзаменаційна сесія  Курсовая работа (теория)  Информационное обеспечение, программирование