акож концептуальний і внутрішній рівні.
У кожного користувача є своя мова для роботи з СУБД.
Для прикладного програміста це або один з поширених мов програмування (наприклад, PL/I, C ++ або Java), або спеціальна мова розглянутої системи. Такі оригінальні язики називають мовами четвертого покоління на тому (не цілком формальному!) Підставі, що машинний код, мова асемблера і такі мови, як PL/I, можна вважати мовами трьох перших поколінь raquo ;, а оригінальні мови модернізовані в порівнянні з мовами третього покоління в такій же мірі, як мови третього покоління поліпшені в порівнянні з мовою асемблера.
Для кінцевого користувача це чи спеціальна мова запитів, або мова спеціального призначення, який може бути заснований на використанні іформ і меню, розроблений спеціально з урахуванням вимог користувача і може інтерактивно підтримуватися деяким оперативним додатком.
Для нашого обговорення важливо, що всі ці мови включають под'язик даних, тобто підмножина операторів всієї мови, пов'язане тільки з об'єктами баз даних і операціями з ними. Інакше кажучи, под'язик даних вбудований в базовий мову, який додатково надає різні не зв'язані з базами даних засоби, такі як локальні (тимчасові) змінні, обчислювальні операції, логічні операції і т.д. Система може підтримувати будь-яку кількість базових мов і будь-яку кількість под'язиков даних. Однак існує одна мова, який підтримується практично всіма сьогоднішніми системами. Це мова SQL.
Більшість систем дозволяє використовувати мову SQL і інтерактивно, як самостійна мова запитів, і у формі впровадження його операторів в інші мови програмування, такі як PL/I і Java.
Хоча з точки зору архітектури зручно розрізняти под'язик даних і включає його базова мова, на практиці вони можуть бути невиразні настільки, наскільки це має відношення до користувача. Безумовно, з точки зору користувача переважніше, щоб вони були невиразними. Якщо вони невиразні або важкорозрізнювані, їх називають сильно зв'язаними (і поєднання цих мов іменується мовою програмування бази даних). Якщо вони ясно і легко розрізняються, кажуть, що ці мови слабо пов'язані. У той час як деякі комерційні системи (включаючи і конкретні продукти SQL, такі як СУБД Oracle) підтримують сильну зв'язок, багато системи забезпечують лише слабку зв'язок. Системи з сильним зв'язком могли б надати користувачеві більш уніфікований набір можливостей, але очевидно, що вони вимагають більше зусиль з боку системних проектувальників і розробників, тому, ймовірно, і зберігається такий стан справ.
В принципі, будь под'язик даних є насправді комбінацією принаймні двох підлеглих мов - мови визначення даних (Data Definition Language -DDL), який дозволяє формулювати визначення або оголошення об'єктів бази даних, і мови маніпулірованія3 даними (Data Manipulation Language - DML), який підтримує операції з такими об'єктами або їх обробку. Наприклад, розглянемо користувача мови PL/I (див. Рис. 1.2). Под'язик даних цього користувача включає певні кошти мови PL/I, застосовувані для організації взаємодії з СУБД.
Мова визначення даних включає деякі описові структури мови PL/I, необхідні для оголошення об'єктів бази даних. Це сам оператор DECLARE (або DCL), певні типи даних мови PL/I, а також можливі спеціальні доповнення для мови PL/I, призначені для підтримки нових об'єктів, які не передбачені в існуючій версії мови PL/I.
Мова обробки даних складається з тих виконуваних операторів мови PL/I, які передають інформацію в базу даних і з неї; знову ж таки, можливо, включаючи нові спеціальні оператори.
Примітка. В якості уточнення слід зазначити, що сучасна мова PL/I насправді взагалі не включає ніяких особливих засобів для роботи з базами даних. Оператор мови обробки даних (оператор CALL), зокрема, зазвичай просто звертається до СУБД (хоча такі звернення можуть бути синтаксично спрощені, щоб вони стали більш дружніми по відношенню до користувача).
Повернемося до архітектури. Як уже зазначалося, окремого користувача цікавить лише деяка частина всієї бази даних. Крім того, подання користувача про цю частину буде, безумовно, більш абстрактним порівняно з обраним способом фізичного зберігання даних. Відповідно до термінології ANSI/SPARC, подання окремого користувача називається зовнішнім поданням. Таким чином, зовнішнє уявлення - це вміст бази даних, яким його бачить певний користувач (тобто для кожного користувача зовнішнє уявлення і є та база даних, з якою він працює).
Наприклад, користувач з відділу кадрів може розглядати базу даних як набір записів з інформацією про відділи плюс набір записів з інформацією про службовців, і нічого не знати про записи з інформацією про матеріали та їх постачальників, з якими працюють корист...