→ Реляционные базы данных. Основные понятия, свойства отношений, модель данных, реляционные операции и вычисления. Базовые понятия реляционных баз данных. Основные понятия реляционной модели данных

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Отношение

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

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

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

Сущность

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

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

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

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

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

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

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

Тип данных

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

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

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

В 1970 году появились работы, в которых обсуждались возможности применения различных табличных моделей данных. Наиболее значительной из них была статья сотрудника фирмы IBM д-ра Э. Кодда (Codd E.F., A Relational Model of Data for Large Shared Data Banks (Реляционная модель данных для больших совместно используемых банков данных). CACM 13: 6, June 1970), где впервые был применен термин "реляционная модель данных" . Проект System R был разработан в исследовательской лаборатории корпорации IBM. Этот проект был задуман с целью доказать практичность реляционной модели. Реляционные СУБД относятся к СУБД второго поколения.

Цели создания реляционной модели данных:

1. Обеспечение более высокой степени независимости от данных.

2. Создание прочного фундамента для решения проблем непротиворечивости и избыточности данных.

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

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

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

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

- реляционная БД - набор нормализованных отношений;

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

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

- универсум - совокупность значений всех полей или совокупность доменов;


- кортеж - запись, строка таблицы;

- кардинальность - количество строк в таблице;

- атрибуты - поименованныеполя, столбцы таблицы;

- степень отношения - количество полей (столбцов);

- схема отношения - упорядоченный список имен атрибутов;

- схема реляционной БД - совокупность схем отношений;

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

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

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

Соотношение этих понятий иллюстрируется на рис. 4.5.

ФИО Год рожд. Должность Кафедра
1. Иванов И. И. Зав. каф. 22
2. Сидоров С. С. Проф. 22
3. Андреева Г. Г. Проф. 22
4. Цветкова С. С. Доцент
5. Козлов К. К. Доцент 22
6. Петров П. П. Ст. преп. 22
Атрибуты

рис. 4.5. Основные понятия реляционной модели данных.

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

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

Внешние ключи реализуют связи между таблицами БД.

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

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

Каждая реляционная таблица обладает следующими свойствами :

Имеет имя, которое отличается от имен всех других таблиц;

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

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

Каждый столбец имеет уникальное имя;

Одинаковые строки в таблице отсутствуют;

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

Поддержка языков базы данных

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

В первых базах данных существовало 2 языка:

1. Язык определœения схемы базы SDL.

2. язык манипулирования данных DML.

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

На сегодняшний день наиболее распространённым языком является

S tructured

L anguage

Этот язык и поддерживает, и создаёт схему базы данных и позволяет этими данными манипулировать. Он содержит всœе необходимые средства для обеспечения целостности базы данных. Эти ограничения целостности содержатся в специальных каталогах, что позволяет на языковом уровне контролировать целостное состояние базы данных. Специальные операторы языка SQL определяют так называемые представления базы данных. Представление - ϶ᴛᴏ запросы, которые хранятся в базе. Для пользователя представление - ϶ᴛᴏ таблица с помощью, которой можно ограничить или расширить видимость базы данных для конкретного пользователя данных. Язык SQL содержит так специальные операнды, которые обеспечивают авторизацию доступа к объектам базы данных. Поскольку разные пользователи имеют разные полномочия для работы с данными, то эти полномочия описываются в специальных таблицах – каталогах, которые поддерживаются на языковом уровне.

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

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

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

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

Схема отношения - ϶ᴛᴏ поименованное множество пар элементов. А в

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

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

Раздел 3. «Базы данных»

1. Информационное обеспечение автоматизированных систем.

Информационное обеспече’ние автоматизированной системы (АС) - совокупность форм документов, классификаторов, нормативной базы и реализованных решений по объемам, размещению и формам существования информации, применяемой в АС при ее функционировании

По ГОСТ 24.205-80 описание информационного обеспечения АСУ должно состоять из следующих разделов:

