62946

Элементы теории множеств

Лекция

Педагогика и дидактика

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

Русский

2014-06-15

133.64 KB

0 чел.

Занятие 2

Элементы теории множеств

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

Чтобы иметь возможность обрабатывать данные, нужно знать набор операций над отношениями.

Поскольку реляционная теория базируется на теории множеств, естественно предположить, что теоретико-множественные операторы можно применять и для отношений. Как мы увидим далее, это предположение вполне справедливо.

Множества

Понятие множества принадлежит к числу основных, неопределяемых понятий математики. Оно не сводится к другим, более простым понятиям. Поэтому его нельзя определить, а можно лишь пояснить, указывая синонимы слова «множество» и приводя примеры множеств: множество – набор, совокупность, собрание каких-либо объектов (элементов), обладающих общим для всех их характеристическим свойством.

Примеры множеств:

  1. множество студентов в данной аудитории;
  2. множество людей, живущих на нашей планете в данный момент времени;
  3. множество точек данной геометрической фигуры;
  4. множество чётных чисел;
  5. множество корней уравнения х2-5х+6=0;
  6. множество действительных корней уравнения х2+9=0;

Основоположник теории множеств немецкий математик Георг Кантор (1845-1918) писал: «Множество есть многое, мыслимое нами как единое». И хотя это высказывание учёного не является в полном смысле логическим определением понятия множества, но оно верно поясняет, что когда говорят о множестве, то имеют в виду некоторое собрание объектов, причём само это собрание рассматривается как единое целое, как один (новый) объект.

Объекты, составляющие данное множество, называют его элементами.

Множество обычно обозначают большими латинскими буквами, а элементы множества − малыми латинскими буквам. Если элемент, а принадлежит множеству А, то пишут: а А, а если а не принадлежит А, то пишут: а А.

Например, пусть N–множество натуральных чисел. Тогда 5N , но N, N. Если А - множество корней уравнения х2-5х+6=0, то 3 А, а 4А.

Способы задания множества

Множество А считается заданным, если относительно любого объекта а можно установить, принадлежит этот объект множеству А или не принадлежит; другими словами, если можно определить, является ли а элементом множества А или не является. Существуют два основных способа задания множества:

  1. перечисление элементов множества;
  2. указание характеристического свойства элементов множества, т.е. такого свойства, которым обладают все элементы данного множества и только они.

Первым способом особенно часто задаются конечные множества. Например, множество студентов учебной группы задаётся их списком. Множество, состоящее из элементов a, b, c, … ,d ,обозначают с помощью фигурных скобок: А={a; b; c; …;d}. Множество корней уравнения х2-5х+6=0 состоит из двух чисел 2 и 3: А={2; 3}. 

Множество В целых решений неравенства -2 < х < 3 состоит из чисел –1, 0, 1, 2, поэтому В={–1; 0; 1; 2}.

Второй способ задания множества является более универсальным. Множество элементов х, обладающих данным характеристическим свойством Р(х), также записывают с помощью фигурных скобок: Х={х | Р (х)}, и читают: множество Х состоит из элементов х, таких, что выполняется свойство Р(х). Например, А={х | х2-5х+6=0}. Решив уравнение х2-5х+6=0, мы можем записать множество А первым способом: А={2; 3}. 

Может случиться, что характеристическим свойством, определяющим множество А, не обладает ни один объект. Тогда говорят, что множество А - пустое (не содержит ни одного элемента) и пишут: А= Ø.

Например, А={х | х²+9=0, хR} –множество действительных чисел х, таких, что х²+9=0- пустое множество, т.к. таких действительных чисел нет.

Включение и равенство множеств

Пусть Х и У – два множества. Если каждый элемент х множества Х является элементом множества У, то говорят, что множество Х содержится во множестве У и пишут: Х У или У Х. Говорят также, что Х включено в У или У включает Х, или что Х является подмножеством множества У. Знаки включения или относятся только ко множествам и их не следует смешивать со знаками принадлежности  и .

Если, например, А - множество всех студентов вуза, а В – множество студентов-первокурсников этого вуза, то В есть подмножество А, т.е. В А.

