اس‌کیوال

تاریخچه

منشأ اصلی سی‌کوال به مقالهٔ سال ۱۹۷۰ ادگار کاد تحت عنوان «مدل رابطه‌ای داده‌ها برای بانک‌های بزرگ داده‌های اشتراکی» بازمی‌گردد. در دههٔ ۷۰ گروهی از شرکت آی‌بی‌ام در شهر سان خوزه بر روی سیستم پایگاه داده‌های سیستم آر بدون توجه به این مقاله کار می‌کردند و زبان SEQUEL را به منظور عملیات و بازیابی اطلاعات ذخیره شده در سیستم آر ایجاد کردند. اگر چه اس‌کیوال ناشی از تلاش‌های کاد بود اما دونالد چامبرلین و ریموند بویس به عنوان طراحان زبان SEQUEL شناخته می‌شوند.
سمینارهایی در زمینه فناوری بانک اطلاعاتی و مباحثاتی در مورد مزایای مدل رابطه‌ای جدید برگزار گردید. تا ۱۹۷۶ مشخص بود که آی‌بی‌ام که طرفدار جدی فناوری بانک اطلاعاتی رابطه‌ای بوده، توجه زیادی نسبت به زبان سی‌کوال دارد. تبلیغات در زمینه سیستم آر باعث جذب گروهی از مهندسین در منلو پارک در کالیفرنیا گردید. این گروه به این نتیجه رسیدند که تحقیقات آی‌بی‌ام منجر به یک بازار تجاری برای بانک‌های اطلاعاتی رابطه‌ای خواهد گردید.
در ۱۹۷۷ این گروه شرکتی به نام اینک (Inc) و رلیشنال سافتویر (Relational Software) تأسیس نمودند تا یک سامانه مدیریت پایگاه‌های داده رابطه‌ای بر اساس سی‌کوال بسازند. محصولی به نام اوراکل در ۱۹۷۹ عرضه گردید، و اولین سامانه مدیریت پایگاه داده رابطه‌ای به وجود آمد. به این ترتیب محصول اوراکل باعث گردید اولین محصول آی‌بی‌ام برای مدت ۲ سال در بازار دچار رکود باشد. این محصول بر روی مینی کامپیوترهای وکس دیجیتال (VAx Digital) اجرا می‌شد که خیلی از کامپیوترهای بزرگ آی‌بی‌ام ارزان‌تر بودند.
امروزه این شرکت با نام اوراکل اولین فروشنده سیستم‌های مدیریت بانک اطلاعاتی رابطه‌ای است. استادان آزمایشگاه‌های کامپیوتر در دانشگاه برکلی کالیفرنیا نیز در نیمه دهه ۱۹۷۰ مشغول تحقیق در زمینه بانک‌های اطلاعاتی رابطه‌ای بودن (مانند تیم تحقیق آی‌بی‌ام)، گروه فوق نیز یک نمونه از سامانه مدیریت پایگاه داده رابطه‌ای ایجاد نمودند و سیستم خود را اینگرس (Ingres) نام نهادند.
پروژه اینگرس شامل یک زبان پرس‌وجو به نام QUEL بود، اگر چه از سی‌کوال خیلی ساخت یافته تر بود، اما شباهت آن به زبان انگلیسی کمتر بود.
در حالیکه اوراکل و اینگرسبرای ارائه محصولات تجاری در رقابت بودند، پروژه سیستم آر شرکت آی‌بی‌ام در تلاش بوده‌است که یک محصو ل تجاری با نام SQL/Data system (یا SQL/DS) عرضه نماید. آی‌بی‌ام موجودیت SQL/DS را در ۱۹۸۱ اعلام، و در ۱۹۸۲ شروع به عرضه محصول خود نمود. در سال ۱۹۸۳ آی‌بی‌ام یک نسخه SQL/DS را برای VM/CMS (سیستم‌عاملی که در کامپیوتر بزرگ آی‌بی‌ام غالباً استفاده شده بود)، اعلام نمود.
همچنین در سال ۱۹۸۳ شرکت آی‌بی‌ام، محصول دی‌بی‌تو را معرفی نمود که یک سامانه مدیریت پایگاه داده رابطه‌ای برای سیستم‌های بزرگ آن شرکت بود. دی‌بی‌تو تحت سیستم‌عامل وی‌ام‌اس (سیستم‌عامل مراکز کامپیوتری بزرگ) اجرا می‌شد. اولین نسخه دی‌بی‌تو در ۱۹۸۵ عرضه گردید، و مسئولین آی‌بی‌ام اعلام نمودند که این محصول یک برنامه استراتژیک برای تکنولوژی نرم‌افزاری آی‌بی‌ام می‌باشد. از آن تاریخ تاکنون دی‌بی‌تو سامانه مدیریت پایگاه داده رابطه‌ای شاخصی بوده و آی‌بی‌ام از آن حمایت نموده و زبان «سی‌کوال دی‌بی‌تو» استاندارد عملی زبان بانک اطلاعاتی بوده‌است.

