Тема 4 — Базы и хранилища данных

Тема 4. Базы и хранилища данных

1. Основные этапы проектирования базы данных (БД), логическая и физическая модели данных, трехуровневая архитектура ANSI/SPARC.

2. Модели баз данных (иерархическая, сетевая реляционная и др.).

3. Формализованное описание отношений, ER-диаграмма.

Формализованное описание отношений

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

Схема отношения

Понятию схема отношения соответствует описание структуры двумерной таблицы (имена столбцов). Схемой отношения R называется перечень имен атрибутов (конечное множество имен атрибутов) данного отношения с указанием домена, к которому они относятся: SR = (A1, A2, A n), Ai Di n – арность схемы отношения. Исходные множества D1, D2, …, Dn являются доменами.

Количество атрибутов в отношении называется степенью, или рангом, отношения.

Каждому имени атрибута Ai соответствует допустимое множество значений, которые может принимать атрибут Ai. Это множество значений Di называется доменом атрибута Ai, i=1, n. По определению, домены являются непустыми конечными или счетными множествами.

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

Пусть D = D1∪ D2∪…∪Dn.

Отношением r со схемой R называется конечное множество отображений {t1, t2,…, tp} из множества R: {A1, A2, …, An} в множество D:{ D1∪ D2∪…∪Dn }, таких, что tk(Ai) ∈ Di, k=1, p; i=1, n.

Отображение tk называется k-ым кортежем, n – размерность кортежа.

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

Понятию отношения r соответствует множество значений, стоящих во всех строках рассматриваемой таблицы.

Отметим следующие свойства отношения:

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

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

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

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

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

N-арным отношением R называют подмножество декартова произведения D1× D2× … ×Dn множеств D1, D2, …, Dn (n > 1), необязательно различных.

R D1 × D2 × … × Dn

где D1 × D2 × … ×Dn— полное декартово произведение.

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

Отношение — это подмножество декартова произведения, а в декартовом произведении все элементы различны. Т.е. отношение не может иметь двух одинаковых кортежей.

Ключом (первичным ключом) отношения r со схемой R называется подмножество K={Ai1, Ai2, …, Aim}{A1, A2, …, An}, где {i1, i2, …, im}{1, 2, …, n}, такое, что любые два различных кортежа t1, t2 r (t1≠ t2) не совпадают по значениям множества K={Ai1, Ai2, …, Aim}.

Таким образом, достаточно знать значение кортежа на множестве K, чтобы однозначно его идентифицировать.

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

Текущие значения соответствующих отношений называются реляционной базой данных.

ER-диаграмма

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

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

В настоящий момент именно модель Чена «сущность—связь», или «Entity Relationship», предложенная в 1976 году стала фактическим стандартом при инфологическом моделировании бд. Общепринятым стало сокращенное название ER-модель, большинство современных CASE-средств содержат инструментальные средства для описания данных в формализме этой модели.

Разработаны методы автоматического преобразования проекта БД из ER-модели в реляционную, при этом преобразование выполняется в даталогическую модель, соответствующую конкретной СУБД.

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

Основные понятия ER-диаграмм

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

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

Каждая сущность должна иметь наименование, выраженное существительным в единственном числе, не носить «технических» наименований и быть достаточно важными для того, чтобы их моделировать. Пример сущностей — классы объектов как «Поставщик», «Сотрудник», «Накладная».

Экземпляр сущности — это конкретный представитель данной сущности.

Например, представителем сущности «Сотрудник» может быть «Сотрудник Иванов».

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

Объект, которому соответствует понятие сущности, имеет свой набор атрибутов характеристик, определяющих свойства данного представителя класса. При этом набор атрибутов должен быть таким, чтобы можно было различать конкретные экземпляры сущности. Атрибут сущности — это именованная характеристика, являющаяся некоторым свойством сущности. Примером — сущность Заказчик (но не Заказчики!) с атрибутами Номер заказчика, Фамилия заказчика и Адрес заказчика. Наименование атрибута должно быть выражено существительным в единственном числе (возможно, с характеризующими прилагательными).

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

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

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

Кроме общепринятых правил именования атрибутов часто требуется следовать правилам, разработанным внутри организации — корпоративным стандартам.

Иногда определение атрибута легче дать через описание области значений. Например, Оценка студента — это число, принимающее значения 2,3,4 или 5.

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

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

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

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

Набор связей (relationship set) — это отношение между n (причем n не меньше 2) сущностями, каждая из которых относится к некоторому набору сущностей. То число сущностей, которое может быть ассоциировано через набор связей с другой сущностью, называют степенью связи (кардинальностью связи). Рассмотрение степеней особенно полезно для бинарных связей.

Примеры: каждый сотрудник работает в каком-либо отделе, между сущностями СОТРУДНИК и ОТДЕЛ существует связь «работает в» или ОТДЕЛ-РАБОТНИК; Один из работников отдела является его руководителем, то между сущностями СОТРУДНИК и ОТДЕЛ имеется связь «руководит» или ОТДЕЛ-РУКОВОДИТЕЛЬ;

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

Каждая связь имеет два конца и одно или два наименования. Наименование обычно выражается в неопределенной глагольной форме: «иметь», «принадлежать» и т.п. Каждое из наименований относится к своему концу связи. Иногда наименования не пишутся ввиду их очевидности.

Каждая связь может иметь один из следующих типов связи.

Связь типа один-к-одному означает, что один экземпляр первой сущности (левой) связан с одним экземпляром второй сущности (правой). Связь один-к-одному чаще всего свидетельствует о том, что на самом деле мы имеем всего одну сущность, неправильно разделенную на две.

Связь типа один-ко-многим означает, что один экземпляр первой сущности (левой) связан с несколькими экземплярами второй сущности (правой). Это наиболее часто используемый тип связи. Левая сущность (со стороны «один») называется родительской, правая (со стороны «много») — дочерней. Характерный пример такой связи приведен выше (сотрудник – ребенок).

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

Каждая связь может иметь одну из двух модальностей связи:

Модальность «может» означает, что экземпляр одной сущности может быть связан с одним или несколькими экземплярами другой сущности, а может быть и не связан ни с одним экземпляром.

Модальность «должен» означает, что экземпляр одной сущности обязан быть связан не менее чем с одним экземпляром другой сущности.

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

Могут существовать следующие степени бинарных связей:

один к одному (обозначается 1 : 1). Это означает, что в такой связи сущности с одной ролью всегда соответствует не более одной сущности с другой ролью. В каждом отделе может быть только один начальник, а сотрудник может руководить только в одном отделе. Сущность «СОТРУДНИК» имеет обязательный класс принадлежности (этот факт обозначается также указанием интервала числа возможных вхождений сущности в связь, в данном случае это 1,1), а сущность «ОТДЕЛ» имеет необязательный класс принадлежности (0,1). Теперь данную связь мы можем описать как 0,1:1,1.

В примере кардинальность бинарных связей степени 1 обозначена следующим образом:

один ко многим (1 : n). В данном случае сущности с одной ролью может соответствовать любое число сущностей с другой ролью. Такова связь ОТДЕЛ-СОТРУДНИК. В каждом отделе может работать произвольное число сотрудников, но сотрудник может работать только в одном отделе. Между двумя сущностями может быть определено несколько наборов связей. Необходимо учитывать класс принадлежности сущностей. Каждый сотрудник должен работать в каком-либо отделе, но не каждый отдел (например, вновь сформированный) должен включать хотя бы одного сотрудника.

Поэтому сущность «ОТДЕЛ» имеет обязательный, а сущность «СОТРУДНИК» необязательный классы принадлежности.

Кардинальность бинарных связей степени n обозначается:

много к одному (n : 1). Эта связь аналогична отображению 1 : n.

Пример: предприятие заключает контракты заказчиками. Этот факт отображается в модели «сущность-связь» с помощью связи КОНТРАКТ-ЗАКАЗЧИК.

Так как с одним заказчиком может быть заключено более одного контракта, то связь КОНТРАКТ-ЗАКАЗЧИК между этими сущностями будет иметь степень n : 1.

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

Поскольку каждый сотрудник может входить в несколько (в том числе и ни в одну) рабочих групп, а каждая группа должна включать не менее одного сотрудника, то связь между сущностями СОТРУДНИК и РАБОЧАЯ_ГРУППА имеет степень n : n.

Другое определение связи: Идентифицирующая связь и Неидентифицирующая связь.

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

Например, связь сущностей «Клиент» и «Заказ». Экземпляр зависимой сущности Заказ определяется только через отношение к родительской сущности, т. е. информация о заказе не может быть внесена и не имеет смысла без информации о клиенте, который его размещает.

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

Нотация Чена.

Элемент диаграммы

Обозначает

независимая сущность

зависимая сущность

родительская сущность в иерархической связи

Связь

идентифицирующая связь

Атрибут

первичный ключ

внешний ключ

многозначный атрибут

получаемый (наследуемый) атрибут в иерархических связях

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

Пример:

4. Манипулирование данными в реляционной модели, операции реляционной алгебры.

Понятию схема отношения соответствует описание структуры двумерной таблицы (имена столбцов).

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

Для манипулирования данными в реляционной модели используются два формальных аппарата:

реляционная алгебра, основанная на теории множеств;

реляционное исчисление, базирующееся на исчислении предикатов первого порядка.

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

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

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

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

Операции реляционной алгебры

Основным множеством в реляционной алгебре является множество отношений.

Реляционная алгебра: выборка (selection), проекция (projection), декартово, произведение (сartesian product), объединение (union), разность (set difference)

Дополнительные операции: соединения (join), пересечения (intersection), деления (division).

Операции выборки и проекции являются унарными, поскольку они работают с одним отношением.

Другие операции работают с парами отношений, и поэтому их называют бинарными операциями.

В реляционном исчислении не существует никакого описания оценки запроса, поскольку в запросе реляционного исчисления указывается, что следует извлечь, а не как. Название «Реляционное исчисление» произошло от части символьной логики, которая называется исчислением предикатов.

В контексте бд оно существует в двух формах: в форме предложенного Коддом реляционного исчисления кортежей и в форме предложенного Лакруа и Пиро реляционного исчисления доменов.

В реляционном исчислении кортежей задача состоит в нахождении кортежей, для которых предикат является истинным. Это исчисление основано на переменных кортежа.

Переменными кортежа являются такие переменные, областью определения которых является указанное отношение — т.е. переменные, для которых допустимыми значениями могут быть только кортежи данного отношения. Использует 2 типа кванторов: существования () – истинность хотя бы для одного экземпляра и общности () – истинность для всех. Если в кортеже нет кванторов, то его переменные называются свободными, если есть – связанными.

В реляционном исчислении доменов используются переменные, значения которых берутся из доменов, а не из кортежей отношений. Если P(dl,d2,… ,dn) обозначает предикат с переменными d1,d2,… ,dn, то множество всех переменных домена d1,d2,… ,dn, для которых предикат или формула P(d1,d2,… ,dn) истинны, обозначается следующим выражением: {d1,d2,… ,dn |P(d1,d2,… ,dn)}

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

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

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

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

В состав теоретико-множественных операций входят операции:

объединения отношений;

пересечения отношений;

взятия разности отношений;

взятия декартова произведения отношений.

Специальные реляционные операции включают:

выборку (ограничение отношения);

проекцию отношения;

соединение отношений;

деление отношений.

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

