Обща информация за SQL

SQL (Structured Query Language - Structured Query Language) е езикът на четвърто ниво, предназначена за работа с релационни бази данни.

В началото на 1970 г. в един от изследователските лаборатории на експериментален релационна база данни на IBM е разработена система R (инж.), Към която след това бе създаден специален език на продължението, го прави относително лесен за управление на данни в базата данни. Продължението съкращение означава структурирана английски Query Language - Структуриран английски Query Language. По-късно, в продължение на юридически език причини продължението е бил преименуван в SQL и официалния произношението е [, ове Кю: "ел] - ове щеката ел.

Първата база данни в подкрепа на новия език започва през 1979 г. OracleV2 за VAX машини от компанията Релационна Software Inc. и система / 38 от IBM, базиран на система / R.

История на версиите на стандарта е показано в таблицата по-долу:

Първата версия на стандарта, приет от Института ANSI и ISO одобрен през 1987 г., годината

Малко модифицирана версия на предишния стандарт.

Значителни промени (ISO 9075); Ниво входно ниво SQL-92 стандарт е приет като FIPS 127-2 стандарт

Добавена е поддръжка за регулярни изрази, рекурсивни запитвания, тригери, подкрепа, основни процедурни разширения, които не са скаларни типове данни и някои обектно-ориентирани функции

Въведете разширението за работа с прозорците на XML данни функции (използвани за база данни OLAP-бази данни, генератори на последователност и на базата на тези типове данни

Функционалност с XML-данни се разшири значително. Сега можете да споделяте в SQL изявления и XQuery

Основните предимства от използването на SQL:

1. Независимо от специално базата данни. Въпреки съществуването на диалекти, както и разликите в синтаксиса, в по-голямата част от SQL-заявки текстове, които съдържат DDL и DML изявления, той може да бъде много лесно се мести от една база данни в друга. Разбира се, че е трудно да се постигне при използване на някои специфични особености на приложението, като преносимост.

3. декларативно. С SQL програмист описва необходимите данни, за да бъдат отстранени или променени. Начинът, по който да се направи това, СУБД реши директно при обработката на SQL-заявка, но е полезно да си представите как ще анализира данни в текста на искането си. Особено критични са тези моменти, когато се работи с големи бази данни и сложни заявки, - толкова по-сложен заявката е конструирана, толкова повече тя позволява на изписване, различна скорост на изпълнение, но идентични в последната част на данни.

В допълнение, възможно е да се отбележи, редица недостатъци:

1. Неспазването на модела на релационни данни. Създателят на модела на релационни данни Едгар Kodd, Кристофър Deyt и техните поддръжници посочват факта, че SQL не е вярно релационна език. По-специално, те изтъкват, че следната SQL проблем:

- неопределен стойност (NULL);

- ясен знак от порядъка на колони от ляво на дясно;

- колона без име и дублира имена на колони;

- използването на указатели и т.н.

2. сложност. Въпреки, че SQL и е замислен като средство за крайния потребител, в крайна сметка, той става толкова сложна, че става инструмент за програмисти.

3. Отклонения от стандартната. Въпреки наличието на международния стандарт ANSI SQL-92, много компании, разработващи системи за управление на бази данни (например, Oracle, Sybase, Microsoft, MySQL), да правите промени в езика на SQL, използвани в развитите базата данни, като по този начин се отклонява от стандарта. По този начин, там са специфични за всеки конкретен език база данни SQL диалекти. Има четири нива на съответствие с прилагането на стандарта SQL:

4. сложността на работата с йерархични структури. По-рано, SQL не предлага стандартен метод за манипулация на дървесни структури. Някои СУБД доставчици предлагат своите решения. Например, Oracle използва CONNECT чрез експресия. В момента, като стандартна приета с рекурсивни строителство.

Тъй като SQL не е език за програмиране (т.е. не предоставя инструменти за автоматизиране на операциите с данни), въведен от различни производители разширяват фокуса предимно на процедурни разширения. Съхранени процедури и процедурни езици. Почти всеки база данни прилага процесуално език. Такива езици за най-популярните бази данни са показани в таблицата по-долу.