Проектирование реляционных баз данных. 2
Поволжский
государственный университет телекоммуникаций
и информатики
Кафедра
экономических и информационных
систем
Проектирование
реляционных баз
данных
Содержание
Введение…………………………………………………………
1. Инфологическое
проектирование…………………………………………
1.1. Анализ предметной области……………………………………………….6
1.2. Анализ информационных задач и круга пользователей системы……….6
1.3. Составление
реляционных отношений………………………
2. Определение
требований к операционной
3. Выбор СУБД
и других инструментальных
4. Логическое проектирование БД……………………………………………...17
4.1. Нормализация
полученных отношений…………………………
4.2. Определение
дополнительных ограничений
4.3. Описание групп пользователей и прав доступа…………………………..26
5. Физическое проектирование БД……………………………………………..27
6. Реализация
проекта БД……………………………………………………
Заключение……………………………………………………
Список использованных
источников…………………………………………...
Цели
и задачи.
Цель курсового проектирования – применение на практике знаний, полученных в процессе изучения курса "Базы данных", и приобретение практических навыков при проектировании и создания информационных систем (ИС),основанных на базах данных.
Номер
варианта
Вариант 6 – Больница
Задача – информационная поддержка деятельности регистратуры больницы. БД должна осуществлять:
− учёт поступления пациентов (по отделениям);
− учёт проведённого лечения;
− учёт платных услуг с выдачей счетов на оплату;
− ведение архива выписанных пациентов.
Необходимо предусмотреть определение (по отделениям):
− пропускной способности больницы;
− среднего времени пребывания больных в стационаре;
− наличия свободных мест в палатах (отдельно для мужчин и для женщин);
− количества прооперированных пациентов (из них – с осложнениями и умерших);
−
смертности.
Введение
Проектирование баз данных - одна из наиболее сложных и ответственных задач, связанных с созданием информационной системы.
База данных- это совокупность данных конкретной предметной области,при чем данные организованы по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, и не зависят от программ обработки. В базе данных обеспечивается интеграция логически связанных данных при минимальном дублировании хранимых данных.
Одно из важнейших
достоинств реляционных баз данных
состоит в том, что вы можете хранить
логически сгруппированные
Visual Fox Pro - это система управления базами данных (СУБД). Под системой управления понимается комплекс программ, который позволяет не только хранить большие массивы данных в определенном формате, но и обрабатывать их, представляя в удобном для пользователей виде. Visual Fox Pro дает возможность также автоматизировать часто выполняемые операции (например, расчет заработной платы, учет материальных ценностей и т.п.). С помощью Visual Fox Pro можно не только разрабатывать удобные формы ввода и просмотра данных, но и составлять сложные отчеты.
Основная цель проектирования баз данных состоит в получении такого проекта, который удовлетворяет следующим требованиям:
1)Корректность
схемы БД, то есть база должна
быть гомоморфным образом
2)Обеспечение ограничений
3) Эффективность функционирования
4)Защита данных
5)Простота и удобство эксплуатации
6)Гибкость,
т.е. возможность развития БД.
- Инфологическое проектирование
1.1. Анализ предметной области
База данных создаётся для поддержки деятельности регистратуры больницы. БД должна содержать данные о пациентах, проведенном лечении, платных услугах, количестве мест в палатах и смертности.
В соответствии с предметной областью система строится с учетом следующих особенностей:
-пациента могут лечить сразу несколько врачей, при чем один из них главный врач;
-диагноз выписывается врачом;
-врач может
лечить сразу несколько
-в одной палате могут жить сразу несколько пациентов;
-в каждом
отделении больницы много
Рассмотрение такой структуры базы данных начинается с построения простой модели взаимосвязи объектов.
В самых общих чертах такое моделирование(оно называется моделированием сущностей) подразумевает определение сле-
дующих элементов: объектов (сущностей), информация о которых будет содержаться в БД; свойств этих объектов(атрибутов); взаимосвязей между ними. Выделим базовые сущности этой предметной области. Без учета финансовой информации список сущностей будет следующим:
-ВРАЧИ. Атрибуты-ФИО, номер телефона.
-ПАЦИЕНТЫ. Атрибуты-ФИО, телефон, возраст
-СТАЦИОНАР ПАЦИЕНТОВ. Атрибуты - дата начала лечения, номер палаты, дата окончания лечения, результат
Каждый пункт
этого списка описывает отдельное свойство
или атрибут рассматриваемой сущности
и является потенциальным столбцом в БД.
Названия столбцов должны быть предельно
ясными (назначение столбца должно быть
понятно из его названия) и краткими (чтобы
упростить ввод и названий и уменьшить
их ширину).
1.2. Анализ информационных задач и круга пользователей системы
Система создается для обслуживания следующих групп пользователей:
-врачей;
-медсестер;
-сотрудников, которые регистрируют больных.
1) Функциональные возможности:
− ведение БД (запись, чтение, модификация, удаление в архив);
− обеспечение логической непротиворечивости БД;
− обеспечение защиты данных от несанкционированного или случайного доступа (определение прав доступа);
− реализация наиболее часто встречающихся запросов в готовом виде;
− предоставление возможности сформировать произвольный запрос на
языке манипулирования данными.
2) Готовые запросы:
-вывод пациентов с летальным исходом;
-вывод количество мест в мужских палатах;
-вывод количество мест в женских палатах;
-вывод количество пациентов, которым делали операцию
- Составление реляционных отношений
Для того, чтобы сделать работы регистратуры эффективнее необходимо учитывать всех больных, поступавших в больницу. А также время и дату поступления, к какому врачу, то есть кабинет и результат обследования или лечения. После выделения сущностей, необходимо определить первичные ключи.
Рассмотрим таблицу Пациенты. Среди ее столбцов очевидным кандида-
том на первичный ключ является ID-пациента. Первичные ключи
выделяют подчеркиванием.
Примечание: суррогатный первичный ключ также может вводиться в тех случаях, когда потенциальный ключ имеет большой размер (например, длинная
символьная
строка) или является составным (не
менее трёх атрибутов).
Сурагатный ключ в нашем случаи будет ID-пац_стационар. В таблице Врачи первичным ключом будет ID-врача. В таблице Прием-ID-приема, таблицу Диагноз можно идентифицировать ключом ID-диагноза.
После определения ключей необходимо определить связи между сущностями. В моей базе данных практически все связи один ко многим. Рассмотрим одну из них: в одном стационаре может находится много врачей. Единственная связь один к одному между процедурами и пац_стационаром.
Тип связи M:N реализуется путем ввода ассоциативного объекта, кото-
рый является соединением первичных ключей соответствующих отношений
(рис. 1.1), а связь
M:N разбивается на две связи
типа 1:N (рис. 1.2).
Пациенты
Прием
записывает имеет
| Код
отделения
Кол-во палат Этаж |
имеют
Пац_стационар
имеются
| ID-лечения
ID-пац_стационара |
Процедуры
Рис.
1.1. Диаграмма сущность-связь БД больницы
Пациенты Прием R2 Врачи
R3R4 R1
R9 R11
R5 R7
| Код
отделения
Кол-во палат Этаж |
Пац_стационар R8 Диагноз Лечение
R15
R6
R12
R16
| ID-лечения
ID-пац_стационара |
Процедуры
R19
Рис. 1.2. Уточненная
диаграмма сущность-связь БД больницы
В таблице 1.1 приведено
описание связей
Таблица описания связей
| Название связи | Обозначение связи | Главный объект | Связанный объект | Вид связи | Условие связи | Способ реализации | Примечание |
| имеет | R1 | Прием | Врачи | М:1 | По коду врача | ||
| имеет | R2 | Врачи | Прием | 1:М | По коду врача | ||
| записывает | R3 | Пациенты | Прием | 1:М | По коду пациента | ||
| записываются | R4 | Прием | Пациенты | М:1 | По коду пациента | ||
| имеются | R5 | Пациенты | Пац_стационар | 1:М | По коду пациента | ||
| имеют | R6 | Пац_стационар | Пациенты | М:1 | По коду пациента | ||
| записывает | R7 | Прием | Диагноз | М:1 | По коду диагноза | ||
| записывается | R8 | Диагноз | Прием | 1:М | По коду диагноза | ||
| имеет | R9 | Врачи | Стационар | М:1 | По коду отделения | ||
| имеются | R10 | Стационар | Врачи | 1:М | По коду отделения | ||
| имеют | R11 | Врачи | Палаты | 1:М | По коду отделения | ||
| имеются | R12 | Палаты | врачи | М:1 | По коду отделения | ||
| содержит | R13 | Диагноз | Лечение | М:1 | По коду лечения | ||
| содержится | R14 | Лечение | Диагноз | 1:М | По коду лечения | ||
| имеются | R15 | Пац_стационар | Процедуры | M:1 | По коду пац_стационара | ||
| имеются | R16 | Процедуры | Пац_стационар | 1:M | По коду пац_стационара | ||
| содержит | R17 | Пац_стационар | Палаты | М:1 | По коду номера палаты | ||
| содержатся | R18 | палаты | Пац_стационар | 1:М | По коду номера палаты | ||
| содержит | R19 | Процедуры | Лечение | М:1 | По коду лечения | ||
| содержится | R20 | лечение | процедуры | 1:М | По коду лечения |
Отношения приведены в табл. 1.2 – 1.8. В столбце "Динамичность" бу-
дем помечать буквой D изменяемые атрибуты (динамические), S - неизменяемые (статические). "Количество повторений" означает, сколько раз повторяется множественный атрибут. В столбце "Область возможных значений" указывается тип (C - символы, D - дата, N - число) и, возможно, диапазон изменения атрибута. В столбце "Вывод значений" указываются номера атрибутов, из которых можно получить данный атрибут. Выводимый атрибут можно не хранить. В столбце "Ограничение доступа" указано, кто имеет право изменять сведения.
Описание атрибутов объекта
| Название
атрибута |
Обозначение
атрибута |
Динамичность | Количество
повторений |
Область
возможных значений |
Вывод
значений |
Ограничение
доступа |
Примечание |
| ID-пациента | ID_pacien | S | - | N(4) | см. п.4.3 | первичный ключ | |
| ФИО | FIO | D | 1 | C(50) | см. п.4.3 | Обязательное поле | |
| Номер телефона | Nomer_telefona | D | 1 | C(15) | см. п.4.3 | Многозначное поле | |
| Возраст | Vozrast | D | 1 | N(10) | см. п.4.3 | Обязательное поле |
Описание атрибутов объекта
| Название
атрибута |
Обозначение
атрибута |
Динамичность | Количество
повторений |
Область
возможных значений |
Вывод
значений |
Ограничение
доступа |
Примечание |
| ID-врача | ID_pacien | S | - | N(4) | см. п.4.3 | первичный ключ | |
| ФИО | FIO | D | 1 | C(50) | см. п.4.3 | Обязательное поле | |
| Номер телефона | Nomer_telefona | D | 1 | C(15) | см. п.4.3 | Многозначное поле |
Описание атрибутов
объекта Пац_Стационара
| Название
атрибута |
Обозначение
атрибута |
Динамичность | Количество
повторений |
Область
возможных значений |
Вывод
значений |
Ограничение
доступа |
Примечание |
| ID-пац_стационара | id_pac_sta | S | - | N(4) | см. п.4.3 | Сурагатный первичный ключ | |
| ID-пациента | ID_pacien | S | - | N(5) | см. п.4.3 | Внешний ключ(к Пациенты) | |
| Код отделения | kod_otdel | S | - | N(4) | см. п.4.3 | Внешний ключ(к Стационар) | |
| Дата начала лечения | data_nachala_lecheniya | D | 1 | D(10) | см. п.4.3 | Обязательное поле | |
| Номер палаты | nomer_pal | D | 1 | N(10) | см. п.4.3 | Обязательное поле | |
| Дата окончания лечения | data_okonchaniya_lecheniya | D | 1 | D(10) | см. п.4.3 | Обязательное поле | |
| Результат | rezultat | D | 1 | C(10) | см. п.4.3 | Обязательное поле |
Описание атрибутов объекта Прием
| Название
атрибута |
Обозначение
атрибута |
Динамичность | Количество
повторений |
Область
возможных значений |
Вывод
значений |
Ограничение
доступа |
Примечание |
| ID-приема | id_priema | S | - | N(10) | см. п.4.3 | первичный ключ | |
| ID-пациента | id_pacien | S | - | N(4) | см. п.4.3 | внешний ключ(к Пациенты) | |
| ID-врача | id_vracha | S | - | N(10) | см. п.4.3 | Внешний ключ(к Врачи) | |
| ID-диагноза | id_diagnoz | S | - | N(10) | см. п.4.3 | Внешний ключ(к Диагноз) | |
| Дата | data | D | 1 | D(10) | см. п.4.3 | Обязательное поле | |
| Время | vremya | D | 1 | C(15) | см. п.4.3 | Обязательное поле | |
| Кабинет | kabinet | D | 1 | C(20) | см. п.4.3 | Обязательное поле | |
| Исход | isxod | D | 1 | C(20) | см. п.4.3 | Многозначительное поле |