Проектирование реляционных баз данных. 2

 

Поволжский  государственный университет телекоммуникаций и информатики 
 
 
 
 
 
 

Кафедра экономических и информационных систем 
 
 

Проектирование  реляционных баз  данных 
 
 
 
 

                                                                 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

                                         Рецензия 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Содержание 
 

Введение…………………………………………………………………………5

1. Инфологическое  проектирование…………………………………………...6

1.1. Анализ предметной  области……………………………………………….6

1.2. Анализ информационных задач и круга пользователей системы……….6

1.3. Составление  реляционных отношений……………………………………7

2. Определение  требований к операционной обстановке…………………….16

3. Выбор СУБД  и других инструментальных программных  средств………..16

4. Логическое проектирование БД……………………………………………...17

4.1. Нормализация  полученных отношений…………………………………...17

4.2. Определение  дополнительных ограничений целостности……………….26

4.3. Описание  групп пользователей и прав  доступа…………………………..26

5. Физическое  проектирование БД……………………………………………..27

6. Реализация  проекта БД……………………………………………………….28

Заключение……………………………………………………………………….37

Список использованных источников…………………………………………...39 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Цели  и задачи. 

Цель курсового  проектирования – применение на практике знаний, полученных в процессе изучения курса "Базы данных", и приобретение практических навыков при проектировании и создания информационных систем (ИС),основанных на базах данных.

Номер варианта 

    Вариант 6 – Больница

    Задача  – информационная поддержка деятельности регистратуры больницы. БД должна осуществлять:

    − учёт поступления пациентов (по отделениям);

    − учёт проведённого лечения;

    − учёт платных услуг с выдачей  счетов на оплату;

    − ведение архива выписанных пациентов.

    Необходимо  предусмотреть определение (по отделениям):

    − пропускной способности больницы;

    − среднего времени пребывания больных  в стационаре;

    − наличия свободных мест в палатах (отдельно для мужчин и для женщин);

    − количества прооперированных пациентов (из них – с осложнениями и  умерших);

    − смертности.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Введение

Проектирование  баз данных - одна из наиболее сложных и ответственных задач, связанных с созданием информационной системы.

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

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

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

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

1)Корректность  схемы БД, то есть база должна  быть гомоморфным образом моделируемой  предметной области, где каждому  объекту предметной области соответствует данные в памяти ЭВМ, а каждому процессу – адекватные процедуры обработки данных.

2)Обеспечение  ограничений

3) Эффективность  функционирования

4)Защита  данных

5)Простота  и удобство эксплуатации

6)Гибкость, т.е. возможность развития БД. 
 
 
 
 

  1. Инфологическое  проектирование

    1.1. Анализ предметной  области

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

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

-пациента могут  лечить сразу несколько врачей, при чем один из них главный врач;

-диагноз выписывается  врачом;

-врач может  лечить сразу несколько пациентов;

-в одной палате могут жить сразу несколько пациентов;

-в каждом  отделении больницы много палат.

Рассмотрение  такой структуры базы данных начинается с построения простой модели взаимосвязи  объектов.

В самых общих  чертах такое моделирование(оно  называется моделированием сущностей) подразумевает определение сле-

дующих элементов: объектов (сущностей), информация о  которых будет содержаться в  БД; свойств этих объектов(атрибутов); взаимосвязей между ними. Выделим базовые сущности этой предметной области. Без учета финансовой информации список сущностей будет следующим:

-ВРАЧИ. Атрибуты-ФИО, номер телефона.

-ПАЦИЕНТЫ. Атрибуты-ФИО, телефон, возраст

-СТАЦИОНАР ПАЦИЕНТОВ. Атрибуты - дата начала лечения, номер палаты, дата окончания лечения, результат

Каждый пункт  этого списка описывает отдельное свойство или атрибут рассматриваемой сущности и является потенциальным столбцом в БД. Названия столбцов должны быть предельно ясными (назначение столбца должно быть понятно из его названия) и краткими (чтобы упростить ввод и названий и уменьшить их ширину). 

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

Система создается  для обслуживания следующих групп пользователей:

-врачей;

-медсестер;

-сотрудников,  которые регистрируют больных.

1) Функциональные возможности:

− ведение БД (запись, чтение, модификация, удаление в архив);

− обеспечение логической непротиворечивости БД;

− обеспечение защиты данных от несанкционированного или случайного доступа (определение прав доступа);

− реализация наиболее часто встречающихся запросов в готовом виде;

− предоставление возможности сформировать произвольный запрос на

языке манипулирования  данными.

2) Готовые запросы:

-вывод пациентов  с летальным исходом;

-вывод количество  мест в мужских палатах;

-вывод количество  мест в женских палатах;

-вывод количество  пациентов, которым делали операцию

    1. Составление реляционных отношений

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

Рассмотрим  таблицу Пациенты. Среди ее столбцов очевидным кандида-

том на первичный  ключ является 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

                                                                              

                                                                                           Стационар

Код отделения

Кол-во палат

Этаж

                                                                                               R10 
                                             

                                                                                                                            

     Пац_стационар         R8          Диагноз                             Лечение         

R15                                                                     R13                                                R20

                                                                                 R14

R6

 
 

                                       R17

                                                                                      палаты

                                                                  R18

      R12

 

R16

ID-лечения

ID-пац_стационара

Процедуры

         R19

 
 
 
 
 

Рис. 1.2. Уточненная диаграмма сущность-связь БД больницы 
 
 
 
 
 
 

В таблице 1.1 приведено  описание связей 

           Таблица описания связей                                           таблица 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 - число) и, возможно, диапазон изменения атрибута. В столбце "Вывод значений" указываются номера атрибутов, из которых можно получить данный атрибут. Выводимый атрибут можно не хранить. В столбце "Ограничение доступа" указано, кто имеет право изменять сведения.

                                                                                                                Таблица 1.2

                 Описание атрибутов объекта Пациенты

Название

атрибута

Обозначение

атрибута

Динамичность Количество

повторений

Область

возможных

значений

Вывод

значений

Ограничение

доступа

Примечание
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 Обязательное  поле

  

                                                                                                       Таблица1.3

                 Описание атрибутов объекта Врачи 

Название

атрибута

Обозначение

атрибута

Динамичность Количество

повторений

Область

возможных

значений

Вывод

значений

Ограничение

доступа

Примечание
ID-врача ID_pacien S - N(4)   см. п.4.3 первичный ключ
ФИО FIO D 1 C(50)   см. п.4.3 Обязательное  поле
Номер телефона Nomer_telefona D 1 C(15)   см. п.4.3 Многозначное  поле
 

                                                                                                              Таблица1.4

                

Описание атрибутов  объекта Пац_Стационара 

Название

атрибута

Обозначение

атрибута

Динамичность Количество

повторений

Область

возможных

значений

Вывод

значений

Ограничение

доступа

Примечание
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 Обязательное  поле

                                                                                                        Таблица1.5 

   Описание  атрибутов объекта Прием

Название

атрибута

Обозначение

атрибута

Динамичность Количество

повторений

Область

возможных

значений

Вывод

значений

Ограничение

доступа

Примечание
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 Многозначительное поле
Проектирование реляционных баз данных. 2