Предметная область базы данных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Предметная область базы данных



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

Информационная система предназначена для решения следующих задач:

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

- получения списка пациентов определенной группы;

- поиск больних по различным параметрам;

- вывод информации о количествах курсов лечения пациента;

Построение инфологической модели

Анализ определенных выше атрибутов и объектов позволяет выделить сущности проектируемой базы данных и, приняв решение о создании реляционной базы данных, построить ее инфологическую модель на языке «Таблицы-связи» (рисунок 1). Для того, чтобы база данных сохраняла целостность при любых операциях над ней (удаление, вставка, изменение кортежей), все отношения в базе данных приведены к третей нормальной форме.

Выделим следующие сущности:

1) «Пациенты» («Личный номер», «Фамилия», «Имя», «Отчество», «Дата рождения», «Серия, № паспорта», «Регион проживания», «Адрес, № дома», «Социальное положение», «Место работы», «Организация», «Код организации», «Дата регистрации», «Время регистрации»)) – эта сущность отводится для хранения сведений о пациентах. Так как, фамилия и имена пациента могут быть достаточно большими и будут многократно встречаться в различных источниках, то их целесообразно нумеровать и ссылать на эти номера. Для этого вводится целочисленный атрибут «Личный номер», который будет автоматически наращиваться на единицу при вводе в базу данных нового пациента. Самой же информации о пациенте соответствует атрибут «Пациенты».

2) «Льготы» («Код льгот», «Наименование», «Документы»). Эта сущность отражает информации об форме льгот, у определенного пациента.

3) «Врач» («Код врача», «Фамилия», «Имя», «Отчество», «Пол», «Дата рождения», «Серия, № паспорта», «Квалификация», Отделение», «№ кабинета», «Должность»). Данная сущность отражает всю информацию о врачах медицинского учреждения.

4) «Должность» («Код должности», «должность») – эта сущность отражает информацию о должности.

5) «Оказание услуг» («Номер услуги», «Номер карточки», «Код организации», «Код работника», «Код отделения», «Услуги», «Код услуги»,«Код формы», «Льготы», «Диагноз», «Код диагноза», «Дата оказания», «Оказана») – эта сущность отражает информацию о оказаниях услугах, которые ведутся в медицинском учреждении.

6) «Организация» («Код организации», «Организация», «Адрес», «Телефон») – эта сущность отражает информацию о организации каждого пациента.

7) «Отделение» («Код отделения», «Наименование», «Ф.И.О. зав. отделения», «Численный состав», «Телефон») – эта сущность отражает информацию о отделение.

8) «Услуги» («Код услуги», «Вид услуги») – в этой сущности хранится вся информация о услугах.

9) «Форма оплаты» («Код формы», «Наименование», «Комментарии») – эта сущность отражает всю информацию о форме оплаты.


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

Для физической реализации базы данных использовалась SQL Server 2008R. Эта СУБД была выбрана по множеству причин:

1) высокая надежность;

2) минимальные требования к памяти и дисковому пространству;

3) поддержка данной СУБД распределенных и реляционных баз данных;

4) свободное распространение СУБД в открытых кодах;

5) наличие реализации СУБД для операционной системы Windows.

Полный листинг кода создания базы данных на языке SQL находится в приложении В. Поэтапно рассмотрим физическую реализацию базы данных. Зададим девять таблиц базы данных и русскую кодировку символов WIN1251. Создаем пустую базу данных от лица пользователя SYSDBA со стандартным паролем «master». Размер страниц базы данных установлен равным размеру кластера в файловой системе NTFS 4048байт. Для удаления из строк пробелов и преобразования строк к верхнему регистру были декларированы внешние функции Trim и Upper. Они реализованы на языке программирования Delphi и физически расположены в динамически связуемой библиотеке (DDL) Str.dll.

Каждая из полученных сущностей должна быть представлена базовой таблицей:

Таблица Пациенты – информация о пациенах, состоящая из следующих полей:

1) Личный номер – числовое автоинкрементное поле, содержащее номер пациента и являющееся ключевым полем отношения;

2) Фамилия – строковое поле, содержащее фамилию пациента, являющееся уникальным;

3) Имя – строковое поле, содержащее имя пациента, являющееся уникальным;

4) Отчество - строковое поле, содержащее отчество пациента, являющееся уникальным;

5) Дата рождения – строковое поле, содержащее дату рождения пациент, являющееся уникальным;

6) Дата регистрации – строковое поле, содержащее дату регистрации пациента, являющееся уникальным полем;

7) Время регистрации - числовое поле содержащее время регистрации в таблице регистрации пациентов;

8) Серия, № паспорта – строковое поле, содержащее серию и номер паспорта пациента, являющееся уникальным;

9) Регион проживания - строковое поле, содержащие регион проживания пациента, являющееся уникальным;

10) Улица – сроковое поле, содержащие название улицы пациента, являющееся уникальным;

11) № дома, № квартиры – строковое поле, содержащие № дома, № квартиры пациента, являющееся уникальным;

12)

Таблица Дополнительная информация – информация о студентах состоящая из следующих полей:

1) Личный номер – числовое автоинкрементное поле, содержащее номер студента и являющееся ключевым полем отношения;

2) Форма обучения – строковое поле, содержащее название формы обучения, являющееся уникальным полем;

3) Закрытие сессий в срок – строковое поле, содержащее информацию об закрытие сессий, являющееся уникальным полем;

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

Таблица Группы - информация о группах, которая состоит из следующих полей:

1) Код группы - числовое автоинкрементное поле, содержащее номер групп и являющееся уникальным полем;

2) Группы - строковое поле, содержащее название группы, является уникальным полем;

3) Курс - строковое поле, содержащее код группы, является уникальным полем.

Таблица Преподаватель – информация о преподавателях, состоящая из следующих полей:

1) Код преподавателя – числовое автоинкрементное поле, содержащее номер преподавателя и являющееся ключевым полем;

2) Фамилия – строковое поле, содержащее фамилию преподавателя, являющееся уникальным;

3) Имя – строковое поле, содержащее имя преподавателя, являющееся уникальным;

4) Отчество - строковое поле, содержащее отчество преподавателя, являющееся уникальным;

5) Пол – строковое поле, содержащее пол преподавателя, являющееся уникальным полем;

6) Дата рождения – строковое поле, содержащее дату рождения преподавателя, являющееся уникальным;

7) Код предмета – числовое поле содержащее код предмета в таблице Предметы;

8) Категория – строковое поле, содержащее категорию преподавателей, являющееся уникальным полем;

9) Стаж – строковое поле, содержащее информацию о стаже, являющееся уникальным полем;

10) Дата трудоустройства – строковое поле, содержащее информацию о дате трудоустройства преподавателей, являющееся уникальным полем.

Таблица Предметы – информация о предметах, состоящая из следующих полей:

1) Код предмета - числовое автоинкрементное поле, содержащее код предмета и являющееся ключевым полем;

2) Предметы – строковое поле, содержащее название предметов и являющееся уникальным полем.

Таблица Успеваемость – информация об успеваемости студентов, которая состоит из следующих полей:

1) Личный номер – числовое автоинкрементное поле, содержащее личный номер студента и являющееся уникальным полем;

2) Дата – строковое поле, содержащее информацию о дате когда была поставлена оценка, являющееся уникальным полем;

3) Код предмета – числовое поле, содержащее код предмета в таблице Предметы;

4) Оценка – строковое поле, содержащее информацию об оценках и являющееся уникальным полем.

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

1) ID – числовое автоинкрементное поле, содержащее номер электронного журнала и являющееся уникальным полем;

2) Код группы – числовое поле, содержащее код группы в таблице Группы;

3) Фамилия – строковое поле, содержащее фамилию студента, являющееся уникальным;

4) Имя – строковое поле, содержащее имя студента, являющееся уникальным;

5) Код предмета – числовое поле, содержащее код предмета в таблице Предметы;

6) Оценка – строковое поле, содержащее информацию об оценках и являющееся уникальным полем.

Таблица Расписание групп – информация о группах и курсах, состоящая из следующих полей:

1) ID – числовое автоинкрементное поле, содержащее номер группы и являющееся ключевым полем отношения;

