Раскраски танк смотреть онлайн


Дата публикации: 20.11.2017, 02:27/ Просмотры: 597

Реляционная алгебра. Операции реляционной алгебры: выборка, проекция, объединение, пересечение, разность, произведение, деление,

онлайн

ГОСы » Реляционная алгебра. Операции реляционной алгебры: выборка, проекция, объединение, пересечение, разность, произведение, деление,

Реляционная алгебра — формальная система манипулирования отношениями в реляционной модели данных. [1]

Операция выборки — унарный оператор, записываемый как σaθb(R) или σaθv(R), где:

  • a, b — имена атрибутов
  • θ — оператор сравнения из множества {<; ≤; =; ≥; >}
  • v — константа
  • R — отношение (в оригинале — relation, однако как видно из примера, подразумевается не столько взаимосвязь таблиц, сколько взаимосвязь/соотношение различных фактов в рядах этих таблиц).

Выборка σaθb(R) (или σaθv(R)) выбирает все наборы значений R, для которых функция a θ b (или a θ v) будет истинна.

Пример

Пусть даны следующие соотношения:

Персоны

Имя Возраст Вес Harry 34 80 Sally 28 64 George 29 70 Helena 54 54 Peter 34 80

Тогда результаты выборок будут следующими:

σВозраст ≥ 34(Персоны)

Имя Возраст Вес Harry 34 80 Helena 54 54 Peter 34 80

Эквивалентный SQL-запрос:

SELECT FROM Персоны WHERE Возраст >= 34

σВозраст = Вес(Персоны)

Имя Возраст Вес Helena 54 54

Эквивалентный SQL-запрос:

SELECT FROM Персоны WHERE Возраст = Вес

Операция выборки — унарный оператор, записываемый как πa1,…,an(R) где a1,…,an — спиоск полей, подлежащих выборке. Результатом такой выборки будет набор последовательностей значений отношения R, в котором будут присутствовать только поля, перечисленные в списке a1,…,an с естественным уничтожением потенциально возникающих кортежей-дубликатов[4].

Пример

Пусть даны следующие соотношения:

Персоны

Имя Возраст Вес Harry 34 80 Sally 28 64 George 29 70 Helena 54 54 Peter 34 80

Результат проекции:

πВозраст,Вес(Персоны)

Возраст Вес 28 64 29 70 54 54 34 80

Эквивалентный SQL-запрос:

SELECT DISTINCT Возраст, Вес FROM Персоны
Примечательно, что в SQL для полного соответствия операции проекции необходимо указывать ключевое слово DISTINCT, поскольку без него строка с возрастом 34 и весом 80 отобразится дважды, что отличается от результата реляционной операции проекции. union.png

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

Пример

Пусть даны следующие соотношения:

Персоны

Имя Возраст Вес Harry 34 80 Sally 28 64 George 29 70 Helena 54 54 Peter 34 80

Персонажи

Имя Возраст Вес Daffy 24 19 Donald 25 23 Scrooge 81 27

Результат объединения:

Имя Возраст Вес Harry 34 80 Sally 28 64 George 29 70 Helena 54 54 Peter 34 80 Daffy 24 19 Donald 25 23 Scrooge 81 27

Эквивалентный SQL-запрос:

SELECT Имя, Возраст, Вес FROM Персоны UNION SELECT Имя, Возраст, Вес FROM Персонажи intersect.png

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

Пример

Пусть даны следующие соотношения:

Персоны

Имя Возраст Вес Harry 34 80 Sally 28 64 George 29 70 Helena 54 54 Peter 34 80

Персонажи

Имя Возраст Вес Daffy 24 19 George 29 70 Donald 25 23 Scrooge 81 27 Sally 28 64

Результат пересечения:

Имя Возраст Вес George 29 70 Sally 28 64

Эквивалентный SQL-запрос:

SELECT Имя, Возраст, Вес FROM Персоны INTERSECT SELECT Имя, Возраст, Вес FROM Персонажи
Ключевое слово INTERSECT может отсутствовать в некоторых СУБД, однако оно включено в стандарт [5]. except.png

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

Пример

Пусть даны следующие соотношения:

Персоны

Имя Возраст Вес Harry 34 80 Sally 28 64 George 29 70 Helena 54 54 Peter 34 80

Персонажи

Имя Возраст Вес Daffy 24 19 George 29 70 Donald 25 23 Scrooge 81 27 Sally 28 64

Результат разности:

Имя Возраст Вес Harry 34 80 Helena 54 54 Peter 34 80

Эквивалентный SQL-запрос:

SELECT Имя, Возраст, Вес FROM Персоны EXCEPT SELECT Имя, Возраст, Вес FROM Персонажи

При выполнении прямого произведения двух отношений производится отношение, кортежи которого являются конкатенацией (сцеплением) кортежей первого и второго операндов.

Пример

Пусть даны следующие соотношения:

Мульфильмы

Код_мульта Название_мульта 0 The Simpsons 1 Family Guy 2 Duck Tales

Каналы

Код_канала Название_канала 0 СТС 1 2х2

Результат произведения:

Код_мульта Название_мульта Код_канала Название_канала 0 The Simpsons 0 СТС 0 The Simpsons 1 2х2 1 Family Guy 0 СТС 1 Family Guy 1 2х2 2 Duck Tales 0 СТС 2 Duck Tales 1 2х2

Эквивалентный SQL-запрос:

SELECT FROM Мультфильмы, Каналы

Реляционное деление достаточно нетривиально описать, но на примере его смысл нагляден. В целом, из таблицы A берутся значения строк, для которых присутствуют все комбинации значений из таблицы B. Понятно? Ну, примерно об этом я и пытался сказать, смотрим пример:

Пример

Пусть даны следующие соотношения:

Мульфильмы

Код_мульта Название_мульта Название_канала 0 The Simpsons RenTV 0 The Simpsons 2х2 0 The Simpsons CTC 1 Family Guy RenTV 1 Family Guy 2х2 2 Duck Tales СТС 2 Duck Tales 2x2

Тогда при делении на таблицу каналов:

Каналы

Название_канала RenTV 2х2

Результатом будет:

Код_мульта Название_мульта 0 The Simpsons 1 Family Guy

Family Guy и The Simpsons — мультфильмы, которые показывались и на RenTV и на 2x2 (условие во второй таблице). При этом Duck Tales не показывалось по RenTV, потому был исключён из результирующей таблицы.

Эквивалентный SQL-запрос привести затрудняюсь

Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях и имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.[4]

Пример

Мульфильмы

Код_мульта Название_мульта Название_канала 0 The Simpsons 2х2 1 Family Guy 2х2 2 Duck Tales RenTV

Каналы

Код_канала Частота RenTV 3,1415 2х2 783,25

Соединим их с выборкой σНазвание_канала = Код_канала(Произведение)
Первый этап, произведение:

Код_мульта Название_мульта Название_канала Код_канала Частота 0 The Simpsons 2х2 RenTV 3,1415 0 The Simpsons 2х2 2х2 783,25 1 Family Guy 2х2 RenTV 3,1415 1 Family Guy 2х2 2х2 783,25 2 Duck Tales RenTV RenTV 3,1415 2 Duck Tales RenTV 2х2 783,25

Второй этап, выборка σНазвание_канала = Код_канала(Произведение):

Код_мульта Название_мульта Название_канала Код_канала Частота 0 The Simpsons 2х2 2х2 783,25 1 Family Guy 2х2 2х2 783,25 2 Duck Tales RenTV RenTV 3,1415

Эквивалентный SQL-запрос:

SELECT FROM Мультфильмы, Каналы WHERE Название_канала = Код_канала

Хотя есть способ и корректнее

– hide block

SELECT FROM Мультфильмы INNER JOIN Каналы ON Мультфильмы.Название_канала = Каналы.Код_канала
Источник: http://migku.wikidot.com/gos-db-16


Закрыть ... [X]

Эскизы тату треугольник: классные рисунки для того, чтоб сделать Слоган для ручной работы

Раскраски танк смотреть онлайн Раскраски танк смотреть онлайн Раскраски танк смотреть онлайн Раскраски танк смотреть онлайн Раскраски танк смотреть онлайн Раскраски танк смотреть онлайн Раскраски танк смотреть онлайн