لطفا جاواسکریپت مرورگر خود را فعال سازید!

نحوه فعال سازی در کروم
  1. ابتدا باید اینکارو بگنید
  2. بعدش اونکارو
نحوه فعال سازی در فایرفاکس
  1. ابتدا باید اینکارو بگنید
  2. بعدش اونکارو
آشنایی با دلایلی که زبان اس‌کیو‌ال ۴۳ ساله کماکان استفاده می‌شود

آشنایی با دلایلی که زبان اس‌کیو‌ال ۴۳ ساله کماکان استفاده می‌شود

چرا از SQL با عمر 43 ساله‌‌‌‌اش هنوز استفاده می‌شود؟ در نظرنسجی‌های انجام شده در بین دولوپر‌‌ها، سوالاتی پیرامون این‌که چه‌طور موضوعات جدید را می‌‌آموزند، از چه ابزار‌‌هایی استفاده می‌‌کنند و بسیاری مسائل دیگر سوال شده است؛ در کل، این نظرسنجی‌ها بسیار جالب هستند چراکه تصویری روشن از طرز تفکر دولوپر‌‌ها و صنعت جهانی نرم‌‌افزار را به ما نشان می‌‌دهد. موضوعی که نظرمان را به‌خود جلب کرده این است که چرا SQL دومین زبان پرکاربرد مشترک بین دولوپر‌‌ها است. نزدیک به 50 درصد دولوپر‌‌های وب، دسکتاپ، متخصصین و مهندسین اطلاعات و سیس‌ادمین‌ها از SQL استفاده می‌‌کنند.

پرکاربردترین زبان در حال حاضر JavaScript است که نصف SQL عمر دارد!
برای یک زبان 43 ساله باتوجه به نرخ تغییر و رشد در تکنولوژی‌های نرم‌افزاری، دستاورد خوبی به‌حساب می‌‌آید که دومین زبان پرکاربرد در حوزهٔ توسعهٔ نرم‌افزار باشد (البته زبان‌‌های C و ++C هر دو از SQL قدیمی‌‌تر هستند اما اصلاً به پرکاربردی SQL نیستند. جالب است بدانید خود زبان SQL محبوبیت چندانی ندارد جدا از این‌که یکی از پرکاربرد‌‌ترین زبان‌‌ها است.) 

چرا هنوز از SQL استفاده می‌‌شود؟
SQL و سیستم مدیریت دیتابیس رابطه‌‌ای یا RDBMS در دههٔ 70 میلادی ابداع شده‌‌اند؛ ادگار کاد (Edgar F. Codd) مخترع RDBMS است و دونالد چمبرلین (Donald D. Chamberlin) و ریموند بویس (Redmond F. Boyce) جزو کسانی بودند که روی توسعه SQL فعالیت می‌‌کردند.

بدون اغراق می‌توان گفت که آن‌ها از زمان خود جلو‌‌تر بودند به‌طوری‌که 90 درصد وقت‌شان را روی این موضوع متمرکز کرده بودند تا امروز مسئلهٔ دیتابیس یک مسئله حل‌شده سایر دولوپرها است.

همان‌طور گوگل معادل جستجو و سرچ اینترنتی شده است، اگر با اطلاعات قرار است سروکله بزنید، باید از یک RDBMS و همچنین زبان SQL استفاده کنید به شکلی که این موضوع تبدیل به امری بدیهی شده است. با وجود تکنولوژی‌‌های دیگر برای دیتابیس که البته به کاملی SQL نیستند، کماکان SQL به‌خوبی در دنیای دیتابیس‌‌ها سلطنت می‌‌کند. در ادامه برخی از دلایلی که SQL را در جایگاه امروزی‌‌اش قرار می‌‌دهد نگاهی خواهیم انداخت:

SQL در کاری که انجام می‌‌دهد استاد است
SQL براساس جبر رابطه‌‌ای و حساب رابطه‌‌ای Tuple -دو نوع از معادلات ریاضیاتی که مخصوصاً برای دیتابیس‌‌های رابطه‌‌ای توسط ادگار کاد توسعه داده شده- بنا نهاده شده است. SQL به‌طور اختصاصی برای کار با دیتا ساخته شده است و منطقی هم به‌نظر می‌‌رسد که در دستیابی و مرتب‌‌سازی اطلاعات نسبت به سایر رقبا برتری بیشتری داشته باشد.

SQL امتحانش را پس داده است
RDBMS در سناریو‌‌های مختلفی استفاده شده است؛ از دیتابیس‌‌های سادهٔ آفلاین گرفته تا دیتابیس‌‌های مورد استفاده توسط غول‌‌هایی مثل فیسبوک. SQL و RDBMS آزمون‌‌شان را داده‌اند و این‌را میلیون‌‌ها ساعت فعالیت بدون وفقه به‌خوبی نشان داده‌‌ است.