принципы организации информационного обеспечения;

организация сбора и передачи информации;

построение системы классификации и кодирования;

организация внутримашинной информационной базы;

организация внемашинной информационной базы.

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

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

Информационное обеспечение автоматизированной системы – это совокупность форм документов, классификаторов, нормативной базы и реализованных решений по объемам, размещению и формам существования информации, применяемой в автоматизированной системе при ее функционировании (ГОСТ 34.003-90 ("Автоматизированные системы. Термины и определения")).

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



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

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

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

ИО автоматизированных информационных систем состоит из внемашинного и внутри машинного ИО .

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

Внутримашинное ИО содержит массивы данных на машинных носителях и программу организации доступа к этим данным.

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

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

2. СУБД и приложения баз данных.

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

Современная СУБД состоит из:

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

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

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

Основными функциями СУБД являются

Управление данными, хранящимися во внешней памяти;

Управление данными, загруженными в оперативную память с использованием дискового кэша; Журнализация событий и изменений, резервное копирование и восстановление БД после сбоев;

Поддержка языков обращения с БД (язык определения данных, язык манипулирования данными);

Классификации СУБД

Существует несколько признаков, по которым можно классифицировать СУБД.

СУБД по модели данных бывают:

Иерархические СУБД, Сетевые СУБД, Реляционные СУБД, Объектно-ориентированные СУБД, Объектно-реляционные СУБД. В настоящее время в серьезных проекта используются 2 последних типа. СУБД по степени распределённости. Локальные (СУБД размещается только на одном компьютере) Распределённые (части СУБД могут размещаться на 2-х и более компьютерах).

Приложений баз данных

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

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

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

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

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

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

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

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

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

3. Современная концепция реляционных БД.

Основные концепции реляционных баз данных

Прежде чем подробно рассматривать каждый из этих шагов, остановимся на основных концепциях реляционных баз данных. В реляционной теории одним из главных является понятие отношения. Математически отношение определяется следующим образом. Пусть даны n множеств D1,D2,...,Dn. Тогда R есть отношение над этими множествами, если R есть множество упорядоченных наборов вида , где d1 - элемент из D1, d2 - элемент из D2, ..., dn - элемент из Dn. При этом наборы вида называются кортежами, а множества D1,D2,...,Dn - доменами. Каждый кортеж состоит из элементов, выбираемых из своих доменов. Эти элементы называются атрибутами, а их значения - значениями атрибутов, рис.9-а представляет нам графическое изображение отношения с разных точек зрения.

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

отношение, таблица

кортеж, строка, запись

атрибут, столбец, поле.

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

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

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

Для поддержания ссылочной целостности данных во многих СУБД имеется механизм так называемых внешних ключей. Смысл этого механизма состоит в том, что некоему атрибуту (или группе атрибутов) одного отношения назначается ссылка на первичный ключ другого отношения; тем самым закрепляются связи подчиненности между этими отношениями. При этом отношение, на первичный ключ которого ссылается внешний ключ другого отношения, называется master-отношением, или главным отношением; а отношение, от которого исходит ссылка, называется detail-отношением, или подчиненным отношением. После назначения такой ссылки СУБД имеет возможность автоматически отслеживать вопросы “ненарушения“ связей между отношениями, а именно:

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

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

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

ДОПОЛНЕНИЕ

Базовые понятия реляционных баз данных

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

Тип данных

Понятие тип данных в реляционной модели данных полностью адекватно понятию типа данных в языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых данных (таких как "деньги"), а также специальных "темпоральных" данных (дата, время, временной интервал). Достаточно активно развивается подход к расширению возможностей реляционных систем абстрактными типами данных (соответствующими возможностями обладают, например, системы семейства Ingres/Postgres). В нашем примере мы имеем дело с данными трех типов: строки символов, целые числа и "деньги".

