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

Которая является приложением к задачам обработки данных таких разделов математики как теории множеств и логика первого порядка .

На реляционной модели данных строятся реляционные базы данных .

Реляционная модель данных включает следующие компоненты:

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

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

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

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

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

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

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

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

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

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

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

Домен представляет собой множество всех возможных значений определенного атрибута отношения.

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

Кортеж, соответствующий данной схеме отношения, представляет собой множество пар (имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута. Аргумент “значение” является допустимым значением домена данного атрибута.

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

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

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

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

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

Элементы реляционной модели данных и форма их представления

Элемент реляционной модели

Форма представления

Отношение

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

Строка заголовков столбцов таблицы (заголовок таблицы)

Строка таблицы

Сущность

Описание свойств объекта

Заголовок столбца таблицы

Множество допустимых значений атрибута

Значение атрибута

Значение поля в записи

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

Один или несколько атрибутов

Тип данных

Тип значений элементов таблицы

Введение……………………………………………………… 2

Реляционная модель данных………………………………………4

Цели и задачи проектирования………………………………….8

Структура процесса проектирования………………………….9

Технология ведения информационной системы………………..11

Заключение……………………………………………………13

Список литературы…………………………………………...14

ВВЕДЕНИЕ

Человечество стремительно вступает в принципиально новую для него информационную эпоху. Существенным образом меняются все слагаемые образа жизни людей. В современном обществе уровень информатизации характеризует уровень развития государства. Начавшийся ХХI век специалисты называют веком компьютерных технологий. Их революционное воздействие касается государственных структур и институтов гражданского общества, экономической и социальной сфер, науки и образования, культуры и образа жизни людей. Многие развитые и развивающиеся страны в полной мере осознали те колоссальные преимущества, которые несет с собой развитие и распространение информационно-коммуникационных технологий. Не у кого не вызывает сомнения тот факт, что движение к информационному обществу - это путь в будущее человеческой цивилизации.

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

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

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

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

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

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

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

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

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

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

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

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

Узко-техническое понимание роли и возможностей ИКТ, низкая культура работы с ИКТ.

Проблемы, решаемые в рамках настоящей федеральной целевой программы, базируются на приоритетах и целях стратегии социально-экономического развития России на период до 2010 года и отвечают критериям формирования перечня федеральных целевых программ, начиная с 2002 года, одобренным Правительством Российской Федерации на заседании 21 сентября 2000 года, протокол № 31.

Процессы информатизации уже активно идут на всех уровнях. Многие мероприятия, направленные на развитие информационных технологий, реализуются или планируются к реализации в рамках других федеральных, региональных и ведомственных программ (например, ФЦП "Развитие электронной торговли в России на 2002 – 2006 годы", ФЦП "Развитие единой информационно-образовательной среды Российской Федерации в 2002-2006 годы", ФЦП "Создание и развитие информационно-теллекоммуникационной системы специального

назначения в интересах органов государственной власти на 2001-2007 годы" и т.д.). В этом аспекте ФЦП "Электронная Россия на 2002-2010 годы" (далее – Программа) призвана не только дополнить другие программы в части формирования адекватной институционально-правовой среды для ИКТ-индустрии, развития инфраструктуры публичных сетей доступа и обеспечения эффективного взаимодействия государства и общества на основе широкого внедрения ИКТ, но и будет выполнять ряд более общих, координирующих функций по отношению к другим программам. В Программе будут, в частности определяться общие концептуальные направления развития ИКТ (основные принципы, общие стандарты и типовые решения по реализации различных проектов и т.д.) как одного из основных направлений социально-экономического развития страны. Реализация общих концептуальных направлений развития ИКТ будет осуществляться преимущественно в различных федеральные, ведомственные и региональных программах.

ФЦП не только предлагает решения очевидных проблем, она ставит целый ряд новых. Некоторые из этих проблем не могут быть решены в рамках "Электронной России 2002-2010". Для того, например, чтобы при помощи информационных технологий приблизить российскую систему образования к стандартам развитых стран Запада, разрабатывается программа "Развитие единой образовательной информационной среды на 2002-2006 гг.". И требуется детальное обсуждение этих проблем. Выражаем надежду, что проект "Электронная Россия" станет удобной площадкой для начала такого обсуждения, в котором смогут принять участие не только специалисты, представляющие государственный аппарат и российский ИТ-рынок, но и все, кто осознает степень важности поставленных программой вопросов.

РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ

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

Концепции реляционной модели данных связаны с именем известного специалиста в области систем баз данных Е. Кодда. Именно поэтому реляционную модель данных часто называют моделью Кодда.

ОРГАНИЗАЦИЯ ДАННЫХ

Слово «реляционная» происходит от английского relation - отношение. Для пояснения математического понятия «отношение» вспомним два определения.

Декартово произведение. Пусть D1, D2,…D n - произвольные конечные множества и не обязательно различные. Декартовым произведением этих множеств D1 Х D2 Х … Х D n -называется множество n-к вида: , где d1 принадлежит D1, d2 - D2 , а d n -D n .

Рассмотрим простейший пример. Пусть первое множество состоит из двух элементов D1= {а1, а2}, второе-из трех: D2 ={b1, b2, b3}, Тогда их декартово произведение есть: D1 Х D2 = {а1 b1 ,а1 b2, а1b3, а2 b1, а2 b2, а2b3}.

Отношение. Отношением R, определенным на множествах D1, D2,…D n , называется подмножество декартова произведения D1 Х D2 Х … Х D n . При этом множества D1, D2,…D n называются доменами отношения, а элементы декартова произведения - кортежами отношения. Число n определяет степень (арность) отношения, а количество кортежей - его мощность.

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

Атрибуты разных отношений также могут быть определены на одном и том же домене.

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

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

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

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

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

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

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

ОПЕРАЦИИ НАД ДАННЫМИ

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

Операция ВКЛЮЧИТЬ требует задания имени отношения и предварительного формирования значений атрибутов нового кортежа. Обязательно должен быть задан ключ кортежа. Включение не будет выполнено, если ключ имеет неуникальное значение.

Операция УДАЛИТЬ также требует наименования отношения, а также идентификации кортежа и группы кортежей, подлежащих удалению.

Операция ОБНОВИТЬ выполняется для названного отношения и может корректировать как один, так и несколько кортежей отношения.

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

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

Операция ОБЪЕДИНЕНИЕ (С1 = А U В) предполагает, что на входе задано два односхемных отношения А и В. Результат объединения есть построенное по той же схеме отношение С, содержащее все кортежи А и все кортежи отношения В. Операция ПЕРЕСЕЧЕНИЕ (С2=А U В) предполагает на входе два односхемных отношения А и В. На выходе создается отношение по той же схеме, содержащее только те кортежи отношения А, которые есть в отношении В.

Операция ВЫЧИТАНИЕ (С3=А-В). Все три отношения строятся по одной схеме. В результирующее отношение С3 включаются только те кортежи из А, которых нет в отношении В.

Операция ДЕКАРТОВО ПРОИЗВЕДЕНИЕ (С4=А X В). Ее важное отличие от предшествующих состоит в том, что отношения А и В могут быть построены по разным схемам, а схема отношения С4 включает все атрибуты отношении А и В.

Операция ВЫБОРКА (горизонтальное подмножество). На входе операции используется одно отношение. Результат выборки есть новое отношение, построенное по той же схеме, содержащее подмножество кортежей исходного отношения, удовлетворяющих условию выборки.

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

Операция СОЕДИНЕНИЕ. На входе операции используется два отношения; обозначим их А и В. В каждом из отношений выделен атрибут, по которому будет осуществляться соединение; предположим, это атрибуты А1 и Б2). Оба атрибута должны быть определены на одном и том же домене. Схема результирующего отношения включает все атрибуты А и все атрибуты отношения В. Допускается, чтобы в схеме результирующего отношения вместо двух атрибутов, по которым выполняется соединение, был представлен только один.

Операция СОЕДИНЕНИЕ похожа на декартово произведение. Отличие состоит в том, что декартово произведение предполагает сцепление, каждого кортежа из А с каждым кортежем из В, а в операции соединения кортеж из отношения А сцепляется только с теми кортежами из В, для которых выполнено условие: В1=А1.

Операция ДЕЛЕНИЕ. На входе операции используется два отношения А и В. Пусть отношение А, называемое делимым, содержит атрибуты (А1,А2, ...,Аn). Отношение В – делитель -содержит подмножество атрибутов А; положим, (А1,А2, ...,Аk), где (k

Аk+1, Аk+2 , ..., Аn.

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

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

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

Отметим особенности реляционной модели данных:

Множество объектов реляционной модели данных однородно - структура данных определяется только в терминах отношений;

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

НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ

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

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

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

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

Первая нормальная форма. Отношение называется нормализованным или приведенным к первой нормальной форме (1НФ), если все его атрибуты простые.

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

Функциональная зависимость. Пусть Х и Y - два атрибута некоторого отношения, Говорят, что Y функционально зависит от X, если в любой момент времени каждому значению Х соответствует не более чем одно значение атрибута Y. Функциональную зависимость можно обозначить так: Х>Y.

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

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

Чтобы отношение привести ко второй нормальной форме, необходимо:

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

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

Транзитивная зависимость. Пусть X, Y, Z - три атрибута некоторого отношения. При этом Х>Y и Y>Z, но обратное соответствие отсутствует, т. е. Z не> или Y не>Х. Тогда говорят, что Z транзитивно зависит от X.

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

Основное достоинство реляционного подхода - его простота и доступность. Пользователи абстрагированы от физической структуры памяти. Это позволяет эксплуатировать БД без знания методов и способов ее построения. Основные достоинства РМД следующие: простота, независимость данных; гибкость; непроцедурные запросы, теоретическое обоснование на основе теории отношений. Это дает возможность пользователям формировать их запросы более компактно, в терминах более крупных агрегатов.

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

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

ЦЕЛИ И ЗАДАЧИ ПРОЕКТИРОВАНИЯ

Основная цель процесса проектирования БД состоит: в получении такого проекта, который удовлетворяет следующим требованиям:

Корректности схемы БД, т. е. база данных должна быть гомоморфным образом моделируемой предметной области, где каждому объекту предметной области соответствуют данные в памяти ЭВМ, а каждому процессу предметной области - адекватные процедуры обработки данных. При этом результаты выполнения процесса и соответствующих ему процедур обработки данных должны совпадать в любой момент функционирования, если это предусмотрено проектом;

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

Эффективность функционирования, т. е. Обеспечение требований ко времени реакции системы на запросы и обновления БД;

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

Простота и удобство эксплуатации информационной системы;

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

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

СТРУКТУРА ПРОЦЕССА ПРОЕКТИРОВАНИЯ

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

Фрагменты предметной области исследуются последовательно. Причем сведения об очередном фрагменте интегрируются с полученными при изучении предшествующих фрагментов.

Система управления БД – важнейший программный компонент информационной системы, оказывающий существенное влияние на многие параметры системы, в том числе:

Пользовательские интерфейсы;

Эффективность функционирования;

Стоимость разработки приложений;

Стоимость эксплуатации;

Гибкость системы.

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

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

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

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

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

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

На выбор СУБД-претендентов наибольшее влияние оказывает согласование ряда параметров среды реализации и СУБД. К таким параметрам в первую очередь относятся:

Тип ЭВМ;

Операционная система;

Объемы оперативной памяти;

Конфигурация вычислительной системы и наличие реализаций СУБД для нескольких типов ЭВМ.

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

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

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

Сравнительный анализ модели БД. Перед тем как приступить к сравнительному анализу моделей БД (а, следовательно, и к окончательному выбору СУБД), необходимо выделить набор факторов, по которым будут оцениваться рассматриваемые варианты.

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

Требуемые объемы основной и дисковой памяти;

Трудоемкость разработки программных средств окружения СУБД;

Трудоемкость реализации приложений;

Затраты на обучение персонала;

Стоимость эксплуатации, информационной системы;

Возможность совмещения разработки БД с ранее выполненными программными реализациями;

Прогнозируемые сроки реализации информационной системы.

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

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

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

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

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

Ввод информации в систему;

Защита данных;

Управление использованием данных;

Управление эффективностью системы.

Программное обеспечение технологии ведения ИС составляют сервисные средства, необходимые для выполнения большинства процессов, включенных в технологию. Это могут быть стандартные программные продукты (из состава СУБД или независимо поставляемые) либо оригинальные программные разработки. Определяя программное обеспечение, оговаривается его состав, а для оригинальных программ разрабатываются их алгоритмы.

ТЕХНОЛОГИЯ ВЕДЕНИЯ ИНФОРМАЦИОННОЙ СИСТЕМЫ

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

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

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

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

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

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

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

Управление использованием данных. Технология ведения информационной системы должна предусматривать механизм учета пользователей и приложений. Для этой цели могут использоваться словари-справочники данных. Кроме того- сведения об использовании данных и обращениях конечных пользователей к ИС должны фиксироваться в журнальном файле. Сервисные программы обработки журнального файла позволят администратору БД получить разнообразные протоколы использования данных.

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

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

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

ЗАКЛЮЧЕНИЕ

Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что РМД имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими».

Для лучшего понимания РМД следует отметить три важных обстоятельства:

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

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

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

ЛИТЕРАТУРА

1) http://www.fio.ru/- web-сайт Федерации Интернет образования.

2) http://www.citforum.ru/database/foxpro.shtml - материалы по БД

