В современном информационном мире ценность быстрых и точных данных сложно переоценить. Однако, когда речь заходит о поиске сведений о городских предприятиях, мы часто сталкиваемся с устаревшими и неэффективными методами, такими как бумажные справочники или разрозненные буклеты. Ручной поиск в таких источниках не только трудоемок, но и не гарантирует актуальности информации. Возникает очевидная потребность в создании единой, централизованной базы данных, доступ к которой был бы простым и удобным. Целью данной курсовой работы является разработка программного продукта — «Справочника предприятий», — который эффективно решает эту проблему, предоставляя пользователю мощный инструмент для хранения и поиска информации.
Раздел 1. Анализ задачи и выбор технологического стека
Для успешной реализации проекта необходимо было сформулировать четкие требования к будущей системе. Ключевыми требованиями стали:
- Возможность надежного хранения структурированных данных о компаниях, их сотрудниках и услугах.
- Наличие интуитивно понятного пользовательского интерфейса для ввода, редактирования и просмотра информации.
- Реализация функции быстрого поиска и гибкой фильтрации данных по различным критериям.
- Способность генерировать и выводить на печать структурированные отчеты.
На основе этих требований был выбран технологический стек. В качестве среды разработки была выбрана Delphi 7. Этот выбор обусловлен ее преимуществами в быстрой разработке графического пользовательского интерфейса (GUI) и наличием мощных встроенных компонентов для работы с базами данных, в частности, набора компонентов ADO (ActiveX Data Objects), который обеспечивает простое и стабильное соединение с различными источниками данных.
В качестве системы управления базами данных (СУБД) была выбрана MS Access. Для проекта такого масштаба ее возможностей более чем достаточно. MS Access проста в настройке, не требует развертывания отдельного сервера и легко интегрируется с приложениями Delphi, что делает ее идеальным выбором для студенческого курсового проекта.
Раздел 2. Проектирование архитектуры базы данных
Фундаментом любого информационного приложения является грамотно спроектированная база данных. Процесс проектирования был разделен на два этапа: инфологическое и даталогическое проектирование.
На этапе инфологического проектирования были определены ключевые сущности предметной области. Ими стали:
- Компании: Основная сущность, хранящая общую информацию о предприятии.
- Сотрудники: Сущность для хранения данных о контактных лицах или ключевых работниках компаний.
- Услуги: Сущность для описания видов деятельности или услуг, предоставляемых компаниями.
На этапе даталогического проектирования для каждой сущности был определен набор атрибутов (полей) и установлены связи между ними. Например, для сущности «Компании» были созданы поля: CompanyID
(уникальный идентификатор), CompanyName
(название), Phone
(телефон), Address
(адрес) и другие. Для обеспечения целостности данных были использованы первичные ключи (CompanyID
) в каждой таблице. Связи между таблицами, например, между «Компаниями» и «Сотрудниками», реализуются с помощью внешних ключей, что позволяет однозначно определить, к какой компании относится тот или иной сотрудник.
Раздел 3. Создание ER-диаграммы и процесс нормализации
Для наглядного представления логической структуры базы данных была построена ER-диаграмма (диаграмма «сущность-связь»). Эта диаграмма визуально отображает таблицы «Компании», «Сотрудники» и «Услуги» и показывает отношения между ними, что значительно упрощает понимание архитектуры данных.
После создания логической модели был выполнен процесс нормализации — приведение структуры базы данных к требованиям нормальных форм. Это ключевой шаг, позволяющий устранить избыточность хранения информации и избежать потенциальных аномалий при обновлении, добавлении или удалении данных. В рамках проекта схема была последовательно приведена к трем основным нормальным формам:
- Первая нормальная форма (1НФ): Исключены все повторяющиеся группы и многозначные атрибуты. Все поля стали атомарными.
- Вторая нормальная форма (2НФ): Устранены частичные функциональные зависимости от составного первичного ключа.
- Третья нормальная форма (3НФ): Ликвидированы транзитивные зависимости, то есть неключевые поля стали зависеть только от первичного ключа.
Применение нормализации позволило создать эффективную, надежную и масштабируемую структуру базы данных.
Раздел 4. Настройка СУБД MS Access и подключение к Delphi
Физическая реализация базы данных началась с создания файла .mdb
в MS Access. В соответствии с разработанной на предыдущем этапе схемой, в этом файле были созданы таблицы «Компании», «Сотрудники» и «Услуги». Особое внимание было уделено настройке типов данных для каждого поля. Для первичных ключей (например, CompanyID
) был использован тип данных «Счетчик» (AutoNumber), который автоматически присваивает уникальное инкрементное значение каждой новой записи.
Следующим шагом стала настройка соединения между приложением Delphi и созданной базой данных. Этот процесс был реализован с помощью компонентов технологии ADO:
- TADOConnection: Компонент, отвечающий за установку и управление соединением. В его свойствах была прописана строка подключения к файлу базы данных MS Access.
- TADOTable: Компонент, который представляет одну из таблиц базы данных (например, «Компании») и позволяет выполнять над ней операции чтения и записи данных.
После корректной настройки этих компонентов приложение получило возможность напрямую взаимодействовать с данными, хранящимися в СУБД.
Раздел 5. Разработка пользовательского интерфейса для ввода и редактирования данных
Удобный и интуитивно понятный интерфейс — залог успешного взаимодействия пользователя с программой. Главная форма приложения была спроектирована с учетом принципов эргономики и четкой навигации. Для отображения и манипулирования данными были использованы стандартные компоненты Delphi, предназначенные для работы с базами данных:
- TDBGrid: Ключевой компонент, отображающий данные из таблицы в виде сетки (таблицы). Он позволяет просматривать сразу несколько записей и является основным элементом навигации.
- TDBEdit: Набор полей для ввода, привязанных напрямую к соответствующим полям в базе данных. Они отображают данные текущей выбранной записи и позволяют их редактировать.
- TDBNavigator: Стандартная панель навигации, которая предоставляет пользователю кнопки для выполнения основных операций: добавление новой записи, удаление текущей, редактирование, сохранение и отмена изменений.
Все эти визуальные компоненты были связаны с источником данных (компонентом TDataSource
), который, в свою очередь, был подключен к TADOTable
. Такая архитектура позволяет Delphi автоматически синхронизировать отображаемые на форме данные с содержимым базы данных, значительно упрощая логику добавления, изменения и удаления записей. Главной задачей было сделать этот процесс максимально прозрачным для конечного пользователя.
Раздел 6. Реализация модуля поиска и фильтрации информации
Одной из самых востребованных функций справочника является быстрый и удобный поиск. Для этой цели была разработана отдельная панель на главной форме, позволяющая пользователю осуществлять фильтрацию данных по нескольким ключевым полям, таким как название компании, отрасль или контактное лицо.
Механизм поиска основан на динамическом формировании SQL-запросов в коде Delphi. Когда пользователь вводит текст в поле поиска и нажимает кнопку, программа генерирует SQL-запрос с использованием оператора WHERE
. Для поиска по частичному совпадению используется оператор LIKE
, который позволяет находить записи, даже если введено неполное название. Например, запрос может выглядеть так:
SELECT * FROM Companies WHERE CompanyName LIKE '%Строй%'
Этот запрос найдет все компании, в названии которых встречается «Строй». Программа динамически конструирует такие запросы, добавляя условия для всех заполненных полей поиска, и применяет полученный фильтр к набору данных. В результате в таблице TDBGrid
отображаются только те записи, которые удовлетворяют критериям пользователя, что делает поиск мощным и гибким.
Раздел 7. Создание системы генерации отчетов
Для предоставления пользователю возможности выводить информацию на печать или сохранять ее в виде документа был разработан модуль генерации отчетов. Назначение этого модуля — формировать структурированные документы на основе данных из базы. Например, пользователь может сгенерировать полный список всех компаний в справочнике или распечатать подробную карточку одной выбранной фирмы со всеми ее контактными данными.
Для реализации этой функции в Delphi были использованы встроенные средства, такие как компонент QuickReport. Процесс генерации отчета включает несколько шагов:
- Подготовка данных: Формируется специальный SQL-запрос для выборки информации, которая должна попасть в отчет.
- Создание шаблона отчета: В визуальном редакторе создается макет отчета, где размещаются поля для вывода данных, заголовки и другие элементы оформления.
- Передача данных в шаблон: Набор данных, полученный на первом шаге, передается в подготовленный шаблон отчета.
- Вывод: Компонент QuickReport генерирует готовый документ, который можно сначала просмотреть на экране, а затем отправить на печать.
Раздел 8. Внедрение валидации данных и обработки ошибок
Для обеспечения целостности данных и стабильной работы приложения был реализован механизм валидации и обработки исключительных ситуаций. Валидация данных — это проверка вводимой пользователем информации на корректность перед сохранением в базу данных. Например, при вводе номера телефона или адреса электронной почты программа может выполнять простые проверки, чтобы убедиться, что формат данных соответствует ожидаемому. Это помогает избежать попадания в базу «мусорных» данных.
Не менее важной является обработка ошибок. Любая операция с базой данных, например, попытка подключения или сохранения записи, может завершиться неудачно по разным причинам (файл БД удален, нет доступа и т.д.). Чтобы программа не «падала» с критической ошибкой в таких ситуациях, все опасные операции были обернуты в блоки try-except
. Этот механизм позволяет перехватить исключительную ситуацию, корректно обработать ее и вывести пользователю осмысленное сообщение об ошибке, сохранив при этом работоспособность приложения.
В результате проделанной работы была успешно достигнута цель, поставленная во введении. Был разработан программный продукт «Справочник предприятий», полностью отвечающий заявленным требованиям. В ходе проекта была спроектирована и нормализована структура базы данных, разработан удобный пользовательский интерфейс для управления данными, а также реализован ключевой функционал: ввод и редактирование записей, гибкий поиск информации и генерация отчетов. Созданное приложение является законченным решением для автоматизации хранения и обработки информации о городских организациях. Возможными направлениями для дальнейшего развития проекта могут стать расширение функционала, например, добавление модуля для работы с услугами, или создание веб-интерфейса для удаленного доступа к справочнику.
Список использованной литературы
- Бойко В. В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 2006.
- Никита Культин — Delphi 6. Программирование на Object Pascal. — М.: Мир. 2005
- Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ. – М.: Мир. 2007.
- Документация по Delphi 6.
- Материалы сайта «Сервер информационных технологий» WEB: www.citforum.ru
- Материалы сайта «Мастера Delphi» WEB: www.delphimaster.ru