Добавлен: 12.12.2023
Просмотров: 109
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Таблица «Карта больного»
Наименование | Тип данных | Размер поля | Ограничение допустимых значений |
Номер карты | Число | | NOT NULL >0 |
Симптомы | Поле MEMO | | |
Диагноз | Поле MEMO | | |
Лекарство | Поле MEMO | | |
Таблица «Врач»
Наименование | Тип данных | Размер поля | Ограничение допустимых значений | ||
ID врача | Число | | NOT NULL >0 | ||
ФИО | Текст | 100 | | ||
Часы приема с: | Дата/время | 00:00 | | ||
Часы приема до: | Дата/время | 00:00 | | ||
Номер кабинета | Число | | NOT NULL >0 |
Таблица «Приём»
Наименование | Тип данных | Размер поля | Ограничения допустимых значений |
ID врача | Число | | NOT NULL >0 |
Номер кабинета | Число | 3 | NOT NULL >0 |
Дата и время приёма | Дата/время | 00.00.00 00:00 | |
Номер полиса | Число | | NOT NULL >0 |
Таблица «Кабинет»
Наименование | Тип данных | Размер поля | Ограничения допустимых значений |
Номер кабинета | Число | | NOT NULL >0 |
Назначение | Текст | 50 | |
1.5 ER- диаграмма
Рисунок 2. ER- диаграмма
Глава 2. Разработка базы данных «Регистратура поликлиники»
2.1 Выбор СУБД
СУБД Access является системой управления базами данных реляционного типа. Данные хранятся в такой базе в виде таблиц, строки (записи) которых состоят из наборов полей определенных типов. С каждой таблицей могут быть связаны индексы (ключи), задающие нужные пользователю порядки на множестве строк. Таблицы могут иметь однотипные поля (столбцы), и это позволяет устанавливать между ними связи, выполнять операции реляционной алгебры. Типичными операциями над базами данных являются определение, создание и удаление таблиц, модификация определений (структур, схем) существующих таблиц, поиск данных в таблицах по определенным критериям (выполнение запросов), создание отчетов о содержимом базы данных.
СУБД позволяет задавать типы данных и способы их хранения. Можно также задать критерии (условия), которые СУБД будет в дальнейшем использовать для обеспечения правильности ввода данных. В самом простом случае условие на значение должно гарантировать, что не будет введен случайно в числовое поле буквенный символ. Другие условия могут определять область или диапазоны допустимых значений вводимых данных.
Microsoft Access предоставляет максимальную свободу в задании типа данных (текст, числовые данные, даты, время, денежные значения, рисунки, звук, электронные таблицы). Можно задавать также форматы хранения представления этих данных при выводе на экран или печать. Для уверенности, что в базе хранятся только корректные значения, можно задать условия на значения различной степени сложности.
В Microsoft Access для обработки данных базовых таблиц используется мощный язык SQL (структурированный язык запросов). Используя SQL можно выделить из одной или нескольких таблиц необходимую для решения конкретной задачи информацию. Access значительно упрощает задачу обработки данных. Совсем не обязательно знать язык SQL. При любой обработке данных из нескольких таблиц Access использует однажды заданные связи между таблицами.
На основе всего сказанного ранее, для разработки базы данных «Регистратура поликлиники» была выбрана СУБД Access.
2.2 Создание элементов базы данных
2.2.1 Таблицы
Первый этап разработки базы данных- создание таблиц. Существует 4 способа создания таблиц: Конструктор, Мастер таблиц, Импорт таблиц, Режим таблицы.
В режиме Конструктора пользователь сам может устанавливать параметры всех элементов структуры таблицы. Мастер таблиц автоматически формирует таблицу по одному из шаблонов. Режим Импорт таблиц позволяет переносить таблицы, созданные в других приложениях Windows, в базы данных Access. В Режиме таблицы пользователь может создать новую таблицу, не определяя предварительно её структуру. Основным является режим создания таблиц с помощью Конструктора.
База данных регистратуры поликлиники содержит 5 таблиц:
1. Таблица «Пациент», которая содержит поля: номер полиса, ФИО, адрес, дата и год рождения, номер карты.
2.Таблица «Карта больного»,содержащая поля: номер карты, симптомы, диагноз, лекарство.
3.Таблица «Врач». Содержит поля: ID врача, ФИО, часы приёма с:, часы приёма до:, номер кабинета.
4.Таблица «Приём», которая содержит следующие поля: ID врача, номер кабинета, дата и время приёма, номер полиса.
5.Таблица «Кабинет», содержащая поля: номер кабинета, назначение.
Таблица «Пациент» связана с таблицей «Карта больного» отношениями один-к-одному.
Таблица «Пациент» связана с таблицей «Приём» отношениями один-ко-многим.
Таблица «Кабинет» и таблица «Приём» связаны между собой отношениями один-ко-многим.
Таблица «Врач» связана с таблицей «Приём» отношениями один-ко-многим.
Отношения между таблицами представлены на рисунке 3.
Рисунок 3. Схема данных
2.2.2 SQL запросы
Основным назначением запросов является отбор данных по критериям поиска. Их можно создавать с помощью конструктора, мастера запросов или непосредственно на языке SQL.
В базе данных регистратуры поликлиники содержится 10 запросов:
1. Запрос списка пациентов.
Данный запрос даёт следующую информацию: номер карты, фамилия, имя, отчество, адрес, год рождения и номер полиса пациента.
Так этот запрос выглядит на языке SQL:
SELECT Пациент.[Номер карты], Пациент.ФИО, Пациент.Адрес, Пациент.[Год рождения], Пациент.[Номер полиса]
FROM Пациент;
2. Запрос списка врачей.
Этот запрос даёт следующую информацию: фамилия, имя, отчество, номер кабинета и часы приёма врачей поликлиники.
На языке SQL он выглядит следующим образом:
SELECT Врач.ФИО, Врач.[Номер кабинета], Врач.[Часы приёма с:], Врач.[Часы приема до:]
FROM Врач;
3. Запрос информации о диагнозе пациента.
Данный запрос выдаёт диагноз определённого пациента и рекомендуемое лекарство.
На языке SQL этот запрос выглядит:
SELECT [Карта больного].Диагноз, [Карта больного].Лекарство, Пациент.ФИО
FROM [Карта больного] INNER JOIN Пациент ON [Карта больного].[Номер карты] = Пациент.[Номер карты]
WHERE (((Пациент.ФИО)=[Введите ФИО]));
4. Запрос номера кабинета.
Этот запрос выдаёт информацию: номер конкретного кабинета и ФИО врача, который принимает в данном кабинете.
Этот запрос на языке SQL выглядит так:
SELECT Кабинет.[Номер кабинета], Кабинет.Назначение, Врач.ФИО
FROM Кабинет INNER JOIN Врач ON Кабинет.[Номер кабинета]=Врач.[Номер кабинета]
WHERE (((Кабинет.Назначение)=[Введите Назначение кабинета]));
5. Запрос о времени и дате проведения приёма.
Данный запрос предоставляет такую информацию, как: дата и время приёма, номер кабинета, в котором будет проходить приём и фамилия, имя, отчество врача, который будет проводить приём.
На языке SQL данный запрос выглядит так:
SELECT Пациент.ФИО, Прием.[Номер кабинета], Прием.[Дата и время приема], Врач.ФИО
FROM Врач INNER JOIN (Пациент INNER JOIN Прием ON Пациент.[Номер полиса]=Прием.[Номер полиса]) ON Врач.[Номер кабинета]=Прием.[Номер кабинета]
WHERE (((Пациент.ФИО)=[Введите ФИО]));
6. Запрос на получение информации о рекомендуемом лекарстве.
Данный запрос даёт следующую информацию: номер полиса определённого пациента и лекарство, прописанное лечащим врачом.
На языке SQL запрос выглядит так:
SELECT [Карта больного].Лекарство, Пациент.[Номер полиса]
FROM [Карта больного] INNER JOIN Пациент ON [Карта больного].[Номер карты]=Пациент.[Номер карты]
WHERE (((Пациент.[Номер полиса])=[Введите номер полиса]));
7. Запрос на получение информации о карте больного.
Этот запрос выдаёт следующую информацию: номер карты, симптомы, диагноз, назначенное лекарство.
На языке SQL данный запрос выглядит так:
SELECT [Карта больного].[Номер карты], [Карта больного].Симптомы, [Карта больного].Диагноз, [Карта больного].Лекарство, Пациент.ФИО
FROM [Карта больного] INNER JOIN Пациент ON [Карта больного].[Номер карты]=Пациент.[Номер карты]
WHERE (((Пациент.ФИО)=[Введите ФИО]));
8. Запрос «Список приёмов».
Данный запрос даёт такую информацию, как: фамилия, имя, отчество пациента, записавшегося на приём; фамилия, имя, отчество врача, который будет проводить приём; номер кабинета, в котором будет проходить приём и дата и время приёма(см.рисунок 4). Так запрос выглядит на языке SQL:
SELECT Прием.[Номер кабинета], Прием.[Дата и время приема], Пациент.ФИО, Врач.ФИО
FROM Врач INNER JOIN (Пациент INNER JOIN Прием ON Пациент.[Номер полиса]=Прием.[Номер полиса]) ON Врач.[Номер кабинета]=Прием.[Номер кабинета];
Рисунок 4. Запрос «Список приёмов»
2.3 Формы
Access предоставляет возможность вводить данные либо непосредственно в таблицу, либо с помощью форм. Формы рекомендуется использовать, если данные часто меняются или база постоянно пополняется новыми записями. С помощью форм данные можно не только вводить, но и отображать в удобном для пользователя виде.
Формы можно создавать в режиме Конструктор или с помощью Мастера форм, или использовать автоформы. В отличие от таблиц и запросов, которые рекомендуется формировать с помощью Конструктора, формы удобнее создавать, используя автоформы или Мастер форм, а Конструктор применять при редактировании и форматировании форм.
Использование Мастера форм позволяет отображать в форме не все поля источника данных, а выборочно, по желанию пользователя. Для выбора поля в окне Доступные поля маркируется имя требуемого поля, а затем выполняется щелчок на кнопке переноса . Для «переноса» всех полей источника данных в окно Выбранные поля используется кнопка .
Создавая форму с помощью Мастера, можно выбрать внешний вид формы: в один столбец (на экране отображается только одна запись), ленточный или табличный. Можно также задать требуемый стиль и имя формы. На рисунке 5 показано как с помощью Мастера форм создаётся форма «Пациент».
Рисунок 5. Создание формы «Пациент»
В базе данных «Регистратуры поликлиники» содержатся 7 форм:
1. Форма «Врач».
Данная форма предназначена для ввода таких данных в таблицу «Врач»,как : ID врача, фамилия, имя, отчество, номер кабинета, в котором он принимает, часы приёма (с: ,до:).
2. Форма «Кабинет».
Данная форма предназначена для ввода следующих данных в таблицу «Кабинет»: номер кабинета и его назначение.
3. Форма «Карта больного».
Данная форма предназначена для ввода следующих данных в таблицу «Карта больного»: номер карты, симптомы, диагноз и рекомендуемое лекарство.
4. Форма «Пациент» предназначена для ввода таких данных в таблицу «Пациент», как: номер полиса, фамилия, имя, отчество пациента, его адрес, год рождения и номер карты.