Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛБ(ПРИС)_Файл-сервер_2016.doc
Скачиваний:
5
Добавлен:
17.06.2023
Размер:
5.49 Mб
Скачать

Методические указания к выполнению лабораторных работ по дисциплине

Проектирование информационных систем

СОДЕРЖАНИЕ

Примечания:

1. При проектировании используйте примеры программного кода непосредственно из исходных текстов программ, а не из методических описаний (*.Doc файла)

2. Имена отдельным модулям лучше давать по их функциональности, а не оставлять так как они даются по умолчанию (Unit1.Pas, Unit2.Pas и т.Д.)

3. При возникновении каких-либо ошибок в процессе выполнения работы проверьте по исходному примеру, все ли модули подключены в разделах interface и implementation, подразделе uses.

  1. Теоретическое введение

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

Предлагается разработать простейшую ИС по архитектуре файл-сервер. При этом в качестве базы данных (БД) предлагается использовать таблицы MS Access, а разработку клиентского приложения-обработчика БД провести используя среду программирования Delphi .

ИС должна обеспечивать:

- ввод, удаление и редактирование той или иной информации, с возможностью автоматизации (подстановок из других таблиц, фиксированных наборов данных и т.д.) и входного контроля от некорректных действий;

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

- резервное копирование информационных баз по желанию пользователя;

- осуществлять поиск и сортировку по разнообразным признакам;

- создавать простейшие отчеты.

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

  1. Создание структуры таблиц бд

Имеются следующие данные:

Сотрудники (Фамилия, Имя, Отчество, Дата рождения, Фото);

Должность (Наименование должности);

Основное Хобби (Наименование хобби).

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

Необходимо создать новую базу в формате MS Access 2003. Если используется СУБД MS Access 2007, то следует создать новую базу в формате MS Access 2007 и преобразовать её в формат MS Access 2003 (*.mdb). Создаём 4 таблицы с указанными выше данными и устанавливаем между ними связи, как показано на рисунке 1.

Таким образом, схема БД должна иметь вид, представленный на рисунке 1.

Рисунок 1 – Схема данных в MS Access

Рассмотрим подробнее некоторые поля созданных таблиц.

Поле EDIT, содержащееся в каждой таблице и представляющее собой логический тип (с форматом Истина/Ложь), необходимо для многопользовательского режима. Точное назначение и применение этого поля будет описано в соответствующем разделе.

Таблицы HOBBY и DOLGNOST помимо ключевых полей содержат также поля H_Name и D_NAME, представляющие собой наименования хобби и должности соответственно. Эти поля являются текстовыми с размерами 15 знаков каждое.

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

Рассмотрим таблицу SOTR (S_IDключевое поле типа счетчик). Поля S_Fam, S_Name, S_Otchтекстовые с размером 20, 15 и 20 знаков соответственно.

Поле S_DateBirth представляет тип дата/время. Поле S_D_ID представляет собой должность сотрудника и является связанным полем с таблицей DOLGNOST (т.е. содержит код записи этой таблицы, а значит, является числовым).

Рассмотрим логику работы с графическими файлами.

Каждый раз при загрузке нового файла (в данном примере фотографии сотрудника) создается копия этого графического файла с новым именем, содержащим код сотрудника и имеющим степень точности, равную 9. Например, если мы загружаем фотографию для сотрудника с кодом записи 76, то новый созданный графический файл будет иметь имя 000000076.

Этот новый графический файл помещается в специально созданную для таких файлов папку (в данном примере PIC). При каждом обращении к записи, происходит считывание графического файла, месторасположение которого жестко задано в этой папке и имя которого легко найти по коду записи. Но для чтения файла необходимо также знать его расширение – эту информацию мы и будем хранить в самой базе данных.

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

Таким образом, поле Photo содержит расширение графических файлов (например, .jpg), поэтому его следует сделать текстовым (размер поля желательно сделать меньше размера поля по умолчанию, т.к. очевидно количество знаков, необходимых для содержания расширения, намного меньше 50).

Рассмотрим таблицу HOBBY_SOTR. Данная таблица служит для обеспечения связи многие ко многим между сущностями «сотрудники» и «хобби». В ней хранятся записи соответствия между сотрудниками и их хобби. Для того чтобы при удалении данных база не засорялась лишней устаревшей информацией, следует обеспечить целостность данных в базе. Так, например, при удалении какого-либо хобби должны удаляться все записи соответствия между удалённым хобби и сотрудниками. То же самое в случае удаления записи из таблицы сотрудников. Конечно, целостность данных можно отслеживать и в клиентском приложении, однако гораздо удобнее сразу задать в базе. Пример установления целостности данных показан на рисунке 1.

Таким образом, поля S_ID и H_ID таблицы HOBBY_SOTR содержат коды записей таблиц SOTR и HOBBY соответственно, т.е. являются числовыми.

Созданную базу данных поместите в отдельную папку DB, в которой потом также будут папки с картинками и иконками.

  1. Разработка клиентского приложения обработки БД

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

3.1 Разработка главной формы программы

Главная форма – это та форма, которую пользователь видит первую при запуске приложения. Как правило, она содержит главное меню. Итак, при создании нового проекта автоматически появится форма, переименуем её в MainForm (свойство Name), и установим заголовок ИС Сотрудники (свойство Caption).

Для сохранения приложения необходимо создать отдельную папку (в которую поместить также папку DB), далее Файл→Сохранить проект как→выбрать созданную папку, дать осмысленные имена модулям и формам.

3.2 Разработка главного меню

На главную форму переместим компонент MainMenu с вкладки Standart палитры компонентов. Двойным щелчком по этому компоненту открываем редактор главного меню, и создаём необходимые пункты как показано на рисунке 2.

Рисунок 2 – Редактор главного меню

Кроме того, подпунктам меню следует давать осмысленные имена, как представлено на рисунке 3.

Например, для пункта меню «Файл» в свойстве Caption нужно прописать название пункта меню на русском языке (т.е. Файл), а в свойстве Name указать это же имя латинскими буквами (т.е. FileN), это имя будет в дальнейшем использовано в программном коде. Аналогично задаются названия и имена для всех пунктов меню.

Рисунок 3 – структура главного меню

В результате в верхней части окна появится главное меню.

При желании использовать разделительную черту в пунктах меню (как показано на рисунке 4), необходимо в свойстве Caption того или иного подпункта вставить обычный минус (“-”).

Рисунок 4 – Использование разделительной черты в пунктах главного меню

При желании использовать пиктограммы совместно с пунктами меню (как показано на рисунке 5), необходимо выбрать пиктограмму (*.bmp) и загрузить ее в свойство Bitmap того или иного пункта меню. Наборы всевозможных иконок можно поискать на Вашем ПК (возможно в папках DB/ico и DB/new_ico), которые необходимо пересохранить с расширением *.bmp.

Рисунок 5 – Использование пиктограммы в пунктах меню