Вы находитесь на странице: 1из 39

Лекція

«Реляційна модель даних»

1. Правила визначення належності СУБД до класу


реляційних систем.
2. Основні визначення.
3. Реляційні мови.

Кафедра безпеки інформаційних систем і технологій


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

 Обеспечение более высокой степени независимости от


данных. Прикладные программы не должны зависеть от изменений
внутреннего представления данных, в частности от изменений
организации файлов, переупорядочивания записей и путей доступа.
 Создание прочного фундамента для решения семантических
вопросов, а также проблем непротиворечивости и
избыточности данных.
 Расширение языков управления данными за счет включения
операций над множествами.
Правила определения принадлежности СУБД к классу
реляционных систем
Пять функциональных групп правил:
1. Фундаментальные правила.
2. Структурные правила.
3. Правила целостности.
4. Правила манипулирования данными.
5. Правила независимости от данных.

Фундаментальные правила (правило 0 и правило 12)


Правило 0  фундаментальное правило. Любая система, которая декларируется или
представляется как реляционная СУБД, должна быть способна управлять базами
данных исключительно с помощью реляционных функций.
Правило 12  правило запрета обходных путей. Если реляционная система имеет
низкоуровневый язык (с одновременной обработкой отдельных записей), он не может
быть использован для отмены или обхода правил и ограничений целостности,
составленных на реляционном языке более высокого уровня (с одновременной
обработкой сразу нескольких записей).
Правила определения принадлежности СУБД к классу
реляционных систем
Структурные правила (правила 1 и 6)
Фундаментальным структурным понятием реляционной модели является отношение.
Правило 1  представление информации. Вся информация в реляционной
базе данных представляется в явном виде на логическом уровне и только
одним способом  в виде значений в таблицах.
Правило 6  обновление представления. Все представления, которые
являются теоретически обновляемыми, должны быть обновляемыми и в
данной системе.
Правила целостности (правила 3 и 10)
Чем больше ограничений целостности может поддерживаться самой СУБД, а не
отдельными ее приложениями, тем выше гарантия качества данных.
Правило 3  систематическая обработка неопределенных значений (NULL).
Неопределенные значения поддерживаются как способ систематического
представления отсутствующей или неприемлемой информации, причем
независимо от типа данных.
Правило 10  независимость ограничений целостности. Специфические
для данной реляционной СУБД ограничения целостности должны
определяться на подъязыке реляционных данных и храниться в системном
каталоге, а не в прикладных программах.
Правила определения принадлежности СУБД к классу
реляционных систем
Правила манипулирования данными (правила 2, 4, 5 и 7)
Правило 2  гарантированный доступ. Для всех и каждого элемента данных
(элементарного значения) реляционной базы данных должен быть гарантирован
логический доступ на основе использования комбинации имени таблицы, значения
первичного ключа и значения имени, столбца.
Правило 4  динамический оперативный каталог, построенный по правилам
реляционной модели. Описание базы данных должно быть представлено на логическом
уровне таким же образом, как и обычные данные, что позволяет санкционированным
пользователям применять для обращений к этому описанию тот же реляционный язык,
что и при обращении к обычным данным.
Правило 5  исчерпывающий подъязык данных. Реляционная система может
поддерживать несколько языков и различные режимы работы с терминалами (например,
режим заполнения формы). Однако должен существовать, по крайней мере, один язык,
операторы которого позволяли бы выражать все следующие конструкции:
определение данных;
определение представлений;
операторы манипулирования данными (доступные как в интерактивном режиме, так и
с помощью программ);
ограничения целостности;
авторизацию пользователей;
поэтапную организацию транзакций (запуск, фиксация и откат).
Правило 7  высокоуровневые операции вставки, обновления и удаления. Способность
обрабатывать базовые или производные отношения как единый операнд должна
относиться не только к процедурам выборки данных, но и к операциям вставки,
обновления и удаления данных.
Правила определения принадлежности СУБД к классу
реляционных систем
Правила независимости от данных (правила 8, 9 и 11)
Правило 8  физическая независимость от данных. Прикладные программы и
средства работы с терминалами должны оставаться логически неизменными при
внесении любых изменений в способы хранения данных или методы доступа к ним.
Правило 9  логическая независимость от данных. Прикладные программы и
средства работы с терминалами должны оставаться логически неизменными при
внесении в базовые таблицы любых не меняющих информацию изменений, которые
теоретически не должны затрагивать прикладное программное обеспечение.
Правило 11  независимость от распределения данных. Подъязык манипулирования
данными в реляционной СУБД должен позволять прикладным программам и запросам
оставаться логически неизменными, независимо от того, как хранятся данные 
физически централизованно или в распределенном виде.
Основные определения
Реляционная модель основана на математическом понятии отношения, представлением
которого является таблица.

Математические отношения
Декартовым произведением двух множеств D1 и D2 (обозначается как
D1D2) называется набор из всех возможных упорядоченных пар, в которых
первым идет элемент множества D1, а вторым  элемент множества D2.
Пример: пусть D1={2,4} и D2={1,3,5}, тогда D1D2={(2,1), (2,3), (2,5), (4,1), (4,3), (4,5)}.
Любое подмножество этого декартова произведения является отношением.
Например, в нем можно выделить отношение R: R={(2,1), (4,1)}.
Для определения тех возможных пар, которые будут входить в отношение, можно
задать некоторые условия их выборки.
Например, если отношение R содержит все возможные пары, в которых второй
элемент равен 1, то определение отношения R можно сформулировать следующим
образом: R={(х, у)|xD1 & yD2 & y=1}.
Отношение S, в котором первый элемент всегда должен быть в два раза больше
второго. можно сформулировать так:
S={(х, у)|xD1 & yD2 & х=2у}.
В этом примере заданному условию соответствует только одна возможная пара
данного декартова произведения: S={(2,1)}
Основные определения
Математические отношения
Понятие отношения можно легко распространить и на три множества.
Пусть имеются три множества  D1, D2 и D3.
Декартово произведение D1D2D3 этих трех множеств является набором,
состоящим из всех возможных упорядоченных троек элементов, в
которых первым идет элемент множества D1, вторым  элемент
множества D2, а третьим  элемент множества D3.
Любое подмножество этого декартова произведения является отношением.
Увеличивая количество множеств, можно дать обобщенное определение
отношения на п множествах (доменах – наборах допустимых значений).
Пусть имеется n множеств D1, D2, ..., Dn.
Декартово произведение для этих n множеств можно определить
следующим образом:
D1D2…Dn={(d1, d2, …, dn )| d1D1 & d2D2 &…& dnDn}.
Любое множество n-арных кортежей этого декартова произведения
является отношением n множеств (или элементов этих множеств).
Основные определения

Отношение обладает следующими характеристиками (свойствами):


 отношение имеет имя, которое отличается от имен всех других
отношений в реляционной схеме;
 каждая ячейка отношения содержит только одно элементарное
(неделимое) значение;
 каждый атрибут имеет уникальное имя;
 значения атрибута берутся из одного и того же домена;
 каждый кортеж является уникальным, то есть дубликатов кортежей быть
не может;
 порядок следования атрибутов не имеет значения;
 теоретически порядок следования кортежей в отношении не имеет
значения (но практически этот порядок может существенно повлиять на
эффективность доступа к ним).
Основные определения
Большая часть свойств отношений реляционной модели происходит от свойств
математических отношений (выделяются курсивом и цветом).
 При вычислении декартова произведения множеств с простыми однозначными
элементами (например, целочисленными значениями) каждый элемент в каждом
кортеже имеет единственное значение. Аналогично, каждая ячейка отношения
содержит только одно значение. Однако математическое отношение не нуждается в
нормализации. Кодд предложил запретить применение повторяющихся групп с целью
упрощения реляционной модели данных.
 Набор возможных значений для данной позиции отношения определяется
множеством, или доменом, на котором определяется эта позиция. В таблице все
значения в каждом столбце должны происходить от одного и того же домена, определенного
для данного атрибута.
 Во множестве нет повторяющихся элементов. Аналогично, отношение не может
содержать кортежей-дубликатов.
 Поскольку отношение является множеством, то порядок элементов не имеет
