русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ADD LEFT_BOUND INTEGER


Дата добавления: 2015-07-09; просмотров: 580; Нарушение авторских прав


Заполним эти новые столбцы следующими числами:

UPDATE Tree SET LEFT_BOUND = 1 , RIGHT_BOUND = 26 WHERE ID = 1

UPDATE Tree SET LEFT_BOUND = 2 , RIGHT_BOUND = 7 WHERE ID = 2

UPDATE Tree SET LEFT_BOUND = 8 , RIGHT_BOUND = 19 WHERE ID = 3

UPDATE Tree SET LEFT_BOUND = 20, RIGHT_BOUND = 25 WHERE ID = 4

UPDATE Tree SET LEFT_BOUND = 3 , RIGHT_BOUND = 4 WHERE ID = 5

UPDATE Tree SET LEFT_BOUND = 5 , RIGHT_BOUND = 6 WHERE ID = 6

UPDATE Tree SET LEFT_BOUND = 9 , RIGHT_BOUND = 10 WHERE ID = 7

UPDATE Tree SET LEFT_BOUND = 11, RIGHT_BOUND = 16 WHERE ID = 8

UPDATE Tree SET LEFT_BOUND = 17, RIGHT_BOUND = 18 WHERE ID = 9

UPDATE Tree SET LEFT_BOUND = 21, RIGHT_BOUND = 22

WHERE ID = 10

UPDATE Tree SET LEFT_BOUND = 23, RIGHT_BOUND = 24

WHERE ID = 11

UPDATE Tree SET LEFT_BOUND = 12, RIGHT_BOUND = 13

WHERE ID = 12

UPDATE Tree SET LEFT_BOUND = 14, RIGHT_BOUND = 15

WHERE ID = 13

Фактически мы реализовали стек, нумеруя строки данных. Вот поясняющая картинка:


 

ALL

SEA  
SUBMARINE  
 
BOAT  
 
 
EARTH  
CAR  
 
TWO WHEELES  
MOTORCYCLE  
 
BYCYCLE  
 
 
TRUCK  
 
 
AIR  
ROCKET  
 
PLANE  
 
 

 

Теперь, чтобы получить всех предков МОТОЦИКЛА, мы только берем границы МОТОЦИКЛА (MOTORCYCLE) - слева 12, а справа 13 - и помещаем их в предложение WHERE, выбирая данные, правая граница которых превышает 12, а левая меньше 13.

И вот запрос, дающий тот же самый результат, что и сложный иерархический рекурсивный запрос:



SELECT *
FROM Tree
WHERE RIGHT_BOUND > 12

AND LEFT_BOUND < 13;

Результат  
ID ID_FATHER NAME RIGHT_BOUND LEFT_BOUND
NULL ALL
EARTH
TWO WHEELES
MOTORCYCLE

 

Такое представление деревьев хорошо известно в литературе по БД, особенно в трудах Джо Селко ("Деревья и иерархии" и т. д.).

Пример использования СТЕ для решения задачи Коммивояжера.

Проблема состоит в том, чтобы проехать на машине от Парижа до Тулузы, используя сеть автострад.

385 420 470   375 335 305 320     240 205

Создадим таблицу и занесем данные:
CREATE TABLE TUR

(FROM_TOWN VARCHAR(32),

FROM_TOWN TO_TOWN MILES
PARIS NANTES
PARIS CLERMONT-FERRAND
PARIS LYON
CLERMONT-FERRAND MONTPELLIER
CLERMONT-FERRAND TOULOUSE
LYON MONTPELLIER
LYON MARSEILLE
MONTPELLIER TOULOUSE
MARSEILLE NICE


<== предыдущая лекция | следующая лекция ==>
VALUES (1, NULL, 'ALL'), (2, 1, 'SEA'), (3, 1, 'EARTH'), | TO_TOWN VARCHAR(32),


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.36 сек.