Structured Query Language یا به اختصار SQL - اس کیو ال توسط Donald D. Chamberlin و Redmond F. Boyce ابداع و در ادامه Relational Database Management System یا به اختصار RDBMS توسط Edgar F. Codd در دههٔ 70 میلادی به بازار عرضه شد.
همانطور که گوگل معادل جستجو و سرچ اینترنتی شده است، اگر قرار باشد تا با دادههای مختلف سروکله بزنید، یکی از گزینهها اسکیوال است در حالی که با حضور رقبایی برای این زبان، کماکان اسکیوال در دنیای دیتابیس ها پیشتازی میکند که در ادامه به برخی از دلایلی که اسکیو ال را در جایگاه امروزیاش قرار داده نگاهی خواهیم انداخت.
SQL در کاری که انجام میدهد استاد است
این زبان اختصاصاً برای کار با دیتا ساخته شده است و منطقی هم به نظر میرسد که در دستیابی و مرتبسازی اطلاعات نسبت به سایر رقبا برتری بیشتری داشته باشد.
SQL امتحانش را پس داده است
RDBMS در سناریوهای مختلفی استفاده شده است؛ از دیتابیسهای سادهٔ آفلاین گرفته تا دیتابیسهای مورد استفاده توسط غولهایی مثل فیسبوک و در یک کلام SQL و RDBMS در سناریوهای مختلفی عملکرد موفقیتآمیزی از خود نشان دادهاند و این را میلیونها ساعت فعالیت بدون وفقهٔ سرویسهای آنلاین مبتنی بر این تکنولوژیها به خوبی نشان داده است.
انجمنها و تالارهای گفتگوی بسیار برای پرسش و پاسخ در مورد SQL
وقتی یک فناوری روانهٔ بازار شده و مدتی در دسترس و در حال استفاده باشد، طبیعی است که حجمی از اطلاعات مختلف پیرامون فناوری مد نظر به وجود آید و اسکیوال هم از این قاعده مستثنی نیست. از دههٔ 1970 تاکنون، پرسش و پاسخهای زیادی پیرامون این زبان در انجمنها، مستندات آموزشی و ... منتشر شده که بسیاری از مشکلات مرتبط با شرایط خاص را پوشش دادهاند.
سادگی و راحتی در یادگیری SQL
در یک کلام، اسکیوال زبانی ساده برای یادگیری است به طوری که شاید بیشتر از چند روز زمان برای یادگیری توابع محدود و اندک اسکیوال نیاز نباشد تا یک نفر به سادکی بتواند با آن کار کند و این در حالی است که حتی افراد غیرفنی نیز توان یادگیری این زبان را دارند (درک عمیق دیتابیس رابطهای که اسکیوال بر روی آن کار میکند موضوع دیگری است اما برای اکثر کوئریهای ساده، میتوان خود اسکیوال را به سادگی فرا گرفت.)
گستردگی و فراوانی استفاده از SQL
برخی نظرسنجیها حاکی از آنند که چیزی در حدود ٪50 دولوپرهای سراسر دنیا از اسکیوال و دیتابیسهای رابطهای استفاده میکنند و از همین روی میتوان گفت که این زبان عمومیت بالایی دارد و در یک کلام، اسکیوال به دلیل سادگیاش دانش مشترکی بین همهٔ دولوپرها و آنهایی که از آن استفاده میکنند ایجاد کرده است.
برای روشنتر شدن این مسئله، فرض کنیم که میخواهیم گزارشی از اطلاعات درآمدهای فروشگاهی در سه ماههٔ اخیر به دست آوریم و این در حالی است که این گزارش را به راحتی نوشتن یک خط کد میتوانیم انجام دهیم. کوئریای که هزینهها را از جدولی تحت عنوان Transactions
استخراج کرده و جمعش را در یک ستون نشان میدهد:
SELECT SUM(Value_USD) AS Store_Revenue_Q3 FROM Transactions WHERE Location = 'Store' AND DATEPART(q, Date) = 3 AND YEAR(Date) = 2017;
و اگر بخواهیم گزارش را بر حسب محصولات دستهبندی کنیم، میتوانیم از کوئری زیر استفاده کنیم:
SELECT Goods, SUM(Value_USD) AS Store_Revenue_Q3 FROM Transactions WHERE Location = 'Store' AND DATEPART(q, Date) = 3 AND YEAR(Date) = 2017 GROUP BY Location ORDER BY Goods;
و در نهایت اگر بخواهیم پنج ناحیهای که بیشترین کسب درآمد را داشتهاند مشخص کنیم، میتوان کوئری زیر را مد نظر قرار داد:
SELECT TOP 5 Location, SUM(Value_USD) AS Revenue_Q3 FROM Transactions WHERE DATEPART(q, Date) = 3 AND YEAR(Date) = 2017 GROUP BY Location ORDER BY SUM(Value_USD) DESC;
برای اینکه این گزارشها را بتوانید با الگوریتمهای اختصاصی خود به دست آورید، نیاز به صرف وقت بر روی کدهایی پیچیده است که معمولاً کار کردن با آنها برای سایر دولوپرها در آینده بسیار ملالآور خواهد بود! اس کیو ال به شکلی هدفمند برای انجام این کارها طراحی شده است و به خوبی از پس تَسکهایی از این دست بر میآید.
💎 به ترتیب اجرای کوئری های sql دقت داشته باشید!
جمعبندی
سیستمهای دیتابیس مختلف به منزلهٔ ابزارهایی هستند که یکی با دیگری متفاوت است و هر کدام کاری متفاوت برای حل مسائل متفاوتی انجام میدهد. دیتابیسهای به اصطلاح Relational (رابطهای) زمانی کاربر دارند که باید روابط محتمل بین دادههای مختلف را تجمیع یا ترکیب کرده و یا کاربرد دادهها را در یک سیستم پیشبینی کنند.
البته نیاز به توضیح نیست که دیتابیسهای مبتنی بر SQL کاستیهایی هم دارند که برای بعضی کارها مناسب نیستند اما در برخی موارد خاص، تمامی ابزارهای NoSQL را کنار میزنند. (برای مطالعه بیشتر به مقالهی SQL با NoSQL چه تفاوت هایی دارد؟ مراجعه کنید) همچنین اگر در مورد حجم دیتابیس نگرانید، واقعیت امر آن است که درصد کوچکی از اپلیکیشنها هستند که در مورد آنها باید نگران حجم دیتابیسی از جنس RDBMS بود مگر اینکه سرویس شما به بزرگی سرویسهای گوگل یا فیسبوک باشد! با این حال، میتوانید نیازهای میلیونها کاربر را در یک دیتابیس مبتنی بر اسکیوال بدون هیچ مشکلی هَندل کنید.
برخی از دیتابیس های مبتنی بر sql در مقالهی آشنایی با دیتابیس های مشهور دنیا آورده شده اند.