Лекция: Реляционная алгебра Кодда

Обработку данных реляционной модели можно реализовать методами реляционной алгебры.

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

1. Теоретико – множественные операции — объединение, пересечение, вычитание и декартово произведение.

2. Специальные реляционные операции – выборка, проекция, соединение, деление

 

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

 

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

 

R=f(R1, R2…… Rn)

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

R=f(f1(R11, R21…… Rn1), f2(R21, R22…… R2n)….)

В силу этого реляционная алгебра является замкнутой.

Отношения называются совместимыми по типу, если они имеют идентичные заголовки, а именно:

1. отношения имеют одно и тоже множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении.

2. атрибуты с одинаковыми именами определены на одних и тех же доменах.

Некоторые отношения не являются совместимыми по типу, но становятся таковыми после переименования атрибутов.

Оператор переименования R rename A1,A2,… as new A1, new A2…,

Например:

R rename student as starosta

 

Объединение

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

Синтаксис R1 union R2

 

R1

Шифр Фамилия Стипендия
Котова
Серов
Леонидов

 

R2

Шифр Фамилия Стипендия
Котова
Даниленко
Леонидов

 

Объединение

Шифр Фамилия Стипендия
Котова
Серов
Леонидов
Даниленко
Леонидов

 

Операторы не передают результату никаких данных о потенциальных ключах.

 

Пересечение

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

Синтаксис

 

R1 intersect R2

Шифр Фамилия Стипендия
Котова

 

Вычитание

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

Синтаксис R1 minus R2

 

Шифр Фамилия Стипендия
Серов
Леонидов

 

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

 

Декартовым произведением двух отношений R1(R11, R12, R13…) и R2(R21,R22,R23,…) называется отношение, заголовок которого является сцеплением заголовком отношений R1 и R2:

(R11, R12, R13… R21,R22,R23,…), а тело состоит из кортежей, являющихся сцеплением кортежей отношений R1 и R2

(r11, r12, r13… r21, r22, r23….), таких что (r11, r12, r13…) принадлежит R1, а (r21, r22, r23….) принадлежит R2/

Синтаксис R1 times R2

 

Мощность произведения равна произведению мощностей. Если атрибуты R1 и R2 имеют атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать. Совместимость по типу не требуется.

R1

Шифр Фамилия
Котова
Серов
Леонидов

 

R2

Код Название
Математика
Философия  

 

R1 times R2

Шифр Фамилия Код Название
Котова Математика
Котова Философия  
Серов Математика
Серов Философия  
Леонидов Математика
Леонидов Философия  

 

 

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

 

Выборка (ограничение, селекция)

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

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

Обычно условие С имеет вид R11Q R12, где Q принадлежит {=<>¹³£}, а R11 и R12 атрибуты отношения R или скалярные значения. Такие выборки называются Q — выборки.

Синтаксис R where C или R where R11Q R12

 

Шифр Фамилия Стипендия
Котова
Серов
Леонидов

 

Выборка R where стипендия >250

 

Шифр Фамилия Стипендия
Котова
Леонидов

 

Проекция

 

Проекцией отношения R по атрибутам R1, R2, R3…Rn, где каждый атрибут принадлежит R, называется отношение с заголовком (R1, R2, R3…Rn) и телом, содержащим множество кортежей вида (r1,r2,r3,…rn). При этом дубликаты кортежи удаляются.

Проекцию называют вертикальным срезом отношения.

Синтаксис R[R1, R2, R3…Rn]

 

Шифр Фамилия Факультет
Котова ФИРЭ
Серов Энергетический
Леонидов ФИРЭ
Серов СФ

 

R[факультет]

Факультет
ФИРЭ
Энергетический
ФИРЭ
СФ

 

Соединение

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

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

Q-соединение

Экви-соединение

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

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

 

Общая операция соединения:

Соединением отношений R1 и R2 по условию называется отношение

(R1 times R2) where C, где С представляет собой логическое выражение, в которое могут входить атрибуты отношений R1 и R2 и/или скалярные выражения. То есть, чтобы выполнить операцию соединения, необходимо выполнить последовательно операцию декартова произведения и выборки. Если в отношениях R1 и R2 имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.

Q-соединение

(R1 times R2) where R11QR21 — Q-соединение отношения R1 по атрибуту R11 с отношением R2 по атрибуту R21. Записывают и

R1 [R11QR21] R2

 

R1

Шифр Фамилия Курс
Котова
Серов
Леонидов

 

R2

Код Наименование Семестр
Математика
Ин яз
Философия
ИОСУ
Сложные системы

 

Какие экзамены должны быть сданы студентами, закончившими учебный год R1[семестр <=2*курс]R2

 

Шифр Фамилия Курс Код Наименование Семестр
Котова Математика
Котова Ин яз
Котова Философия
Серов Философия
Серов Математика
Леонидов Математика
Леонидов Ин яз
Леонидов Философия

 

Экви соединение это соединение, когда Q есть равенство.

 

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

Пусть даны отношения R1(R11,R12,R13,..R1n,Z1,Z2,…Zn) и R2(Z1,Z2,…Zn, R21,R22,R23,..,R2m). Тогда естественным соединением отношений R1 и R2 называется отношение с заголовком (R11,R12,R13,..R1n,Z1,Z2,…Zn, R21,R22,R23,..,R2m) и телом, содержащим множество кортежей (r11,r12,r13,…r1n,z1,z2,z3,…zn, r21, r22,…r2m), таких что (r11,r12,r13,…r1n,z1,z2,z3,…zn) принадлежит R1, а (z1,z2,z3,…zn, r21, r22,…r2m) принадлежит R2

Синтаксис

R1 join R2

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

R1

Шифр Фамилия
Котова
Серов
Леонидов

 

R2

Код Наименование
Математика
Ин яз
Философия

 

R3

Шифр Код Оценка

 

R1 join R2 join R3

 

Шифр Фамилия Код Наименование оценка
Котова Математика
Котова Ин яз
Котова Философия
Серов Математика
Серов Философия
Леонидов Ин яз

 

 

Деление

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

Синтаксис R1 divideby R2

R1

Шифр Код

 

R2

Код

 

R1 divideby R2

Шифр

 

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

Первый стандарт языка разработан в 1989 году Национальным институтом стандартизации США (ANSI). В 1992 году появилась версия SQL92, в 1999 году SQL3. Сегодня различают различные типы диалектов, расширяющие стандарт языка.

Существуют две формы языка:

Интерактивный — создание запросов в режиме диалога

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

Рассмотрим интерактивную форму.

 

Типы команд языка

 

DDl- язык определения данных

CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE VIEW, ALTER VIEW, DROP VIEW, CREATE INDEX, DROP INDEX

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

INSERT, UPDATE, DELETE

DQL – язык запросов к данным

SELECT

DCL – язык управления данными, либо команды администрирования данных

CREATE DATABASE, ALTER DATABASE, DROP DATABASE, GRANT (предоставление прав доступа для действий над заданными объектами БД), REVOKE (лишение прав доступа для действий над заданными объектами БД) и др.

Команды администрирования данных- предоставляют возможность аудита и анализа операций внутри БД. Могут использоваться при анализе производительности системы данных в целом.

START AUDIT, STOP AUDIT

Команды управления транзакциями – позволяют выполнить обработку информации, объединенной в транзакцию

COMMIT, ROLLBACK, SAVE POINT, SET TRANSACTION (назначение имени транзакции)

Процедурный язык

DECLARE, OPEN, FETCH, CLOSE, EXECUTE и др.

 

 


еще рефераты
Еще работы по информатике