Объединением двух отношений называется отношение, содержащее множество кортежей, принадлежащих либо 1, либо 2 исходным отношениям, либо обоим отношениям одновременно. Для операции объединения требуется одинаковая арность отношений. Пусть заданы два отношения R1 = { r1 } , R2 = { r2}, где r1 и r2 — соответственно кортежи отношений R1 и R2, то объединение R1 R2 = { r | r R1 r R2}.

Здесь r — кортеж нового отношения, — операция логического сложения «ИЛИ».

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

R4 = R1 R2 ={ r | r R1 r R2 } здесь — операция логического умножения (логическое «И»).

Разностью отношений R1 и R2 называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2: R5 =R1 \R2 ={r | r R1 r R2}

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

Операция разности является принципиально несимметричной операцией — результат операции будет различным для разного порядка аргументов.

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

Сцеплением, или конкатенацией кортежей c = 1, c2, …, cn> и q = 1, q2, …, qm> называется кортеж, полученный добавлением значений второго в конец первого. Сцепление кортежей c и q обозначается как (c , q).

(c, q) = 1, c2, … , cn, q1, q2, …, qm> Здесь n — число элементов в первом кортеже с, m — число элементов во втором кортеже q. Операция декартова произведения меняет степень результирующего отношения.

Расширенным декартовым произведением отношения R1 степени n со схемой

SR1 = (A1, A2, … , An), и отношения R2 степени m со схемой SR2 = (B1, B2, …, Bm),

называется отношение R3 степени n+m со схемой SR3 = (A1, A2, … , An, B1, B2, …, Bm),

содержащее кортежи, полученные сцеплением каждого кортежа r отношения R1 с каждым кортежем q отношения R2.

То есть если R1 = { r }, R2 = { q } то R1 R2 = {(r, q) | r R1 q R2}

Декартово произведение RS двух отношений (двух таблиц) определяет новое отношение — результат конкатенации (т.е. сцепления) каждого кортежа (каждой записи) из отношения R с каждым кортежем (каждой записью) из отношения S.

RS={(a, 1, 1, h), (a, 2, 1, h), (b, 1, 1, h), … }

Если одно отношение имеет N записей и K полей, а другое M записей и L полей, то отношение с их декартовым произведением будет содержать NxM записей и K+L полей.

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

Специальные операции реляционной алгебры

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

Результатом операции выбора, или фильтрации, заданной на отношении R в виде булево выражения, определенного на атрибутах отношения R, называется отношение R[α], включающее те кортежи из исходного отношения, для которых истинно условие выбора или фильтрации: R[α (r)] = {r | r R α (r) = «Истина»}

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

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

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

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

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

Существуют различные типы операций соединения (в разных книгах могут быть разные классификации):

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

соединение по эквивалентности;

естественное соединение;

внешнее соединение;

полусоединение.

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

Если предикат F содержит только оператор равенства (=), то соединение называется соединением по эквивалентности.

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

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

Какая из таблиц будет ведущей, определяет вид соединения.

LEFT — левое внешнее соединение, ведущей является таблица, расположенная слева от вида соединения.

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

RIGHT — правое внешнее соединение, ведущая таблица расположена справа от вида соединения.

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

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

Операция полусоединения определяет отношение, содержащее те кортежи отношения R, которые входят в соединение отношений R и S (выбор тех R.a1, R.a2, для которых R.a2=S.b1)

Операция деления выполняется над двумя отношениями А и В, где А — отношение-делимое, а B — отношение-делитель. При этом атрибуты B должны являться подмножеством атрибутов A. Результатом выполнения операции деления является отношение С, которое включает в себя атрибуты отношения А, отличные от атрибутов отношения В, и только те кортежи, декартовы произведения которых с отношением В дают отношение А.

5. Оптимизация схем отношений, нормальные формы, построение рациональной схемы отношений путем нормализации.

Понятию схема отношения соответствует описание структуры двумерной таблицы (имена столбцов).



Страницы: 1 | 2 | Весь текст