Файл: Управление данными (пособие).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 31.03.2021

Просмотров: 1658

Скачиваний: 26

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

66

3.

яционного

 

исчисления

буде

 

атрибутов

 

ИМЯ

 

и

 

ГОРОД

 

из

 

корт

 

кортежи

 

результирующего

 

отношения

не

 

касаясь

 

того

каким

 

образом

 

это

 

отношение

 

может

 

быть

 

 

 

характер

а

 

построенная

 

на

 

основе

 

исчисления

 

носит

что

 

любой

 

запр

ный

 

с

 

 

а

быть

 

преобразован

 

в

 

фор

 

исчислении

 

наоб

 

и

ются

 

в

 

э

во

и

илям

в

ом

алгебр

иж

е

м

 

языкам

 

прогр

ирова

 

к

 

естеств

ому

с

ык

Ре

ионн

овывается

 

на

 

разделе

 

математики

называемом

 

исчисление

 

пре

 

Предикат

 

(p

te) 

логическая

которая

 

для

 

некоторого

 

 

Выполнить

 

проекцию

 

полученного

 

отношения

 

на

 

атрибуты

 

ИМЯ

 

и

 

ГОРОД

Этот

 

же

 

запрос

построенный

 

на

 

принципах

 

рел

т

 

иметь

 

следующий

 

вид

: «

Получить

 

значение

ежей

 

отношения

 

СТУДЕНТЫ

для

 

которых

 

в

 

отношении

 

УСПЕВАЕМОСТЬ

 

существуют

 

кортежи

 

с

 

совпадающими

 

значениями

 

атрибута

 

КОД

_

СТУД

 

и

 

со

 

значениями

 

атрибута

 

КОД

_

ДИСЦИПЛ

 

равными

 

Д

Видно

что

 

приведенная

 

формулировка

 

фактически

 

задает

 

характеристики

 

или

 

условия

которым

 

должны

 

удовлетворять

получено

предоставляя

 

решение

 

этого

 

вопроса

 

СУБД

Можно

 

сказать

что

 

формулировка

 

запроса

использующая

 

алгебру

 

носит

процедурный

предписывающий

 

описательный

 

или

 

декларативный

 

характер

При

 

этом

 

следует

 

иметь

 

в

 

виду

что

 

при

 

всем

 

при

 

этом

 

алгебра

 

и

 

исчисление

 

являются

 

эквивалентными

 

друг

 

другу

 

в

 

том

 

смысле

ос

построен

нн

использованием лгебры

может

 

 

и

му

основа

том

 

ысле

ую

 

на

и

ст

орот

Алгебра

и

 

фо

лиро

счисление

 

явля

ри

 

эт

см

 

двумя

 

зможным

 

рму

ки

 

запроса

п

исчисление

а

 

бл

е

 

к

 

проц дурны

амм

ния

а

 

енн

 

человече кому

 

яз

у

ляц

ое

 

исчисление

 

осн

дикатов

.

redica

– 

это

 

 

функция

аргумента

 (

а

то

а т

 

значения

 –

 

ИСТИН

 

или

 

ЛОЖЬ

ргумен

в

), 

приним е

А

Центральн

 

исчисления

 

является

 

понятие

 

пер

щей

 

ачение

 

из

 

некоторой

 

области

 

определения

В

 

свя

та

 

реляционного

 

исчисления

исчисление

 

кор

В

 

исчислении

 

кортежей

 

областью

 

определения

 

такой

еменной

ляются

 

кортежи

 

отношения

а

 

в

 

исчислении

 

домено

ременна

ределена

 

доменах

 

отношения

Рассмотрим

 

основные

 

понятия

 

реляционного

 

исчисления

 

на

 

примере

 

исчисления

 

кортеж

Следующие

 

примеры

 

определений

 

RANGE

 

OF

 

SX

 

IS

 

СТУДЕНТЫ

 

 

DX

 

IS

 

ДИСЦИПЛИНЫ

 

переменной

 

SX

 

являются

 

кортежи

 

енной

 

SX

 

являются

 

кортежи

 

этого

 

отношения

). 

Соответственно

 

переменная

 

DX

 

определяется

 

на

 

множестве

 

ым

 

понятием

 

реляционного

еменной

принимаю

зн

зи

 

с

 

этим

тежей

 

и

 

различают

 

дв

исчисление

 

а

 

вариан

доменов

 

пер

 

яв

в

 

пе

я

 

оп

 

на

ей

.  

RANGE

 

OF

RANGE

 

OF

 

MX

 

IS

 

УСПЕВАЕМОСТЬ

 

указывают

что

 

областью

 

определения

 

отношения

 

СТУДЕНТЫ

  (

значениями

 

перем


background image

 

67

корт

ения

 

ДИСЦИПЛИНЫ

а

 

переменная

 

MX

 

на

 

множестве

 

кортежей

 

отно

 

исчисления

 

будем

 

записыват в

 

виде

  

HERE

 

Ψ

(t)

Ψ

это

 

называемая

 

пра

), 

описывающая

 

условия

которым

 

должны

 

удовлетворят

 

кортежи

   

t

 

 

искомого

 

отно

о

 

определить

 

следующим

 

 | 

Ψ

(

x

)

ч

тавления

 

Кортежные

 

переменные

 

в

 

нных

 

формулах

 

выражения

 

реля

исления

 

могут

 

находиться

 

в

 

свободном

 

или

 

связанном

 

сост

 

квантор

 

 

случае

 

она

 

называется

 

кванторной

 

переменной

вантора

 

и

 

имеет

 

такое

 

же

 

имя

что

 

и

 

ременная

 

Примеры

 

правильно

 

построенных

 

формул

 

ОЦЕНКА

ка

’) 

ах

 

переменные

 

SX

,

 

MX

 

и

 

DX

 

являются

 

ежей

 

отнош

шения

 

УСПЕВАЕМОСТЬ

ь

 

Выражения

 

реляционного

t

  

W

где

 

t

 – 

это

 

кортеж

 

или

 

кортежи

котор

требуется

 

получить

ые

 

а

 

(

t

)

 – 

логическая

 

