Обща информация за 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 не е език за програмиране (т.е. не предоставя инструменти за автоматизиране на операциите с данни), въведен от различни производители разширяват фокуса предимно на процедурни разширения. Съхранени процедури и процедурни езици. Почти всеки база данни прилага процесуално език. Такива езици за най-популярните бази данни са показани в таблицата по-долу.