وقتی با اطلاعات سروکار دارید، باید مسائل مختلفی را مد نظر قرار دهید؛ مخصوصاً زمانی که پاک شدن و یا خراب شدن و خطا در اطلاعات مد نظر ممکن است فاجعه‌آمیز باشد که البته SQL تقریباً همیشه برای شرایطی این‌چنین بهترین انتخاب است.

انجمن‌‌ها و اطلاعات موجود از SQL بسیار گسترده است
وقتی یک فناوری روانهٔ بازار شده و مدتی در دسترس و در حال استفاده باشد، طبیعی است که حجمه‌ای از اطلاعات مختلف پیرامون فناوری مد نظر به‌وجود آید و SQL هم از این قاعده مستثنی نیست.

در طول ۴۳ سال، دانش گسترده‌‌ای از اس‌کیو‌ال در انجمن‌‌ها، راهنما‌‌ها و ... منتشر شده و بسیاری از مشکلات مرتبط با شرایط خاص را که نیاز به خلاقیت برای حل آن مشکل است، پوشش می‌‌دهد. چنین حجم وسیعی از اطلاعات و انجمن‌‌های فعال حول هر تکنولوژی‌ای، به سرپا نگه داشتن آن تکنولوژی کمک شایانی می‌‌کند.

این فعالیت‌‌ها و داکیومنت‌‌های بسیار کامل باعث کشیده شدن افراد و شرکت‌‌‌‌ها به‌سمت استفاده از SQL می‌‌شود و هرچه دولوپرهای علاقمند به SQL افزایش پیدا کند، انجمن‌‌ها گسترش می‌‌یابند و اطلاعات دربارهٔ SQL نیز بیشتر رشد می‌‌کند.

سادگی و راحتی در آموختن SQL
در یک کلام، SQL زبانی ساده برای یادگیری است؛ شاید بیشتر از چند روز زمان برای یادگیری توابع محدود و اندک SQL نیاز نباشد تا یک نفر به‌سادکی بتواند با SQL کار کند و این در حالی است که حتی مدیران و بازاریابان غیرفنی نیز توان یادگیری این زبان را دارند (درک عمیق دیتابیس رابطه‌‌ای که SQL بر روی آن کار می‌‌کند موضوع دیگری است اما برای اکثر کوئری‌‌های ساده، می‌توان خود اس‌کیوال را به‌سادگی فرا گرفت.)

گستردگی و فراوانی استفاده از SQL
اگر 50 درصد دولوپر‌‌ها از SQL و RDBMS استفاده می‌‌کنند، پس می‌‌توان گفت که این زبان عمومیت بالایی دارد. SQL به‌دلیل سادگی‌‌اش، دانش مشترکی بین همهٔ دولوپر‌‌ها و آن‌هایی که از آن استفاده می‌‌کنند ایجاد کرده است. به‌عبارت دیگر، به‌راحتی بین شرکت‌‌ها و صنایع این مهارت‌‌ها انتقال می‌‌یابد و استعداد‌‌های جدیدی پیدا می‌‌شوند و درنهایت رشد و ارتقاء سطح دانش پیرامون این زبان را در پی خواهد داشت. گستردگی SQL حلقه‌‌ای از منافع را شکل داده که به شکل قابل‌توجهی در حال رشد است.

SQL یک زبان اپن‌‌سورس است که قابلیت تعمیم نیز دارد
SQL کاملاُ تعمیم‌‌پذیر نیست و سرویس‌هایی همچون Oracle و یا MS SQL Server از استاندارد خاصی استفاده نمی‌‌کنند که معمولاً به‌دلیل استفاده از سینتکس متفاوت است. به‌هر‌حال، سینتکس SQL دارای اندکی تفاوت در بین وندورهای (Vendor) مختلف است که از همین روی، می‌‌توان با اندکی تغییرات جزئی در SQL، دوباره آن‌را مورد استفاده قرار داد (درعین‌حال، برخی وندورها تمایل دارند تا سینتکس‌شان مخصوص به خود باقی مانده و قابلیت استفاده توسط سایر وندورها را نداشته باشد.)

در سال‌های اخیر -از 1995 به بعد- MySQL و PostgreSQL که گزینه‌‌هایی اپن‌سورس از تکنولوژی SQL هستند، تبدیل به پیشتازان این تکنولوژی شده‌اند. درحقیقت، PostgreSQL در سال 2017 یکی از خواستنی‌‌ترین تکنولوژی‌‌ها شده است که البته این فقط تکهٔ کوچکی از MongoDB است که به‌صورت گسترده‌ای جلو برده شده است.

