Информационная база данных для поликлиники

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    4,73 Мб
  • Опубликовано:
    2014-08-10
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Информационная база данных для поликлиники

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

.1 Функциональная структура предметной области

.2 Диаграмма потоков данных (DFD-диаграмма)

. КОНЦЕПТУАЛЬНОЕ ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

. ПОСТРОЕНИЕ ЛОГИЧЕСКОЙ МОДЕЛИ ДАННЫХ

.1 Поддержка целостности данных

. ВЫБОР СУБД

. ПОСТРОЕНИЕ ФИЗИЧЕСКОЙ МОДЕЛИ ДАННЫХ

ЗАКЛЮЧЕНИЕ

ЛИТЕРАТУРА

Приложения

Приложение А. ЗАПОЛНЕНИЕ ДАННЫМИ РЕЛЯЦИОННЫХ ТАБЛИЦ

Приложение Б. ПРОЕКТИРОВАНИЕ SQL-ЗАПРОСОВ

ВВЕДЕНИЕ

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

Если вы любите порядок, то, скорее всего, электронные таблицы или ярлыки к ним у вас сгруппированы с помощью каталогов и подкаталогов. При выполнении такого упорядочивания вы сами являетесь диспетчером базы данных. Но что делать, когда приходится работать с огромными объемами? Как можно собирать сведения обо всех клиентах и сделанных ими заказах, если данные хранятся в нескольких документах или файлах? Как обеспечить связь между файлами при вводе новой информации? Как проверить достоверность ввода данных? Как быть, если необходимо обеспечить совместный доступ к информации, но предотвратить одновременное обновление данных двумя различными сотрудниками? Как обеспечить размножение данных, если отсутствует возможность одновременного доступа к данным? Наличие подобного рода проблем говорит о необходимости использовать систему управления базой данных, СУБД (database management system, DBMS).

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

. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

Целью выполнения курсового проекта является приобретение студентами практических навыков проектирования баз данных и разработки программного обеспечения по управлению базами данных с использованием СУБД. В ходе выполнения данного курсового проекта необходимо разработать информационную базу данных для поликлиники, которая поможет любому пользователю легко найти нужную информацию о любом сотруднике или пациенте.

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

.1 Функциональная структура

Функции БД изображены на функциональной структуре (Рис. 1.1)

из рисунка видно БД «Поликлиника» имеет возможности:

-добавить пациента, врача, диагноз или лечение;

-изменить все данные;

-просмотреть данные.

Рис.1.1. Функциональная структура предметной области

.2 Диаграмма потоков данных

Диаграммы потоков данных (Data Flow Diagrams - DFD) представляют собой иерархию функциональных процессов, связанных потоками данных. Цель такого представления - продемонстрировать, как каждый процесс преобразует свои входные данные в выходные, а также выявить отношения между этими процессами. Главная цель построения иерархии DFD заключается в том, чтобы сделать описание системы ясным и понятным на каждом уровне детализации, а также разбить его на части с точно определенными отношениями между ними.

Построим DFD - диаграмму.

Рис. 1.2. DFD - диаграмма потоков данных

2. КОНЦЕПТУАЛЬНОЕ ПРОЕКТИРОВАНИЕ ДАННЫХ

Чтобы сформировать концептуальную модель и построить базы данных необходимо провести идентификацию объектов сущности базы данных.

Сущность - любой различимый объект, информацию о котором необходимо хранить в базе данных.

Проанализируем объекты. В объекте «Поликлиника» можно выделить следующие ключевые объекты: пациент, доктор, диагноз, лекарства, талон, кабинет, время приема и дни .

Объект «Пациент» включает в себя информацию о пациенте. В нем содержаться такие данные как: Id, фамилия, имя и отчество, пол, дата рождения.

Объект «Доктор» включает в себя информацию врачах, аналогично объекту пациент.

Объект «Диагноз» несет в себе перечень возможных диагнозов.

Объект «Лечение» содержит перечень лекарственных препаратов.

Объект «Талон» несет в себе информацию том, когда пациент был на приеме у врача.

Объект «Кабинет» содержит перечень кабинетов, в которых принимают врачи.

Объект «Время приема» является своего рода расписанием приема.

У каждой сущности есть свой определенный набор атрибутов.

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

Для каждой из выделенных сущностей определим набор атрибутов.

Сущность «Пациент» имеет следующий набор атрибутов:

- Id *

ФИО

пол

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

Сущность «Доктор» имеет следующий набор атрибутов:*

ФИО

Дата поступления

пол

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

специализациякабинета.

Сущность «Диагноз» имеет следующий набор атрибутов:*

Имя диагноза.

Сущность «Лечение» имеет следующий набор атрибутов:*

Лекарства.

Сущность «Талон» имеет следующий набор атрибутов:*

Дата

Времяпациентадоктора.

Сущность «Время приема» имеет следующий набор атрибутов:*дней

Время начала

Время конца.

Номер кабинета

Название кабинета.

Сущность «Дни» имеет атрибуты:*

Дни недели.

На этапе концептуального проектирования базы данных строится концептуальная модель предметной области. Концептуальная модель строится не для отдельного объекта, а отображает классы объектов и связи между ними. Связь соединяет два или больше наборов сущностей.

Объект «Пациент» связан с объектом « Диагноз» N:N.

Объект «Пациент» связан с объектом «Лекарства» отношение N:N.

Объект «Доктор» связан с объектом «кабинет» отношением 1: N.

Объект «Талон» связан с объектом «Доктор» N: N.

Объект « Талон» связан с объектом «Пациент» отношением N: N.

Объект «Доктор» связан с объектом «Время приема» отношением N: N.

Объект «Дни» связан с объектом «кабинет» отношением 1: N.

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

Для каждой сущности выбираются свойства (атрибуты). Различают:

Идентифицирующие и описательные атрибуты. Идентифицирующие атрибуты имеют уникальное значение для сущностей данного типа и являются потенциальными ключами. Они позволяют однозначно распознавать экземпляры сущности. Из потенциальных ключей выбирается один первичный ключ (ПК). В качестве ПК обычно выбирается потенциальный ключ, по которому чаще происходит обращение к экземплярам записи. Кроме того, ПК должен включать в свой состав минимально необходимое для идентификации количество атрибутов. Остальные атрибуты называются описательными и заключают в себе интересующие свойства сущности. Например, сущность ПАЦИЕНТ имеет идентифицирующий атрибут «id» пациента, и описательные атрибуты: фамилию, имя, отчество, возраст и пол

Составные и простые атрибуты. Простой атрибут состоит из одного компонента, его значение неделимо. Составной атрибут является комбинацией нескольких компонентов, возможно, принадлежащих разным типам данных (например, ФИО или адрес). Решение о том, использовать составной атрибут или разбивать его на компоненты, зависит от характера его обработки и формата пользовательского представления этого атрибута. Например, простой атрибут «ФИО» сущности Пациент. 

Однозначные и многозначные атрибуты (могут иметь соответственно одно или много значений для каждого экземпляра сущности). Однозначным является атрибут «Номер кабинета», который в пределах конкретного экземпляра сущности «Кабинет» имеет только одно значение. В кабинете может находиться несколько докторов, поэтому атрибут «Кабинет» будет многозначным.

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

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

Рис. 2.1. Концептуальная модель


ПОСТРОЕНИЕ ЛОГИЧЕСКОЙ МОДЕЛИ ДАННЫХ

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

Например, в сущность «Доктор» добавляются атрибуты «Кабинет» (Id кабинета - первичный ключ сущности «Кабинет»). Таким же образом добавляются атрибуты и в другие сущности.

