Разработка проекта базы данных «Родильный дом"

Автор работы: Пользователь скрыл имя, 05 Ноября 2012 в 14:11, курсовая работа

Краткое описание

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

Содержание

Введение 5
Проектирование базы данных 6
Анализ предметной области 6
Проектирование инфологической модели 7
ER – диаграмма 8
Даталогическое моделирование 9
Основные характеристики атрибутов 10
Описание подстановок 12
Создание базы данных в СУБД ACCESS 13
Таблицы 13
Структурные связи 14
Формы 15

Прикрепленные файлы: 1 файл

Курсовая.docx

— 9.45 Мб (Скачать документ)

Таблица 7. Описание подстановок

Таблица

Исходное поле

Поле подстановки

Тип элемента управления

Тип источника строк

Источник строки

Ребёнок

Пол

Пол

Поле со списком

Список значений

М; Ж

Врач

Квалификация

Квалификация

Поле со списком

Список значений

Нет; Вторая;

Первая; Высшая

Роженица

Группа крови

Группа Крови

Поле со списком

Список значений

1; 2; 3; 4


 

 

Создание  базы данных в СУБД ACCESS

Таблицы:

Рисунок 2. Содержание таблицы «Врач» в СУБД Access

Рисунок 3. Содержание таблицы «Палата» в СУБД Access

 

Рисунок 4. Содержание таблицы «Размещение» в СУБД Access

 

Рисунок 5. Содержание таблицы «Ребёнок» в СУБД Access

 

 

Рисунок 6. Содержание таблицы «Роды» в СУБД Access

 

Рисунок 7. " Содержание таблицы «Роженца» в СУБД Access

 

Рисунок 8. "Структурные связи в СУБД Access"

Формы

Форма представляет собой специальный формат экрана, предназначенный для ввода данных в таблицу и просмотра записей БД. Формы позволяют вводить данные в БД, просматривать их, изменять значения полей, добавлять и удалять записи. Можно создать формы для работы одновременно с несколькими таблицами.

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

С применением форм можно представлять записи в виде привычных документов: бланков, ведомостей и т.д., что удобно для пользователя.

 

Таблица 8. Перечень созданных форм

Название формы

Тип формы

Назначение

1

Роженица-ребёнок

Подчинённая форма

Отображает информацию о ребёнке  для конкретной роженицы (в той же форме)

2

Врач и Ребёнок

Связные формы

Отображает данные о рождённых у конкретного врача (в другой форме)

3

Роженица

Многостраничная форма

Отражает основную и дополнительную информацию на разных вкладках

4

Палата

Форма со списком

Для выбора из списка нужной палаты и  вывода информации о ней

5

Форма для форм

Кнопочная форма для форм

Переход к остальным формам нажатием  кнопок

6

Главная форма

Главная форма

Переход ко всем объектам БД нажатием кнопок

7

Рост новорождённых

Форма с диаграммой

Отображение данных о детях в виде диаграммы

8

Формы, отображающие содержимое всех таблиц БД

Ребёнок, Роженица, Роды, Размещение, Палата, Врач

Просмотр информации в виде формы


 

Формы, отображающие содержимое всех таблиц БД:

Рисунок 9. Окно формы Врач

Рисунок 10. Окно формы Палата

Рисунок 11. Окно формы Размещение

Рисунок 12. Окно формы Ребёнок

Рисунок 13. Окно формы Роды

Рисунок 14. Окно формы Роженица

Подчиненная форма – это форма, находящаяся внутри другой (главной) формы. Эта форма удобна для вывода данных из таблиц или запросов, представляющих отношение один-ко-многим. Главная и подчиненная форма в этом типе форм связаны таким образом, что в подчиненной форме выводятся только те записи, которые связаны с текущей записью в главной форме.

Рисунок 15. Подчинённая форма «Роженица-ребёнок»

Подчинённая форма «Роженица-ребёнок» наглядно отражает все сведения и  о роженице, и о её ребёнке, находящиеся в разных таблицах. В главной форме отображаются сведения о Роженице, а в подчинённой – о её ребёнке.

 

Связная форма 

Связанная форма напоминает подчиненную  с той разницей, что в подчиненной  форме одновременно видны обе таблицы, а в связанной – только главная, а подчиненная выводится по мере надобности кнопкой.

Рисунок 16. Окно связной формы "Врач"

Рисунок 17. Окно связной формы "Ребёнок"

С помощью этих форм, по данным врача  по мере необходимости можно узнавать данные о новорождённых, принятых этим врачом.

 

Многостраничная форма

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

   

Рисунок 18. Окно многостраничной формы 1-я вкладка Рисунок 19. Окно многостраничной формы 2-я вкладка

В многостраничной форме «Роженица» 2 вкладки, на первой вкладке располагаются  основные данные о пациентках, необходимые  для врачей, на второй вкладке –  данные, которые имеют меньшую  значимость в период пребывания роженицы в роддоме.

 

Форма с  раскрывающимся списком

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

Если число вводимых значений из списка фиксировано, можно использовать обычный список, но если требуется ввести значения, которых нет в списке, то нужно использовать поле со списком.

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

Рисунок 20.Окно формы со списком «Палата»

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

 

Кнопочная форма для форм

Кнопочная форма для форм создается  для упрощения процесса открытия нужной формы. Эта форма представляет из себя окно, в котором каждая форма изображается в виде кнопки с соответствующей надписью.

Рисунок 21. Окно формы для форм

 

Главная кнопочная  форма

Главная кнопочная форма необходима для упрощения работы с базой  данных; для открытия всех таблиц, форм и отчетов, она также имеет  гиперссылку для вывода справки  по базе данных.

Рисунок 22. Окно главной кнопочной формы

 

Форма с  диаграммой

Форма с диаграммой нагляднее предоставляет  данные из  таблиц и запросов.

Рисунок 23. Окно формы с диаграммой «Рост новорождённых»

По данной диаграмме можно пронаблюдать за колебанием роста среди новорождённых  мальчиков и девочек.

 

Запросы

Таблица 9. Перечень запросов к базе данных

Название

Текст запроса

Вид запроса

1.

Запросы с категорией высшая или первая

SELECT Врач.[ФИО врача], Врач.[Дата рождения врача], Врач.[Квалификационная категория] FROM Врач

WHERE (((Врач.[Квалификационная категория])="первая" Or (Врач.[Квалификационная категория])="высшая"));

Запрос на выборку (1 табл. операция или)

2.

Родившиеся мальчики весом более 3 кг

SELECT Ребёнок.[№ ребёнка], Ребёнок.[Вес (г)]FROM Ребёнок WHERE (((Ребёнок.[Вес (г)])>3000) AND ((Ребёнок.Пол)="м"));

Запрос на выборку(1 табл. операция и)

3.

Пациентки старше 40 лет,родившие естественным путём

SELECT Роженица.[ФИО роженицы], Роженица.[№ роженицы], Роженица.[Дата рождения], Роженица.[Группа крови] FROM Роженица INNER JOIN Роды ON Роженица.[№ роженицы] = Роды.[№ роженицы] WHERE (((Роды.[Кесарево сечение])=0) AND ((DateDiff("yyyy",[Роженица]![Дата рождения],Date()))>40));

Запрос на выборку (2 табл., операция и)

4.

Размещение пациенток с 1 и 2 группой  крови

SELECT Роженица.[№ роженицы], Роженица.[Группа крови], Палата.[№ палаты] FROM Палата INNER JOIN Роженица ON Палата.[№ палаты] = Роженица.Палата WHERE (((Роженица.[Группа крови])=1 Or (Роженица.[Группа крови])=2));

Запрос на удаление (2 табл., операция или)

5.

Загруженность выбранного врача в  выбранную дату

SELECT Врач.[ФИО врача], Ребёнок.[№ ребёнка], Роды.[№ роженицы], Роды.[Начало родов], Роды.[Конец родов], Ребёнок.Пол

FROM Врач INNER JOIN (Ребёнок INNER JOIN Роды ON Ребёнок.[№ ребёнка] = Роды.[№ ребёнка]) ON Врач.[Код врача] = Роды.[Код врача]

WHERE (((Врач.[Код врача])=[введите код врача]) AND ((Ребёнок.[Дата рождения ребёнка])=[введите дату]));

Запрос с параметром

6.

Продолжительность родов (в минутах)

SELECT Роды.[№ роженицы], Роды.[Код врача], Роды.[№ ребёнка], (DateDiff("n",[Роды]![Начало родов],[Роды]![Конец родов])) AS [Продолжительность родов] FROM Роды ORDER BY Роды.[№ роженицы], Роды.[Код врача], Роды.[№ ребёнка], (DateDiff("n",[Роды]![Начало родов], [Роды]![Конец родов]));

Запрос с вычисляемым полем

7.

Информация о состоянии палат

SELECT Sum(Палата.[Количество мест]) AS [Общее количество мест в больнице], Count(Размещение.[№ палаты]) AS [Кол-во занятых мест], (Sum([Палата]![Количество мест]))-(Count([Размещение]![№ палаты])) AS [Свободные места] FROM Палата INNER JOIN Размещение ON Палата.[№ палаты] = Размещение.[№ палаты];

Итоговый запрос с агрегатной функцией

8.

Врач

TRANSFORM Last(Врач.[Дата рождения врача]) AS [Last-Дата рождения]

SELECT Врач.[ФИО врача] FROM Врач GROUP BY Врач.[ФИО врача]

PIVOT Врач.[Квалификационная категория];

Перекрёстный запрос

9.

Обновление зарплаты врачей

UPDATE Врач SET Врач.[Зарплата (руб)] = [Зарплата (руб)]*1.3;

Запрос на обновление

10

Создание таблицы «Роды 1»

