Введение в язык SQL запросов к базам данных. Баканов В.М. - 26 стр.

UptoLike

Составители: 

- 26 -
ACCOUNTIG CLARK MANAGER 2,460.00
ACCOUNTIG MILLER CLERC 1,300.00
RESEARCH SCOTT ANALYST 3,000.00
RESEARCH FORD ANALYST 3,000.00
RESEARCH JONES MANAGER 2,976.00
RESEARCH ADAMS CLERC 1,100.00
RESEARCH SMITH CLERC 800.00
SALES BLAKE MANAGER 2,850.00
SALES ALLEN SALESMAN 1,600.00
SALES TURNER SALESMAN 1,500.00
SALES WARD SALESMAN 1,250.00
SALES MARTIN CLERC 950.00
Даже этот простой пример дает понятие о мощности языка SQL. При
программировании с помощью процедурных языков процедура соединения
всего двух таблиц требует составления и отладки достаточно сложной про-
граммы (содержащей минимум один вложенный в другой цикл по записям
таблиц), которую к тому же непросто сделать эффективной в работе. Требуе-
мая программа
становится значительно более сложной и громоздкой при
увеличении количества соединяемых таблиц, время выполнения ее возрас-
тает экспоненциально. В очередной раз подчеркнем, что при использовании
SQL пользователь сообщает, ЧТО он хочет получить, а не КАК это сделать.
Иерархические и сетевые системы управления базами данных хранят не-
которую информацию типа значений и другого
типа - указателей. В сетевых
системах, например, информация о том, что работник SMITH занимает
должность CLERK, хранится как значение в некоем поле. Информация,
что SMITH работает в отделе 20, будет храниться как указатель из записи
SMITH на запись отдела 20. Только информация, хранимая в виде указате-
лей, может быть использована для сопоставления одной записи другой в се-
тевой или иерархической базе данных. Решение, хранить ли информацию в
виде указателей или значений, должно быть сделано при определении базы
данных. Таким образом, сетевая или иерархическая система имеет соотно-
шения, основанные на указателях, и предопределена как статическая; из-
менение связей потребует перестройки всего файла.
В противоположность этому реляционные БД хранят все
данные одно-
типным способом - как значения, хранимые в полях. Можно использовать
любое значение для ассоциирования или соединения одной таблицы с дру-
гой и легко определить соотношения между значениями, когда вводится за-
прос, а не когда создаются сами таблицы.
Таким образом, соотношения в реляционной базе данных являются ос-
нованными на значениях
и динамическими, что обеспечивает макси-
мальную гибкость, представляемую пользователю в ответ на самые неожи-
данные запросы.
                                    - 26 -


 ACCOUNTIG      CLARK        MANAGER         2,460.00
 ACCOUNTIG      MILLER       CLERC           1,300.00
 RESEARCH       SCOTT        ANALYST         3,000.00
 RESEARCH       FORD         ANALYST         3,000.00
 RESEARCH       JONES        MANAGER         2,976.00
 RESEARCH       ADAMS        CLERC           1,100.00
 RESEARCH       SMITH        CLERC           800.00
 SALES          BLAKE        MANAGER         2,850.00
 SALES          ALLEN        SALESMAN        1,600.00
 SALES          TURNER       SALESMAN        1,500.00
 SALES          WARD         SALESMAN        1,250.00
 SALES          MARTIN       CLERC           950.00

     Даже этот простой пример дает понятие о мощности языка SQL. При
программировании с помощью процедурных языков процедура соединения
всего двух таблиц требует составления и отладки достаточно сложной про-
граммы (содержащей минимум один вложенный в другой цикл по записям
таблиц), которую к тому же непросто сделать эффективной в работе. Требуе-
мая программа становится значительно более сложной и громоздкой при
увеличении количества соединяемых таблиц, время выполнения ее возрас-
тает экспоненциально. В очередной раз подчеркнем, что при использовании
SQL пользователь сообщает, ЧТО он хочет получить, а не КАК это сделать.
     Иерархические и сетевые системы управления базами данных хранят не-
которую информацию типа значений и другого типа - указателей. В сетевых
системах, например, информация о том, что работник SMITH занимает
должность CLERK, хранится как значение в некоем поле. Информация,
что SMITH работает в отделе 20, будет храниться как указатель из записи
SMITH на запись отдела 20. Только информация, хранимая в виде указате-
лей, может быть использована для сопоставления одной записи другой в се-
тевой или иерархической базе данных. Решение, хранить ли информацию в
виде указателей или значений, должно быть сделано при определении базы
данных. Таким образом, сетевая или иерархическая система имеет соотно-
шения, основанные на указателях, и предопределена как статическая; из-
менение связей потребует перестройки всего файла.
     В противоположность этому реляционные БД хранят все данные одно-
типным способом - как значения, хранимые в полях. Можно использовать
любое значение для ассоциирования или соединения одной таблицы с дру-
гой и легко определить соотношения между значениями, когда вводится за-
прос, а не когда создаются сами таблицы.
     Таким образом, соотношения в реляционной базе данных являются ос-
нованными на значениях и динамическими, что обеспечивает           макси-
мальную гибкость, представляемую пользователю в ответ на самые неожи-
данные запросы.