Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD-2007-0.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
2.68 Mб
Скачать

3.3. Сетевые базы данных

Сетевая модель была разработана для того, чтобы более эффективно представлять более сложные отношения данных, а также для улучшения производительности и стандартизации БД.

Во многих отношениях сетевая модель схожа с иерархической. БД воспринимается как совокупность записей, между которыми существует связь 1:М. Но в отличие от иерархической модели в сетевой модели записи могут иметь более, чем одного предка.

Сетевая модель расширяет иерархическую модель, позволяя группировать связи между записями в множества. С логической точки зрения связь – это не сама запись. Связи лишь выражают отношения между записями. Как в иерархической модели, связи ведут от родительской записи к дочерней, но на этот раз поддерживается множественное наследование.

Базовыми объектами модели являются элемент данных, агрегат данных, запись и набор данных.

Элемент данных – то же, что и аналогичный объект в иерархической модели, т.е. минимальная информационная единица, доступная пользователю.

Агрегат данных – это либо линейный набор элементов данных (агрегат типа вектор), либо совокупность таких векторов (агрегат типа повторяющаяся группа).

Запись – совокупность агрегатов или элементов данных, моделирующая некоторый класс объектов реального мира. Понятие записи соответствует понятию сегмент (запись) в иерархической модели. Точно так же, как для записи в иерархической модели, вводятся понятия типа записи и экземпляра записи.

Набор – двухуровневый граф, связывающий отношением «один-ко-многим» два типа записи. Набор отражает иерархическую связь между двумя типами записей. Именно благодаря наборам можно промоделировать отношение «многие-ко-многим».

Следуя спецификации CODASYL (Conference on Data Systems Languages – конференции по языкам обработки данных) сетевая модель поддерживает DDL (Data Definition Language‑ язык определения данных) и DML (Data Manipulation Language – язык обработки данных).

В сетевой модели допускаются отношения "многие ко многим", а записи не зависят друг от друга. При удалении записи удаляются и все ее связи, но не сами связанные записи.

В сетевой модели требуется, чтобы связи устанавливались между существующими записями во избежание дублирования и искажения целостности.

Программисту не нужно заботиться о том, как организуется физическое хранение данных на диске. Это ослабляет зависимость приложений и данных. Но в сетевой модели требуется, чтобы программист помнил структуру данных при формировании запросов.

Оптимальную структуру базы данных сложно сформировать, а готовую структуру трудно менять. Если вид таблицы претерпевает изменения, все отношения с другими таблицами должны быть установлены заново, чтобы не нарушилась целостность данных. Сложность этой задачи приводит к тому, что программисты зачастую отменяют некоторые ограничения целостности ради упрощения приложений.

Для реализации сетевой модели требуются значительные ресурсы как дисковой, так и основной памяти ЭВМ, поскольку каждый элемент данных должен содержать ссылки на некоторые другие элементы, с которыми он должен быть связан.

Каждая запись в сетевой модели имеет служебные поля: владелец (master, owner), которая в иерархической модели соответствует предку, следующий (next), которая соответствует потомку в иерархической модели. Запись (member) в сетевой модели может при некоторых условиях появляться более чем в одном наборе, т.е. запись-член может иметь несколько записей-владельцев.

Как и в иерархической модели, в сетевой обеспечивается только поддержание целостности по ссылкам (владелец отношения - член отношения).

Операции над данными в сетевой модели:

  • ДОБАВИТЬ - внести запись в БД и, в зависимости от режима включения, либо включить ее в групповое отношение, где она объявлена подчиненной, либо не включать ни в какое групповое отношение.

  • ВКЛЮЧИТЬ В ГРУППОВОЕ ОТНОШЕНИЕ - связать существующую подчиненную запись с записью-владельцем.

  • ПЕРЕКЛЮЧИТЬ - связать существующую подчиненную запись с другой записью-владельцем в том же групповом отношении.

  • ОБНОВИТЬ - изменить значение элементов предварительно извлеченной записи.

  • ИЗВЛЕЧЬ - извлечь записи последовательно по значению ключа, а также используя групповые отношения - от владельца можно перейти к записям - членам, а от подчиненной записи к владельцу набора.

  • УДАЛИТЬ - убрать из БД запись. Если эта запись является владельцем группового отношения, то анализируется класс членства подчиненных записей. Обязательные члены должны быть предварительно исключены из группового отношения, фиксированные ‑ удалены вместе с владельцем, необязательные ‑ останутся в БД.

  • ИСКЛЮЧИТЬ ИЗ ГРУППОВОГО ОТНОШЕНИЯ - разорвать связь между записью-владельцем и записью-членом.

Преимущества сетевой модели.

В сетевой модели сохранились преимущества иерархической модели данных, но были исправлены многие недостатки:

- концептуальная простота. Абстрактное представление БД достаточно простое;

- поддержка других типов связей. Связь типа m:n в сетевой модели реализуется проще, чем в иерархической за счет того, что в ней допускается наличие нескольких владельцев записи;

- гибкость доступа к данным значительно выше, чем в иерархической и в системах файлов;

- любое приложение может получить доступ к записи-владельцу и всем записям-членам набора без долгого прямого обхода;

- обеспечение целостности данных за счет того, что пользователь должен сначала определить запись-владелец, а потом уже записи-члены (запись-член не может существовать без записи-владельца);

- независимость данных. Частично избавляет от программирования сложных деталей, связанных с методами физического хранения информации. Поэтому изменения в свойствах данных не потребуют переделки тех участков прикладных программ, где выполняется доступ к данным;

- соответствие стандартам. Стандарты DDL и DML значительно улучшили возможности администрирования БД.

Недостатки сетевой модели:

- сложность системы в целом. Так же, как и иерархическая, предоставляет навигационные средства доступа к данным, поэтому администраторы, программисты для получения доступа должны хорошо знать внутреннюю структуру БД. Сетевую модель, как и иерархическую, нельзя считать дружественной системой;

- недостаточная структурная независимость. Поскольку сетевая модель обеспечивает доступ к данным с помощью средств навигации, трудно производить структурные изменения. Если делаются какие-либо изменения, то необходимо проверить все прикладные программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]