Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4 семестр / Болтушкин Л.С., группа 712-2, лабораторная 3

.docx
Скачиваний:
1
Добавлен:
04.10.2024
Размер:
597.26 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОННИКИ (ТУСУР)

Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)

СОЗДАНИЕ ПРИЛОЖЕНИЯ ДЛЯ РАБОТЫ СО СВЯЗАННЫМИ ТАБЛИЦАМИ БАЗЫ ДАННЫХ

Отчет по лабораторной работе №3

по дисциплине «Безопасность систем баз данных»

Студент гр. 712-2 ___________ Л.С. Болтушкин __________

Руководитель Преподаватель кафедры КИБЭВС

_______ __________ З.М. Медведев

__________

Томск 2024

Введение

Целью данной лабораторной работы является изучение основных особенностей создания приложения для работы со связанными таблицами баз данных в Microsoft Visual Studio для своей предметной области.

Разрабатываемое приложение предназначено для работы с базой данных для соревнований по футболу.

Структура базы данных, для соревнований по футболу приведена на рисунке 1.

Рисунок 1 – Структура базы данных

В БД для соревнований по футболу была установлена ссылочная целостность, для которой характерно:

- первичный ключ (PK) таблицы должен содержать уникальные непустые значения для данной таблицы;

- внешний ключ (FK) потомка должен содержать только те значения, которые уже имеются среди значений PRIMART KEY родителя (или колонок UNIQUE родителя);

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

- нельзя изменить значение в PK (UNIQUE) родителя, имеющем хотя бы один связанный с ним экземпляр потомка. Можно установить механизм каскадного обновления, при котором изменяется PK (UNIQUE) родителя и значения FK связанных экземпляров потомка.

Ограничение FOREIGN KEY может содержать пустые значения (значения NULL). Кроме того, тип данных и размер колонки или колонок внешнего ключа должны совпадать с ссылочной колонкой или колонками.

1 Ход работы

1.1. Связь М:1 между Главный тренер и Команда в приложении

Как было сказано ранее, в БД «Соревнования по футболу» таблица Главный тренер связана с таблицей Команда связью М:1. В данной форме мы совместили 2 формы – Главный тренер и команда.

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

Рисунок 1.1.1 – Источники данных

Выбрав для тренера форму представления данных Details получим следующую форму, изображенная на рисунке 1.1.2.

Рисунок 1.1.2 – Форма Главный тренер

Выбрав элемент groupBox для Команды и перенесем его на groupBoxTeam в результате получится следующая форма:

Рисунок 1.1.3 – Объединенная форма «Главный тренер» и «Команда»

Для реализации шаблона проектирования «одиночка» в коде формы FormTeam пропишем следующий код, который представлен на рисунке 1.1.4.

Рисунок 1.1.4 – Шаблон «одиночка»

И после этого на главной форме для пункта Главный тренер пропишем дополнительную строчку кода: FormTeam.fs.ShowForm();

Запускаем программу и можем увидеть появившеюся возможность, представленная на рисунке 1.1.5.

Рисунок 1.1.5 – Запущенная форма

Теперь в таблице Главный тренер показывается, к какой команде он привязан.

1.2 Обработка исключений в приложения

Ошибки, вызываемые компьютерной программой, могут быть разделены на три основных типа:

- Design-time (во время проектирования) – возникают при написании кода, который не удовлетворяет правилам того языка, на котором он пишется.

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

- Logic (логические) – не оказывают никакого влияния на работоспособность приложения. Наличие в программе логических ошибок означает лишь то, что могут быть неверные результаты от работы программы.

Например, ошибки в вычислениях и др.

Исключение (exception) – это реакция на ошибку, сгенерированную приложением.

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

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

Чтобы их обработать, можно использовать различные конструкции, например, конструкцию try…catch

Если в блоке try генерируется исключение, то программа автоматически переходит в блок catch. Если никаких исключений не генерируется, то программа пропускает блок catch (рисунок 1.2.1).

Рисунок 1.2.1 – try…catch

На рисунке 1.2.2 представлена возможная ошибка.

Рисунок 1.2.2 – Несуществующее ID

Аналогичные сообщения об ошибке будут отображаться и при других ошибках.

1.3 Поиск, фильтрация данных

Для удобства пользователей в приложении необходимо предусматривать поиск/фильтрацию необходимых данных. Поиск и фильтрацию данных можно осуществить различными способами. Например, написание SQL-запросов (см. лабораторную работу №4), использование метода Find (BindingSource.Find), свойства Filter (BindingSource.Filter) и др. Рассмотрим, как например, можно реализовать поиск/фильтрацию с использованием метода Find, свойства Filter.

Метод BindingSource.Find – данный метод позволяет найти нужный элемент в источнике данных. В данном методе возможны варианты:

Find(PropertyDescriptor, Object) – поиск индекса элемента по дескриптору и ключу.

Синтаксис:

public virtual int Find(PropertyDescriptor prop, Object key)

Где параметры:

prop (PropertyDescriptor): тип

System.ComponentModel.PropertyDescriptor, определяет дескриптор для поиска;

key (Object): тип System.Object - искомое значение (ключ).

Возвращаемое значение: тип System .Int32 - индекс найденного элемента (начинается с нуля). Значение - 1, если элемент не найден. Этот метод обычно используется, чтобы найти первую строку, в которой значение поля,

заданного дескриптором, равно значению параметра ключа.

Find(String, Object) - поиск индекса элемента по имени и значению.

Синтаксис: public int Find(string propertyName, Object key)

Где параметры:

propertyName: тип System.String - имя свойства для поиска; key: тип System.Object - искомое значение (ключ).

Возвращаемое значение: тип System .Int32 - индекс найденного элемента (начинается с нуля). Значение -1, если элемент не найден.

Свойство BindingSource.Filter

Данное свойство задает выражение, используемое для фильтрации

строк.

Тип для данного свойства: System .String - строка, которая определяет, как строки необходимо фильтровать.

Для формирования значение фильтра необходимо указать имя столбца,

затем оператор и значения для фильтра.

Если основной источник данных DataSet, DataTable или DataView,

можно указать логические выражения с помощью синтаксиса свойства

DataColumn .Expression.

Окно команды представлено на рисунке 1.3.1.

Рисунок 1.3.1 – Изначальная форма «Команда»

На рисунке 1.3.2 представлена форма с текстовым полем, поиском и фильтром, также на данном рисунке представлен поиск по команде с ID «2».

Рисунок 1.3.2 – Поиск по форме

На рисунке 1.3.3 представлено окно с информацией об отсутствии команды.

Рисунок 1.3.3 – Отсутствие ID команды

На рисунке 1.3.4 представлена функция фильтрации по ID команде.

Рисунок 1.3.4 – Фильтр

На рисунке 1.3.5 представлен вариант, если ничего не указать в поисковой строке.

Рисунок 1.3.5 – Пустые данные для поиска

Заключение

В данной лабораторной работе были изучены основные особенности создания приложения для работы со связанными таблицами базы данных в Microsoft Visual Studio для предметной области «Соревнования по футболу»