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

Рисунок 2.6

Очевидно, что отбор актуальных строк обеспечивается вводом в запрос 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


Страница: