Запросы

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

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

Язык SQL относится к декларативным языкам, в отличие от процедурных (Pascal). К декларативным относится Лисп, Пролог – языки интеллектуальных систем.

В реляционной алгебре имеется 8 операций, среди них – две унарные и шесть бинарных. С помощью операций реляционной алгебры можно получать другие объектные и связные отношения путём вычислений. Следовательно, нет необходимости хранить вычисляемые отношения.

В реляционной алгебре различают следующие операции:

1. Проекция.

2. Выбор.

3. Соединение.

4. Объединение.

5. Пересечение.

6. Разность.

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

8. Деление.

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

– OTN1 {A1…AN} –

– OTN2 – как исходные –

– OTNR – как результурующие –

1. Проекция. Результатом проекции является отношение, в котором выбраны некоторые поля из основного отношения.

OTNR: = PROJ < список полей > (OTN1)

m (R):= m (1)

s (R):= по условию

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

OTNR:= sel < условие > (OTN1)

m (R) зависит от условия

s (R)= s (1)

3. Соединение. Действует на два отношения, имеющих хотя бы одно общее поле, результатом будет отношение, состоящее из полей 1-ого отношения и полей 2-ого отношения. Записи для которых совпадают по значениям общих полей.

OTNR:= OTN1 join OTN2

s(R)= s(1)+s(2) – K (количество общих полей для двух отношений)

m – определяется по условию одинаковых значений в общих полях.

0 m(R) min(m(OTN1), m(OTN2))

4. Объединение. Действует на два отношения, на которые наложены два ограничения. Количество полей и их типы должны совпадать.

S(OTN1)=S(OTN2)=S (OTNR)

OTNR:= OTN1 union OTN2

m (R)=m(1)+m(2) – K (количество строк для двух отношений)

S(OTN1)= S(OTN2)=S(OTNR)

5. Пересечение. Действует на два отношения, на которые наложены требования: одинаковое количество и одинаковый тип полей.

S(OTN1)=S(OTN2)=S(OTNR)

OTNR:= OTN1 intersection OTN2

m – определяется количество общих записей или строк.

6. Вычитание. Действует на два отношения, которые удовлетворяют условиям одинакового количества полей и их типов.

OTNR:= OTN1 difference OTN2.

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

7. Умножение. Результатом умножения является отношение представляющее сцепление или конкатенацию (кажд. строки 1-ого отношения с кажд. строкой 2-ого отношения).

OTNR:= OTN1 product OTN2

m (R) =m(1) m(2)

S(R)=S(1)+S(2)

A1 A2 A3 A4
A   b  
A   c  
d   b  
d   c  
A1 A2
a  
d  
A3 A3
b  
c  
prod
=

8. Деление.

OTNR: = OTN1 division OTN2

m (R)=m(1):m(2)

S (R)= S(1) – S(2)

OTN1 division OTN2:=OTNR.

Обратная операция умножения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: