Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
252427.rtf
Скачиваний:
4
Добавлен:
18.09.2019
Размер:
9.54 Mб
Скачать

1.1 Нормализация и схема базы данных

Определим объекты и атрибуты проектируемой системы. Рассмотрим отношение следующей структуры:

ПриемПациента (Код_Пациента, Наименование_Пациента, Диагноз, НомерАмбулаторнойКарты, Адрес, Вид_Оплаты, Документ, Симптомы, Наименование_Услуга, Цена, Количество, Сумма)

В этом отношении имеется составной ключ – это код_пациент, диагноз, услуга. Все атрибуты отношения атомарны, значит оно находится в 1НФ. Рассмотрим наблюдающиеся в этом отношении функциональные зависимости. Прежде всего, в отношении содержится частичная функциональная зависимость неключевых атрибутов от ключа отношения:

Пациент – Наименование_Пациента, Пациент – Адрес_Пациента, Диагноз – Симптомы, наименование_Услуга – Цена.

Не ключевой атрибут Наименование_Пациента зависит от от ключа Код_Пациента.

Транзитивные зависимости: Диагноз ->-> Услуга->-> Симптомы

Наименование_Пациента ->-> Адрес

Наименование_Пациента ->-> Симптомы

Приведем это отношение ко 2НФ, разбивая исходное отношение и производя внешнее кодирование, при этом получаем отношения:

Пациент(Код, Наименование_Пациента, Адрес, Симптомы)

АмбулаторнаяКарта(Код_Пациента,Наименование_Пациента, Номер_АмбулаторнаяКарта, Диагноз, Услуга, Цена, Сумма)

Услуга(Код_Услуги, Наименование_Услуги, Цена_Услуги, Единица_Измерения)

Перейдём к рассмотрению в полученных отношениях транзитивных зависимостей неключевых атрибутов от ключа.

Код_Пациента -> Номер_АмбулаторнаяКарта -> Диагноз.

Ввиду дублирования информации об одном диагнозе для одного товара, избыточность данных, будем дальше преобразовывать отношение.

Выявим теперь независимые многозначные зависимости, они имеются в отношении ПриёмаПацинта:

Номер ->-> Код_Пациента ->-> Номер->->Код_Услуги

Будем считать, что у нас нет транзитивных зависимостей неключевых атрибутов от ключа. Получаем следующие отношения:

Пациент (Номер Пациента, Дата Рождения, НомерАмбулаторнойКарта);

Сотрудники (Номер_Сотрудника,ФИО, Данные);

Услуги (Дата, Наименование, Цена, Сеанс, ЕдиницаИзмерения);

Документ (НомерДокумента, ДатаВыдачи).

Здесь мы освобождаем отношение от избыточности, а также различного рода аномалий. Но не всех.

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

Выявлено у пациента (Диагноз, Пациент) и Назначение (Пациент, Услуги).

Теперь раскладываем исходное отношение на несколько отношений с многозначными зависимостями от одного ключа. Раскладываем отношение на два отношения: Номер_АмбулаторнаяКарта (АмбулаторнаяКарта, Пациент);

Назначение (Пациент, Симптомы).

В результате нормализации была получена следующая система отношений:

  • Пациент ( Наименование_Пациента, Дата_Рождения, Пол, Номер_АмбулаторнойКарты, Адрес);

  • Сотрудник(Наименование_Сотрудника, Дата_Рождения, Пол, Образование);

  • Адрес ( Наименование_Адреса);

  • Документ (Наименование_ Документ, Номер, Дата_Выдачи);

  • Услуги(Наименование_Услуги, Цена, Сеанс, Единица_Измерения);

  • Болезни (Код_ Болезни, Наименование_ Болезни);

  • Симптомы (Заболевание).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]