Пустое множество считают подмножеством любого множества Х, т.е. Ø Х, каким бы ни было множество Х.

Ясно также, что каждое множество является подмножеством самого себя: Х Х.

Если для двух множеств Х и У одновременно имеют место два включения Х У и  У Х, т.е. Х есть подмножество множества У и У есть подмножество множества Х, то множества Х и У состоят из одних и тех же элементов. Такие множества Х и У называют равными и пишут: Х=У. Например, если А={2; 3}, а В={х | х² –5х+6=0}, то А=В.

Если Х У, но Х≠ У, т.е. существует хотя бы один элемент множества У, не принадлежащий Х, то говорят, что Х есть собственное подмножество множества У, и пишут: Х У.

Далее нам потребуется множество, которое содержит в качестве своего подмножества любое другое множество. Такое «всеобъемлющее» множество будем называть универсальным и обозначать буквой U .

Диаграммы Эйлера-Венна

Для наглядного представления множеств используют диаграммы Эйлера-Венна. В этом случае множества обозначают областями на плоскости и внутри этих областей условно располагают элементы множества. Часто все множества на диаграмме размещают внутри прямоугольника, который представляет собой универсальное множество U. Если элемент принадлежит более чем одному множеству, то области, отвечающие таким множествам, должны перекрываться, чтобы общий элемент мог одновременно находиться в соответствующих областях. Выбор формы областей, изображающих множества на диаграммах, может быть произвольным (круги, внутренности эллипсов, многоугольники и т.п.). Покажем, например, с помощью диаграммы Эйлера-Венна, что множество А является подмножеством множества В:

С помощью такой диаграммы становиться наглядным, например, такое утверждение:

если АВ, а В С, то АС.

Строгое доказательство этого утверждения, не опирающееся на диаграмму, можно провести так: пусть х А; так как А В, то х В, а так как В С, то из х В следует, что х С; значит, из того, что х А, следует хС, а поэтому А С.

Операции над множествами

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

Объединение множеств

Объединением АВ множеств А и В называется множество, состоящее из всех элементов, принадлежащих хотя бы одному из множеств А или В.

Символическая запись этого определения: А В={х | хА или хВ}.

Здесь союз «или» понимается в смысле «неразделительного или», т.е. не исключается, что х может принадлежать и А и В. Отметим, что в таком случае элемент х, входящий в оба множества А и В, входит в их объединение только один раз (поскольку для множества не имеет смысла говорить о том, что элемент входит в него несколько раз).

Поясним определение объединения множеств с помощью диаграммы Эйлера-Венна:

На диаграмме объединение множеств А и В выделено штриховкой.

Если множество А определяется характеристическим свойством Р (х), а множество В - характеристическим свойством Q(х), то А В состоит из всех элементов, обладающих, по крайней мере, одним из этих свойств.

Примеры объединений двух множеств:

1) Пусть А={2; 5; 7}, В={3; 5; 6}. Тогда А В ={2; 3; 5; 6; 7}.

2) Пусть А=[-1/4; 2], В=[ -2/3; 7/4]. Тогда А В=[-2/3; 2] .

3) Пусть А= {х | х=8k, k  Z}, B={x | x=8n-4, n  Z}. Тогда A B ={x | 4m, mZ}.

Операция объединения множеств может проводиться не только над двумя множествами. Определение объединения множеств можно распространить на случай любого количества множеств и даже – на систему множеств. Система множеств определяется так: если каждому элементу α множества М отвечает множество Аα, то совокупность всех таких множеств мы будем называть системой множеств.

Объединением системы множеств {Аα} называется множество , состоящее из всех элементов, принадлежащих хотя бы одному из множеств Аα. При этом общие элементы нескольких множеств не различаются.

Таким образом, элемент х тогда и только тогда, когда найдется такой индекс α 0 М, что х A α0 .

В случае, когда М конечно и состоит из чисел 1, 2, … , n, применяется запись Если M=N, то имеем объединение последовательности множеств .

Рассмотрим ещё один пример: пусть М=(1; 2) и для каждого α є М определим множество Аα =[0;α]; тогда = [0;2).

