Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Создание таблиц баз данных

Читайте также:
  1. A) работает со всеми перечисленными форматами данных
  2. A)можно изменить тип диаграммы, ряд данных, параметры диаграммы и т. д.
  3. ABC-анализ данных о поставщиках
  4. Gt;■ < ' ol" '. 5 ■* создание ряда
  5. I. ПОЛОЖЕНИЕ О СИСТЕМЕ КАТАЛОГОВ, КАРТОТЕК И БАЗ ДАННЫХ ГОСУДАРСТВЕННОЙ БИБЛИОТЕКИ ЮГРЫ
  6. I.5.3. Подготовка данных для задачи линейного программирования.
  7. I.5.7. Mодификация (изменение) данных задачи.

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

В Microsoft Access существуют четыре способа создания пустой таблицы:

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

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

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

4. В режиме конструктора можно непосредственно указать параметры всех элементов структуры таблицы.

 

Создание связей между таблицами

 

Почти все современные СУБД основаны на реляционной модели данных. Название "реляционная" связано с тем, что каждая запись в такой базе данных содержит информацию, относящуюся (related) только к одному объекту. Кроме того, с данными о двух объектах можно работать как с единым целым, основанным на значениях связанных между собой данных. Все данные в реляционной БД представлены в виде таблиц.

Реляционные базы данных состоят из нескольких таблиц, связь между которыми устанавливается с помощью совпадающих полей. Связи, во-первых, обеспечивают целостность БД, а во-вторых, позволяют автоматизировать задачи обслуживания базы. Каждая запись в таблицах идентифицирует один объект. Отношение между объектами определяет отношение между таблицами. Существует 4 типа отношений:

1. Отношение «один-к-одному» означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице.

2. Отношение «один-ко-многим» означает, что каждой записи в одной таблице соответствует одна или несколько записей в другой таблице.

3. Отношение «многие-ко-одному» аналогично рассмотренному ранее типу. Тип отношения между объектами зависит от вашей точки зрения.

4. Отношение «многие-ко-многим» возникает между двумя таблицами в тех случаях, когда:

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

· одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы.

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

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

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

Определение ключевого поля

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

 

Внешний (вторичный) ключ - это одно или несколько полей (столбцов) в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице. Внешний ключ определяет способ объединения таблиц.

 

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

 

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

 

Создание базы данных подразумевает под собой автоматизацию хранения и управления информацией из какой-либо предметной области.

Предметная область - это часть реального мира, данные о которой мы хотим отразить в базе данных …

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

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

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

 

Практическое задание. Разработка базы данных «ЛПУ» с помощью СУБД Microsoft Access 2003

Описание таблиц.

1. Таблица «Пациенты»

Содержит анкетные данные пациентов. Связана с таблицей «ИсторииБолезни» отношением «один-ко-многим».

2. Таблица «ИсторииБолезни»

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

Отношение «многие-ко-многим» используется для связи с таблицами «Диагнозы», «Назначения», «Услуги», т.к. у одного и того же пациента может быть несколько заболеваний, и, соответственно диагнозов, для одного и того же пациента может быть поставлено несколько назначений или оказано несколько дополнительных услуг. Для данных связей вводятся отдельные связывающие таблицы: «ИБ-Назначения», «ИБ-Диагноз», «ИБ-Услуги».

3. Таблица «Назначения» (ИБ-Назначения)

Так как в одной истории болезни врач пишет несколько лекарственных препаратов, то вводится таблица «ИБ-назначения», которая будет связывать таблицу «Лекарственный препарат» с таблицей «ИсторииБолезни». В этой таблице будет храниться информация о том, какой препарат приписан к конкретной истории болезни («многие-ко-многим»), а также даты назначения и отмены лекарственного препарата.

4.Таблица «Лекарственные препараты»

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

4. Таблица «ПутиВведения»

У каждого лекарственного препарата есть свой путь введения. Таблица «ПутиВведения» - это справочник путей введения лекарственных препаратов. (в/в, в/м, п/к, в/к и т.д.). У каждого препарата есть свой путь введения, по этому данная таблица связана с таблицей «Лекарственные препараты» отношением «один-ко-многим»..

5. Таблица «МКБ»

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

6. Таблица «ТипыДиагнозов»

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

7.Таблица «ИБ – Диагнозы»

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

8. Таблица «Режимы»

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

9. Таблица ИБ-Режимы.

В истории болезни указывается номер режима пациента, который включает в себя номер стола (диета) и номер двигательной активности. Так как на периоде стационарного лечения у пациента могут меняться эти назначения, то вводится специальная таблица, через которую связываются таблицы «ИсторииБолезни» и справочник «Режимы» (отношение «многие-ко-многим»). Связь создается через таблицу «ИБ-Режимы», в которой также учитывается дата назначения того или иного режима.

10. Таблица «Палаты»

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

11. Таблица «Отделения»

Каждая палата принадлежит к конкретному отделению. Таблица «Отделения» – справочник отделений ЛПУ (больницы). Таблицы «Палаты» и «Отделения» связаны отношением «один-ко-многим», так как на одном отделении расположено несколько палат.

12 Таблица «Врачи».

К каждой истории болезни привязан свой врач (лечащий врач пациента). Эта таблица представляет собой справочник врачей, работающих в больнице и их специализацию. Связана с таблицей «ИсторииБолезни» отношением один-ко-многим, так как у разных пациентов может быть один и тот же лечащий врач.

13. Таблица «Услуги»

Пациентам, находящимся на стационарном лечении обычно проводятся какие-либо дополнительные лечебные или диагностические услуги. Пациенту может быть оказано много услуг (УЗИ, ЭКГ и т.д.), данные об оказанных услугах отражаются в истории болезни пациента. Таблица «ИсторииБолезни» и таблица «Услуги» связываются отношением «многие-ко-многим» через таблицу « ИБ-Услуги».

14. Таблица «ИБ-Услуги»

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

Связи между перечисленными таблицами изображены на схеме данных (рис. 4).

Рисунок 4. Схема данных

 

ПРАКТИКА

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

 

1. Скопируйте файл Z\...\Задания\Access\База_ЛПУ.mdb в Вашу папку. Откройте его двойным щелчком мыши.

ВНИМАНИЕ! При появлении следующего предупреждения нажмите «Открыть» (рис. 5).

 

Рис. 5. Предупреждение системы безопасности

 

2. Создайте таблицу ВРАЧИ. В этой таблице будут храниться данные о всех врачах, работающих в больнице. Для этого

- в окне базы данных (рис. 6), выберете вкладку «Таблицы» и нажмите «Создание таблицы в режиме конструктора».

.

Рис. 6. Окно базы данных

 

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

Определите поля таблицы в соответствии с таблицей 1. Третий столбец в таблице 1 не соответствует третьему столбцу в конструткторе таблиц MS Access. Размер поля и ограничения вносятся на вкладке «Общие» для каждого поля (рис. 7).

 

Структура таблицы Врачи

Таблица 1.

Имя поля Тип данных Размер поля и ограничения
Код_Врача Числовой Длинное целое
Фамилия Текстовый  
Имя Текстовый  
Отчество Текстовый  
Специализация Текстовый  

Рисунок 7. Конструктор таблицы

 

ВНИМАНИЕ! В поле СПЕЦИАЛИАЦИЯ используем мастер подстановок для того, чтобы не вводить, а выбирать из списка нужную специализацию. Для этого в графе «Тип данных» для поля СПЕЦИАЛИЗАЦИЯ выберите «Мастер подстановки» - как показано на рис 8.

 

 

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

В режиме СОЗДАНИЯ ПОДСТАНОВОКвыбирите пункт БУДЕТ ВВЕДЕН ФИКСИРОВАННЫЙ НАБОР ЗНАЧЕНИЙ(рис. 9).

 

 

Рисунок 9. Работа мастера подстановок, шаг 1.

 

Далее создаем 1 столбец со списком специализаций так, как показано на рисунке 9:

· Хирург

· Терапевт

· Невролог

· Эндокринолог

· Кардиолог

Задаем имя столбца в соответствии с названием поля – СПЕЦИАЛИЗАЦИЯ (рисунок 11) и нажимаем кнопку «Готово».

 

Рисунок 10. Работа мастера подстановок, шаг 2.

 


 

Рисунок 11. Работа мастера подстановок, шаг 3.

 

- Закончив создание списка в режиме конструктора на вкладке ПОДСТАНОВКА, посмотрите появившиеся изменения после работы мастера. Проверьте строку в свойствах поля ОГРАНИЧИТСЯ СПИСКОМ, в котором должно стоять слово НЕТ.

 

Обратите внимание: тип данных в поле СПЕЦИАЛИЗАЦИЯ поменялся на «Текстовый», но, если в свойствах поля вы выберите вкладку «Подстановка», то вы увидите ваш созданный список.

- В качестве ключевого задайте поле КОД ВРАЧА. Для определения ключевого поля, необходимо в режиме конструктора, выделить нужное поля, в данном случае КОД_ВРАЧА и нажать клавишу на панели инструментов, как показано на рисунке 12.

 

 

Рис. 12. Задание ключевого поля

 

Завершив создание структуры, сохраните таблицу и назовите ее «Врачи»

3. Создайте таблицу ОТДЕЛЕНИЯ.

В нашей больнице есть несколько различных отделений. Они разделены по профилю специализации. Каждому отделению принадлежат свои палаты для пациентов. Для хранения данной информации создадим таблицы «Отделения» и «Палаты».

Создайте таблицу «Отделения». Для этого в окне базы данных выберите ТАБЛИЦЫ – «Создать в режиме конструктора», так как вы делали это для создания предыдущей таблицы.

 

Таблица 2. Структура таблицы «Отделения».

 

Имя поля Тип данных Размер поля
КодОтделения Счетчик Длинное целое
Наименование Текстовый  

 

- В качестве ключевого задайте поле КодОтделения Для этого щелкните по полю КодОтделения и выполните команду ПРАВКАÞКЛЮЧЕВОЕ ПОЛЕ; или нажмите на пиктограмму, так как вы делали эту операцию для предыдущей таблицы.

 

- В поле НАИМЕНОВАНИЕ создайте ПОЛЕ СО СПИСКОМ. Список будет состоять из следующих отделений Воспользуйтесь инструкцией для предыдущей таблицы.

 

· Кардиология

· Неврология

· Общая хирургия

· Реабилитация

· Эндокринология

 

. Завершив создание структуры, сохраните таблицу и назовите ее «Отделения»

 

  1. Создайте таблицу «Палаты».

Создайте структуру таблицы ПАЛАТЫ в соответствии с табл.3..

 

 

Таблица 3. Структура таблицы «Палаты»

 

Имя поля Тип данных Размер поля
КодПалаты Счетчик  
КодОтделения Числовой Длинное Целое
Номер Числовой Длинное Целое

 

 

В качестве ключевого поля задайте поле КодПалаты. Воспользуйтесь пиктограммой на панели инструментов или контекстным меню по правой кнопке мыши.

 

Так как у каждого отделения есть свои определенные палаты, то добавим поле КодОтделения. Благодаря этому полю, мы будем знать, к какому отделению принадлежит данная палата. Поле КодОтделения будет заполняться при помощи мастера подстановок из таблицы ОДЕЛЕНИЯ.

Для этого в поле ТИП ДАННЫХ для поля КодОтделения выберите МАСТЕР ПОДСТАНОВОК. В открывшемся окне выберите «Объект будет использовать данные из таблицы или запроса», как показано на рисунке 13.


 

Рис. 13.

 

В качестве таблицы подстановки выберите таблицу ОТДЕЛЕНИЯ.

Из доступных полей таблицы ОТДЕЛЕНИЯ выберите, КодОтделения, НАИМЕНОВАНИЕ, скройте ключевое поле.

 

После работы мастера при заполнении поля КОД ОТДЕЛЕНИЯ таблицы ПАЛАТЫ будут отображаться НАИМЕНОВАНИЕ отделения для выбора.

 

В свойствах поля перейдите на вкладку «Подстановка», в графе «Ограничиться списком» выберете «Да»

Сохраните таблицу и назовите ее «Палаты»

 

ВНИМАНИЕ! Проверить: у связанных полей должны быть одинаковые значения в графах - типы данных и размер поля.

 

  1. Создайте таблицу «Услуги».

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

 

Таблица 8.Структура таблицы Услуги

 

Имя поля Тип данных Размер поля
Код СЧЕТЧИК Длинное целое
Наименование Текстовый  

 

Для создания данной таблицы воспользуемся МАСТЕРОМ ИМПОРТА. Для этого:

- в окне базы данных выберите меню ФАЙЛ – ВНЕШНИЕ ДАННЫЕ - ИМПОРТ (рисунок 14).

 

 

Рис. 14.

- в открывшемся окне укажите путь на диске Z…\\Задания\\Access, выберите базу «База2» и нажмите кнопку ИМПОРТ.

- в открывшемся окне ИМПОРТ ОБЪЕКТОВ выберите вкладку ТАБЛИЦЫ, затем найдите в списке таблицу «УСЛУГИ» и нажмите ОК.

 

В результате в вашем списке таблиц появится новая таблица «УСЛУГИ». Откройте ее в режиме конструктора и проверьте структуру и свойства полей.

 

7. Создайте таблицу «ИБ-Услуги

Для того чтобы владеть информацией о том, какому пациенту оказывались дополнительные платные услуги и кто их назначал, создадим таблицу «ИБ-Услуги»

 

Таблица 9.Структура таблицы ИБ - Услуги

 

Имя поля Тип данных Размер поля
Код Счетчик Длинное целое
КодУслуги Числовой Длинное целое
КодВрача Числовой Длинное целое
кодИсторииБолезни Числовой Длинное целое

 

Ключевое поле КОД.

Поле КодУслуги заполняется с помощью мастера подстановки из таблицы «УСЛУГИ», для заполнения полей КодВрача и КодИсторииБолезни также используется МАСТЕР ПОДСТАНОВКИ и соответственно таблицы «ВРАЧИ» и «ИСТОРИИБОЛЕЗНИ. Таблица «ИСТОРИИБОЛЕЗНИ» уже есть в вашей базе данных.

Еще раз проверьте соответствие типов данных и размеров полей, по которым связываются таблицы. Например, если в таблице «ВРАЧИ» поле КодВрача с типом данных Числовой и размером Длинное целое, то и в таблице «ИБ-Услуги» поле КодВрача должно быть числовым с размером Длинное Целое.

Сохраните таблицу и назовите ее «ИБ-Услуги»»

 

-8. Работа со схемой данных.

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

· Выполните команду СЕРВИСÞСХЕМА ДАННЫХ. На экране появится окно СХЕМА ДАННЫХ;

· Выполните команду СВЯЗИÞДОБАВИТЬ ТАБЛИЦУ;

· В появившемся окне ДОБАВЛЕНИЕ ТАБЛИЦЫ поочередно двойным щелчком мыши добавьте созданные таблицы. Будьте внимательны, вы должны добавить таблицы: ВРАЧИ, ОТДЕЛЕНИЯ, ПАЛАТЫ, УСЛУГИ, ИБ-УСЛУГИ.

· Закройте окно нажав кнопку ЗАКРЫТЬ;

· Создайте связь между таблицами ВРАЧИ и ИСТОРИЯ БОЛЕЗНИ. Для этого подведите курсор мыши к полю КодВрача в таблице ВРАЧИ, нажмите левую клавишу мыши и, не отпуская ее, перетащите курсор на поле КодВрача в таблице ИСТОРИЯ БОЛЕЗНИ, а затем отпустите левую клавишу мыши. На экране откроется окно СВЯЗИ;

· Щелкните по ячейке ОБЕСПЕЧЕНИЕ ЦЕЛОСТНОСТИ ДАННЫХ – в ней должна появиться галочка;

· Щелкните по ячейкам КАСКАДНОЕ ОБНОВЛЕНИЕ СВЯЗАННЫХ ПОЛЕЙ и КАСКАДНОЕ УДАЛЕНИЕ СВЯЗАННЫХ ЗАПИСЕЙ.

 

 

Информация. Задание каскадного обновления связанных полей и каскадного удаление связанных записей позволит вам редактировать записи только в таблице «ВРАЧИ», а в таблице «ИСТОРИЯ БОЛЕЗНИ» эти действия будут со связанными записями выполняться автоматически. Например, если вы удалите из таблицы «ВРАЧИ» одну запись, то в таблице «ИСТОРИЯ БОЛЕЗНИ» удалятся все строки, связанные с этой записью.

· Нажмите кнопку СОЗДАТЬ. Связь будет создана;

· Аналогично создайте связи между полем КодОтделения в таблице «ОТДЕЛЕНИЯ» и полем КодОтделения в таблице ПАЛАТЫ

· Создайте связь между полем КодПалаты в таблице «ПАЛАТЫ» и полем КодПалаты в таблице «ИСТОРИЯБОЛЕЗНИ».

· Создайте связь между полями КодУслуги в таблицах «УСЛУГИ» и «ИБ-УСЛУГИ»

· Создайте связь в таблице «ИБ-УСЛУГИ» и таблицах «ВРАЧИ» по полю КодВрача.

· И, наконец. Свяжите таблицу «ИБ-УСЛУГИ» и таблицу «ИСТОРИЯ БОЛЕЗНИ» по полю кодИсторииБолезни.

Если вы все проделали правильно, то у вас должна получиться следующая схема данных;

 

Рис 16. Схема БД

 

· Сверьте полученную схему с рис. 16.

· Закройте окно схемы данных, ответив ДА на вопрос о сохранении макета.

 

 


Дата добавления: 2015-10-29; просмотров: 178 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Объекты СУБД Microsoft Access 2003| СОЗДАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ В СРЕДЕ mS ACCESS

mybiblioteka.su - 2015-2024 год. (0.077 сек.)