دستورهای عملیات روی داده‌ها

این دستورهای به اختصار (DML (Data Manipulation Language گفته می‌شود و شامل دستورهایی همچون زیر است:
INSERT: اضافه کردن سطرهایی (تاپل‌هایی) به جدول موجود.
INSERT INTO My_table (field1, field2, field3) VALUES ('test', 'N', NULL);
UPDATE: جهت تغییر مقادیر سطرهای موجود جدول.
UPDATE My_table SET field1 = 'updated value' WHERE field2 = 'N';
MERGE: ترکیب کردن داده‌ها در جداول چندگانه. این دستور جدید در SQL:۲۰۰۳ اضافه شده‌است، پیش از این پایگاه داده‌ها از دستور UPSERT استفاده می‌کردند.
TRUNCAT: تمام داده‌های جدول را حذف می‌کند (از دستورهای غیر استاندارد اما پر کاربرد SQL می‌باشد)
DELETE: حذف سطرهایی از جدول موجود.
DELETE FROM My_table WHERE field2 = 'N';

دستورهای تراکنش داده‌ها

(START TRANSACTION (BEGIN WORK: جهت آغاز یک تراکنش پایگاه داده به کار می‌رود تا کنترل کند که تراکنش یا به پایان برسد یا اصلاً بی تأثیر باشد.

COMMIT: با عث می‌شود که تغییرات درون تراکنش به‌طور دائمی ثبت گردد.

ROLLBACK: باعث می‌شود که تغییرات از آخرین COMMIT یا ROLLBACK دور انداخته شود، در نتیجه وضعیت داده‌ها به قبل از درخواست تغییرات آن‌ها بر می‌گردد.

این دو دستور در کنار هم برای کنترل و قفل‌گذاری به کار می‌رود و هنگام خروج از تراکنش این کنترل و قفل‌گذاری از بین می‌رود.

مثال ۴)

START TRANSACTION;

UPDATE inventory SET quantity = quantity - 3 WHERE item = 'pants';

COMMIT;

دستورهای تعریف داده‌ها

دومین دسته دستورهای سی‌کوال دستورهای تعریف داده‌ها یا (DDL (Data Definition Language می‌باشد. این دستورهای به کاربر اجازه تعریف جداول جدید و اجزای آن‌ها را می‌دهد. بیشتر SQLهای تجاری دستورهایی با این خصوصیات را دارند. مهم‌ترین گزینه‌های پایه‌ای DDL دستورهای زیر است:
CREATE: ایجاد یک شی (مثلاً یک جدول).
DROP: حذف شی تعریف شده‌ای در پایگاه داده.
بیشتر پایگاه‌های داده‌ها دستور ALTER را نیز دارند که اجازه تغییر یک شی موجود را به شیوه‌های مختلف می‌دهد (مثلاً اضافه کردن یک ستون به جدول).
مثال ۵:
CREATE TABLE My_table (my_field1 INT,
  my_field2 VARCHAR (50),
  my_field3 DATE NOT NULL,
  PRIMARY KEY (my_field1, my_field2) );

دستورهای کنترل داده

سومین دسته از دستورهای SQL دستورهای کنترل داده یا (DCL (Data Control Language می‌باشد. این دستورهای جنبه‌های اجازه دسترسی به داده‌ها را مشخص می‌کند و تعیین می‌کند کدام کاربر می‌تواند روی پایگاه داده عملیات انجام دهد یا کدام کاربر تنها می‌تواند قابلیت خواندن آن‌ها را داشته باشد. دو دستور اصلی به قرار زیر است:
GRANT: اجازه دادن به یک یاچند کاربر برای اجرا کردن یک یا مجموعه‌ای از دستوراها بر روی یک شی.
REVOKE: حذف یا محدود کردن قدرت اجرای کاربران.
مثال ۶:
 SELECT * FROM inventory;
همهٔ اقلام موجود در جدول inventory بازیابی شود.