2) Группы – строковое поле, содержащее название групп и являющееся уникальным полем;

3) Курс – строковое поле, содержащее информацию о курсе и являющееся уникальным полем.

Таблица ID-групп – информация о расписании, которая состоит из следующих полей:

1) ID - числовое автоинкрементное поле, содержащее код расписания и являющееся ключевым полем отношения;

2) День недели – строковое поле, содержащее информацию о днях недели и являющееся уникальным полем;

3) Пары – строковое поле, содержащее номер пары и являющееся уникальным полем;

4) Предмет – строковое поле, содержащее название предмета, являющееся уникальным полем.

Таблица 1 - Студенты

Имя столбца Тип данных Разрешение значения NULL
Личный номер Int  
Фамилия Varchar(60) Ограничение NOT Null
Имя Varchar(60)  
Отчество Varchar(60)  
Дата рождения Date  
Специальность Varchar(60)  
ID Int  
Группы Varchar(60)  
Курс Varchar(60)  

Таблица 2 - Дополнительная информация

Имя столбца Тип данных Разрешение значения NULL
Личный номер Int  
Форма обучения Varchar(60) Ограничение NOT Null
Закрытие сессий в срок Varchar(60)  
Наличие задолжностей Varchar(60)  

Таблица 3 - Дополнительная информация

Имя столбца Тип данных Разрешение значения NULL
Код группы Int  
Группа Varchar(60) Ограничение NOT Null
Курс Int Ограничение NOT Null

 

Таблица 4 - Предметы

Имя столбца Тип данных Разрешение значения NULL
Код предмета Int  
Предмет Varchar(60) Ограничение NOT Null

Таблица 5 - Успеваемость

Имя столбца Тип данных Разрешение значения NULL
Личный номер Int  
Дата Varchar(60) Ограничение NOT Null
Код предмета int  
Оценка int  

Таблица 6 - Преподаватель

Имя столбца Тип данных Разрешение значения NULL
Код преподавателя Int  
Фамилия Varchar(60) Ограничение NOT Null
Имя Varchar(60)  
Отчество Varchar(60)  
Пол Varchar(60)  
Дата рождения Date  
Код предмета int  
Категория Varchar(60)  
Стаж Varchar(60)  
Дата трудоустройства int  

Таблица 7 - Электронный журнал

Имя столбца Тип данных Разрешение значения NULL
ID Int  
Код группы Int Ограничение NOT Null
Фамилия Varchar(60) Ограничение NOT Null
Имя Varchar(60)  
Код предмета Int Ограничение NOT Null
Оценка Int Ограничение NOT Null

Таблица 8 - Расписание групп

Имя столбца Тип данных Разрешение значения NULL
ID Int  
Группы Varchar(60) Ограничение NOT Null
Курс Varchar(60) Ограничение NOT Null

Таблица 9 - ID-групп

Имя столбца Тип данных Разрешение значения NULL
ID Int  
День недели Varchar(60) Ограничение NOT Null
Пары Varchar(60) Ограничение NOT Null
Предмет Varchar(60) Ограничение NOT Null

 


 

Для изменения, добавления и удаления записей из таблиц базы данных и других целей предусмотрены ряд хранимых процедур:

· DeleteBook – удаление заданного источника;

· SearchBook – поиск источника по заданным атрибутам с учётом регистра символов;

· UpdateLanguage – изменение языка источника;

· InsertBook – вставка нового источника;

· UpdateTitle – изменение названия источника;

· DeleteAll – очистка всей базы данных и обнуление генераторов;

· IsWriter – проверка прав пользователя на изменение базы данных;

· UpdateBook – изменение атрибутов источника.

Для управления безопасностью базы данных созданы три роли:

· Admin – имеет права на любые действия с базой данной (изменение, чтение данных и структуры);

· Writer – имеет права на изменение и чтение данных базы данных, но не имеет прав на изменение структуры БД;

· Reader – имеет только право на чтение данных БД.

Эти все роли наделены соответствующими правами на соответствующие таблицы и хранимые процедуры.


 

Реализация клиентской части



Поделиться:


Последнее изменение этой страницы: 2016-07-11; просмотров: 295; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.252.23 (0.038 с.)