Управление базами данных

Автор работы: Пользователь скрыл имя, 11 Января 2013 в 15:48, курсовая работа

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

Целью выполнения курсового проекта является приобретение студентами практических навыков проектирования баз данных и разработки программного обеспечения по управлению базами данных с использованием СУБД. В ходе выполнения данного курсового проекта необходимо разработать информационную базу данных для больницы, которая поможет любому пользователю легко найти нужную информацию о любом сотруднике или пациенте.
В задачи курсового проекта входят:
1. Разработка структуры баз данных.
2. Работа с несколькими таблицами и установление взаимосвязей между таблицами.
3. Разработка системы меню.
4. Разработка и формирование отчетов.
5. Использование расширенных средств СУБД ввода и вывода данных.
6. Организация справочной системы.

Содержание

Введение
1. Постановка задачи
2. Обоснование выбора СУБД и программного обеспечения
3. Структура базы данных
3.1 Концептуальная модель данных
3.2 Логическая модель данных
4. Нормализация отношений
5. SQL – запросы
6. Интерфейс системы для работы с базой данных
6.1 Главное окно программы
6.2 Разработка меню
7. Отчеты
Заключение
Список использованной литературы

Вложенные файлы: 1 файл

cerinte.docx

— 543.84 Кб (Скачать файл)

Содержание

Введение

1. Постановка задачи

2. Обоснование выбора СУБД  и программного обеспечения

3. Структура базы данных

3.1 Концептуальная модель  данных

3.2 Логическая модель данных

4. Нормализация отношений

5. SQL – запросы

6. Интерфейс системы для  работы с базой данных

6.1 Главное окно программы

6.2 Разработка меню

7. Отчеты

Заключение

Список использованной литературы

 

Введение

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

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

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

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

В задачи курсового проекта  входят:

1. Разработка структуры  баз данных.

2. Работа с несколькими  таблицами и установление взаимосвязей  между таблицами.

3. Разработка системы меню.

4. Разработка и формирование  отчетов.

5. Использование расширенных  средств СУБД ввода и вывода  данных.

6. Организация справочной  системы.

 

1. Постановка задачи

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

Требования были следующими:

1.         База данных должна отражать всю информацию о больнице, в частности о сотрудниках и о пациентах;

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

3.         Должна быть возможность вносить изменения в данные и пополнения новыми данными.

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

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

 

2. Обоснование выбора СУБД  и программного обеспечения

В качестве средства проектирования базы данных, была выбрана СУБД MS SQL Server 2000.

В отличие от всех остальных  наиболее известных СУБД, MS SQL Server имеет ряд преимуществ. Главным из них является то, что он обеспечивает создание информационных систем с архитектурой "клиент-сервер", в которой он играет роль сервера баз данных. Одним из важных свойств Microsoft SQL Server является возможность управления целостностью данных.

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

Средством, связывающим клиента  с сервером, является язык SQL (Structured Query Language) – язык структурированных запросов. В данном курсовом проекте были использованы основные операторы этого языка, в частности для создания запросов. Этот язык является очень распространенным на данный момент и имеет ряд особенностей.

Он позволяет:

• создавать базы данных и таблицы с полным описанием  их структуры;

• выполнять основные операции манипулирования данными, такие  как

вставка, модификация и  удаление данных из таблиц;

• выполнять простые и  сложные запросы.

Этот язык был выбран, так  как он доступен для изучения, синтаксис  команд понятен и прост.

В качестве среды разработки самой программы для работы с  базой данных была выбрана среда  программирования Borland Delphi 7, использующая язык программирования Object Pasсal.

Основные причины выбора языка Object Pascal:

– Главной из причин является возможность работы с базами данными;

– Легкость в организации доступа к базе данных;

– Возможность редактирования таблиц, вставки и удаления записей;

– Возможность создания достаточно понятного и дружественного интерфейса для пользователя.

– Простота языка позволяет  быстро его освоить и создавать  сложные программы;

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

 

3. Структура базы данных

3.1 Концептуальная модель

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

В каждом отделении имеются  сотрудники и пациенты, которые имеют  свои личные данные.

Концептуальная модель базы данных представлена на рисунке 3.1.

 

 

Рисунок 3.1 – Концептуальная модель базы данных

3.2 Логическая модель базы  данных

Логическая модель представлена на рисунке 3.2.

 

Рисунок 3.2 – Логическая модель базы данных

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

Две таблицы "Диагноз-Лекарства" и "Диагноз-Процедуры" имеют составные  ключи и связаны с двумя  таблицами, по коду диагноза с таблицей "Диагнозы" и по коду лекарства  и процедуры с таблицами "Лекарства" и "Процедуры" соответственно. Получилась связь "многие – ко многим". Такая  связь нужна, для того чтобы можно  было для одного диагноза выбрать  много процедур и лекарств. Соответственно, для процедур и лекарств могут  соответствовать много диагнозов.

 

4. Нормализация отношений

Нормализация – это  процесс проектирования базы данных с целью исключения аномалий модификаций, избыточности данных и приведения отношений  к нормальным формам.

Аномалии модификации  – последствия, которые могут  возникнуть вследствие изменения отношения (таблицы).

Аномалии устраняются  путем разбиения отношения на 2 и более новых отношений. Аномалии делятся на 2 основных вида: аномалия удаления, аномалия вставки.

Можно сказать, что в данном курсовом проекте все таблицы  находятся в 1НФ, так как все  они удовлетворяют требованиям, необходимым для того, чтобы таблица  считалась отношением. Главным образом, это требование атомарности.

Отношение находится во 2НФ, если оно находится в 1НФ и все  неключевые атрибуты в отношении  зависят только от всего ключа  в целом.

Принадлежность к 2НФ всех таблиц, кроме двух таблиц ("Диагноз-Процедуры", "Диагноз-Лекарства"), можно определить по наличию 1 первичного простого ключа, состоящего из одного атрибута. А эти  две таблицы состоят только из двух ключевых атрибутов, т.е. первичный  ключ является составным. Таким образом, в этих таблицах нет неключевых атрибутов, независящих от всего ключа в  целом.

Отношение находится в 3НФ, если отношение находится во 2НФ и не имеет транзитивных зависимостей.

В данном курсовом проекте  все таблицы находятся в 3НФ. Хотя в начале курсового проекта предполагалось, что таблица "Персонал" будет  включать в себя атрибуты "Должность" и "Оклад", что говорило бы о  наличие транзитивной зависимости. В результате нормализации таблица "Персонал" была разбита на два  отношения "Персонал" и "Должности", которые теперь находятся в 3НФ.

Отношение находится в  НФБК, если оно находится в 3НФ и  каждый детерминант является ключом-кандидатом.

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

В 4НФ таблицы не могут  находиться, так как они не находятся  в НФБК.

Таким образом, все отношения  находятся в 3НФ.

 

5. SQL–запросы

В данном курсовом проекте  были выполнены следующие запросы:

По сотрудникам:

1. Вывести список сотрудников  по определенной должности.

SELECT Personal. Fio as 'ФИО', Otdeleniya. Nazvanie_otdel as 'Название отделения'

FROM Otdeleniya INNER JOIN Personal ON Otdeleniya. Kod_otdel = Personal.kod_otdel

WHERE Personal. Doljnost like "Должность"

order by Otdeleniya. Nazvanie_otdel

2. Вывести список сотрудников  по должности, учитывая отделение.

SELECT Personal. Fio as 'ФИО', Otdeleniya. Nazvanie_otdel as 'Название отделения'

FROM Otdeleniya INNER JOIN Personal ON Otdeleniya. Kod_otdel = Personal.kod_otdel

WHERE Otdeleniya. Nazvanie_otdel = "Отделение’ AND Personal. Doljnost like ‘Должность’

3. Вывести список сотрудников,  оклад которых превышает n-й суммы

SELECT Personal. Fio as 'ФИО', Personal. Doljnost as 'Должность', Personal. Oklad as 'Оклад'

FROM Personal

where Personal. Oklad> (Сумма)

4. Вывести общий список  сотрудников.

SELECT Personal. Fio as 'ФИО', Personal.doljnost as 'Должность', otdeleniya.nazvanie_otdel as 'Название отделения'

FROM Otdeleniya INNER JOIN Personal ON Otdeleniya. Kod_otdel = Personal. Kod_otdel

group by otdeleniya.nazvanie_otdel, Personal. Fio, Personal.doljnost

order by Personal. Fio

По пациентам:

1. Вывести список пациентов  по определенному диагнозу.

SELECT Pacienty. Fio as "Ф.И.О.", Otdeleniya. Nazvanie_otdel as "Название отделения", Diagnozy. Nazvanie_diagnoza as "Название диагноза"

