- •Основні поняття
- •Характеристика зв'язків
- •Відділ а Співробітники в
- •Відділ а Дата звільнення в
- •Класифікація сутностей
- •Аналіз предметної області
- •Розробка універсального відношення
- •Розробка 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в банку
- •Вимоги до БнД
- •Принципи побудови БнД
Загальні підходи
Будь-яке представлення структури даних у пам'ятi ЕОМ повинно мiстити в собi як самi данi, так i заданi взаємозв'язки, що i визначають структурування.
Форма представлення структур даних у пам'ятi ЕОМ залежить вiд очiкуваного використання даних, оскiльки для рiзноманiтних типiв структур ефективнiсть виконання тих або iнших операцiй опрацювання даних рiзноманiтна. Основна розбiжнiсть форм уявлення структур даних у пам'ятi ЕОМ визначаться в першу чергу тим, як адресуються елементи структури даних у пам'ятi машини - по мiсцю або по вмiсту. У першому випадку вказуються логiчнi або фiзичнi адреси даних, визначальне мiсце розташування даних i їхня вибiрка здiйснюються по вiдомому значенню ключа, тобто визначаються вмiстом самих даних. Цей випадок реалiзується в спецiальнiй - асоцiативнiй пам'ятi ЕОМ. Деякий аналог асоцiативної пам'ятi може бути реалiзований засобами спецiального програмного забезпечення в звичайнiй пам'ятi ЕОМ.
Найбiльш простою формою збереження даних у пам'ятi ЕОМ є одномiрний лiнiйний список. Лiнiйний список - це множина n i 0 об'єктiв (вузлiв) X[1], X[2], &, X[n], структурнi властивостi якого пов'язанi лише з лiнiйним розташуванням вузлiв. Якщо n > 0, те X[1] є першим вузлом; для 1< i < n вузол X[i-1] передує вузлу X[i], а вузол X[i+1] iде за ним, X[n] є останнiм вузлом, тобто лiнiйний список реалiзує структуру, що можна визначити як лiнiйне впорядкування елементiв даних.
Спискові структури
Лiнiйний список X розглядають як послiдовнiсть X[1], X[2], &, X[i], &, X[n], компоненти якої iдентифiкованi порядковим номером, що вказує їхнє вiдносне розташування в X.
Одномiрний лiнiйний список, що використовується для збереження даних у пам'ятi машини, називають ще вектором даних або фiзичною структурою збереження даних. Використання лiнiйного списку в якостi фiзичної структури збереження даних визначається властивостями пам'ятi обчислювальної машини.
Проблема представлення логiчних структур даних у пам'ятi ЕОМ полягає в знаходженнi ефективних методiв вiдображення логiчної структури даних на фiзичну структуру збереження. Таке вiдображення називають адресною функцiєю.
При реалiзацiї адресної функцiї використовують два основних методи: послiдовний розподiл пам'ятi; зв'язний розподiл пам'ятi.
Послiдовний розподiл пам'ятi. Послiдовний розподiл - простий i природний засiб збереження лiнiйного списку. У цьому випадку вузли списку розмiщаються в послiдовних елементах пам'ятi (рис.5.1).
Адреса |
Вмiст |
±(1)= І |
Y1 |
±(i)= І + (i -1)m |
Yi |
|
___ |
±(n)= І + (n -1)m |
Yn |
Рис. 5.1 Приклад послiдовного розподiлу пам'ятi для представлення лiнiйного списку
При послiдовному розподiлi вектор даних логiчно вiддiлений вiд опису структури збережених даних. Наприклад, якщо структура даних являє собою лiнiйний список (наприклад, файл записiв фiксованої довжини), то опис структури зберiгається в окремому записi i мiстить:
n - розмiр вектора даних, тобто кiлькiсть елементiв спискiв-записiв;
m - розмiр елемента списку, тобто розмiр запису, наприклад у байтах;
І- адреса бази, що вказує на початок вектора даних у пам'ятi.
У цьому випадку адреса кожного запису можна обчислити за допомогою адресної функцiї, що вiдображає логiчний iндекс, що iдентифiкує запис у структурi, на адресу фiзичної пам'ятi
±(i)= І + (i -1)m
У випадку лiнiйного списку адресна функцiя складається з операцiй зсуву i маштабування. Будь-якi вiдношення, що можна висловити на мовi цiлих чисел, можна витлумачити як вiдношення мiж елементами пам'ятi, одержуючи при цьому усiлякi варiанти структур.
Розглянемо ще один спосіб реалізації, що використовується тільки для двійкових дерев. Якщо для уявлення двійкового дерева використовується вектор пам'яті від елемента i до елемента j включно, то корінь дерева розміщається в елементі пам'яті з адресою
і = [(i+j)/2],
де - знак округлення до найближчого меншого цілого.
Корінь дерева розміщається в середину вектора. У елементах пам'яті від i -го до (m-1)-го включно розміщається ліве піддерево. У елементах пам'яті те (m+1)-го до j -го включно розміщається праве піддерево. Аналогічно процес повторюється для розміщення кожного піддерева. Приведений засіб дозволяє реалізувати двійкове збалансоване дерево.
