Екзаменаційна сесія
КИЇВСЬКИЙ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ БУДІВНИЦТВА І АРХІТЕКТУРИ
КАФЕДРА
ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Курсовий
проект
з
дисципліни «Організація баз даних»
на
тему: «Екзаменаційна сесія»
Київ
- 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 с.