RSS    

   Реферат: Организация Web-доступа к базам данных с использованием SQL-запросов

Запросы, использующие соединения

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

Так как декартово произведение 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    Меню, Трапезы, Вид_блюд, Блюда;

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

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

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


Меню

Трапезы

Вид_блюд

Блюда

Т

В

БЛ

Т

Трапеза

В

Вид

БЛ

Блюдо

В

Основа

Выход

Труд

1 З 3 1 Завтрак З Закуска 1 Салат летний З Овощи 200. 3
1 З 3 1 Завтрак З Закуска 2 Салат мясной З Мясо 200. 4
1 З 3 1 Завтрак З Закуска 3 Салат витаминный З Овощи 200.

4 *

. . .

1 З 3 1 Завтрак З Закуска 12 Суп молочный С Молоко 500. 3
1 З 3 1 Завтрак З Закуска 13 Бастурма Г Мясо 300. 5

. . .

1 З 3 1 Завтрак З Закуска 32 Кофе черный Н Кофе 100. 1
1 З 3 1 Завтрак З Закуска 33 Кофе на молоке Н Кофе 200. 2
1 З 6 1 Завтрак З Закуска 1 Салат летний З Овощи 200. 3
1 З 6 1 Завтрак З Закуска 2 Салат мясной З Мясо 200. 4
1 З 6 1 Завтрак З Закуска 3 Салат витаминный З Овощи 200. 4
1 З 6 1 Завтрак З Закуска 4 Салат рыбный З Рыба 200. 4
1 З 6 1 Завтрак З Закуска 5 Паштет из рыбы З Рыба 120. 5
1 З 6 1 Завтрак З Закуска 6 Мясо с гарниром З Мясо 250.

3 *

. . .

Рисунок 2.6

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.