Автор работы: Пользователь скрыл имя, 30 Ноября 2014 в 11:15, контрольная работа
Одной из актуальных проблем любого вида человеческой деятельности является проблема обработки увеличивающегося потока информации.
Перспективным способом решения данной проблемы является автоматизация работы с информацией, в частности, создание компьютерных баз данных, позволяющих хранить, систематизировать и обрабатывать данные.
Одной из актуальных проблем любого вида человеческой деятельности является проблема обработки увеличивающегося потока информации.
Перспективным способом решения данной проблемы является автоматизация работы с информацией, в частности, создание компьютерных баз данных, позволяющих хранить, систематизировать и обрабатывать данные.
Целью данной работы является создание базы данных больницы (частной клиники). Она предназначена для хранения информации о врачах, пациентах клиники, вспомогательной информации о распорядке работы больницы (кабинеты, графики работы) и приеме больных, с возможностью внесения данных, выборки и изменения данных, вывода информации в необходимом формате.
Предметной областью базы данных является деятельность частной больницы, специализирующейся на лор-заболеваниях.
Прием пациентов ведут несколько врачей в разных кабинетах. Входная информация для базы данных: медицинские карты, бланки приема пациентов, сведения о клиентах и врачах.
Целью создания базы данных является автоматизация учета информации о приеме пациентов.
Назначение проектируемой базы:
- хранение информации о врачах клиники;
- хранение информации о кабинетах клиники;
- хранение информации о пациентах;
- хранение информации о приемах, в том числе диагнозах и лечении, а также стоимости лечения;
- обновление и добавление информации;
- анализ информации по различным срезам (пациенты, кабинеты, врачи);
- выдача итоговой информации в виде отчетов.
Анализ информации проектируемой базы данных позволяет выделить следующие основные информационные объекты:
Пациент, Врач, График работы врача, Кабинет (рисунок 1).
Рисунок 1 – Информационные объекты предметной области «Больница»
Реальные отношения между информационными объектами "многие–ко-многим" разбиваются на отношения "один-ко-многим" после ввода пятого объекта-связки Прием.
Атрибутами объекта График работы являются:
Атрибутами объекта Врач являются:
Атрибутами объекта Пациент являются:
Атрибутами объекта Кабинет являются:
Атрибутами объекта-связки Прием являются:
Номер (код) для каждого объекта необходим для однозначной идентификации записей и в дальнейшем будет использоваться как ключевое поле.
Каждому объекту поставим в соответствие таблицу.
Таблица «Врачи» содержит 10 полей. Поля и свойства полей таблицы «Врачи» приведены в таблице:
Таблица «Врачи»
Поле |
Тип поля |
Свойства поля |
Код врача |
Счетчик |
Ключевое поле |
Фамилия |
Текстовый |
Обязательное поле. Длина- 30 символов. |
Имя |
Текстовый |
Длина- 30 символов. |
Отчество |
Текстовый |
Длина- 30 символов. |
Специальность |
Текстовый, подстановка (поле со списком) |
Источник строк: список значений: терапевт;отоларинголог |
График работы |
Текстовый, подстановка (поле со списком) |
Источник строк: таблица «График работы» (столбец подстановки содержит поля «График работы» и «Выходные дни» с заголовками, отображается поле «График работы».) |
Образование |
Текстовый |
Длина- 50 символов. Значение по умолчанию: "высшее (БГМУ)" |
Пол |
Текстовый, подстановка (поле со списком) |
Источник строк: список значений: муж, жен |
Дата рождения |
Дата/время |
Краткий формат даты Маска ввода: 00.00."19"00 |
Дата начала работы |
Дата/время |
Краткий формат даты 00.00.0000 |
Таблица «Пациенты» содержит 8 полей. Поля и свойства полей таблицы «Пациенты» приведены в таблице:
Таблица «Пациенты»
Поле |
Тип поля |
Свойства поля |
Номер пациента |
Счетчик |
Ключевое поле |
Фамилия |
Текстовый |
Обязательное поле. Длина- 40 символов. |
Имя |
Текстовый |
Длина- 30 символов. |
Отчество |
Текстовый |
Длина- 30 символов. |
Пол |
Текстовый, подстановка (поле со списком) |
Источник строк: список значений: муж, жен. При вводе ограничиться списком. |
Дата рождения |
Дата/время |
Краткий формат даты Маска ввода: 00.00.0000 Условие на значение: значение между 1990 и текущим годом: Between #01.01.1900# And Date(). Сообщение об ошибке: «Дата неверная! Пожалуйста, повторите ввод.» |
Телефон |
Текстовый |
Длина- 7 символов. Маска ввода: 000\-00\-00 Условие на значение: не пустое. Сообщение об ошибке: «Поле очень важное! Заполните его, пожалуйста.» |
Наличие карточки |
Логический Тип элемента управления: флажок |
Формат поля: Да/Нет |
Таблица «Графики работы» содержит 4 поля. Поля и свойства полей таблицы «Графики работы» приведены в таблице:
Таблица «Графики работы»
Поле |
Тип поля |
Свойства поля |
График работы |
Текстовый |
Ключевое поле Длина- 1 символ. |
Рабочие дни |
Текстовый |
Длина- 20 символов. |
Выходные дни |
Текстовый |
Обязательное поле. Длина- 20 символов. |
Примечание |
Текстовый |
Длина- 100 символов. |
Таблица «Кабинеты» содержит 4 поля. Названия, типы и свойства полей таблицы приведены в таблице:
Таблица «Кабинеты»
Поле |
Тип поля |
Свойства поля |
Номер кабинета |
Числовой |
Ключевое поле Целое, основной формат, число десятичных знаков- 0, формат ввода-00 |
Режим |
Текстовый |
Длина- 50 символов. Значение по умолчанию: "8.00-9.00 санобработка " Обязательное поле. |
Ответственный за кабинет |
Текстовый |
Длина- 40 символов. |
Внутренний телефон |
Текстовый |
Длина- 4 символа. Маска ввода: 0\-00 |
Таблица «Прием» содержит 10 полей. Поля и свойства полей таблицы приведены в таблице:
Таблица «Прием»
Поле |
Тип поля |
Свойства поля |
Номер |
Счетчик |
Ключевое поле |
Дата приема |
Дата/время |
Краткий формат даты Маска ввода: 00.00."20"00 |
Время приема |
Дата/время |
Краткий формат времени Маска ввода: 00:00 |
Пациент (код) |
Числовой (Подстановка; Тип элемента управления- поле со списком) |
Источник строк: таблица «Пациенты» (столбец подстановки содержит поля «Номер пациента» и «Фамилия» из таблицы «Пациенты», подставляется поле «Номер пациента».) Обязательное поле. |
Врач |
Числовой (Подстановка; Тип элемента управления- поле со списком) |
Источник строк: таблица «Врачи» (столбец подстановки содержит поля «Фамилия», «Специальность» и «График работы» из таблицы «Врачи», подставляется поле «Фамилия»). Обязательное поле. |
Кабинет |
Числовой (Подстановка; Тип элемента управления- поле со списком) |
Источник строк: таблица «Кабинеты» (столбец подстановки содержит поля «Номер», «Режим» из таблицы «Кабинеты», подставляется поле «Номер»). Обязательное поле. |
Диагноз |
Текстовый |
Обязательное поле. Длина- 50 символов. Значение по умолчанию «устанавливается». |
Расширенная информация о лечении |
Поле МЕМО |
Формат поля: Да/Нет |
К оплате |
Денежный |
Формат поля- денежный. Число десятичных знаков- 0 |
Наличие оплаты |
Логический |
Формат поля: Да/Нет Тип элемента управления: флажок |
Для установления связей каждому объекту назначен ключ (ключевое поле для соответствующей таблицы). Причем ключи объектов Пациент, Кабинет и Врач (первичные) должны присутствовать как внешние ключи в объекте Прием, а ключ объект График работы (первичный– его название) –в объекте Врачи.
Все связи имеют тип «один-ко-многим» и обеспечивается целостность данных (рисунок 2).
Рисунок 2 – Отношения 1:∞ между информационными объектами– связи между таблицами базы данных.
Создадим запросы для обработки информации, содержащейся в таблицах.
Запрос 1 (рисунок 3) выводит по алфавиту список всех пациентов врача Петрика с датами и стоимостью приемов. Это простой запрос на выборку с сортировкой.
Рисунок 3 – Запрос на выборку пациентов Петрика
Запрос 2 выводит телефоны всех пациентах, которые посещали отоларингологов и год рождения которых больше, чем 1987. В данном запросе используется два условия (рисунок 4).
Рисунок 4 – Запрос 2 на выборку телефонов пациентов
Параметрический запрос 3 выводит список врачей, в графике которых среди рабочих дней имеется тот, который вводится пользователем с клавиатуры (рисунок 5).
Рисунок 5 –Параметрический запрос 3 на выборку врачей по дню недели
Запрос 4 выводит вычисляемое поле, где находится стаж врачей. Чтобы это число выразить в годах, используется встроенная функция Datediff с параметром “yyyy” (единицы измерения– годы), при этом стаж вычисляется как разница текущей даты (функция Date()) и поля «Начало работы» таблицы «Врачи» (рисунок 6).
Рисунок 6 –Запрос на вычисление стажа врачей
Запрос 5 использует групповые операции и выводит количество (Count) приемов пациентов по датам (рисунок 7).
Рисунок 7 –Запрос на вывод ежедневного количества приемов пациентов
Перекрестный запрос 6 вычисляет суммарную стоимость лечения пациентов по дням и по врачам: то есть для каждого врача–заголовка строки– и каждой даты– заголовка столбца– вычисляется на пересечении значение ячейки как суммы соответствующих оплат (рисунок 8).
Рисунок 8–Оплата за лечение по датам и врачам– перекрестный запрос
Запрос 7 на создание таблицы создает дополнительную таблицу из таблицы «Прием», помещая туда список пациентов, уже оплативших лечение. В этой таблице будут также добавлены поля из других таблиц (рисунок 9).
Рисунок 9–Запрос на создание дополнительной таблицы
Запрос8 на обновление дополнительной таблицы увеличивает записи поля «К оплате» на 10% (рисунок10)
Рисунок 10–Запрос на обновление полей дополнительной таблицы
Запрос 9 на добавление добавляет в дополнительную таблицу (в которую изначально была отобрана информация о пациентах, оплативших лечение) информацию о клиентах, не оплативших лечение (рисунок 11).
Рисунок 11–Запрос на добавление полей дополнительной таблицы
Запрос 10 на удаление (рисунок 12) удаляет из дополнительной таблицы информацию о пациентах, которые обращались к терапевтам.