RSS    

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

Очевидно, что отбор актуальных строк обеспечивается вводом в запрос WHERE фразы, в которой устанавливается соответствие между:

·     кодами трапез (Т) в таблицах Меню и Трапезы (Меню.Т = Трапезы.Т),

·     кодами видов блюд (В) в таблицах Меню и Вид_блюд (Меню.В = Вид_блюд.В),

·     номерами блюд (БЛ) в таблицах Меню и Блюда (Меню.БЛ = Блюда.БЛ).

Такой скорректированный запрос

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

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

WHERE   Меню.Т = Трапезы.Т

AND     Меню.В = Вид_блюд.В

AND     Меню.БЛ = Блюда.БЛ;

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

Т

В

БЛ

Т

Трапеза

В

Вид

БЛ

Блюдо

В

Основа

Выход

Труд

1 З 3 1 Завтрак З Закуска 3 Салат витаминный З Овощи 200. 4
1 З 6 1 Завтрак З Закуска 6 Мясо с гарниром З Мясо 250. 3
1 Г 19 1 Завтрак Г Горячее 19 Омлет с луком Г Яйца 200. 5

. . .

3 Г 16 3 Ужин Г Горячее 16 Драчена Г Яйца 180. 4
3 Н 30 3 Ужин Н Напиток 30 Компот Н Фрукты 200. 2
3 Н 31 3 Ужин Н Напиток 31 Молочный напиток Н Молоко 200. 2

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

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

SELECT  Т, В, БЛ, Трапеза, Вид, Блюдо, Основа, Выход, Труд

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

WHERE   Меню.Т = Трапезы.Т

AND     Меню.В = Вид_блюд.В

AND     Меню.БЛ = Блюда.БЛ;

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


Т

В

БЛ

Трапеза

Вид

Блюдо

Основа

Выход

Труд

1 З 3 Завтрак Закуска Салат витаминный Овощи 200. 4
1 З 6 Завтрак Закуска Мясо с гарниром Мясо 250. 3
1 Г 19 Завтрак Горячее Омлет с луком Яйца 200. 5

3 Г 16 Ужин Горячее Драчена Яйца 180. 4
3 Н 30 Ужин Напиток Компот Фрукты 200. 2
3 Н 31 Ужин Напиток Молочный напиток Молоко 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, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24


Новости


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

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

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.