എസ്.ക്യു.എൽ.

റിലേഷണൽ ഡേറ്റാബേസുകൾക്കായുള്ള ഉടമസ്ഥ രഹിത നോൺ പ്രൊസീജറൽ കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ് ഭാഷയാണ് **സ്റ്റ്രക്ചേർഡ് ക്വറി ലാങ്വേജ്** അഥവാ **എസ്.ക്യു.എൽ.** ഇന്ന് ഒറാക്കിൾ, എം.എസ്. എസ്.ക്യു.എല്. സെർവർ‍, മൈഎസ്ക്യുഎൽ, പി.എൽ/എസ്.ക്യു.എൽ തുടങ്ങി നിരവധി ഡേറ്റാബേസുകൾ എസ്.ക്യു.എൽ ഉപയോഗിക്കുന്നു. ഡേറ്റാബേസ് ഉപയോഗിച്ച് വിവരങ്ങളുടെ ശേഖരണം, പുനരുപയോഗം, കൈകാര്യംചെയ്യൽ എന്നിവയ്ക്കായി മാത്രം നിർമ്മിച്ച ഭാഷയാണിത്. എസ്.ക്യു.എൽ. സാധാരണയായി ഉപഭാഷയായി മാത്രമേ അറിയപ്പെടുന്നുള്ളു. റിലേഷണൽ ഡേറ്റാബേസിലെ അൽഗോരിതം കൂടി പ്രവർത്തിച്ചാലേ എസ്.ക്യു.എൽ ഉപയോഗിച്ച് പ്രയോജനപ്രദമായ പ്രവർത്തനങ്ങൾ നടത്താൻ കഴിയുകയുള്ളു എന്നതിനാലാണിത്. ഒരു നോൺ പ്രൊസീജറൽ ഭാഷയായാണ് നിർവ്വചിച്ചിരിക്കുന്നതെങ്കിലും കാലാകാലങ്ങളായുള്ള മാറ്റങ്ങളിലൂടെ ചിലയിടങ്ങളിൽ പ്രൊസീജറൽ സ്വഭാവം വന്നിട്ടുണ്ട്.
## ചരിത്രം
റിലേഷണൽ ഡേറ്റാബേസ് സിദ്ധാന്തം പോലെ ഐ.ബി.എമ്മിന്റെ ഗവേഷണശാലയിലാണ് എസ്.ക്യു.എല്ലിന്റേയും പിറവി. 1970 കളുടെ തുടക്കത്തിൽ ഐ.ബി.എം തങ്ങളുടെ ആർ.ഡി.ബി.എം.എസ്. സിസ്റ്റത്തിന്റെ ആദ്യരൂപം അവതരിപ്പിച്ച കൂട്ടത്തിൽ ഡേറ്റയുടെ കൈകാര്യനിർവ്വഹണത്തിനായി ഒരു ഉപഭാഷകൂടി സൃഷ്ടിച്ചിട്ടുണ്ടായിരുന്നു. ഔദ്യോഗികമായി പുറത്തിറങ്ങുന്നതിന്റെ മുമ്പ് ഭാഷയെ അവർ സീക്യൂവെൽ (SEQUEL - Structured English QUEry Language) എന്നു വിളിച്ചു പോന്നു. എന്നാൽ പുറത്തിറങ്ങിയ സമയം തങ്ങളുടെ ഭാഷയുടെ പേർ അവർ മാറ്റുകയും സീക്യൂവെല്ലിനോട് സാദൃശ്യമുള്ള എസ്.ക്യു.എൽ എന്ന നാമം സ്വീകരിക്കുകയും ചെയ്തു. സീക്യുവെൽ എന്ന നാമം മറ്റൊരു കമ്പനിയുടെ സ്വകാര്യസ്വത്തായിരുന്നു എന്നതും ഈ മാറ്റത്തിനു കാരണമായി. 1981-ൽ ഔദ്യോഗികമായി അവതരിപ്പിക്കപ്പെടുന്നതിന്റെ മുമ്പ് തന്നെ ഈ ഭാഷയും ആർ.ഡി.ബി.എം.എസ്സും. പ്രസിദ്ധിയാർജ്ജിച്ചായിരുന്നു. അതേസമയം തന്നെ റിലേഷണൽ സോഫ്റ്റ്‌വേർ.ഇൻ‌ക് (ഇന്ന് ഒറാക്കിൾ കോർപ്പറേഷൻ) അവരുടെ ആദ്യ ആർ.ഡി.ബി.എം.എസ് പുറത്തിറക്കിയിരുന്നു. ഈ ആദ്യകാല ഉൽപ്പന്നങ്ങൾ പുതു ഡേറ്റാബേസ് മാനേജ്മെന്റ് സിസ്റ്റങ്ങൾക്ക് മാനകങ്ങളായിത്തീർന്നു. ഇരുവരും തങ്ങളുടെ ഡേറ്റാബേസുകളിൽ എസ്.ക്യു.എൽ ഇണക്കിച്ചേർത്തിരുന്നു. അങ്ങനെ തത്ത്വത്തിൽ അതൊരു ഡേറ്റാബേസ് മാനേജ്മെന്റിനുള്ള ഭാഷയായിത്തീർന്നു. തുടർന്ന് മറ്റ് റിലേഷണൽ ഡേറ്റാബേസ് കമ്പനികളും ഏതെങ്കിലും വിധത്തിൽ എസ്.ക്യു.എൽ ഉപയോഗിച്ചു തുടങ്ങി. എങ്കിലും അവയെല്ലാം വ്യത്യസ്തമായിരുന്നു.

ഈ പ്രശ്നത്തിനു പരിഹാരം കാണാനുള്ള ശ്രമത്തിന്റെ ഭാഗമായി ആൻസി (ANSI) 1986-ൽ എസ്.ക്യു.എൽ.-86 (SQL -86) എന്ന പേരിൽ ഒരു മാനകരൂപം സൃഷ്ടിച്ചു. തുടർന്ന് അത് പലവട്ടം പുതുക്കുകയുണ്ടായി. ഇന്നും എസ്.ക്യു.എൽ കാലാനുസൃതമായിരിക്കാൻ ശ്രദ്ധിക്കുന്നുണ്ട്.

## ഉപയോഗം
ഡേറ്റാബേസിലേക്ക് വിവരങ്ങൾ നൽകുക, ഡേറ്റാബേസിൽ നിന്നും വിവരങ്ങൾ എടുക്കുക, അതിലെ വിവരങ്ങൾ കൈകാര്യം ചെയ്യുക എന്നതിനപ്പുറം ഒരു പ്രവൃത്തിയും ചെയ്യാൻ എസ്.ക്യു.എൽ ഉപയോഗിച്ചു സാധിക്കുകയില്ല. അതുകൊണ്ട് തന്നെ ഡേറ്റാബേസ് മാനേജ്മെന്റ് സിസ്റ്റത്തിനു പുറത്ത് എസ്.ക്യു.എല്ലിനു നിലനിൽപ്പില്ല. അതായത് സി, സി++, ജാവ തുടങ്ങിയ കമ്പ്യൂട്ടർ ഭാഷകളെ പോലെ പ്രശ്നനിർദ്ധാരണത്തിനായി എസ്.ക്യു.എൽ ഉപയൊഗിക്കാൻ സാധ്യമല്ല. ഡേറ്റാബേസിലേയ്ക്ക് എസ്.ക്യു.എൽ ഉപയോഗിച്ചു നൽകുന്ന കമാൻഡുകളെ സ്വീകരിക്കുന്ന ഡേറ്റാബേസ് ആണ് അതിൽ എന്തായിരിക്കണം പ്രവർത്തനമെന്ന് പൂർണ്ണമായും നിശ്ചയിക്കുന്നതും പ്രവർത്തിക്കുന്നതും.

പ്രവർത്തനത്തിനായി പൂർണ്ണമായും ആർ.ഡി.ബി.എം.എസ്സിനെ ആശ്രയിക്കുന്നതിനാൽ എസ്.ക്യു.എൽ ഒരു പ്ലാറ്റ്ഫോം സ്വതന്ത്രമായ ഭാഷയാണെന്നു പറയാം. എന്നാൽ ജാവ പോലുള്ള പ്ലാറ്റ്ഫോം സ്വതന്ത്രങ്ങളായ ഭാഷകൾ പ്രവർത്തിക്കുന്നതിൽ നിന്നും പൂർണ്ണമായി വ്യത്യസ്തമായ രീതിയിലാണ് ഇതിന്റെ പ്രവർത്തനം. എസ്.ക്യു.എൽ കീവേഡുകൾ എല്ലായിടത്തും ഉപയോഗിക്കുന്നു എന്നതു കഴിഞ്ഞാൽ ഒന്നിനൊന്നു വ്യത്യസ്തമാണ് ആന്തരിക പ്രവർത്തനങ്ങൾ. ക്വെറികൾ ഡേറ്റാബേസിൽ വച്ച് മെഷീൻ കോഡിലോട്ട് മാറുകയും പ്രവർത്തിക്കുകയും ചെയ്യുന്നു.

ആർ.ഡി.ബി.എം.എസ്സുകൾ നിർമ്മിക്കുന്ന വിവിധ കമ്പനികൾ അവരവരുടെ പ്രത്യേകതകളും തങ്ങളുടെ എസ്.ക്യു.എല്ലിൽ ചേർത്തിട്ടുള്ളതിനാൽ അവരവരുടെ സങ്കീർണ്ണമായ ഒരു ക്വെറി മറ്റൊരാളുടെ ഡേറ്റാബേസിൽ പ്രവർത്തിക്കാതെ വന്നേക്കാം. ഉദാഹരണത്തിന് ഒറാക്കിൾ ഉപയോഗിക്കുന്ന ഒരു ക്വെറി അവരുടെ ലിനക്സ് ഡേറ്റാബേസിലും, വിൻഡോസ് ഡേറ്റാബേസിലും പ്രവർത്തിക്കും. പക്ഷേ അത് എം.എസ്. എസ്.ക്യു.എല്ലിലോ തിരിച്ചുമോ പ്രവർത്തിക്കണമെന്നില്ല. മിക്കവാറും എല്ലാ ഡേറ്റാബേസ് നിർമ്മാതാക്കളും അവരവരുടെ എസ്.ക്യു.എൽ ഭാഷാഭേദങ്ങൾ ഉപയോഗിക്കുന്നു. എന്നാലും ഭാഷയുടെ ബഹുഭൂരിഭാഗവും മാനക എസ്.ക്യു.എല്ലിനു സമാനമായിരിക്കും.
### പ്രയോഗം
റിലേഷണൽ ഡേറ്റാബേസുകളിൽ വിവരങ്ങൾ സംഭരിച്ച് പുനഃരുപയോഗിക്കുന്നതിന് വേണ്ട കാര്യങ്ങൾ എസ്.ക്യു.എല്ലിൽ വ്യക്തമായി പറഞ്ഞിട്ടുണ്ട്.

ഡേറ്റായിൽ സ്ഥിരമായി അനുഭവപ്പെടേണ്ട കമാൻഡുകളെ സ്റ്റേറ്റ്മെന്റ്സ് (Statements) എന്നു വിളിക്കുന്നു. കണക്ഷനുകൾ, സെഷൻ, പരിശോധനകൾ തുടങ്ങിയ കാര്യങ്ങളാണ് സ്റ്റേറ്റ്മെന്റ് ആയി നൽകുന്നത്. പ്രത്യേക മാനദണ്ഡങ്ങൾക്കനുസൃതമായി വിവരങ്ങൾ ഡേറ്റാബേസിൽ നിന്നും ശേഖരിക്കാനുള്ള കമാൻഡുകളെ ക്വെറികൾ എന്നു വിളിക്കുന്നു (Queries). മാറിക്കൊണ്ടിരിക്കാവുന്ന വിവരങ്ങളേയും വരിയും നിരയുമടങ്ങുന്ന പട്ടികകളേയും സൃഷ്ടിക്കാൻ കഴിവുള്ള കമാൻഡുകളെ എക്സ്പ്രെഷൻസ് (Expressions) എന്നു വിളിക്കുന്നു. ശരിയെന്നോ തെറ്റെന്നോ ഉത്തരം വരാവുന്ന വ്യവസ്ഥകളെ അടിസ്ഥാനമാക്കി സ്റ്റേറ്റ്മെന്റുകളോ ക്വെറികളോ പ്രവർത്തിപ്പിക്കാനുള്ള കമാൻഡുകളെ പ്രെഡിക്കേറ്റുകൾ എന്നു വിളിക്കുന്നു. അവശ്യാനുസരണം തിരഞ്ഞെടുക്കാവുന്ന തരത്തിൽ സ്റ്റേറ്റ്മെന്റുകളോ ക്വെറികളോ ഉൾപ്പെട്ട കമാൻഡുകളെ ക്ലോസസ്(Clauses) എന്നു വിളിക്കുന്നു.

