Инфологическая модель выполнена в виде ER-диаграмм с использованием CASE-пакета в программе ERWin. Инфологическая модель состоит из четырех таблиц, представленных на рисунке 2.1.
Рисунок 2.1 – Инфологическая модель базы данных
В таблицах 2.1-2.5 представлена спецификация инфологической модели проектируемой системы.
№ поля | Название поля | Тип поля |
1 | id студента | (key)integer |
2 | Имя студента | Nvarchar(50) |
3 | Фамилия студента | Nvarchar(50) |
4 | Группа | Nvarchar(50) |
Таблица 2.1 – T_ Students
Таблица T_ Students содержит в себе данные о студентах. Вся информация о лабораторных работах вносятся в таблицу T_ Labs.
№ поля | Название поля | Тип поля |
1 | id сессии | (key)integer |
2 | Дата сессии | smalldatetime |
3 | id параметра | integer |
4 | id студента | integer |
5 | id преподавателя | integer |
Таблица 2.2 – T_ Labs
Лабораторные работы проводятся под руководством одного из преподавателей. База должна быть наполнена данными о них (табл. 2.3):
№ поля | Название поля | Тип поля |
1 | id преподавателя | (key)integer |
2 | Фамилия преподавателя | Nvarchar (50) |
3 | Имя преподавателя | Nvarchar (50) |
4 | Отчество преподавателя | Nvarchar (50) |
Таблица 2.3 – T_Prepods
|
|
При проведении лабораторных работ результатом являются числовые значения измеряемых технологических параметров. Данные по ним содержатся в таблице T_ Parameters (табл. 2.4).
№ поля | Название поля | Тип поля |
1 | id параметра | (key)integer |
2 | Значение параметра | Nvarchar(50) |
3 | Наименование параметра | Nvarchar(50) |
Таблица 2.4 – T_ Parameters
Разработка даталогической модели
Даталогическая модель включает в себя схему данных БД в рамках выбранной СУБД MS SQL Server 2005. Даталогическая модель представлена на рисунках 2.2-2.5.
Рисунок 2.2 – Таблица dbo.T_Labs
Рисунок 2.3 – Таблица dbo.T_Parameters
Рисунок 2.4 – Таблица dbo.T_Prepods
Рисунок 2.5 – Таблица dbo.T_Students
Для реализации обмена данными между программой и базой данных были написаны соответствующие хранимые процедуры, которые позволяют группировать данные из разных таблиц.
Обработка данных
Любое взаимодействие с БД происходит с помощью хранимых процедур. Можно выделить четыре основных типов хранимых процедур, используемых в программе:
- для вставки данных;
- для удаления данных;
- для корректировки данных;
- для выборки данных;
Для реализации задач курсовой работы написано 4 хранимые процедуры. Ниже приведены 2 листинга для процедур dbo.ex_DEL_Students и dbo.ex_INS_Students (рисунки 2.6 и 2.7 соответственно).
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go /*----------------------------------------------------------- Пример обработки базы данных в среде Visual Studio 2005.NET" Входные данные: @id - идентификатор пользователя Пример вызова: EXEC dbo.ex_DEL_Students @id_Stud = 5 */----------------------------------------------------------- ALTER PROC [dbo].[ex_DEL_Students] @id_Stud int AS SET NOCOUNT OFF -- передавать сообщения о количестве обработанных записей SET ANSI_WARNINGS OFF -- отключить вывод предупреждений -- Удалить запись DELETE FROM dbo.T_ Students WHERE id_Stud = @id_Cust SET NOCOUNT ON -- не передавать сообщения о количестве обработанных записей -- Прочитать запись SELECT id_Stud, Name_Stud, Surname_Stud, Group_Stud FROM dbo.T_Students WHERE id_Stud = @id_Stud SET ANSI_WARNINGS ON -- включить вывод предупреждений |
Рисунок 2.6 – Листинг процедуры dbo.ex_DEL_Students
|
|
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROC [dbo].[ex_INS_Students] @id_Stud int, @Name_Stud nvarchar(max), @Surname_Stud nvarchar(max), @Group_Stud nvarchar(max) as SET NOCOUNT OFF -- передавать сообщения о количестве обработанных записей -- Проверить существование строки: если не существует, то вставить IF NOT EXISTS (SELECT 1 FROM dbo.T_Students WHERE id_Stud = @id_Stud) BEGIN INSERT INTO dbo.T_Students ( id_Stud, Name_Stud, Surname_Stud, Group_Stud ) VALUES ( @id_Stud, @Name_Stud, @Surname_Stud, @Group_Stud ) SET NOCOUNT ON -- отключить сообщения о количестве обработанных записей -- Прочитать новую запись SELECT id_Stud, Name_Stud, Surname_Stud, Group_Stud FROM dbo.T_Students WHERE id_Stud = @id_Stud END ELSE SET NOCOUNT ON |
Рисунок 2.7 – Листинг процедуры dbo.ex_INS_Students