значения. Следовательно, порядок кортежей в отношении несуществен. Однако в
математическом отношении порядок следования элементов в кортеже имеет
значение.
Например, допустимая упорядоченная пара значений (1, 2) совершенно отлична от
упорядоченной пары (2, 1). Это утверждение неверно для отношений в реляционной модели,
где специально оговаривается, что порядок атрибутов несуществен.
В виду того, что заголовки столбцов однозначно определяют, к какому именно атрибуту
относится данное значение. Следствием этого факта является положение о том, что порядок
следования заголовков столбцов в заголовке отношения несуществен. Однако, если структура
отношения уже определена, то порядок элементов в кортежах тела отношения должен
соответствовать порядку имен атрибутов.
Основные определения
Отношение – это плоская таблица, состоящая из столбцов и строк.
Отношение содержит две части: заголовок и тело (заголовок – это строка
заголовков столбцов, тело – это множество строк данных).
Атрибут – это поименованный столбец отношения.
Домен – это набор допустимых значений одного или нескольких
атрибутов.
Кортеж – это строка отношения.
Степень – количество атрибутов, которое содержит отношение.
Кардинальность – это количество кортежей, которое содержится в
отношении.
Заголовок (или схема отношения) содержит фиксированное множество
атрибутов или, точнее, пар <имя-атрибута : имя-домена>:
{<A1:D1>, <A2:D2>, …, <An:Dn>},
где каждый атрибут AjDj (j =1, 2, …, n); все имена атрибутов A1, A2, …, An разные.
Основные определения

Схема базы данных: 1) (согласно ISO/IEC TR 10032:2003 Information technology -- Reference


– описание содержания, структуры и ограничений,
Model of Data Management)
используемых для создания и поддержки БД; 2) формальное описание
данных в соответствии с конкретной схемой данных (согласно
Межгосударственному стандарту «Информационные технологии. Система стандартов по базам
данных. Концепции и терминология для концептуальной схемы и информационной базы»: ГОСТ
34.320-96. – [Действующий с 2001-07-01]. – Минск : Межгосударственный стандарт по
стандартизации, метрологии и сертификации, 2001. – 46 с.).
Схема данных: 1) логическое представление организации данных (согласно
Межгосударственному стандарту «Информационные технологии. Система стандартов по базам
данных. Концепции и терминология для концептуальной схемы и информационной базы»: ГОСТ
34.320-96. – [Действующий с 2001-07-01]. – Минск : Межгосударственный стандарт по
стандартизации, метрологии и сертификации, 2001. – 46 с.); 2) описание структуры
данных, специфицированное на языке описания данных и обрабатываемое
СУБД.
Реляционная база данных  набор нормализованных отношений, которые
различаются по именам, то есть реляционная база данных состоит из
отношений, структура которых определяется с помощью особых методов,
называемых нормализацией.
Основные определения

Альтернативные варианты терминов в реляционной модели


Реляционный термин Вариант 1 Вариант 2
Отношение Таблица Файл
Кортеж Строка Запись
Атрибут Столбец Поле
Кардинальность Количество строк
Степень Количество столбцов
Первичный ключ Уникальный идентификатор
Домен Совокупность допустимых значений
Основные определения
Реляционные ключи
В отношении не должно быть повторяющихся кортежей.
Поэтому необходимо иметь возможность уникальной идентификации каждого
отдельного кортежа отношения по значениям одного или нескольких
атрибутов, называемых реляционными ключами.

Суперключ (superkey) – это атрибут или множество атрибутов, который (которые)


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

Атрибут Имя домена Содержимое домена Определение домена


branchNo BranchNumbers Множество всех допустимых Символьный: размер 4,
номеров отделений компании диапазон 'B001'-'B999'
street StreetNames Множество всех названий улиц Символьный: размер 40
в Украине
city cityNames Множество всех названий Символьный: размер 32
городов в Украине
postcode Postcodes Множество всех почтовых Символьный: размер 5
индексов в Украине
sex Sex Обозначение пола человека Символьный: размер 1,
значение 'М' или 'Ж'
DOB DatesOf Birth Все возможные значения даты Дата: диапазон от l-Jan-
рождения работника компании 1900, формат dd-mon-yyyy
salary Salaries Все возможные значения Денежный: 7 цифр,
годовой заработной платы диапазон 6000.00-40000.00
работника компании
Основные определения
Базовое отношение  это именованное отношение, соответствующее
сущности в концептуальной схеме, кортежи которого физически
хранятся в базе данных.
Представление  это динамический результат, одной или нескольких
реляционных операций над базовыми отношениями с целью создания
некоторого иного отношения.
Представление является виртуальным отношением, которое реально в
базе данных не существует, но создается по требованию отдельного
пользователя в момент поступления этого требования.
Основные определения
Ограничения целостности
 Целостность сущностей заключается в том, что в базовом отношении
ни один атрибут первичного ключа не может содержать отсутствующих
значений, обозначаемых как NULL. Неопределенное («пустое») значение
(NULL) указывает, что значение атрибута в настоящий момент неизвестно или
неприемлемо для этого кортежа.
 Ссылочная целостность заключается в том, что если в отношении
существует внешний ключ, то значение внешнего ключа должно либо
соответствовать значению потенциального ключа некоторого кортежа в
его базовом отношении, либо внешний ключ должен полностью
состоять из значений NULL.
 Обязательные данные (not null).
 Ограничения доменов.
 Корпоративные ограничения целостности  это дополнительные
правила поддержки целостности данных, определяемые
пользователями или администраторами базы данных.
Реляционные языки
Реляционная алгебра  это теоретический язык операций, позволяющих создавать
на основе одного или нескольких отношений другое отношение без изменения самих
исходных отношений.
Первоначально Коддом были предложены восемь операций (впоследствии к ним были
добавлены некоторые другие).
Пять основных операций реляционной алгебры: выборка (selection), проекция
(projection), декартово произведение (cartesian product), объединение (union) и
разность множеств (set difference), выполняют большинство действий по
извлечению данных.
На основании пяти основных операций можно вывести дополнительные операции,
такие как операции соединения (join), пересечения (intersection) и деления (division).
Операции разделяют на две группы:
теоретико-множественные:
 объединение;
 пересечение;
 вычитание;
 декартово произведение;
специальные реляционные:
 выборка;
 проекция;
 соединение;
 деление.
Реляционные языки
Схематическое представление результатов операций реляционной алгебры
Реляционные языки
Выборка  возвращает отношение, содержащее все кортежи из заданного отношения,
которые удовлетворяют указанным условиям. Операцию выборки также иногда
называют операцией ограничения.
Проекция  возвращает отношение, содержащее все кортежи (подкортежи) заданного
отношения, которые остались в этом отношении после исключения из него некоторых
атрибутов.
Декартово произведение  возвращает отношение, содержащее все возможные
кортежи, которые являются сочетанием двух кортежей, принадлежащих
соответственно двум заданным отношениям.
Объединение  возвращает отношение, содержащее все кортежи, которые
принадлежат либо одному из двух заданных отношений, либо им обоим.
Пересечение  возвращает отношение, содержащее все кортежи, которые принадлежат
одновременно двум заданным отношениям.
Разность  возвращает отношение, содержащее все кортежи, которые принадлежат
первому из двух заданных отношений и не принадлежат второму.
Соединение  возвращает отношение, содержащее все возможные кортежи, которые
представляют собой комбинацию атрибутов двух кортежей, принадлежащих двум
заданным отношениям, при условии, что в этих двух комбинируемых кортежах
присутствуют одинаковые значения в одном или нескольких общих для исходных
отношений атрибутах (причем эти общие значения в результирующем кортеже
появляются один раз, а не дважды).
Деление для заданных двух отношений – унарного и бинарного, возвращает унарное
отношение, содержащее те кортежи (подкортежи) первого атрибута бинарного
отношения, для которых кортежи (подкортежи) второго атрибута (при фиксированном
значении первого атрибута) соответствуют всем кортежам в унарном отношении.
Реляционные языки
Не все операции являются независимыми, то есть некоторые из них могут быть
выражены через другие.
Некоторые реляционные операторы (например, объединение) требуют, чтобы
отношения имели одинаковые заголовки (отношения состоят из заголовка и тела).
Операция объединения двух отношений есть просто объединение двух множеств
кортежей, взятых из тел соответствующих отношений.
Но будет ли результат отношением?
Во-первых, если исходные отношения имеют разное количество атрибутов, то,
очевидно, что множество, являющееся объединением таких разнотипных кортежей
нельзя представить в виде отношения.
Во-вторых, даже если отношения имеют одинаковое количество атрибутов, но
атрибуты имеют различные наименования. Как тогда определить заголовок
отношения, полученного в результате объединения множеств кортежей?
В-третьих, если отношения имеют одинаковое количество атрибутов, атрибуты
имеют одинаковые наименования, но определенны на различных доменах. Тогда
снова объединение кортежей не будет образовывать отношение.
Отношения называются совместимыми по типу, если они имеют идентичные
заголовки, а именно:
 отношения имеют одно и то же множество имен атрибутов, то есть для