### ഘടകങ്ങൾ
പ്രയോഗ രീതിക്കസരിച്ച് ഭാഷയെ മൂന്നുപഭാഷകളായി തിരിച്ചിട്ടുണ്ട്, അതായത് എസ്.ക്യു.എൽ എന്നത് ഒരൊറ്റഭാഷ തന്നെയാണെങ്കിലും ഒരു ഉപയോക്താവിന് ഡേറ്റാബേസിൽ ചെയ്യേണ്ട കാര്യങ്ങളായ സൃഷ്ടി, പുതുക്കൽ, പരിപാലനം, സുരക്ഷപ്രദാനം ചെയ്യുക തുടങ്ങിയ കാര്യങ്ങൾക്കായി മൂന്നായി തിരിച്ചിരിക്കുന്നു.
* ഡേറ്റാ നിർവ്വചന ഭാഷ (The Data Definition Language - DDL)
* ഡേറ്റാ കൈകാര്യം ചെയ്യാനുള്ള ഭാഷ (The Data Manipulation Language - DML)
* ഡേറ്റാ നിയന്ത്രണത്തിനുള്ള ഭാഷ (The Data Control Language - DCL)
എന്നിങ്ങനെയാണത്

#### ഡേറ്റാ നിർവ്വചന ഭാഷ
ഒരു പുതിയ ഡേറ്റാബേസ് നിർവ്വചിക്കാനും, അതിന്റെ ഘടന രൂപപ്പെടുത്താനും, ഉപയോഗശൂന്യമാകുമ്പോൾ നശിപ്പിച്ചുകളയാനുമുള്ള ഉപയോഗമാണ് എസ്.ക്യു.എല്ലിന്റെ ഈ ഭാഗം ചെയ്യുന്നത്. പുതിയ പട്ടികകളും അനുബന്ധഘടകങ്ങളും നിർവ്വചിക്കാനും ഇതിനു കഴിവുണ്ടാവും. `CREATE`, `ALTER`, `RENAME`, `TRUNCATE`, `DROP` എന്നിവയാണ് ഡേറ്റാ നിർവചന ഭാഷയിലുള്ള ഏറ്റവും അടിസ്ഥാനകരമായ ചില വാക്കുകൾ.
ഉദാ:
```sql
CREATE TABLE My_table (
 my_field1 INT,
 my_field2 VARCHAR (50),
 my_field3 DATE         NOT NULL,
 PRIMARY KEY (my_field1, my_field2)
);
```


#### ഡേറ്റാ കൈകാര്യം ചെയ്യാനുള്ള ഭാഷ
ഡേറ്റാബേസിന്റെ പരിപാലനമാണ് ഭാഷയുടെ ഈ ഭാഗം കൈയ്യാളുന്നത്. ഇതുപയോഗിച്ച് ഒരുപയോക്താവിന് എന്ത് എങ്ങനെ വേണമെന്നും അതിലെന്തുമാറ്റമാണ് വേണ്ടതെന്നും പറഞ്ഞുകൊടുക്കാവുന്നതാണ്. `START TRANSACTION`, `COMMIT`, `ROLLBACK` തുടങ്ങിയ വാക്കുകൾ ഡി.എം.എല്ലിൽ ഉൾപ്പെടുന്നു.
ഉദാ: ഒരു ബാങ്ക് അക്കൌണ്ടിലെ പണം മറ്റൊരക്കൌണ്ടിലേക്ക് മാറ്റുന്നു

