Использование физических указателей было одновременно и сильной, и слабой стороной иерархических и сетевых систем управления базами данных. Сильной, поскольку они позволяли извлекать данные, связанные определенными отношениями. Слабой, поскольку эти отношения должны быть определены до запуска системы. Извлечь данные на основе других отношений было сложно, если вообще возможно.
В 1970 году Е.Ф. Кодд опубликовал революционную по содержанию статью (Codd, 1970), которая всерьез поколебала устоявшиеся представления о базах данных. Он выдвинул идею, что данные нужно связывать в соответствии с их внутренними логическими возможностями, а не физическими указателями. Таким образом, пользователи смогут копировать данные из разных источников, если логическая информация, необходимая для такого комбинирования, присутствует в исходных данных. Это открыло новые возможности для информационно-управляющих систем, поскольку запросы к базам данных теперь не были ограничены физическими указателями.
Рис. 1.11. Логическая связь, не поддерживаемая физическим указателем
Для того чтобы понять, какие недостатки присущи системам, основанным на физических указателях, рассмотрим рис. 1.11. На нем показано, что файлы CUSTOMER, INVOICE и INVOICE LINE связаны физическими указателями. Файлы MANUFACTURER (ИЗГОТОВИТЕЛЬ) и PRODUCT тоже связаны. Пунктирная линия между INVOICE LINE и PRODUCT обозначает, что между ними существует логическая связь, поскольку каждая строка счета относится к конкретному товару. Однако предположим, что файл PRODUCT не привязан к файлу INVOICE LINE физическим указателем. Как тогда, составить следующий отчет?
Для каждого клиента перечислить изготовителей приобретенных им товаров.
Для составления такого отчета требуется двигаться от файла CUSTOMER через INVOICE и INVOICE LINE к PRODUCT и затем к MANUFACTURER.