Терминреляционной
одели
|
Эквивалентный
|
термин
|
Отношение
|
Таблица
|
Схема отношения
|
Строка
заголовков столбцов таблицы (заголовок таблицы)
|
Кортеж
|
Строка таблицы,
запись
|
Сущность
|
Описание
свойств объекта
|
Атрибут
|
Столбец, поле
|
Домен
|
Множество
допустимых значений
|
атрибута
|
Первичный ключ
|
Уникальный
идентификатор
|
Кардинальность
|
Количество
строк
|
Степень
|
Количество
столбцов
|
Реляционная база данных представляет собой
хранилище данных, содержащее набор двухмерных таблиц. Данные в таблицах должны
удовлетворять следующим принципам:
. Значения атрибутов должны быть
атомарными (иными словами,
каждое значение, содержащееся на пересечении строки и колонки,
должно быть не расчленяемым на несколько значений).
. Значения каждого атрибута должны
принадлежать к одному и тому же типу.
. Каждая запись в таблице уникальна.
. Каждое поле имеет уникальное имя.
. Последовательность полей и записей в
таблице не существенна.
Отношение является важнейшим понятием и
представляет собой двумерную таблицу, содержащую некоторые данные.
Сущность есть объект любой природы, данные
о котором хранятся в базе данных. Данные о сущности хранятся в отношении.
Атрибуты представляют собой свойства,
характеризующие сущность. В структуре таблицы каждый атрибут именуется и ему
соответствует заголовок некоторого столбца таблицы.
Ключом отношения называется совокупность
его атрибутов, однозначно идентифицирующих каждый из кортежей отношения. Иными
словами, множество атрибутов К, являющееся ключом отношения, обладает свойством
уникальности. Следующее свойство ключа - не избыточность. То есть никакое из
собственных подмножеств множества К не обладает свойством уникальности.
Каждое отношение всегда имеет комбинацию
атрибутов, которая может служить ключом.
Возможны случаи, когда отношение имеет
несколько комбинаций атрибутов, каждая из которых однозначно определяет все
кортежи отношения. Все эти комбинации атрибутов являются возможными ключами
отношения. Любой из возможных ключей может быть выбран как первичный.
Ключи обычно используют для достижения
следующих целей:
исключения дублирования значений в
ключевых атрибутах (остальные атрибуты в расчет не принимаются);
упорядочения кортежей. Возможно
упорядочение по возрастанию или убыванию значений всех ключевых атрибутов, а
также смешанное упорядочение (по одним - возрастание, а по другим - убывание);
организации связывания таблиц.
Важным является понятие внешнего ключа.
Внешний ключ можно определить как множество атрибутов одного отношения R2, значения которых
должны совпадать со значениями возможного ключа другого отношения R1.
Атрибуты отношения К2, составляющие
внешний ключ, не являются ключевыми для данного отношения.
С помощью внешних ключей устанавливаются
связи между отношениями.
Проектирование баз данных информационных
систем является достаточно трудоемкой задачей. Оно осуществляется на основе
формализации структуры и процессов предметной области, сведения о которой
предполагается хранить в БД. Различают концептуальное и схемно-структурное
проектирование.
Концептуальное проектирование БД ИС
является в значительной степени эвристическим процессом. Адекватность
построенной в его рамках инфологической модели предметной области проверяется
опытным путем, в процессе функционирования ИС.
Этапы концептуального проектирования:
* изучение предметной области для
формирования общего представления о ней;
* выделение и анализ функций и задач
разрабатываемой ИС;
* определение основных объектов-сущностей
предметной области
и отношений между ними;
* формализованное представление предметной
области.
При проектировании схемы реляционной БД
можно выделить следующие процедуры:
* определение перечня таблиц и связей
между ними;
* определение перечня полей, типов полей,
ключевых полей каждой таблицы (схемы таблицы), установление связей между
таблицами через внешние ключи;
* установление индексирования для полей в таблицах;
* разработка списков (словарей) для полей
с перечислительными
данными;
* установление ограничений целостности для
таблиц и связей;
* нормализация таблиц, корректировка
перечня таблиц и связей. Проектирование БД осуществляется на физическом и
логическом уровнях. Проектирование на физическом уровне реализуется средствами
СУБД и зачастую автоматизировано.
Логическое проектирование заключается в
определении числа и структуры таблиц, разработке запросов к БД, отчетных
документов, создании форм для ввода и редактирования данных в БД и т. д.
Одной из важнейших задач логического
проектирования БД является структуризация данных. Выделяют следующие подходы к
проектированию структур данных:
* объединение информации об
объектах-сущностях в рамках одной таблицы (одного отношения) с последующей
декомпозицией на несколько взаимосвязанных таблиц на основе процедуры нормализации
отношений;
* формулирование знаний о системе
(определение типов исходных данных и взаимосвязей) и требований к обработке
данных, получение с помощью СА5Е-системы готовой схемы БД или даже готовой
прикладной информационной системы;
* осуществление системного анализа и
разработкас труктурных моделей.
. Назначение и принцип работы SQL
(часто произносится как "сиквэл",
сокращенное название от Structured Query Language) символизирует собой
Структурированный Язык Запросов. является инструментом, предназначенным для
обработки и чтения данных, содержащихся в компьютерной базе данных. Это язык
который дает возможность эффективно создавать реляционные базы данных и
работать с ними.
Мир баз данных становится все более и более единым,
что привело к необходимости создания стандартного языка, который мог бы
функционировать в большом количестве различных видов компьютерных сред.
Стандартный язык позволит пользователям знающим один набор команд, использовать
их чтобы создавать, отыскивать, изменять, и передавать информацию независимо от
того работают ли они на персональном компьютере, сетевой рабочей станции, или
на универсальной ЭВМ. Во все более и более взаимосвязанном компьютерном мире,
пользователь, снабженный таким языком, имеет огромное преимущество в использовании
и обобщении информации из ряда источников с помощью большого количества
способов.
Как следует из названия, SQL является языком
программирования, который применяется для организации взаимодействия
пользователя с базой данных. На самом деле SQL работает только с базами данных
реляционного типа.
. Инфологическая модель
При создании инфологической модели была проанализирована предметная
область заданной базы данных «Учебные планы,
изучаемых дисциплин направления ПМИ». Было выделено 4 объекта: Учебный
план, Дисциплина, Студент, Преподаватель, а также две дополнительные таблица,
осуществляющие связь между студентами и дисциплинами, а также между
преподавателями и дисциплинами. Объект Учебный план имеет атрибуты: Год
создания, Номер учебного плана. Объект Дисциплина имеет такие атрибуты:
Название дисциплины, Код дисциплины, Номер учебного плана, Количество часов
лекций, Количество часов практик, Количество часов на лабораторные работы,
Всего часов, Количество часов в неделю, Форма отчетности по дисциплине, Семестр
изучения. Объект Судент имеет атрибуты: Номер зачетной книжки, ФИО. И объект
Преподаватель имеет атрибуты: ФИО, Табельный номер, Кафедра, Должность,
Телефон. Объекты Учебный план и Дисциплина связаны в отношении 1:n, объекты Дисциплина и Студент
связаны отношением 1:n, и
объекты Дисциплина и Преподаватель связаны отношением 1:n.
При описании инфологической модели использовались ER-диаграммы:
Рисунок 1
. Логическая модель
Логическая модель описывает понятия предметной области, их
взаимосвязь, а также ограничения на данные, налагаемые предметной областью.
Логическая модель данных является начальным прототипом
будущей базы данных. Она строится в терминах информационных единиц, но без
привязки к конкретной СУБД. Более того, логическая модель данных необязательно
должна быть выражена средствами именно реляционной модели данных.
Для создания логической модели каждому объекту была поставлена в
соответствие таблица, с определенным набором полей. Так как Объекты Дисциплина
и Преподаватель связаны в отношении 1:n, то появляется дополнительная таблица для представления связи между
объектами Дисциплина и Преподаватель: Преподает.
Всего у нас 4 объекта и следовательно будет 4 таблицы для их
представления, объект Учебный план является только информационным, так как
работа базы данных осуществляется только с одним учебным планом:
Disciplina;
Student;
Prepod;
Но между двумя объектами имеется связь 1:n, поэтому нам необходимо ввести еще одну таблицу для
представления связей между этими таблицами. Это будет таблица Преподает (Disciplina-Prepodavatel) и таблица Изучает(Disciplina- Student).
Представленную базу данных можно отнести к 5-ой нормальной форме, т.к.
она относится к 3-ей нормальной форме и первичный ключ является простым.
Логическая схема реализована в Microsoft Access.
Рисунок 2
. Структура таблиц
Исходная база данных состоит из 5 таблиц (таблицу Учебные планы не
считаем, так как используется один учебный план).
Расшифровка полей:
v Disciplina.db
Ø Nazv- название дисциплины, тип поля: String;
Ø Kod - уникальный код дисциплины: LongInt;
Ø Semestr - семестр, в котором она преподается: String;
Ø KolLeKCh - количество лекций по данной
дисциплине: LongInt;
Ø KolPraktCh - количество практик по данной
дисциплине: LongInt;
Ø KolLabRabCh - количество лекций по данной
дисциплине: LongInt;
Ø VsegoCh - общее количество часов: LongInt;
Ø NomerYP - номер учебного плана, в котором содержится
дисциплина: LongInt.
v Student.db
Ø NomerStudBileta - номер студенческого билета: LongInt;
Ø FIO - фамилия студента: ShortInt;
v Prepodaet.db (Disciplina-Prepodavatel)
Ø KodDiscip- код дисциплины: LongInt;
Ø TabNomerPrepod - табельный номер преподавателя,
который преподает соответствующую дисциплину: LongInt;
Ø FIO- ФИО преподавателя, который преподает соответствующую
дисциплину: String.
v Prepod.db
Ø FIO - ФИО преподаваля: String;
Ø TabelNomerPrepodavatelya - уникальный табельный номер
преподавателя: LongInt;
Ø Kafedra - кафедра, на которой он работает: String;
Ø Dolshnost - Должность преподавателя: String;
Ø Telefon- контактный телефон преподавателя: String.
v Izuchaet.db(Disciplina- Student)
Ø KodDiscip- код дисциплины: LongInt;
Ø NomerStudBileta - номер студенческого билета
студента, изучающего дисциплину: LongInt;
Ø FIO- ФИО студента, который изучает соответствующую
дисциплину: String;
Ø Ocenka - оценка студента по изучаемой дисциплине: LongInt;.
. Проектирование SQL-запросов
1. Сформироватьсписок зачетов и экзаменов для каждого
семестра.
select Nazv,FormaOtchetDisciplinaSemestr=:s and
(Disciplina.FormaOtchet='Зачет' or Disciplina.FormaOtchet='Экзамен') ;
2.
Сформировать экзаменнационно-зачетные ведомости/ основные и дополнительные/ по
каждому предмету.
Основная ведомость:
Prepodaet.FIO, .ObsheeKolChVNed,Disciplina.Semestr,Izuchaet.FIO,Izuchaet.
Ocenka,Disciplina.NazvDisciplina,
Prepodaet,IzuchaetDisciplina.KodDiscip=Prepodaet.KodDiscipDisciplina.KodDiscip=Izuchaet.KodDiscip(Disciplina.FormaOtchet='Экзамен' or Disciplina.FormaOtchet='Зачет')
and Nazv=:p;
Дополнительная ведомость(для студентов, имеющих 2):
select Disciplina.Nazv,Prepodaet.FIO,
.ObsheeKolChVNed,Izuchaet.FIO,Disciplina.Semestr,Izuchaet.OcenkaIzuchaet,Disciplina,PrepodaetIzuchaet.Ocenka='2'Disciplina.KodDiscip=Izuchaet.KodDiscipDisciplina.KodDiscip=Prepodaet.KodDiscip(Disciplina.FormaOtchet='Экзамен' or Disciplina.FormaOtchet='Зачет');
3. Подсчитать общее количество аудиторных часов в неделю
/ в семестре 17 недель/.
Update DisciplinaObsheeKolChVNed=VsegoCh/17;
4. Подготовить вкладыш для диплома каждого студента:
select Disciplina.Nazv, Izuchaet.Ocenka, Izuchaet.FIO
from Izuchaet,
DisciplinaDisciplina.KodDiscip=Izuchaet.KodDiscipDisciplina.FormaOtchet='Экзамен'FIO=:p;AVG(Ocenka) as
SrBallIzuchaetFIO=:pby FIO
Order by SrBall desc;
5. Выдать список группы в порядке убывания среднего
балла:
Select FIO, AVG(Ocenka) as SrBallIzuchaetby FIOby SrBall
desc;
10. Структура и функции системы
Курсовая работа состоит из одного проекта “Project1” и 13 модулей.
1. Unit1 - здесь хранится форма, которая представляет собой титульный лист.
Используются компоненты: Memo, Button.
2. Unit2 - здесь хранится форма, которая представляет собой начальную страницу
базы данных. Здесь используются компоненты: Button, Memo.
3. Unit3 - здесь хранится форма, которая содержит в виде вкладок все таблицы
базы данных. Здесь используются компоненты: Memo, Button,
TabSheet, Table, DBGrid, DBNavigator, Label, Query.
4. Unit4 - здесь хранится форма, на которой отображается задание. Здесь
используются компоненты: Memo, Button.
5. Unit5 - здесь хранится форма, на которой отображается дополнительная
экзаменационная ведомость. Здесь используются компоненты: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.
6. Unit6 - здесь хранится форма, на которой отображается список экзаменов и
зачетов. Здесь используются компоненты: Memo, Button,
TabSheet, Table, DBGrid, DBNavigator, Label, Query.
7. Unit7 - здесь хранится форма, на которой отображается основная
экзаменационная ведомость. Здесь используются компоненты: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.
8. Unit8 - здесь хранится форма, на которой отображается список группы в порядке
убывания. Здесь используются компоненты: Memo, Button,
TabSheet, Table, DBGrid, DBNavigator, Label, Query.
9. Unit9 - здесь хранится форма, на которой отображается вкладыш в диплом. Здесь
используются компоненты: Memo, Button, TabSheet, Table, DBGrid,
DBNavigator, Label, Query.
10. Unit10 - здесь хранится форма, на которой отображается форма по заполнению
электронной ведомости. Здесь используются компоненты: Memo, Button,
TabSheet, Table, DBGrid, DBNavigator, Label, Query.
11. Unit11 - здесь хранится форма, на которой отображается меню. Здесь
используются компоненты: Memo, Button, Label.
12. Unit12 - здесь хранится форма, на которой отображается отчет по созданию
электронной экзаменационной ведомости. Здесь используются компоненты: Memo и Button, RVProject, RVQueryConnnection и Query.
13. Unit13 - здесь хранится форма, на которой отображается отчет по созданию
вкладыша в диплом. Здесь используются компоненты: Memo и Button,
RVProject, RVQueryConnnection и Query.
. Руководство для пользователя
1. Запускаем проект. Перед нами появляется титульный лист курсовой
работы
Рисунок 3
Здесь мы можем сразу войти в базу данных, а можем посмотреть задание и
вернуться к этой форме. Выбираем «Показать задание»
2. Перед нами появляется окно с информацией по заданию курсовой
работы
Рисунок 4
3. Возвращаемся назад, нажав на соответствующую кнопку и начинаем
работу, нажав на кнопу предыдущего окна «Продолжить»
Рисунок 5
4. Ознакомившись с информацией на данной странице, нажимаем на
кнопку «Вход»
Рисунок 6
Перед нами появляется окно, содержащее на вкладках всю информацию
содержащуюся в базе данных. Здесь мы можем просмотреть список дисциплин,
учебную группу, преподавателей, что изучают те или иные студенты и какой
предмет преподают преподаватели.
5. Также с этого окна мы можем перейти к запросам. Нажимаем на
соответствующую кнопку.
Рисунок 7
Здесь мы можем выбрать любой интересующий запрос просто нажав на
соответствующую кнопку. Также здесь мы можем вернуться к таблицам и перейти к
формированию электронного варианта экзаменационной ведомости.
6. Нажимаем на кнопку «Просмотреть список зачетов и экзаменов для
каждого семестра»
Рисунок 8
Здесь необходимо ввести номер семестра и нажать на кнопку ниже, далее в
окошке таблицы появится список экзаменов и зачетов для введенного вами
семестра. С этого листа мы можем вернуться обратно к запросам.
7. Нажимаем на кнопку «Перейти к основной экзаменационной ведомости»
Здесь необходимо выбрать название дисциплины из выпадающего списка, затем
ввести это название в окошечко под выпадающем списке и нажать на кнопку
«Выполнить». Запрос покажет общее количество часов в неделю на изучение
введенной вами дисциплины, а так же отобразит список студентов, изучающих
данную дисциплину и их оценку за эту дисциплину. Внимание! Поле оценка заполняется
на форме с таблицами внутри вкладки Студент-Дисциплина. Так же на этом листе
можно сформировать дополнительную экзаменационную ведомость. Для студентов,
имеющих оценку 2. С этого листа мы можем вернуться обратно к запросам.
Рисунок 9
8. Нажимаем на кнопку «Перейти к дополнительной экзаменационной
ведомости»
Рисунок 10
Здесь мы можем увидеть студентов, имеющих оценку 2 по той или иной
дисциплине. С этого листа мы можем вернуться обратно к запросам.
9.
Нажимаем на кнопку «Сформировать вкладыш для диплома»
Рисунок 11
Здесь необходимо ввести ФИО выпускника, выбрав соответствующего студента
из выпадающего списка. Далее нажать на клавишу. И тогда по запросу заполнится
столбец «Дисциплина» списком изученных дисциплин на 5 лет обучения, а также
появятся соответствующие им оценки. На этом же листе можно просмотреть
электронную версию вкладыша, нажав на кнопку «Версия для печати». После
просмотра данной версии необходимо просто закрыть открывшееся окно на красный
крестик в правом верхнем углу экрана.
Рисунок 12
10.
Нажимаем на кнопку «Прсмотреть список группы в порядке убывания среднего
балла»
Рисунок 13
Здесь мы видим список группы и соответствующий каждому студенту средний
балл, расположенный в порядке убывания. С этого листа мы можем вернуться
обратно к запросам.
11. Далее перейдем к отчету по формированию электронной
экзаменационной ведомости. Для этого под надписью «Отчеты» нажмем на
соответствующую кнопку
Рисунок 14
Выберем из выпадающего списка интересующую нас дисциплину, например,
экономика и введем ее название в окошко под выпадающим списком. Далее нажмем
кнопку выполнить и увидим фамилию преподавателя данной дисциплины.
Рисунок 15
Далее нажимаем на соответствующую кнопку для просмотра получившейся
ведомости
Рисунок 16
Здесь мы видим название выбранной нами дисциплины, ФИО преподавателя этой
дисциплины. А так же список студентов, которые изучали данную дисциплину. Для
выхода из отчета просто нажмите на крестик в правом верхнем углу экрана.
Возвращаемся на предыдущий лист. С этого листа мы можем вернуться обратно к
запросам.
. Создание таблиц
Для создания таблиц использовался утилит Database Desktop. Его можно запустить - Пуск/Программы/Borland Delphi 7/ Database Desktop.
Необходимо настроить рабочий каталог утилиты. Выберете команду File/Working Directory и установите ваш рабочий каталог.
Для создания таблицы выберете команду File/New/Table. Затем необходимо выбрать тип таблицы. Тип PARADOX 7 можно считать наилучшим для
файл-серверных таблиц.
. Создание таблицы YchebPlan(Учебный план):
Рисунок 17
5.
Создание таблицы Disciplina(Дисциплина):
Рисунок 18
6. Создание таблицы Student:
Рисунок 19
7.
Создание таблицы Prepodaet
(Дисциплина-Преподаватель):
Рисунок 20
. Создание таблицы Prepod
(Преподаватель):
Рисунок 21
Рисунок 22
. Создание приложения в Delphi
Для того чтобы создать новое приложение, нужно в меню File выбрать пункт
New/Application. Появляется
форма и модуль (в целом это называется проект), теперь можно помещать на форму
необходимые компоненты. При необходимости можно создать еще форму (и не одну),
для этого нужно в меню File
выбрать пункт New/ Form.
1. Таблица. Заполнение данными. Отображение данных.
Для того чтобы отобразить таблицу на форме, нужно поместить на нее
компоненты:
· Table (на вкладке BDE) - В инспекторе объектов на вкладке «Параметры» в свойстве Tablename выбрать нужную таблицу.
Рисунок 23
· DBGrid (на вкладке DataControls) - необходим для отображения таблицы на форме, в Инспекторе
объектов в свойстве DataSource указать
нужный источник данных.
Рисунок 24
·
DBNavigator (на вкладке DataControls) - необходим для перемещения по
записям таблицы. В инспекторе Объектов в свойстве DataSource указывается тот же источник данных,
что и в DBGrid. Функции навигатора доступны при
щелчке на его кнопках во время работы приложения, Компонент содержит 10 кнопок.
Рисунок 25
· DataSource (вкладка Data Access) - компонент промежуточного уровня, для доступа к
данным. Служит посредником между таблицами СУБД и экранными элементами
управления (DBGrid, DBNavigator).
Рисунок 26
14. Создание поля с информацией (Memo) и кнопок
На форму помещается компонент Memo, который располагается на вкладке Standard.
Рисунок 27
В инспекторе объектов на вкладке «Параметры» в свойстве Lines вводится необходимый для отображения
текст
Рисунок 28
Создание кнопок.
Для корректного закрытия формы на нее помещается компонент Button, который располагается на вкладке Standard.
Рисунок 29
Для того чтобы кнопка работала необходимо в Обработчике событий OnClick указать:
procedure TForm1.N5Click(Sender: TObject);
Form2.Show;.Close;
end;
. Создание подписей к таблицам
Для подписи таблицы в курсовой работе был использован компонент Lable, расположенный на вкладке Standard. В Инспекторе Объектов в свойстве Caption нужно просто написать текст.
Рисунок 30
16. Создание выпадающего списка
Для выбора команды из имеющегося списка используется компонент ComboBox (выпадающий список). Его заполнение
можно осуществить таким образом
В Инспекторе Объектов в свойстве Items необходимо написать:
Рисунок 31
. Создание отчетов
Отчет создается с помощью инструмента QReports,который необходимо с начало
подключать: Component->install packages->add открыть папку bin выбрать
файл dclqrt70.bpl нажать OKи тогда появится вкладка с компонентами QReport.
Используемые мной компоненты:
Таблица 2
Компонент
|
Тип
|
Описание
|
отчет
|
QuickRep
|
Используется для введения в
приложение средств печати отчетов QuickReport. Компонент невизуальный.
|
детали
|
QRSubDetail
|
Используется для компоновки
в отчет дополнительных данных. Компонент визуальный.
|
полоса
|
QRBand
|
Используется для построения
отчетов путем размещения на нем печатаемых компонентов. Компонент визуальный.
|
17. Листинг программы
Описание проекта
program Project1;
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6},
Unit7 in 'Unit7.pas' {Form7},
Unit8 in 'Unit8.pas' {Form8},
Unit9 in 'Unit9.pas' {Form9},
Unit10 in 'Unit10.pas' {Form10},
Unit11 in 'Unit11.pas' {Form11},
Unit12 in 'Unit12.pas' {Form12},
Unit13 in 'Unit13.pas' {Form13},
Unit14 in 'Unit14.pas' {Form14};
{$R *.res}
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TForm8, Form8);
Application.CreateForm(TForm9, Form9);
Application.CreateForm(TForm10, Form10);
Application.CreateForm(TForm11, Form11);
Application.CreateForm(TForm12, Form12);
Application.CreateForm(TForm13, Form13);
Application.CreateForm(TForm14, Form14);
Application.Run;.
Описание модуля Unit1
Unit1;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
Form1: TForm1;Unit2, Unit4, Unit6, Unit7, Unit5, Unit8,
Unit9, Unit10;
{$R *.dfm}TForm1.Button3Click(Sender:
TObject);.show;;TForm1.Button2Click(Sender:
TObject);.Close;;TForm1.Button1Click(Sender: TObject);.show;;.
Описание модуля Unit2
unit Unit2;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
TForm2 = class(TForm)
Memo1: TMemo;
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form2: TForm2;Unit3;
{$R *.dfm}TForm2.Button1Click(Sender:
TObject);.show;.Close;;TForm2.Button2Click(Sender: TObject);.Close;;
Описание модуля Unit3
unit Unit3;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB,
DBTables,
StdCtrls, QuickRpt, QRCtrls;
TForm3 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
DataSource1: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
DataSource4: TDataSource;
Table1: TTable;
Table2: TTable;
Table3: TTable;
Table4: TTable;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
DBGrid3: TDBGrid;
DBNavigator3: TDBNavigator;
DBGrid4: TDBGrid;
DBNavigator4: TDBNavigator;
DBGrid5: TDBGrid;
DBNavigator5: TDBNavigator;
DBGrid6: TDBGrid;
DBNavigator6: TDBNavigator;
Button1: TButton;
DataSource5: TDataSource;
DataSource6: TDataSource;
Table5: TTable;
Table6: TTable;
Query1: TQuery;
Button2: TButton;
Label1: TLabel;
Memo1: TMemo;
Label3: TLabel;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
Form3: TForm3;Unit5, Unit11;
{$R *.dfm}TForm3.Button1Click(Sender: TObject);.show;.close;;TForm3.Button2Click(Sender:
TObject);.ExecSQL;.Refresh;;TForm3.Button3Click(Sender: TObject);.close;;
Описание модуля Unit4
Unit4;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
TForm4 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form4: TForm4;Unit1;
{$R *.dfm}TForm4.Button1Click(Sender: TObject);.show;;
Описание модуля Unit 5
Unit5;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Mask,
DBCtrls, ExtCtrls;
TForm5 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Query1: TQuery;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
DBNavigator1: TDBNavigator;
Button1: TButton;
procedure ComboBox1Change(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form5: TForm5;Unit11;
{$R *.dfm}TForm5.ComboBox1Change(Sender:
TObject);.Active:=true;;TForm5.Edit1Change(Sender:
TObject);.Open;;TForm5.Button1Click(Sender: TObject);.show;.Close;;
Описание модуля Unit 6
unit Unit6;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ExtCtrls,
DBCtrls;
TForm6 = class(TForm)
Button1: TButton;
Edit1: TEdit;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Query1: TQuery;
Label1: TLabel;
DBNavigator1: TDBNavigator;
Label2: TLabel;
Memo1: TMemo;
Button2: TButton;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form6: TForm6;Unit11;
{$R *.dfm}TForm6.Button1Click(Sender: TObject);.Close;not
Query1.Prepared then.Prepare;length (edit1.text)<>0
then.Params[0].Value:=edit1.Text.Params[0].Value:=0;.Text:='Введите номер семестра!';;.Open;;TForm6.Button2Click(Sender:
TObject);.show;.Close;;
Описание модуля Unit 7
Unit7;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DBTables, DB, Mask,
DBCtrls, ExtCtrls,
QRCtrls, QuickRpt;
TForm7 = class(TForm)
Label1: TLabel;
Label2: TLabel;
DataSource1: TDataSource;
Query1: TQuery;
Edit2: TEdit;
Button1: TButton;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
Label3: TLabel;
DBGrid1: TDBGrid;
Label4: TLabel;
Label5: TLabel;
DBNavigator1: TDBNavigator;
Button2: TButton;
Label6: TLabel;
Label7: TLabel;
Memo1: TMemo;
ComboBox1: TComboBox;
Label8: TLabel;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form7: TForm7;Unit5, Unit11;
{$R *.dfm}TForm7.Button1Click(Sender: TObject);.Close;not
Query1.Prepared then.Prepare;length (edit2.text)<>0
then.Params[0].Value:=edit2.Text.Params[0].Value:=0;.Text:='Введите название!';;.Open;;TForm7.Button2Click(Sender:
TObject);.show;.close;;TForm7.Button3Click(Sender: TObject);.show;.close;;
Описание модуля Unit 8
unit Unit8;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Mask,
DBCtrls, ExtCtrls;
TForm8 = class(TForm)
Label4: TLabel;
DataSource1: TDataSource;
Query1: TQuery;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form8: TForm8;Unit11;
{$R *.dfm}TForm8.Button1Click(Sender: TObject);.show;.close;;
Описание модуля Unit 9
unit Unit9;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Mask,
DBCtrls, ExtCtrls;
TForm9 = class(TForm)
Edit1: TEdit;
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
Query2: TQuery;
DataSource2: TDataSource;
Button2: TButton;
DBEdit1: TDBEdit;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Name: TComboBox;
Button3: TButton;
Memo1: TMemo;
Label4: TLabel;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form9: TForm9;Unit11, Unit13;
{$R *.dfm}TForm9.Button1Click(Sender: TObject);.Close;not
Query1.Prepared then.Prepare;length (edit1.text)<>0
then.Params[0].Value:=edit1.Text.Params[0].Value:=0;.Text:='Введите имя выпускника!';;.Open;;TForm9.Button2Click(Sender:
TObject);.Close;not Query2.Prepared then.Prepare;length (edit1.text)<>0
then.Params[0].Value:=edit1.Text.Params[0].Value:=0;.Text:='Введите номер семестра!';;.Open;;TForm9.Button3Click(Sender:
TObject);.show;.close;;TForm9.Button4Click(Sender:
TObject);.QuickRep1.Preview;;
Описание модуля Unit 10
unit Unit10;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, ExtCtrls, QuickRpt, StdCtrls, DB, DBTables, Mask, DBCtrls,
Grids, DBGrids;
Button1: TButton;
Query1: TQuery;
DataSource1: TDataSource;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Button2: TButton;
Label3: TLabel;
ComboBox1: TComboBox;
Label4: TLabel;
Label5: TLabel;
Memo1: TMemo;
Label6: TLabel;
Label7: TLabel;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
Form10: TForm10;Unit3, Unit7, Unit12, Unit11;
{$R *.dfm}TForm10.Button1Click(Sender:
TObject);.QuickRep1.Preview;;TForm10.Button2Click(Sender: TObject);.Close;not
Query1.Prepared then.Prepare;length (edit1.text)<>0 then.Params[0].Value:=edit1.Text.Params[0].Value:=0;.Text:='Введите название!';;.Open;;TForm10.Button3Click(Sender:
TObject);.show;;
Описание модуля Unit 11
unit Unit11;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
TForm11 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button7: TButton;
Label4: TLabel;
Label5: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form11: TForm11;Unit7, Unit6, Unit5, Unit9, Unit8, Unit3,
Unit10;
{$R *.dfm}TForm11.Button2Click(Sender:
TObject);.show;.Close;;TForm11.Button1Click(Sender:
TObject);.show;.Close;;TForm11.Button4Click(Sender:
TObject);.show;.Close;;TForm11.Button3Click(Sender:
TObject);.show;.Close;;TForm11.Button5Click(Sender:
TObject);.show;.Close;;TForm11.Button6Click(Sender:
TObject);.show;.Close;;TForm11.Button7Click(Sender: TObject);.show;.close;;
Описание модуля Unit 12
Unit12;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, QRCtrls, QuickRpt, ExtCtrls;
TForm12 = class(TForm)
QuickRep1: TQuickRep;
QRBand1: TQRBand;
QRLabel1: TQRLabel;
QRBand2: TQRBand;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRSubDetail1: TQRSubDetail;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRSysData1: TQRSysData;
private
{ Private declarations }
public
{ Public declarations }
end;
Form12: TForm12;Unit10;
{$R *.dfm}.
Описание модуля Unit 13
Unit13;
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, QuickRpt, QRCtrls, ExtCtrls;
TForm13 = class(TForm)
QuickRep1: TQuickRep;
QRBand1: TQRBand;
QRLabel1: TQRLabel;
QRBand2: TQRBand;
QRDBText1: TQRDBText;
QRLabel2: TQRLabel;
QRSubDetail1: TQRSubDetail;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
Form13: TForm13;Unit9;
{$R *.dfm}
Заключение
В данной работе была разработана База данных «Учебные
планы, изучаемых дисциплин направления ПМИ», было проведено
инфологическое и логическое проектирование предметной области - учебный
процесс. База данных была реализована с помощью Delphi7, для этого были разработаны таблицы, формы, отчеты,
запросы. Сформирован удобный пользовательский интерфейс, позволяющий работать в
различных режимах доступа к базе данных.
Разработанная база данных может служить для автоматизации и оптимизации
учебного процесса, кроме того доступна, как профессиональным пользователям
программными средствами, так и новичку в этой сфере.
При разработке базы данных «Учебные планы,
изучаемых дисциплин направления ПМИ» были получены следующие навыки и
проявлены следующие компетенции:
· Понимание требования к заданию и следование им
· Проявление письменной коммуникации
· Знание элементов системы программирования Delphi7
· Знание и применение элементов технологии БД
· Способность к анализу и синтезу
· Стремление к качеству результата
· Способность к управлению информацией
Всему этому способствовали следующие индивидуальные черты: крайняя
целеустремленность, умение самостоятельно решать проблемы, настойчивость в
достижении результатов, трудолюбие, умение общаться и задавать вопросы.
Некоторые качества, которые препятствовали ходу работы: неправильная
оценка своих возможностей, недооценка объема и требований.
Данная работа помогла развитию положительных организационных и
профессиональных навыков.
Список литературы
1. Л.С. Блюдина. Проектирование баз данных в среде Delphi.
Ульяновск: Венец, 2001.
. Т.С. Карпова. Базы данных: модели, разработка, реализация.
СПб.: Питер, 2001.
. Культин Н.Б. «Основы программирования в Delphi 7». BHV:СПБ,
2008.
. Е. Марков «Программирование в Delphi 7». BHV: СПБ. 2003г.
. А.Я. Архангельский. «Приемы программирования в Delphi».
СПб.: «Бином-Пресс», 2006.
. С.И. Бобровский «Delphi 7 Учебный курс». СПб.: «Питер»
2006.
. Г.В. Галисеев «Компоненты в Delphi 7». СПб.: «Вильямс»
2004.