Домен

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

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

Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов "Номера пропусков" и "Номера групп" относятся к типу целых чисел, но не являются сравнимыми. Заметим, что в большинстве реляционных СУБД понятие домена не используется, хотя в Oracle V.7 оно уже поддерживается.

Тема 4. Основные понятия реляционных баз данных.

  1. Базы данных и информационные системы.
  2. Системы управления БД.
  3. Реляционная модель данных.
  4. Этапы проектирования реляционных БД.
  5. Нормализация отношений.
  6. Операции над отношениями.

4.1. Базы данных и информационные системы.

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

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

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

Особый тип ИС – экспертные системы, которые имитируют поведение специалиста (эксперта) в какой-либо предметной области. Экспертная система может генерировать новую информацию в этой области – прогнозировать.

По технологии обработки данных БД делятся на централизованные и распределенные. Централизованная БД хранится в памяти одной вычислительной системы. Если эта вычислительная система является компонентом сети ЭВМ, возможен распределенный доступ к такой базе. Такой способ использования БД часто применяется в локальных сетях.

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

По способу доступа к данным БД разделяются на БД с локальным и БД с сетевым (удаленным) доступом. Системы централизованных БД с сетевым доступом предполагают две основные архитектуры: Файл-сервер, Клиент-сервер.

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

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

При проектировании и эксплуатации БД к ней предъявляются следующие требования:

  1. Адекватность отображения предметной области (полнота, целостность, непротиворечивость, актуальность данных).
  2. Возможность взаимодействия пользователей разных категорий; обеспечение высокой эффективности доступа.
  3. Дружественность интерфейса.
  4. Обеспечение секретности и конфиденциальности.
  5. Обеспечение взаимной независимости программ и данных.
  6. Обеспечение надежности БД; защита данных от случайного и преднамеренного разрушения; возможность быстрого и полного восстановления данных в случае сбоев в системе.

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

  1. Анализ предметной области, ее описание, формулировка ограничений целостности.
  2. Проектирование структуры БД: состава и структуры файлов БД, связей между ними.
  3. Задание ограничений целостности при описании структуры БД и процедур обработки данных.
  4. Защита данных: обеспечение порядка входа в систему; определение прав доступа пользователей к данным; выбор и создание программно-технических средств защиты данных; тестирование средств защиты данных; сбор статистики об использовании данных; обеспечение восстановления БД.
  5. Анализ обращений пользователей к БД.
  6. Работа над совершенствованием и динамическим развитием БД.

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

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

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

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

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

4.2. Системы управления БД.

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

К основным функциям СУБД относятся:

  1. Надежное хранение больших объемов данных сложной структуры во внешней памяти вычислительной системы.
  2. Непосредственное управление данными во внешней и оперативной памяти и обеспечение эффективного доступа к ним в процессе решения задачи.
  3. Поддержание целостности данных и управление транзакциями.
  4. Обеспечение восстановления БД после технического или программного сбоя.
  5. Поддержка языка описания данных и языка запросов.
  6. Обеспечение безопасности данных.
  7. Обеспечение параллельного доступа к данным нескольких пользователей.

Требования к СУБД :

  1. Непротиворечивость данных. Она обеспечивается требованием целостности БД. Целостность БД подразумевает систему правил, используемых в СУБД для поддержания полной, непротиворечивой и адекватно отражающей предметную область информации, а также обеспечения защиты от случайного удаления или изменения данных в связанных таблицах. Целостность должна обеспечиваться независимо от того, каким образом данные заносятся в память (в интерактивном режиме, посредством импорта или с помощью специальных программ). С требованием целостности данных связано понятие транзакции. Транзакция – последовательность операций над БД, рассматриваемых как единое целое (то есть все или ничего).
  2. Многоаспектное использование данных. Возможность поступления информации в единую БД из различных источников и возможность ее использования любым пользователем в соответствии с правами доступа и функциями.
  3. Возможность модификации системы – возможность ее расширения и изменения данных, а также дополнение новыми функциями без ущерба для системы в целом.
  4. Надежность и безопасность – целостность БД не должна нарушаться при технических сбоях.
  5. Скорость доступа – обеспечение быстрого доступа к требуемой информации.
  6. Импорт-экспорт данных – возможность обмена данными с другими программными средствами.

