اسکیوال (SQL) چیست؟
در مدل رابطهای دادهها، زبان ساختارمند پرسشها یا اسکیوال یا سیکوال (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 (سیستمعاملی که در کامپیوتر بزرگ آیبیام غالباً استفاده شده بود)، اعلام نمود.
همچنین در سال ۱۹۸۳ شرکت آیبیام، محصول دیبیتو را معرفی نمود که یک سامانه مدیریت پایگاه داده رابطهای برای سیستمهای بزرگ آن شرکت بود. دیبیتو تحت سیستمعامل ویاماس (سیستمعامل مراکز کامپیوتری بزرگ) اجرا میشد. اولین نسخه دیبیتو در ۱۹۸۵ عرضه گردید، و مسئولین آیبیام اعلام نمودند که این محصول یک برنامه استراتژیک برای تکنولوژی نرمافزاری آیبیام میباشد. از آن تاریخ تاکنون دیبیتو سامانه مدیریت پایگاه داده رابطهای شاخصی بوده و آیبیام از آن حمایت نموده و زبان «سیکوال دیبیتو» استاندارد عملی زبان بانک اطلاعاتی بودهاست.
واژههای کلیدی :
واژههای کلیدی اسکیوال به گروههای مختلفی تقسیم میگردد، در زیر به برخی از آنها اشاره میکنیم آنهایی که آشنا تر هستند را تنها با یک مثال شرح میدهیم:
- دستور بازیابی دادهها: SELECT
- دستورهای عملیات دادهها: INSERT,UPDATE,MERGE,TRUNCAT, DELETE
- دستورهای تراکنش دادهها: COMMIT و ROLLBACK
- دستورهای تعریف دادهها: CREATE وDROP
- دستورهای کنترل دادهها: GRANT و REVOKE
دستور بازیابی دادهها:
دستور SELECT جهت بازیابی برشی سطری از یک یا چند جدول به کار میرود. این دستور پرکاربردترین دستور DML میباشد و برای گزارش گیریهای مؤثر مورد استفاده قرار میگیرد. ساختمان این دستور میتواند از اجزای زیر تشکیل شده باشد:
- FROM: مشخص کردن جداول و نحوه اتصال آنها به هم.
- WHERE: انتخاب سطرهایی با شرایط خاص.
- GROUP BY: ترکیب سطرها با مقادیر مربوط به مجموعهای از سطرهای کوچکتر.
- HAVING: مشخص کردن سطرهای ترکیبی.
- ORDER BY: مشخص کردن اینکه کدام ستونها برای مرتب کردن دادهها به کار میرود.
- JOIN یا INNER JOIN: برای اتصال دو یا چند جدول استفاده میشود و اگر بین جدولها حداقل یک مورد مشترک مشاهده شود ردیفهای دارای اشتراک را بازیابی میکند.
- LEFT JOIN: تمام ردیفهای جدول سمت چپ را بازیابی میکند و از جدول سمت راست فقط ردیفهایی که مورد مشابه دارند بازیابی میشوند.
- RIGHT JOIN: تمام ردیفهای جدول سمت راست را بازیابی میکند و از جدول سمت چپ فقط ردیفهایی که مورد مشابه دارند بازیابی میشوند.
- FULL JOIN: اگر مورد مشابهی یافت شود تمام ردیفهای جدول سمت راست و جدول سمت چپ بازیابی میشوند
معایب اس کیوال
در کاربرد عملی از اسکیوال (SQL) معایب زیر بر آن وارد است:
- دستورهای نحوی(syntax) آن تا حدی مشکل است به نحوی که گاهی آن را با COBOL مقایسه میکنند.
- شیوه استانداردی را برای دستورهای چند تکه بزرگ ندارد.
- نمونههای مختلف آنها که توسط فروشندگان مختلف ارائه میشود گاهی با هم سازگاری ندارد.
- وجود برخی دستورهای بلند
-
- اشتباه گرفتن وظیفههای دستورهایی مثل UPDATE و INSERT.
محاسن اسکیوال
ولی اسکیوال (SQL) دارای محاسنی هم هست:
- سازگاری با اکثر زبانهای دستوری
- سازگاری با اکثر پایگاههای داده مثل SQL Server,Oracle و حتی MS ACCESS
- پس از اینکه برنامهنویس این زبان را درک کرد استفاده از آن بسیار سادهاست.
- کاربرد در زبانهای جدید و پیشرفته
زبانهای مشابه اسکیوال
- IBM BS12 (Business System ۱۲)
- Tutorial D
- TQL Proposal
- HQL (بر پایه ابزار JAVA
- OSQL(برپایه ابزارهای شی گرای PHP برای عملیات و گزارش گیری)
- Quel (در سال ۱۹۷۴ در دانشگاه برکلی ایجاد شد)
- ODMG (Object Data Management Group)
- linQ
دستورات زبان اسکیوال (SQL) پنج دسته هستند که عبارتند از:
Date DefinitionLanguage _ DDL : زبان تعریف داده ها می باشد که با استفاده از این زبان امکان حذف و یا اضافه کردن یک جدول از بانک اطلاعاتی را می توان انجام داد که خوده این زبان دستورات خاص خود را دارد که عیارتند از:Create, Alter , Drop , Create Index , Alter Index , Drop Index
Data Manipulation Language _ DML : زبان پردازش داده ها می باشد که با استفاده از این زبان برای تغییر جداول استفاده می شود که این زبان نیز دارای سه دستور اصلی می باشد که عبارتند: ازInsert , Update , Delete
Data Control Language _ DCL : این ویژگی دستورات مدیریت و کنترل داده ها را برعهده دارد که در کنترل داده های بانک اطلاعاتی که بیشتر در رابطه با دسترسی این داده ها به دیگر کاربران است کاربرد دارد.این ویژگیاز چهار دستور اصلی پشتیبانی می کند که عبارتند ازAlter Password , Revoke , Grant , Create Synonym:
Data Query Language _ DQL : این خاصیت دستورات پرس و جوی داده ها را برعهده دارد که تنها از یک دستور به نام Select تشکیل شده که بیشترین حجم کاری را برای یک کاربر که با اس کیو ال کار می کند را برمیگیرد.این دستور باعث گستردگی استفاده از این دستور می شود.
دسته بعد دستورات کنترلی Transaction ها میباشد که امکان مدیریت تراکنشی بانک اطلاعاتی را برای کاربر فراهم می سازد. که از دستورات زیر تشکیل شده Commit, Rollback , Savepoint , Set Transaction
و دسته اخر که مکمل کننده دستورات دسته قبل بودند دستورات مدیریت داده هاهستند که امکان بررسی و تحلیل عملیات داخل بانک اطلاعاتی را فراهم میکنند. در ضمن یادتان باشد که این مدیریت را با مدیریت بانک اطلاعاتی اشتباه نگیرید.
اسکیوال (SQL) چه کارهایی انجام می دهد؟
- از SQL میتوان برای اجرای query ها در پایگاه داده استفاده کرد.
- از SQL میتوان برای استخراج داده ها از پایگاه داده استفاده کرد.
- از SQL میتوان برای ورود record ها در پایگاه داده استفاده کرد.
- از SQL میتوان برای بروز رسانی record ها در پایگاه داده استفاده کرد.
- از SQL میتوان برای حذف record ها در پایگاه داده استفاده کرد.
- از SQL میتوان برای ایجاد پایگاه داده های جدید استفاده کرد.
- از SQL میتوان برای ایجاد جداول جدید در پایگاه داده استفاده کرد.
- از SQL میتوان برای ساخت stored procedures در پایگاه داده استفاده کرد.
- از SQL میتوان برای ایجاد view در پایگاه داده استفاده کرد.
- از اس کیو ال می توان برای تنظیم سطوح دسترسی جداول، procedures و view ها استفاده کرد.
جاوا اسکریپت (Java Script) چیست؟
ذبیح