Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Основные математические понятия



1.1 Множества

Базовым понятием при работе с базами данных является понятие множества (например, [8]).

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

В этом определении следует остановиться на двух моментах.

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

С точки зрения теории множеств мы говорим, что некоторый объект а принадлежит множеству А (характеристики множества уже определены), если этот объект обладает указанными характеристиками и эти характеристики имеют соответствующие значения. Обозначается этот факт а Î А. При написании различных программ можно встретить эквивалентную запись: а in А. Если же некоторый объект b не обладает нужным свойством или это свойство не имеет соответствующего значения, то говорят, что b не принадлежит множеству А, что обозначается как b Ï А (другие формы записи: not b Î А, not b in А, b not in А).

Может случиться, что множество не содержит ни одного элемента. В этом случае говорят, множество пусто и обозначают такое множество знаком Æ. Иногда говорят в этом случае, что множество не существует (not exists), хотя интерпретировать это надо в том смысле, что множество не содержит ни одного элемента. Наоборот, множество существует, если в нем есть хотя бы один элемент.

Отметим также тот факт, что по определению множество не может содержать двух одинаковых элементов (мультимножества мы не рассматриваем).

1.2 Алгебра множеств

Вторым моментом, на котором следует остановиться – какие операции (действия) можно выполнять над множествами.

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

Рассмотрим в алгебре множеств те операции, которые часто используются в практике решения задач. Нас интересуют четыре бинарные операции: сравнение, объединение, пересечение и разность [].

Напомним еще раз. Любая операция над множествами А и В допустима, если эти множества имеют одинаковую природу, то есть обладают общими характеристиками (свойствами).

Сравнение. Говорят, что множество В является подмножеством множества А, если любой элемент множества В является элементом множества А. Обозначается это В Ì А. Иногда, чтобы подчеркнуть, что все элементы множества А могут быть элементами множества В, используют специальное обозначение В Í А. Мы этого делать не будем, хотя всегда будем допускать возможность совпадения всех элементов. Два множества А и В эквивалентны А = В, тогда и только тогда, когда выполнены оба условия В Ì А и А Ì В.

Объединение. Множество С является объединением множеств А и В (С= А È В), если любой элемент множества С является либо элементом множества А, либо элементом множества В, причем справедливо А ÌС и В Ì С.

Пересечение. Множество С является пересечением множеств А и В (С=А Ç В), если множество С содержит все элементы, которые являются одновременно элементами и множества А и множества В, Справедливо, что С Ì А и С Ì В.

Для объединения и пересечения справедливы свойства ассоциативности А È(В È С) =(А È В) È С и А Ç(В Ç С) =(А Ç В) Ç С и. коммутативности А È В = В È А и А Ç В = В Ç А

Разность. Множество С является разностью двух множеств А и В (С=А-В), если множество С содержит все элементы из множества А, которых нет в множестве В. Разность двух множеств не коммутативна: А-В≠В-А. Стоит обратить внимание, что если А Ì В, то А-В= Æ

Рассмотрим некоторые примеры. Пусть даны два множества, элементы которых указаны в фигурных скобках, причем порядок расположения элементов множества безразличен. A={a, b, c, e, f, h} и
B={d, e, a, x}. Тогда

А È В={a, b, c, e, f, h, d, x}

А Ç В= {a, e}

А-В={b, c, f, h}

В-А={d, x}

1.3 Отношения

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

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

Рассмотрим подробно это определение. Как представлены свойства объекта? Для каждого свойства выбирается некоторое множество значений, называемое доменом, элементы которого (и только они) используются для записи характеристики конкретного объекта. Другими словами, смысл домена в том, чтобы определить роль соответствующей характеристики при описании свойств объекта. Наиболее распространенные домены: числа, строки, булевские значения (истина и ложь), множества значений, заданные перечислением (например, названия дней недели или месяцев), допустимые оценки знаний студентов (пятибалльная, европейская – А, В, С, D, E, FX, F, стобальная и т.п.), названия дисциплин и т.д. Прямое произведение доменов представляет множество всех возможных комбинаций элементов, выбранных по одному из каждого домена. Например, если отношение содержит три свойства, то каждый из элементов отношения определяется тремя значениями, по одному из каждого домена. В любой момент времени в отношении представлена только часть (подмножество) всех возможных комбинаций свойств объекта, причем, как правило, незначительная часть.

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

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

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

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

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

