Structured Query Language: Rozdiel medzi revíziami

chýba zhrnutie úprav
d (robot Zmenil: hi:ऍसक्यूऍल)
'''Structured Query Language''' (SQL) je počítačový jazyk na manipuláciu ([[DML]]) (výber, vkladanie, úpravu a mazanie) a definíciu dát ([[DDL]]). V súčasnosti je to najpoužívanejší jazyk tohto druhu v [[relačný databázový systém|relačných systémoch riadenia báz dát]].
 
Jazyk SQL sa vyvinul pôvodne z jazyka [[SEQUEL]], čo bol jazyk pre manipuláciu a definíciu dát pre [[System R]] od [[IBM]], prvého databázového systému založenom na [[Edgar F. Codd|Coddovom]] [[relačný dátový model|relačnom dátovom modeli]]. Prvý komerečnýkomerčný databázový systém využívajúci SQL vyvinula spoločnosť Relational Software, Inc. (teraz [[Oracle (databázový systém)|Oracle]]) v roku 1979. Jazyk SQL sa stal čoskoro štandardnou výbavou väčšiny relačných databázových systémov.
 
V roku [[1986]] inštitúcia [[ANSI]] štandardizovala jazyk SQL pod označením SQL-86. O rok neskôr vo viac-menej nezmenejnezmenenej forme tento štandard ratifikovala aj organizácia [[ISO]] (SQL-87). V roku [[1989]] a [[1992]] boli prijaté revízie označené ako SQL-89, resp. SQL-92 (aj SQL-2). Výrazné zmeny prišli v roku [[1999]], kedy sa do štandardu SQL:1999 (SQL-3) dostali napr. rekurzívne dotazy, spúšťače (triggery), regulárne výrazy, neskalárne dátové typy a niektoré objektovo-orientované vlastnosti. Verzia SQL:2003 priniselapriniesla hlavne podporu pre [[XML]], štandardizované postupnosti, stĺpce s automaticky generovanými hodnotami a tzv. oknové funkcie.
 
Norma SQL-86 definuje výslovnosť slova SQL v anglickom jazyku ako „eskjúel“, hoci mnoho ľudí ho vyslovuje stále ako „síkl“ (SEQUEL). V slovenskom jazyku sa okrem týchto dvoch cudzích výslovností používa prirodzené „eskvéel“.
Časť, ktorá slúži na manipuláciu s dátami, je vo svojej podstate len syntaktický cukor pre [[relačný kalkul]].
 