любого атрибута в одном отношении найдется атрибут с таким же
наименованием в другом отношении;
 атрибуты с одинаковыми именами определены на одних и тех же доменах.
Реляционные языки
Выборка (или ограничение)
предикат(R).
Операция выборки применяется к одному отношению R и определяет
результирующее отношение, которое содержит только те кортежи (строки)
из отношения R, которые удовлетворяют заданному условию (предикату).
Пример. Составьте список всех сотрудников с зарплатой, превышающей
2500 гривен: salary>2500 (Персонал).
Исходным отношением является отношение Персонал, а предикатом 
выражение salary>2500.

Результат выполнения операции выборки


staffNo fName lName position sex DOB salary branchNo
SKh1 Иван Перов руководитель м 10.03.1980 2900 B001
SS1 Петр Сидоренко руководитель м 17.10.1965 2800 B003
SK1 Вера Овчаренко руководитель ж 19.03.1979 3000 B005
SK3 Семен Соколов руководитель м 12.08.1981 3000 B007
Реляционные языки
Проекция
П атр.1,...,атр.n( R)
Операция проекция применяется к одному отношению R и определяет новое
отношение, содержащее вертикальное подмножество отношения R,
создаваемое посредством извлечения значений указанных атрибутов и
исключения из результата строк-дубликатов.
Пример. Создайте ведомость зарплаты всех сотрудников компании с указанием
только атрибутов staffNo, fName, lName, salary.
П staffNo, fName, lName, salary( Персонал)
Результат выполнения операции проекции из отношения

staffNo fName lName salary


SKh1 Иван Перов 2900
SK2 Сергей Чижов 2200
SS1 Петр Сидоренко 2800
SKh2 Анна Петренко 1750
SKh3 Ольга Петренко 1750
SK1 Вера Овчаренко 3000
SK3 Семен Соколов 3000
Реляционные языки
Объединение
RS. Объединение двух отношений R и S определяет новое отношение, которое
включает все кортежи, содержащиеся только в R, только в S, одновременно в R и S,
причем все дубликаты кортежей исключены. При этом отношения R и S должны быть
совместимыми по типу (по объединению). (C  R S  {c | c  R  c  S })
Пример. Создайте список всех городов, в которых имеется отделение компании или объект
недвижимости.
Пcity(Отделение)Пcity(Объекты_Недвижимости).
Отношение Объекты_Недвижимости
propertyNo street city postcode type rooms rent ownerNo
PG4 пр.Ленина, 9, кв.11 Харьков 65058 квартира 2 330 С040
PG16 ул.Есенина, 3, кв.7 Харьков 65122 квартира 3 400 С093
PG36 ул.23 Августа, 3, кв.27 Харьков 65117 квартира 2 300 С093
CA15 ул.Спортивная, 3 Киев 01018 дом 4 1200 С101
CA09 ул.Труда, 17, кв.15 Киев 01014 квартира 4 380 С314
PG80 ул.Правды, 43, кв.7 Чугуев 65210 квартира 3 100 С079
КA34 ул.Каштановая, 5 Ялта 69011 дом 5 2100 С452
CA19 ул.Зерновая, 7 Киев 01011 дом 7 3000 С453

Результат выполнения операции объединения отношений (исключая дублирование)


city
Харьков
Севастополь
Киев
Чугуев
Ялта
Реляционные языки
Разность
R-S. Разность двух отношений R и S состоит из кортежей, которые имеются в
отношении R, но отсутствуют в отношении S. Причем отношения R и S должны быть
совместимыми по типу. ( C  R \ S  R  S  {c | c  R  c  S })
Пример. Создайте список всех городов, в которых есть отделение компании, но нет объектов
недвижимости, сдаваемых в аренду.
Пcity(Отделение)-Пcity(Объекты_Недвижимости).
Результат выполнения операции разности между отношениями
City
Севастополь
Пересечение
RS. Операция пересечения определяет отношение, которое содержит кортежи,
присутствующие как в отношении R, так и в отношении S. Отношения R и S должны
быть совместимыми по типу. ( C  R S  {c | c  R  c  S } )
Пример. Создайте список всех городов, в которых есть отделение компании, а также, по
меньшей мере, один объект недвижимости, сдаваемый в аренду.
Пcity(Отделение)Пcity(Объекты_Недвижимости).
Результат выполнения операции пересечения отношений
city
Харьков
Киев
Реляционные языки
Декартово произведение
RS. Операция декартова произведения определяет новое отношение, которое
является результатом конкатенации (то есть сцепления) каждого кортежа из
отношения R с каждым кортежем из отношения S. ( R  S  {r , s | r  R  s  S} )

Если одно отношение имеет i кортежей и N атрибутов, а другое  j кортежей и М


атрибутов, то их декартово произведение будет содержать (ij) кортежей и (N+М)
атрибутов

Пример. Пусть даны два отношения R и S с информацией о поставщиках и


продукции.
Поставщики продукции Продукция
Номер поставщика Поставщик Номер детали Наименование детали
1 ЧП Иванов 1 Болт
2 ООО Марс 2 Гайка
3 ПО Зоря 3 Винт
Реляционные языки

Результат декартова произведения


Номер поставщика Поставщик Номер детали Наименование детали
1 ЧП Иванов 1 Болт
1 ЧП Иванов 2 Гайка
1 ЧП Иванов 3 Винт
2 ООО Марс 1 Болт
2 ООО Марс 2 Гайка
2 ООО Марс 3 Винт
3 ПО Зоря 1 Болт
3 ПО Зоря 2 Гайка
3 ПО Зоря 3 Винт
Реляционные языки

Операции соединения
Типы операций соединения:
 Тета-соединение (theta join).
 Соединение по эквивалентности (equijoin), которое является
частным видом тета-соединения.
 Естественное соединение (natural join).
 Внешнее соединение (outer join, external join).
 Полусоединение (semi join).
Реляционные языки
Операции соединения
Наиболее важным является естественное (натуральное) соединение, поэтому часто
для обозначения именно естественного соединения используют общий термин
«соединение».
Пусть отношения R и S имеют заголовки: {X1,X2,…,Xm,Y1,Y2,…,Yn} и
{Y1,Y2,…,Yn,Z1,Z2,…,Zp} соответственно;
атрибуты Y1, Y2,…, Yn являются общими для двух отношений;
атрибуты X1, X2,…, Xm – остальные атрибуты отношения R;
атрибуты Z1, Z2,…, Zp – остальные атрибуты отношения S.
Предположим также, что соответствующие атрибуты (с одинаковыми именами)
определены на одном и том же домене. Выражения {X1,X2,…,Xm}, {Y1,Y2,…,Yn},
{Z1,Z2,…,Zp} будем рассматривать как три составных атрибута X, Y, Z соответственно.
Тогда естественным соединением отношений R и S называется отношение с
заголовком {X,Y,Z} и телом, содержащим множество всех кортежей
{(x,y,z)|xX&(XR)&yY&(YR&YS)&zZ&(ZS)}, таких, для которых в отношении R
значение атрибута X равно x, а значение атрибута Y равно y, и в отношении S значение
атрибута Y равно y, а значение атрибута Z равно z.
Естественное соединение обладает свойствами коммутативности R SS R
и ассоциативности R (S V )  (R S) V.
Реляционные языки

Операции соединения
Соединением отношений R и S по условию F называется отношение
(RS) where F,
где F представляет собой логическое выражение, в которое могут
входить атрибуты отношений R и S и (или) скалярные выражения.
Операция тета-соединение (-соединение).
Пусть отношение R содержит атрибут X, отношение S содержит
атрибут Y, а   один из операторов сравнения (=, , <, , >,  и т.д.).
Тогда -соединением отношения R по атрибуту X с отношением S по
атрибуту Y называют отношение:
(RS) where XY.
Реляционные языки
Операции соединения
Соединение по эквивалентности (экви-соединение). Наиболее важным частным
случаем -соединения является случай, когда  есть просто равенство.
Внешнее соединение. При соединении двух отношений часто возникает такая
ситуация, что для кортежа одного отношения не находится соответствующий
кортеж в другом отношении. То есть, в столбцах соединения оказываются
несовпадающие значения.
Иногда может потребоваться, чтобы строка из одного отношения была представлена в
результатах соединения, даже если в другом отношении нет совпадающего значения. Эта цель
может быть достигнута с помощью внешнего соединения.
Левым внешним соединением (отношений R и S) называется соединение, при
котором в результирующее отношение включаются также кортежи отношения R, не
имеющие совпадающих значений в общих столбцах отношения S.
Правое внешнее соединение – в результирующем отношении содержатся все
кортежи правого отношения.
Полное внешнее соединение – в результирующее отношение помещаются все
кортежи из обоих отношений и в котором для обозначения несовпадающих
значений кортежей используются значения NULL.
Полусоединение. Операция полусоединения определяет отношение, содержащее
те кортежи отношения R, которые входят в соединение отношений R и S.
Реляционные языки

Деление
Операция деления может применяться в случае запросов особого
типа, которые довольно часто встречаются в приложениях баз
данных.
Предположим, что отношение R определено на множестве атрибутов А, а
отношение S  на множестве атрибутов В, причем ВА (то есть В является
подмножеством А). Пусть C=А-В, то есть С является множеством атрибутов
отношения R, которые не являются атрибутами отношения S. Тогда
определение операции деления будет выглядеть следующим образом.
RS. Результатом операции деления является набор кортежей
отношения R, определенных на множестве атрибутов C, которые
соответствуют комбинации всех кортежей отношения S.
Реляционные языки
Деление
Замечание. Типичные запросы, реализуемые с помощью операции деления, обычно в своей
формулировке имеют слово "все". Например: "Какие поставщики поставляют все детали?".
Создайте список всех арендаторов, которые осматривали объекты недвижимости с тремя
комнатами. И так далее.
Пример. Пусть необходимо найти всех арендаторов, которые осматривали
объекты недвижимости с тремя комнатами. Имеются отношение Осмотр и
унарное отношение Комнаты_квартиры.

Осмотр Комнаты_квартиры
propertyNo street city type rooms clientNo cName rooms
PG4 пр.Ленина, 9, кв.11 Харьков квартира 2 CR76 Игорь Воронов 1
PG16 ул.Есенина, 3, кв.7 Харьков квартира 3 CR56 Ира Перова 2
PG36 ул.23 Августа, 3, кв.27 Харьков квартира 2 CR56 Ира Перова 3
CA15 ул.Спортивная, 3 Киев дом 4 CR76 Игорь Воронов 4
CA09 ул.Труда, 17, кв.15 Киев квартира 4 CR76 Игорь Воронов 5
PG80 ул.Правды, 43, кв.7 Чугуев квартира 3 CR56 Ира Перова 6
КA34 ул.Каштановая, 5 Ялта дом 5 CR76 Игорь Воронов 7
CA19 ул.Зерновая, 7 Киев дом 7 CR76 Игорь Воронов
Реляционные языки
Деление

Тогда результатом выполнения операции деления


Осмотр rooms=3(Комнаты_квартиры)
будет отношение:
propertyNo street city type clientNo cName
PG16 ул.Есенина, 3, кв.7 Харьков квартира CR56 Ира Перова
PG80 ул.Правды, 43, кв.7 Чугуев квартира CR56 Ира Перова

Для того чтобы решить задачу до конца необходимо над результатом выполнить
операцию проекции, то есть:
ПcName(Осмотр) rooms=3(Комнаты_квартиры)).
Окончательный результат:
cName
Ира Перова
Реляционные языки
Реляционное исчисление
В выражениях реляционной алгебры всегда явно задается некий порядок, а также
подразумевается некая стратегия вычисления запроса.
В реляционном исчислении не существует никакого описания процедуры вычисления
запроса, поскольку в запросе реляционного исчисления указывается, что, а не как
следует извлечь.
В логике первого порядка (теории исчисления предикатов) под предикатом
подразумевается истинностная функция с параметрами (предикат  условие,
сформулированное в терминах точного логико-математического языка).
После подстановки значений вместо параметров функция становится выражением,
называемым суждением (высказыванием), которое может быть истинным или ложным.
Обычно математические суждения записываются в виде текстов на естественном
языке, обогащенном математической символикой.
Если Р  предикат, то множество всех значений переменной х, при которых суждение Р
становится истинным, можно символически записать следующим образом:
{х | Р(х)}.
Предикаты могут соединяться с помощью логических операций (AND), (OR) и
(NOT) с образованием составных предикатов.
Реляционные языки
Реляционное исчисление
Реляционное исчисление кортежей
Выражение в реляционном исчислении кортежей имеет следующую общую форму:
{S1.a1, S2.a2, ..., Sn.an | P(S1, S2, …,Sm)}; m>n,
где S1, S2,..., Sn, …, Sm  переменные кортежа, ai  атрибуты отношения, в котором
определено значение переменной Si, a P  формула.
Формула состоит из одного или нескольких элементарных выражений, которые могут
иметь одну из следующих форм.
 R(Si), где Si  переменная кортежа, a R  отношение.
 Si.а1Sj.a2, где Si и Sj  переменные кортежа, а1  атрибут отношения, в котором
определено значение переменной Si, а2  атрибут отношения, в котором определено
значение переменной Sj, и   одна из операций сравнения (<, , >, , =, ); атрибуты а1
и а2 должны иметь области определения, для сравнения элементов которых
применение знака операции  является допустимым.
 Si.а1с, где Si  переменная кортежа, а1  атрибут отношения, в котором определено
значение переменной Si, с  константа из области определения атрибута а1 и   одна
из операций сравнения.
Формулы рекурсивно строятся из элементарных выражений на основе следующих правил.
 Любое элементарное выражение рассматривается как формула.
 Если выражения P1 и P2 являются формулами, то выражения, полученные в результате
их конъюнкции (P1P2), дизъюнкции (P1P2) и отрицания (P1), также являются
формулами.
 Если выражение P является формулой со свободной переменной X, то выражения (Х)
(P) и (X) (P) также являются формулами.
Реляционные языки
Реляционное исчисление
Запрос «Выбрать атрибуты staffNo, fName, lName, position, sex, DOB, salary и
branchNo для всех сотрудников, которые получают зарплату больше 1500 гривен»
можно записать следующим образом:
{S | Персонал(S)S.salary >1500}
Выражение S.salary означает значение атрибута salary для кортежа S. Для выборки
одного определенного атрибута (например, salary), можно сформулировать этот
запрос иначе: {S.salary | Персонал(S)S.salary>1500}.
Персонал (S)  B (Отделение(B)(В.branchNo=S.branchNoВ.city='Харьков')).
Это выражение означает, что в отношении Отделение существует кортеж, который
имеет такое же значение атрибута branchNo, что и значение атрибута branchNo в
текущем кортеже S из отношения Персонал, а атрибут city из кортежа В имеет
значение 'Харьков'.
(B) (В.city'Сумы').
Это выражение означает, что ни в одном кортеже отношения Отделение значение
атрибута city не равно 'Сумы'.
Приведенную выше формулу можно представить следующим образом:
~(В) (В.city='Сумы').
В таком виде она означает, что в Сумах нет отделений компании.
Реляционные языки
Другие языки
Трансформационные языки являются классом непроцедурных языков, которые
используют отношения для преобразования исходных данных к требуемому виду. Эти
языки предоставляют простые в работе структуры для формулирования требований к
результатам имеющимися средствами.
Примером трансформационных языков является язык SQL.
Графические языки предоставляют пользователю схему или другое графическое
отображение структуры отношения. Пользователь создает некий образец желаемого
результата, и система возвращает затребованные данные в указанном формате.
Примером подобного языка является язык QBE (Query-By-Example).
Языки четвертого поколения (Fourth-Generation Language  4GL), которые
позволяют создавать полностью готовое и соответствующее требованиям заказчика
приложение с помощью ограниченного набора команд и в то же время предоставляют
дружественную по отношению к пользователю среду разработки, чаще всего
построенную на использовании команд меню (генераторы форм, генераторы
отчетов, генераторы приложений и т.д.).
Языки пятого поколения (Fifth-Generation Language  5GL) – разновидности
естественного языка.
Разработки проектов подобных языков по большей части все еще находятся на ранней стадии
развития.

Вам также может понравиться