У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


сканування по індексу визначається "шириною" заданого діапазону сканування. При цьому, звичайно, є та перевага, що порядок сканування відповідає порядку зростання або убування значень ключа індексу.

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

Внаслідок успішного виконання операції відкриття сканування (якщо немає помилок в параметрах) виробляється і повертається ідентифікатор сканування, який використовується як вхідний параметр інших операцій цієї групи.

Операція NEXT виконує читання наступного кортежу вказаного сканування, що задовольняє умовам даної операції. Умова являє собою диз'юнктивну нормальну форму простих умов, що відносяться до значень вказаних полів відношення. Проста умова - це умова вигляду <ідентифікатора-поля op константа>, де op - операція порівняння <, <=, >, >=, = або !=. Загальна умова є параметром операції NEXT. Семантика операції NEXT наступна: починаючи з поточної позиції сканування вибираються кортежі відношення в порядку, що визначається типом сканування, доти, поки не зустрінеться кортеж, значення полів якого задовольняють вказаній умові; цей кортеж і є результатом операції; якщо при вибірці наступного кортежу досягається права межа діапазону сканування (права межа значення ключа при скануванні по індексу або останній кортеж відношення або списку при скануванні без індексу), виробляється особлива ознака результату. Після цього єдиною розумною дією є закриття сканування - операція CLOSE.

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

Група операцій створення і знищення постійних і тимчасових об'єктів бази даних включає операції створення таблиць (CREATE TABLE), списків (CREATE LIST), індексів (CREATE IMAGE) і знищення будь-якого з подібних об'єктів (DROP TABLE, DROP LIST і DROP IMAGE). Вхідним параметром операцій створення таблиць і списків є специфікатор структури об'єкта, тобто число полів об'єкта і специфікатори їх типів. Крім того, при специфікації полів відношення вказується допущення або недопущення невизначених значень полів в кортежах цього відношення або списку (невизначені значення кодуються спеціальним образом; будь-яка операція порівняння константи даного типу з невизначеним значенням по визначенню виробляє значення FALSE, крім операції порівняння на збіг зі спеціальною літеральною константою NULL). Внаслідок виконання цих операцій заводиться описувач відносно службовому описувачів відносин або оперативній пам'яті (в залежності від того, чи створюється постійний об'єкт або тимчасовий), і виробляється ідентифікатор об'єкта, який служить вхідним параметром інших операцій, що відносяться до відповідного об'єкта (зокрема, параметром операції OPEN при відкритті сканування об'єкта).

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

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

Операції DROP TABLE, DROP LIST і DROP IMAGE можуть бути виконані в будь-який момент незалежно від стану об'єктів. Виконання операції приводить до знищення відповідного об'єкта і, внаслідок цього, недійсність його ідентифікатора.

Потрібно зазначити, що масові операції над постійними об'єктами (CREATE IMAGE, DROP TABLE і DROP IMAGE) вимагають додаткових накладних витрат в зв'язку з необхідністю забезпечення можливості відкатів транзакції, внаслідок чого потрібне виконання масових зворотних дій. Особливо сильно це торкається операцію знищення непустих таблиць, оскільки вимагає журналізації тих, що всіх містяться в них до моменту знищення кортежів. Тому, хоч знищення непустих таблиць і не заборонено, треба мати на увазі, що це операція, що дуже дорого коштує.

Група операцій модифікації відносин і списків включає операції вставки кортежу у відношення або список (INSERT), видалення кортежу з відношення (DELETE) і модифікації кортежу у відношенні (UPDATE).

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


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12 13 14