Добавленные, в сущности-потомки, атрибуты являются внешними ключами для сущностей-предков, в которых данные атрибуты являются первичными ключами.

Логическая модель приведена на (рис. 3.1)

Рис. 3.1. Логическая модель

.1 Поддержка целостности данных

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

Функции обеспечения целостности данных подразделяются на:

Обеспечение целостности объектов

Обеспечение целостности приложений

Ссылочная целостность

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

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

Ссылочная целостность заключается в поддержке соответствия между значениями родительского и внешнего ключей для таблицы предка и потомка

Например, целостность объектов в нашей базе данных реализуется следующим образом: в отношение «Пациент» при вставке информации о пациенте, необходимо сначала вставить значение в поле, являющееся первичным ключом («id»), а затем уже заносить информацию в остальные поля. Аналогично и с удалением, например, при удалении картежа из таблицы, необходимо сначала удалить информацию из вторичных атрибутов, а затем уже удалять значение первичного ключа. Обычно пользователю не приходится об этом беспокоиться, так как целостность объекта реализуется самой СУБД.

Что касается ссылочной целостности, в нашу базу данных в таблицу «Талон» нельзя внести информацию о пациенте, которого нет в отношении «Пациент» (т.е. нельзя указать время приема пациента, не указав его самого).

Такая же ситуация обстоит и с удалением и обновлением картежей в отношениях.

Например, нельзя удалить картеж из отношения «Пациент», так как у него имеется потомок - отношение «Пациент-Диагноз», а если возникает необходимость удаления, то соответствующие картежи необходимо удалить и из всех дочерних отношений.

        

4. ВЫБОР СУБД

Я выбрала промышленную СУБД Oracle. поддерживает самые большие базы данных, потенциального размера до сотен гигабайт. Чтобы обеспечить действенный контроль за использованием дорогостоящих дисковых устройств, он предоставляет полный контроль распределения пространства. Также он поддерживает большое число пользователей, одновременно выполняющих разнообразные приложения, которые оперируют одними и теми же данными. Он минимизирует соперничество за данные и гарантирует согласованность данных.удовлетворяет промышленно принятым стандартам по языку доступа к данным, операционным системам, интерфейсам с пользователем и сетевым протоколам. Это "открытая" система, которая защищает инвестиции заказчика.

Для защиты от несанкционированного доступа к базе данных ORACLE предоставляет защищенные от сбоев средства безопасности, лимитирующие и отслеживающие доступ к данным. Эти средства позволяют легко управлять даже наиболее сложными схемами доступа.

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

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

5. ПОСТРОЕНИЕ ФИЗИЧЕСКОЙ МОДЕЛИ ДАННЫХ

Для создания реляционных таблиц в ORACLE необходимо на языке SQL описать таблицы, их тип и размер.

Таблица 1. Пациент.TABLE Patient (number primary key NOT NULL,varchar2 (100),_female varchar2 (100),

birth_date date,varchar2 (100)

)

Таблица 2. Доктор.TABLE Doctor (number primary key NOT NULL,varchar2 (100),_female varchar2 (100),

birth_date date,varchar2 (100)

)

Таблица 3. Диагноз.TABLE Diagnosis (number primary key NOT NULL,_name varchar2 (100),varchar2 (100)

)

Таблица 4. Лечение.TABLE Cure (number primary key NOT NULL,varchar2 (100)

)

Таблица 5. Талон.TABLE Talon (number primary key NOT NULL,date,varchar2 (100)

)

Таблица 6. Кабинет.TABLE Cabinet (number primary key NOT NULL,_cabinet varchar2 (100)

)

 Таблица 7. Время приема.TABLE Receptiontime (number primary key NOT NULL,varchar2 (100)

)

Таблица 8. Дни.TABLE Days (number primary key NOT NULL,varchar2 (100)

)

Таблица 9. Кабинет.TABLE Cabinet (number primary key NOT NULL,

name_cabinet varchar2 (100)

)


Разработанная в ходе выполнения курсового проекта база данных "Поликлиника", а также программа для работы с базой данных является актуальной на сегодняшний день и имеет большую практическую значимость. Она помогает в работе сотрудников больницы по сбору данных, необходимых при лечении, а также по сбору данных о самих сотрудниках.

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

ЛИТЕРАТУРА

Коннолли, Томас, Бегг, Каролин. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. - М.: Издательский дом "Вильяме", 2003. - 1440 с.

Т. Карпова - Базы данных: модели, разработка, реализация. Уч. пособие - СПб: Питер, 2001.

Приложение А

ЗАПОЛНЕНИЕ ДАННЫМИ РЕЛЯЦИОННЫХ ТАБЛИЦ

Таблица 1. Пациенты


Таблица 2. Диагноз



Таблица 3. Пациент - лечение


Таблица 4. Талон


Таблица 5. Пациент - диагноз


Таблица 6. Лечение

Таблица 7. Врачи


Таблица 8. Время приема

 

Таблица 9. Кабинеты


Таблица 10. Дни


ПРИЛОЖЕНИЕ Б

РЕЗУЛЬТАТЫ ОТРАБОТКИ ЗАПРОСОВ (ЗАПРОС - ТАБЛИЦА ОТВЕТА)

Запрос о выводе таблицы пациент*patient


) Запрос о выводе всех специальностей поликлиникиspecialitydoctor;


3) Запрос о выводе имени и даты рождения пациентов

Select pat.FIO, pat.Birth_date

FROM patient pat


). Запрос о выводе имени и специализации доктора

Select doc.FIO, doc.SpecialityDoctor doc


5). Запрос о выводе диагнозов на букву С

Select Diagnosis_name Diagnosis Diagnosis_name LIKE ('с%')


). Запрос о выводе самого старого доктора в поликлиникеbirth_date,fioDoctorbirth_date=(select min(birth_date)from doctor);


). Запрос о выводе пациентов с id больше 8ID, FIO patientID>=8


). запрос о выводе пациентов с id от 8 до 16fiopatientpatient.ID between (8)and(16)


). Запрос о выводе мужчин среди пациентов поликлиники

fiopatientmale_female like('муж')


). Группировка и вывод количества по началу времени работы

SELECT count(*), p.timestreceptiontime p

GROUP BY p.timest


11). Запрос о выводе количества мужчин и женщин среди пациентов поликлиники

SELECT count(*), p.male_femalepatient p

GROUP BY p.male_female


). Запрос о выводе пациентов с фамилиями на букву ИFIO patientFIO LIKE ('и%')


). Запрос о выводе пациентов с 10.10.2011 и по 10.10.2012fiopatient( birth_date > '10.10.2011')and(birth_date > '10.10.2012');


). Запрос о выводе пациентов, в приеме которых есть цифра 1Data TalonData LIKE ('1%')


). Запрос о выводе врачей, работающих в кабинете 102

select FIO,id_cabinet doctor

where ID_cabinet=(102)


). Запрос о выводе всех кабинетов поликлиники, кроме 102speciality, fiodoctornot (speciality IN(select speciality

where id_cabinet = 102))


). Запрос о выводе все пациентов мужского пола

fiopatientmale_female like('муж')


). Запрос о выводе специализаций врачей, не родившихся 20.01.1973speciality, fiodoctornot (speciality IN(select speciality

from doctorbirth_date = '20.01.1973'))


). Запрос о выводе максимального и минимального кабинета в больницеmax(id),min(id)cabinet


). Запрос о выводе данных обо всех окулистах больницы*Doctorspeciality like('окулист')


). Запрос вывод данных о людях с фамилиями начинающимися на П и заканчивающимися на ВИЧfio,ID , male_female, birth_date

from patient

where fio like('п_%')and fio like('%_вич')

Похожие работы на - Информационная база данных для поликлиники

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!