SQL език
4.7 Практически въпроси за програмиране.
Почти всички начини за организиране на потребителско взаимодействие с база данни, разгледани по-долу, се основават на модела "клиент-сървър". Тези. приема се, че всяко приложение за обработка на данни е разделено на поне две части:
- клиентът, който отговаря за организирането на потребителския интерфейс
- сървърът, който всъщност съхранява данните, обработва заявките и изпраща техните резултати на клиента за показване
Езикът SQL позволява манипулиране само на данни, но липсват инструментите за създаване на екранен интерфейс, който е необходим за персонализирани приложения. За създаването на този интерфейс се използват универсални езици от трето поколение (C, C ++, Pascal) или четвърто поколение, ориентирани към проблеми езици (xBase, Informix 4Gl, Progress, Jam.). Тези езици съдържат необходимите изрази за въвеждане/извеждане на екрана, както и изявления за структурирано програмиране (цикъл, разклоняване и т.н.). Също така тези езици позволяват дефинирането на структури, съответстващи на записите на таблиците на базата данни, която се обработва. Изходният код на програмата включва SQL изрази, които се предават на сървъра на базата данни по време на изпълнение, който всъщност манипулира данните. Връзките, получени от сървъра, изпълняващ SQL заявки, се връщат в приложението, което попълва предварително дефинираните структури с редове на тези връзки. По-нататъшната работа на клиентската програма (показване, корекция на записите) се извършва с тези структури.
Нека разгледаме различни начини за организиране на достъп на приложна програма до сървъра на базата данни.
Всяка СУБД, в допълнение към интерактивна помощна програма за SQL, трябва да има библиотека за достъп и набор от драйвери за различни операционни системи. Схемата на взаимодействие на клиентското приложение със сървъра на базата данни в този случай изглежда така:

Библиотеката за достъп по правило е обектен файл, чийто изходен код е създаден на общ език като ° С. Тази библиотека съдържа набор от функции, които позволяват на персонализирано приложение да се свързва с база данни, да изпраща заявки до сървъра и да получава данни за отговор. Типичен набор от функции за такава библиотека (имената на функциите зависят от използваната библиотека):
- DB_connect (char * dbname, char * потребителско име, char * парола) - установява връзка с базата данни, връща указател към структурата db, описвайки характеристиките на това съединение
- DB_exec (db, char * заявка) - изпълнете заявка към базата данни, дефинирана от структурата db. Прилага се за всяка друга заявка, различна от SELECT. Връща кода за изпълнение на заявката (0 - успешно или код за грешка)
- DB_select (db, char * заявка) - изпълнете заявка за извличане на данни (SELECT). Връща структурата резултат, съдържащ резултатите от заявката (релационна връзка).
- DB_fetch (резултат) - извличане на следващия запис от структурата резултат.
- DB_close (db) - затворете връзката с базата данни.