```sql
START TRANSACTION;
 UPDATE Account SET amount=amount-200 WHERE account_number=1234;
 UPDATE Account SET amount=amount+200 WHERE account_number=2345;
IF ERRORS=0 COMMIT;
IF ERRORS<>0 ROLLBACK;
```

#### ഡേറ്റാ നിയന്ത്രണത്തിനുള്ള ഭാഷ
ഡേറ്റാബേസിനെ സംരക്ഷിക്കുവാനും തെറ്റുകുറ്റങ്ങൾ പറ്റാതെ സൂക്ഷിക്കാനുമാന് ഡേറ്റാ നിയന്ത്രണത്തിനുള്ള ഭാഷ അഥവാ ഡി.സി.എൽ. ഉപയോഗിക്കുന്നത്. ഒരു ഡേറ്റാബേസിന്റെ കൈകാര്യം വേണ്ടത്രസുരക്ഷിതമല്ലങ്കിൽ അന്യർ അത് വരുതിയിലാക്കാനും അങ്ങനെ പ്രശ്നങ്ങളുണ്ടാകാനുമിടയുണ്ട്. ഇത് തടയാനാണ് ഡി.സി.എൽ. ഉപയോഗിക്കുന്നത്. `GRANT`, `REVOKE` എന്നീ വാക്കുകൾ ഇവിടെ ഉപയോഗിക്കുന്നു.

ഉദാ:

```sql
GRANT SELECT, UPDATE ON My_table TO some_user, another_user;
```


### ക്ലൈന്റ്/സെർവർ ഉപയോഗം
ഒരു കമ്പ്യൂട്ടർ ഉപയോഗിച്ചോ, നെറ്റ്‌വർക്കിലോ എസ്.ക്യു.എൽ ഉപയോഗിക്കാവുന്നതാണ്. ക്ലൈന്റ്/സെർവർ മാതൃകയിൽ നന്നായി പ്രവർത്തിക്കാൻ പാകത്തിലാണിത് സൃഷ്ടിച്ചതു തന്നെ. സെർവർ കമ്പ്യൂട്ടറിൽ ഡേറ്റാബേസ് സ്ഥിതിചെയ്യുകയും, ലാൻ ഉപയോഗിച്ചോ മറ്റ് സംവേദന ചാനലുകൾ ഉപയോഗിച്ചോ സെർവറുമായി ബന്ധപ്പെട്ട ക്ലൈന്റ് ഉപയോഗിച്ച് ഡേറ്റാബേസിനെ സമീപിക്കാനും കഴിയും. ഡി.ബി.എം.എസ്സിന്റെ ക്ലൈന്റിൽ സ്ഥിതി ചെയ്യുന്ന ഭാഗം ഉപയോഗിച്ച് സെർവറിനു കമാൻഡുകൾ നൽകാനും വിവരങ്ങൾ എടുക്കാനും കഴിയും.

#### ഡേറ്റാബേസ് സെർവർ
ക്ലൈന്റ്/സെർവർ സിസ്റ്റത്തിൽ ഡേറ്റാബേസ് സ്ഥിതി ചെയ്യുന്ന കമ്പ്യൂട്ടറിനെ സെർവർ എന്നു വിളിക്കുന്നു. ഡേറ്റാബേസ് മാനേജ്മെന്റിന്റെ സെർവർ ഭാഗം സെർവറിലായിരിക്കും. ക്ലൈന്റിൽ നിന്നു ലഭിക്കുന്ന ക്വെറികൾ സ്വീകരിച്ച് മനസ്സിലാക്കി വേണ്ട പ്രവർത്തനങ്ങൾ നടത്തി ബന്ധപ്പെട്ട അറിയിപ്പുകൾ നൽകുകയാണ് സെർവർ ചെയ്യുന്നത്.

ഇന്ന് സെർവറുകൾ വളരെയധികം ഡേറ്റകൾ സംഭരിക്കാനും അവ വളരെ വേഗം പുനഃശേഖരണം നടത്താനും കൂടിയ തോതിലുള്ള ഡേറ്റാ കൈമാറ്റത്തെ തടസ്സപ്പെടുത്താതിരിക്കാനും ശക്തിയുള്ളവയായിരിക്കും. വളരെ കൂടിയ അളവിലുള്ള സംഭരണമാധ്യമങ്ങളും, വേഗതയേറിയ (ചിലപ്പോൾ ഒന്നിലധികം) പ്രോസസറും ഇവയ്ക്കുണ്ടാകും.

#### ക്ലൈന്റ്
ക്ലൈന്റ്/സെർവർ സിസ്റ്റത്തിൽ ഡി.ബി.എം.എസ്സിന്റെ ക്ലൈന്റ് ഭാഗം സ്ഥിതിചെയ്യുന്ന കമ്പ്യൂട്ടറിനെ ക്ലൈന്റ് എന്നു വിളിക്കുന്നു. ഒരു സെർവറിനു തന്നെ ഒന്നിലധികം ക്ലൈന്റുകൾ ഉണ്ടാകാം. ഒരു ഉപയോക്താവിനു ഉപയോഗിക്കാൻ പറ്റുന്ന വിധത്തിൽ സെർവറിനെ സമീപിക്കാനുള്ള സോഫ്റ്റ്വെയറുകളാണ് ക്ലൈന്റിലുണ്ടാവുക. കീബോർഡോ മൌസോ മറ്റ് ഇൻപുട്ട് ഉപാധികളോ ഉപയോഗിച്ച് ഉപയോക്താവ് ആവശ്യപ്പെടുന്ന കാര്യങ്ങൾ സെർവറിലേക്കു നല്കുകയും, അത് പരിശോധിച്ച് സെർവർ നൽകുന്ന വിവരങ്ങൾ ഉപയോക്താവിന് മനസ്സിലാക്കിക്കൊടുക്കുകയുമാണ് ക്ലൈന്റിന്റെ ദൌത്യം.

## നാൾവഴി
ആദ്യകാലത്ത് എസ്.ക്യു.എൽ ഡേറ്റാബേസുകൾക്കായുള്ള ഭാഷയായി തിരിച്ചറിയപ്പെട്ടിരുന്നെങ്കിലും ഓരോ കമ്പനികളും അവരവരുടെ താത്പര്യപ്രകാരമാണ് തങ്ങളുടെ ഡേറ്റാബേസിനായി എസ്.ക്യു.എൽ നിർവചിച്ചിരുന്നത്. ഇത് ഈ ഭാഷയ്ക്ക് ഒരു മാനകരൂപം ഉണ്ടാക്കേണ്ടത് ആവശ്യമായി തീർത്തു. 1978 ന് അടുത്ത് കമ്മിറ്റി ഓൺ ഡേറ്റാ സിസ്റ്റംസ് ആൻഡ് ലാങ്വേജ് (Committee on Data Systems and Language -CODASYL) നിലവിൽ വരികയും ഭാവി ഭാഷയുടെ നിർവചനത്തിനായി ശ്രമിക്കുകയും ചെയ്തു. 1982 ഓടെ ഈ പ്രവർത്തനങ്ങളുടെ ഫലമായി ഡേറ്റാ ഡെഫനിഷൻ ലാങ്വേജിന്റേയും ഡേറ്റാ മാനിപ്പുലേഷൻ ലാങ്വേജിന്റേയും ഔദ്യോഗിക രൂപം അംഗീകാരത്തിനായി സമർപ്പിക്കപ്പെട്ടു. നാലുകൊല്ലം കൂടി കഴിഞ്ഞപ്പോൾ അമേരിക്കൻ നാഷണൽ സ്റ്റാൻഡേർഡ്സ് ഇൻസ്റ്റിറ്റ്യൂട്ട് നാഷണൽ കമ്മിറ്റി ഓൺ ഇൻഫൊർമേഷൻ റ്റെക്നോളൊജി സ്റ്റാൻഡേർഡ്സ് എച്ച്2 റ്റെക്നിക്കൽ കമ്മറ്റി ഓൺ ഡേറ്റാബേസ് (American National Standards Institute National Committee on Information Technology Standards H2 Technical Committee on Database - ANSI NCITS H2 TCD) അംഗീകരിച്ചു. ഇത് ഐ.ബി.എം. എസ്.ക്യു.എൽ/ഡി.എസ്. നിർവചനങ്ങൾക്കൊത്ത് പോകുന്ന തരത്തിലുള്ള ഒരു ഭാഷയായിരുന്നു. പിന്നീട് 1987-ൽ ഐ.എസ്.ഒ. യും (The International Organization for Standardization - ISO) ഇതംഗീകരിച്ചു.

ആദ്യ ഏകീകൃത രൂപം എന്ന നിലയിൽ അറിയപ്പെടുന്നത് 1989-ൽ അംഗീകരിച്ച എസ്.ക്യു.എൽ.89 ആണ് എസ്.ക്യു.എൽ.1 എന്നും ഇതറിയപ്പെടുന്നു. വിവിധകമ്പനികൾ ഒത്തുതീർപ്പിലെത്താൻ വിമുഖത കാട്ടിയതു മൂലം എസ്.ക്യു.എൽ 89 തീർത്തും അപൂർണ്ണവും നിരവധി ഭാഗങ്ങൾ കമ്പനികളുടെ താത്പര്യപ്രകാരം സൃഷ്ടിക്കാൻ വിട്ടുകൊടുത്തതുമായിരുന്നു.

1992-ൽ ഈ ന്യൂനതകളൊക്കെ മുന്നിൽ വച്ചുകൊണ്ട് മാനകഭാഷയെ പരിഷ്കരിക്കുകയും ആദ്യ ദൃഢമായ ഭാഷ പുറത്തിറക്കുകയും ചെയ്തു. ഇത് എസ്.ക്യു.എൽ92 അഥവാ എസ്.ക്യു.എൽ2 എന്നോ അറിയപ്പെടുന്നു. ആൻസി എസ്.ക്യു.എൽ.89നെ അടിസ്ഥാനമായി എടുക്കുകയും പഴയ മാനകരൂപത്തിന്റെ ദുർബലതയും വിടവുകളുമെല്ലാം അടയ്ക്കുകയും ചെയ്തു. മൂന്നുഘട്ടങ്ങളായാണ് ഈ പ്രവർത്തനങ്ങൾ ചെയ്തത് ആദ്യം ചെറിതും പ്രസക്തമല്ലാത്തതുമായ കാര്യങ്ങൾ ഏകീകരിച്ചു, രണ്ടാംഘട്ടത്തിൽ സബ്ക്വെറികൾ, പുതുക്കാവുന്ന വ്യൂകൾ, ഡൈനാമിക് എസ്.ക്യു.എൽ തുടങ്ങി നിരവധി പ്രസക്തമായ കാര്യങ്ങൾ ഏകീകരിച്ചു. അന്തിമഘട്ടത്തിൽ അസേർഷനുകൾ, ഡിഫറബിൾ കൺസ്റ്റ്രയിന്റ്സ്, താത്കാലിക ലോക്കൽ വേരിയബിളുകൾ, തുടങ്ങി നിരവധി പ്രസക്തവും ആധുനികവുമായ കാര്യങ്ങളിൽ മാറ്റങ്ങളുണ്ടായി. എസ്.ക്യു.എൽ.89 കേവലം 120 താളുകളിൽ നിർവചിച്ചിരുന്നുവെങ്കിൽ എസ്.ക്യു.എൽ92 നിർവചിക്കാൻ 600 താളുകൾ വേണ്ടി വന്നു.

