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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример.

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

Поле

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

Формат поля

Имя поля

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

Тип

Длина

Точность

Номер детали

Номер детали

*

Числовой

Целое

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

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

Символьный

20

Цвет

Цвет детали

Символьный

20

Вес

Вес детали, г

Числовой

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

3

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

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

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

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

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

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

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

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

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

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

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

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

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

Студент

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

Дисциплина

Семестр

Оценка

Фамилия

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

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

Иванов

101

29-07-64

111

Математика

1

Хорошо

Кузнецов

101

29-07-64

112

Информатика

2

Отлично

Горбунова

202

29-08-15

110

Психология

3

Хорошо

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

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

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

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

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

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

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

СТУДЕНТ

Фамилия

Курс

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

Спорт

Вид

Разряд

Иванов

Савинов

Петров

1

3

1

Бух.учет

ФИК

Статистика

Плавание

Шахматы

Теннис

м.с.

к.м.с.

I

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Город

Фамилия

К11

Москва

Петров

К12

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

Смирнов

К13

Воронеж

Соколов

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

Город

Фамилия

К21

Самара

Петров

K22

Москва

Петров

K23

Тверь

Семенов

R «Клиенты»

Город

Фамилия

К11

Москва

Петров

К12

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

Смирнов

К13

Воронеж

Соколов

К21

Самара

Петров

К23

Тверь

Семенов

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

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

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

RP «Клиент»

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

R –клиент

Город

Фамилия

Москва

Петров

К11 (К22)

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

RV = R1 – R2 = {К11, К12, К13} – {К21, К22, К23} = {К12, К13}

RV «Клиент»

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

Город

Фамилия

К12

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

Смирнов

К13

Воронеж

Соколов

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

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

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

R1 «Студент»

;

Номер

Фамилия

К11

11

Иванов

К12

12

Петров

К13

13

Сидоров

R2 «Предмет»

КОД

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

К21

П1

Математика

К22

П2

Информатика

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

Номер

Фамилия

Код

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

Оценка

К11

К21

11

Иванов

П1

Математика

К11

К22

12

Петров

П1

Математика

К12

К21

13

Сидоров

П1

Математика

К12

К22

11

Иванов

П2

Информатика

К13

К21

12

Петров

П2

Информатика

K13

К22

13

Сидоров

П2

Информатика

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

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

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

Фамилия

Предмет

Оценка

Предмет

Оценка

Фамилия

Антонов

Информатика

5

:

Информатика

5

=

Антонов

Антонов

Экономика

5

Экономика

4

Павлов

Павлов

Информатика

5

Павлов

Павлов

Экономика

4

Селезнев

Информатика

4

Селезнев

Экономика

5

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

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

R «Служащий»

Служащий

Номер отдела

Должность

Иванов

01

инженер

Петров

02

инженер

Нестеров

01

инженер

Никитин

02

лаборант

Отношение RPR

Номер отдела

Должность

01

инженер

02

инженер

02

лаборант

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

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

R1 «Группы» R2 «Студенты»

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

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

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

Фамилия

Курс

Математика

1

1

Давыдов

1

Физика

4

2

Холодная

1

Бух.учет

5

3

Некрасов

2

4

Пушкин

1

5

Невзоров

3

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

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

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

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

Фамилия

Курс

Математика

1

Давыдов

1

Физика

4

Пушкин

1

Бух.учет

5

Невзоров

3

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

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

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

Фамилия

Возраст

Фамилия

Возраст

Панфилов

40

Панфилов

40

Королев

20

Ломов

35

Михайлов

25

Ломов

35

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

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

PAGE 5

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