V čistej forme (štandard) nie je jazyk SQL [[turingovsky úplný]], tzn. nevieme v ňom vypočítať všetko, čo vieme na [[Turingov stroj|Turingovom stroji]] (a teda aj naprogramovať v bežných programovacích jazykoch). V SQL nedokážeme napríklad urobiť [[tranzitívny uzáver]] [[realácia|relácie]]. Z tohto dôvodu mnohé databázové systémy rozširujú jazyk SQL o ďalšie konštrukcie, napr. [[Oracle]] dodáva [[PL/SQL]], [[Microsoft]] [[SQL Server]] používa [[T-SQL]]. Iný prístup spočíva v integrácií niektorého klasického programovacieho jazyka, napr. Oracle podporuje jazyk [[Java]], Microsoft SQL Server 2005 ľubovoľný jazyk podporujúci .NET (napr. C#, VB.NET či C++), v [[PostgreSQL]] môžu byť funkcie písané v rôznych jazykoch ako je [[Perl]], [[Tcl]] či [[C]].
 
== Rozšírenia ==
=== Procedurálne rozšírenia ===
SQL je navrhnuté na špecifický účel: vyhľadávať údaje v relačnej databáze. SQL je nastaviteľný, deklaratívny jazyk, nie prikazovací ako [[C (programovací jazyk)|C]] alebo [[BASIC programovací jazyk|BASIC]]. Napriek tomu existujuexistujú rozšírenia základného SQL, ktoré dopĺňajú funkcie procedurálneho programovacieho jazyka, ako napríklad konštrukcia kontrola-za-behu. Tu sú:
 
{| class="wikitable"
| Procedural Language/PostgreSQL Structured Query Language
|}
 
 
Na doplnenie štandardných SQL/PSM rozšírení a súkromných (patentovaných?) SQL rozšírení, je na veľa SQL platformách pomocou DBMS integrácie s inými jazykmi umožnené procedurálne a objektovo-orientované programovanie. SQL štandardy definujú SQL/JRT rozšírenia (SQL programy a typy(?) pre programovací jazyk Java) na podporu kódu Java v AQL databázach. SQL Server 2005 používa SQLCLR ( spoločný jazyk pre SQL Servery) na riadenie(?) klienta. NET vyhľadáva v databáze, kým predchádzajúce verzie SQL Server nepodporovali neriadené(?) rozširovacie funkcie, primárne napísané v C. Ďalšie databázové platformy, ako MySQL a Postgres, umožňujú písanie funkcií v širokom spektre jazykov, ako: Perl, Python, TCL a C.
 
=== Ďalšie rozšírenia ===
SQL: 2003 tiež definuje niekoľko daľšíchďalších rozšírení kuk standartuštandardu zväčšiť SQL celkovú funkčnosť. Tieto rozšírenia obsahujú:
 
*[[http://en.wikipedia.org/wiki/SQL/CLI SQL/CLI]], alebo '''volacie rozhranie''', rozšírenie je definované v ISO/IEC 9075-3: 2003. Toto rozšírenie definuje obyčajné prepojovacie? komponenty (štruktúry a procedúry), ktoré môžu byť použité na spracovanie SQL formulácii z aplikácii písaných v iných programovacích jazykoch. SQL/CLI rozšírenie je definované v takej ceste že SQL formulácie a SQL/CLI procedurálne volania su spracované ako !!!separate!!! z volacieho aplikačného zdrojového kódu.
 
*[[http://en.wikipedia.org/wiki/SQL/MED SQL/MED]], alebo '''vedenie externých dát''', rozšírenie je definované ISO/IEC 9075-9: 2003. SQL/MED poskytuje rozšírenie ku SQL, ktoré vymedzuje cudzie-datovédátové obaly a datalinkové typy k povoleniu SQL riadiť externé dáta. Externé dáta sú dáta, ktoré sú dostupné , ale nie riadené, SQL-based? DBMS.
 
*[[http://en.wikipedia.org/wiki/SQL/OLB SQL/OLB]], alebo '''Objektové jazykové viazanie''', rozšírenie je definované ISO/IEC 9075-10: 2003. SQL/OLB definuje syntax a !!symantics!! SQLJ, ktorý je SQL vložený v Jave. ŠtandartŠtandard taktiež popisuje mechanizmy na zaistenie binárnej prenositeľnosti SQLJ aplikácii, a špecifikuje rôzne java balíčky a ich obsahované triedy.
 
*[[http://en.wikipedia.org/wiki/SQL/Schemata SQL/schémata]], alebo '''Informovanosť a definícia schémat''', rozšírenie je definované ISO/IEC 9075-11: 2003. SQL/schémata definujú informačné schéma a definujúce schéma, poskytujúce obyčajný súbor nástrojov robiť SQL databázy a objekty samo-popisovateľné??. Tieto nástroje zahrnujú SQL objektový identifikátor, štruktúru a integritné zabezpečenia??, bezpečnosť a autorizačné špecifikácie, funkcie a balíčky ISO/IEC 9075, podpora funkcií poskytované SQL-based DBMS implementácií, SQL-based DBMS implementačné informácie a formátovacie prvky?? a hodnoty podporované DBMS implementáciami.
 
SQL/JRT, alebo '''SQL rutiny a typy pre java programovací jazyk''', rozšírenie je definované ISO/IEC 9075-13: 2003. SQL/JRT špecifikuje schopnosť sa odvolať na statické java metódy ako rutiny vo vnútri SQL aplikácii. To taktiež volá po schopnosti používať java triedy ako SQL usporiadané užívateľské definované typy.
 
*[[http://en.wikipedia.org/wiki/SQL/XML SQL/XML]], alebo '''XML-príbuzné špecifikácie''', rozšírenie je definovánédefinované ISO/IEC 9075-14: 2003. SQL/XML špecifikuje SQL-based rozšírenie na používanie spojenia s SQL. XML datovýdátový typ je predstavený, rovnako ako niekoľko rutín, funkcií, a XML-to-SQL dátový typ mapujúci na podporu manipulácie a ukladania XML v SQL databáze.
 
SQL/PSM, alebo '''Trvalo uložené moduly''', rozšírenie je definované ISO/IEC 9075-4: 2003. SQL/PSM normalizuje procedurálne rozšírenie pre SQL, obsahujúci prúd kontroly, !!!condition!!! manipuláciu, príkaz !!condition!! signálov a !!resignals!!, kurzorov a lokálnych promennýchpremenných a dosadzovanie?? výrazov do promennýmpremenným a parametrov. Naviac, SQL/PSM formuje deklaráciu a udržovanie trvalých databázových jazykových rutín (napr., “uložené procedúry”).
 
== Jazykové prvky ==
* '''Výrazy''' – ktoré môžu zobrazovať skalárne veličiny, alebo tabuľky, pozostávajúce z údajov v riadkoch a stĺpcoch
* '''Premenné''' – ktoré špecifikujú podmienky, ktoré môžu stanoviť SQL trojhodnotovú logiku (3VL) Boolean-ovskej pravdivých hodnôt, ktoré sú používané na limitovanie účinkov príkazov a vyhľadávania, alebo na zmeny tokov programov.
 
 
{{Významné programovacie jazyky}}
56 320

úprav