1992-ൽ തന്നെ ആരംഭിച്ച് ആൻസിയുടേയും ഐ.എസ്.ഓയുടേയും മേൽനോട്ടത്തിൽ ഡേറ്റാബേസ് മോഡലിൽ ഒരു കുതിച്ചുചാട്ടത്തിനിടയാക്കിയ മാറ്റമായിരുന്നു 1999-ൽ പുറത്തിറങ്ങിയ എസ്.ക്യു.എൽ.99 അഥവാ എസ്.ക്യു.എൽ3 നടപ്പിൽ വരുത്തിയത്. സ്റ്റോർഡ് പ്രൊസീജർ പോലെ പ്രത്യേക കമ്പനികളുടെ സ്വന്തമായിരുന്ന ഭാഗവും ഒബ്ജക്റ്റ് ഓറിയന്റഡ് ആശയം പോലെ എസ്.ക്യു.എല്ലിനു തീർത്തും അപരിചതമായിരുന്ന രീതിയുമെല്ലാം ഈ മാറ്റത്തിൽ മാനകരൂപത്തിനു സ്വന്തമായി.

എക്സ്.എം.എല്ലുമായി ബന്ധപ്പെട്ട ഗുണഗണങ്ങൾ, “വിൻഡോ ഫങ്ഷനുകൾ”, സ്റ്റാൻഡേർഡൈസ്ഡ് സീക്വൻസുകൾ, ജെനെറേറ്റഡ് വാല്യൂസ് തുടങ്ങിയ മാറ്റങ്ങൾ എസ്.ക്യു.എൽ 2003 -ൽ ഉണ്ടായി.

പിന്നീടിറങ്ങിയ എസ്.ക്യു.എൽ 2006-ൽ എക്സ്.എം.എല്ലുമായി ബന്ധപ്പെട്ട ഒരുപിടി മാറ്റങ്ങൾ തന്നെയായിരുന്നു പ്രധാനം. എസ്.ക്യു.എൽ 2008-ൽ ആകട്ടെ 2003 മൂന്നു മുതൽ അസ്പഷ്ടമായി കിടന്ന കാര്യങ്ങളെ വ്യക്തമാക്കുക എന്ന ലക്ഷ്യത്തോടെയും, കൂടുതൽ ഉപയോഗപ്രദമായ വിൻഡോ ഫങ്ഷനുകളെ ഉൾപ്പെടുത്തിയും ഉള്ളതായിരുന്നു

## വിമർശനങ്ങൾ
ഒരു റിലേഷണൽ ഡേറ്റാബേസിനായുള്ള ഭാഷയായാണ് നിർമ്മിച്ചതെങ്കിലും ആദ്യം മുതൽക്കേ ഭാഷ റിലേഷണൽ മാതൃകയെ അതിലംഘിക്കുന്നുണ്ട്. ഇന്ന് ഏതാണ്ട് റിലേഷണൽ മാതൃകയെ പൂർണ്ണമായി അംഗീകരിക്കുന്നുവെങ്കിലും ലംഘനങ്ങൾ സങ്കീർണ്ണമായിട്ടുണ്ട്. `WHERE` മുതലായ ക്ലോസുകളുടെ ദുരുപയോഗം വളരെ തെറ്റായ മറുപടികൾ ലഭിക്കാൻ കാരണമാകുന്നു. തീയതി, സമയം (`DATE`, `TIME`) തുടങ്ങിയ ദൈനംദിനജീവിത അടിസ്ഥാന വിവരങ്ങളിൽ പോലും ഡേറ്റാബേസ് നിർമ്മാതാക്കളിൽ ഏകത കൊണ്ടുവരാൻ എസ്.ക്യു.എല്ലിനു കഴിഞ്ഞിട്ടില്ല. മാനക രൂപം നിർവ്വചിക്കുന്നയിടത്ത് സംഭരണരീതിയെ കുറിച്ചൊന്നും വ്യക്തമായി പറയാത്തതുകൊണ്ട് ഓരോ നിർമ്മാതാവിനും അവരവർക്കിഷ്ടപ്പെട്ട രീതിയിൽ അത് ചെയ്യാൻ സാധിക്കുന്നു.
## അവലംബം

﻿﻿﻿

വർഗ്ഗം:ഡാറ്റാബേസ്