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

Операції над мережною структурою

Операції над мережною структурою даних концептуально аналогічні до операцій над ієрархічною структурою. Мова маніпулювання даними в мережній структурі також є низькорівневою, тобто її використання передбачає програмування процесів «навігації» структурою. Кожний тип запису в цій моделі, на відміну від ієрархічної, може мати поточний екземпляр запису, відносно якого можна організовувати подальше перебирання екземплярів, окрім того, кожний тип набору може мати поточний екземпляр набору.

Згідно з пропозиціями CODASYL, навігація структурою та вибирання даних виконуються в два етапи. Спочатку за допомогою послідовності операторів FIND визначається розташування екземпляра запису необхідного типу, тобто бажаний запис стає поточним. Потім командою GET можна вибрати поточний запис, вказуючи (в разі потреби) його поля. Команда FIND насправді є сукупністю команд, об'єднаних спільною метою, — визначити місцезнаходження конкретного запису за вказаною стратегією. Оператори FIND дають змогу:

  • знаходити запис за ключем або значеннями полів;

  • послідовно переглядати записи вказаного типу, щоб знайти всі записи із заданими значеннями полів;

  • послідовно переглядати всі записи-члени екземпляра набору;

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

  • знаходити власника даного запису в наборі.

Комерційні системи зазвичай підтримують мови, що дають можливість досить гнучко здійснювати навігацію мережею. Покажемо стисло, як це робиться в мережній СКДБ IDMS. Розглянемо оператори, що дають змогу встановити поточні записи, незалежно від зв'язків (наборів), у яких вони беруть участь. Усі наведені приклади використовують структуру, зображену на рис. 8.4.

Оператор FIND назва запису RECORD USING <ідентифікатор> - визначає пошук запису за значенням ключа бази даних. Тут <ідентифікатор> — змінна, що містить значення ключа бази даних.

Оператор FIND [NEXT DUPLICATE] назва запису RECORD [WHERE кваліфікація] керує пошуком запису за значенням його елементу.

Розглянемо такий запит:

FIND ВИКЛАДАЧ RECORD WHERE Посада = "Професор"  GET ВИКЛАДАЧ RECORD Початок циклу, виконувати до стану "запис відсутній" FIND NEXT DUPLICATE ВИКЛАДАЧ RECORD  GET ВИКЛАДАЧ RECORD  Кінець циклу

Під час його виконання здійснюється перегляд списку всіх професорів, незалежно від членства запису ВИКЛАДАЧ у тому чи іншому наборі. Наступні три навігаційні операції дають змогу встановлювати поточні записи з урахуванням їхньої належності до будь-яких наборів.

Оператор FIND {NEXT I PRIOR | FIRST | LAST | n} <назва запису> RECORD <назва набору> SET дає можливість специфікувати елемент набору, який вибирається.

Наприклад, команда FIND FIRST ВИКЛАДАЧ RECORD КАФЕДРА SET робить поточним перший запис типу ВИКЛАДАЧ, що належить до поточного екземпляра набору КАФЕДРА.

Команда FIND OWNER RECORD <назва набору> SET задає вибирання екземпляра запису-власника, що належить до екземпляра набору вказаного типу. Ця команда, як й інші, застосовується до поточного екземпляра набору.

Нарешті команда FIND <назва запису> RECORD VIA [CURRENT] <назва набору> SET WHERE - <кваліфікація> забезпечує вибір запису за його членством у наборі й значенням елементу даних.

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