Первичный ключ – характеристика объекта, назначение которой состоит в том, чтобы различать объекты, собранные в одном отношении.

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

Между разными объектами могут существовать связи. Например, фраза "староста группы" должна интерпретироваться следующим образом. Имеется два различных типа объектов: студенты и группы. Один из студентов, как правило, учащийся в группе, играет в ней особую роль – роль старосты группы. Эта роль и является связью между двумя типами объектов. Кстати, в предыдущем предложении высказана и другая связь между теми же типами объектов – студент учится в группе. Более подробно связи рассматриваются в разделе "проектирование баз данных". Здесь мы только подчеркиваем, что связи в реляционных базах данных реализуются через специальные свойства объектов – внешние ключи.

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

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

Здесь приходится еще раз подчеркнуть, что в реляционной модели отношениями реализуются как множества объектов, так и факты существования связей между объектами[1]. В связи с этим, еще раз следует отметить о роли как самих отношений во всей модели, так и о роли любого из атрибутов в каждом отношении. Одной, но достаточно важной составляющей, успешного решения задач в базах данных является четкое представление о той роли, которую атрибут играет в отношении и во всей модели в целом. Именно поэтому при проектировании модели существенное внимание должно быть уделено наименованию атрибутов, чтобы само название подсказывало роль, которую атрибут играет в модели. Не менее важно умение студента воспринимать размерность, которая скрыта в каждом домене. С чисто математической точки зрения домены состоят из одинаковых значений. Например, и возраст студента и номер группы могут быть представлены целыми числами. Однако у студента не должно даже возникнуть мысли складывать или сравнивать значения этих доменов, потому только, что это бессмысленно именно в силу различия размерности; два домена представляют различную природу данных.

1.4 Операции над отношениями.

Несколько раз мы подчеркивали, что отношения можно рассматривать как множество кортежей (строк). Следовательно, все ранее определенные операции для множеств, применимы для отношений при условии, что отношения имеют одинаковые характеристики, т.е. схемы отношений одинаковы[2].

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

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

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

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

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

R1 s<условие> (R),
где R – исходное отношение, <условие> – предикат, высказывание об одном или нескольких атрибутах отношения R, R1 – результирующее отношение.

Рассмотрим пример. Пусть отношение R содержит следующие характеристики о студенте: код, фамилия, номер студенческого билета, дата рождения, пол, выплачиваемая стипендия, т.е. схема отношения R имеет вид

R = R (Кст, Фио, Nстбилета, Дрожд, Пол, Стипендия)

Правомерны следующие условия:

· Пол = "женский"

· Дрожд = "01.10.1980"

· Пол = "мужской" Ú Стипендия > 1000 руб.

· Дрожд ≥ "01.01.1980" Ù Дрожд ≤ "31.12.1980" Ù Пол = "женский"

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

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

Для селекции справедливо

s<условие1> (s<условие2> (R)) = s<условие1> Ù <условие2> (R),
т.е. последовательное применение двух селекций эквивалентно применению одной селекции с условием равным конъюнкции двух условий.

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

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

R1 p<список атрибутов> (R),
где R – исходное отношение, <список атрибутов> –перечисление имен некоторых свойств (атрибутов) отношения R, записанных через запятую, R1 – результирующее отношение.

Правильными записями проекций будут:


pФам (R),

pФам, Пол (R),

pNстбилета (R),

pNстбилета, Пол, Стипендия (R),


Запись p<список атрибутов1> (p<список атрибутов2> (R)) допустима, если в <список атрибутов1> присутствуют только те атрибуты, которые есть в <список атрибутов2> (<список атрибутов1>Ì<список атрибутов2>). В этом случае

p<список атрибутов1> (p<список атрибутов2> (R)) = p<список атрибутов1> (R)

Именно поэтому в практике решения задач последовательное применение проекций не используется.

Принципиально, есть ли среди списка атрибутов ключевой атрибут отношения или нет. Если ключевой атрибут присутствует, то количество кортежей в результирующем отношении будет таким же, как и в исходном; в противном случае количество кортежей в R1, как правило, уменьшается по сравнению с R. Например, если записать

R1 pПол (R),
то в отношении R1 будет не более двух кортежей.

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

R1 (<список новых имен>) p<список атрибутов> (R),
где список новых имен содержит столько же имен, что и список атрибутов, а порядок новых имен соответствует порядку имен в списке атрибутов.

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

Декартово произведение (Í). Пусть имеются два отношения R1 и R2 со схемами R1(А1,…,Аn) и R2(В1,…,Вm) и соответственно мощностями N и M. Декартовым произведением этих отношений называется отношение R3(А1,…,Аn1,…,Вm), которое содержит все возможные комбинации кортежей из R1 и R2. Мощность отношения R3M*N. Первичным ключом R3 можно взять совокупность первичных ключей отношений R1 и R2.

Может случиться, что в R1 и R2 есть совпадающие по имени атрибуты: R1(А12,…,Аn) и R2(А12,…,Вm). Чтобы их различать в результате R3 в схему R3 включим эти имена с указанием имен отношений, отделив их точкой R3(R112,…,Аn,R212,…,Вm).

Пусть мы имеем два отношения: СТУДЕНТ(Кст, Фам, Стип, Nгр) и ГРУППА(Nгр, Спец, Кстг). Здесь Кст – код студентов, в качестве которого можно рассматривать номер студенческого билета, Фио – его фамилия, СТУДЕНТ.Nгр – номер группы, в которой студент учится, Спец – название специальности, которой обучаются все студенты группы, Кстг – код студента, являющегося старостой группы.

СТУ Кст Фио Nгр     ГРУП Nгр Спец Кстг
ДЕНТ   Петров       ПА   Физика  
    Иванов           Химия Nil
    Сидоров           Матем  
    Алексеев              

Тогда СТ_ГР1 СТУДЕНТ Í ГРУППА примет вид.

СТ_ГР1 Кст Фио СТУДЕНТ.Nгр ГРУППА.Nгр Спец Кстг
    Петров     Физика  
    Иванов     Физика  
    Сидоров     Физика  
    Алексеев     Физика  
    Петров     Химия Nil
    Иванов     Химия Nil
    Сидоров     Химия Nil
    Алексеев     Химия Nil
    Петров     Матем  
    Иванов     Матем  
    Сидоров     Матем  
    Алексеев     Матем  

q-соединение (><). Отношение R3(А1,…,Аn1,…,Вm)

R3(А1,…,Аn1,…,Вm) R1(А1,…,Аn) ><<условие> R2(В1,…,Вm)

называется q-соединением относительно R1(А1,…,Аn) и R2(В1,…,Вm), если из всех кортежей декартова произведения R1(А1,…,Аn) и R2(В1,…,Вm) остаются только те, которые удовлетворяют заданному условию. По получаемому результату q-соединение эквивалентно применению двух операций

R3(А1,…,Аn1,…,Вm) s<условие> (R1(А1,…,Аn) Í R2(В1,…,Вm)),
из чего делается вывод о схеме и мощности результата.

Существует ограничение на правило записи условия. Пусть А1,…,Аn1,…,Вm атрибуты отношений. Тогда правильными условиями будут:

· F = Аi op Bj, где iÎ[1,n], jÎ[1,m], op – одна из операций сравнения (<, £, =, ¹, ³, >). Естественно предположение, что домены Аi и Bj сравнимы.

· F = Аi op const, где const любой элемент из домена Аi

· Если F1 и F2 – условия, то F1 Ù F2, F1 Ú F2 также условия.

В нашем примере