Из определения операции объединения непосредственно следует, что она коммутативна, т.е. А1  A2 = A2 А1, и ассоциативна, т.е. (А1  A2) А3 = А1  (A2 А3).

Пересечение множеств

Пересечением А ∩ В множеств А и В называется множество, состоящее из всех элементов, принадлежащих одновременно каждому из множеств А и В.

Символическая запись этого определения: А ∩ В={х | х А и х В}.

Поясним определение пересечения множеств с помощью диаграммы Эйлера-Венна:

А ∩ В

На диаграмме пересечение множеств А и В выделено штриховкой.

Если множество А задается характеристическим свойством Р(х), a множество В-свойством Q(х), то в А ∩ В входят элементы, одновременно обладающие и свойством Р(х), и свойством Q(х).

Примеры пересечений двух множеств:

  1. Пусть А={2; 5; 7; 8}, В={3; 5; 6; 7} .Тогда А ∩ В={5; 7}.
  2. Пусть А=[-1/4; 7/4], В=[-2/3; 3/2]. Тогда А ∩ В= [-1/4; 3/2].
  3. Пусть А= {х | х=2k, k є Z}, B={x | x=3n, n є Z}. Тогда А ∩ В ={x | x=6m, m  Z}.
  4. Пусть А- множество всех прямоугольников, В-множество всех ромбов. Тогда А ∩ В -множество фигур, одновременно являющихся и прямоугольниками, и ромбами, т.е. множество всех квадратов.

Операцию пересечения можно определить и для произвольной системы множеств {Аα}, где α М. Пересечением системы множеств {Аα}, называется множество , состоящее из всех элементов, принадлежащих одновременно каждому из множеств Аα, α М, т.е. = {x | x Аα для каждого α М}.

В случае, когда М конечно и состоит из чисел 1, 2, … , n, применяется запись . Если M=N, то имеем пересечение последовательности множеств .

В рассмотренном выше примере системы множеств Аα =[0; α], αМ =(1; 2) получим:=[0;1].

Операция пересечения множеств, как и операция объединения, очевидно, коммутативна и ассоциативна, т.е. А1A2 = A2 ∩А1 и (А1A2)∩ А3= А1∩(A2 ∩ А3).

Разность множеств

Разностью А\В множеств А и В называется множество, состоящее из всех элементов множества А, которые не принадлежат множеству В, т.е.

А\В={х | х А и хВ},

что можно пояснить на диаграмме Эйлера-Венна следующим образом:

На диаграмме разность А\В выделена штриховкой.

Примеры разностей множеств:

  1. Пусть А={1; 2; 5; 7}, В={1; 3; 5; 6}. Тогда А\В ={2;7}, а В\А={3; 6}.
  2. Пусть А=[-1/4;2], В=[-2/3; 7/4]. Тогда А\В=(7/4;2], а В\А=[-2/3; -1/4).
  3. Пусть А - множество всех четных целых чисел, В - множество всех целых чисел, делящихся на 3. тогда А\В - множество всех четных целых чисел, которые не делятся на 3, а В\А –множество всех нечетных целых чисел, кратных трем.

Дополнение множества

Пусть множество А и В таковы, что АВ. Тогда дополнением множества А до множества В называется разность В\А. В этом случае применяется обозначение СBА=В\А. Если в качестве множества В берётся универсальное множество U, то применяется обозначение СА=СUА=U\А и такое множество просто называют дополнением множества А. Таким образом, символическая запись определения дополнения множества будет следующей: СА={x | x A}.

На диаграммах Эйлера-Венна можно так пояснить определения СВА и СА:

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

В качестве объектов алгебры множеств могут использоваться не только видимые или воображаемые предметы, но и разнообразные математические структуры: числа, точки, линии, интервалы, аналитические функции и т.д.

Одной из таких часто используемых структур является последовательность из двух, трех и т.д. элементов. Эти последовательности в математике называют векторами, парами, тройками, n-местными последовательностями, nками,  кортежами. Будем называть их элементарными кортежами. Количество элементов в элементарном кортеже называется размерностью этого кортежа.