با وجود SQL،‌ اختراع مجدد چرخ ممنوع
جمله‌‌ای با این مضمون وجود دارد که «چیزی راکه با SQL می‌توانید انجام دهید، دلیلی ندارد با زبان دیگری انجام دهید.» منطق پشت این ایده این است که در اکثر مواقع، نرم‌افزار‌های دیتابیس به بهترین شکل ممکن کارشان را انجام می‌دهند که بسیار بهتر و بهینه‌تر از حالتی است که دولوپری بخواهد همان کار را با زبان دیگری انجام دهد. به‌عبارت دیگر، SQL برای افزودن، فیلتر کردن، انتخاب ستون و … ساخته شده است. انجام دادن این اعمال با کد خودتان فقط باعث حجیم شدن سورس‌کد خواهد شد که کاری بیشتر از SQL انجام نمی‌دهد!

برای روشن‌تر شدن این مسئله، مثالی برایتان آورده‌ایم؛ می‌خواهیم گزارشی از اطلاعات «درآمدهای فروشگاهی در سه ماههٔ اخیر» به‌دست آوریم. این گزارش را به‌راحتی نوشتن یک خط کد می‌توانیم انجام دهیم. کدی که هزینه‌ها را از جدول 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 به شکلی هدفمند برای انجام این کار‌ها طراحی شده است و به‌خوبی از پس این کار برمی‌آید. 

دیتابیس‌های SQL/RDBMS و NoSQL/DBMS کاربرد‌های متفاوتی دارند
سیستم‌های دیتابیسی مختلف، به‌منزلهٔ ابزار‌هایی هستند که یکی با دیگری متفاوت است و هرکدام کاری متفاوت برای حل مسائل متفاوتی انجام می‌دهد.

 دیتابیس‌های رابطه‌ای (Relational) بسیار خارق‌العاده‌اند مخصوصاً زمانی که باید روابط محتمل بین داده‌های مختلف را تجمیع یا ترکیب کرده و یا کاربرد داده‌ها را در یک سیستم پیش‌بینی کنید؛ به‌طور‌کلی، SQL راه‌کاری کاربر‌پسند برای مدیرت داده‌ها بسته به نیاز دولوپر در اختیار می‌گذارد.

SQL/RDBMS یکی از بسیاری از ابزار‌هایی است که برای یک کار مشخص وجود دارد؛ وقتی تمامیت و پایداری اطلاعات حیاتی است -به‌طور مثال در امور مالی و اقتصادی- این‌ نوع دیتابیس‌ها بهترین‌اند.

دیتابیس‌های SQL کاستی‌هایی هم دارند که برای بعضی کار‌ها مناسب نیستند اما در اکثر موارد تمامی ابزار‌های NoSQL را کنار می‌زنند. اگر در مورد حجم دیتابیس‌ نگرانید، واقعیت امر آن است که درصد کوچکی از نرم‌افزارها نیاز به نگرانی در مورد حجم دیتابیسی از جنس RDBMS دارند. درواقع، شما که گوگل یا فیسبوک نیستید! با این حال، می‌توانید نیازهای میلیون‌ها کاربر را در یک دیتابیس اس‌کیوالی بدون هیچ مشکلی هندل کنید.

43 سال دیگر؟!
جدای از سیستم‌های دیتابیس بی‌شمار دیگری که وجود دارد که رو به رشد‌ نیز هستند، دیتابیس‌های SQL بدون شک برای ماندن آمده‌اند. با ظهور کلان‌ داده‌ها (Big Data) و یادگیری ژرف (Deep Learning) و همچنین اینترنت اشیاء (IoT)، خیلی دور از تصور نیست که برای چند دههٔ دیگر این سیستم دیتابیس وجود داشته باشد. درست است که SQL کاستی‌هایی نیز دارد، اما برای اکثر شرایط، سادگی زبان، انجمن‌های بزرگ و ساختار بنیادی RDBMS، به انتخاب‌ بهتری نسبت به رقبا مبدلش می‌سازد.

حال نوبت به نظرات شما می‌رسد؛ به نظر شما چرا بعد از 43 سال، هنوز از SQL استفاده می‌شود؟ و آیا به غیر از نقاط ضعف و قوت مطرح شده، شما نکتهٔ دیگری مد نظر دارید که این مقاله را تکمیل کند؟ نظرات و دیدگاه‌های خود را در این رابطه با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.

منبع