| Тема: |
О типах связей в сетевой модели данных. |
|
Сообщение:
|
Рассмотрим понятие реляционной связи в реляционной модели и понятие указателя в сетевой модели данных. Реляционная связь образуется по равенству значений аттрибутов и является симметричной. Указатель в отличие от отношения в реляционных базах представляет собой однонаправленную связь.
Если объект A имеет указатель на объект B это означает что объект A имеет доступ к объекту B но не наоборот. Такую связь можно назвать 1 к 1. Тоесть один объект связан с одним объектом. Точного аналога данной связи в реляционной модели нет. В РМД этой связи соответсвуют половинки связей 1 к 1 и 1 ко многим ведущие к единице.
Если объект A имеет указатель на объект B и объект B имеет симетричный указатель на объект A то в сетевой модели данных эта ситуация описывается двумя связями 1 к 1 от A к B и 1 к 1 от B к A. Этот случай соответвует связи 1 к 1 в реляционной модели. Однако соответсвие не является полностью эквивалентным.
Если объект A имеет коллекцию указателей на объекты B то объект A имеет доступ ко всем объектам B однако объекты B не имеют доступа к объекту A. Такую связь можно назвать 1 ко многим. Эта связь соответствует половинке связи 1 ко многим в РМД ведущей от единице к коллекции.
Если объект A имеет коллекцию указателей на объекты B и каждый объект B имеет один указатель на объект A то в сетевой модели эта ситуация описывается двумя связями 1 ко многим от A к B и 1 к 1 от B к A. Этот случай соответствует связи 1 ко многим в реляционной модели. Однако соответсвие не является полностью эквивалентным.
Если объекты коллекции A имеют коллекцию указателей на объекты коллекции B и объекты коллекции B имеют коллекцию указателей на объекты коллекции A то в сетевой модели эта ситуация описывается двумя связями 1 ко многим от A к B и 1 ко многим от B к A. Этот случай соответствует связи многие ко многим в реляционной модели. Однако соответсвие не является полностью эквивалентным.
--
Реляционные связи образуются по значению и как следствие они симметричны.
А вот указатели вещь не симметричная. Реляционная связь многие ко многим действительно расспадается на две один ко многим. Однако каждая один ко многим в сетевой модели распадается еще на две. На одну, один ко многим и на одну многие к одному. Причем многие к одному это просто много связей одни к одному в трактовке сетевой модели. А в итоге это все граф с однонаправленными связями.
Физические реализации у них тоже не эквивалентны. В РБД это равенство значений, хранимых в ячейках памяти, в СБД это равенство значения хранимого в ячейке и адреса другой ячейки.
Реляционное отношение 1 к многим в реляционной БД представлено одним ключевым полем и одним полем ссылающимся на ключевое поле. Данная конфигурация соответствует отношению 1 к 1 в сетевой бд.
Реляционное отношение многие ко многим соответсвуют двум отношениям 1 к многим в сетевой бд. |
|