metBD (1084482), страница 33

Файл №1084482 metBD (Учебное пособие) 33 страницаmetBD (1084482) страница 332018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 33)

Таблица 50

НОМЕР_

ПОСТАВЩИКА

ФАМИЛИЯ

СОСТОЯНИЕ

S.ГОРОД

S1

Смит

20

Лондон

S1

Смит

20

Лондон

S1

Смит

20

Лондон

S2

Джонс

10

Париж

S2

Джонс

10

Париж

S3

Блейк

30

Париж

S3

Блейк

30

Париж

S4

Кларк

20

Лондон

S4

Кларк

20

Лондон

S4

Кларк

20

Лондон

Продолжение таблицы 50

НОМЕР_

ДЕТАЛИ

НАЗВАНИЕ

ЦВЕТ

ВЕС

P.ГОРОД

P1

Гайка

Красный

12

Лондон

P4

Винт

Красный

14

Лондон

P6

Блюм

Красный

19

Лондон

P2

Болт

Зеленый

17

Париж

P5

Кулачок

Голубой

12

Париж

P2

Болт

Зеленый

17

Париж

P5

Кулачок

Голубой

12

Париж

P1

Гайка

Красный

12

Лондон

P4

Винт

Красный

14

Лондон

P6

Блюм

Красный

19

Лондон

Пояснение. Из формулировки задачи на естественном языке ясно, что требуемые данные можно получить из двух таблиц — S и Р. Поэтому в формулировке запроса на языке SQL мы, прежде всего, указываем эти две таблицы во фразе FROM, а затем выра­жаем во фразе WHERE соединение между ними, т. е. тот факт, что значения ГОРОД должны быть равны. Для того чтобы по­нять, как это делается, представим себе две строки, по одной из каждой таблицы, например строки, показанные ниже:

НОМЕР_

ПОСТАВЩИКА

ФАМИЛИЯ

СОСТОЯНИЕ

ГОРОД

S1

Смит

20

Л ондон

равны


НОМЕР_

ДЕТАЛИ

НАЗВАНИЕ

ЦВЕТ

ВЕС

ГОРОД

P1

Гайка

Красный

12

Лондон

Из этих двух строк можно видеть, что поставщик S1 и деталь Р1 в действительности «соразмещены». Из таких двух строк бу­дет сформирована строка результата:

НОМЕР_

ПОСТАВЩИКА

ФАМИЛИЯ

СОСТОЯНИЕ

ГОРОД

S1

Смит

20

Лондон

НОМЕР_

ДЕТАЛИ

НАЗВАНИЕ

ЦВЕТ

ВЕС

ГОРОД

P1

Гайка

Красный

12

Лондон

поскольку они удовлетворяют предикату во фразе WHERE (S.ГО­РОД =Р.ГОРОД). Это имеет место и для всех других пар строк, содержащих соответствующие значения ГОРОД. Обратите вни­мание на то, что поставщик S5, размещающийся в Атенсе, не по­падает в результирующую таблицу, так как нет каких-либо де­талей, хранимых в этом городе. Подобным же образом результат не содержит детали Р3, хранимой в Риме, ввиду того, что нет поставщиков, размещенных в Риме.

Результат данного запроса называется соединением таблиц S и P по соответствию значений ГОРОД. Термин «соединение» ис­пользуется также для обозначения операции конструирования такого результата. Условие S.ГОРОД =Р.ГОРОД называется ус­ловием соединения или предикатом соединения. В связи с приве­денным примером нужно отметить ряд моментов. Одни из них имеют важное значение, другие не настолько существенны.

  • Оба поля в предикате соединения должны быть либо число­выми, либо строками литер. Не обязательно, чтобы их типы данных были идентичны. Однако, по соображениям произво­дительности, это было бы, вообще говоря, неплохо.

  • Необязательно, чтобы поля в предикате соединения имели оди­наковые имена, хотя очень часто это будет именно так.

  • Нет необходимости в том, чтобы оператор сравнения в пре­дикате соединения обязательно был равенством, хотя это бу­дет очень часто. В дальнейшем будут приведены примеры такого рода. В случае оператора равенства соединение называют иногда эквисоединением.

  • Фраза WHERE в SELECT-соединении может включать, по­мимо самого предиката соединения, другие условия.

  • Можно, конечно, предусмотреть в SELECT выборку только спе­цифицированных полей соединения, а не их всех.

  • Выражение

SELECT S.*, P.*

FROM S, P

может быть еще более упрощено:

SELECT *

FROM S, Р

С другой стороны, оно может быть записано и в расширенном виде:

SELECT НОМЕР_ПОСТАВЩИКА, ФАМИЛИЯ, СОСТОЯНИЕ, S.ГОРОД, НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС, Р.ГОРОД

FROM S, P

В такой формулировке для S.ГОРОД и Р.ГОРОД во фразе SELECT следует указывать их уточненные имена, как пока­зано в примере, поскольку неуточненное имя ГОРОД было бы двусмысленным.

  • По определению, эквисоединение должно продуцировать ре­зультат, содержащий два идентичных столбца. Если исклю­чить один из этих столбцов, то оставшееся называется есте­ственным соединением. Для того чтобы построить естествен­ное соединение таблиц S и Р по городам в SQL, следовало бы записать:

SELECT НОМЕР_ПОСТАВЩИКА, ФАМИЛИЯ, СОСТОЯНИЕ, S.ГОРОД, НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС

FROM S, P

WHERE S.ГОРОД = Р.ГОРОД;

Естественное соединение является, вероятно, одной из наибо­лее полезных форм соединения в такой степени, что мы часто используем неуточненный термин «соединение» специ­ально для обозначения этого случая.

  • Можно образовывать соединения также и трех, четырех, ... или любого числа таблиц.

  • В табл. 51 рассматривается альтернативный (и полезный) способ, позволяющий представить себе, каким образом концептуально могут конструироваться соединения. Прежде всего, построим декартово произведение таблиц, перечисленных во фразе FROM. Декартово произведение множества, состоящего из n таблиц, — это таблица, содержащая всевозможные строки r, такие, что r является конкатенацией какой-либо строки из первой таб­лицы, строки из второй таблицы, ... и строки из n-й таблицы.

Таблица 51

НОМЕР_

ПОСТАВЩИКА

ФАМИЛИЯ

СОСТОЯНИЕ

S.ГОРОД

S1

Смит

20

Лондон

S1

Смит

20

Лондон

S1

Смит

20

Лондон

S1

Смит

20

Лондон

S1

Смит

20

Лондон

S1

Смит

20

Лондон

S2

Джонс

10

Париж

S5

Адамс

30

Атенс

Продолжение таблицы 51

НОМЕР_

ДЕТАЛИ

НАЗВАНИЕ

ЦВЕТ

ВЕС

P.ГОРОД

P1

Гайка

Красный

12

Лондон

P2

Болт

Зеленый

17

Париж

P3

Винт

Голубой

17

Рим

P4

Винт

Красный

14

Лондон

P5

Кулачок

Голубой

12

Париж

P6

Блюм

Красный

19

Лондон

P1

Гайка

Красный

12

Лондон

P6

Блюм

Красный

19

Лондон

Например, табл. 51 (назовем ее СР) представляет собой декартовым произведением таблиц S и Р (в указанном по­рядке). Полная таблица СР содержит 5х6=30 строк. Теперь исключим из этого декартова произведения все такие строки, которые не удовлетворяют предикату соединения. То, что ос­танется, является требуемым соединением. В рассматриваемом случае мы исключаем из таблицы СР все те строки, в которых S.ГОРОД не равен Р.ГОРОД. В результате получим в точно­сти приведенное выше соединение. Между прочим, вполне возможно, хотя, может быть, и несколько необычным образом, сформулировать в языке SQL запрос, результатом которого будет декартово произведение. Например:

SELECT S.*, P.*

FROM S, Р;

Результат. Упомянутая выше таблица СР.

Характеристики

Тип файла
Документ
Размер
1,9 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее