На Горох
Информатика, 11 класс

3.4. Сетевая модель данных

"Информатика (базовый уровень)", Угринович Н.Д.

Объяснение темы В оглавлении: 3.4. Сетевая модель данных

Кратко о теме

Сетевая модель данных описывает базу как записи, соединённые связями, поэтому её структуру можно представить графом. Такой способ нужен, когда объект связан сразу с несколькими другими объектами и простого дерева недостаточно. Связи задают возможные переходы между записями: по ним можно находить нужные данные. Главное отличие от иерархической модели — сеть допускает несколько путей и отношения «многие ко многим», но пути поиска приходится знать заранее.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Сетевая модель данных — способ представить базу как совокупность записей и связей между ними. Связи показывают, какие записи могут быть соединены и как от одной перейти к другой. Такая модель нужна, когда объекты связаны не только по одной линии, а образуют разветвлённую сеть.

Запись — совокупность связанных полей, в которой хранится информация об отдельном объекте. Например, запись о книге может содержать название, автора и год издания. Различают тип записи, который задаёт состав полей, и конкретную запись с заполненными значениями; это помогает понимать, где описана структура, а где хранятся данные.

Тип связи задаёт отношения между типами записей и показывает, сколько записей одного типа может соответствовать записям другого. При связи «один ко многим» одной записи соответствуют несколько записей, а при связи «многие ко многим» несколько записей каждой стороны могут быть связаны друг с другом. Тип связи нужен, чтобы точно описать правила организации данных.

Владелец и член набора — роли типов записей, соединённых связью: от записи-владельца переходят к связанным с ней записям-членам. Например, владелец может обозначать кружок, а члены — учеников, записанных в него. Эти термины описывают направление перехода в модели, а не то, кому что принадлежит в реальной жизни.

Как это устроено

В сетевой модели используют записи и связи, потому что одних таблиц с последовательным расположением строк недостаточно, чтобы наглядно задать сложные отношения между объектами. Запись хранит сведения об объекте, а связь фиксирует, с какими другими записями он соотнесён. Благодаря этому можно отразить, например, что ученик ходит в несколько кружков, а кружок объединяет нескольких учеников.

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

Связь «владелец — член» помогает переходить от исходной записи к связанным с ней записям. Например, если запись о кружке — владелец, можно перейти к записям учеников, которые входят в этот кружок. Это задаёт понятное направление поиска: сначала находят владельца, затем просматривают относящиеся к нему записи-члены.

В иерархической модели данные организованы как дерево: у узла обычно один родитель, поэтому путь к нему проходит по одной ветви. В сетевой модели запись может иметь связи с несколькими другими записями, и между данными могут существовать разные пути. Поэтому сеть не обязана быть деревом: например, ученик связан с несколькими кружками, а каждый кружок — с несколькими учениками.

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

Сравнение иерархической и сетевой моделей данных

СвойствоИерархическая модельСетевая модель
Представление структурыДеревоСеть, которую можно представить графом
Допустимые связи между записямиПреимущественно связи родителя и потомкаСвязи между разными типами записей
Число связей у одной записиОбычно один родитель; возможны потомкиМожет быть несколько связей с разными записями
Способ перехода между даннымиПо ветви дереваПо заданным связям и путям между записями
Сложность структурыПроще, если данные имеют уровниГибче для сложных отношений, но требует планирования путей

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

Разбор задач

Задача 1. В базе школьной библиотеки у каждого экземпляра книги есть один читатель, а у читателя может быть несколько экземпляров. Нужно определить типы записей и связь между ними. Условие задаёт направление «один читатель — несколько экземпляров», поэтому начнём с определения участников связи.

  1. Выделим типы записей: «Читатель» и «Экземпляр книги». В первой записи можно хранить данные читателя, во второй — сведения об экземпляре.
  2. Сопоставим количество объектов: одному читателю соответствуют несколько экземпляров, а каждый экземпляр связан с одним читателем. Значит, между типами записей задаётся связь «один ко многим».
  3. Для навигации можно выбрать читателя владельцем набора, а экземпляры книг — членами. От записи читателя тогда переходят к его экземплярам.

Ответ: типы записей — «Читатель» и «Экземпляр книги», связь — «один ко многим». Владелец — читатель, членами набора являются связанные с ним экземпляры.

Задача 2. Один ученик посещает несколько кружков, и в каждом кружке состоит несколько учеников. Требуется построить сетевую структуру и объяснить, почему она не является деревом. Проверим количество связей с обеих сторон, а затем сравним полученную схему с деревом.

  1. Создадим типы записей «Ученик» и «Кружок». Запись ученика содержит сведения об ученике, а запись кружка — сведения о кружке.
  2. Поскольку каждый ученик может быть связан с несколькими кружками и каждый кружок — с несколькими учениками, задаём отношение «многие ко многим».
  3. В схеме один ученик соединён сразу с несколькими кружками, а кружок — с несколькими учениками. Поэтому у узлов есть несколько связей, и структура не соответствует дереву с единственным родителем у узла.

Ответ: типы записей «Ученик» и «Кружок» соединены связью «многие ко многим». Это сетевая, а не иерархическая структура, потому что записи могут быть связаны с несколькими записями другого типа.

Задача 3. По схеме «Кружок — Ученик — Классный руководитель» нужно получить список учеников, записанных в выбранный кружок, и их классных руководителей. Предположим, что кружок связан с учениками, а каждая запись ученика связана с записью его классного руководителя. Здесь важно не перескакивать через звенья, заданные схемой.

  1. Находим запись нужного кружка и переходим по связи к записям учеников-членов. Так получаем список участников именно выбранного кружка.
  2. Для каждого ученика переходим по связи к записи классного руководителя. Повторяем этот шаг для всех найденных учеников.
  3. Объединяем сведения: для каждого ученика указываем данные его классного руководителя. Если одна и та же фамилия встречается несколько раз, это не отменяет отдельной связи ученика с руководителем.

Ответ: путь поиска такой: «Кружок → Ученик → Классный руководитель». Последовательность переходов определяется связями, заданными в схеме базы.

Типичные ошибки

Считать сетевую модель обычным деревом — значит предполагать, что у каждой записи только одна связь с родителем. Так думают, потому что деревья часто используют для изображения структуры данных. Проверьте себя: если объект может быть связан с несколькими объектами другого типа, структура уже не обязана быть деревом.

Путать тип записи с отдельной записью — значит смешивать описание структуры и конкретные данные. Ошибка возникает потому, что оба понятия называют похожими словами. Проверка простая: тип задаёт набор полей, а запись содержит значения этих полей, например тип «Ученик» и запись о конкретном ученике.

Считать владельца и члена обозначениями реальной собственности неверно: это роли записей внутри связи. Названия могут навести на бытовое толкование, хотя в модели они указывают, откуда и куда выполняется переход. Чтобы проверить понимание, замените их словами «начальная запись» и «связанные записи» и убедитесь, что смысл связи не изменился.

Описывать отношение «многие ко многим» как одну связь «один ко многим» — значит потерять возможность нескольких связей с обеих сторон. Это делают, когда учитывают только одну сторону отношения, например несколько учеников в одном кружке. Проверьте обе стороны отдельно: если несколько кружков могут быть связаны с одним учеником и наоборот, нужна связь «многие ко многим».

Связь с другими темами

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

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

Что запомнить

  • В сетевой модели данные представлены записями и связями между ними.
  • Структуру сетевой модели можно представить в виде графа.
  • Запись может быть связана более чем с одной другой записью.
  • Сетевая модель допускает отношения «один ко многим» и «многие ко многим».
  • Связь между записями задаёт возможные переходы при обращении к данным.
  • В отличие от иерархической модели, сетевая структура не обязательно является деревом.

Частые вопросы по теме

Чем сетевая модель данных отличается от иерархической?

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

Почему структуру сетевой базы данных сравнивают с графом?

В графе есть вершины и соединяющие их рёбра. В сетевой базе вершинам соответствуют записи, а рёбрам — связи между ними.

Может ли одна запись быть связана с несколькими другими?

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

Что означают термины «владелец» и «член» связи?

Это роли типов записей в связи, а не указание на собственность в обычном смысле. От записи-владельца переходят к связанным записям-членам.

Как в сетевой модели получить связанные записи?

Нужно начать с известной записи и пройти по заданной связи к записи-члену. Если искомые данные находятся дальше, переходы продолжают по следующей связи.

Спросить по теме параграфа

3.4. Сетевая модель данных

Учебник

Оглавление →
Предмет
Информатика
Класс
11 класс
Учебник
"Информатика (базовый уровень)", Угринович Н.Д.