Создание информационного банка данных

Содержание

Введение……………………………………………………………………….…4

1 Системный анализ предметной области……………………………………..5

  1. Разработка концептуальной модели БД……………………………………..7
    1. Построение схемы функциональных зависимостей………………..7
    2. Формирование формы 1НФ…………………………..………………8
    3. Формирование 2НФ…………………………………………………...9
    4. Формирование 3НФ и 3НФБК……...………………………………..11
  2. Реализация БД………………………………………………………………...13
    1. Создание таблиц базы данных в Database Desktop……………........13
    2. Создание псевдонима в BDE Administrator………………………....19

4 Разработка алгоритма работы программы………………..….………...…20

5Разработка приложения пользователя……………………………………….21

Заключение …………………………………………………………………..….29

Список использованной литературы…………………………………………..30

Приложения

Приложение А…………………………………………………………….31

Приложение Б…………………………………………………………......32

Приложение В……………………………………………………………..33

Введение

В наше время информация играет ключевую роль в любой области жизнедеятельности человека. Цель исследований курсового проекта состоит в разработке информационного банка данных, который поможет любому пользователю легко найти нужную информацию о любом студенте вуза. Разработанный проект демонстрирует то, как работу с данными можно сделать удобной и интересной, используя базу данных. Программа является очень актуальной на сегодняшний день, она автоматизирует работу с базой данных любого вуза и предоставляет пользователю (оператору) понятный и дружественный интерфейс.

Мощность информационного банка данных обусловлена возможностью его постоянного пополнения новыми данными, причем в неограниченном количестве информации. Это является очень удобным для пользователя. Таким образом, создание информационного банка данных, обладающего такими свойствами, задача достаточно актуальная и полезная.

1 Системный анализ предметной области

Требуется разработать БД, обеспечивающую автоматизацию процессов ведения и распространения информации о студентах, проживающих в общежитии (ВУЗа). Cтуденты, проживающие в общежитии, при поступлении заполняют необходимые документы (анкету). Потребителем информации из БД являются комендант, обеспечивающий проживание приезжих студентов.

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

Входная информация поступает в БД виде:

- Информация о самих студентах;

- Информация о месте проживания(комната) ;

- Информация о родителях;

- Инвентарные номера мебелей;

- сведений о нарушении дисциплины в общежитии (сведения о студентах, проживающих в этой комнате, дата происшествия и т. д.).

На выходе пользователи системы получают информацию в виде:

- сортированный список студентов общежития, курс, факультет и т.д. ;

- № комнаты с прикрепленными мебелями, с инвентарными номерами;

- информация о нарушении дисциплины с описанием, № комнаты и дата;

- информация о родителях (контактные данные), в случаях ЧС;

- количество студентов общежития по группам;

Основными требованиями к функциям БД общежития (информация о студентах) могут считаться следующие:

  • получить список студентов в определенной комнате;
  • контролировать количество и дату происшествии в комнатах;
  • ФИО студентов, ответственные за определенные мебели;
  • список студентов по группам;
  • получить количество студентов по группам.

Каждый студент ВУЗа проходит обучение в одной из нескольких учебных групп, каждая из которых объединяет студентов одной специальности. Специальности, по которым ВУЗ обеспечивает подготовку специалистов, объединяются в факультеты, причем на разных факультетах специальности не повторяются. Каждая группа характеризуется следующими параметрами:

- индекс группы;

- номер курса;

- специальность;

- факультет

У каждого студента есть родители, следовательно необходимо внести в БД следующие информации:

- фамилия, имя, отчество родителей;

- номера телефонов(мобильный, рабочий);

- место работы;

В комнатах общежития, часто происходят происшествия (драка, употребление спиртного, шум среди ночи и т.д.). Для учета таких происшествии в БД вносятся такие данные как:

- Дата происшествия;

- Вид происшествия;

- Комната;

Также в каждой комнате имеются мебели (кровать, вентилятор, стол, стулья и т.д.). Каждая мебель имеет свой индивидуальный инвентарный номер и в никакой другой комнате номер не повторяется. Для получения списка мебелей в комнате необходимы:

- Инвентарный номер;

- Название мебели;

- Номер комнаты;

2Разработка концептуальной модели БД

2.1 Построение схемы функциональных зависимостей

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

Схема, представленная в приложении А на рисунке А.1 содержит в себе следующие атрибуты:

- «Индекс группы»;

- «Специальность»;

- «Номер курса»;

- «Факультет»;

- «ФИО студента»;

- «ФИО родителей»;

- «Номер комнаты»;

- «Инвентарный номер мебели»;

- «Название мебели»;

- «Место работы родителей»;

- «Нарушения в комнате»;

- «Дата нарушения».

Из приведенной схемы видно, что атрибуты «индекс гр», «№ комнаты» и «год рож.» функционально зависят от атрибута «ФИО студента». Действительно, если учесть, что значения атрибута «ФИО студента» никогда не повторяются, а студент может относиться только к одной из групп, проживать только по одному адресу и иметь только один год рождения, то значения любого из зависимых атрибутов однозначно определяется по «ФИО студента».

Аналогично атрибуты «Специальность» и «Номер курса» функционально зависят от атрибута «Индекс группы», т. к. каждая группа, однозначно идентифицируемая по ее индексу, может обучаться только на каком-то одном курсе и относиться только к одной из специальностей.

В свою очередь, атрибут «Факультет» зависит от атрибута «Специальность», т. к. не существует специальностей, повторяющихся на различных факультетах. Т. е. каждому значению атрибута «Специальность» всегда соответствует только одно значение атрибута «Факультет».

Атрибуты « номер комнаты» и «название мебели». функционально зависит от атрибута «инвентарного номера мебели». Это объясняется следующим. Инвентарный номер мебели уникален, следовательно один и тот же инвентарный номер может быть прикреплен только в одной комнате. Так же один и тот же предмет может иметь только один инвентарный номер.

От ФИО родителей завист ФИО студентов, а место работы и телфоны родителей функционально зависят от ФИО родителей, следовательно и адрес зависит от родителей.

2.2Формирование формы 1НФ

Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение). Исходное отношение строится из всех выделенных атрибутов, выделенных в предметной области (рисунок 1).

Первичным ключом исходного отношения является совокупность атрибутов «ФИО родителей», «№ комнаты» и «Инв.номер мебели», так как значения именно этих атрибутов в сочетании друг с другом являются уникальными и никогда в приведенном отношении повторяться не будут.

Индекс группы

Специальность

Курс

Факультет

ФИО родителей

*

Инв.номер мебели

*

ФИО студента

№ комнаты

*

Год рождения

№ тел.родителей

Место работы

Название мебели

№ происшествия

Дата

Вид

Адрес

Рисунок 1 - Исходное отношение в 1НФ

2.3 Формирование 2НФ

Для перевода отношения из 1НФ в 2НФ исключаются из исходного отношения частичные функциональные зависимости неключевых атрибутов от первичного ключа. В представленном на рисунке 2 отношении в соответствии со схемой функциональных зависимостей присутствуют частичные функциональные зависимости атрибутов «№ комнаты», «Индекс группы», «Год рождения» от атрибута «ФИО студента», «№ комнаты», Название мебели» от атрибута «Инвентарный №», «ФИО студента», «№ телефона», «Место работы» от атрибута «ФИО родителей», «Курс», «Специальность», «Факультет» от атрибута «Индекс группы», «Дата происшествия», «Вид происшествия», «№ комнаты» от атрибута «№ происшествия». Для исключения этой зависимости по правилам декомпозиции исходное отношение R разбивается на шесть отношения R1 («ФИО студента», «Индекс группы», «№ комнаты», «Год рождения»), R2(«№ комнаты»), R3 («Индекс группы», «Курс», «Специальность», «Факультет»), R4(«ФИО родителя», «ФИО студента», «Место работы», «№ телефона»), R5(«Инвентарный №», «Название мебели», «№ комнаты»), R6(«№ происшествия», «Дата происшествия», «Вид происшествия», «№ комнаты»). На рисунке 3 представлена декомпозиция по атрибутам «ФИО студента», «№ комнаты», «ФИО родителя», «№ происшествия»,

«Инвентарный №», «Индекс группы».

Рисунок 3- Схема отношений во 2НФ

2.4 Формирование 3НФ и 3НФБК

Отношение находится в ЗНФ, если оно находится в 2НФ и каждый не ключевой атрибут не транзитивно зависит от первичного ключа. Отношение находится в НФБК, если оно находится в ЗНФ, и в нем отсутствуют зависимости ключей (атрибутов составного ключа) от не ключевых атрибутов.

Атрибут С зависит от атрибута А транзитивно (существует транзитивная функциональная зависимость), если для атрибутов А, В, С выполняются условия АВ и ВС, но обратная зависимость отсутствует

В полученных отношениях R1-R6 существуют частичные зависимости. Для этого требуется исключить их. В отношении R3 атрибут «Факультет», частично зависят от атрибута «Специальность. В результате атрибут «Индекс группа» делится на два отношения R3(«Индекс группы», «Курс», «Специальность») и R7(«Специальность», «Факультет»). В результате схема БД, доведенная до 2НФ выглядит, как представлено на рисунке 4. Так как в полученной схеме отсутствуют транзитивные зависимости, то не будет существовать 3НФ. Более того, поскольку во всех полученных отношениях все функциональные зависимости сводятся к полной нечастичной зависимости от первичного ключа (т. е. отсутствуют зависимости частей составных первичных ключей от неключевых атрибутов) эта схема удовлетворяет всем требованиям НФБК и является конечным результатом концептуального проектирования.

Рисунок 4 - отношение в 3НФ и в НФБК

3Реализация БД

3.1Создание таблиц базы данных в Database Desktop

Database Desktop - это утилита, во многом похожая на Paradox, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links).

Для создания новой таблицы следует выбрать пункт меню File > New > Table. При этом будет предложено выбрать тип создаваемой страницы, по умолчанию предлагается формат Paradox 7. Сразу после подтверждения выбранного типа откроется окно определения структуры таблицы, в котором и производятся все необходимые действия, связанные с созданием и определением параметров таблицы, включая ее поля, индексы, пароли, условия и ограничения на значения и для ссылочной целостности.

Процесс создания таблиц и результаты показаны на рисунке 1.

Рисунок 1 – Database Desktop.

В БД содержится 7 таблици, связанных между собой:

  1. Sudent (Студент);
  2. Komnats(Комнаты);
  3. Proiwestvya (Проишествия);
  4. Roditel (Родитель).
  5. Facultet (Факультет)
  6. Gruppa (Группа)
  7. Mebely (Мебель)

Для создания таблиц использовались типы:

  1. Alpha — строковое поле (A);
  2. Autoincrement – поле счетчик (+);
  3. Short – вещественные числа (S)
  4. Date- дата(D)

Таблица Student (Студент) содержит поля:

  1. FIOst (A)*;
  2. IDgroup(A);
  3. Adress (A);
  4. Komnata(S);
  5. God_rojd(D).

Таблица Facultet (Факультет) содержит поля:

  1. Spec (A)*;
  2. Facultet (A)

Таблица Roditel (Родитель) содержит поля:

  1. FIOrod (A)*;
  2. Mesto_rab (A);
  3. Nomer_tel (A);
  4. FIOst(A);

Таблица Gruppa (Группа) содержит поля:

  1. IDgroup (A)*;
  2. Kurs (S);
  3. Spec (A);

Таблица Komnats (Комнаты) содержит поля:

1. Komnata (S)*;

Таблица Mebely (Мебели) содержит поля:

  1. Invent_nomer (A)*;
    1. Nazv_mebel (A);
    2. Komnata (S);

Таблица Proiwestviya (Проишествия) содержит поля:

  1. Nomer_prois(+);
  2. Vid_prois;
  3. Komnata;


Рисунок 2 – Создание таблицы Student.


Рисунок 3 – Создание таблицы Facultet.


Рисунок 4 – Создание таблицы Roditel.


Рисунок 5 – Создание таблицы Gruppa.

Рисунок 6 – Создание таблицы Komnata.


Рисунок 7 – Создание таблицы Mebely.


Рисунок 8 – Создание таблицы Proiswestvie.

Для создания вторичных индексов используется меню «Secondary Indexes» в выпадающем списке «Table Properties», как показано на рисунке 9.


Рисунок 9 – Создание вторичных индексов.

Для создания связей между таблицами Student, и Komnats используется меню «Referential Integrity» в выпадающем списке «Table Properties» . Далее необходимо нажать кнопку «Define» и в открывшемся окне выбрать слева поле Komnata, а справа нажать по файлу таблицы Komnats.db как показано на рисунке 10.

Рисунок 10 – Создание связи между таблицами Student и Komnats.

Аналогичным образом создаются связи между таблицами Mebely и Komnats по полю «Komnata», Proiwestie и Komnats по полю «Komnata», Student и Gruppa по полю «IDgroup», Roditel и Student по полю «FIOstudent», Facultet и Gruppa по полю «Special». В базе данных используются всего шесть связей.

3.2 Создание псевдонима в BDE Administrator

В Delphi проблема передачи в программу информации о месте нахождения файлов базы данных решается путем использования псевдонима базы данных. Псевдоним (Alias) - это короткое имя, поставленное в соответствие реальному, полному имени каталога базы данных. Такой псевдоним должен быть зарегистрирован в файле конфигурации конкретного компьютера при помощи утилиты BDE Administrator.  

Для доступа к информации программа, обеспечивающая работу с базой данных, подключается библиотека Borland Database Engine (BDE), которая, в свою очередь, использует конфигурационный файл, содержащий информацию обо всех зарегистрированных в системе псевдонимах.

Создается новый псевдоним базы данных. Запускается утилиту BDE Administrator. Выбирается в главном меню элемент Object | New. В появившемся окне (рисунок 16) оставляется тип создаваемой БД без изменений (STANDARD) и нажимается OK. Задается имя псевдонима – Labka.

Рисунок 16 – Результат создания псевдонима

4 Разработка алгоритмов работы программы

Данная программа предназначена для разных пользователей. После запуска программы происходит подключение модулей (блок 2). Вход в БД происходит через главную форму (блок 3). Если вход выполняется в базу «Группы» (блок 4), тогда можно открыть форму «Группы» (блок 5), либо открывается база «Комнаты» (блок 6,7). Если же происходит нажатие кнопки «Добавить» ( блок 8), то осуществляется добавление записи в БД(блок 9).

Если нажата кнопка «Удалить» ( блок 10), то выбранная запись удаляется с БД(блок 11). При нажатии кнопки «Изменить» (блок 12), осуществляется изменение записи в БД (блок 13). Нажатие кнопки «Сохранить» (блок 14), приводит к сохранению записи в БД (блок 15). Если вход выполняется в базу «Все студенты» (блок 16), открывается форма «Все студенты» (блок 17).

Если необходимо посмотреть «Отчет» студентов по группам (блок-схема 18), то формируется отчет (блок 19). После формирования отчета можно вернуться на главную форму (блок20), либо завершить работу программы (блок 21).

Блок-схема данного процесса представлена в приложении Б на рисунке Б.1.

5Разработка приложения пользователя

Разработка приложений баз данных осуществляется посредством использования среды программирования Delphi7.

Главная форма имеет три кнопки управления: “Комнаты”, “Все студенты” и кнопка «Группы». На рисунке 17 представлена главная форма.

Рисунок 17 – Главная форма

Для того чтобы добавить группы, необходимо нажать кнопку «Группы». В этой форме (форма№2) располагается группа компонентов TTable, DataSource, DBGrid1и DBNavigator1.

Для того чтобы посмотреть информацию о всех студентах необходимо нажать на кнопку «Все студенты». Здесь располагается группа компонентов Ttable, Query1, DataSource, DBGrid1и Navigator1, Combobox, Label, TText.

