Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

Реляционная алгебра, определена Коддом и содержит 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 и др.





Дата публикования: 2015-02-18; Прочитано: 1528 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с)...