Новые книги

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

Книга рассказывает об истории возникновения и развития технологий компьютерных вирусов, их разновидностях, внутренней архитектуре, способах распространения и принципах действия. Книга позволит читателям познакомиться с таинственным теневым миром киберпреступности, представители которого ежедневно осуществляют атаки на компьютеры простых пользователей по всему миру.
Эта книга про то, как создать успешный канал на Youtube. Зачем? Например, чтобы зарабатывать деньги разными способами. Кроме того, с помощью канала на Youtube можно делиться идеями, учить людей, рекламировать продукцию и осуществлять пропаганду — в общем, влиять на умы и сердца людей в корыстных и бескорыстных целях.

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

3.2. Запросы, использующие соединения
3.2.1. Декартово произведение таблиц

В литературе [2] показано, что соединения - это подмножества декартова произведения. Так как декартово произведение n таблиц - это таблица, содержащая все возможные строки r, такие, что r является сцеплением какой-либо строки из первой таблицы, строки из второй таблицы, ... и строки из n-й таблицы (а мы уже научились выделять с помощью SELECT любое подмножество реляционной таблицы), то осталось лишь выяснить, можно ли с помощью SELECT получить декартово произведение. Для получения декартова произведения нескольких таблиц надо указать во фразе FROM перечень перемножаемых таблиц, а во фразе SELECT – все их столбцы.

Так, для получения декартова произведения Вид_блюд и Трапезы надо выдать запрос

SELECT	Вид_блюд.*, Трапезы.*
FROM	Вид_блюд, Трапезы;

Получим таблицу, содержащую 5 х 3 = 15 строк:

ВВидТТрапеза
ЗЗакуска1Завтрак
ЗЗакуска2Обед
ЗЗакуска3Ужин
ССуп1Завтрак
ССуп2Обед
ССуп3Ужин
ГГорячее1Завтрак
ГГорячее2Обед
ГГорячее3Ужин
ДДесерт1Завтрак
ДДесерт2Обед
ДДесерт3Ужин
ННапиток1Завтрак
ННапиток2Обед
ННапиток3Ужин

В другом примере, где перемножаются таблицы Меню, Трапезы, Вид_блюд, Блюда:

SELECT Меню.*, Трапезы.*, Вид_блюд.*, Блюда.*
FROM	Меню, Трапезы, Вид_блюд, Блюда;

образуется таблица (рис 3.1), содержащая 21 х 3 х 5 х 33 = 10395 строк.

Из первых 39 строк этой таблицы лишь две актуальных (отмечены "*"): в них совпадают номера блюд таблиц Меню и Блюда. В остальных – полная чепуха: к закускам отнесены супы и напитки, на завтрак предлагается незапланированный суп и т.д.

3.1 | Содержание | 3.2.2