Для Student в свойствах указывается DatabaseName, которая связывает наборы данных с псевдонимом BDE (имя псевдонима lab3) и TableName задается Student.db. Далее активизируется компонент, т.е. Active=True.

Для DataSource в свойствах указывается DataSet= Table1 для связи визуальных компонентов с набором записей.

Компонент DBGrid1 отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям, а строки - записям. По умолчанию пользователь может просматривать и редактировать данные. Компонент DBNavigator1 предоставляет возможность перемещаться по таблице, редактировать, вставлять и удалять записи. Компоненты DBGrid1 и DBNavigator1 связываются со своим источником данных - компонентом DataSourse1 через свои свойства DataSource.

На этой же форме располагаются четыре компоненты BitBtns с измененным свойством Caption: Добавить, Изменить, Сохранить, Удалить, которым соответствуют процедуры с необходимыми функциями Table1.Insert; Table1.Delete; Table1.Edit; Table1.Post. Далее в свойствах VisibleButtons для компонента DBNavigator1 устанавливается значение true для nbInsert, nbDelete, nbEdit, nbPost.

Для настройки внешнего вида компоненты DBGrid1 используется встроенный редактор столбцов Columns Editor, который вызывается двойным щелчком по компоненту DBGrid1, команда Add All Fields контекстного меню, для каждого поля меняется значение на кириллицу.

Для реализации поиска по значениям неиндексированных полей применяется метод Locate. На форме размещаются компоненты Edit1, Label2 и кнопка BitBtn1. Свойство Caption кнопки BitBtn1 устанавливается равным «Поиск». Далее в обработчике события OnClick кнопки BitBtn1 организууется вызов метода Locate. Код обработчика события представлен в листинге программы в приложение Б.

Для реализации сортировки по ФИО студента или комнате, на форме располагаются компоненты ComboBox1 и Lable1. Сортировка производится согласно вторичным индексам FIОst и Komnata. Для ComboBox1 устанавливается свойство Items в соответствии с рисунком 18.

Рисунок 18 – Окно редактора строк

Для реализации фильтрации по группам на форме располагаются компоненты ComboBox1 и Lable1. Для Table1 установлено свойство Filtered=true, для Lable1 установлено свойство Caption=Группа. Для ComboBox1 устанавливается свойство Items в соответствии с рисунком 19.

Рисунок 19 – Окно редактора строк

Аналогичным образом создается новая форма «Комната», «Группа», которые также расположены во второй и третьей форме, и на которой таккже располагаются компоненты Table1, DataSource, DBGrid1и DBNavigator.

Компонент Tablel обеспечивает взаимодействие с таблицей БД. Для связи с требуемой таблицей устанавливается соответствующее значение свойствам DataBaseName, указывающему путь к БД, и TableName, указывающему имя таблицы. После задания таблицы для открытия набора данных свойству Active присваивается значение True.

Изображение формы «Все студенты» представлено на рисунке 20.

Изображение формы «Группы» представлено на рисунке 21.

Рисунок 20 – Форма «Все студенты»


Рисунок 21 – Форма Группы

Создается новая форма (Комнаты), которая расположена в третьей форме. Здесь располагается группа компонентов TTable, DataSource_Student, DBGrid1и DBNavigator1.

Для Table1 в свойствах указывается DatabaseName, которая связывает наборы данных с псевдонимом BDE (имя псевдонима Lab3) и TableName задается Komnats.db. Далее активизируется компонент, т.е. Active=True.

Для DataSource в свойствах указывается DataSet=Table1 для связи визуальных компонентов с набором записей. Изображение формы студенты представлено на рисунке 22.

Рисунок 22 – Форма Студенты

Для связи между таблицами Komnats и Student по ключевому полю используются свойства MasterSource и MasterFields подчиненного набора данных. При этом в свойстве MasterSource подчиненного компонента Table1, который находится на форме «Главная», указывается источник данных Form1.DataSource1, соответствующей главной таблице, на записи которой ссылается подчиненная таблица( в данной базе всего шесть связей). При обращении в инспекторе объектов к свойству MasterFields подчиненного компонента Table1, который находится на форме «Главная», вызывается специальный редактор отношений, изображенный на рисунке 23.

Рисунок 23 – Редактор отношений

На этой же форме применяется поиск методом Lookup. Двойным щелчком мыши на компоненте Table1, командой AddallFields/NewFields появляется окно, представленная на рисунке 25, в котором устанавливаются следующие значения:

- поле Name – имя нового поля(Группа);

-поле Type – тип создаваемого поля (String);

-поле Field type – значение lookup;

-в выпадающем списке KeyFields выбирается ключевое поле (IDgroup);

- в выпадающем списке Dataset выбирается – связываемый набор данных (table6);

- в выпадающем списке Lookup Keys выбирается ключевое поле (IDgroup);

- в выпадающем списке Result Field выбирается просматриваемое поле (IDgroup).

Аналогичным образом создается поиск методом Lookup для других полей.

Рисунок 24 – Окно NewFields

На форме «Все студенты» расположена таблица, которая осуществляется подсчет количества студентов каждой группы. Подсчет производиться при помощи SQL-запроса.

Окно SQL-запроса представлен на рисунке 25

Рисунок25 – Окно SQL запроса

При нажатии на «Отчет» осуществляется переход к новой форме (рисунок 26). На данной форме можно просмотреть студентов для любой группы. Основным компонентом, на котором строится весь отчет, является QuickRep. Он предоставляет ряд возможностей по управлению создаваемым отчетом, включая формирование заголовка.

Компонент QuickRep имеет ряд свойств, определяющих характеристики печати отчета:

- Printer – задает число копий отчета и диапазон печатаемых страниц;

- Page – задает размер страницы;

- Zoom – масштаб печати в процентах.

Рисунок 27 – Форма «Отчет»

Листинг программы представлен в приложении В.

Заключение

Данный курсовой проект является актуальным и отвечает предъявленым к нему требованиям. Была разработана и написана, на языке программирования высокого уровня Borland Delphi 7.0, с использованием баз данных

Программа "Студенческое общежитие", предназначена для коменданта

общежития.

Программа предназначена для ведения базы данных студентов, приехавших с других городов и проживающих в общежитии. В базы можно добавлять и удалять записи, выводить отчет о студентах по группам на печать, в файл или просто просмотреть.

В теоретической части работы было установлено, что в общем случае база данных – это систематизированный набор любых данных. В простейшем случае систематизация строится так, чтобы облегчить поиск требуемых данных.

Список литературы

  1. Базы данных: модели, разработка, реализация/Т.С.Карпова. – СПб.:Питер,2002.
  2. Базы данных: Учебник для ВУЗов/Под ред.проф.А.Д.Хоменко. – СПб.КОРОНА принт,2004.

Приложение А

(обязательное)

Рисунок А.1 – Схема функциональных зависимостей

Приложение Б

(обязательное)

Приложение Б

(продолжение)

Рисунок Б.1 – Общая блок-схема алгоритма работы программы

Приложение В

(обязательное)

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Mask, DBCtrls, DB, ExtCtrls, Grids, DBGrids, DBTables,

Buttons, ComCtrls;

type

TForm1 = class(TForm)

DataSource1: TDataSource;

Table1: TTable;

DBNavigator1: TDBNavigator;

DataSource2: TDataSource;

DataSource3: TDataSource;

Table3: TTable;

Table3Komnata: TSmallintField;

Label5: TLabel;

Label6: TLabel;

Label10: TLabel;

DataSource4: TDataSource;

Table4: TTable;

Table5: TTable;

DBGrid4: TDBGrid;

DataSource5: TDataSource;

Label11: TLabel;

DBGrid7: TDBGrid;

DBNavigator3: TDBNavigator;

Label13: TLabel;

DataSource6: TDataSource;

Table6: TTable;

DBGrid1: TDBGrid;

DBGrid3: TDBGrid;

DBGrid2: TDBGrid;

Table2: TTable;

DBNavigator2: TDBNavigator;

DBNavigator4: TDBNavigator;

DBNavigator5: TDBNavigator;

Table4Invent_nomer: TStringField;