Множество элементарных кортежей одной и той же размерности (n) называют многоместным (или n-местным) отношением.

"Наглядными" примерами многоместных отношений являются таблицы, в частности, таблицы, в которых содержатся сведения о персонале какой-либо фирмы, или таблицы, в которых представлены дискретные (или дискретизированные) функции или отношения типа "больше", "предшествует", "является потомком" и т.д.

Например, отношение "меньше" для множества {1, 2, 3} целых чисел можно представить как множество пар чисел {(1, 2), (1, 3), (2, 3)} или как таблицу

   

1

2

1

3

2

3

В виде многоместных отношений можно представить многие предложения естественного языка. Например, предложение "Петров взял в библиотеке книгу Шолохова "Тихий Дон" математически можно представить как элемент (кортеж) отношения "Взятые в библиотеке книги" (ВК):

ВК (Фамилия читателя, Автор книги, Название книги).

Способ представления текстов в виде отношений позволяет использовать логический анализ с помощью средств и методов математической логики. При этом используется специальная терминология: имя отношения (в нашем примере ВК) и его структура (т.е. число и состав атрибутов этого отношения) в математической логике называется предикатом. Более точно, предикатом является не само отношение, а отображение некоторого универсального отношения на множество {T, F} логических констант T (истинно) и F (ложно).

Например, если универсум содержит пары (a, c), (a, d), (b, c) и  (b, d), а отношение P содержит только две пары (a, c) и (b, c), то предикат P(x, y) можно представить как таблицу

       

Универсум

Значения истинности

X

Y

a

c

T

a

d

F

b

c

T

b

d

F

Для моделирования и анализа многоместных отношений часто используется структура, которая называется «декартово произведение множеств». В некоторых источниках эта структура называется прямым произведением множеств. Рассмотрим определение этой структуры.

Пусть задана некоторая совокупность одинаковых или различных множеств X, Y, ..., Z, общее число которых равно n. Тогда декартовым произведением этих множеств является совокупность всех возможных nместных элементарных кортежей, у которых на первом месте стоит элемент множества X, на втором – элемент множества Y, ..., а на последнем – элемент множества Z.

Декартово произведение множеств X, Y, ..., Z обозначается как XY ... Z.

Декартово произведение для n одинаковых множеств X обозначается как . Для совокупности множеств, обозначенных одинаковыми символами, отличающимися только индексами (например, , ,..., ), используется символ многократного произведения , в этом случае декартово произведение  ... можно обозначить как .

Рассмотрим несколько примеров декартовых произведений.

  1. Для двух множеств X ={a, b}, Y = {b, c} декартово произведение

XY = {(a, b), (ac), (b, b), (b, c)}.

Здесь множество содержит пары элементов, у которых в отличие от множеств порядок строго определен (т.е. их нельзя менять местами). Чтобы отличить (упорядоченные) пары от множеств, их заключают не в фигурные, а в простые круглые скобки.

  1. Исходные множества могут быть заданы непрерывными интервалами, в этом случае декартовым произведением является область, ограниченная соответствующим прямоугольником на плоскости. Например, на рисунке 1 затемненный прямоугольник вместе со своими границами является изображением декартова произведения отрезков AB и CD, находящихся на разных координатных осях. Эти отрезки можно представить как бесконечную совокупность точек. Каждая из этих точек имеет координату – действительное число, равное расстоянию от начала координат до этой точки. Тогда элементами декартова произведения в этом случае являются всевозможные пары чисел, которые обозначают координаты точек, расположенных на плоскости в пределах этого прямоугольника. Ясно, что число таких пар бесконечно.

            

                                               C

                         D

                 A            B

                          Рис. 1

Возможны более сложные структуры, формируемые с помощью декартова произведения (рисунки 2 и 3). На рисунке 2 структура из 4-х затемненных прямоугольников является изображением декартова произведения множеств интервалов {AB, CD}{EF, GH}. На рис. 3 совокупность горизонтальных отрезков на координатной плоскости, обозначенных жирными линиями, является изображением декартова произведения множества {AB, CD} отрезков одной координатной оси на множество {F, G, H} точек другой оси. Если в качестве элементов декартовых произведений использовать только точки (например, {A, B, C}{G, H}), то на плоскости само декартово произведение будет отображаться как множество точек. Аналогичные структуры можно строить не только на плоскости, но и в трехмерном, четырехмерном и т.д. пространствах.

Последние два примера показывают, что декартово произведение можно применять не только к сугубо дискретным системам, но и к системам, содержащим непрерывные точечные множества.

Запросы с использованием нескольких таблиц

Запрос SELECT на нескольких таблицах реализует операции реляционной алгебры: декартово произведение исходных таблиц (или их соединение, если указать условия соответствия значений полей разных таблиц). Для полей с одинаковыми названиями нужно указывать имя таблицы перед именем поля, разделяя их точкой.

Декартово произведение (Cartesian product).

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

Пример. Пусть имеются отношение R(A,B) и отношение S(C,D,E).

A

B

a

B

c

A

b

D

C

D

E

g

h

a

a

b

c

Тогда декартово произведение R S будет таким:

A

B

C

D

E

a

b

g

h

a

a

b

a

b

c

c

a

g

h

a

c

a

a

b

c

b

d

g

h

a

b

d

a

b

c

Соединение (join).

Эта операция определяет подмножество декартова произведения двух разносхемных отношений. Кортеж декартова произведения входит в результирующее отношение, если для атрибутов разных исходных отношений выполняется некоторое условие. Если условием является равенство атрибутов исходных отношений, такая операция называется эквисоединением. Естественным называется эквисоединение по одинаковым атрибутам исходных отношений.

Пример. Пусть имеются отношения R(A,B,C) и S(A,D,E).

A

B

C

a

b

c

c

a

d

c

h

c

g

b

d

A

D

E

g

h

a

c

b

c

h

d

d

Тогда естественное соединение R  S будет таким, как показано на рис:

A

B

C

D

E

c

a

d

b

c

c

h

c

b

c

g

b

d

h

a

Объединение (union).

Объединением двух односхемных отношений R и S называется отношение T = R U S, которое включает в себя все кортежи обоих отношений без повторов.

Декартово произведение таблиц базы данных

Cоединения - это подмножества декартова произведения. Декартово произведение «n» таблиц - это таблица, содержащая все возможные строки «r», такие, что «r» является сцеплением какой-либо строки из первой таблицы, строки из второй таблицы, ... и строки из «n-й» таблицы.  Мы уже можем выделять с помощью SELECT любое подмножество реляционной таблицы. Для получения декартова произведения нескольких таблиц с помощью SELECT, надо указать во фразе FROM перечень перемножаемых таблиц, а во фразе SELECT  все их столбцы.

Пример.

Для получения декартова произведения таблиц Food и Recept надо выдать запрос:

Select Food.*, Recept.*;

From Food, Recept

Получим таблицу, содержащую 12 х 12 = 144 строки

Эквисоединение таблиц

Если из декартова произведения убрать ненужные строки и столбцы, то можно получить актуальные таблицы, соответствующие любому из соединений. Очевидно, что отбор актуальных строк обеспечивается вводом в запрос WHERE фразы, в которой устанавливается соответствие между номером блюда в таблице Food и номером рецепта блюда в таблице  Recept .

Select Food.*, Recept.*;

From Food, Recept;

Where Food.Nom=Recept.Nomer

Такой скорректированный запрос позволит получить эквисоединение таблиц Food и Recept:.

NOM

NAME

VID

PRODUCT

MASS

STOIM

NOMER

RECEPT

1

vagetable salad

sn

vagetable

200,00

30

1

 

2

meat salad

sn

meat

200,00

40

2

 

3

fish salad

sn

fish

200,00

40

3

 

4

fish soup

so

fish

500,00

50

4

 

5

meat soup

so

meat

500,00

50

5

 

6

meat

ho

meat

210,00

60

6

 

7

fish

ho

fish

160,00

50

7

 

8

apple

de

apple

160,00

30

8

 

9

jogourt

de

jogourt

160,00

40

9

 

10

coffee

dr

coffee

200,00

10

10

 

11

milk

