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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 17.09.2014
Размер файла 6,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

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

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

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

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

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

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

4. ВЫБОР СУБД

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

ЗАКЛЮЧЕНИЕ

ЛИТЕРАТУРА

Приложения

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

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

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- Id *

ФИО

пол

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

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

Id*

ФИО

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

пол

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

специализация

Id кабинета.

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

Id*

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

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

Id*

Лекарства.

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

Id*

Дата

Время

Id пациента

Id доктора.

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

Id*

Id дней

Время начала

Время конца.

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

Id*

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

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

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

Id*

Дни недели.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. ВЫБОР СУБД

Я выбрала промышленную СУБД Oracle.

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

ORACLE удовлетворяет промышленно принятым стандартам по языку доступа к данным, операционным системам, интерфейсам с пользователем и сетевым протоколам. Это "открытая" система, которая защищает инвестиции заказчика.

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

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

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

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

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

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

CREATE TABLE Patient (

Id number primary key NOT NULL,

FIO varchar2 (100),

male_female varchar2 (100),

birth_date date,

diagnosis varchar2 (100)

)

Таблица 2. Доктор.

CREATE TABLE Doctor (

Id number primary key NOT NULL,

FIO varchar2 (100),

male_female varchar2 (100),

birth_date date,

speciality varchar2 (100)

)

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

CREATE TABLE Diagnosis (

Id number primary key NOT NULL,

diagnosis_name varchar2 (100),

note varchar2 (100)

)

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

CREATE TABLE Cure (

Id number primary key NOT NULL,

drugs varchar2 (100)

)

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

CREATE TABLE Talon (

Id number primary key NOT NULL,

data date,

time varchar2 (100)

)

Таблица 6. Кабинет.

CREATE TABLE Cabinet (

Id number primary key NOT NULL,

name_cabinet varchar2 (100)

)

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

CREATE TABLE Receptiontime (

Id number primary key NOT NULL,

time varchar2 (100)

)

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

CREATE TABLE Days (

Id number primary key NOT NULL,

time varchar2 (100)

)

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

CREATE TABLE Cabinet (

Id number primary key NOT NULL,

name_cabinet varchar2 (100)

)

ЗАКЛЮЧЕНИЕ

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

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

ЛИТЕРАТУРА

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

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

Приложение А

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

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

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

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

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

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

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

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

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

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

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

ПРИЛОЖЕНИЕ Б

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

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

Select *

FROM patient

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

select speciality

from doctor;

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

Select pat.FIO, pat.Birth_date

FROM patient pat

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

Select doc.FIO, doc.Speciality

FROM Doctor doc

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

Select Diagnosis_name

FROM Diagnosis

WHERE Diagnosis_name LIKE ('с%')

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

select birth_date,fio

from Doctor

where birth_date=(select min(birth_date)from doctor);

7). Запрос о выводе пациентов с id больше 8

select ID, FIO

from patient

where ID>=8

8). запрос о выводе пациентов с id от 8 до 16

select fio

from patient

where patient.ID between (8)and(16)

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

Select

fio

from patient

where male_female like('муж')

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

SELECT count(*), p.timest

FROM receptiontime p

GROUP BY p.timest

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

SELECT count(*), p.male_female

FROM patient p

GROUP BY p.male_female

12). Запрос о выводе пациентов с фамилиями на букву И

Select FIO

FROM patient

WHERE FIO LIKE ('и%')

13). Запрос о выводе пациентов с 10.10.2011 и по 10.10.2012

select fio

from patient

where( birth_date > '10.10.2011')and(birth_date > '10.10.2012');

14). Запрос о выводе пациентов, в приеме которых есть цифра 1

Select Data

FROM Talon

WHERE Data LIKE ('1%')

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

select FIO,id_cabinet

from doctor

where ID_cabinet=(102)

16). Запрос о выводе всех кабинетов поликлиники, кроме 102

select speciality, fio

from doctor

where not (speciality IN(select speciality

from doctor

where id_cabinet = 102))

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

Select

fio

from patient

where male_female like('муж')

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

select speciality, fio

from doctor

where not (speciality IN(select speciality

from doctor

where birth_date = '20.01.1973'))

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

select max(id),min(id)

From cabinet

20). Запрос о выводе данных обо всех окулистах больницы

Select*

from Doctor

where speciality like('окулист')

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

select fio,ID , male_female, birth_date

from patient

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

Размещено на Allbest.ru


Подобные документы

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

    дипломная работа [1,9 M], добавлен 26.03.2013

  • Проектирование базы данных поликлиники "Добрый доктор", построение концептуальной модели данных на основе анализа предметной области. Компьютерная сеть поликлиники: топология, достоинства и недостатки. Создание рекламного сайта поликлиники в виде HTML.

    дипломная работа [2,1 M], добавлен 09.06.2013

  • Назначение программы "Учёт пациентов" и её подсистемы. Диаграмма классов предметной области, диаграмма последовательностей, описание автоматизируемых функций и характеристика функциональной структуры. Физическая схема и описание таблиц базы данных.

    дипломная работа [3,3 M], добавлен 15.11.2016

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

    курсовая работа [1,4 M], добавлен 23.09.2016

  • Разработка информационной системы для предметной области с использованием заданных структур данных. Создание и проверка базы данных, которая позволяет вводить информацию, хранить её в файле, осуществлять поиск, модификацию, сортировку и удаление данных.

    курсовая работа [240,0 K], добавлен 29.03.2016

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

    дипломная работа [8,4 M], добавлен 19.10.2012

  • Проведение структурного системного анализа предметной области и разработка информационной системы "Клиника". Описание диаграмм потоков данных в информационной базе. Построение инфологической модели информационной системы. Основной интерфейс баз данных.

    курсовая работа [2,1 M], добавлен 11.07.2013

  • Основные виды баз данных. Система управления базами данных. Анализ деятельности и информации, обрабатываемой в поликлинике. Состав таблиц в базе данных и их взаимосвязи. Методика наполнения базы данных информацией. Алгоритм создания базы данных.

    курсовая работа [3,1 M], добавлен 17.12.2014

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

    курсовая работа [1,3 M], добавлен 08.08.2012

  • Этап концептуального проектирования базы данных: описание и характеристика предметной области, ограничения и допуения, модель "сущность-связь" (ER-диаграмма). Выбор модели данных. Требования к интерфейсу пользователя, создание запросов в среде Delphi.

    курсовая работа [2,2 M], добавлен 25.05.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.