3) http://db.informika.ru/ - электронный справочник

4) http://www.inftech.webservis.ru/ - web-сайт Информационных технологий.

5) www.e-russia.ru - web-сайт, посвящённый содержанию, проблемам и обоснованию необходимости решения ФЦП «Электронная Россия» программными методами.

6) http://ccc.ru/elro/about.html - материалы об Электронной России: дискуссионный центр.

7) http://www.e-rus.org/articles/meaning_programm.shtml -Официальный текст программы «Электронная Россия»

8) www.hse.ru/~erussia - web-сайт ФЦП «Электронная Россия».

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

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

    Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation ). В качестве неформального синонима термину «отношение» часто встречается слово таблица . Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что РМД имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими».

    Для лучшего понимания РМД следует отметить три важных обстоятельства:

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

    Принципы реляционной модели были сформулированы в -1970 годах Э. Ф. Коддом (E. F. Codd) . Идеи Кодда были впервые публично изложены в статье «A Relational Model of Data for Large Shared Data Banks» , ставшей классической.

    Строгое изложение теории реляционных баз данных (реляционной модели данных) в современном понимании можно найти в книге К. Дж. Дейта . «C. J. Date. An Introduction to Database Systems» («Дейт, К. Дж. Введение в системы баз данных»).

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

    Примечания

    Литература

    • Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. - 8-е изд. - М .: «Вильямс», 2006. - 1328 с. - ISBN 0-321-19784-4
    • Томас Коннолли, Каролин Бегг Базы данных. Проектирование, реализация и сопровождение. Теория и практика = Database Systems: A Practical Approach to Design, Implementation, and Management Third Edition. - 3-е изд. - М .: «Вильямс», 2003. - С. 1436. - ISBN 0-201-70857-4
    • Кузнецов С. Д. Основы баз данных. - 2-е изд. - М .: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2007. - 484 с. - ISBN 978-5-94774-736-2
    • Когаловский М.Р. Энциклопедия технологий баз данных. - М .: Финансы и статистика, 2002. - С. 800. - ISBN 5-279-02276-4

    Wikimedia Foundation . 2010 .

    Смотреть что такое "Реляционная модель данных" в других словарях:

      Разработанная Э.Коддом в 1970г. логическая модель данных, описывающая: структуры данных в виде (изменяющихся во времени) наборов отношений; теоретико множественные операции над данными: объединение, пересечение, разность и декартово произведение; … Финансовый словарь

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

      Реляционная модель данных - 61. Реляционная модель данных Модель данных, основанная на представлении данных в виде набора отношений, каждое из которых представляет собой подмножество декартова произведения определенных множеств, и манипулировании ими с помощью множества… … Словарь-справочник терминов нормативно-технической документации

      Реляционная база данных база данных, основанная на реляционной модели данных. Слово «реляционный» происходит от англ. relation (отношение). Для работы с реляционными БД применяют реляционные СУБД. Использование реляционных баз… … Википедия

      реляционная база данных - База данных, реализованная в соответствии с реляционной моделью данных. [ГОСТ 20886 85] реляционная БД База данных, логически организованная в виде набора отношений ее компонентов. Характерной особенностью реляционной базы данных является… … Справочник технического переводчика

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

      В классической теории баз данных, модель данных есть формальная теория представления и обработки данных в системе управления базами данных (СУБД), которая включает, по меньшей мере, три аспекта: 1) аспект структуры: методы описания типов и… … Википедия

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

      Необходимо перенести в эту статью содержимое статьи Сетевая СУБД и поставить оттуда перенаправление. Вы можете помочь проекту, объединив статьи (cм. инструкцию по объединению). В случае необходимости обсуждения целесообразности объединения,… … Википедия

      - (англ. Associative model of data) это предложенная Саймоном Уильямсом:2 модель представления данных, в которой база данных состоит из двух типов структур данных элементов и ссылок, хранимых в единой однородной общей… … Википедия

    Книги

    • Базы данных: Учебник. Кузнецов С.Д. , Кузнецов С.Д. , Учебник создан в соответствии с Федеральным государственным образовательным стандартом по направлению подготовки `Прикладная математика и информатика` (квалификация `бакалавр`). В учебнике… Категория: Учебники для ВУЗов Серия: Университетский учебник Издатель: Академия , Производитель:

    Реляционная модель данных предложена сотрудником фирмы IBM Эдгаром Коддом и основывается на понятии отношение (relation).

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

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

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

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

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

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

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

    Домен отношения – множество всех возможных значений определенного атрибута отношения.

    Математически отношение можно описать следующим образом. Пусть даны n множеств D1, D2, D3,…Dn, тогда отношение R есть множество упорядоченных кортежей , где dkDk, dk – атрибут, а Dk – домен отношения R.

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

    Таблица 2.1

    Пример отношения в виде таблицы (отношение R)

    Данная таблица обладает рядом специфических свойств:

    1. В таблице нет двух одинаковых строк.

    2. Таблица имеет столбцы, соответствующие атрибутам отношения.

    3. Каждый атрибут в отношении имеет уникальное имя.

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

    Вхождение домена в отношение принято называть атрибутом. Строки отношения называются кортежами.

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

    Следует заметить, что в отношении не может быть одинаковых кортежей, это следует из математической модели: отношение – это подмножество декартова произведения, а в декартовом произведении все n -ки различны. В соответствии со свойствами отношений два отношения, отличающиеся только порядком строк или порядком столбцов, будут интерпретироваться в рамках реляционной модели как одинаковые, то есть отношение R (см. табл. 2.1) и отношение R1, изображенное далее (табл. 2.2), одинаковы с точки зрения реляционной модели данных.

    Таблица 2.2

    Пример отношения в виде таблицы (отношение R1)

    Дисциплина

    Теория автоматов

    Теория автоматов

    Степанов

    Теория автоматов

    Базы данных

    Базы данных

    Степанов

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

    Если атрибуты принимают значения из одного и того же домена, то они называются T-сравнимыми, где T – множество допустимых операций сравнения, заданных для данного домена. Например, если домен содержит числовые данные, то для него допустимы все операции сравнения, тогда

    Как уже говорилось ранее, реляционная модель представляет базу данных в виде множества взаимосвязанных отношений. В отличие от теоретико-графовых моделей в реляционной модели связи между отношениями поддерживаются неявным образом. В реляционной модели, так же как и в остальных, поддерживаются иерархические связи между отношениями. В каждой связи одно отношение может выступать как основное, а другое отношение выступает в роли подчиненного. Это означает, что один кортеж основного отношения может быть связан с несколькими кортежами подчиненного отношения. Для поддержки этих связей оба отношения должны содержать наборы атрибутов, по которым они связаны. В основном отношении это первичный ключ отношения (PRIMARY KEY), который однозначно определяет кортеж основного отношения. В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Однако здесь этот набор атрибутов уже является вторичным ключом, то есть он определяет множество кортежей подчиненного отношения, которые связаны с единственным кортежем основного отношения. Данный набор атрибутов в подчиненном отношении принято называть внешним ключом (FOREIGN KEY).

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

    Рис. 2.6. Связь между основным и подчиненным отношениями

    PRIMARY KEY отношения Сотрудник - атрибут - Паспорт является FOREIGN KEY для отношения «карьера».

    Реляционная модель данных (РМД) была разработана сотрудником IBM Э.Ф. Коддом (Edgar Frank Codd) еще в 1969-1970 гг. на основе математической теории отношений . В настоящее время это наиболее распространенная модель данных, используемая коммерческими СУБД.

    Реляционная модель данных имеет свои достоинства и недостатки. К достоинствам модели можно отнести следующее:

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

    Недостатками модели являются:

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

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

    Особенности реляционной модели данных, отличающие ее от моделей «сущность-связь»:

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

    БАЗОВЫЕ СТРУКТУРНЫЕ КОМПОНЕНТЫ РЕЛЯЦИОННОЙ МОДЕЛИ ДАННЫХ

    Базовыми структурными компонентами РМД являются:

    • домены и атрибуты;
    • отношения;
    • связи.

    Домены, атрибуты и отношения

    Определение.Домен - множество элементов одного типа.

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

    Примеры простых доменов:

    ГОД = {1985, 2003, 2000};

    ДЕНЬГИ = {500, 1000,850}.

    Пример составного домена, построенного на простых доменах ГОД и ДЕНЬГИ:

    В данном примере значением одного элемента составного домена является множество пар вида

    Отношение реляционной модели определяется в соответствии с его определением в теории множеств.

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

    В реляционной модели данных множества представляют собой домены.

    Пример: даны два домена Э, = {а, Ь, с} и Э 2 = {1,2}. Отношением, построенным на данных доменах, может быть = {, }. Другое отношение, построенное на этих же доменах: Я 2 = {, }.

    Свойства отношения:

    • кортежи отношения не упорядочены;
    • домены внутри кортежей упорядочены.

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

    В связи с введением понятия атрибута в реляционной модели данных вводится понятие схемы отношения.

    Определение. Схема отношения - это именованная совокупность пар

    Схема отношения представляет собой интенсионал отношения.

    Рассмотрим пример. Пусть даны два домена: ЧИСЛО и СТРОКА. В отношении ОТДЕЛ домен ЧИСЛО используется для задания номера отдела - вводим атрибут Номер отдела, а домен СТРОКА используется для задания названия отдела - атрибут Название. Тогда отношению ОТДЕЛ соответствует следующая схема отношения:

    ОТДЕЛ {Номер отдела: ЧИСЛО, Название: СТРОКА).

    В общем случае, как упоминалось выше, может существовать составной домен. В соответствии со своим определением составной домен представляет собой отношение, построенное также на простых доменах. Но в таком отношении не появляются атрибуты. Вернемся к домену ИСТОРИЯ ЗАРПЛАТЫ. Он построен на простых доменах ГОД и ДЕНЬГИ и может быть задан следующим образом:

    ИСТОРИЯ ЗАРПЛАТЫ (ГОД, ДЕНЬГИ).

    В задании схемы отношения могут использоваться и составные домены. Рассмотрим отношение СОТРУДНИК. Его атрибутами могут быть Номер сотрудника (определен на домене ЧИСЛО), Имя (на домене СТРОКА) и Зарплата , определенный на домене ИСТОРИЯ ЗАРПЛАТЫ:

    СОТРУДНИК {Номер сотрудника: ЧИСЛО, Имя: СТРОКА, Зарплата: ИСТОРИЯ ЗАРПЛАТЫ).

    Конкретная реализация (экстенсионал) данного отношения может иметь вид, представленный на рис. 5.1.

    Рис. 5.1. Пример представления отношения СОТРУДНИК

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

    Определение. Нормализованное отношение - это отношение, в котором каждое значение атрибутов является атомарным.

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

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

    Рис. 5.2. Нормализованное отношение СОТРУДНИК

    Свойства отношения реляционной модели данных.

    • 1. Каждый атрибут отношения имеет уникальное в данном отношении имя.
    • 2. Каждый атрибут определен на каком-то одном домене.
    • 3. На одном и том же домене может быть определено несколько атрибутов.
    • 4. Имя атрибута может совпадать с именем домена.
    • 5. Порядок следования атрибутов не устанавливается (атрибуты в определении схемы отношения не упорядочены).
    • 6. В отношении нет совпадающих кортежей (каждый кортеж уникален).
    • 7. Порядок следования кортежей не устанавливается (кортежи в отношении не упорядочены).
    • 8. Отношение имеет имя, которое в схеме базы данных отличается от имен всех других отношений.

    Примечание: часто в качестве доменов используются интуитивно понятные множества: например, в предыдущем примере интуитивно ясно, что Номер отдела - это число, а Название - это строка. В соответствии с этим в схеме отношения часто опускается указание имени домена:

    ОТДЕЛ (Номер отдела , Название).

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

    Представление сущности

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

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

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

    Определение. Первичный ключ (РК - Primary Key) - неизбыточный набор атрибутов, значения которых однозначно определяют кортеж отношения.

    Первичный ключ неизбыточен, если:

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

    Таким образом, в соответствии с определением первичный ключ отношения обладает следующими двумя свойствами:

    • уникальность - каждый кортеж в отношении единственным образом идентифицируется значением ключа;
    • неприводимость - никакое собственное подмножество ключа не обладает свойством уникальности.

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

    КАФЕДРА (Номер кафедры , Название)

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

    В схеме отношения первичный ключ будем подчеркивать, а после альтернативных ключей добавлять аббревиатуру АК:

    КАФЕДРА (Номер кафедры. Название (АК)).

    Связи

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

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

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

    Основными типами связей между сущностями являются связи 1:п и п:п. Рассмотрим представление этих связей. Начнем со связи типа 1:п.

    Рассмотрим следующие отношения:

    • СОТРУДНИК с атрибутами Номер сотрудника (первичный ключ), Имя и Год рождения ;
    • ОТДЕЛ с атрибутами Номер отдела (первичный ключ) и Название.

    Между этими отношениями определена связь типа 1:п - каждый сотрудник работает в одном определенном отделе, и в каждом отделе работают много сотрудников. На рис. 5.3 приведена соответствующая диаграмма «сущность-связь» в нотации, предложенной П. Ченом.

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

    ОТДЕЛ (Номер отдела. Название (АК));

    СОТРУДНИК (Номер сотрудника. Имя , Год рождения,

    Номер отдела (FK)).

    Рис. 5.3. Представление связи типа 1: п в диаграмме П. Чена

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

    Рис. 5.4. Пример представления связи типа 1: п в РМД

    В данном примере в отношении СОТРУДНИК может появиться кортеж, но не может появиться кортеж, так как в этом кортеже значению «5» внешнего ключа отношения СОТРУДНИК не соответствует никакое значение первичного ключа отношения ОТДЕЛ.

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

    Следует отметить, что нотация IDEFlx полностью соответствует представлению связи в РМД (рис. 5.5).

    Отдел / Е1 Сотрудник / Е2


    Рис. 5.5. Представление связи типа 1: п в нотации IDEF1 х

    Рассмотрим представление связи типа п:п. Например, отношение ПОСТАВЩИК с атрибутами Номер поставщика (первичный ключ), Имя и Адрес и отношение ДЕТАЛЬ с атрибутами Номер детали (первичный ключ), Название и Цена. Между этими отношениями определена связь типа п:п - каждый поставщик поставляет много деталей, и каждая деталь поставляется многими поставщиками. Соответствующая диаграмма «сущность-связь» в нотации, предложенной П. Ченом, приведена на рис. 5.6.


    Рис. 5.6. Представление связи типа п: п в диаграмме П. Чена

    В этом случае в РМД связь ПОСТАВКА (ПОСТАВЩИК, ДЕТАЛЬ) представляется собственным отношением, в котором будут атрибуты внешних ключей, ссылающиеся на отношения ПОСТАВЩИК и ДЕТАЛЬ. Эти атрибуты могут войти в состав первичного ключа отношения связи. Кроме того, отношение связи может иметь собственный атрибут. Схемы отношений будут выглядеть следующим образом:

    ПОСТАВЩИК (Номер поставщика. Имя, Адрес)",

    ДЕТАЛЬ (Номер детали. Название, Цена)",

    ПОСТАВКА (Номер поставщика (ЬКИ. Номер детали (ЬК2).

    Количество).

    Пример реализации этих отношений приведен на рис. 5.7.

    И в этом случае нотация ШЕЕ1х полностью соответствует РМД. На ранних этапах проектирования могут появиться связи типа п: п, которые на следующих этапах заменяются дополнительным отношением сущности и двумя связями типа 1: п (рис. 5.8). Поэтому в дальнейшем для иллюстрации схем отношений и связей между отношениями будет использована нотация ЮЕЕ1х.

    Рис. 5.7. Пример представления связи типа п: п в РМД

    Деталь /Е2

    Постащик/Е1

    Поставляет/_

    поставляется

    а) неопределенная связь

    Поставщик / Е1

    Деталь /Е2

    выполняет

    Номер детали (ЕК2)

    Количество

    • -участвует в- 1
    • б) преобразование в определенную связь

    Рис. 5.8. Преобразование связи типа п:п в связьтипа 1: п в нотации ЮЕР1х

    ЦЕЛОСТНАЯ ЧАСТЬ РЕЛЯЦИОННОЙ МОДЕЛИ ДАННЫХ

    Реляционная модель данных определяет два базовых требования целостности, которые поддерживаются любой реляционной СУБД:

    • требование целостности сущностей;
    • требование целостности по ссылкам, или ссылочной целостности.

    Целостность сущностей

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

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

    Кроме этого, могут быть установлены и следующие ограничения:

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

    Ссылочная целостность

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

    ОТДЕЛ (Номер отдела. Название (АК));

    СОТРУДНИК (Номер сотрудника. Имя , Год рождения ,

    Номер отдела (ЕК)).

    Атрибут внешнего ключа Номер отдела в отношении СОТРУДНИК позволяет получить полную информацию о том конкретном отделе, в котором работает конкретный сотрудник.

    Обычно отношение, в котором определяется внешний ключ, называется дочерним отношением, а отношение, на которое ссылается внешний ключ, - родительским отношением. Так, в нашем примере отношение СОТРУДНИК - дочернее, а отношение ОТДЕЛ - родительское.

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

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

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

    Родительское отношение Дочернее отношение

    Связь......а

    • - вставка - вставка
    • - удаление - удаление
    • - модификация РК - модификация РК

    Рис. 5.9. Операции модификации родительского и дочернего отношений

    Рассмотрим особенности выполнения этих операций.

    • 1. Все операции с дочерним отношением должны удовлетворять требованиям ссылочной целостности:
      • при вставке нового элемента этот элемент должен иметь допустимое значение атрибутов внешнего ключа;
      • удаление элемента выполняется без каких-либо ограничений;
      • при модификации внешнего ключа некоторого элемента этот элемент должен получить допустимое значение атрибутов внешнего ключа.
    • 2. Операции с родительским отношением выполняются в соответствии со следующими правилами:
      • вставка нового элемента выполняется без каких-либо ограничений;
      • удаление элемента не должно привести к нарушению ссылочной целостности. Если в дочернем отношении существует элемент, ссылающийся на удаляемый элемент родительского отношения, как поступить с ним? Здесь возможны три подхода:
        • а) удаление элемента из родительского отношения не выполняется, если в дочернем отношении есть хотя бы один элемент, ссылающийся на удаляемый;
        • б) вместе с элементом родительского отношения удаляются все ссылающиеся на него элементы дочернего отношения;
        • в) атрибутам внешнего ключа дочернего отношения присваивается пустое значение (каждая СУБД использует собственный способ задания пустого значения); этот подход возможен, если для атрибутов внешнего ключа дочернего отношения не установлено ограничение обязательности значения;
      • модификация значения первичного ключа существующего элемента также не должна привести к нарушению ссылочной целостности. Здесь также возможны те же три подхода:
        • а) модификация первичного ключа элемента из родительского отношения не выполняется, если в дочернем отношении есть хотя бы один элемент, ссылающийся на модифицируемый;
        • б) вместе с элементом родительского отношения модифицируются значения атрибутов внешнего ключа всех ссылающихся на него элементов дочернего отношения;
        • в) атрибутам внешнего ключа дочернего отношения присваивается пустое значение; этот подход возможен, если для атрибутов внешнего ключа дочернего отношения не установлено ограничение обязательности значения.

    МАНИПУЛЯЦИОННАЯ ЧАСТЬ РЕЛЯЦИОННОЙ МОДЕЛИ ДАННЫХ

    Общая характеристика

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

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

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

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

    Из приведенного определения следует:

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

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

    Таким образом, подводя итог сказанному выше, можно определить три вида языков запросов:

    • языки реляционной алгебры;
    • языки реляционного исчисления с переменными - кортежами;
    • языки реляционного исчисления с переменными на доменах.

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

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

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

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

    Реляционная алгебра. Общая характеристика

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

    Я опц И. дает И..

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

    • 1. Теоретико-множественные операции - традиционные операции над множествами, определяемые теорией множеств; к ним относятся:
      • объединение;
      • вычитание;
      • пересечение;
    • 2. Специальные реляционные операции; к ним относятся:
      • выбор (селекция);
      • проекция;
      • соединение;
      • деление.

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

    Из приведенных выше рассуждений можно сделать два важных вывода.

    1. Операндами реляционных операций являются отношения; результатом также является отношение. Это свойство называют свойством замкнутости. Оно позволяет результат одной операции использовать в качестве исходных данных (операнда) для другой.

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

    К, опц ] Я 2 опц 2 ...

    • 2. Используя термин отношение, следует помнить, что на самом деле мы имеем дело с двумя понятиями:
      • схема отношения (интенсионал);
      • экземпляр (реализация) отношения (экстенсионал).

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

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

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

    Рассмотрим пример. Пусть имеется отношение со схемой 8(А, В, С) и некоторой реализацией:

    Можно использовать, например, следующую операцию переименования:

    Б: переименовать С в 8С.

    В результате получим отношение со следующей схемой 81 (А, В, 8С) и той же реализацией:

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

    Теоретико-множественные операции

    Как было сказано ранее, теоретико-множественные операции - это традиционные операции над множествами, определяемые теорией множеств; к ним относятся:

    • объединение;
    • вычитание;
    • пересечение;
    • прямое (декартово) произведение.

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

    Рассмотрим это отличие на примере операции объединения. Операция объединения в теории множеств определяется следующим образом.

    Определение. Даны два множества - 81 и 82. Объединением этих множеств является множество 8, элементы которого принадлежат первому множеству 81 и (или) второму множеству 82:

    8 = 81и82 = {5|5е 81 и/или бе 82}.

    Графически это можно представить так (рис. 5.10).

    множество 1

    множество 2

    объединение множеств

    Рис. 5.10. Объединение множеств

    В реляционной модели данных рассматривается объединение множеств - доменов и/или отношений.

    Объединение доменов. В реляционной модели данных домен представляет собой множество элементов одного типа. Объединение до

    менов должно создать новый домен. Пусть даны следующие домены:

    О, = {1, 3, 5, 7, 9}; В 2 = {‘а’, Ъ ‘с’}; О, = {2, 4, 6, 8}. Тогда в теории множеств определено новое множество:

    Б = Э, и Э 2 = {1, 3, 5, 7, 9, ‘а’, ‘Ь ‘с’}.

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

    С другой стороны, новое множество

    0 = 0,и0 3 = {1,3, 5,7,9, 2,4, 6, 8}

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

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

    Пусть определены следующие схемы отношений, определенные на приведенных выше доменах:

    Реализации данных отношений могут иметь следующий вид: г, = { , }; г2 = { , }; г 3 = { , }.

    Тогда в теории множеств определено новое множество: г = г, и г 2 = { , }.

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

    г = г,иг 3 = { , }

    является отношением, хотя схемы исходных отношений Я, И Я 3 и разные.

    В связи с этим в реляционной алгебре рассматривается свойство совместимости по объединению.

    Определение. Простые домены считаются совместимыми по объединению , если они состоят из элементов одного типа.

    Для приведенных выше примеров домены и несовместимы по объединению, а О, и Э 3 - совместимы по объединению.

    Определение. Два отношения считаются совместимыми по объединению, если:

    • оба отношения имеют одно и то же множество атрибутов;
    • одноименные атрибуты двух отношений определены на совместимых по объединению доменах.

    Так, в приведенных выше примерах отношения Я, и Я 3 совместимы по объединению, так как их одноименные атрибуты определены на совместимых по объединению доменах.

    Если нужно проверить совместимость по объединению отношений, использующих в своих схемах разные имена атрибутов, тогда в соответствии с семантикой атрибутов можно переименовать их, используя операцию переименования. После этого полученные отношения проверяются на совместимость по объединению. Например, пусть дано еще одно отношение Я 4 (ВрО р В 2:0 3) и надо проверить, совместимо ли по объединению данное отношение с отношением Яр Сначала, используя операцию переименования, получаем новое отношение Я 4 (АрОр А 2:0 3):

    Я 4: переименовать В, в А р В 2 в А 2 .

    После этого можно проверить отношения Я! и Я 4 на совместимость по объединению. С таким же успехом можно использовать операцию переименования:

    Яр переименовать А [ в В р А 2 в В г

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

    Объединение отношений

    Определение. Объединением двух отношений г^Я,) и г 2 (Я 2), совместимых по объединению, называется отношение б = г, и г 2 , для которого:

    • а) схема отношения совпадает с И., или Я 2 ;
    • б) реализация отношения представляет множество кортежей, принадлежащих реализации г (и (или) г 2 .

    Формальная запись:

    даны г/К,), г 2 (Я 2), г 1 = ад, г 2 = ад, Я, = Я, Я 2 = Я;

    Б = Г и Г 2 = 8 (Я), Б = | ^ ? Г 1 И/ИЛИ V

    5 = Г 1 и Г 2

    Свойства операции:

    • коммутативна - г 1 и г 2 = г 2 и г.;
    • ассоциативна - г ] и (г 2 и г 3) = (г 1 и г 2) и г 3 = г ] и г 2 и г 3 .

    Вычитание отношений

    Определение. Вычитанием двух отношений гДЯ^ и г 2 (Я 2), совместимых по объединению, называется отношение б = г, - г 2 , для которого:

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

    Формальная запись:

    даны г,(Я,), г 2 (Я 2), г, = ад, г 2 = ад, Я, = Я, Я 2 = Я;

    8 = г, - г 2 = 8(Я), Б = I ^ € г, И г.

    Свойства операции:

    • не коммутативна;
    • не ассоциативна.

    Пересечение отношений

    Определение. Пересечением двух отношений г^И^) и г 2 (11 2), совместимых по объединению, называется отношение б = п г 7 , для которого:

    • а) схема отношения совпадает с Я, или Я 2 ;
    • б) реализация отношения представляет множество кортежей, содержащихся и в г р и в г 2 .

    Формальная запись:

    даны г,(К,), г 2 (Я 2), г, = {г и }, г 2 = Я, = Я, Я 2 = Я;

    Б = Г! П Г 2 = 8(Я), Б = | ^ ? Г, И ^

    8 = Г 1 П Г 2

    Свойства операции:

    • коммутативна - г1 п г2 = г2 п г1;
    • ассоциативна - г1 п (г2 п гЗ) = (г1 п г2) п гЗ = г1 п г2 п гЗ. Операцию пересечения можно выразить через операцию вычитания:

    Г 1 ПГ 2 = Г 1 - (Г 1 _Г 2)-

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

    Здесь отношения г^Я^ и г 2 (К 2) могут иметь разные схемы, не обязательно совместимые по объединению. Перед выполнением операции декартова произведения необходимо переименовать атрибуты в схемах отношений Я, или Я 2 так, чтобы имена всех атрибутов были разными.

    Определение. Декартовым произведением двух отношений гДЯ^ и г 2 (Я 2), схемы отношений которых не имеют одноименных атрибутов, т.е. Я 1 п Я 2 = 0, называется отношение б = г ] х г 2 , для которого:

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

    Формальная запись:

    даны г,(Я,), Я,(А р А 2 ,..., А т), г 2 (Я 2), Я 2 (В р В 2 ,..., В п),

    Г 1 = и и }, г 2 = {^}, Я,пЯ 2 = 0;

    б = г 1 х г 2 = б(Я), Я(А р А 2 , А т, В р В 2 ,..., В п),

    в = {и.у.|и.е Гр у.е г 2 }.

    Свойства операции:

    • коммутативна - г, х г 2 = г 2 х Гр
    • ассоциативна - г ] х (г 2 х г 3) = (г! х г 2) х г 3 = ^ х г 2 х г 3 .

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

    Специальные операции

    К специальным операциям реляционной алгебры относятся:

    • проекция;
    • выбор (или селекция);
    • соединение;
    • деление.

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

    Проекция

    Данная операция является унарной операцией на отношениях, т.е. в этой операции участвует только одно отношение.

    Определение. Проекцией отношения г(Л), Л = {А (}, на некоторый список имен атрибутов (подмножество атрибутов) Ь из Л, Ь с Л, называется отношение Б = 71 ь (г), ДЛЯ КОТОРОГО!

    • схема отношения определяется списком Ь;
    • реализация отношения есть множество кортежей, полученных из кортежей отношения г путем вычеркивания элементов, соответствующих атрибутам Л - Ц и исключением дубликатов.

    Формальная запись:

    даны г(Л), Л(А, А 2 ,..., А т), г = {};

    5(Ь) = 71 ь (г), ЦВр в 2 ,..., в к), В; с Л, б = {

    таких, что а = I, если В 1 = А^}.

    Проекция дает вертикальное подмножество отношения.

    Свойство проекции:

    если У с X с Л, то тс у (л: х (г)) = л; у (г).

    Данную операцию называют еще ограничением и селекцией. Также является унарной операцией над отношением.

    Определение. Выбором из отношения г(Л) по условию Л называется отношение Б = Ор(г), для которого:

    • схема отношения совпадает со схемой Л;
    • реализация отношения есть множество кортежей из г, удовлетворяющих условию К

    Формальная запись: даны г(Л), г= {1;};

    Л) = о н (г), б = {и, | и |

    Условие (предикат) Я записывается в соответствии со следующими правилами:

    • в качестве операндов могут быть указаны атрибуты отношения и/или константы;
    • в качестве операций могут быть использованы операции отношения (=, ф и т.д.) и логические операции (л, V, -н).

    Для указания порядка вычисления предиката Р в нем могут быть использованы круглые скобки.

    Выбор дает горизонтальное подмножество отношения.

    Свойства операции:

    • коммутативна - а Р1 (Ор 2 (г)) = Ор 2 (а п (г)) = о Р1л Р2 (г);
    • дистрибутивна относительно операций у = (п, и, -):

    ^р(гуз) = Ор(г) уар(5).

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

    Соединение

    В реляционной алгебре рассматриваются две модификации данной операции: естественное соединение и соединение по условию (или 0-соединение).

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

    Определение. Естественным соединением отношений г,(Я,), Я, = ХУ, и г 2 (Я 2), Я 2 = где У - общее подмножество атрибутов из Я, и Я 2 , определенных на одних и тех же доменах, называется отношение б(Я) = г (М г 2 , для которого:

    • схема отношения Я = Я, и Я 2 = ХУ7;
    • реализация отношения есть множество кортежей {1}, для которых тт^уО) е г 1 и 71у 2 (0 е г 2-

    Формальная запись:

    даны г^Я^, Я, = ХУ, и г 2 (Я 2), Я 2 =

    б(Я) = г, г 2 , Я = Я, и Я 2 = XYZ, э = {I | таких, что 71 ху (1:)

    Ь = Г 1 XI Г 2

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

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

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

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

    Соединение по условию

    Определение. Даны два отношения r^Rj) и r 2 (R 2), для которых в R, и R 2 нет атрибутов с одинаковыми именами, т.е. R, n R 2 = 0. Пусть атрибут А е Rj сравним по условию 0 с атрибутом В e R, (условие 0 определяется так же, как предикат F в операции выбора). Тогда соединением отношений гj(Rj) и r 2 (R 2) по условию 0 называется отношение s(R) = г, г 2 , для которого:

    • схема отношения R = R, u R 2:
    • реализация отношения есть множество кортежей, полученных сцеплением кортежей из г, и г 2 , удовлетворяющих условию А0В.

    Формальная запись:

    даны rj(Rj) и r 2 (R 2), R, n R 2 = 0;

    s(R) = r t r 2 , R = R, u R 2 , s = {uv | таких, что u e r p v

    и v выполняется условие 0}.

    Атрибуты А и В могут быть составными, т.е. А = {А р А 2 , ..., А п }, В = {Вр В 2 , ..., В п }.Тогда А0В = [А,0,Вр А 2 0 9 В 2 , ..., A n 0 n BJ. Операции 0j могут быть разными. Например, пусть даны г,(Ар А 2 , АД и г 2 (Вр В 2 , В 3), и все атрибуты определены на числовых доменах. Тогда можно получить соединение по условию:

    С = Г М у

    ъ 1 1 В

    Если в качестве операции 0 используется операция =, такое соединение по условию называется эквисоединением.

    Определение. Даны два отношения гДИ^) и г 2 (11 2), для которых 11 2 с Я! и Я 2 не пусто. Частным отделения отношения г, на отношение г 2 называется отношение 8(Я) = г ] -н г 2 , для которого:

    • схема отношения Я = Я, - Я 2 ,
    • реализация отношения есть множество кортежей I таких, что для всех и. е г 2 существует V. 6 г 1 такой, что у.(Я 1 - Я 2) = I и у/Я 2) = и.

    Формальная запись:

    даны г,(Я,), г 2 (Я 2), Я 2 с К, Я 2 ^ 0;

    8(Я) = Г 1 -5- Г 2 , Я = Я, - Я 2 , Б = {Е | V и е Г 2 (Ей е г^}.

    Другими словами, 8хг 2 е г р

    Действительно, кортежи, и есть в отношении Кортеж есть в отношении г р но кортежа нет, поэтому в б нет кортежа.

    Можно написать выражение реляционной алгебры, эквивалентное операции деления:

    Г! + Г 2 = Л К,-Я, - ,1 К | -Я,«%,-Я 2 Х Г 2> - Г!>-

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

    Пусть дана следующая схема базы данных:

    • 8(8#, 814, 8С) - ПОСТАВЩИК (Номер поставщика. Имя, Город)", Р(?#, Р1Ч, РС) - ДЕТАЛЬ (Номер детали, Название, Цена)", 8Р(8#, Р#, ОТУ) - ПОСТАВКА (Номер поставщика, Номер детали. Количество).
    • 1. Получить имена поставщиков, поставляющих деталь с номером Рр

    %^ а Р#=’Р,’(8 М 8Р))‘

    2. Получить имена поставщиков, не поставляющих деталь с номером Рр

    ^Б!^ 8) - ^Б^^Р# =‘РГ^ 8 8Р))-

    3. Получить имена поставщиков, поставляющих только деталь с номером Р (:

    тс 8Н (а р# =Т1 ,(8 8Р))-л: 8М (а р# ^ Р1 ,(8 М 8Р)).

    4. Получить имена поставщиков, поставляющих все детали:

    ^ 71 р#(р)) 8)-

    5.3.5. Реляционное исчисление Общие определения

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

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

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

    В качестве такой формально-логической теории используется теория исчисления предикатов первого порядка, в которой формула задается в виде предиката.

    Понятие предиката

    Даны некоторые попарно не пересекающиеся произвольные множества Э, ..., Э п, п Е = 0 для любых Ф), и переменные х р

    х 2 , ..., х, принимающие значения из соответствующих множеств: ж ^ для любых г

    Тогда предикатом (или предикатной функцией) называется функция Р(х р х 2 , х), принимающая одно из двух значений - 1 или 0 (истина или ложь).

    Переменные х р х 2 , х п называются предикатными переменными. Множества D p D 2 , ..., D n образуют область интерпретации предиката.

    В записи предиката наряду с логическими операциями л, v, смысл и использование которых традиционные используются специальные операции - кванторы: всеобщности V и существования 3. Смысл использования кванторов следующий:

    • Vx (f(x)) означает, что для всех значений «х» из области интерпретации формула f(x) имеет значение «истина»;
    • Зх (f(x)) означает, что существует по крайней мере одно значение «х» из области интерпретации, для которого формула f(x) имеет значение «истина».

    Примеры. Пусть переменная «х» определена на множестве «учебная группа»; f(t) - утверждение «t получает стипендию»; тогда предикат Зх (f(x)) имеет значение «истина», если хотя бы один член группы (неважно, кто именно) получает стипендию, и ложь, если никто в группе не получает стипендию.

    Пусть переменная «х» определена на множестве «учебная группа»; f(t) - утверждение «t не имеет задолженностей в сессию»; тогда предикат Vx (f(x)) имеет значение «истина», если все члены группы не имеют задолженностей в сессию, и ложь, если хотя бы один член группы имеет задолженность.

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

    Вхождение переменной t в формулу |/связано, если переменная t находится в формуле ц/ в подформуле, начинающейся кванторами V или 3, за которыми непосредственно следует переменная t; тогда о кванторе говорят, что он связывает переменную t. В остальных случаях t ВХОДИТ В 1|/ свободно.

    Рассмотрим следующий пример:

    • (Vx(R(x,y)v3y(U(x,y,z)AQ(x,y))))v(Vx(3r(U(x,y,r)A(3x(F(x)))).
    • 112 3 134 13 56 576 88

    В примере пронумеровано использование переменных в связи с их появлением в кванторах и в формуле. В соответствии с этим в первой подформуле все вхождения «х» (помеченные цифрой 1) связаны квантором V; первое вхождение «у» (помеченное цифрой 2) свободно; следующие вхождения «у» (помеченные цифрой 3) связаны квантором 3; вхождение переменной «г» (помеченное цифрой 4) свободно. Во второй подформуле все вхождения переменной «х» (помеченные цифрами 5 и 8) связаны кванторами V и 3 соответственно;

    вхождение «у» (помеченное цифрой 7) свободно; и наконец, вхождение переменной г (помеченное цифрой 6) связано квантором 3.

    Кванторы в реляционном исчислении определяют области значений и видимости переменных. Это означает следующее.

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

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

    Рассмотрим пример. Пусть дано множество десятичных цифр Э = {О, 1,2, 3, 4, 5, 6, 7, 8, 9}; тогда подмножество, состоящее из четных цифр, можно определить следующим образом: множество всех значений у, таких, для которых выполняется условие:

    Зх (х ^ О л х -г- 2 = 0 л у = х).

    Приведенный предикат интерпретируется следующим образом: существует хотя бы одно значение «х» е О, которое четно и совпадает со значением некоторой свободной переменной «у». Следовательно, если свободная переменная у имеет конкретное значение, например, 6, приведенный предикат будет иметь значение «истина», и данное значение переменной у входит в результат. Если же переменная «у» будет иметь значение 7 или 12, тогда предикат будет иметь значение «ложь» и данное значение у не войдет в результат.

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

    Если Р(а р а 2 ,..., а) = 1, то есть выборка отношения г(А р А 2 ,..., А п),т.е.

    Если Р(Ь р Ь 2 ,..., Ь) = 0, то ё г.

    Таким образом, базисными понятиями исчисления являются понятие переменной и понятие правильно построенной формулы.

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

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

    условий, накладываемых на переменные (кортежи или на доменах).

    Реляционное исчисление с переменными-кортежами

    Как уже говорилось, в данном случае областью определения переменных являются отношения. Переменные-кортежи должны удовлетворять определенной схеме отношения R. Правильно построенная формула (wff - well formulated formula) определяет результаты отбора: выбираются те кортежи, для которых wff дает значение 1.

    Обозначим правильно построенную формулу (предикат, значения которого 0 или 1) через |/(t).

    Рассмотрим правила построения (/(t).

    I. Основой формулы являются атомы, которые могут иметь значения 0 или 1.

    Существует три типа атомов формулы vj/(t).

    • 1. Пусть r(R) - некоторая реализация отношения, удовлетворяющая схеме R; t - некоторая переменная-кортеж, удовлетворяющая схеме R. Тогда r(t) - атом; означает, что t есть кортеж в отношении г (т.е. формула истинна, если t е г).
    • 2. Пусть r(R) - некоторая реализация отношения, удовлетворяющая схеме R; и и v - переменные-кортежи из отношения r(R) (т.е. u е г, v , >, Ф,
    • 3. Пусть и - переменная-кортеж из отношения r(R) (т.е. и е г); 0 - арифметическая операция сравнения (, >, Ф,

    В приведенных выше условиях запись и[А] означает «значение переменной-кортежа и по атрибуту А».

    II. Формула реляционного исчисления (/(t), а также свободные и связанные вхождения переменных определяются по следующим рекурсивным правилам.

    • 1. Каждый атом есть формула. Все вхождения переменных-кортежей, упомянутых в атоме, являются свободными. Например, формула г(0 утверждает, что переменная-кортеж I является кортежем отношения г(Я).
    • 2. Если х(И.) - переменная-кортеж из отношения г со схемой Я; |/(х) - формула, в которой переменная «х» имеет свободное вхождение; тогда Зх(Л) (|/(х)) - формула, в которой вхождение переменной «х» становится связанным квантором 3. Данная формула утверждает, что существует хотя бы один кортеж «х» в отношении г(Я), такой, что при подстановке его в формулу {/(х) вместо всех свободных вхождений «х» получим значение «истина». Например, формула Зх(Я) (г(х)) утверждает, что отношение г не пусто (т.е. существует хотя бы один кортеж х, принадлежащий г).
    • 3. Если х(И.) - переменная-кортеж из отношения г со схемой Я; |/(х) - формула, в которой переменная «х» имеет свободное вхождение; тогда /х(Я) (ц/(х)) - формула, в которой вхождение переменной «х» становится связанным квантором V. Данная формула утверждает, что для всех кортежей «х» из отношения г(Я) при подстановке их в формулу 1|/(х) вместо всех свободных вхождений «х» получим значение «истина». Например, формула /х(Я) (х[А] Ф 0) утверждает, что для всех кортежей значение атрибута А не пусто, т.е. атрибут А является обязательным.
    • 4. Если |/(х) и ф(х) - формулы, тогда -|)/(х), |/(х) л ф(х), ц/(х) V ф(х) - тоже формулы. Вхождения переменной «х» в эти формулы остаются свободными или связанными - такими, какими были в ц/(х) или ф(х) соответственно. Например, если переменная «х» имела в ф(х) свободное вхождение, а в ф(х) - связанное, то в этих функциях сохраняется тип вхождения переменных.
    • 5. Если ф(х) - формула, то (ф(х)) - тоже формула; вхождение переменной «х» остается свободным или связанным - таким, каким оно было в ф(х).
    • 6. Ничто иное не является формулой.

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

    • а) атомы, в которых могут быть использованы арифметические операции сравнения;
    • б) кванторы;
    • в) отрицание (-|)
    • г) операция «И» (л)
    • д) операция «ИЛИ» (V)

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

    Определение. Выражение реляционного исчисления с переменными-кортежами имеет вид: {1:(11) 11|/(1:)}, где I - переменная-кортеж, удовлетворяющая схеме отношения Я; единственная переменная, имеющая свободное вхождение в формулу 1|/(1:); ц/Д) - правильно построенная формула.

    Интерпретация выражения реляционного исчисления: множество кортежей 1:, удовлетворяющих схеме отношения Я, таких, для которых правильно построенная формула уД) истинна.

    Пример. Пусть есть отношение К(Имя, Стипендия ); атрибут Стипендия определен на домене О = {«да», «нет»}. Тогда выражение

    {{(Имя) | Зх(Я) (г(х) л х[Стипендия ] = «да» л х[Имя] = {[Имя]}

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

    Безопасные выражения

    Выражение вида {I | -1 гД)} в общем случае определяет бесконечное отношение, что недопустимо. Поэтому в реляционном исчислении ограничиваются рассмотрением так называемых безопасных выражений вида {I | |/(1:)}, которые гарантированно дают ограниченное множество кортежей. В таких выражениях значения атрибутов кортежей I являются элементами некоторого ограниченного универсального множества - ООМ((/). Здесь ООМ(1|/) - унарное отношение, элементами которого являются символы, которые либо явно появляются в 1|/, либо служат компонентами какого-либо кортежа в некотором отношении Я, упоминаемом В 1|/.

    В книге Дж. Ульмана приведено следующее определение: «Выражение {I | |/(1:)} реляционного исчисления с переменными-кортежами назовем безопасным , если выполняются следующие условия:

    • 1. Всякий раз, когда I удовлетворяет ц/Д), каждый компонент I есть элемент ООМ()/).
    • 2. Для любого подвыражения |/ вида (Зи) (со(и)) каждый компонент и принадлежит ООМ(со), если и удовлетворяет со.
    • 3. Если для любого подвыражения |/ вида (/и) (со(и)) каждый компонент и не принадлежит ООМ(со), то и не удовлетворяет со. Условия 2 и 3 позволяют устанавливать истинность квалифицированной формулы (Зи) (со(и)) или (Уи) (со(и)), рассматривая только и, составленные из принадлежащих ООМ(со) символов. Например, любая формула (3 и) (Щи) л...) удовлетворяет условию 2, а любая формула (Уи) (-.Щи) V ...) - условию 3.

    Хотя условие 3 может показаться неинтуитивным, мы должны заметить, что формула (Уи) (со(и)) логически эквивалентна формуле -п(Зи) (-|Со(и)). Последняя не является безопасной, если и только если существует некоторое и 0 , ДЛЯ которого ИСТИННО -1СО(и 0) и и 0 не принадлежит домену формулы -нсо(и). Так как домены со и ->со одни и те же, условие 3 устанавливает, что формула (/и) (со(и)) безопасна, когда безопасна формула -ДЗи) (-.со(и))...».

    Эквивалентность выражений реляционной алгебры и реляционного

    исчисления с переменными-кортежами

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

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

    В табл. 5.1 приводятся некоторые эквивалентности.

    Таблица 5.1

    Эквивалентности для реляционной алгебры и реляционного исчисления

    с переменными кортежами

    Выражение реляционной алгебры

    Выражение реляционного исчисления с переменны ми-кортежами

    Объединение: г, и г, г,(К), г 9 (К)

    (х(Я) | Г,(х) V г 2 (х)}

    Разность: г, - г, г,(К), г 2 (Я)

    (х(Я) I Г,(х) А -іГ 2 (х)}

    Пересечение: г 1 п г 2 , г^Я), г 7 (К)

    {х(Я)|г,(х)лг 2 (х)}

    Декартово произведение: г, х г., гДЯ,), г 2 (Я 2)

    (х(Я,Я,) 1 Эи(Я,) Эу(Я 2) (г,(и) л г 2 (у) л х[Я,] =

    И{г1]лх[Я 2 1=у[Я 2 ])}

    Проекция: Д ь (г), г(Я), ЬсЯ

    {ДО | Эи(Я) (г(и) л и[Ц = ДЬ]}

    Выбор: а р (г), г(Я)

    Д(Я) | г(1) л Я’)}

    Естественное соединение: г,мг, г,(АВ), г 2 (ВС)

    {ДАВС) | Эи(АВ) Эу(ВС) (г,(и) л г 2 (у) л и[В] =

    = у[В] л ДАВ] = и [ А В ] л Т[С] = у[С])}

    Деление: г, н- г 2 , г,(АВ), г 2 (В)

    {ДА) | Ух(В) (г 2 (х) л Эу(АВ) (г,(у) л у[В] =

    Х[В]лу[А]=ДА]}

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

    Дана та же схема базы данных:

    • 8(8#. 814, 8С) - ПОСТАВЩИК (Номер поставщика. Имя, Город)", Р(Р#. РЇ4, РС) - ДЕТАЛЬ (Номер детали. Название, Цена)", 8Р(8#. Р#. ОТУ) - ПОСТАВКА (Номер поставщика. Номер детали. Количество).
    • 1. Получить имена поставщиков, поставляющих деталь с номером Р1.

    {1(814) | Зи(8)Зу(8Р)(8(и) а 8Р(у) а и = у а у[Р#] =

    = ‘РГ л и = 1)}.

    Пояснение: результат запроса - множество кортежей і, имеющих только один атрибут 814, таких, что:

    • - существует, по крайней мере один кортеж из отношения 8 (Зи(8)... (8(и)...) и
    • - существует, по крайней мере один кортеж из отношения БР (...Зу(8Р)(... 8Р(у) ...),

    такие, что

    • - значения этих кортежей по атрибуту Э# совпадают (и),
    • - значение кортежа V по атрибуту Р# определяет интересующую нас деталь Р1 (у{Р#{ = ‘РГ) и
    • - кортеж и определяет результат запроса (и = 1:).
    • 2. Получить имена поставщиков, не поставляющих деталь с номером Р1:

    {1(814) | Зи(8)(8(и) л-Зу(8Р) (8Р(у) л у[Р#] = ‘РГ л и =

    Ули = 1))}.

    То есть для кортежа из отношения 8, определяющего результат запроса, не найдется кортеж из отношения 8Р, имеющий такое же значение по атрибуту 8# и определяющий деталь Р1.

    3. Получить имена поставщиков, поставляющих только деталь с номером Р1.

    Этот запрос, по сути, объединяет два предыдущих: т.е. определяются кортежи, соответствующие поставляемой детали Р1, и из этих кортежей удаляются те, которые соответствуют поставке других деталей:

    {1(814) | Зи(8)Зу(8Р)(8(и) л 8Р(у) л и = у л у[Р#] =

    = ‘РГ л и = Ц8Г^] л -.3у(8Р)(8Р(у) л у =

    И л у[Р#] Ф ‘РГ))}.

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

    {1(8#) | Уш(Р)Зи(8Р)(Р(ш) д 8Р(у) д у[Р#| = у[Р#] д П8#] = у18#])}.

    Теперь добавим в этот запрос конструкции, необходимые для получения имени поставщика из отношения 8:

    {1(814) | Зи(8)/у(Р)Зи(8Р)(8(и) л Р(у) л 8Р(у) л w =

    У[Р#] л и = у л t = u)}.

    Реляционное исчисление с переменными на доменах

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

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

    I. Атомы имеют следующий вид:

    • а) г(х, х 2 ,..., х), где г - отношение, удовлетворяющее схеме R(A p А 2 ,..., А), и каждое х. есть константа или переменная на домене;
    • б) и 0 v, где и и v - константы или переменные, определенные на доменах, совместимых по операции 0,0 - арифметическая операция сравнения (, >, Ф,

    И. Формула реляционного исчисления j/(t), а также свободные и связанные вхождения переменных определяются так же, как и для исчисления с переменными-кортежами.

    Эквивалентность выражений реляционного исчисления с переменными-кортежами и исчисления с переменными на доменах

    Выражение исчисления с переменными на доменах, эквивалентное выражению исчисления с переменными-кортежами {t | i|/(t)}, конструируется в соответствии со следующими правилами.

    Пусть есть переменная-кортеж t(R), где R = (А р А 2 , ..., А п) имеет арность п. Тогда вместо переменной-кортежа t вводятся п новых переменных на доменах t, t 2 ,..., t , и заданное выражение исчисления с переменными-кортежами заменяется выражением {t, t 2 , ..., t |

    • любой атом r(t) заменяется атомом r(t p t 2 ,..., t);
    • каждое свободное вхождение t заменено переменной t,;
    • для каждого квантора Зи или Vu вводится ш новых переменных и, и 2 , ..., и, где m - арность и. Кванторы Зи (или V(u)) заменяются кванторами Зи, Зи 2 ... 3u m (Vu, Vu 2 ... Vu m , соответственно), и в подчиненных кванторам выражениях и[А,] заменяются и, a r(u) - r(Up u 2 ,..., u m).

    Теорема. Для каждого безопасного выражения с переменными-кортежами существует эквивалентное безопасное выражение с переменными на доменах.

    Пример. Даны отношения со схемами:

    S(S#. SNAME, CITY) - поставщик;

    Р(Р#. PNAME, PRICE) - деталь;

    SP(S#. Р#. QTY) - поставка.

    Написать выражение реляционного исчисления, позволяющее получить имена поставщиков, поставляющих деталь с номером Р1:

    а) выражение исчисления с переменными-кортежами:

    {t(SNAME) | 3u(S) 3v(SP) (S(u) л SP(v) л u л u}