формула

 (

так

 

вильно

 

построенная

 

формула

 – 

ППФ

шения

Правильно

 

построенную

 

формулу

 

Ψ

(

x

)

 

можн

образом

 

Ψ

(

x

)::= 

предикат

 

 | 

NOT

 

Ψ

(

x

)

 

 | 

Ψ

(

x

)

 

AND

 

Ψ

(

x

)  

 | 

Ψ

(

x

OR

 

Ψ

(

x

)

 

 

 

Ψ

(

x

)

 

 | 

EXISTS

 

x

 (

Ψ

(

x

))

 

 | 

FORALL

 

x

 (

Ψ

(

x

))

 

Здесь

 

вертикальная

 

ерта

 

разделяет

 

возможные

 

варианты

 

предс

правильно

 

построенных

 

формул

правильно

 

построе

ционного

 

исч

ояниях

Переменная

 

называется

 

связанной

если

 

сразу

 

же

 

за

 

ней

 

следует

EXISTS

 

или

 

FORALL

  (

в

 

этом

или

 

она

 

находится

 

в

 

пределах

 

к

применяемая

 

кванторная

 

переменная

В

 

противном

 

случае

 

пе

называется

 

свободной

F1

 = (

SX

.

ГОРОД

 = ‘

Воронеж

’) 

.

 = 3 

 

MX

.

 = 4) 

F2

 = (

MX

ОЦЕНКА

OR

 = 

OT

(

.

 = ‘

Физи

F3

N

DX

ИМЯ

Используемые

 

в

 

этих

 

формул

свободными

F4

 = 

EXISTS

 

SX 

(

SX

.

ИМЯ

 = ‘

Иванов

’) 


background image

 

68

Эт формула

 

читается

 

как

: «

Существует

 

по

 

крайней

 

мере

 

одно

 

значени

кортежной

 

переменной

 

SX

определенной

 

на

 

кортежах

 

отношения

 

СТУДЕНТЫ

ой

 

значение

 

атрибута

 

ИМЯ

 

равно

 ‘

Иванов

’».

 

а

 

е

 

для

 

котор

F5 = 

FORALL

 

MX 

(

MX

.

ОЦЕНКА

 >=2) 

 

 

состоянии

 

 

 

ДИСЦИПЛИНЫ

 

Эта

 

формула

 

читается

 

как

: «

Для

 

всех

 

значений

 

кортежной

 

переменной

 

MX

  

значение

 

атрибута

 

ОЦЕНКА

 

больше

 

или

 

равно

 

2

». 

В

 

последних

 

двух

 

формулах

 

F4

 

и

F5

 

переменные

 

SX

 

и

 

MX

 

находятся

 

в

 

связанном

 (

кванторами

)

Примеры

 

использования

 

реляционного

 

исчисления

 

кортежей

 

для

 

формулировки

 

запросов

 

Также

 

как

 

и

 

в

 

предыдущем

 

разделе

 

при

 

использовании

 

реляционной

 

алгебры

 

для

 

иллюстрации

 

рассматриваются

 

следующие

 

отношения

СТУДЕНТЫ

КОД

_

СТУД

 

ИМЯ

 

ГОРОД

   

КОД

_

ДИСЦИПЛ

НАИМЕНОВАНИЕ

 

С

Иванов

 

Орел

 

 

Д

Информатика

 

С

Петрова

 

Курск

 

 

Д

Физика

 

С

Сидоров

 

Москва

 

 

Д

Математика

 

С

Кузнецов

 

Брянск

 

 

Д

История

 

С

Зайцева

  

Липецк

 

 

Д

Английский

 

С

Павлов

 

Воронеж

 

 

Д

Физкультура

 

С

10 

Котов

 

Орел

 

 

 

 

С

15 

Лукин

 

Воронеж

 

 

 

 

С

Белкин

 

Воронеж

 

 

 

 

2

 

УСПЕВАЕМОСТЬ

 

 

КОД

_

ТУД

 

КОД

_

ДИСЦИПЛ

 

ОЦЕНКА

 

С

С

Д

2 5 

С

Д

2 4 

С

Д

2 5 

С

Д

6 3 

С

Д

1 4 

С

Д

4 5 

 

Пример

 1 

Получить

 

имена

 

студентов

 

проживающих

 

в

 

Воронеже

RANGE

 

OF

 

SX

 

IS

 

СТУДЕНТЫ

 

SX

.

ИМЯ

  

WHERE

  

SX

.

ГОРОД

 = ‘

Воронеж

’ 


background image

 

69

Пример

 2 

Получить

 

имена

 

студентов

сдававших

 

дисциплину

 

Д

2

.

 

RANGE

 

OF

 

SX

 

IS

 

СТУДЕНТЫ

 

RANGE

 

OF

 

MX

 

IS

 

УСПЕВАЕМОСТЬ

 

SX

.

И

 

Е

 =

СТУД

D

RAN

Пример

 5 

Получить

 

имена

 

студентов

которые

 

сдавали

 

все

 

дисциплины

.

 

RANGE

 

OF

 

SX

 

IS

 

СТУДЕНТЫ

 

RANGE

 

OF

 

DX

 

IS

 

ДИСЦИПЛИНЫ

 

RANGE

 

OF

 

MX

 

IS

 

УСПЕВАЕМОСТЬ

 

SX

.

ИМЯ

  

WHERE

 

FORALL

 

DX 

(

EXISTS

 

MX 

(

MX

.

КОД

_

СТУД

 = 

SX

.

КОД

_

СТУД

 

 

 

 

 

 

AND

 

MX

.

КОД

_

ДИСЦИПЛ

 = 

DX

.

КОД

_

ДИСЦИПЛ

))

  

 

МЯ

  

WHERE

  

EXISTS

  

MX 

(

MX

.

КОД

_

СТУД

 = 

SX

.

КОД

_

СТУД

  

                                       

 

 

AND

 

MX

.

КОД

_

ДИСЦИПЛ

 = ‘

Д

2’) 

Пример

 3 

Получить

 

имена

 

студентов

сдававших

 

физику

RANGE

 

OF

 

SX

 

IS

 

СТУДЕНТЫ

 

RANGE

 

OF

 

DX

 

IS

 

ДИСЦИПЛИНЫ

 

RANGE

 

OF

 

MX

 

IS

 

УСПЕВАЕМОСТЬ

 

SX

.

ИМЯ

  

WHERE

 

EXISTS

 

MX 

(

MX

.

КОД

_

СТУД

 = 

SX

.

КОД

_

СТУД

   

 

 

 

AND

 

EXISTS

 

DX

(

DX

.

КОД

_

ДИСЦИПЛ

 = 

MX

.

КОД

_

ДИСЦИПЛ

  

AND

 

DX

.

НАИМ НОВАНИЕ

 ‘

Физика

’) 

или

 

другая

 

форма

 

того

 

же

 

запроса

 

SX

.

ИМЯ

  

WHERE

 

EXISTS

 

MX 

(

EXISTS

 

DX 

(

SX

.

КОД

_

СТУД

 = 

MX

.

КОД

_

  

                                

AND

 

MX

.

КОД

_

ДИСЦИПЛ

 = 

DX

.

КОД

_

ДИСЦИПЛ

 

 

 

 

 

AND

 

X

.

НАИМЕНОВАНИЕ

 = ‘

Физика

’)) 

Пример

 4 

Получить

 

имена

 

студентов

которые

 

не

 

сдавали

 

дисциплину

 

Д

2

.

 

GE

 

OF

 

SX

 

IS

 

СТУДЕНТЫ

 

RANGE

 

OF

 

MX

 

IS

 

УСПЕВАЕМОСТЬ

 

SX

.

ИМЯ

  

WHERE

 

NOT

 

EXISTS

 

MX 

(

MX

.

КОД

_

СТУД

 = 

SX

.

КОД

_

СТУД

   

AND 

MX

.

КОД

_

ДИСЦИПЛ

 

= ‘

Д

2’) 

Интересно

 

сравнить

 

этот

 

запрос

 

с

 

запросом

 

из

 

примера

 2. 


background image

 

70

7.3. 

Операции

 

над

 

данными

 – 

реляционная

алгебра

 

и

 

реляцион

 

ное

 

исчисление

 

 

 

а

с

выразительной

о

 

полным

если

 

он

 

по

 

своим

 

 

В

 

двух

 

предыдущих

 

разделах

 

были

 

проиллюстрированы

 

две

 

возможности

 

реализации

 

математического

 

аппарата

 

для

 

осуществления

 

операций

 

над

 

данными

 – 

реляционная

 

алгебра

 

и

 

реляционное

 

исчисление

  (

в

 

варианте

 

исчисления

 

кортежей

). 

 

Как

 

уже

 

говорилось

оба

 

эти

 

подхода

 

являются

 

эквивалентными

т

.

е

любой

 

запрос

представленный

 

на

 

языке

 

реляционной

 

алгебры

 

может

 

быть

 

выражен

 

средствами

 

реляционного

 

исчисления

 

и

 

наоборот

 

Важность

 

реляционной

 

алгебры

 

и

 

реляционного

 

исчисления

 

состоит

 

в

 

том

что

 

на

 

их

 

основе

 

могут

 

строиться

 

практически

 

используемые

 

языки

 

работы

 

с

 

базами

 

данных

При

 

этом

 

сравнение этих языков

 

с

 

языками

 

лгебры

 

и

 

исчисления

 

могут

 

лужить

 

мерой

 

оценки

 

 

силы

 

языка

 

баз

 

данных

Язык

 

баз

 

данных

 

называют

 

реляционн

возможностям

по

 

крайней

 

мере

не

 

уступает

 

реляционной

 

алгебре

 

и

 

реляционному

 

исчислению

 

Важно

 

также

 

иметь

 

в

 

виду

что

 

возможность

 

предст

же

 

запросов

 

с

 

помощью

 

различных

 

эквивалентных

 

ф

авления

 

одних

 

и

 

тех

 

орм

 

алгебраических

 

выражений

 

или

 

предложений

 

реляционного

 

исчисления

 

дает

 

возможность

 

реализации

 

в

 

СУБД

 

механизма

 

оптимизации

 

запросов

позволяющего

 

путем

 

тожд

щей

 

наибольшую

 

эффективность

 

их

 

выполнения

Для

 

разр

о

 

глуб

ественных

 

преобразований

 

выражений

 

запросов

 

преобразовать

 

их

 

к

 

форме

обеспечиваю

аботчика

использующего

 

язык

 

запросов

 

к

 

базам

 

данных

 SQL, 

знание

лежащих

 

в

 

основе

 

этого

 

языка

алгебры

 

и

 

исчисления

 

позволяют

 

горазд

же

 

понимать

 

механизм

 

выполнения

 

запросов

 

СУБД

осознанно

 

осуществлять

 

выбор

 

такой

 

формы

 

выражения

 

запроса

которая

 

обеспечивает

 

более

 

высокую

 

эффективность

 

их

 

выполнения

.