Рефераты. Web-доступ к базам данных - (реферат)

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

    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. 5

Очевидно, что отбор актуальных строк обеспечивается вводом в запрос WHERE фразы, в которой устанавливается соответствие между: кодами трапез (Т) в таблицах Меню и Трапезы (Меню. Т = Трапезы. Т), кодами видов блюд (В) в таблицах Меню и Вид_блюд (Меню. В = Вид_блюд. В), номерами блюд (БЛ) в таблицах Меню и Блюда (Меню. БЛ = Блюда. БЛ). Такой скорректированный запрос

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

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

    В
    БЛ
    Т
    Трапеза
    В
    Вид
    БЛ
    Блюдо
    В
    Основа
    Выход
    Труд
    1
    З
    Овощи
    200.
    4
    1
    З
    Мясо
    250.
    3
    1
    Г
    Яйца
    200.
    5
    ... .
    3
    Г
    Яйца
    180.
    4
    3
    Н
    Фрукты
    200.
    2
    3
    Н
    Молоко
    200.
    2
    Естественное соединение таблиц

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

    SELECT Т, В, БЛ, Трапеза, Вид, Блюдо, Основа, Выход, Труд
    FROM Меню, Трапезы, Вид_блюд, Блюда
    WHERE Меню. Т = Трапезы. Т
    AND Меню. В = Вид_блюд. В
    AND Меню. БЛ = Блюда. БЛ;
    Реализация естественного соединения таблиц имеет вид
    Т
    В
    БЛ
    Трапеза
    Вид
    Блюдо
    Основа
    Выход
    Труд
    1
    З
    200.
    4
    1
    З
    250.
    3
    1
    Г
    200.
    5
    …
    3
    Г
    180.
    4
    3
    Н
    200.
    2
    3
    Н
    200.
    2
    Композиция таблиц

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

    SELECT Трапеза, Вид, Блюдо, Основа, Выход, Труд
    FROM Меню, Трапезы, Вид_блюд, Блюда
    WHERE Меню. Т = Трапезы. Т
    AND Меню. В = Вид_блюд. В
    AND Меню. БЛ = Блюда. БЛ;
    имеющую вид
    Трапеза
    Блюдо
    Вид
    Основа
    Выход
    Труд
    Завтрак
    Салат витаминный
    Закуска
    Овощи
    200.
    4
    Завтрак
    Мясо с гарниром
    Закуска
    Мясо
    250.
    3
    Завтрак
    Омлет с луком
    Горячее
    Яйца
    200.
    5
    ... .
    Ужин
    Драчена
    Горячее
    Яйца
    180.
    4
    Ужин
    Компот
    Напиток
    Фрукты
    200.
    2
    Ужин
    Молочный напиток
    Напиток
    Молоко
    200.
    2
    Тета-соединение таблиц

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.