Реляционные отношения в языке + видео обзор

Реляционные языки

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

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

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

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

Видео: Основные операции реляционной алгебрыСкачать

Основные операции реляционной алгебры

Видео: ЧТО ТАКОЕ РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХСкачать

ЧТО ТАКОЕ РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ

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

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

Графические языки предоставляют пользователю рисунок или другое графическое отображение структуры отношения. Пользователь создает некий образец желаемого результата, и система возвращает затребованные данные в указанном формате. Примером подобного языка является язык QBE (Query-By-Example). Он используется, например в MS Access или MS Visual Foxpro.

Еще одной категорией языков являются языки четвертого поколения (fourth-generation languages — 4GL), которые позволяют создавать полностью готовое и соответствующее требованиям заказчика прикладное приложение с помощью ограниченного набора команд и в то же время предоставляют дружественную по отношению к пользователю среду разработки, чаще всего построенную на использовании команд меню В некоторых системах используются даже некоторые разновидности естественного языка, т.е. ограниченной версии обычного английского языка, который иногда называется языком пятого поколения (fifth-generation language — 5GL). Однако разработки проектов подобных языков по большей части все еще находятся в зачаточном состоянии.

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Источник

Реляционная алгебра, операции реляционной алгебры

Что такое реляционная алгебра

Операция выборки

Реляционные отношения в языке,

Видео: Что такое реляционная модель данных - простыми словамиСкачать

Что такое реляционная модель данных - простыми словами

Видео: Базы данных. Таблицы в SQL и отношения в реляционных БД: атрибуты, строки, столбцы, записи и кортежиСкачать

Базы данных. Таблицы в SQL и отношения в реляционных БД: атрибуты, строки, столбцы, записи и кортежи

Запрос SQL

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

R3
A1A2A3A4
3hhylms
4ppa1sr
1rrylms

Просматриваем столбец А3 и устанавливаем, что предикату A3>’d0′ удовлетворяют записи в первой и третьей строках исходного отношения (так как номер буквы y в алфавите больше номера буквы d). В результате получаем следующее новое отношение, в котором две строки:

R
A1A2A3A4
3hhylms
1rrylms

Комбинировать всевозможные логические условия для выборок Вам поможет материал «Булева алгебра (алгебра логики)».

А в материалах раздела «Программирование PHP/MySQL» Вы найдёт немало примеров комбинаций различных логических условий для выборок из базы данных.

Операция проекции

Запрос SQL

Пусть вновь дано то же отношение R3 :

R3
A1A2A3A4
3hhylms
4ppa1sr
1rrylms
R
A4A3
msyl
sra1

Операция объединения

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

Запрос SQL

R1R2
A1A2A3A1A2A3
Z7aaw11X8ppk21
B7hhh15Q2eeh15
X8ppw11X8ppw11
R
A1A2A3
Z7aaw11
B7hhh15
X8ppw11
X8ppk21
Q2eeh15

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

Операция пересечения

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

Видео: Типы связей в базах данныхСкачать

Типы связей в базах данных

Видео: Лекция 22: Реляционная база и модель данныхСкачать

Лекция 22: Реляционная база и модель данных

Запрос SQL

В некоторых диалектах SQL отсутствует ключевое слово INTERSECT. Поэтому, например, в MySQL и других, операция пересечения множеств может реализована с применением предиката EXISTS.

Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2:

R1R2
A1A2A3A1A2A3
Z7aaw11X8ppk21
B7hhh15Q2eeh15
X8ppw11X8ppw11
R
A1A2A3
X8ppw11

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

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

Запрос SQL

Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2:

R1R2
A1A2A3A1A2A3
Z7aaw11X8ppk21
B7hhh15Q2eeh15
X8ppw11X8ppw11
R
A1A2A3
X8ppw11
Q2eeh15

В некоторых диалектах SQL отсутствует ключевое слово EXCEPT. Поэтому, например, в MySQL и других, операция пересечения множеств может реализована с применением предиката NOT EXISTS.

Операция декартова произведения

Операция декартова произведения (Реляционные отношения в языке) определяет новое отношение R, которое является результатом конкатенации каждого кортежа отношения R1 с каждым кортежем отношения R2.

Запрос SQL

Видео: Урок 23. Что такое Отношения (Relation) в реляционных базах данных?Скачать

Урок 23. Что такое Отношения (Relation) в реляционных базах данных?

Видео: NoSQL простым языком: что это и зачем нужно?Скачать

NoSQL простым языком: что это и зачем нужно?

Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Даны два отношения R3 и R4:

R3R4
A1A2A3A4A5A6
3hhylms3hh
4ppa1sr4pp
1rrylms

В новом отношении должны присутствовать все атрибуты (столбцы) двух отношений. Сначала первая строка отношения R3 сцепляется с каждой из двух строк отношения R4, затем вторая строка отношения R3, затем третья. В результате должно получиться 3 Х 2 = 6 кортежей (строк). Получаем такое новое отношение:

R
A1A2A3A4A5A6
3hhylms3hh
3hhylms4pp
4ppa1sr3hh
4ppa1sr4pp
1rrylms3hh
1rrylms4pp

Операция деления

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

Запрос SQL

Давайте посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Даны два отношения R5 и R6:

R5R6
A1A2A3A4A2A3
2S34sunR48
3X87kabX87
3R48kab

Комбинации всех кортежей отношения R6 соответствуют вторая и третья строки отношения R5. Но после исключения атрибутов (столбцов) А2 и А3 эти строки становятся идентичными. Поэтому в новом отношении присутствует эта строка один раз. Новое отношение:

Операция тета-соединения

Запрос SQL

Посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Даны два отношения R3 и R4:

R3R4
A1A2A3A4A5A6
3hhylms3hh
4ppa1sr4pp
1rrylms

Источник

Отношение (реляционная модель)

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

Содержание

Определения

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

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

Видео: Базы данных SQL уроки для начинающих. SELECT, JOINS, GROUP BY, INSERT, UPDATE, WHEREСкачать

Базы данных SQL уроки для начинающих. SELECT, JOINS, GROUP BY, INSERT, UPDATE, WHERE

Видео: Базы данных. Реляционная алгебраСкачать

Базы данных. Реляционная алгебра

Такая таблица обладает рядом свойств:

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

Формализованное определение введённых понятий.

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

Пример

Допустим, содержание доменов следующее:

Тогда полное декартово произведение состоит из 18 троек, где первый элемент тройки — одна из фамилий, второй элемент — учебная дисциплина, а третий — оценка.

Тогда отношение R может моделировать реальную ситуацию и содержать пять строк, которые соответствуют результатам сессии (Петров экзамен по Физике не сдавал):

R
ФамилияПредметОценка
ИвановФизика4
ИвановХимия3
ПетровХимия5
СидоровФизика5
СидоровХимия4

Операции, определённые над отношениями

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

Пример деления

Атрибут AАтрибут BАтрибут C
acd
bcd
apq
bxy
Атрибут BАтрибут C
cd

Остаток от деления:

Атрибут AАтрибут BАтрибут C
apq
bxy

Чтобы было проще понять этот пример, сравните его с обычной алгеброй: умножьте делитель на частное (декартово произведение), прибавьте остаток от деления (объединение), и Вы получите делимое. То есть если a/b=c, и остаток=d, тогда b*c+d=a.

Источник

Видео

Что такое SQL?Скачать

Что такое SQL?

Лекция 9: Отношения и базы данныхСкачать

Лекция 9: Отношения и базы данных
Поделиться или сохранить к себе:
Добавить комментарий

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