Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой БД .docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
548.96 Кб
Скачать

Структура бд

Структуру базы данных можно представить диаграммой «сущность-связь»

Свойства, которыми обладают сущности:

  1. Персонал: отделение, ФИО, адрес, дата рождения, телефон, должность, оклад.

  2. Пациент: отделение, диагноз, ФИО, адрес, дата рождения, дата прибытия, дата выписывания.

  3. Диагноз: имя, отделение, врач, описание.

  4. Отдел: имя.

  5. Лекарства: имя, количество в день, раз в день, цена, описание.

Физическая модель базы данных:

Описание полей таблиц базы данных

Типы данных для таблицы Personnel:

Name: строка – имя работника

Address: строка – адрес проживания

Birthday: дата – дата рождения

Phone: целое – номер телефона

Post: строка – должность

Salary: decimal – оклад

Id_depart: целое – идентификатор отделения

Типы данных для таблицы Pacienty:

Id_depart: целое – идентификатор отделения

Id_diagnos: целое – идентификатор диагноза

Name: строка – имя

Address: строка – адрес проживания

Birthday: дата – дата рождения пациента

Data_arrival: дата – дата прибытия пациента в больницу

Data_depart: дата – дата выписки из больницы

Типы данных для таблицы Diagnosis:

Id_depart: целое – идентификатор отделения

Id_doctor: целое – идентификатор врача

Name: строка – название диагноза

Типы данных для таблицы Medications:

Name: строка – наименование лекарства

Numb_per_day:целое – количество лекарства в день

Duration:целое – количество приёмов в день

Price: decimal – стоимость

Типы данных для таблицы Departament:

Id: целое – идентификатор отделения

Name: строка – имя отделения

Запросы

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

Примеры запросов для сущности Departament.

Выборка данных

public void Fill()

{

using (var session = parent.MySession.OpenSession())

{

try

{

DepartTable.Rows.Clear();

var deps = session.CreateCriteria(typeof (Departament)).List<Departament>();

foreach (var d in deps)

DepartTable.Rows.Add(d.Name);

}

catch (Exception exception)

{

MessageBox.Show(exception.Message, "Ошибка подключения к БД");

}

finally

{

session.Close();

}

}

}

Функция Fill заполняет таблицу DepartTable в приложении данными из таблицы Departament, находящейся в базе данных.

Добавление записи:

void Insert(string sName)

{

using (var session = parent.MySession.OpenSession())

using (var transaction = session.BeginTransaction())

{

try

{

session.Save(new Departament {Name = sName});

transaction.Commit();

}

catch (Exception exception)

{

MessageBox.Show(exception.Message, "Ошибка подключения к БД");

transaction.Rollback();

}

finally

{

session.Close();

}

}

}

Функция Insert вставляет новую запись в таблицу Departament. Входные данные – имя отделения.

Обновление:

void Update(string sName)

{

using (var session = parent.MySession.OpenSession())

using (var transaction = session.BeginTransaction())

{

try

{

var newdep = GetDepByName(session, DepartTable.CurrentRow.Cells[0].Value.ToString());

newdep.Name = sName;

session.Update(newdep);

transaction.Commit();

}

catch (Exception exception)

{

MessageBox.Show(exception.Message, "Ошибка подключения к БД");

transaction.Rollback();

}

}

}

Функция Update обновляет выделенную запись таблицы DepartTable. Входные данные – имя отделения.

Удаление записи:

public void Delete()

{

using (var session = parent.MySession.OpenSession())

using (var transaction = session.BeginTransaction())

{

try

{

var olddep = GetDepByName(session, DepartTable.CurrentRow.Cells[0].Value.ToString());

session.Delete(olddep);

transaction.Commit();

}

catch (Exception exception)

{

MessageBox.Show(exception.Message, "Ошибка подключения к БД");

transaction.Rollback();

}

Функция Delete удаляет выделенную запись таблицы DepartTable из таблицы Departament.