Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
структуры и алгоритмы / Лекции_лабор_структ.doc
Скачиваний:
56
Добавлен:
04.06.2015
Размер:
2.98 Mб
Скачать

8.4 Реляционная модель базы данных

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

Пусть – некоторые множества, необязательно различные. Выражениеназываетсядекартовым произведением названных множеств. Оно само является множеством и состоит из всех упорядоченных последовательностей или кортежей, вида , где,i= 1, 2, …, n.

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

Подмножество декартова произведенияD () называетсяn–местным отношением. Число n называется степенью или арностью отношения. При n=1 отношение является унарным, при n=2 – бинарным, при n=3 – тернарным и т.д. Число всех различных кортежей , образующих отношение , называется кардинальным числом этого отношения.

Отношение удобно представлять в виде таблицы. Строками такой таблицы являются кортежи, образующие отношение, а каждый из столбцов соответствует определенному домену. Для n–арного отношения i–й столбец соответствует домену , гдеi=1,2,…,n. Число строк в таблице, представляющей отношение, равно кардинальному числу этого отношения. Поскольку по определению отношение является множеством, порядок следования кортежей в строках таблицы безразличен.

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

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

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

- все записи в таблице должны иметь одну и ту же структуру;

- каждая запись в таблице должна быть уникальной;

- значения элементов одного и того же столбца таблицы должны принадлежать одному и тому же домену;

- имена столбцов должны быть различны.

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

При рассмотрении реляционной модели БД в табличной форме вместо термина "столбец" обычно используют термин "атрибут". С использованием понятия атрибута отношение часто выражают в виде символьной строки R(A1,A2,…,AM), где R – название отношения; - A1,A2,…,AM - упорядоченная последовательность имен, или названий, атрибутов.

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

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

В реляционной модели данных каждое отношение должно быть нормализовано. Говорят, что отношение нормализовано, если каждое значение любого атрибута в каждом кортеже отношения является неделимым, или атомарным элементом. Таким элементом может быть данное базового типа (целое или вещественное число, значение логического типа и т.д.) или символьная строка. Определенное таким образом понятие нормализованного отношения соответствует первой нормальной форме и обозначается 1NF. В теории реляционных моделей СУБД изучаются также вторая, третья, четвертая нормальные формы отношений, которые отличаются от формы 1NF различным характером функциональной зависимости атрибутов друг от друга и от первичного ключа.

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

Для манипулирования данными в реляционных СУБД создан целый ряд языков, которые называются также подъязыками данных. В зависимости от характера математического аппарата, лежащего в основе языков, все ЯМД в реляционных СУБД можно разделить на два главных класса: языки реляционной алгебры; языки реляционного исчисления.

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

При выполнении операций объединения, пересечения и разности участвующие в них отношения должны удовлетворять свойству совместимости по объединению. Два отношения совместимы по объединению (или просто совместимы), если они имеют одну и ту же степень (т.е. одно и то же число атрибутов) и совпадающие атрибуты, причем значения атрибутов в каждой паре одинаковых атрибутов из обоих отношений должны быть элементами одного и того же домена. Операции объединения, пересечения, разности и декартового произведения в реляционных СУБД обозначают принятыми в математике символами È, Ç, /, ´.

Объединением двух совместимых отношений R1, R2 называется отношение R, состоящее из всех кортежей, принадлежащих хотя бы одному из отношений R1, R2. Пусть, например,

,

где

Тогда

Пересечением двух совместимых отношений R1, R2 называется отношение R, которое состоит из всех кортежей, являющихся общими для отношений R1, R2. Для отношений R1(A,B) и R2(A,B) из предыдущего примера результат пересечения будет

Разностью двух совместимых отношений R1, R2 называется отношение R, состоящее только из тех кортежей отношения R1, которые отсутствуют в отношении R2. Для примера отношений R1(A,B) и R2(A,B) их разность

Декартовым произведением двух отношений R1, R2 (необязательно совместимых) называется отношение R, состоящее из всех таких картежей, каждый из которых есть конкатенация двух кортежей, по одному картежу из отношений R1, R2, причем на первом месте должен быть кортеж из R1. Для отношений R1(A,B), R2(A,B) их декартово произведение

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

Обратимся теперь к операциям проекции, соединения и выбора. Операция проекции является унарной и позволяет из заданного отношения R получить другое отношение R', в котором множество атрибутов является подмножеством атрибутов отношения R. Из одного и того же исходного отношения с помощью операции проекции можно получить несколько разных отношений. Для выполнения операции проекции необходимо задать исходное отношение, а также подмножество тех его атрибутов, которые должны составлять результирующее отношение. Таким образом, проекция исходного отношения осуществляется на заданные его атрибуты. Сокращенно связь между исходным отношением и отношением, являющимся результатом проекции, можно записать в виде R'=П R(A) ,где П – обозначение операции проекции; A – подмножество атрибутов исходного отношения R, на которое осуществляется проекция.

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

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

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

Вторая большая группа ЯМД в реляционных СУБД использует реляционное исчисление, основанное на классическом исчислении предикатов и представляющее собой набор правил для записи выражений, которые обеспечивают формирование новых отношений в терминах заданных существующих отношений. При записи таких выражений применяются операторы сравнения =, ¹, <, £, >, ³, логические операторы Ù, Ú,Ø и кванторы $,".

Различие между двумя описанными классами языков реляционных моделей СУБД проявляется главным образом в том, как пользователь может выражать свои запросы к СУБД. Применяя язык реляционной алгебры, пользователь должен записать в соответствующем порядке всю последовательность операций, которые необходимо выполнить для получения желаемого результата. Это, конечно, требует от пользователя больших усилий. В то же время на языке реляционного исчисления пользователь записывает свой запрос лишь в виде декларации желаемого результата, а СУБД автоматически "развернет" эту декларацию в правильную последовательность необходимых действий. Таким образом, различие между языками реляционной алгебры и реляционного исчисления такое же, как и между двумя известными в математике способами определения множества. Один из этих двух способов обеспечивает построение желаемого множества путем выполнения ряда теоретико-множественных операций над некоторыми заданными исходными множествами, а другой способ – путем указания определяющего свойства желаемого множества.

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

Соседние файлы в папке структуры и алгоритмы