dr

milk

200,00

20

11

 

12

juice

dr

juice

200,00

20

12

 

Естественное соединение таблиц

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

Select Food.Nom, Food.Name, Food.Vid,Recept.Recept;

From Food, Recept;

Where Food.Nom=Recept.Nomer

Реализация естественного соединения таблиц имеет вид

NOM

NAME

VID

RECEPT

1

vagetable salad

sn

 

2

meat salad

sn

 

3

fish salad

sn

 

4

fish soup

so

 

5

meat soup

so

 

6

meat

ho

 

7

fish

ho

 

8

apple

de

 

9

jogourt

de

 

10

coffee

dr

 

11

milk

dr

 

12

juice

dr

 

Композиция таблиц

Для исключения всех столбцов, по которым проводится соединение таблиц, надо создать композицию, имеющую вид:

Select Food.Name, Food.Vid,Recept.Recept;

From Food, Recept;

Where Food.Nom=Recept.Nomer

NAME

VID

RECEPT

vagetable salad

sn

 

meat salad

sn

 

fish salad

sn

 

fish soup

so

 

meat soup

so

 

meat

ho

 

fish

ho

 

apple

de

 

jogourt

de

 

coffee

dr

 

milk

dr

 

juice

dr

 

Тета-соединение таблиц

Сконструируем надуманный запрос, позволяющий выбрать из декартова произведения списка студентов лишь те строки, в которых значение имени второкурсников "меньше" (по алфавиту) значения имени первокурсников:

Select Gr1049.Fio, Gr2049.Fio;

From Gr1049, Gr2049;

Where Gr1049.Name>Gr2049.Name 

Соединение таблиц с дополнительным условием

При формировании соединения создается рабочая таблица, к которой применимы все операции, рассмотренные на предыдущем занятии: отбор нужных строк соединения (WHERE фраза), упорядочение получаемого результата (ORDER BY фраза) и агрегатирование данных (SQL-функции и GROUP BY фраза).

Вложенные подзапросы

Виды вложенных подзапросов

Вложенный подзапрос - это подзапрос, заключенный в круглые скобки и вложенный в WHERE (HAVING) фразу предложения SELECT или других предложений, использующих WHERE фразу. Вложенный подзапрос может содержать в своей WHERE (HAVING) фразе другой вложенный подзапрос и т.д. Нетрудно догадаться, что вложенный подзапрос создан для того, чтобы при отборе строк таблицы, сформированной основным запросом, можно было использовать данные из других таблиц (например, при отборе блюд для меню использовать данные о наличии продуктов в кладовой пансионата).

Существуют простые и коррелированные вложенные подзапросы. Они включаются в WHERE (HAVING) фразу с помощью условий IN, EXISTS или одного из условий сравнения ( = | <> | < | <= | > | >= ). Простые вложенные подзапросы обрабатываются системой "снизу вверх". Первым обрабатывается вложенный подзапрос самого нижнего уровня. Множество значений, полученное в результате его выполнения, используется при реализации подзапроса более высокого уровня и т.д.

Запросы с коррелированными вложенными подзапросами обрабатываются системой в обратном порядке. Сначала выбирается первая строка рабочей таблицы, сформированной основным запросом, и из нее выбираются значения тех столбцов, которые используются во вложенном подзапросе (вложенных подзапросах). Если эти значения удовлетворяют условиям вложенного подзапроса, то выбранная строка включается в результат. Затем выбирается вторая строка и т.д., пока в результат не будут включены все строки, удовлетворяющие вложенному подзапросу (последовательности вложенных подзапросов).

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

Рассмотрим базу данных, состоящую из двух таблиц:

Proekti.dbf

ID

NAZVANIE

DATA1

DATA2

1

инвентаризация

01.06.1906

01.07.1906

2

мониторинг

15.06.1906

01.07.1906

3

финансовый отчет

20.06.1906

01.07.1906

4

анализ конкурентов

15.06.1906

01.07.1906

5

планирование продаж

20.06.1906

01.07.1906

Sotr.dbf

IDENT

FIO

DOLGNOST

POL

OKLAD

PROECT

1

Кочетков Иван Васильевич

директор

м

15000,00

2

Воробьёв Александр Игоревич

маркетолог

м

12000,00

4

3

Елизарова Надежда Алексеевна

бухгалтер

ж

13000,00

4

Коробкин Евгений Владимирович

комерческий директор

м

18000,00

5

5

Соловьёв Владислав Игоревич

финансовый аналитик

ж

12000,00

3

6

Сорокожерднева Юлия

инженер

ж

10000,00

2

7

Ландисберг Андрей Владимирович

оператор

м

10000,00

1

Простые вложенные подзапросы

Простые вложенные подзапросы используются для представления множества значений, исследование которых должно осуществляться в каком-либо предикате IN, что иллюстрируется в следующем примере: выдать название проекта, выполняемого сотрудником номер 2.

Select Nazvanie;

From Proekti;

Where ID In (Select Proect;

From Sotr;

Where Ident=2)

Результат:

NAZVANIE

анализ конкурентов

При обработке полного запроса система выполняет, прежде всего, вложенный подзапрос. Этот запрос эквивалентен запросу:

Select Proekti.Nazvanie;

From Proekti, Sotr;

Where Proekti.ID=Sotr.Proect;

AND Sotr.Ident=2

Использование одной и той же таблицы во внешнем и вложенном подзапросе

Выдать название и вид блюд с массой 200 г.

Select Name, Vid;

From Food;

Where Mass In (Select Mass;

From Food;

Where Mass=200)

Результат:

NAME

VID

vagetable salad

sn

meat salad

sn

fish salad

sn

coffee

dr

milk

dr

juice

dr

При обработке полного запроса система выполняет, прежде всего, вложенный подзапрос. Этот запрос эквивалентен такому простому запросу:

Select Name, Vid;

From Food;

Where Mass =200

Отметим, что ссылка на Food во вложенном подзапросе означает не то же самое, что ссылка на Food во внешнем запросе. В действительности, два имени Food обозначают различные значения. Чтобы этот факт стал явным, полезно использовать псевдонимы, например, X и Y:

Select X.Name, X.Vid;

From Food X;

Where X.Mass In (Select Y.Mass;

From Food Y;

Where Y.Mass=200)

Здесь X и Y - произвольные псевдонимы таблицы Food, определяемые во фразе FROM и используемые как явные уточнители во фразах SELECT и WHERE. Напомним, что псевдонимы определены лишь в пределах одного запроса.

Вложенный подзапрос с оператором сравнения, отличным от IN

Выдать номера поставщиков, находящихся в том же городе, что и поставщик с номером 6.

Select Nazvanie;

From Proekti;

Where ID =(Select Proect;

From Sotr;

Where Ident=2)

В подобных запросах можно использовать и другие операторы сравнения (<>, <=, <, >= или >), однако, если вложенный подзапрос возвращает более одного значения и не используется оператор IN, будет возникать ошибка.

Объединение (UNION)

В литературе рассматривалась реляционная операция "Объединение", позволяющая получить отношение, состоящее из всех строк, входящих в одно или оба объединяемых отношения. Но при этом исходные отношения или их объединяемые проекции должны быть совместимыми по объединению. Для SQL это означает, что две таблицы можно объединять тогда и только тогда, когда:

  1. они имеют одинаковое число столбцов, например, m;
  2. для всех i (i = 1, 2, ..., m) i-й столбец первой таблицы и i-й столбец второй таблицы имеют в точности одинаковый тип данных.

Предложением с UNION можно объединить любое число таблиц (проекций таблиц).

Пример: список студентов двух групп.

Select GR1049.*;

From GR1049;

UNION;

Select GR2049.*;

From GR2049

Реализация операций реляционной алгебры предложением SELECT

С помощью предложения SELECT можно реализовать любую операцию реляционной алгебры.

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

Select Proekti.Nazvanie;

From Proekti;

Where Proekti.ID>”2”

NAZVANIE

финансовый отчет

анализ конкурентов

планирование продаж

Проекция (вертикальное подмножество) таблицы создается из указанных ее столбцов (в заданном порядке) с последующим исключением избыточных дубликатов строк. Пример:

Select Distinct Sotr.FIO, Sotr.Dolgnost;

From Sotr

FIO

DOLGNOST

Воробьёв Александр Игоревич

Маркетолог

Елизарова Надежда Алексеевна

Бухгалтер

Коробкин Евгений Владимирович

комерческий директор

Кочетков Иван Васильевич

Директор

Ландисберг Андрей Владимирович

Оператор

Соловьёв Владислав Игоревич

финансовый аналитик

Сорокожерднева Юлия

Инженер

Объединение двух таблиц содержит те строки, которые есть либо в первой, либо во второй, либо в обеих таблицах.

Select GR1049.*;

From GR1049;

Where Fam like "А%";

UNION;

Select GR2049.*;

From GR2049;

Where Fam like "А%"

Пересечение двух таблиц содержит только те строки, которые есть и в первой, и во второй. Пример:

Select Proekti.Nazvanie;

From Proekti, Sotr;

Where Proekti.ID=Sotr.Proect;

AND Sotr.Ident>2

NAZVANIE

планирование продаж

финансовый отчет

мониторинг

инвентаризация

Разность двух таблиц содержит только те строки, которые есть в первой, но отсутствуют во второй. 

Select Nazvanie;

From Proekti;

Where ID Not In (Select Proect;

From Sotr)

Результат – пустой список


 

А также другие работы, которые могут Вас заинтересовать

74. Управление маркетингом на предприятии Цифрал-Срвис 835 KB
  Миссия компании Цифрал-Срвис заключается в деятельности на благо общества и выражается в предоставлении высококачественных услуг в сфере обеспечения безопасности. Товар поставляется только в подъезды имеющие аудиодомофонное оборудование.
75. Расчет и конструирование машин и аппаратов пищевых производств 584 KB
  Современные методы расчета подшипников качения и подшипников скольжения. Общие сведения о вариантах применения, конструкциях, режимах работы подшипников. Условный расчет подшипников скольжения, статическая грузоподъемность.
76. Решение задач оптимизации. Метод равномерного симплекса после завершения одного оборота 770.5 KB
  Метод равномерного симплекса после завершения одного оборота в области расположения стационарной точки. Отработка навыков решения задач безусловной оптимизации функции нескольких переменных методами прямого поиска и отработка навыков решения задач безусловной оптимизации градиентными методами.
77. Разработка методики проектирования схемы малошумящего усилителя 498.5 KB
  Усилитель выполнен в виде монолитной микроволновой интегральной схемы, цепи усилителя состоят из элементов с сосредоточенными параметрами. Амплитудно-частотная характеристика (АЧХ) усилителя без согласующих цепей.
78. Классы Фиттинга конечных групп. Изучение множества с заданными алгебраическими операциями 614.5 KB
  Изучение множества с заданными алгебраическими операциями и отношениями. Двойственность классов Фиттинга, приведение последовательности и доступности изложения основных классовых и групповых теорий.
79. WEB–орієнтована інформаційна система Math 615.5 KB
  Теоретичні відомості розробки інформаційного сервера. Крім доступу до статичних документів сервера існує можливість одержання документів як результату виконання прикладної програми. Саме зазначені технології на основі загальних принципів побудови мережі Internet і, особливо, на базі системи протоколів.
80. Експлуатації та ремонт транспортних засобів в ПСП Комишанське 388 KB
  Основні положення технічного обслуговування транспортних засобів сільськогосподарського призначення. Використання транспортних технологій для перевезення цукрових буряків, безпека розвантажувальних та навантажувальних робіт.
81. Особенности уголовной ответственности и наказания несовершеннолетних 1.46 MB
  История развития уголовного законодательства об ответственности несовершеннолетних. Сущность, цели и принципы наказания несовершеннолетних. Уголовно-правовые меры противодействия преступности.
82. Способы обработки деталей фрезерными лезвиями и другими способами 1.55 MB
  Методы обработки резьбы лезвийным инструментом. Особенности и технологиче-ские возможности. Способы нарезания прямозубых конических колес методами копирования. Резание материалов с наложением вибраций.