www.ПЕРВИЕ ШАГІ.ru :: Крок 38

Отже, нарешті, ми дісталися до основного пункту! Мова PL / SQL - це процедурний мову представляє собою розширення стандарту ANSI мови SQL, розробленого фірмою Oracle. Власне SQL, не є процедурним мовою, та й, за великим рахунком, він взагалі не відноситься до мов програмування.

PL / SQL - це процедурний мову покрокового програмування, що інкапсулює мову SQL. В результаті виходить добре розвинену мову програмування третього покоління (3GL), подібний мови C ++, Pascal і т. Д. У своїй суті PL / SQL блочно орієнтований.

PL / SQL має суворі правила області видимості змінних, підтримує параметризрвані виклики процедур і функцій і так само успадкував від мови ADA такий засіб, як пакети (package).

PL / SQL передбачає строгий контроль типів, всі помилки несумісності типів виявляються на етапі компіляції і виконання. Так само підтримується явне і неявне перетворення типів.

PL / SQL - підтримує складні структури даних, так само передбачена перевантаження підпрограм, для створення гнучкої середовища прикладного програмування.

Мова PL / SQL - має елемент Exception Handler (обробник виняткових ситуацій) для синхронної обробки помилок на етапі виконання коду PL / SQL.

Так само строго кажучи, мова PL / SQL не є об'єктно-орієнтованим, хоча має деякі засоби для створення та роботи з об'єктами БД на рівні об'єктно-орієнтованих мов програмування. Заплутано, правда? Але тим не менш, це так і є і в подальшому ви в цьому переконаєтесь! :) Щось дуже схоже на ООП в PL / SQL є.

PL / SQL - є машинно незалежним мовою програмування! І це дійсно так! Наприклад, не потрібно вивчати PL / SQL для Windows або для Unix! Сам код програмних блоків PL / SQL не залежить від платформи, на якій вони виконуються. Сама мова залишається таким же як і він є !!! Ось вам і мультиплатформеність!

PL / SQL - підтримує стандартні інтерфейси роботи з мовами високого рівня такими як C, C ++ - через предкомпілятори поставляються фірмою Oracle. Наприклад, для роботи з мовою C є такий засіб як OCI (Oracle Call Interface).

Так само PL / SQL має ряд вбудованих засобів для роботи з Internet, прямо зі збережених процедур. Має підтримку створення HTTP запитів так само безпосередньо зі збережених процедур. Ось, що з себе представляє вбудовану мову PL / SQL сервера Oracle. Однак перш ніж приступати, до вивчення PL / SQL необхідно сказати кілька слів про його середовищі виконання.

У типовій клієнт / серверної середовищі зазвичай, найвужче місце це - мережа і то як вона побудована і налагоджена вашим адміністратором мережі. До речі взаємодія адміністратора мережі і адміністратора БД, є важливим фактором!

Подивимося на малюнок:

Тут добре видно, що використовується при роботі з сервером БД Oracle. Клієнти використовують програми на мовах високого рівня, з великою кількістю одиничних запитів SQL. Засоби розробки SQL * Plus, сервери додатків, і т.д. Між клієнтами і сервером, як правило, коштує якийсь посередник, так само визначає швидкість обробки запитів надходять від клієнта до сервера. На жаргоні БД адмінів, їх ще називають "товстими" або "тонкими" клієнтами. Наприклад, я на першому етапі роботи з БД використовував сервер БД InterBase, а клієнтів створював на непохитному Borland Delphi з використанням "товстого" клієнта IBX компонент. Потім я підріс і став працювати з сервером БД Oracle, а клієнтські частини розробляв вже на Borland C ++, з використанням "тонкого" клієнта ODAC.NET компонент, фірми CrLab ( www.crlab.com ), Сьогодні для роботи з Oracle сервером я використовую MS Visual Studio.Net, а саме середовище розробки C # з "товстим" клієнтом OraADO.NET тієї ж CrLab. Власне виходить досить не погано! Що таке "товстий" і "тонкий" клієнти, розповім трохи пізніше. Поки сподіваюся ясно як сервер Oracle реалізує взаємодію з зовнішнім світом.

Йдемо далі:

Йдемо далі:

Програми, написані на мові PL / SQL, виконуються системою-виконавцем мови, яка являє собою частину сервера БД Oracle. Незалежно від засобу, за допомогою якого формується виконуваний код, він посилається на сервер Oracle. Система виконавець мови PL / SQL сканує, розбирає і компілює код. Після цього код, готовий до виконання. Виконується код за допомогою передачі його SQL Statement Executor (системі виконавцю SQL-коду). Набір даних, отриманих в результаті виконання запиту, надходить в систему виконавець PL / SQL для подальшої обробки. Ось таким чином діє цей механізм. Далі давайте розглянемо, в чому перевага використання PL / SQL як процедурного мови.

Подивимося на малюнок:

Основна перевага при роботі з PL / SQL як мовою БД є те, що на виконання сервера надсилається група SQL пропозицій, а не поодинокі запити сформовані, скажімо будь-якої програмою не використовує PL / SQL як засіб роботи з БД. Дійсно, отримавши PL / SQL блок, сервер приступає до його обробці, а клієнту залишається тільки чекати результату операції. Тоді як поодинокі запити до БД, породжують великий трафік і гальмують роботу мережі в цілому. Тобто, кажучи точним мовою, на сервері знижується число активних транзакцій, внаслідок того, що за одну активну транзакцію, обробляється більше число операторів PL / SQL! Ось таким чином, будується в цілому робота з блоками PL / SQL.

Заплутано, правда?