
2. Основные понятия о реляционных базах данных.
Понятие реляционный (англ. relation — отношение) связано с разработками известного американского специалиста в области систем баз данных, сотрудника фирмы IBM д-ра Е. Кодда (Codd E.F., A Relational Model of Data for Large Shared Data Banks. CACM 13: 6, June 1970), которым впервые был применен термин «реляционная модель данных».
В течение долгого времени реляционный подход рассматривался как удобный формальный аппарат анализа баз данных, не имеющий практических перспектив, так как его реализация требовала слишком больших машинных ресурсов. Только с появлением персональных ЭВМ реляционные и близкие к ним системы стали распространяться, практически не оставив места другим моделям.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
каждый элемент таблицы - один элемент данных; повторяющиеся группы отсутствуют;
все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
каждый столбец имеет уникальное имя;
одинаковые строки в таблице отсутствуют;
порядок следования строк и столбцов может быть произвольным. Таблица такого рода называется отношением.
База данных, построенная с помощью отношений, называется реляционной базой данных.
Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы - атрибутам отношений, доменам, полям.
Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ.
Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей); в противном случае нужно ввести в структуру первой таблицы внешний ключ - ключ второй таблицы.
Предложив реляционную модель данных, Э.Ф.Кодд создал и инструмент для удобной работы с отношениями – реляционную алгебру. Каждая операция этой алгебры использует одну или несколько таблиц (отношений) в качестве ее операндов и продуцирует в результате новую таблицу, т.е. позволяет "разрезать" или "склеивать" таблицы.
То, чем принципиально отличаются реляционные модели от сетевых и иерархических, на это можно сказать следующим образом: иерархические и сетевые модели данных - имеют связь по структуре, а реляционные - имеют связь по значению.
Проектирование баз данных традиционно считалось очень трудной задачей. Реляционная технология значительно упрощает эту задачу.
Разделением логического и физического уровней системы она упрощает процесс отображения "уровня реального мира", в структуру, которую система может прямо поддерживать. Поскольку реляционная структура сама по себе концептуально проста, она позволяет реализовывать небольшие и/или простые (и поэтому легкие для создания) базы данных, такие как персональные, сама возможность реализации которых никогда даже бы не рассматривалась в старых более сложных системах.
Теория и дисциплина нормализации может помочь, показывая, что случается, если отношения не структурированы естественным образом.
Реляционная модель данных особенно удобна для использования в базах данных распределенной архитектуры - она позволяет получать доступ к любым информационным элементам, хранящимся в узлах сети ЭВМ. Необходимо обратить особое внимание на высокоуровневый аспект реляционного подхода, который состоит во множественной обработке записей. Благодаря этому значительно возрастает потенциал реляционного подхода, который не может быть достигнут при обработке по одной записи и, прежде всего, это касается оптимизации.
Данная модель позволяет определять:
операции по запоминанию и поиску данных;
ограничения, связанные с обеспечением целостности данных.
Для увеличения эффективности работы во многих СУБД реляционного типа приняты ограничения, соответствующие строгой реляционной модели.
Многие реляционные СУБД представляют файлы БД для пользователя в табличном формате — с записями в качестве строк и их полями в качестве столбцов. В табличном виде информация воспринимается значительно легче. Однако в БД на физическом уровне данные хранятся, как правило, в файлах, содержащих последовательности записей.
Основным преимуществом реляционных СУБД является возможность связывания на основе определенных соотношений файлов БД.
Со структурной точки зрения реляционные модели являются более простыми и однородными, чем иерархические и сетевые. В реляционной модели каждому объекту предметной области соответствует одно или более отношений. При необходимости определить связь между объектами явно, она выражается в виде отношения, в котором в качестве атрибутов присутствуют идентификаторы взаимосвязанных объектов. В реляционной модели объекты предметной области и связи между ними представляются одинаковыми информационными конструкциями, существенно упрощая саму модель.
СУБД считается реляционной при выполнении следующих двух условий, предложенных еще Э. Коддом:
поддерживает реляционную структуру данных;
реализует по крайней мере операции селекции, проекции и соединения отношений.
В последующем был создан целый ряд реляционных СУБД, в той или иной мере отвечающих данному определению. Многие СУБД представляют собой существенные расширения реляционной модели, другие являются смешанными, поддерживая несколько даталогических моделей.
На сегодняшний день реляционные базы данных остаются самыми распространенными, благодаря своей простоте и наглядности как в процессе создания так и на пользовательском уровне.
Основным достоинством реляционных баз данных является совместимость с самым популярным языком запросов SQL.
С помощью единственного запроса на этом языке можно соединить несколько таблиц во временную таблицу и вырезать из нее требуемые строки и столбцы (селекция и проекция). Так как табличная структура реляционной базы данных интуитивно понятна пользователям, то и язык SQL является простым и легким для изучения. Реляционная модель имеет солидный теоретический фундамент, на котором были основаны эволюция и реализация реляционных баз данных. На волне популярности, вызванной успехом реляционной модели, SQL стал основным языком для реляционных баз данных.
Но выявлены и недостатки рассмотренной модели баз данных:
так как все поля одной таблицы должны содержать постоянное число полей заранее определенных типов, приходится создавать дополнительные таблицы, учитывающие индивидуальные особенности элементов, при помощи внешних ключей.
Структура базы данных.
Схема данных
Access 2007 позволяет строить реляционные базы данных, отдельные таблицы которых могут быть связаны между собой.
Простейшей и наиболее редкой формой связи между таблицами является связь «один к одному», при которой для каждой записи в одной таблице существует в лучшем случае одна связанная с ней запись в другой таблице.
Гораздо чаще встречается связь «один ко многим», при которой для каждой записи в одной таблице существует одна, несколько или ни одной записи в другой таблице.
Нередко приходится иметь дело также со связью «многие ко многим», при которой отсутствуют ограничения на множества пар записей, принадлежащих связи. Такая связь в Access не используется. Ее необходимо представить в виде двух связей «один ко многим».
С базе данных «Поликлиника» таблицы связаны друг с другом двумя связями «один ко многим».
Запросы
Запрос представляет собой специальную функцию, позволяющую выводить необходимые поля из таблицы, а также производить операции с данными полями в режиме конструктора, например, подсчет суммы, выборка полей, подсчет среднего итога. Существует несколько типов запросов: на выборку, на добавление, на удаление, на обновление, запрос на создание таблиц, перекрестный запрос. Запрос можно использовать для выполнения расчетов. Для этих целей предусмотрены статистические функции. Статистическую функцию задают в строке Групповая операция.
Таблица 3 «Функции и выполняемые операции»
Функция |
Выполняемая операция |
Sum |
Суммирование значений определенного поля |
Avg |
Вычисление среднего значения |
Min |
Вычисление минимального значения |
Мах |
Вычисление максимального значения |
Count |
Вычисление количества записей в определенном поле |
First |
Определяется первое значение в указанном поле |
Last |
Определяется последнее значение в указанном поле |
StDev |
Вычисляется стандартное отклонение значений данного поля |
Var |
Вычисляется вариация значений данного поля |
Перечень запросов, применявшихся в данной базе данных приведен ниже.
Запрос «Врачи и их пациенты»
Запрос «Врачи и их пациенты» позволяет вывести фамилии врачей, работающих по данной медицинской специальности.
Запрос «Время пребывания в больнице»
Запрос «Время пребывания в больнице» позволяет узнать продолжительность нахождения пациента на стационарном лечении.
Запрос «Пациенты-женщины»
Запрос «Пациенты-женщины» отображает пациентов женского пола
Запрос «Пациенты, лежавшие неоднократно»
Запрос «Пациенты, лежавшие неоднократно» выводит пациентов, которые лежали в больнице более одного раза.
Запрос «Пациенты-пенсионеры»
Запрос «Пациенты-пенсионеры» отображает всех пациентов, достигших пенсионного возраста.
Запрос «Подбор специальности врача по диагнозу»
Запрос «Подбор специальности врача по диагнозу» позволяет, путем ввода диагноза при запуске запроса определить специализирующегося на данной болезни врача.
Формы
Работа с данными в режиме таблицы имеет существенный недостаток: если полей слишком много, они не умещаются на экране и приходится прибегать к различным манипуляциям, чтобы оптимизировать представление: например, убирать некоторые столбцы, менять их положение.
После создания базы данных (и, возможно, одной или более таблиц) вы можете создать формы для просмотра данных в более удобном виде. Форма может служить средством защиты базы данных от неквалифицированных пользователей, а также ширмой, заслоняющей от любопытных глаз конфиденциальную информацию.
Любая форма строится на основе Access-таблицы или запроса. Имена полей извлекаются из спецификации таблицы, а поля в форме можно расположить по своему усмотрению. На основе одной таблицы можно построить несколько форм.
В Access 2007 существует несколько способов создания форм:
Таблица 4 Способы создания форм
Автоформа
|
Автоматическое создание формы с использованием одного из стандартных шаблонов. Это наиболее простой и быстрый способ создания формы. |
Мастер форм |
Создание формы с помощью мастера; в зависимости от назначения формы мастер предлагает на выбор стандартные шаблоны и стили оформления. |
Конструктор |
Создание формы на основе пустого бланка при помощи инструментальных средств конструктора форм. Также предназначен для обработки готовых форм. |
Сводная диаграмма |
Создание формы с диаграммой на основе выбранных полей таблицы. |
Сводная таблица |
Создание сводной таблицы Microsoft Excel на основе таблиц или запросов Access XP |
Существует несколько разновидностей автоформ:
Форма — создание формы для ввода данных по одной записи за раз
Разделенная форма — создание разделенной формы, в верхней части которой отображается таблица, а в нижней – форма для ввода данных в запись, выделенную в таблице.
Несколько элементов — создание формы, в которой записи отображаются в виде таблицы, при этом каждая запись занимает отдельную строку
При каждом открытии сохраненной формы обновляются данные таблицы или запроса, на основе которого была создана форма. Благодаря этому содержимое формы всегда соответствует информации в таблицах или запросах.
Перечень форм, применявшихся в данной работе приведен ниже:
Форма «История болезни»
Форма «История болезни» показывает данные больного, диагноз и дату поступления с данным диагнозом в больницу.
Главная кнопочная форма
Главная кнопочная форма предназначена для открытия запросов, форм и отчетов базы данных, путем нажатия соответствующей кнопки о области главной кнопочной формы.
Форма «Сведения о врачах»
Форма «Сведения о врачах» представлена в ленточном виде и показывает ФИО врача и его специальность.
Форма «Сведения о пациенте»
Форма «Сведения о пациенте» представляет собой ленточный тип формы, показывающей данные о пациенте.
Отчеты
Отчеты используются для отображения данных таблицы или запроса в удобном для пользователя формате (с заголовками и номерами страниц).
Больше всего сведений в отчете берется из базовой таблицы и запроса, являющихся источниками данных для отчета. Другие сведения вводятся при разработке отчета. При создании отчета можно использовать несколько таблиц и запросов.
Использование отчетов имеет следующие достоинства:
данные могут быть представлены в удобной для чтения и анализа форме;
отчет позволяет включать и печатать графические объекты (например, диаграммы);
обеспечивается возможность работы с материалом, напечатанным на бумаге.
Отчеты можно создавать двумя способами:
при помощи мастеров отчетов/автоотчетов;
«вручную».
Отчет «Врачи по специальности»
Отчет «Врачи по специальности» построен в виде макета «структура» с уровнем группировки по специальности врача и отображает всех врачей поликлиники по конкретной сепциальности.
Отчет «Пациенты-пенсионеры»
Отчет «Пациенты-пенсионеры» показывает всех пациентов пенсионного возраста.
Отчет «Учет поступления, выписок»
Отчет «Учет поступления, выписок» выполнен с уровнем группировки представления данных по ФИО пациента и позволяет просмотреть данные о диагнозах, поступлениях и выписках пациентов