Файл: 1. Проектирование базы данных 4 Анализ предметной области 4.docx
Добавлен: 30.11.2023
Просмотров: 348
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1.1. Анализ предметной области
1.3. Концептуальное проектирование базы данных
1.4. Логическое проектирование базы данных
1.5. Физическое проектирование базы данных
2.1. Состав и структура базовых таблиц
3 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА
4 РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ ПРОГРАММЫ
ТитульникСодержание
Введение 3
1. Проектирование базы данных 4
1.1. Анализ предметной области 4
1.2. Постановка задачи 4
1.3. Концептуальное проектирование базы данных 5
1.4. Логическое проектирование базы данных 7
1.5. Физическое проектирование базы данных 9
2. Реализация базы данных 11
2.1. Состав и структура базовых таблиц 11
2.2. Разработка запросов 12
3 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА 13
3.1 Диаграмма классов 13
4 РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ ПРОГРАММЫ 16
4.1 Описание программной реализации 16
4.2 Тестирование программы 19
Заключение 22
Список литературы 23
Приложение № 1. Листинг программы 24
Для объекта «Приемы» можно выделить следующие атрибуты: код записи, код клиента, код доктора, код болезни, код кабинета, дата приема, стоимость приема.. Атрибут «Код записи» является первичным ключом. Атрибуты «Код клиента», «Код доктора», «Код болезни», «Код кабинета» являются внешними ключами соответственно из объектов «Клиенты», «Доктора», «Болезни», «Кабинеты».Между объектами были определены связи следующих типов:
Таблица 2 – Характеристика отношения «Улицы»
Таблица 3 – Характеристика отношения «Болезни»
Таблица 4 – Характеристика отношения «Пациенты»
Таблица 5 – Характеристика отношения «Доктор»
Таблица 6 – Характеристика отношения «Кабинеты»
Таблица 7 – Характеристика отношения «Приемы»
CREATE TABLE IF NOT exists ills(
id integer not null key auto_increment,
ill_name varchar(45) unique
);
CREATE TABLE IF NOT exists streets(
id integer not null key auto_increment,
street_name varchar(45) unique
);
CREATE TABLE IF NOT exists clients(
id integer not null key auto_increment,
client_name varchar(45) unique,
client_phone text,
street_id int,
house int,
FOREIGN KEY (street_id) REFERENCES streets (id)
);
CREATE TABLE IF NOT exists doctors(
id integer not null key auto_increment,
doctor_name varchar(45) unique,
doctor_phone text
);
CREATE TABLE IF NOT exists types_cab(
id integer not null key auto_increment,
type_name varchar(45) unique
);
CREATE TABLE IF NOT exists cabinets(
id integer not null key auto_increment,
cabinet_name varchar(45) unique,
type_id int,
FOREIGN KEY (type_id) REFERENCES types_cab (id)
);
CREATE TABLE IF NOT exists orders(
id integer not null key auto_increment,
doctor_id int,
client_id int,
cabinet_id int,
ill_id int,
price float,
date_order datetime,
FOREIGN KEY (doctor_id) REFERENCES doctors (id),
FOREIGN KEY (cabinet_id) REFERENCES cabinets (id),
FOREIGN KEY (ill_id) REFERENCES ills (id),
FOREIGN KEY (client_id) REFERENCES clients (id)
);
Листинг 1. Создание таблиц
Введение 3
1. Проектирование базы данных 4
1.1. Анализ предметной области 4
1.2. Постановка задачи 4
1.3. Концептуальное проектирование базы данных 5
1.4. Логическое проектирование базы данных 7
1.5. Физическое проектирование базы данных 9
2. Реализация базы данных 11
2.1. Состав и структура базовых таблиц 11
2.2. Разработка запросов 12
3 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА 13
3.1 Диаграмма классов 13
4 РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ ПРОГРАММЫ 16
4.1 Описание программной реализации 16
4.2 Тестирование программы 19
Заключение 22
Список литературы 23
Приложение № 1. Листинг программы 24
Введение
Целью курсового проекта является проектирование и разработка информационной системы поликлиники.Актуальность ИС заключается в необходимости структуризации и упорядоченности информации, хранящейся в больших объемах, которые сложно обрабатывать без использования информационной системы.Данная подсистема должна хранить и обрабатывать информацию о пациентах поликлиники.Задачами курсовой работы являются:-
анализ предметной области; -
разработка структуры базы данных; -
создание базы данных средствами выбранной СУБД;
1. Проектирование базы данных
1.1. Анализ предметной области
Предметной областью данной курсовой работы являются данные о пациентах поликлиники.База данных должна хранить данные о каждой книге, о читателях и сотрудниках, а так же о выдаче и возврате книг в библиотеку. В базе данных должны быть данные о каждого пациенте, докторе, а так же о кабинетах, в которых они принимают. Также необходимо хранить сведения о приемах и выписанных диагнозах. Сведения о пациенте должны включать ФИО, улицу и дом проживания, а так же телефон для связи.О докторе необходимо хранить его ФИО и номер телефона.Так же необходимо сведения о приемах пациентов. В эти сведения входят данные о пациенте, докторе, кабинете приема, дате и времени приема и стоимости. Так же необходимо хранить сведение о выписанном диагнозе.В базе данных должны быть сведения о кабинетах, их название и типе.В сведения о болезни входит название болезни. Операторы данной программы ведут учет книг в библиотеки и операций с ними.1.2. Постановка задачи
Таким образом, необходимо разработать структуру базы данных, структуру запросов, сформировать схему данных с указанием первичных и внешних ключей. БД должна содержать следующую информацию:-
сведения о пациентах; -
сведения о врачах; -
сведения о кабинетах; -
сведения о болезнях; -
сведения о приемах; -
сведения о типах кабинетов; -
сведения об улицах;
1.3. Концептуальное проектирование базы данных
Проектирование концептуальной модели подразумевает выделение не только основных информационных объектов предметной области и атрибутов, но и определение связей между ними.На основании выполненного анализа предметной области для концептуальной модели базы данных библиотекb можно выделить следующие информационные объекты:-
Пациенты – справочник о званиях пациентах; -
Врачи – справочник о врачах; -
Болезни – справочник о болезнях; -
Кабинеты – справочник о кабинетах; -
Типы кабинетов – справочник о типах кабинетов; -
Приемы – справочник о приемах; -
Улицы – справочник о улицах района подведомственному поликлиники;
Для объекта «Приемы» можно выделить следующие атрибуты: код записи, код клиента, код доктора, код болезни, код кабинета, дата приема, стоимость приема.. Атрибут «Код записи» является первичным ключом. Атрибуты «Код клиента», «Код доктора», «Код болезни», «Код кабинета» являются внешними ключами соответственно из объектов «Клиенты», «Доктора», «Болезни», «Кабинеты».Между объектами были определены связи следующих типов:
-
Одного пациент может приходит несколько раз на приемы. Следовательно, тип связи между объектами «Пациенты» и «Приемы» «один-ко-многим»; -
Один доктор может принимать разных пациентов в разное время. Следовательно, тип связи между объектами «Доктора» и «Приемы» «один-ко-многим»; -
В одном кабинете может быть выполнено несколько приемов. Следовательно, тип связи между объектами «Кабинеты» и «Приемы» «один-ко-многим»; -
Один и тот же диагноз может быть выписан разным пациентам. Следовательно, тип связи между объектами «Болезни» и «Приемы» «один-ко-многим»; -
В поликлинике может быть несколько кабинетов с одним типом. Следовательно, тип связи между объектами «Типы кабинетов» и «Кабинеты» «один-ко-многим»; -
На одной улице может жить несколько пациентов. Следовательно, тип связи между объектами «Улицы» и «Пациенты» «один-ко-многим»;
1.4. Логическое проектирование базы данных
Для логической модели БД характерно определение типов данных, внешних ключей. Проектирование данной модели должно производиться независимо от того, какая система управления базами данных (СУБД) выбрана для конечной реализации БД.Также, необходимо привести все отношения к третьей нормальной форме (3НФ).Характеристика отношений логической модели БД представлена в таблицах 1 – 7.Таблица 1 – Характеристика отношения «Тип кабинета»| Имя атрибута | Тип данных | Ключ |
| Код типа | Счетчик | PK |
| Название типа | Текстовый | |
Таблица 2 – Характеристика отношения «Улицы»
| Имя атрибута | Тип данных | Ключ |
| Код улицы | Счетчик | PK |
| Название улицы | Текстовый | |
| Имя атрибута | Тип данных | Ключ |
| Код болезни | Счетчик | PK |
| Название болезни | Текстовый | |
| Имя атрибута | Тип данных | Ключ |
| Код пациента | Счетчик | PK |
| ФИО | Текстовый | |
| Телефон | Текстовый | |
| Код улицы | Числовой | |
| Номер дома | Числовой | FK |
| Имя атрибута | Тип данных | Ключ |
| Код доктора | Числовой | PK |
| ФИО | Текстовый | |
| Телефон | Текстовый | |
| Имя атрибута | Тип данных | Ключ |
| Код кабинета | Числовой | PK |
| Название кабинета | Текстовый | |
| Код типа кабинета | Числовой | FK |
| Имя атрибута | Тип данных | Ключ |
| Код приема | Счетчик | PK |
| Код пациента | Текстовый | FK |
| Код кабинета | Числовой | FK |
| Код доктора | Числовой | FK |
| Код болезни | Числовой | FK |
| Дата приема | Числовой | |
| Стоимость приема | Числовой | |
1.5. Физическое проектирование базы данных
Физическое проектирование БД выполняется с учетом выбранной СУБД. В данной работе в качестве СУБД используется MYSQL.Схема физической модели данных представлена на рисунке 3.Средствами MS Visio2007 была построена схема физической модели БД, которая представлена на рисунке 3.Рисунок 2 - Схема физической модели БДТаким образом, было произведено физическое проектирование БД.2. Реализация базы данных
2.1. Состав и структура базовых таблиц
База данных реализована средствами СУБД MYSQL. Запросы для создания таблиц приведены ниже.CREATE TABLE IF NOT exists ills(
id integer not null key auto_increment,
ill_name varchar(45) unique
);
CREATE TABLE IF NOT exists streets(
id integer not null key auto_increment,
street_name varchar(45) unique
);
CREATE TABLE IF NOT exists clients(
id integer not null key auto_increment,
client_name varchar(45) unique,
client_phone text,
street_id int,
house int,
FOREIGN KEY (street_id) REFERENCES streets (id)
);
CREATE TABLE IF NOT exists doctors(
id integer not null key auto_increment,
doctor_name varchar(45) unique,
doctor_phone text
);
CREATE TABLE IF NOT exists types_cab(
id integer not null key auto_increment,
type_name varchar(45) unique
);
CREATE TABLE IF NOT exists cabinets(
id integer not null key auto_increment,
cabinet_name varchar(45) unique,
type_id int,
FOREIGN KEY (type_id) REFERENCES types_cab (id)
);
CREATE TABLE IF NOT exists orders(
id integer not null key auto_increment,
doctor_id int,
client_id int,
cabinet_id int,
ill_id int,
price float,
date_order datetime,
FOREIGN KEY (doctor_id) REFERENCES doctors (id),
FOREIGN KEY (cabinet_id) REFERENCES cabinets (id),
FOREIGN KEY (ill_id) REFERENCES ills (id),
FOREIGN KEY (client_id) REFERENCES clients (id)
);
Листинг 1. Создание таблиц