Сіткові структури

Якщо у відношенні між даними породжений елемент має більше, ніж один вхідний або породжуючий елемент, то таке відношення уже не можна описати як деревоподібну або ієрархічну структуру, його описують у вигляді сіткової структура. Отже, сіткова структура це орієнтований зв‘язний граф без циклів, у якого будь-який породжений вузол може мати більше одного породжуючого вузла і, крім того, всі вузли розміщуються так, що породжені елементи розміщуються нижче породжуючих. У сітковій структурі будь-який елемент може бути пов‘язаний з будь-яким іншим елементом (рис.11.5).

Рис.11.5. Елементи сіткових структур:

а) однорідні; б) неоднорідні

Однорідна сіткова структура, що містить однотипні елементи, вироджується в дерево або список.

Неоднорідна сіткова структура, в якій зображення відношення батько-син є складним (тобто в одного батька може бути декілька синів), а зображення відношення син-батько простим (у сина може бути тільки один батько), переважно також зводиться до дерева. Сіткову структуру з таким зображенням відношень називають простою.

Якщо зображення відношень син-батько також складне, таку структуру називають складною. На рис.11.5 зображено складні сіткові структури. Існує скорочений спосіб графічного зображення складних відношень - здвоєні стрілки (рис.11.6). Прості відношення зображуються однією стрілкою і називаються зв'язком типу 1:М. Відношення між записами, що відображають зв‘язки зі здвоєними стрілками в обох напрямах, прийнято називати зв‘язком типу М: N. Майже завжди у складних сіткових структурах при зв‘язках типу M:N виникають дані перетину, які породжуються з різнотипності вузлів сітки. Наприклад, у відношенні постачальник-виріб такими даними перетину є ціна.

Рис. 11.6. Приклади зображення даних перетину:

а)за допомогою файлу; б) за допомогою вказівників

В основному процесі експлуатації бази даних виникають дві складні задачі:

1) зображення даних перетину у сіткових структурах;

2) доповнення даних перетину у базу даних.

На рис. 11.6 показано два способи підтримки зв‘язків типу М: N між записами з ключами А і В з метою фіксації даних перетину: на рис. 11.6,а є файл записів А та файл записів Ві окремо інформація про зв‘язки між цими файлами; на рис.11.6,б використовується ланцюг вказівників, який з‘єднує кожний запис файлу А з відповідними йому записами файлу В. Введення в структуру даних перетину фактично руйнує зв‘язок типу M:N.

Деякі сіткові структури містять цикли. Циклом у такій схемі вважається ситуація, коли попередник вузла в той же час є його послідовником. Відношення вхідний-породжений утворюють при цьому замкнутий контур. Наприклад, завод випускав різну продукцію. Деякі виробі виготовляються на інших заводах-субпідрядниках. З одним договором може бути пов‘язано виготовлення декількох виробів. Зображення цих відношень утворює цикл (рис.11.7,а).

Деколи записи файлу зв‘язані з іншими записами цього ж файлу. Таку ситуацію називають петлею. В петлі міститься тільки один тип запису, тобто тип породженого запису зливається з типом вхідного (рис.11.7,б).

Рис.11.7. Цикли і петлі в сітках: а) цикл; б) петля

Вся сіткова структура може бути зведена до більш простого вигляду введенням надлишковості. Причому така надлишковість відноситься не до всього запису, а тільки до первинного ключа або способу його ідентифікації. Таким же чином перетворюються до деревоподібних структур і складні сітки - введенням надлишковості в ключах (рис.11.8).

Рис.11.8. Перетворення сіток до дерев:

а) звичайні сітки; б) решітки

Перетворення сітки до дерева здійснюється дублюванням вершин, в які заходить декілька ребер. Очевидно, що кількість повторень і рівень таких вершин у дереві залежить від кількості її вхідних ребер і вершин у сітці. Наприклад, на рис 11.8,а вершина 3 записана у дереві двічі на другому і третьому рівнях, тому що в початковій сітці в неї заходить два ребра - з вершин 1 і 2.

Решіткою називають частковий випадок сіткової структури, в якій граф є кореневим і вхідні вузли деякого породженого вузла належать одному і тому ж рівню. На рис.11.8,б зображено решітку. Всі ієрархічні структури, які мають спільні підструктури, являють собою решітки.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: