
- •Основні поняття
- •Характеристика зв'язків
- •Відділ а Співробітники в
- •Відділ а Дата звільнення в
- •Класифікація сутностей
- •Аналіз предметної області
- •Розробка універсального відношення
- •Розробка er-моделі предметної області
- •Книга має Твір
- •Книга належить Розділ
- •Ієрархічна (деревовидна) структура даних
- •Мережна структура даних
- •Реляційна модель даних
- •Поняття ключа, основні типи ключів
- •Студент-успішність
- •Основні поняття реляційної алгебри. Дії над таблицями.
- •Загальні відомості щодо нормалізації схем бд
- •Перша та друга нормальна форма
- •Третя нормальна форма та нфбк
- •Нормальна форма Бойса-Кодда
- •П'ята нормальна форма та послідовність етапів нормалізації
- •Об'єктно-орієнтовані субд
- •1 Зв'язок об'єктно-орієнтованих субд із загальними поняттями об'єктно-орієнтованого підходу
- •2 Об'єктно-орієнтовані моделі даних (оомд)
- •3 Мови програмування об'єктно-орієнтованих баз даних
- •4 Мови запитів об'єктно-орієнтованих баз даних
- •Мови реляційних баз даних
- •1. Загальна характеристика
- •2. Типова організація сучасної скбд
- •3. Мова foxpro
- •4. Мова sql
- •Загальні підходи
- •Спискові структури
- •Зв'язаний розподіл пам'яті
- •Нелінійні зв'язкові структури
- •Представлення рядкових даних
- •Індексні методи
- •Способи включення записів та організіція індексних файлів
- •Адресні методи
- •Табл 5.1 - Розрахунок адреси
- •Табл 5.2 - Розмiщення даних у пам'ятi
- •Порівняльні параметри
- •Інвертований метод
- •Поняття експертних систем
- •Подання знань в соз
- •Основні моделі знань та їх порівняльні характеристики
- •Представлення знань із використанням логіки предикатів
- •Найпростіші конструкції мови предикатів
- •Предикатні формули
- •Любить (х, у),
- •Визначення правильно побудованої формули
- •Правило резолюції для простих пропозицій
- •S1 (заперечення): ¬ а
- •Чи одержує студент стипендію.
- •S: ¬одержує (студент, стипендію)
- •Порядок розв'язування задачі
- •Семантичні мережі
- •Продукційні моделі
- •Якщо - то (явище - реакція)
- •Подання знань із застосуванням фреймів
- •Стратегії пошуку в соз
- •Нечіткі множини в системах баз знань
- •Визначення I класифiкацiя аіс
- •Автоматизованi БнД
- •Риcунок 1.4 - Схема взаємодiї колективу спецiалiстiв банку
- •Вимоги до БнД
- •Принципи побудови БнД
Нелінійні зв'язкові структури
Однозв'язний список завжди лінійний. Двозв'язний список може і не бути лінійним, якщо другий покажчик кожного елемента списку задає порядок довільного виду, який не є зворотним стосовно порядку, встановлюваному першим покажчиком елемента. Кожний елемент такого узагальненого двозв'язного списку міститься одночасно в двох різних однозв'язних списках, як показано на рис. 5.7 [14, 15].
На цьому рисунку змінні S1 і S2 є покажчиками початку двох різних однозв'язних списків, у які одночасно входить кожний із п'яти елементів, а Р1 і Р2- позначення зв'язків у першому і другому однозв'язних списках відповідно. Покажчики S1 і S2 є компонентами двох різних дескрипторів однозв'язних списків.
Рис. 5.7 Приклад логічної структури узагальнюючого двозв'язкового списку
У ще більш загальному випадку кожний елемент зв'язкового списку може містити довільне кінцеве число зв'язків , однакове або різне в різних елементах. У результаті такого узагальнення утворюється багатозв'язний список, кожний елемент якого входить одночасно в стільки різних однозв'язних списків, скільки є зв'язків у відповідному елементі. При цьому не обов'язково, щоб кожний елемент неодмінно входив у всі однозв'язні списки. Такий багатозв'язний список як би прошитий в різних напрямках багатьма зв'язками. Тому багатозв'язні списки іноді називаютьпрошитими списками. Використовується також ще одна назва багатозв'язних списків - плекси .
Найбільш загальний вид багатозв'язної структури - багатозв'язна структура , яка характеризується наступними властивостями.
Кожний елемент структури включає довільну кількість однонаправлених зв'язків з другими елементами.
З кожним елементом може зв'язуватися довільна кількість інших елементів.
Кожний зв'язок в структурі має не тільки напрямок , але і вагу.
При обробці багатозв'язних структур важливе місце має процедура виключення вузлів. Існує два основних метода: метод лічильника та метод "збору сміття".
Рис. 5.8 Фрагмент чотиризв'язного списку
Метод лічильника зводиться до того, що після кожної операції виключення елементу з того чи іншого списку виконується перевірка, чи залишився даний елемент хоча б в якому-небудь одному функціональному списку.
згідно методу в кожному елементі багатозв'язної структури вводиться спеціальне поле. Вміст вказаного поля збільшується на одиницю при формуванні кожного зв'язку і зменшується на одиницю при кожному розриві зв'язку. Якщо значення додатково введеного поля включає нульове, то елемент може бути виключений, оскільки він не входить до складу жодного списку.
В методі "збору сміття" не вимагається при розриві кожного зв'язку , який направлений до елементу, виконувати перевірку на предмет виключення елементу із списку та переводити його у вільний список. Для цього кожному елементу даних відводять однорозрядне поле для маркера.
Елемент, який вивільняється як би "провисає" до тих пір, поки не буде вичерпано вільний список. Тільки після цього запускається процедура "збору сміття".
Суть методу полягає в тому, що сканується виділена ділянка пам'яті і обнуляються всі маркерні поля. Під час другого проходу всі маркери всіх елементів, які входять в списку , встановлюються в одиничний стан. При третьому скануванні виділеної ділянки пам'яті всі елементи, маркери яких мають нульове значення, вилучаються.