از ویکیپدیا، دانشنامهٔ آزاد
در مدل رابطهای دادهها، زبان ساختارمند پرسشها یا اسکیوال یا سیکوال (Structured Query Language – SQL) زبانی است سطح بالا مبتنی بر زبان سطح پایین و ریاضی جبر رابطهای که برای ایجاد، تغییر، و بازیابی دادهها و نیز عملیات بر روی آنها بهکار میرود.
زبان SQL به سمت مدل شیگرا – رابطهای نیز پیشرفت کردهاست.
محتویات
تاریخچه
منشا اصلی سیکوال به مقالهٔ سال ۱۹۷۰ ادگار کاد تحت عنوان «مدل رابطهای دادهها برای بانکهای بزرگ دادههای اشتراکی»[۱] باز میگردد. در دههٔ ۷۰ گروهی از شرکت آیبیام در شهر سان خوزه بر روی سیستم پایگاه دادههای سیستم آر بدون توجه به این مقاله کار میکردند و زبان SEQUEL را به منظور عملیات و بازیابی اطلاعات ذخیره شده در سیستم آر ایجاد کردند. اگر چه اسکیوال ناشی از تلاشهای کاد بود اما دونالد چامبرلین و ریموند بویس به عنوان طراحان زبان SEQUEL شناخته میشوند
سمینارهایی در زمینه فناوری بانک اطلاعاتی و مباحثاتی در مورد مزایای مدل رابطهای جدید برگزار گردید. تا ۱۹۷۶ مشخص بود که آیبیام که طرفدار جدی فناوری بانک اطلاعاتی رابطهای بوده، توجه زیادی نسبت به زبان سیکوال دارد. تبلیغات در زمینه سیستم آر باعث جذب گروهی از مهندسین در منلو پارک در کالیفرنیا گردید. این گروه به این نتیجه رسیدند که تحقیقات آیبیام منجر به یک بازار تجاری برای بانکهای اطلاعاتی رابطهای خواهد گردید.
در ۱۹۷۷ این گروه شرکتی بنام اینک (Inc) و رلیشنال سافتویر (Relational Software) تأسیس نمودند تا یک سامانه مدیریت پایگاههای داده رابطهای بر اساس سیکوال بسازند. محصولی بنام اوراکل در ۱۹۷۹ عرضه گردید، و اولین سامانه مدیریت پایگاه داده رابطهای بوجود آمد. به این ترتیب محصول اوراکل باعث گردید اولین محصول آیبیام برای مدت ۲ سال در بازار دچار رکود باشد. این محصول بر روی مینی کامپیوترهای وکس دیجیتال (VAx Digital) اجرا میشد که خیلی از کامپیوترهای بزرگ آیبیام ارزانتر بودند.
امروزه این شرکت با نام اوراکل اولین فروشنده سیستمهای مدیریت بانک اطلاعاتی رابطهای است. استادان آزمایشگاههای کامپیوتر در دانشگاه برکلی کالیفرنیا نیز در نیمه دهه ۱۹۷۰ مشغول تحقیق در زمینه بانکهای اطلاعاتی رابطهای بودن (مانند تیم تحقیق آیبیام)، گروه فوق نیز یک نمونه ازسامانه مدیریت پایگاه داده رابطهای ایجاد نمودند و سیستم خود را اینگرس (Ingres) نام نهادند.
پروژه اینگرس شامل یک زبان پرسوجو بنام QUEL بود، اگر چه از سیکوال خیلی ساخت یافته تر بود، اما شباهت آن به زبان انگلیسی کمتر بود.
در حالیکه اوراکل و اینگرسبرای ارائه محصولات تجاری در رقابت بودند، پروژه سیستم آر شرکت آیبیام در تلاش بودهاست که یک محصو ل تجاری با نام SQL/Data system (یا SQL/DS) عرضه نماید. آیبیام موجودیت SQL/DS را در ۱۹۸۱ اعلام، و در ۱۹۸۲ شروع به عرضه محصول خود نمود. در سال ۱۹۸۳ آیبیام یک نسخه SQL/DS را برای VM/CMS (سیستمعاملی که در کامپیوتر بزرگ آیبیام غالباً استفاده شده بود)، اعلام نمود.
همچنین در سال ۱۹۸۳ شرکت آیبیام، محصول دیبیتو را معرفی نمود که یک سامانه مدیریت پایگاه داده رابطهای برای سیستمهای بزرگ آن شرکت بود. دیبیتو تحت سیستمعامل ویاماس (سیستمعامل مراکز کامپیوتری بزرگ) اجرا میشد. اولین نسخه دیبیتو در ۱۹۸۵ عرضه گردید، و مسئولین آیبیام اعلام نمودند که این محصول یک برنامه استراتژیک برای تکنولوژی نرمافزاری آیبیام میباشد. از آن تاریخ تاکنون دیبیتو سامانه مدیریت پایگاه داده رابطهای شاخصی بوده و آیبیام از آن حمایت نموده و زبان «سیکوال دیبیتو» استاندارد عملی زبان بانک اطلاعاتی بودهاست.
استانداردها
سیکوال استاندارد (ANSI (American National Standards Institute را در سال ۱۹۸۶ و ISO (International Organization for Standardization) را در سال ۱۹۸۷ اتخاذ نمود. استانداردهای مختلفی از اسکیوال تاکنون عرضه شده که در جدول زیر بیان میکنیم:
- اسکیوال-۸۷
- اسکیوال-۸۹
- اسکیوال-۹۲
- اسکیوال:۱۹۹۹
- اسکیوال:۲۰۰۳
- اسکیوال:۲۰۰۵
- اسکیوال:۲۰۰۸
- اسکیوال:۲۰۱۱
حوزه و وسعت
بسیاری از اصطلاحات زبان اسکیوال تحت استاندارد بینالمللی بوده، و در نتیجه، از آنها شبیه بقیه زبانهای استاندارد مثل محصولات شرکت اوراکل PL/SQL[۲] یا Sybase و SQL PL (مدل رویهای) از شرکت آیبیام میباشد.
اسکیوال برای کارهای ویژه و محدودی (گزارش گیری از دادهها در پایگاه دادههای رابطهای) طراحی شدهاست. بر خلاف زبانهای دستوری مثل بیسیک یا سی که برای حل مسائل طراحی شده، SQL زبانی بر پایه اعلان است. زبانهای توسعه یافتهای مثل PL/SQL به دنبال کامل کردن زبان به هدف ایجاد زبان برنامه نویسی با حفظ مزیتهای SQL میباشد. شیوه دیگر کار این است که به کدهای زبان برنامه نویسی اجازه دسترسی به پایگاه داده به کمک دستورات SQL داده شود مثلاً PostgreSQL به توابعش اجازه میدهد که درون کدهای Perl، Tcl و C نوشته شوند. گاهی به شوخی گفته میشود که SQL نه ساخت یافتهاست، نه محدود به گزارش گیریها و اصلاً یک زبان نیست!
واژههای کلیدی
واژههای کلیدی اسکیوال به گروههای مختلفی تقسیم میگردد، در زیر به برخی از آنها اشاره میکنیم آنهایی که آشنا تر هستند را تنها با یک مثال شرح میدهیم:
- دستور بازیابی دادهها: SELECT
- دستورات عملیات دادهها: INSERT،UPDATE،MERGE،TRUNCAT، DELETE
- دستورات تراکنش دادهها: COMMIT و ROLLBACK
- دستورات تعریف دادهها: CREATE وDROP
- دستورات کنترل دادهها: GRANT و REVOKE
معایب اس کیوال
در کاربرد عملی از SQL معایب زیر بر آن وارد است:
- دستورات نحوی(syntax) آن تا حدی مشکل است به نحوی که گاهی آنرا با COBOL مقایسه میکنند.
- شیوه استانداردی را برای دستورات چند تکه بزرگ ندارد.
- نمونههای مختلف آنها که توسط فروشندگان مختلف ارائه میشود گاهی با هم سازگاری ندارد.
- وجود برخی دستورات بلند
- اشتباه گرفتن وظیفههای دستورهایی مثل UPDATE و INSERT.
محاسن اسکیوال
ولی سیکوال دارای محاسنی هم هست:
- سازگاری با اکثر زبانهای دستوری
- سازگاری با اکثر پایگاههای داده مثل SQL Server,Oracle و حتی MS ACCESS
- پس از اینکه برنامه نویس این زبان را درک کرد استفاده از آن بسیار سادهاست
- کاربرد در زبانهای جدید و پیشرفته
زبانهای مشابه اسکیوال
- IBM BS۱۲ (Business System ۱۲)
- Tutorial D
- TQL Proposal
- HQL (بر پایه ابزار JAVA
- OSQL(برپایه ابزارهای شی گرای PHP برای عملیات و گزارش گیری)
- Quel (در سال ۱۹۷۴ در دانشگاه برکلی ایجاد شد)
- ODMG (Object Data Management Group)
- linQ