Автор работы: Пользователь скрыл имя, 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
МИНИСТЕРСТВО
ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ
ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ТЮМЕНСКИЙ ГОСУДАРСТВЕНЫЙ УНИВЕРСИТЕТ
Институт математики, естественных наук и информационных технологий
Кафедра программного обеспечения
Курсовая работа по дисциплине
«Базы данных и СУБД»
Тема: Разработка приложения для автоматизации ведения учета приёмов пациентов стоматологии.
Выполнила:
студент 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
Проектируется база данных для стоматологии, в которой имеются бухгалтера и медицинские работники. Служебными обязанностями бухгалтера являются: добавление новых материалов в прейскурант, добавление и редактирование дат действия цен на материалы, добавление и редактирование цен на материалы, создание новых пар манипуляция-материал. Среди возможностей бухгалтера, получение данных о сумме, на которую оказал персонал услуг пациентам. В перечень возможностей медицинского работника входит: добавление пациентов, добавление полюсов медицинского страхования, просмотр истории приёмов, добавление новых приёмов.
Необходимо спроектировать базу данных и реализовать приложение для работы с ней, имеющее необходимый для сотрудников стоматологии функционал, различающийся согласно их правам и возможностям через доступ только к определённым формам приложения. Также приложение должно предоставлять возможности по администрированию базы данных, доступное отдельному типу пользователей (администратор), такие, как добавление и удаление пользователей.
Нормализация - метод создания набора отношений с заданными свойствами на основе требований к данным, установленных в некоторой организации.
Пример отношения
ManID |
ManName |
MatID |
MatName |
1 |
Анастезия |
1 |
H+ |
2 |
Установка пломбы |
2 |
Цементная пломба |
3 |
Пломбирование каналов |
2 |
Цементная пломба |
Table 1. Пример избыточных данных в таблице
Здесь содержатся избыточные данные, поскольку сведения о материалах повторяются в записях, относящихся к каждой манипуляции.
Приведем пример ненормализованной формы для рассмотрения её нормализации.
Ненормализованная форма (ННФ) - таблица, содержащая одну или несколько повторяющихся групп данных.
Изначально данные в таблице «Manipulations» имеют следующий вид:
ManID |
ManName |
MatID |
MatName |
2 |
Установка пломбы |
2 |
Цементная пломба Световая пломба |
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НФ). Отношение, которое находится в первой и во второй нормальных формах и не имеет атрибутов, не входящих в первичный ключ, которые находились бы в транзитивной функциональной зависимости от этого первичного ключа.
По-другому можно
В качестве примера рассмотрим приведенное выше отношение:
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НФ
Нормальная форма
Бойса-Кодда (НФБК). Отношение находится
в НФБК тогда и только тогда, когда каждый
его детерминант является потенциальным
ключом.
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) |
Противопоказания/хронические заболевания |