Содержание
Введение
. Системный анализ предметной области
. Разработка концептуальной модели БД
2.1 Построение схемы функциональных зависимостей
2.2 Формирование формы 1НФ
2.3 Формирование 2НФ
2.4 Формирование 3НФ и 3НФБК
. Реализация БД
3.1 Создание таблиц базы данных в Database Desktop
3.2 Создание псевдонима в BDE Administrator
. Разработка алгоритма работы программы
. Разработка приложения пользователя
Заключение
Список использованной литературы
Приложения
Приложение А
Приложение Б
Приложение
В
Введение
В наше время информация играет ключевую роль в любой области жизнедеятельности человека. Цель исследований курсового проекта состоит в разработке информационного банка данных, который поможет любому пользователю легко найти нужную информацию о любом студенте вуза. Разработанный проект демонстрирует то, как работу с данными можно сделать удобной и интересной, используя базу данных. Программа является очень актуальной на сегодняшний день, она автоматизирует работу с базой данных любого вуза и предоставляет пользователю (оператору) понятный и дружественный интерфейс.
Мощность информационного банка данных
обусловлена возможностью его постоянного пополнения новыми данными, причем в
неограниченном количестве информации. Это является очень удобным для пользователя.
Таким образом, создание информационного банка данных, обладающего такими
свойствами, задача достаточно актуальная и полезная.
1.
Системный анализ предметной области
Требуется разработать БД, обеспечивающую автоматизацию процессов ведения и распространения информации о студентах, проживающих в общежитии (ВУЗа). Cтуденты, проживающие в общежитии, при поступлении заполняют необходимые документы (анкету). Потребителем информации из БД являются комендант, обеспечивающий проживание приезжих студентов.
Для внесения входной информации созданы семь базы данных: база студентов, групп, происшествии, комнат, мебелей, факультетов.
Входная информация поступает в БД виде:
Информация о самих студентах;
Информация о месте проживания(комната) ;
Информация о родителях;
Инвентарные номера мебелей;
сведений о нарушении дисциплины в общежитии (сведения о студентах, проживающих в этой комнате, дата происшествия и т. д.).
На выходе пользователи системы получают информацию в виде:
сортированный список студентов общежития, курс, факультет и т.д. ;
№ комнаты с прикрепленными мебелями, с инвентарными номерами;
информация о нарушении дисциплины с описанием, № комнаты и дата;
информация о родителях (контактные данные), в случаях ЧС;
количество студентов общежития по группам;
Основными требованиями к функциям БД общежития (информация о студентах) могут считаться следующие:
получить список студентов в определенной комнате;
контролировать количество и дату происшествии в комнатах;
ФИО студентов, ответственные за определенные мебели;
список студентов по группам;
получить количество студентов по группам.
Каждый студент ВУЗа проходит обучение в одной из нескольких учебных групп, каждая из которых объединяет студентов одной специальности. Специальности, по которым ВУЗ обеспечивает подготовку специалистов, объединяются в факультеты, причем на разных факультетах специальности не повторяются. Каждая группа характеризуется следующими параметрами:
индекс группы;
номер курса;
специальность;
факультет
У каждого студента есть родители, следовательно необходимо внести в БД следующие информации:
фамилия, имя, отчество родителей;
номера телефонов(мобильный, рабочий);
место работы;
В комнатах общежития, часто происходят происшествия (драка, употребление спиртного, шум среди ночи и т.д.). Для учета таких происшествии в БД вносятся такие данные как:
Дата происшествия;
Вид происшествия;
Комната;
Также в каждой комнате имеются мебели (кровать, вентилятор, стол, стулья и т.д.). Каждая мебель имеет свой индивидуальный инвентарный номер и в никакой другой комнате номер не повторяется. Для получения списка мебелей в комнате необходимы:
Инвентарный номер;
Название мебели;
Номер комнаты;
2. Разработка
концептуальной модели БД
.1 Построение схемы функциональных зависимостей
На основе проведенного анализа предметной области строится схема функциональных зависимостей, включающая в себя все атрибуты, определенные на предыдущем этапе, и зависимости объединяющие их.
Схема, представленная в приложении А на рисунке А.1 содержит в себе следующие атрибуты:
«Индекс группы»;
«Специальность»;
«Номер курса»;
«Факультет»;
«ФИО студента»;
«ФИО родителей»;
«Инвентарный номер мебели»;
«Название мебели»;
«Место работы родителей»;
«Нарушения в комнате»;
«Дата нарушения».
Из приведенной схемы видно, что атрибуты «индекс гр», «№ комнаты» и «год рож.» функционально зависят от атрибута «ФИО студента». Действительно, если учесть, что значения атрибута «ФИО студента» никогда не повторяются, а студент может относиться только к одной из групп, проживать только по одному адресу и иметь только один год рождения, то значения любого из зависимых атрибутов однозначно определяется по «ФИО студента».
Аналогично атрибуты «Специальность» и «Номер курса» функционально зависят от атрибута «Индекс группы», т. к. каждая группа, однозначно идентифицируемая по ее индексу, может обучаться только на каком-то одном курсе и относиться только к одной из специальностей.
В свою очередь, атрибут «Факультет» зависит от атрибута «Специальность», т. к. не существует специальностей, повторяющихся на различных факультетах. Т. е. каждому значению атрибута «Специальность» всегда соответствует только одно значение атрибута «Факультет».
Атрибуты « номер комнаты» и «название мебели». функционально зависит от атрибута «инвентарного номера мебели». Это объясняется следующим. Инвентарный номер мебели уникален, следовательно один и тот же инвентарный номер может быть прикреплен только в одной комнате. Так же один и тот же предмет может иметь только один инвентарный номер.
От ФИО родителей завист ФИО студентов, а место
работы и телфоны родителей функционально зависят от ФИО родителей,
следовательно и адрес зависит от родителей.
.2Формирование формы 1НФ
Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение). Исходное отношение строится из всех выделенных атрибутов, выделенных в предметной области (рисунок 1).
Первичным ключом исходного отношения является
совокупность атрибутов «ФИО родителей», «№ комнаты» и «Инв.номер мебели», так
как значения именно этих атрибутов в сочетании друг с другом являются
уникальными и никогда в приведенном отношении повторяться не будут.
|
Индекс группы |
|
|
Специальность |
|
|
Курс |
|
|
Факультет |
|
|
ФИО родителей |
* |
|
Инв.номер мебели |
* |
|
ФИО студента |
|
|
№ комнаты |
* |
|
Год рождения |
|
|
№ тел.родителей |
|
|
Место работы |
|
|
Название мебели |
|
|
№ происшествия |
|
|
Дата |
|
|
Вид |
|
|
Адрес |
|
Рисунок 1 - Исходное отношение в 1НФ
.3 Формирование 2НФ
Для перевода отношения из 1НФ в 2НФ исключаются из исходного отношения частичные функциональные зависимости неключевых атрибутов
от первичного ключа. В представленном на рисунке 2 отношении в соответствии со схемой функциональных зависимостей присутствуют частичные функциональные зависимости атрибутов «№ комнаты»,
«Индекс группы», «Год рождения» от атрибута «ФИО
студента», «№ комнаты», Название мебели» от атрибута «Инвентарный №», «ФИО
студента», «№ телефона», «Место работы» от атрибута «ФИО родителей», «Курс»,
«Специальность», «Факультет» от атрибута «Индекс группы», «Дата происшествия»,
«Вид происшествия», «№ комнаты» от атрибута «№ происшествия». Для исключения
этой зависимости по правилам декомпозиции исходное отношение R разбивается на
шесть отношения R1 («ФИО студента», «Индекс группы», «№ комнаты», «Год
рождения»), R2(«№ комнаты»), R3 («Индекс группы», «Курс», «Специальность»,
«Факультет»), R4(«ФИО родителя», «ФИО студента», «Место работы», «№ телефона»),
R5(«Инвентарный №», «Название мебели», «№ комнаты»), R6(«№ происшествия», «Дата
происшествия», «Вид происшествия», «№ комнаты»). На рисунке 3 представлена
декомпозиция по атрибутам «ФИО студента», «№ комнаты», «ФИО родителя», «№
происшествия», «Инвентарный №», «Индекс группы».
Рисунок 3- Схема отношений во 2НФ
.4 Формирование 3НФ и 3НФБК
Отношение находится в ЗНФ, если оно находится в 2НФ и каждый не ключевой атрибут не транзитивно зависит от первичного ключа. Отношение находится в НФБК, если оно находится в ЗНФ, и в нем отсутствуют зависимости ключей (атрибутов составного ключа) от не ключевых атрибутов.
Атрибут С зависит от атрибута А транзитивно (существует транзитивная функциональная зависимость), если для атрибутов А, В, С выполняются условия А→В и В→С, но обратная зависимость отсутствует
В полученных отношениях R1-R6 существуют
частичные зависимости. Для этого требуется исключить их. В отношении R3 атрибут
«Факультет», частично зависят от атрибута «Специальность. В результате атрибут
«Индекс группа» делится на два отношения R3(«Индекс группы», «Курс»,
«Специальность») и R7(«Специальность», «Факультет»). В результате схема БД,
доведенная до 2НФ выглядит, как представлено на рисунке 4. Так как в полученной
схеме отсутствуют транзитивные зависимости, то не будет существовать 3НФ. Более
того, поскольку во всех полученных отношениях все функциональные зависимости
сводятся к полной нечастичной зависимости от первичного ключа (т. е.
отсутствуют зависимости частей составных первичных ключей от неключевых
атрибутов) эта схема удовлетворяет всем требованиям НФБК и является конечным
результатом концептуального проектирования.
Рисунок 4 - отношение в 3НФ и в НФБК
3.Реализация
БД
3.1Создание таблиц базы данных в Database Desktop
Desktop - это утилита, во многом похожая на Paradox, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links).
Для создания новой таблицы следует выбрать пункт меню File > New > Table. При этом будет предложено выбрать тип создаваемой страницы, по умолчанию предлагается формат Paradox 7. Сразу после подтверждения выбранного типа откроется окно определения структуры таблицы, в котором и производятся все необходимые действия, связанные с созданием и определением параметров таблицы, включая ее поля, индексы, пароли, условия и ограничения на значения и для ссылочной целостности.
Процесс создания таблиц и результаты показаны на
рисунке 1.
Рисунок 1 - Database Desktop.
В БД содержится 7 таблиц, связанных между собой: (Студент);(Комнаты);(Проишествия);(Родитель).(Факультет)(Группа)(Мебель)
Для создания таблиц использовались типы:- строковое поле (A);- поле счетчик (+);- вещественные числа (S)дата(D)
Таблица Student (Студент) содержит поля:
FIOst (A)*;(A);(A);(S);_rojd(D).
Таблица Facultet (Факультет) содержит поля:(A)*;(A)
Таблица Roditel (Родитель) содержит поля:
FIOrod (A)*;_rab (A);_tel (A);(A);
Таблица Gruppa (Группа) содержит поля:
IDgroup (A)*;(S);(A);
Таблица Komnats (Комнаты) содержит поля:
. Komnata (S)*;
Таблица Mebely (Мебели) содержит поля:
Invent_nomer (A)*;_mebel (A);
Komnata (S);
Таблица Proiwestviya (Проишествия) содержит поля:
Nomer_prois(+);_prois;;
Рисунок 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).