SELECT Роженица.ФИО, Врач.[ФИО врача], Ребёнок.[Дата рождения], [5_1_4_Продолжительность родов(в минутах)].Выражение1 INTO роды_1 FROM Ребёнок INNER JOIN (Врач INNER JOIN (Роженица INNER JOIN [5_1_4_Продолжительность родов(в минутах)] ON Роженица.[№ роженицы] = [5_1_4_Продолжительность родов(в минутах)].[№ роженицы]) ON Врач.[Код врача] = [5_1_4_Продолжительность родов(в минутах)].[Код врача]) ON Ребёнок.[№ ребёнка] = [5_1_4_Продолжительность родов(в минутах)].[№ ребёнка];

Запрос на создание таблицы

11.

Удаление врача с кодом 1231

DELETE Врач.[Код врача] FROM Врач 

WHERE (((Врач.[Код врача])=1231));

Запрос на удаление


 

 

 

Запросы на выборку являются основным инструментом извлечения данных из таблиц БД. Запрос сохраняется в объектах «Запросы» под уникальным именем и может многократно использоваться. Запрос может выбирать данные из одной или нескольких таблиц. Важным отличием запроса является возможность использовать его в качестве источника данных для форм и отчетов, а также способность выполнять достаточно сложные вычисления.

    • Запрос на выборку из одной таблицы, с двумя или более условиями, связанных операцией “И”

«Родившиеся мальчики весом  более 3 кг»

 

Рисунок 24. Окно запроса по одной таблице 1 в режиме SQL

Рисунок 25. Окно запроса по одной таблице 1 в режиме конструктор

 

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

  •   с двумя или более условиями, связанных операцией “ИЛИ”

«Врачи с категорией высшая или первая»

Рисунок 26. Окно запроса по одной таблице 2 в режиме SQL

Рисунок 27. Окно запроса по одной таблице 2 в режиме конструктор

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

1.2. Запрос из нескольких таблиц  и/или запросов, содержащий следующие  условия выборки:

    • два или более условий, связанных операцией “И”

«Пациентки старше 40 лет, родившие естественным путём»

Рисунок 28. Окно запроса по нескольким таблицам 1 в режиме SQL

Рисунок 29. Окно запроса по нескольким таблицам 1 в режиме конструктор

Запрос составлен из 2-х таблиц, он позволяет выявить пациенток старше сорока лет, не нуждавшихся при родах в кесаревом сечении, данная информация нужна для формирования статистических данных больницы.

    • два или более условий, связанных операцией “ИЛИ”

«Размещение пациенток  с 1 и 2 группой крови»

 

Рисунок 30. Окно запроса по нескольким таблицам 2 в режиме SQL

Рисунок 31. Окно запроса по нескольким таблицам 2 в режиме конструктор

Данный запрос показывает, в какой палате находятся роженицы с 1-0й и 2-ой группой крови, запрос поможет в экстренных ситуациях, когда пациентке необходимо срочное переливание крови действовать быстрее.

 1.3. Запрос с одним или двумя параметрами.

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

Рисунок 32. Окно запроса «Загруженность врачей» в режиме SQL

Рисунок 33. Окно запроса «Загруженность врачей» в режиме конструктор

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

1.4. Запрос с вычисляемым полем  (полями).

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

 

Рисунок 34. Окно запроса «Продолжительность родов» в режиме SQL

Рисунок 35. Окно запроса «Загруженность врачей» в режиме конструктор

В данном запросе в вычисляемое  поле отражается продолжительность  родов в минутах, для этого  используется встроенная функция «DateDiff», которая подсчитывает разницу между двумя датами: начало родов и конец родов. Запрос позволяет сортировать номера рожениц по этому признаку, для формирования статистических данных.

Результат запроса

Рисунок 36. Окно запроса «Загруженность врачей» в режиме таблицы

Итоговый  запрос с агрегатной функцией

Итоговый запрос позволяет выполнять над данными таблиц итоговые математические операции (нахождение сумм, средних значений и т.д.) и выводить результаты на экран.

 

Рисунок 37.Окно запроса «Информация о состоянии палат» в режиме SQL

Рисунок 38 запроса «Информация о состоянии палат» конструктор

Рисунок 39 запроса «Информация о состоянии палат» в режиме таблицы

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

 

2. Запросы на изменение  данных.

Запрос на изменение данных изменяет или перемещает данные, удовлетворяющие заданным условиям отбора.

2.1.Запрос  на удаление.

  «Удаление врача с кодом 1231»

Для создания такого запроса нужно  выбрать на вкладке Конструктор / группа Тип запроса / Удаление.

Рисунок 40.Окно запроса на удаление в режиме SQL

Рисунок 41. Окно запроса на удаление в режиме конструктор

   Запрос позволяет удобным способом  удалять значение не только  из данной таблицы, но и из  всех связанных таблиц. Необходим для удаления информации о враче из всей базы данных, например, при его увольнении.

 

 

2.2. Запрос  на создание таблицы.

Рисунок 42. Окно запроса на создание таблицы в режиме SQL

Результат запроса

Информация о работе Разработка проекта базы данных «Родильный дом"