Дзвінки віддалених процедур (rpc)
Мова PL/SQL дозволяє розробникам зберігати логіку додатків у базі даних у вигляді процедур, що зберігаються (модулів, методів об'єктних типів і т.д.). Архітектура розподіленої бази даних Oracle не обмежує використання процедур – програми можуть викликати як локальні, так і віддалені процедури. Наприклад, у наступному запиті виконується виклик віддаленої процедури(RPC -remoteprocedurecall)віддаленого компонентного методуORDER_TOTALтипуSALES.ORDER_TYPE:
FROM [email protected] про WHERE >
Віддалені транзакції
Віддалена транзакція (remotetransaction) — це транзакція, що містить один або більше віддалених операторів, кожен з яких посилається на одну і ту ж дистанційну базу даних. Наприклад, наступна віддалена транзакція оновлює інформацію лише у базі даних EAST:
Розподілені транзакції
Розподілена транзакція(distributedtransaction) -це транзакція, що включає один або більше операторів, що оновлюють інформацію у двох або більше різних базах даних. Наприклад, наступна розподілена транзакція оновлює інформацію у кількох базах даних:
Алгоритм двофазного завершення Oracle
За визначенням, для транзакції як єдиного цілого має бути виконано або операцію завершення, або операцію відкату. Щоб забезпечити дотримання цього фундаментального правила для розподілених транзакцій, в Oracle застосовується спеціальний алгоритм двофазного завершення(two-phasecommitmechanism),який координує управління транзакціями в мережі. Двофазне завершення необхідно при мережевих та системних збоях, які можуть переривати завершення розподіленихтранзакцій.
Під час двофазного завершення сервери, що беруть участь у виконанні транзакції, ретельно реєструють різні фази процесу завершення транзакції, що координується у мережі. Якщо в результаті несподіваного збою в роботі мережі або системи цей процес припиняється, кожен сервер, який бере участь у транзакції, маючи достатню інформацію у своєму словнику даних, може відновити інформацію і, зрештою, завершити транзакцію або виконати її відкат. Коротше кажучи, алгоритм двофазного завершення Oracle дозволяє серверам виконувати розподілені транзакції та забезпечує цілісність усієї розподіленої бази даних.
Механізми двофазного завершення є внутрішніми процесами серверів баз даних Oracle, що у транзакції. Користувач повинен лише закінчити розподілену транзакцію оператором COMMIT; решту роботи виконує Oracle.
Прозорість розподіленої бази даних
Ефективність розподіленої бази даних виявиться марною, якщо розробникам доведеться вивчати безліч спеціальних складних SQL-конструкцій тільки для того, щоб звернутися до віддалених даних. Наприклад, якщо розробники, що беруть участь у проектуванні розподіленої бази даних, повинні посилатися на віддалену інформацію за допомогою уточнених імен таблиць та уявлень (наприклад,[email protected]), то всі вони повинні знати поточне місцезнаходження конкретних об'єктів у системі розподіленої бази даних. Більше того, кожен розробник повинен розуміти, створювати та застосовувати зв'язки баз даних для побудови необхідних SQL-операторів програми. Безперечно, такі складнощі вплинуть на продуктивність кожного розробника.
Oracle має ряд засобів, що дозволяють приховати складність розподіленої бази даних і зробити їїпрозорою(transparent)для користувачів системи. Якщо витратити додатковий час на конфігурацію прозорої розподіленої бази даних, то розробники та користувачі зможуть працювати з усіма базами даних системи так, якби вони зверталися до однієї локальної бази даних. Нижче наведено SQL-оператор, за допомогою якого створюється загальний синонім, що встановлює прозорість місцезнаходження віддаленої таблиці. Прозорість місцезнаходження(locationtransparency)приховує фізичне місце зберігання об'єкта схеми в системі розподіленої бази даних.
CREATE PUBLIC SYNONYM parts
Після створення спільного синоніма користувачі локальної бази даних можуть посилатися на віддалену таблицю PARTS як на локальну. Oracle автоматично перетворює локальний псевдонім на ім'я віддаленої таблиці та використовує для звернення до неї зв'язок баз даних.
SELECT * FROM parts;
Синоніми - це лише один із засобів, що застосовуються для встановлення прозорості місцезнаходження об'єктів розподіленої системи. Можна також використовувати уявлення, модулі, процедури, що зберігаються, функції та методи об'єктних типів. Наприклад, локальне подання PARTS вказує на дані, що містяться у віддаленій таблиці PARTS: