Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Новое на сайте
Топовые новости
Новое

Требуется извлечь только имена заказчиков

Требуется извлечь только имена заказчиковЕсли требуется извлечь только имена заказчиков, иерархическая база отработает исключительно быстро, напрямую переходя от родительской таблицы к дочерней. В то же время для получения любой информации из такой базы требуется четкое знание ее структуры, которую вряд ли можно назвать гибкой. К примеру, если вы решите оформлять заказы через посредников, придется полностью перестраивать все отношения, так как теперь таблица ORDER HEADER более не будет связана напрямую с таблицей CUSTOMER. Во все запросы теперь придется внедрить дополнительный этап: поиск посредника, оформившего заказ, и определение конечного потребителя. Также совершенно очевидно, что проблемы избыточности избежать не удастся: если найдется такой конечный потребитель, который оформляет заказы более чем через одного агента, информацию о посредниках придется реплицировать в несколько таблиц. Спрашивается, как поступать, если некоторые клиенты не оформляли заказы, или существуют товары, которые еще никто не покупал? С такой ситуацией иерархическая база данных попросту не справится, поскольку добраться до информации в дочерней таблице при отсутствии указателя на нее в родительской невозможно. Из самого определения иерархии следует, что не может существовать как товаров, так и клиентов без заказов, хотя на практике такие ситуации вполне естественны. Иерархические базы данных неплохо поддерживают отношения “один ко многим” (об этом речь пойдет в главе 2). Однако во многих ситуациях требуется, чтобы один дочерний объект был связан со множеством родительских. К примеру, один товар может присутствовать во множестве заказов, а каждый заказ содержать несколько продуктов. Для подобных вопросов иерархические базы данных не позволяют получить решение (по крайней мере простое).