Определение реляционной модели

Реляционная модель данных (РМД) впервые была предложена американским математиком Коддом в 1970 г. [1]. С точки зрения структур данных, использующихся для связи между собой внутренних объектов БД, реляционная модель относится к ссылочной модели данных с именами (идентификаторами) данных. Фундаментальным понятием реляционной БДРМД является отношение, представляющее собой подмножество декартова произведения доменов.. Это отражено и в общем названии подхода – термин реляционный происходит от relation (отношение).

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

 

Элементы отношения называют кортежами, элементы кортежа – атрибутами (полями). Длина кортежа (количество атрибутов) определяет арность отношения, количество кортежей – мощность отношения.

Каждое отношение хранит данные об одном типе объекта (сущности) предметной области, причём один кортеж отношения содержит данные об одном экземпляре объекта данного типа.

Отношение обладает двумя важными свойствами:

1. В отношении не должно быть одинаковых кортежей, т.к. это множество.

2. В отношении порядок кортежей несущественен.

Несколько атрибутов отношения могут быть определены на одном и том же домене (например, год рождения и год смерти). Каждый атрибут принадлежит к определённому типу данных и характеризуется размером памяти, выделяемой под его хранение. Описание совокупности атрибутов отношения с их типами и размерами называется схемой отношения.

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

Атрибут (группа атрибутов), значения которого являются уникальными в рамках отношения, идентифицируют кортеж и называются потенциальными ключами. Если ключ состоит из нескольких атрибутов, он называется составным. Ключей может быть несколько; основным является первичныйключ, его значения не могут обновляться. Отношение может иметь только один первичный ключ (ПК); его значения обязательны для кортежа.

Данные в отношениях обрабатываются с помощью операций реляционной алгебры. Операции реляционной алгебры (РА) применимы к реляционным отношениям. Результатом выполнения операции реляционной алгебры также является отношение, построенное на основе одного или более исходных отношений. Существует пять основных операций РА и три вспомогательных, которые могут быть выражены через основные [7].

Основными операциями реляционной алгебры являются следующие.

Проекция.

Это унарная операция (выполняемая над одним отношением), служащая для выбора подмножества атрибутов из отношения

Селекция.

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

Декартово произведение.

Это бинарная операция над разносхемными отношениями, соответствующая определению декартова произведения для РМД.

Объединение.

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

Разность.

Разностью односхемных отношений называется множество кортежей одного отношения, не входящих в другое.

К вспомогательным относятся следующие операции реляционной алгебры.

Пересечение.

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

Соединение.

Эта операция определяет подмножество декартова произведения двух разносхемных отношений. Кортеж декартова произведения входит в результирующее отношение, если для атрибутов разных исходных отношений выполняется некоторое условие. Если условием является равенство атрибутов исходных отношений, такая операция называется эквисоединением. Естественным называется эквисоединение по одинаковым атрибутам исходных отношений.

Деление.

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

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

К сожалению, практическое определение понятия «реляционная база данных» оказалось гораздо более расплывчатым, чем точное математическое определение, данное этому термину Коддом в 1970 г. Поставщики СУБД реализовывали в своих продуктах лишь некоторые черты реляционных систем, и фактически потенциальные возможности и смысл реляционного подхода искажались.

В ответ на это в 1985 г. Кодд написал статью, где сформулировал 12 правил, которым должна удовлетворять любая база данных, претендующая на звание реляционной. Приведенные ниже двенадцать правил Кодда считаются определением реляционной СУБД [1, 2].

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

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

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

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

5. Правило исчерпывающего подъязыка данных. Реляционная система может поддерживать различные языки и режимы взаимодействия с пользователем (например, режим запросов и ответов). Однако должен существовать по крайней мере один язык, операторы которого можно представить в виде строк символов в соответствии с некоторым четко определенным синтаксисом и который в полной мере поддерживает:

· определение данных;

· определение представлений;

· манипулирование данными (интерактивное и программное);

· условия целостности;

· идентификацию прав доступа;

· границы транзакций (начало, завершение и отмену).

6. Правило обновления представлений. Все представления, которые теоретически можно обновить, должны быть доступны для обновления.

7. Правило добавления, обновления и удаления. Возможность работать с отношением (таблицей) или с представлением как с одним операндом должна существовать не только при чтении данных, но и при добавлении, обновлении и удалении данных.

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

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

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

11. Правило независимости распространения. Реляционная СУБД не должна зависеть от потребностей конкретного пользователя.

12. Правило единственности. Если в реляционной системе есть низкоуровневый язык (обрабатывающий одну запись за одно действие), то должна отсутствовать возможность использования его для того, чтобы обойти правила и условия целостности, выраженные на реляционном языке высокого уровня (обрабатывающем несколько записей за одно действие).

Правило 1 напоминает неформальное определение реляционной базы данных, приведенное ранее.

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

Правило 3 требует, чтобы отсутствующие данные можно было представить с помощью недействительных значений (NULL).

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

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

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

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

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

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

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

И, наконец, правило 12 предотвращает использование других возможностей для работы с базой данных, помимо языка базы данных, поскольку это может нарушить ее целостность.

Однако можно сформулировать и более простое определение.

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

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