БД «Личные данные о студентах». КурсовойПроект Левашов В.Б. ИВТз-171. Программное приложение с базой данных Личные данные о студентах
Скачать 1.16 Mb.
|
ВведениеБаза данных (БД) — представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ) [1, с.8]. Проще говоря база данных – это способ хранения, сортировки и обработке информации, который в современном обществе применяется повседневно и является неотъемлемой частью во многих отраслях человеческой жизни (веб технологии, мобильные устройства, игры и т.д.). Для создания базы данных необходимо определённое программное обеспечение. По условию курсового проекта была выбрана программа SQL Server. Основными задачами системы SQL Server являются: организация одновременного доступа к данным большого количества пользователей; манипуляция информацией, хранимой в БД и др. SQL Server поддерживает реляционную модель данных и выполняет функции создания объектов БД (таблиц, индексов, представлений и т.д.), осуществляет проверку целостности БД и отвечает за безопасность данных в системе. Исходя из выбранной темы (программное приложение с базой данных «Договорная деятельность организации») целью данного курсового проекта становится: разработка базы данных “Договорная деятельность организации” и программа для работы с данной БД. База данных будет содержать три таблицы: “Работы”, “Сотрудники”, “Поручения”. Каждая из перечисленных таблиц будет содержать индивидуальные данные: “Работы” – информация о поступающих заказах на работу; “Сотрудники” – список сотрудников и вся основная информация о них; “Поручения” – информация о выполненной или процессе выполнения работы. Программа должна реализовывать следующие функции: добавление, изменение и удаление отдельных записей таблицы БД; поиск по конкретному полю таблицы БД. ПО для курсового проекта СУБД Microsoft SQL Server – это система управления базами данных, или сокращённо СУБД, которая была разработана компанией компаниями Microsoft и Sybase [2, c.10]. Она позволяет эффективно управлять базами данных различных масштабов – от персональной базы данных до инфраструктуры баз любого предприятия. За годы развития данной системы компания Microsoft постоянно совершенствовала свой продукт, внедряя новые технологии, улучшая производительность, вводя новые сценарии преобразования, интегрируя систему с другими программами. На данный момент Microsoft SQL Server является одной из лучших программ для управления реляционными базами данных. Он позволяет эффективно систематизировать и обрабатывать данные и транзакции. Большинство компании активно использует данное ПО для работы с данными, тем самым облегчая работу сотрудников и увеличивая производительность предприятия. Преимущества Microsoft SQL Server перед другими СУБД: Обладает высокой степенью производительности и отказоустойчивости; Является многопользовательской СУБД и работает по принципу «клиент-сервер»; Клиентская часть системы поддерживает создание пользовательских запросов и их отправку для обработки на сервер. Тесная интеграция с операционной системой Windows; Поддержка удалённых подключений; Поддержка популярных типов данных, а также возможность создания триггеров и хранимых процедур; Встроенная поддержка ролей пользователей; Расширенная функция резервного копирования баз данных; Высокая степень защищенности; Каждый выпуск включает в себя несколько специализированных редакций. Таким образом программа Microsoft SQL Server отлично подходит для создания БД для текущего курсового проекта. Её функционала более чем достаточно для того, чтобы: создать БД, при необходимости настроить определённые поля в таблицах (установить значения по умолчанию, поставить ограничения), связать таблицы между собой, тем самым создать диаграмму БД, создать запросы и/или процедуры. Среда разработки Visual Studio 2019 – интегрированная среда разработки программного обеспечения. Позволяет создавать, тестировать и редактировать код, анализировать производительность, а также собирать данные телеметрии. Программа представляет собой набор компонентов для создания консольных приложений, сайтов, веб-служб, программ с графическим интерфейсом и многого другого. Каждому поддерживаемому языку программирования соответствует один инструмент. Среди них: VisualBasic.NET Visual C# Visual F# В Visual Studio представлены как стандартные в подобном софте инструменты — отладчик, редактор кода, — так и собственные наработки [5, с. 25]. Кроме этого, доступны решения сторонних компаний, реализованные в виде подключаемых плагинов. Для повышения продуктивности используются большое количество автоматизированных возможностей: машинные подсказки, автоматическая очистка кода, рефакторинг. Функция IntelliSense позволяет работать с документацией к программе в интерактивном режиме, получая необходимую информацию непосредственно во время написания кода. Как и во всех продуктах от Microsoft, в приложении есть строка умного поиска, благодаря которой найти нужный пункт меню или описание функционала становится значительно легче. Список основных возможностей и преимуществ выглядит следующим образом: собственный компилятор; возможность для развёртывания приложения собственными средствами; редактор кода, включающий в себя инструменты автозавершения и форматирования; отладка кода. Автоматизированные возможности рефакторинга кода, включающего поддержку различных языков, помогают упростить процесс написания кода. В целом, Microsoft Visual Studio является хорошим выбором как для начинающих, так и для разработчиков профессионального уровня. Беря во внимание, все выше сказанное можно прийти к выводу, что программа Visual Studio и язык программирования C# отлично подходят в создании программы для работы с БД. Данная среда разработки позволит: создать качественное и удобное соединение с БД, произвести необходимые настройки и создать нужные алгоритмы для работы с таблицами, использовать определённые компоненты для работы с процедурами СУБД. Структура БД Таблицы Для курсового проекта были созданы следующие таблицы: “Факультеты”, “Группы”, “Информация_о_студенте” (рисунок 2.1) Чтобы стало понятно, как и для чего была сделана та или иная таблица, будет проведён подробный разбор каждой из них. Рисунок 2.1. – Таблицы БД Таблица “Факультеты”Таблица “Факультеты” (Рисунок 2.2.). На данном рисунке содержится информация о том, какие факультеты будут внесены в базу данных, а так же информация о количестве числа мест на факультете. В таблице имеются следующие столбцы: “Код_факультета”, “Название_факультета”, “Число_мест_на_факультете”. В БД существует такое понятие как родительские и дочерние таблицы. Их взаимоотношения происходят следующим образом: индивидуальные данные из поля одной таблицы (родительская) могут использоваться один или множество раз в другой таблице (дочерней). “Факультеты” представляет собой родительскую таблицу по отношению к таблице “Информация_о_студенте” по колонке “Код_факультета”. Рисунок 2.2 – Отрывок из таблицы “Факультеты” В SQL Server есть такие свойства как Primary key (PK) и Foreign key (FK). Так если к полю применить PK, то поле станет ключевым. Ключевое поле – это столбец, с неповторяющимися данными, однозначно определяющий каждую запись таблицы. Таким образом ключевое поле “Код_факультета” создаёт индивидуальный номер для каждого факультета в таблице. Тип данных в поле “Код_факультета” – int. Int – это целочисленный тип данных хранящий числа в диапазоне от -2147683648 до 2147683648. “Код_факультета” – это ключевое поле. Свойство поля – not null. Задачей столбца “Название_факультета” является хранение названия факультета. Тип данных поля – varchar (50). Varchar – cтроковые данные переменной размерностью. Отличительной особенностью данного типа данных является то, что он не использует максимально возможную длину (как char), а выделяет только необходимое количество символом для записи строки. В скобках varchar() указано максимальное количество символов, которое может быть записано для записи. Таким образом поле “Название_факультета” – это строковое поле, максимальная длина которого равняется 50 символам. Свойство поля – null. Столбец “Число_мест_на_факультете” содержит данные о том сколько мест имеется для поступления на выбранный факультет . Тип данных поля – int. Свойство поля – null. На рисунке 2.3 можно увидеть каким образом выглядит конструктор таблицы “Факультеты”. Рисунок 2.3 – Конструктор таблицы “Факультеты” Таблица “Группы” Данная таблица (Рисунок 2.4) содержит информацию о группе, которую можно увидеть в таблице “Группы”. В таблице имеется четыре столбца: “Номер_группы”,“Сумма_стипендии_студента”,”Год_зачисления”. Рисунок 2.4. – Отрывок из таблицы “Группы” Колонка “Номер_группы” является ключевым полем таблицы “Группы”. Данный столбец содержит индивидуальный код каждого спортсмена в таблице. Тип данных – int. Свойство поля – not null. Имеет идентификатор поля Primary key(первичный ключ) необходим для создания уникальных данных, чтобы в последствие пользователь смог легко и быстро найти нужную информацию. Колонка “Сумма_стипендии_студента” содержит информацию о том, сколько выплачивает институт студенту стипендию. Тип данных – int. Свойство поля – null. Столбец “Год_зачисления” содержит информацию о том, в каком году был зачислен студент. Тип данных – date. Свойство поля – null. На рисунке 2.5 можно увидеть каким образом выглядит конструктор таблицы “Группы”. Рисунок 2.5 – Конструктор таблицы “Группы” Таблица “Информация_о_студенте” Таблица “Информация_о_студенте” (Рисунок 2.6). Данная таблица содержит информацию о студенте. Содержание таблицы представлено следующими столбцами: “ID”, “ФИО_студента”, “Дата_рождения”, “Курс”, ”Факультет”, ”Группа”, “Специальность”, “Семейное_положение”, “Сведения_о_семье”. Таблица “Информация_о_студенте” является дочерней таблицей по отношению к таблицам “Факультеты” и “Группы”. Рисунок 2.6. – Отрывок из таблицы “Информация_о_студенте” Столбец “ID” - является идентификатором таблицы. Данное поле является ключевым, поэтому данные в нем не повторяются. Тип данных поля – int. Свойство поля – not null. Столбец “ФИО_студента” содержит информацию о наименовании соревнования. Тип данных поля – nvarchar(50). Свойство поля – null. Столбец “Дата_рождения” содержит данные по дате рождения студента. Тип данных – date. Свойство поля – null. Столбец “Курс” содержит данные о том, на каком курсе учится студент. Тип данных поля – int. Свойство поля– null. Столбец “Факультет” содержит информация о том, на каком факультете учится студент. Тип данных поля – int. Свойство поля: null. Столбец ”Группа” содержит информацию о том в какой группе учится студент. Тип данных поля – int. Свойство поля – null. Столбец “Специальность” содержит информацию о том, на какой специальности учится студент. Тип данных поля – varchar(50). Свойство поля – null. Столбец “Семейное_положение” – содержит информацию о семейном положении студента. Тип данных поля – varchar(50). Свойство поля – null. Столбец “Сведения_о_семье” – содержит информацию о семье студента. Тип данных поля – varchar(250). Свойство поля – null. Настройки таблицы представлены на рисунке 2.7. Рисунок 2.7 – Конструктор таблицы “Информация_о_студенте” Реализация программы 3.1 Элементы управления По условию курсового проекта было необходимо написать программу для работы с базой данных программы SQL Server. Для этих нужд была использована среда разработки Visual Studio 2019. Из всех представленных в программе языков был выбран язык программирования C#. На рисунке 3.1 представлено стартовое окно программы. Рисунок 3.1 – Стартовое окно Курсовой проект представляет собой программу с тремя пунктами меню: “База данных”, “Запросы”, “Выход из программы”. Однако, чтобы понять, как работает данная программа необходимо подробно разобрать не только код, но и составляющие проект компоненты. Основным компонентом, с которым пользователь будет работать постоянно, это dataGridView. DataGridView - это элемент управления, позволяющий отображать данные в табличном формате, в настраиваемой сетке, а так же с помощью написанного кода добавлять, изменять и удалять записи в БД. Данный элемент управления можно использовать как для отображения небольших объёмов данных, так и для очень больших наборов данных. Данный компонент есть в единичном экземпляре на каждой вкладке. И в каждый DataGridView будет загружена соответствующая названию menuStip таблица в БД из SQL Server Management Studio. Компонент menuStrip. MenuStrip - предоставляет систему меню для приложения. Необходим для выбора таблицы из БД и работы с ней, выборки необходимых данных из таблиц, а так же для полного закрытия программы. Компоненты DataSet. DataSet – это находящийся в памяти объект ADO .NET, используемый в приложении для представления данных; он определяет согласованную реляционную модель базы данных, которая не зависит от источника содержащихся в нем данных. Компоненты SqlConnection, SqlCommand. SqlConnection – это класс предоставляющий подключение к базе данных SQL Server. Этот класс не наследуется. SqlCommand представляет собой объектно-ориентированное представление SQL-запроса, имени таблицы или хранимой процедуры. Данные компоненты понадобиться в программе для работы с процедурами SQL Server. Компонент toolStrip. toolStip - представляет панель инструментов. Этот компонент будет необходим для очистки таблицы запросов. Функция “Запросы” Данная функция работает при помощи создания и использования компонента SqlConnection. В конструктор объекту SqlConnection передаётся строка подключения, которая инициализирует объект. Чтобы использовать этот объект и подключиться к базе данных, мы инициализируем SqlCommand и выполняем его метод sqlConnection. Далее создаём запрос на выборку данных при помощи команды CommandText в виде sql-запроса, и вносим эту выборку в компонент dataGridView для того чтобы увидеть результат запроса в табличном виде. Все эти действия выглядят следующим образом: Запрос 1 Осуществляет вывод в dataGridView количество студентов на каждом курсе. Для реализации данного запроса был написан следующий код: cmd.CommandText = "SELECT Информация_о_студенте.Курс, Count(Информация_о_студенте.ФИО_студента) AS [Count-ФИО_студента] FROM Информация_о_студенте GROUP BY Информация_о_студенте.Курс"; Запрос 2 Осуществляет вывод в dataGridView суммарной стипендии группы '109' факультета 'АП'. Запрос реализован следующим образом: cmd.CommandText = "SELECT Факультеты.Название_факультета, Группы.Номер_группы, Count(Информация_о_студенте.ФИО_студента) AS [Count-ФИО_студента] FROM Факультеты RIGHT JOIN(Группы RIGHT JOIN Информация_о_студенте ON Группы.Код_Группы = Информация_о_студенте.Группа) ON Факультеты.Код_Факультета = Информация_о_студенте.Факультет GROUP BY Факультеты.Название_факультета, Группы.Номер_группы HAVING (((Факультеты.Название_факультета) Like 'АП'))"; Запрос 3 Осуществляет вывод в dataGridView список групп факультета 'АП' с указанием численности студентов в каждой группе. Запрос реализован следующим образом: cmd.CommandText = "SELECT Факультеты.Название_факультета, Группы.Номер_группы, Информация_о_студенте.ФИО_студента, Группы.Сумма_стипендии_студента, Информация_о_студенте.Дата_рождения, Группы.Год_зачисления, DateDiff(yyyy, Дата_рождения, Группы.Год_зачисления) AS Возраст_зачисления FROM Факультеты RIGHT JOIN (Группы RIGHT JOIN Информация_о_студенте ON Группы.Код_Группы = Информация_о_студенте.Группа) ON Факультеты.Код_Факультета = Информация_о_студенте.Факультет WHERE (((DateDiff(yyyy, Дата_рождения, Год_зачисления)) < 18))"; Запрос 4 Осуществляет вывод в dataGridView список студентов, не достигших к моменту зачисления 18 лет. Запрос реализован следующим образом: cmd.CommandText = "SELECT Факультеты.Название_факультета, Группы.Номер_группы, Count (Информация_о_студенте.ФИО_студента) AS [Count-ФИО_студента], Sum (Группы.Сумма_стипендии_студента) AS [Sum-Сумма_стипендии_студента] FROM Факультеты RIGHT JOIN(Группы RIGHT JOIN Информация_о_студенте ON Группы.Код_группы = Информация_о_студенте.Группа) ON Факультеты.Код_факультета = Информация_о_студенте.Факультет GROUP BY Факультеты.Название_факультета, Группы.Номер_группы HAVING(((Факультеты.Название_факультета) Like 'АП') AND (Группы.Номер_группы = '109'))"; |