Table4Nazv_meb: TStringField;

Table4Komnata: TSmallintField;

Table1FIOst: TStringField;

Table1IDgroup: TStringField;

Table1Adress: TStringField;

Table1Komnata: TSmallintField;

Table1God_rojd: TDateField;

Table5FIOrod: TStringField;

Table5Nomer_tel: TStringField;

Table5Mesto_rab: TStringField;

Table5FIOst: TStringField;

Table6IDgroup: TStringField;

Приложение В

(продолжение)

Table6Kurs: TSmallintField;

Table6Spec: TStringField;

Table1gruppa: TStringField;

Table5stud: TStringField;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

Label1: TLabel;

DBEdit1: TDBEdit;

Label2: TLabel;

DBLookupComboBox1: TDBLookupComboBox;

Label3: TLabel;

DBEdit2: TDBEdit;

Label4: TLabel;

DBEdit3: TDBEdit;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

BitBtn7: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

form2.ShowModal;

end;

Приложение В

(продолжение)

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

form3.ShowModal;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

form4.ShowModal

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

table1.Insert;

end;

procedure TForm1.BitBtn5Click(Sender: TObject);

begin

table1.Edit;

end;

procedure TForm1.BitBtn7Click(Sender: TObject);

begin

table1.Delete;

end;

procedure TForm1.BitBtn6Click(Sender: TObject);

begin

table1.Post;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, StdCtrls,

Buttons, QRCtrls, QuickRpt;

type

TForm2 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Table1: TTable;

BitBtn1: TBitBtn;

ComboBox1: TComboBox;

Edit1: TEdit;

ComboBox2: TComboBox;

Приложение В

(продолжение)

Label1: TLabel;

Label2: TLabel;

DataSource2: TDataSource;

DBGrid3: TDBGrid;

LabelKol: TLabel;

Query1: TQuery;

Query1kurs: TSmallintField;

Query1COUNTOFFIOst: TIntegerField;

QuickRep1: TQuickRep;

TitleBand1: TQRBand;

ColumnHeaderBand1: TQRBand;

DetailBand1: TQRBand;

QRLabel1: TQRLabel;

BitBtn2: TBitBtn;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRDBText4: TQRDBText;

QRLabel5: TQRLabel;

QRDBText5: TQRDBText;

QRLabel6: TQRLabel;

procedure BitBtn1Click(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

table1.Locate('FIOst',edit1.Text,[loCaseInsensitive,loPartialKey])

end;

Приложение В

(продолжение)

procedure TForm2.ComboBox1Change(Sender: TObject);

var

i:string;

begin

if combobox1.ItemIndex=0 then form2.Table1.Filter:=''

else form2.Table1.Filter:='IDgroup='+QuotedStr(combobox1.Text);

i:=QuotedStr(combobox1.Text);

end;

procedure TForm2.ComboBox2Change(Sender: TObject);

begin

if ComboBox2.ItemIndex=0 then table1.IndexName:=''

else table1.IndexName:='Komnata' ;

end;

procedure TForm2.BitBtn2Click(Sender: TObject);

begin

quickrep1.Preview;

end;

end.

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids;

type

TForm3 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Table1: TTable;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

end.

Приложение В

(продолжение)

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls,

Buttons;

type

TForm4 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Table1: TTable;

Table2: TTable;

DBGrid2: TDBGrid;

DBNavigator2: TDBNavigator;

DataSource2: TDataSource;

Table1IDgroup: TStringField;

Table1Kurs: TSmallintField;

Table1Spec: TStringField;

Table1special: TStringField;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

end.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(национальный исследовательский университет)»

Кафедра ВТ

«УТВЕРЖДАЮ»

Ст.преподаватель_________ Пак В.В.

«___»____________ 2012 г.

КУРСОВОЙ ПРОЕКТ

на тему: __________________________________

по дисциплине: База данных

Студент гр. ДВМ 3-63__________ Бибулатов А.С.

«____»____________2012 г.

Байконур 2012 г.

PAGE \* MERGEFORMAT 3

Создание информационного банка данных