СТ_ГР2 СТУДЕНТ >< СТУДЕНТ.Nгр £ ГРУППА.Nгр ГРУППА
получится из декартова произведения вычеркиванием соответствующих кортежей, для которых не выполнено условие.

СТ_ГР2 Кст Фио СТУДЕНТ.Nгр ГРУППА.Nгр Спец Кстг
105 Петров 3 2 Физика 216
    Иванов     Физика  
    Сидоров     Физика  
418 Алексеев 3 2 Физика 216
105 Петров 3 1 Химия Nil
318 Иванов 2 1 Химия Nil
216 Сидоров 2 1 Химия Nil
418 Алексеев 3 1 Химия Nil
    Петров     Матем  
    Иванов     Матем  
    Сидоров     Матем  
    Алексеев     Матем  

и примет вид.

СТ_ГР2 Кст Фио СТУДЕНТ.Nгр ГРУППА.Nгр Спец Кстг
    Иванов     Физика  
    Сидоров     Физика  
    Петров     Матем  
    Иванов     Матем  
    Сидоров     Матем  
    Алексеев     Матем  

Equi-соединение отличается от q-соединения только правилом записи условия (обозначение тоже, что и для q-соединения). При записи условия Equi-соединения можно пользоваться только конъюнкцией и только одной операцией сравнения – сравнением на равенство.

В нашем примере

СТ_ГР3 СТУДЕНТ >< СТУДЕНТ.Nгр = ГРУППА.Nгр ГРУППА
примет вид.

СТ_ГР3 Кст Фио СТУДЕНТ.Nгр ГРУППА.Nгр Спец Кстар
    Иванов     Физика  
    Сидоров     Физика  
    Петров     Матем  
    Алексеев     Матем  

Естественное соединение (*). Так как в Equi-соединении при записи условия допускается только конъюнкция сравнений атрибутов на равенство, то в результирующем отношении мы получим одну (или несколько) пар атрибутов, значения которых в каждом из кортежей совпадают. Естественно, один атрибут из пары совпадающих атрибутов не несет дополнительной смысловой нагрузки и может быть удален из результата. Более того, предполагается, что названия сравниваемых атрибутов совпадают, что позволяет определить естественное соединение следующим образом. Пусть даны два отношения R1(C1,…,Ck,A1,…,An) и R2(C1,…,Ck,B1,…,Bm). Тогда естественное соединение

R3(C1,…,Ck,A1,…,An,B1,…,Bm)

R1(C1,…,Ck,A1,…,An) * R2(C1,…,Ck,B1,…,Bm)

эквивалентно следующей записи

R3 p C1,…,Ck,A1,…,An,B1,…,Bm (s b (R1 Í R2)),

где b – условие по парного совпадения значений атрибутов C1,…,Ck в отношениях R1 и R2 (b= R1.C1=R2.C1 Ù ,…, Ù R1.Ck=R2.Ck).

В нашем примере

СТ_ГР СТУДЕНТ * ГРУППА
примет вид

СТ_ГР Кст Фио Nгр Спец Кстг
    Иванов   Физика  
    Сидоров   Физика  
    Петров   Матем  
    Алексеев   Матем  

Если бы схема отношения ГРУППА была задана в виде ГРУППА(Nгр, Спец, Кст), то естественное произведение было бы выполнено по совпадению значений двух атрибутов "Кст" и "Nгр" и результат принял бы вид

СТ_ГР4 Кст Фио Nгр Спец
    Сидоров   Физика
    Петров   Матем

что соответствует задаче: получить номера групп с указанием специальности и кода и фамилии старосты.

1.5 Агрегативные функции.

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

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

Общий вид агрегативной функции

R1(<список атрибутов>,<список имен>)

<список атрибутов> F <список функций> (R)

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

Агрегативные функции работают по следующему принципу. Рассмотрим отношение R2 p<список атрибутов> (R). Так как одинаковых кортежей в отношении быть не может, то мы получим новое отношение, мощность которого равна количеству различных комбинаций значений по списку атрибутов отношения R. Именно такова будет мощность отношения R1. Можно сказать, что два отношения p<список атрибутов> (R) и p<список атрибутов> (R1) совпадают. Далее допустим, что все кортежи отношения R упорядочены по комбинации значений атрибутов из списка, то есть сначала расположены (сгруппированы, агрегированы – отсюда и название) все кортежи, имеющие одинаковые значения атрибутов из списка, потом все кортежи, имеющие другую комбинацию значений атрибутов из списка, потом третью и т.д. Тогда для каждой комбинации одинаковых значений атрибутов из списка могут быть вычислены значения следующих функций

· count(A) – количество кортежей, имеющих значение атрибута А из его домена[4];

· max(A), min(A) – выбирается максимальное (минимальное) значение атрибута А;

· sum(A) – вычисляется сумма значений атрибута А;

· avg(A) – вычисляется среднее значение атрибута А (sum(A) / count(A)).

Естественно, что sum(A) и avg(A) определены только для атрибутов, домен которых содержит числовые значения.

В качестве примера рассмотрим несколько измененное отношение СТУДЕНТ

СТУДЕНТ Кст Фио Nгр Стипендия
    Петров   600.00
    Иванов   800.00
    Сидоров   1000.00
    Захаров   600.00
    Баева   800.00
    Кудрина   400.00
    Алексеев   300.00

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

R1(Nгр, Численность, Макс_стип, Средняя_стип)

Nгр F count, max(стипендия),avg(стипендия) (R)

Результат примет вид

R1 Nгр Численность Макс_стип Средняя_стип
      1000.00 750.00
      600.00 500.00

1.6 Дополнительные операции.

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

Внешнее объединение (= È =). Может случиться, что схемы двух отношений совпадают частично, т.е. часть атрибутов совпадает, а часть различается. Например, имеем СТУДЕНТ(Код, Фио, Стипендия, Nгр) и ПЕДАГОГ(Код, Фио, Зарплата, Nкаф). В данном примере мы специально выбрали одинаковое написание первичного ключа "Код". Если можно предположить совпадение доменов атрибутов "Стипендия" и "Зарплата", то рассчитывать на совпадение доменов для "Nгр" и "Nкаф" не приходится, а, значит, объединить эти два отношения нельзя. При желании можно выполнить внешнее объединение, которое предполагает выравнивание схем отношений добавлением в каждое из них недостающих атрибутов из другого и заполнением значений этих атрибутов в кортежах значением Nil, после чего объединение выполняется обычным образом. Следует отметить, что при таком объединении встает много побочных проблем. Что считать первичным ключом, не нарушается ли правило функциональной зависимости и т.п. Именно поэтому, внешнее объединение если и применяется, то крайне осторожно.

Внешнее соединение (=><=). Если внешнее объединение анализирует схемы отношений, то внешнее соединение анализирует, насколько жестко следует подходить к оставлению кортежей в результате. Если мы обратимся к примеру, рассмотренному в конце раздела 1.4

СТУДЕНТ Кст Фио Nгр     ГРУППА Nгр Спец Кст
    Петров           Физика  
    Иванов           Химия Nil
    Сидоров           Матем  
    Алексеев              

то обнаружим, что в результате естественного соединения[5] пропала информация о первой группе, так как староста в ней пока не назначен. Воспользовавшись внешним соединением (в данном случае правым (><=)), мы оставим в результате информацию о первой группе, несмотря на то, что этому кортежу в отношении ГРУППА не соответствует ни один кортеж из отношения СТУДЕНТ. Значения атрибутов отношения СТУДЕНТ для этого кортежа заполняются значением Nil.

СТ_ГР5 Кст Фио Nгр Спец
    Сидоров   Физика
  Nil Nil   Химия
    Петров   Матем

Из объяснения примера понятно, что для левого внешнего соединения (=><) за основу берутся все кортежи левого отношения, а внешнее соединение предполагает, что не происходит потери кортежей, как левого, так и правого отношений.





Дата публикования: 2015-10-09; Прочитано: 510 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.03 с)...