Реляционные базы данных
Неверным будет считать, что в информационных системах используются только реляционные базы данных. Зачастую можно встретить реализацию баз данных на основе иерархической, сетевой, реляционной и прочих моделей. Тем не менее, большинство информационных систем основываются на реляционных базах данных, основу которым заложил Э. Кодд в конце 1960-х гг., определив основные правила и операции, которые должны применяться при реализации таких баз данных. Многие модели баз данных, которые можно встретить в информационных системах, так или иначе основываются на принципах реляционных баз данных и используют различные дополнительные инструменты для улучшения работы с отдельными видами данных, например, с географическими данными, данными в реальном режиме времени (потоковые данные), многомерными данными и пр.
Основу в реляционных базах данных составляет реляционная модель данных, строящаяся на базе реляционной алгебры, формирующей базовые правила работы с данными в соответствующих базах данных.
Реляционная модель данных
Построение реляционной модели данных основывается на том понимании, что любой набор данных может быть представлен в виде отношения, оформляемого, но форме таблицы (рис. 1.12), где данные представляются
атрибутами и значениями на пересечении соответствующего атрибута с записью (кортежем).
Рис. 1.12. Пример отношения в реляционной модели |
Под термином "Отношение" понимается множество данных, объединенных в совокупность записей (кортежей) и описанных заголовком, содержащим множество атрибутов.
В представленном выше примере вся совокупность значений должностей и заголовочная часть с именованными атрибутами, по которым размещаются значения, называется отношением. В терминах формальной логики отношение в общем виде может быть представлено следующим образом:
R{A,T},i={1..n} (11)
В данном представлении под A, понимается атрибут, описывающий одну характеристику данных, а под T- тип данных, которому должны соответствовать представляемые в отношении данные. Представленный выше пример является неформальным изложением [1] отношения. В его заголовке не указаны типы данных, которыми описываются представляемые в теле отношения сведения.
Обычно заголовок отношения, где указываются наименования атрибутов и их типов, называют схемой отношения, а совокупность взаимосвязанных схем отношений называется схемой данных. Заголовок отношения содержит стандартизированные типы данных или типы, произведенные из стандартизированных типов, а множество значений, связанных с конкретным атрибутом стандартного или производного типа данных, именуется доменом.
Вод термином "Домен" в теории баз данных понимается допустимое множество поименованных значений одного типа имеющих определенный смысл
Из данного определения следует, что домен характеризуется следующими свойствами:
• домен несет определенную смысловую нагрузку, что выражается в понимании смысла описываемых данных, который обычно совпадает с понимаем данных в предметной области;
• домен определяется простым или производным от простого типа данных, что позволяет воспользоваться простыми логическими операциями над данными;
• домен может содержать логическое условие, которое выделяет определенное подмножество данных, допустимое для этого домена.
Тело отношения строится из множества записей, которые в терминах реляционной алгебры называются кортежами и представляют сведения, существующие в предметной области в рамках рассматриваемого объекта или группы взаимосвязанных объектов.
Таким образом, согласно определению кортежа, в него входят все возможные данные, подчиняющиеся правилам, определенным отдельными доменами. При этом каждый элемент данных кортежа соответствует только одному домену и подчиняется всем свойствам, которые определяются этим доменом.
Описание кортежей использует ряд важных свойств, некоторые из которых представлены ниже:
каждый кортеж содержит только одно значение для каждого из атрибутов, характеризующих отношение;
для компонентов кортежа, аналогично элементам домена, не предполагается какое-либо упорядочивание;
каждое подмножество кортежей представляется гоже кортежем.
Объединяя домены и кортежи, можно сформировать отношение, которое в общем виде определяется следующим образом;
R[<Заголовок>]{<Список кортежей >}. (1.2)
Заголовок отношения представляется разделенным запятыми списком атрибутов. Также важным является тот факт, что второй параметр отношения, при правильном представлении, обозначается термином "Тело", содержащим множество кортежей. Но для упрощения неформального общения и упрощения изложения термин "Тело" заменяют термином "Кортеж", подразумевая, что все кортежи формируют тело отношения. В дополнение к пониманию терминов "Кортеж", "Домен" и "Тело" в теории реляционных баз данных устанавливается ограничение, по которому все кортежи одного отношения относятся к одному и тому же типу кортежа, а он (тип кортежа) должен быть точно таким же, как он определен в заголовке отношения. Таким образом, все правила для представления данных, определенные в заголовке, распространяются на все кортежи отношения.
Учитывая описанные выше определения отношения, кортежа и домена, можно сформулировать основные свойства отношения. Для примера свойств отношения рассмотрим отношение информации о сотрудниках организации, включающее атрибуты кортежей, но ФИО сотрудника, его должности и должностному окладу. Эти атрибуты будут составлять заголовок отношения, формируя домены для отношения. Каждый атрибут заголовка содержит не только название атрибута, но и его тип (рис. 1.13), который определяет возможные типы [2] хранимых данных по их представлению, обработке и ограничениям.
Рис. 1.13. Пример отношения "Сотрудники" |
Любое отношение в реляционной базе данных характеризуется следующими свойствами.
1. Каждый кортеж содержит только одно значение соответствующего типа по каждому атрибуту (отношение нормализовано).
Каждому атрибуту в представленном примере в рамках каждого кортежа поставлено в соответствие только одно значение, что видно на пересечении выделенного домена "ФИО сотрудника" и кортежа с ФИО "Петров Петр Петрович". Отношение, которое соответствует этому свойству, является нормализованным [3], т.е. находится в данном случае в первой нормальной форме, 1НФ.
2. Атрибуты не являются упорядоченными по какому-либо правилу.
Ранее было определено, что компоненты кортежа не являются упорядоченными, а поскольку кортеж должен однозначно соответствовать атрибутам заголовка, то и эти атрибуты также не являются упорядоченными. Нужно понимать, что человек, представляя структуры данных, всегда применяет определенные правила упорядочивания атрибутов и кортежей, но важно помнить, что такое упорядочивание не является важным и не учитывается при работе с реляционными базами данных. Поэтому понятия "Первый атрибут" или "Второй атрибут" к объектам реляционной модели неприменимы, а также не может идти речь о термине "Следующий атрибут" или "Предыдущий атрибут".
Такая ситуация дает определенную жесткость в работе с базами данных, улучшая качество программного кода обработки данных, что зачастую не всегда очевидно при программировании с меньшей жесткостью.
3. Кортежи не являются упорядоченнымии по какому-либо правилу.
Данное свойство следует из того, что тело отношения представляется
множеством, которое по математическим правилам не является упорядоченным. Поскольку реляционные отношения подчиняются правилам работы с математическими множествами, то и применяется математический аппарат работы с множествами.
Конечно, представляя отношение на бумаге, человек попытается его каким-либо образом упорядочить, чтобы легче было обрабатывать. Однако такое отражение отношения не является правилом и является всего лишь представлением отношения. Само же отношение остается неупорядоченным, и представив его в другом порядке расположения кортежей, само отношение не изменить и к нему можно будет применить те же операторы обработки, что и для отношения с другим упорядоченным представлением. Из этого следует, что для реализации в базах данных упорядоченное представление отношения не имеет никакого смысла, а значит, любое отношение в базах данных является неупорядоченным.
4. В отношении отсутствуют дубликаты кортежей.
Это свойство отношения следует из понимания того, что тело отношения представляется множеством, а любое множество, с учетом его математического представления, не содержит дубликатов. Из этого следует, что, взяв любой кортеж, представленный всеми используемыми в отношении атрибутами, невозможно будет найти ни одного кортежа точно с такими же значениями атрибутами.
В то же время, это свойство иллюстрирует различия между отношением и таблицей. Понимая, что таблица данных является физической реализацией отношений в базе данных, там можно разместить записи с одинаковыми значениями, если, конечно, не обеспечить на уровне программной логики построения базы данных такую возможность, а отношение, по определению, никогда не содержит дубликатов кортежей.
Зачастую, когда нет необходимости отражать значения, описываемые в отношении (тело отношения), в реляционной модели ограничиваются только указанием заголовка отношения с прописанием наименования самого отношения или только наименованием отношения. Такие представления реляционной модели данных являются фильтрованными отображениями, которые применяются в специализированных средствах моделирования структур баз данных, как, например, в IBM InfoSphere Data Architect (рис. 1.14).
Рис. 1.14. Пример реляционной модели данных |
Основными сведениями, содержащимися в реляционной модели данных, являются наименования отношений (сущностей), атрибутов и типов атрибутов, которыми описываются отношения. Дополнительно в реляционной модели отражаются связи между отношениями (сущностями), которые дают возможность отобразить взаимодействие элементов тел связанных отношений. Каждый из указанных компонентов реляционной модели обладает рядом вспомогательных характеристик, которые уточняют.
вила представления и обработки элементов тела отношения. Хотя эти характеристики явно не визуализируются в модели данных, они учитываются при представлении отношений в полном виде с учетом отображения тела отношения.
Представленная в примере модель данных использует фильтр отображения, учитывающий необходимость показа наименования отношения (сущности), атрибутивного состава каждого отношения и связи между отношениями. Отсутствие в визуализации модели типов атрибутов и прочих характеристик не значит, что они не определены или их нет. Это всего лишь означает, что модель данных представлена для необходимости рассмотрения только указанных параметров, а все остальные характеристики зафиксированы в скрытых компонентах модели. Например, другим вариантом представления может быть случай, показанный на рис. 1.15.
Рис. 1.15. Пример расширенного представления реляционной модели данных |
В данном представлении, помимо наименования отношений (сущностей) и атрибутов, отображены типы данных, которые характеризуют тело отношения, хотя само тело в данных моделях не представляется. Нужно учитывать, что модель данных (модель базы данных) в специализированных средствах моделирования ориентирована на дальнейшее представление в виде структуры базы данных и указание тел отношений является нецелесообразным. В связи с этим в моделях баз данных, как правило, тела отношений не показываются. Если же модель строится именно для отражения операций с отношениями, в полном понимании этого термина, то все отношения должны представляться с телами, иллюстрирующими возможные значения, которые впоследствии будут храниться в таблицах базы данных.
Такое разделение зачастую вносит некоторую путаницу в корректность использования той или иной модели данных (модели базы данных), что требует более точного описания их использования. Так, модель данных в виде отношений используется, когда необходимо проиллюстрировать возможные операции над данными отношений и понимать правильность интерпретации в модели предметной области, представленной объектами с их возможными экземплярами. Модель данных в виде сущностей и связей (ЕЛ-модель) используется для формирования логической (инфологической) модели базы данных без указания конкретных значений данных и направлена на дальнейшее представление в форме структуры базы данных. Модель в виде таблиц и связей строится на физическом уровне, отражая особенности представления и обработки данных на уровне СУБД. В результате получается представление реляционной модели данных в трех основных вариантах (табл. 1.3).
Таблица 13
Варианты представления реляционных моделей данных
Вид представления |
Используемая терминология |
Назначение |
Модель с отражением наименования отношения, атрибутивного состава, связей |
Сущность Атрибут Связь Тип данных |
Используется для моделирования логической структуры данных для последующего перехода на физический уровень |
Модель с отражением заголовка и тела с возможными данными |
Отношение Заголовок Атрибут/Домен Тип данных Тело Кортеж |
Используется для представления с указанием возможных значений данных и применения при необходимости анализа возможных операций над отношениями и данными в отношениях |
Модель с отображением структур физического представления данных в СУБД |
Таблица Атрибут/11оле/Колонка Тип данных Связь |
Используется для отображения варианта представления структуры, которая будет реализована на физическом уровне в СУБД |
Примечание. В данном разделе рассматриваются формы представления модели базы данных, что отражено тремя вариантами. Нужно учитывать, что моделирование базы данных строится на основе реализации уровней моделирования, а, следовательно, существует интерпретация моделей данных в соответствии с этими уровнями, которые представляются другими видами реляционных моделей, о чем речь пойдет позже. В связи с этим не стоит воспринимать описанный выше перечень представления моделей исчерпывающим, понимая, что могут быть другие представления и другие виды моделей.