"എസ്.ക്യു.എൽ." എന്ന താളിന്റെ പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസം
Content deleted Content added
(ചെ.) യന്ത്രം - അക്ഷരപിശകുകൾ |
No edit summary |
||
വരി 8:
| developer = [[ഐ.ബി.എം.]]
| latest_release_version = SQL:2006
| latest_release_date
| latest_test_version
| latest_test_date =
| turing-complete = No
വരി 22:
}}
[[റിലേഷണൽ ഡേറ്റാബേസ്|റിലേഷണൽ ഡേറ്റാബേസുകൾക്കായുള്ള]] ഉടമസ്ഥ രഹിത നോൺ പ്രൊസീജറൽ കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ് ഭാഷയാണ് '''സ്റ്റ്രക്ചേർഡ് ക്വറി ലാങ്വേജ്''' അഥവാ '''എസ്.ക്യു.എൽ.''' ഇന്ന് [[ഒറാക്കിൾ]], [[എം.എസ്. എസ്.ക്യു.എല്. സെർവർ]], [[മൈ എസ്.ക്യു.എൽ]], [[പി.എൽ/എസ്.ക്യു.എൽ]] തുടങ്ങി നിരവധി [[ഡേറ്റാബേസ്|ഡേറ്റാബേസുകൾ]] എസ്.ക്യു.എൽ ഉപയോഗിക്കുന്നു. [[ഡേറ്റാബേസ്]] ഉപയോഗിച്ച് വിവരങ്ങളുടെ ശേഖരണം, പുനരുപയോഗം, കൈകാര്യംചെയ്യൽ എന്നിവയ്ക്കായി മാത്രം നിർമ്മിച്ച ഭാഷയാണിത്.<ref
== ചരിത്രം ==
[[റിലേഷണൽ ഡേറ്റാബേസ്]] സിദ്ധാന്തം പോലെ [[ഐ.ബി.എം.|ഐ.ബി.എമ്മിന്റെ]] ഗവേഷണശാലയിലാണ് എസ്.ക്യു.എല്ലിന്റേയും പിറവി. 1970 കളുടെ തുടക്കത്തിൽ ഐ.ബി.എം തങ്ങളുടെ [[ആർ.ഡി.ബി.എം.എസ്.]] സിസ്റ്റത്തിന്റെ ആദ്യരൂപം അവതരിപ്പിച്ച കൂട്ടത്തിൽ ഡേറ്റയുടെ കൈകാര്യനിർവ്വഹണത്തിനായി ഒരു ഉപഭാഷകൂടി സൃഷ്ടിച്ചിട്ടുണ്ടായിരുന്നു. ഔദ്യോഗികമായി പുറത്തിറങ്ങുന്നതിന്റെ മുമ്പ് ഭാഷയെ അവർ സീക്യൂവെൽ (SEQUEL - Structured English QUEry Language) എന്നു വിളിച്ചു പോന്നു. എന്നാൽ പുറത്തിറങ്ങിയ
ഈ പ്രശ്നത്തിനു പരിഹാരം കാണാനുള്ള ശ്രമത്തിന്റെ ഭാഗമായി [[ആൻസി]] (ANSI) 1986-ൽ എസ്.ക്യു.എൽ.-86 (SQL -86) എന്ന പേരിൽ ഒരു മാനകരൂപം സൃഷ്ടിച്ചു. തുടർന്ന് അത് പലവട്ടം
== ഉപയോഗം ==
ഡേറ്റാബേസിലേക്ക് വിവരങ്ങൾ നൽകുക, ഡേറ്റാബേസിൽ നിന്നും വിവരങ്ങൾ എടുക്കുക, അതിലെ വിവരങ്ങൾ കൈകാര്യം ചെയ്യുക എന്നതിനപ്പുറം ഒരു പ്രവൃത്തിയും ചെയ്യാൻ എസ്.ക്യു.എൽ
പ്രവർത്തനത്തിനായി പൂർണ്ണമായും ആർ.ഡി.ബി.എം.എസ്സിനെ ആശ്രയിക്കുന്നതിനാൽ എസ്.ക്യു.എൽ ഒരു പ്ലാറ്റ്ഫോം സ്വതന്ത്രമായ ഭാഷയാണെന്നു പറയാം. എന്നാൽ [[ജാവ (പ്രോഗ്രാമിങ് ഭാഷ)|ജാവ]] പോലുള്ള പ്ലാറ്റ്ഫോം സ്വതന്ത്രങ്ങളായ ഭാഷകൾ പ്രവർത്തിക്കുന്നതിൽ നിന്നും പൂർണ്ണമായി വ്യത്യസ്തമായ രീതിയിലാണ് ഇതിന്റെ പ്രവർത്തനം. എസ്.ക്യു.എൽ കീവേഡുകൾ എല്ലായിടത്തും ഉപയോഗിക്കുന്നു എന്നതു കഴിഞ്ഞാൽ ഒന്നിനൊന്നു വ്യത്യസ്തമാണ് ആന്തരിക പ്രവർത്തനങ്ങൾ<ref name="dummies"/>. ക്വെറികൾ ഡേറ്റാബേസിൽ വച്ച് മെഷീൻ കോഡിലോട്ട് മാറുകയും പ്രവർത്തിക്കുകയും ചെയ്യുന്നു.
ആർ.ഡി.ബി.എം.എസ്സുകൾ നിർമ്മിക്കുന്ന വിവിധ കമ്പനികൾ അവരവരുടെ പ്രത്യേകതകളും തങ്ങളുടെ എസ്.ക്യു.എല്ലിൽ ചേർത്തിട്ടുള്ളതിനാൽ അവരവരുടെ സങ്കീർണ്ണമായ ഒരു ക്വെറി മറ്റൊരാളുടെ ഡേറ്റാബേസിൽ പ്രവർത്തിക്കാതെ വന്നേക്കാം. ഉദാഹരണത്തിന് ഒറാക്കിൾ ഉപയോഗിക്കുന്ന ഒരു ക്വെറി അവരുടെ [[ലിനക്സ്]]
=== പ്രയോഗം ===
റിലേഷണൽ ഡേറ്റാബേസുകളിൽ വിവരങ്ങൾ സംഭരിച്ച് പുനഃരുപയോഗിക്കുന്നതിന് വേണ്ട കാര്യങ്ങൾ എസ്.ക്യു.എല്ലിൽ വ്യക്തമായി പറഞ്ഞിട്ടുണ്ട്.
ഡേറ്റായിൽ സ്ഥിരമായി അനുഭവപ്പെടേണ്ട കമാൻഡുകളെ സ്റ്റേറ്റ്മെന്റ്സ് (Statements) എന്നു വിളിക്കുന്നു. കണക്ഷനുകൾ, സെഷൻ, പരിശോധനകൾ തുടങ്ങിയ കാര്യങ്ങളാണ് സ്റ്റേറ്റ്മെന്റ് ആയി നൽകുന്നത്. പ്രത്യേക മാനദണ്ഡങ്ങൾക്കനുസൃതമായി വിവരങ്ങൾ ഡേറ്റാബേസിൽ നിന്നും ശേഖരിക്കാനുള്ള കമാൻഡുകളെ ക്വെറികൾ എന്നു വിളിക്കുന്നു (Queries). മാറിക്കൊണ്ടിരിക്കാവുന്ന വിവരങ്ങളേയും വരിയും നിരയുമടങ്ങുന്ന പട്ടികകളേയും
=== ഘടകങ്ങൾ ===
വരി 86:
==== ഡേറ്റാ നിർവ്വചന ഭാഷ ====
ഒരു പുതിയ ഡേറ്റാബേസ് നിർവ്വചിക്കാനും, അതിന്റെ ഘടന രൂപപ്പെടുത്താനും, ഉപയോഗശൂന്യമാകുമ്പോൾ നശിപ്പിച്ചുകളയാനുമുള്ള ഉപയോഗമാണ് എസ്.ക്യു.എല്ലിന്റെ ഈ ഭാഗം ചെയ്യുന്നത്. പുതിയ പട്ടികകളും അനുബന്ധഘടകങ്ങളും നിർവ്വചിക്കാനും ഇതിനു കഴിവുണ്ടാവും.<ref name="tom">http://www.tomjewett.com/dbdesign/dbdesign.php?page=ddldml.php</ref>
ഉദാ:<source lang="sql">
CREATE TABLE My_table (
);
</source>
==== ഡേറ്റാ കൈകാര്യം ചെയ്യാനുള്ള ഭാഷ ====
ഡേറ്റാബേസിന്റെ പരിപാലനമാണ് ഭാഷയുടെ ഈ ഭാഗം കൈയ്യാളുന്നത്. ഇതുപയോഗിച്ച് ഒരുപയോക്താവിന് എന്ത് എങ്ങനെ വേണമെന്നും അതിലെന്തുമാറ്റമാണ് വേണ്ടതെന്നും പറഞ്ഞുകൊടുക്കാവുന്നതാണ്<ref name="tom" />. <code>START TRANSACTION</code>, <code>COMMIT</code>, <code>ROLLBACK</code> തുടങ്ങിയ വാക്കുകൾ ഡി.എം.എല്ലിൽ ഉൾപ്പെടുന്നു.
ഉദാ: ഒരു ബാങ്ക് അക്കൌണ്ടിലെ പണം മറ്റൊരക്കൌണ്ടിലേക്ക് മാറ്റുന്നു
<source lang="sql">
START TRANSACTION;
IF ERRORS=0 COMMIT;
IF ERRORS<>0 ROLLBACK;
</source>
==== ഡേറ്റാ നിയന്ത്രണത്തിനുള്ള ഭാഷ ====
ഡേറ്റാബേസിനെ സംരക്ഷിക്കുവാനും തെറ്റുകുറ്റങ്ങൾ പറ്റാതെ സൂക്ഷിക്കാനുമാന് ഡേറ്റാ നിയന്ത്രണത്തിനുള്ള ഭാഷ അഥവാ ഡി.സി.എൽ. ഉപയോഗിക്കുന്നത്. ഒരു ഡേറ്റാബേസിന്റെ കൈകാര്യം വേണ്ടത്രസുരക്ഷിതമല്ലങ്കിൽ അന്യർ അത് വരുതിയിലാക്കാനും അങ്ങനെ പ്രശ്നങ്ങളുണ്ടാകാനുമിടയുണ്ട്. ഇത് തടയാനാണ് ഡി.സി.എൽ. ഉപയോഗിക്കുന്നത്.<ref name="ibm">
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.apdv.sql.doc/doc/c0020266.htm</ref>
ഉദാ:
വരി 116:
=== ക്ലൈന്റ്/സെർവർ ഉപയോഗം ===
ഒരു [[കമ്പ്യൂട്ടർ]] ഉപയോഗിച്ചോ, [[കമ്പ്യൂട്ടർ നെറ്റ്വർക്ക്|നെറ്റ്വർക്കിലോ]] എസ്.ക്യു.എൽ ഉപയോഗിക്കാവുന്നതാണ്. ക്ലൈന്റ്/സെർവർ മാതൃകയിൽ നന്നായി പ്രവർത്തിക്കാൻ പാകത്തിലാണിത് സൃഷ്ടിച്ചതു തന്നെ. സെർവർ കമ്പ്യൂട്ടറിൽ ഡേറ്റാബേസ് സ്ഥിതിചെയ്യുകയും, [[ലാൻ]] ഉപയോഗിച്ചോ മറ്റ് സംവേദന ചാനലുകൾ ഉപയോഗിച്ചോ സെർവറുമായി ബന്ധപ്പെട്ട ക്ലൈന്റ് ഉപയോഗിച്ച് ഡേറ്റാബേസിനെ സമീപിക്കാനും കഴിയും. [[ഡി.ബി.എം.എസ്|ഡി.ബി.എം.എസ്സിന്റെ]] ക്ലൈന്റിൽ സ്ഥിതി ചെയ്യുന്ന ഭാഗം ഉപയോഗിച്ച് സെർവറിനു കമാൻഡുകൾ നൽകാനും വിവരങ്ങൾ എടുക്കാനും കഴിയും.
==== ഡേറ്റാബേസ് സെർവർ ====
വരി 128:
== നാൾവഴി ==
ആദ്യകാലത്ത് എസ്.ക്യു.എൽ
ആദ്യ ഏകീകൃത രൂപം എന്ന നിലയിൽ അറിയപ്പെടുന്നത് 1989-ൽ അംഗീകരിച്ച എസ്.ക്യു.എൽ.89 ആണ് എസ്.ക്യു.എൽ.1 എന്നും ഇതറിയപ്പെടുന്നു. വിവിധകമ്പനികൾ ഒത്തുതീർപ്പിലെത്താൻ വിമുഖത കാട്ടിയതു മൂലം എസ്.ക്യു.എൽ 89 തീർത്തും അപൂർണ്ണവും നിരവധി ഭാഗങ്ങൾ കമ്പനികളുടെ താത്പര്യപ്രകാരം സൃഷ്ടിക്കാൻ വിട്ടുകൊടുത്തതുമായിരുന്നു.
വരി 141:
== വിമർശനങ്ങൾ ==
ഒരു റിലേഷണൽ ഡേറ്റാബേസിനായുള്ള ഭാഷയായാണ് നിർമ്മിച്ചതെങ്കിലും ആദ്യം മുതൽക്കേ ഭാഷ റിലേഷണൽ മാതൃകയെ അതിലംഘിക്കുന്നുണ്ട്. ഇന്ന് ഏതാണ്ട് റിലേഷണൽ മാതൃകയെ പൂർണ്ണമായി അംഗീകരിക്കുന്നുവെങ്കിലും ലംഘനങ്ങൾ സങ്കീർണ്ണമായിട്ടുണ്ട്. <code>WHERE</code> മുതലായ ക്ലോസുകളുടെ ദുരുപയോഗം വളരെ തെറ്റായ മറുപടികൾ ലഭിക്കാൻ കാരണമാകുന്നു. തീയതി, സമയം (<code>DATE</code>
== അവലംബം ==
{{wikibooks|SQL}}
|