FROM Otdeleniya INNER JOIN (Diagnozy INNER JOIN Pacienty ON Diagnozy.kod_diagnoza = Pacienty. Kod_diagnoza) ON Otdeleniya. Kod_otdel = Pacienty.kod_otdel

WHERE Diagnozy. Nazvanie_diagnoza like ‘%Диагноз % '

order by Pacienty. Fio

2. Вывести список пациентов  по определенной дате поступления.

SELECT Pacienty. Fio as "Ф.И.О.", Pacienty. Data_postup as "Дата поступления", Otdeleniya. Nazvanie_otdel as "Название отделения", Diagnozy. Nazvanie_diagnoza as "Название диагноза"

FROM Otdeleniya INNER JOIN (Diagnozy INNER JOIN Pacienty ON Diagnozy.kod_diagnoza = Pacienty. Kod_diagnoza) ON Otdeleniya. Kod_otdel = Pacienty.kod_otdel WHERE Pacienty. Data_postup= ‘Дата поступления’ and Diagnozy. Nazvanie_diagnoza like ' % Диагноз % '

order by Pacienty. Fio

3. Вывести список пациентов  по дате выписки.

SELECT Pacienty. Fio as "Ф.И.О.", Otdeleniya. Nazvanie_otdel as "Название отделения", Diagnozy. Nazvanie_diagnoza as "Название диагноза"

FROM Otdeleniya INNER JOIN (Diagnozy INNER JOIN Pacienty ON Diagnozy.kod_diagnoza = Pacienty. Kod_diagnoza) ON Otdeleniya. Kod_otdel = Pacienty.kod_otdel WHERE Pacienty. Data_vypiski='Дата выписки'

order by Pacienty. Fio

4. Вывести список пациентов,  поступавших за определенный  период.

SELECT Pacienty. Fio as "Ф.И.О.", Pacienty. Data_postup "Дата пост-я", Otdeleniya. Nazvanie_otdel as "Отделение", Diagnozy. Nazvanie_diagnoza as "Диагноз"

FROM Otdeleniya INNER JOIN (Diagnozy INNER JOIN Pacienty ON Diagnozy.kod_diagnoza = Pacienty. Kod_diagnoza) ON Otdeleniya. Kod_otdel = Pacienty.kod_otdel

WHERE ((Pacienty. Data_postup='Дата поступления1') or (Pacienty. Data_postup>'Дата поступления1')) and

((Pacienty. Data_postup<' Дата поступления2') or

(Pacienty. Data_postup=' Дата поступления2'))

order by Pacienty.data_postup'

5. Вывести общий список  пациентов.

SELECT Pacienty. Fio as "Ф.И.О.", Pacienty.data_postup as "Дата поступления", Diagnozy. Nazvanie_diagnoza as "Диагноз",

Otdeleniya. Nazvanie_otdel as "Отделение"

FROM Otdeleniya INNER JOIN (Diagnozy INNER JOIN Pacienty ON Diagnozy.kod_diagnoza = Pacienty. Kod_diagnoza) ON Otdeleniya. Kod_otdel = Pacienty.kod_otdel

Group by Otdeleniya. Nazvanie_otdel, Pacienty. Fio, Pacienty.data_postup, Diagnozy. Nazvanie_diagnoza

По лекарствам:

Вывести список диагнозов  по определенному лекарству.

SELECT Diagnozy. Nazvanie_diagnoza as "Диагноз"

FROM Lekarstva INNER JOIN (Diagnozy INNER JOIN diagnoz_lekar ON Diagnozy. Kod_diagnoza=diagnoz_lekar.kod_diag) ON

Lekarstva. Kod_lekarstva=diagnoz_lekar.kod_lek

WHERE Lekarstva. Naim_lekarstva='Лекарство’

 

6. Интерфейс системы для  работы с базой данных

6.1 Главное окно программы

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

Рисунок 6.1 – Главное окно программы

Рабочая область состоит  из трех вкладок: "Отделения", "Диагнозы", "Информация". На рисунке 6.1 можно  увидеть вкладку "Отделения". Здесь  содержится информация по отделениям, в частности данные о сотрудниках  и пациентах (таблицы расположены  в нижней части формы). Таблицы  можно редактировать, добавлять  новых сотрудников и пациентов, вносить какие-то свои изменения. Таблицу "Отделения" редактировать нельзя, так как количество отделений  в больнице постоянное и не меняется.

Следующая вкладка "Диагнозы" приведена на рисунке 6.2.

 

Рисунок 6.2 – Вкладка "Диагнозы"

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

Информация о работе Управление базами данных