4.3. Реляционная модель данных.

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

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

Отношение задается своим именем и списком атрибутов – элементов, связанных этим отношением: <имя отношения>(<список атрибутов>).

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

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

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

Значение атрибута – величина, характеризующая некоторое свойство объекта и связи. Список имен атрибутов отношения и их характеристик называют схемой отношения.

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

Кортеж – один экземпляр отношения.

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

Деталь (< номер детали >, <название детали>, <цвет>, <вес>).

Поставщик (< код поставщика >, <фамилия>, <город>).

Поставка деталей (< код поставщика >, < номер детали >, <количество>).

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

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

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

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

4.4. Этапы проектирования реляционной БД.

Проектирование реляционной БД состоит из трех этапов: концептуального, логического и физического проектирования

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

Пример.

Имя отношения: Деталь

Поле

Признак ключа

Формат поля

Имя поля

Наименование

Тип

Длина

Точность

Номер детали

Номер детали

Числовой

Целое

Название детали

Название детали

Символьный

Цвет

Цвет детали

Символьный

Вес

Вес детали, г

Числовой

С плавающей точкой

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

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

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

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

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

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

4.5. Нормализация отношений.

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

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

Основателем реляционной модели данных Е. Коддом выделены три нормальные формы отношений. Этот набор в дальнейшем был дополнен нормальной формой Бойса-Кодда, и далее четвертой и пятой нормальными формами.

Первая нормальная форма.

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

Пример: СПИСОК

Студент

Номер зачетной книжки

Дисциплина

Семестр

Оценка

Фамилия

Номер комнаты

Номер телефона

Иванов

29-07-64

Математика

Хорошо

Кузнецов

29-07-64

Информатика

Отлично

Горбунова

29-08-15

Психология

Хорошо

Данное отношение не нормализовано, так как содержит сложный атрибут Студент. Чтобы привести отношение к нормализованному виду, надо от него избавиться. Полученное соотношение СПИСОК (Фамилия, Номер_комнаты, Номер_телефона

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

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

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

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

Первая нормальная форма

Пример: приведенное ниже отношение СТУДЕНТ не нормализовано, поскольку содержит сложный атрибут "Спорт".

СТУДЕНТ

Фамилия

Курс

Специальность

Спорт

Вид

Разряд

Иванов

Савинов

Петров

Бух.учет

ФИК

Статистика

Плавание

Шахматы

Теннис

м.с.

к.м.с.

Чтобы привести это отношение к нормализованному виду, надо избавиться от сложного атрибута "Спорт". Тогда полученное отношение СТУДЕНТ(Фамилия, Вид_спорта, Курс, Специальность, Спорт_разряд) является нормализованным. Ключ в нем является составным, состоящим из атрибутов "Фамилия" и "Вид_спорта".

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

Например, отношение СТУДЕНТ(Номер, Фамилия, Имя, Отчество, Дата, Группа) находится в первой нормальной форме.

Вторая нормальная форма

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

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

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

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

Пример графического изображения функциональных зависимостей реквизитов СТУДЕНТ показан на рис. 19, на котором ключевой реквизит указан *.

Рис. 19. Графическое изображение функциональной зависимости реквизитов

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

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

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

Пример : Отношение СТУДЕНТ(Номер, Фамилия, Имя, Отчество, Дата, Группа) находится в первой и во второй нормальной форме одновременно, так как описательные реквизиты однозначно определены и функционально зависят от ключа Номер. Отношение УСПЕВАЕМОСТЬ(Номер, Фамилия, Имя, Отчество, Дисциплина, оценка) находится в первой нормальной форме и имеет составной ключ Номер+Дисциплина. Это отношение не находится во второй нормальной форме, так как атрибуты Фамилия, Имя, Отчество не находятся в полной функциональной зависимости с составным ключом отношения.

Третья нормальная форма

Понятие третьей нормальной формы основывается на понятии нетранзитивной зависимости.

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

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

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

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

"Расщепление" информационного объекта, содержащего транзитивную зависимость описательных реквизитов, показано на рис. 20. Как видно из рис. 19, исходный информационный объект СТУДЕНТ ГРУППЫ представляется в виде совокупности правильно структурированных информационных объектов (СТУДЕНТ и ГРУППА), реквизитный состав которых тождественен исходному объекту. Отношение СТУДЕНТ (Номер, Фамилия, Имя, Отчество, Дата, Группа) находится одновременно в первой, второй и третьей нормальной форме.

Рис. 20. Пример "расщепления" структуры информационного объекта

Требования нормализации. В один информационный объект реквизиты включаются в соответствии с требованиями третьей нормальной формы реляционной модели. Рассмотрим эти требования применительно к информационному объекту.

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

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

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

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

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

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

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

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

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

Совокупность этих операций образует полную алгебру отношений.

  1. Объединение. Операция выполняется над двумя совместимыми отношениями: R 1 , R 2 . В результате операции объединения строится новое отношение R = R 1 U R 2 . Отношение R имеет тот же состав атрибутов и совокупность кортежей исходных отношений. Причем в эту совокупность не включаются дубликаты.

R 1 «Клиенты банка А»

Город

Фамилия

К11

Москва

Петров

К12

Санкт-Петербург

Смирнов

К13

Воронеж

Соколов

R 2 «Клиенты банка В»

Город

Фамилия

К21

Самара

Петров

Москва

Петров

Тверь

Семенов

R «Клиенты»

Город

Фамилия

К11

Москва

Петров

К12

Санкт-Петербург

Смирнов

К13

Воронеж

Соколов

К21

Самара

Петров

К23

Тверь

Семенов

В новое отношение R не вошел кортеж К22, так как он дублирует кортеж К11. Результат объединения включает все кортежи 1-ого отношения и недостающие кортежи из 2-ого отношения. Отношения R 1 и R 2 – операнды, а отношение R – результат.

  1. Пересечение – R 1 , R 2 . Результирующее отношение RP = R 1 3 R 2 , содержит одинаковые кортежи, которые есть в каждом из двух исходных, т.е. результат пересечения содержит только те кортежи 1-ого отношения, которые есть во 2-ом. Результат пересечения имеет тот же состав атрибутов, как и в исходных.

Действие происходит над теми же операндами. Пересечение двух отношений R 1 «Клиенты банка А» и R 2 «Клиенты банка В» дает одно отношение RP «Клиент», которое будет являться результатом.

RP «Клиент»

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

R – клиент

Город

Фамилия

Москва

Петров

К11 (К22)

  1. Вычитание – операция выполняется над двумя совместимыми отношениями R 1 , R 2 с идентичным набором атрибутов. В результате операции вычитания строится новое отношение RV = R 1 – R 2 с идентичным набором атрибутов, содержащее только те кортежи первого отношения R 1 , которые не повторяются в другом отношении R 2 . Вычитание отношения R 2 «Клиенты банка В» из отношения R 1 «Клиенты банка А», поскольку К11 = К22, дает отношение RV «Клиент»:

RV = R 1 – R 2 = {К11, К12, К13} – {К21, К22, К23} = {К12, К13}

RV «Клиент»

Разность отношений

Город

Фамилия

К12

Санкт-Петербург

Смирнов

К13

Воронеж

Соколов

Отношение RV «Клиент» является результатом разности отношений при выполнении действий над теми же операндами ( R 1 и R 2 ).

  1. Декартово произведение выполняется над двумя отношениями R 1 , R 2 с разными схемами. В результате операции декартова произведения образуется новое отношение RD = R 1 * R 2 , которое включает все атрибуты исходных отношений. Результирующее отношение состоит из всевозможных сочетаний кортежей исходных отношений R 1 , R 2 . Число кортежей декартова произведения равно произведению количеств кортежей в исходных отношениях, т.е. степень результирующего отношения равна сумме степеней отношений-операндов, а мощность - произведению их мощностей.

Пример: Декартово произведение двух отношений R 1 «Студент» и R 2 «Предмет» дает новое отношение RD «Экзаменационная ведомость», которое содержит все атрибуты исходных отношений. Отношения R 1 и R 2 – операнды, а отношение RD – результат.

R 1 «Студент»

Номер

Фамилия

К11

Иванов

К12

Петров

К13

Сидоров

R 2 «Предмет»

КОД

Наименование

К21

Математика

К22

Информатика

RD «Экзаменационная ведомость»

Номер

Фамилия

Код

Наименование

Оценка

К11

К21

Иванов

Математика

К11

К22

Петров

Математика

К12

К21

Сидоров

Математика

К12

К22

Иванов

Информатика

К13

К21

Петров

Информатика

К22

Сидоров

Информатика

Заметим, что в полученное отношение целесообразно добавить атрибут «Оценка» для записи результатов экзамена.

  1. Деление – операция выполняется над двумя отношениями R 1 , R 2 , имеющими в общем случае разные структуры и некоторые одинаковые атрибуты. В результате операции образуется новое отношение, структура которого получается исключением из множества атрибутов отношения R 1 , множества атрибутов отношения R 2 . Отношение-делитель должно содержать подмножество атрибутов отношения-делимого. Результирующее отношение содержит только те атрибуты делимого, которых нет в делителе. В него включают только те кортежи, декартовы произведения которых с делителем содержатся в делимом. Результирующие строки не должны содержать дубликаты.

R 1 «Экз_ведомость» R 2 «Результаты» R «Студенты»

Фамилия

Предмет

Оценка

Предмет

Оценка

Фамилия

Антонов

Информатика

Информатика

Антонов

Антонов

Экономика

Экономика

Павлов

Павлов

Информатика

Павлов

Павлов

Экономика

Селезнев

Информатика

Селезнев

Экономика

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

Ниже приведен пример исходного отношения R «Служащий» и результат проекции ( RPR ) этого отношения на два его атрибута – «должность» и «номер отдела».

R «Служащий»

Служащий

Номер отдела

Должность

Иванов

инженер

Петров

инженер

Нестеров

инженер

Никитин

лаборант

Отношение RPR

Номер отдела

Должность

инженер

инженер

лаборант

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

В качестве примера осуществим соединение над отношением R 1 «Группы» и R 2 «Студенты», которые будут являться операндами.

R 1 «Группы» R 2 «Студенты»

Специальность

Код_студента

Код_студента

Фамилия

Курс

Математика

Давыдов

Физика

Холодная

Бух.учет

Некрасов

Пушкин

Невзоров

В качестве атрибута для соединения можно выбрать ключ "Код_студента". Результирующее отношение включает все атрибуты 1-ого и 2-ого отношений и кортежи с одинаковым значением ключа. Результатом будет являться отношение R «Старосты групп».

R «Старосты групп»

Специальность

Код_студента

Фамилия

Курс

Математика

Давыдов

Физика

Пушкин

Бух.учет

Невзоров

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

Пример: Из отношения R «Клиент» осуществить выборку кортежей по условию «Возраст > 30 лет».

R «Клиент» Результат

Фамилия

Возраст

Фамилия

Возраст

Панфилов

Панфилов

Королев

Ломов

Михайлов

Ломов

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

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

 

 

Это интересно: