Разработка приложения для автоматизации ведения учета приёмов пациентов стоматологии

Автор работы: Пользователь скрыл имя, 05 Июня 2013 в 17:36, курсовая работа

Описание работы

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

Содержание работы

1. Постановка задачи 2
2. Нормализация 3
3. Описание таблиц 8
4. Реализация 11
4.1. Описание программного обеспечения 11
4.2. Хранимые процедуры 11
4.2.1. Процедура Cost1Serv 11
4.2.2. Процедура CostServAll 12
4.2.3. Процедура PacIns 12
4.2.4. Процедура PRas 13
4.2.5. Процедура PolusAdd 14
5. Руководство пользователя 15
5.1. Окно входа: 15
5.2. Администратор 15
5.3. Медицинский работник 16
5.4. Бухгалтер 18

Файлы: 1 файл

Базы данных.docx

— 678.21 Кб (Скачать файл)

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ 
РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ  
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО  ОБРАЗОВАНИЯ

ТЮМЕНСКИЙ ГОСУДАРСТВЕНЫЙ УНИВЕРСИТЕТ

Институт  математики, естественных наук и информационных технологий

Кафедра программного обеспечения

 

 

 

Курсовая работа по дисциплине

«Базы данных и СУБД»

Тема: Разработка приложения для автоматизации ведения учета приёмов пациентов стоматологии.

 

 

 

 

 

     Выполнила:

     студент 304 группы

    Стерлядов Дмитрий Игоревич

 

     Проверил:

     старший преподаватель кафедры

     Программного обеспечения

     Ялдыгин Валерий Борисович

 

 

 

Тюмень 2013 

Содержание

1. Постановка задачи 2

2. Нормализация 3

3. Описание таблиц 8

4. Реализация 11

4.1. Описание программного обеспечения 11

4.2. Хранимые процедуры 11

4.2.1. Процедура Cost1Serv 11

4.2.2. Процедура CostServAll 12

4.2.3. Процедура PacIns 12

4.2.4. Процедура PRas 13

4.2.5. Процедура PolusAdd 14

5. Руководство пользователя 15

5.1. Окно входа: 15

5.2. Администратор 15

5.3. Медицинский работник 16

5.4. Бухгалтер 18

 

  1. Постановка  задачи

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

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

 

  1. Нормализация

Нормализация - метод создания набора отношений с заданными свойствами на основе требований к данным, установленных в некоторой организации.

 

Пример отношения Manipulations, содержащего избыточные данные:

ManID

ManName

MatID

MatName

1

Анастезия

1

H+

2

Установка пломбы

2

Цементная пломба

3

Пломбирование каналов

2

Цементная пломба


Table 1. Пример избыточных данных в таблице

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

 

Приведем пример ненормализованной  формы для рассмотрения её нормализации.

 

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

 

Изначально данные в таблице  «Manipulations» имеют следующий вид:

ManID

ManName

MatID

MatName

2

Установка пломбы


4

Цементная пломба

Световая пломба

3

Пломбирование каналов

2

5

Цементная пломба

Керамический материал


Table 2. Ненормализованная форма

 

Первая нормальная форма (1НФ) - отношение, в котором на пересечении каждой строки и каждого столбца содержится одно и только одно значение.

 

После приведения к нормальной форме  таблица будет иметь вид:

ManId

ManName

MatID

MatName

2

Установка пломбы

2

Цементная пломба

2

Установка пломбы

4

Световая пломба

3

Пломбирование каналов

2

Цементная пломба

3

Пломбирование каналов

5

Керамический материал


Table 3. Первая нормальная форма

Чтобы дать определение второй нормальной формы, необходимо ввести следующие  понятия:

Функциональная зависимость. Описывает связь между атрибутами отношения. Если в отношении R, содержащем атрибуты А и В, атрибут B функционально зависит от атрибута А, то каждое значение атрибута А связано только с одним значением атрибута B. (Атрибуты A и B могут состоять из одного или нескольких атрибутов).

Детерминант функциональной зависимости - минимальная группа атрибутов, от которой зависит некоторый другой атрибут или группа атрибутов.

Полная функциональная зависимость. Если А и B – атрибуты отношения, то атрибут B находится в полной функциональной зависимости от атрибута А, если атрибут B является функционально зависимым от А, но не зависит ни от одного собственного подмножества атрибута A.

 

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

 

В приведенном выше примере первичным  ключом является пара атрибутов (ManID, MatID) (ManID не является первичным ключом: по таблице видно, что манипуляция может встречаться несколько раз).

Рассмотрим функциональную зависимость  ManID ® ManName. Имеет место нарушение 2НФ: атрибут ManName зависит только от части первичного ключа – ManID, а не от всего первичного ключа (ManID, MatID). Аналогично и с MatName, который зависит только от MatID. Необходимо разбить таблицу на три:

 

ManID

ManName

2

Установка пломбы

3

Пломбирование каналов


Table 4. Таблица Manipulations во 2НФ

MatID

MatName

2

Цементная пломба

4

Световая пломба

5

Керамический материал


Table 5. Таблица Materials во 2НФ

ManID

MatID

2

2

2

4

3

2

3

5


Table 6. Таблица MaterialsManipulations во 2НФ

 

Для определения третьей нормальной формы введем следующее понятие.

Транзитивная зависимость. Если для атрибутов А, B и C некоторого отношения существуют зависимости вида A ® B и B ® C, это означает, что атрибут C транзитивно зависит от атрибута А через атрибут B (при условии, что атрибут А функционально не зависит ни от атрибута B, ни от атрибута C). Транзитивная зависимость является одним из типов функциональной зависимости.

 

Третья нормальная форма (3НФ). Отношение, которое находится в первой и во второй нормальных формах и не имеет атрибутов, не входящих в первичный ключ, которые находились бы в транзитивной функциональной зависимости от этого первичного ключа.

По-другому можно сформулировать так: отношение находится в 3НФ в  том и только том случае, если все не ключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.

 

В качестве примера рассмотрим приведенное выше отношение:

VisitID

DT

PacID

PersID

PersFam

1

2013.12.12 17:45

1

1

Мелентьева

2

2013.12.12 17:45

2

2

Стерлядова

3

2013.12.12 18:00

3

1

Мелентьева


Table 7. Отношение Visits

Атрибут PersFam зависит от PersID, который, в свою очередь, функционально зависит от первичного ключа. Это пример нарушения 3НФ, поэтому данное отношение необходимо разбить на два:

VisitID

DT

PacID

PersID

1

2013.12.12 17:45

1

1

2

2013.12.12 17:45

2

2

3

2013.12.12 18:00

3

1


Table 8. Visits в 3НФ

PersID

PersFam

1

Мелентьева

2

Кинг Стивен


Table 9. Personal в 3НФ

Нормальная форма  Бойса-Кодда (НФБК). Отношение находится в НФБК тогда и только тогда, когда каждый его детерминант является потенциальным ключом. 

  1. Описание таблиц

Manipulations (Манипуляции):

Имя поля

Тип

Описание

ManID

int

Идентификатор записи, первичный  ключ

Ссылка на MaterialsManipulation, связь «Один (Manipulations) ко многим (MaterialsManipulation)»

Name

varchar(50)

Название манипуляции


Table 10. Структура таблицы Manipulations

Materials (Материалы):

Имя поля

Тип

Описание

MatID

int

Идентификатор записи, первичный ключ

Ссылка на MaterialsManipulation, связь «Один (Materials) ко многим (MaterialsManipulation)»

Ссылка на MaterialsPrices, связь «Один (Materials) ко многим (MaterialsPrices)»

Name

varchar(50)

Название материала


Table 11. Структура таблицы Materials

MaterialsManipulations (таблица для связи «Многие ко многим» между таблицами Materials и Manipulations):

Имя поля

Тип

Описание

MatManID

int

Идентификатор записи, первичный ключ

Ссылка на Services, связь «Один (MaterialsManipulation) ко многим (Services)»

MatID

int

Ссылка на Materials, связь «Один (Materials) ко многим (MaterialsManipulation)»

ManID

int

Ссылка на Manipulations, связь «Один (Manipulations) ко многим (MaterialsManipulation)»

Udalen

Varchar(1)

Идентификатор, существует ли в данный момент пара Манипуляция-Материал


Table 12. Структура таблицы MaterialsManipulation

MaterialsPrice (Цены материалов):

Имя поля

Тип

Описание

MatPriceID

int

Идентификатор записи, первичный ключ

MatID

int

Ссылка на Materials, связь «Один (Materials) ко многим (MaterialsPrices)»

LastIzID

int

Ссылка на Personal, связь «Один (Personal) ко многим (MaterialsPrices)»

Cost

numeric(10,2)

Цена материала

DTF

date

Дата с которой действительна цена

DTT

date

Дата по которую действительна цена


Table 13. Структура таблицы MaterialsPrices

 

Pacients (Пациенты):

Имя поля

Тип

Описание

PacientID

int

Идентификатор записи, первичный  ключ

Ссылка на Visits, связь «Один (Pacients) ко многим (Visits)»

Ссылка на Polus, связь «Один (Pacients) ко многим (Polus)»

Family

Varchar(50)

Фамилия

Name

Varchar(50)

Имя

Name2

Varchar(50)

Отчество

BirthDay

date

Дата рождения

Contra

Varchar(max)

Противопоказания/хронические заболевания

Информация о работе Разработка приложения для автоматизации ведения учета приёмов пациентов стоматологии