بسیاری از زبان های برنامه نویسی آمده اند و رفته اند، اما SQL باقی مانده است. و هنوز هم آینده روشنی دارد.
SQL، زبان جستجوی ساختاریافته، همچنان یکی از پرکاربردترین زبانهای برنامهنویسی است که در چهارمین در تحقیقات Stack Overflow برای سال ۲۰۲۳. بیش از نیمی (۵۱.۵۲%) از توسعه دهندگان حرفه ای در کار خود از SQL استفاده می کنند، اما فقط حدود یک سوم (۳۵.۲۹%) از کسانی که کدنویسی را یاد می گیرند از SQL استفاده می کنند.
برای زبانی که برای دههها استفاده میشود، SQL در بین توسعهدهندگان شهرت متفاوتی دارد. چرا SQL در حال استفاده باقی می ماند در حالی که بسیاری از زبان های دیگر آمده اند و رفته اند؟ و چرا SQL هنوز آینده روشنی دارد؟
همه جا حاضر بودن و ثبات
یکی از دلایل استفاده از SQL این است که در همه جا حاضر است. دانستن SQL یک مهارت در سطح پایه برای بسیاری از توسعه دهندگان است که منجر به جمع زیادی از افراد با مهارت های موجود می شود. این به نوبه خود، افراد بیشتری را تشویق میکند تا SQL را یاد بگیرند، زیرا میتوانند تقاضا برای افرادی با آن مهارتها را ببینند و فرصتهای شغلی را که میتوانند از آنها استفاده کنند، ارائه دهند.
در کنار این همه جا، SQL پایدار است. این یک استاندارد موثر است که توسعه دهندگان می توانند به آن تکیه کنند و از نسخه ای به نسخه دیگر تغییر نمی کند. این باعث می شود SQL برای برنامه ریزی پشتیبانی بلندمدت مناسب باشد و تیم های درگیر می توانند از قبل در مورد زیرساخت داده خود برنامه ریزی کنند. این همچنین انتقال پروژه ها را بین توسعه دهندگان مختلف با تغییر نقش اعضای کارکنان ساده تر می کند.
به دنبال این، SQL برآوردن الزامات سازگاری در مورد دادههای درون برنامهها را آسانتر میکند. استفاده از SQL به عنوان رویکرد شما برای بازجویی از داده ها در یک جزء داده، انتقال به استفاده از گزینه دیگری را در صورت تغییر نیازها آسان تر می کند. به عنوان مثال، اگر تصمیم دارید از یک پایگاه داده به پایگاه داده دیگر تغییر دهید، نیازی به ویرایش نحوه عملکرد منطق برنامه خود در هنگام استفاده از اصطلاحات SQL ندارید، زیرا اینها در همه جا یکسان هستند.
از آنجایی که SQL مانند یک استاندارد عمل می کند، یک مزیت این است که انتقال داده های شما را آسان تر می کند. SQL به جای اینکه به یک پایگاه داده خاص با زبان و روش ذخیره داده ها متصل شود، تضمین می کند که داده های شما متعلق به شما هستند و می توانید آنچه را که می خواهید با آن انجام دهید. به طور مؤثر، دیگر لازم نیست به طور خاص در مورد پایگاه داده های خود و آنچه که آنها می توانند ارائه دهند فکر کنید. در عوض، میتوانید به ابزارهایی که در زبان وجود دارد به عنوان نقطه کنترل فرآیند برنامهریزی زیرساخت خود نگاه کنید.
به عنوان مثال، انتخاب های خود را در مورد اجرای یک پایگاه داده مانند MySQL، و سپس تمایل به تغییر به گزینه دیگری مانند PostgreSQL در نظر بگیرید. این پایگاههای اطلاعاتی از نظر نحوه عملکرد و مدیریت دادهها در طول زمان متفاوت خواهند بود. با این حال، از نقطه نظر عملکردی، استفاده از SQL برای بازجویی از آن داده ها، نتایج یکسانی را به شما می دهد.
پشتیبانی شده توسط علم
در کنار محبوبیت SQL به عنوان یک زبان، ارزش این را نیز دارد که SQL از نقطه نظر فناوری چه ارائه می دهد. در این جبهه، بزرگترین مزیت آن، منطقی بودن در طراحی آن است. این به این معنی است که وقتی متوجه شدید که چگونه کار می کند، می توان از آن به روش های ظریف و هوشمندانه استفاده کرد.
به عنوان بخشی از این، ما باید به پیوند بین SQL و پایگاه داده های رابطه ای نگاه کنیم. برای بسیاری از توسعه دهندگان، SQL بسیار محکم به مدل پایگاه داده رابطه ای گره خورده است، با تمام نقاط قوت و نارسایی که ممکن است داشته باشد. با این حال، SQL به عنوان یک زبان جدا از پایگاه داده های رابطه ای است و مهم است که این دو را با هم ترکیب نکنید.
امروزه بسیاری از پایگاههای اطلاعاتی غیر رابطهای از یک مدل جدول مانند و زبان SQL استفاده کردهاند. مدت زیادی است که SQL و مدل رابطهای مترادف شدهاند، و با ظهور پایگاههای داده غیررابطهای، مرزها سیالتر شدهاند. به عنوان مثال، برخی از فروشگاه های کلید-مقدار و برخی از پایگاه های داده ذخیره اسناد، ساختار جدول مانندی را برای سازماندهی داده های خود به کار گرفته اند، و برخی زیرمجموعه ای از SQL یا یک زبان پرس و جوی SQL-مانند را برای دسترسی بهتر و آسان کردن توسعه دهندگان ارائه می دهند. با محصولات آنها کار کنید.
در طول سالها، مدل رابطه ای ثابت کرده است که یک مدل بسیار موثر برای طراحی پایگاه داده است. دلیل این امر این است که مدل بر اساس نظریه ریاضی جامد است که بسیار دقیق است. این مبانی نظری قوی دلیلی است که پایگاههای اطلاعاتی رابطهای در علوم کامپیوتر و مهندسی نرمافزار به طور کلی محبوب ماندهاند. SQL دسترسی به این قدرت منطقی و محاسباتی را در طول زمان آسانتر کرده است و این سیستمها را به روشی یکنواخت و قابل درک برای همه حفظ میکند.
در حالی که من اشاره کردم که SQL یک استاندارد واقعی است، مانند هر استاندارد دیگری در طول زمان تکامل یافته است و زمانی که به خوبی برنامه ریزی شده باشد می توان آن را گسترش داد. بهترین مثال از این تکامل، تغییر استانداردی است که به فروشندگان پایگاه داده اجازه می دهد از فرمت های مختلف JSON در سال ۲۰۱۶ پشتیبانی کنند.
برای سالهای متمادی، توسعهدهندگانی که میخواستند با JSON کار کنند، این گزینه را داشتند که از پایگاههای داده سندگرا مانند MongoDB برای ذخیره دادههای خود استفاده کنند، در حالی که سایر پایگاههای داده به دلیل عملکرد و سهولت کار، گزینههای ثانویه خواهند بود. استفاده کنید. امروزه، اینطور نیست، زیرا بسیاری از پایگاههای داده رابطهای مانند PostgreSQL پشتیبانی JSON را پیادهسازی کردهاند که میتواند به سرعت یا حتی سریعتر از پایگاههای داده سندگرا برای بارهای کاری خاص کار کند. این پشتیبانی طراحی سیستمها و زیرساختهایی را که مستقیماً از اهداف برنامههای کاربردی آنها پشتیبانی میکند، برای توسعهدهندگان آسانتر میکند، نه اینکه به یک رویکرد خاص گره بخورند.
مالک بهینه سازی
یکی دیگر از مزایای SQL این است که یک زبان اعلانی است. برنامه نویسی اعلانی به جای تعیین مراحلی که می خواهید برنامه برای انجام آن انجام دهد، با توصیف آنچه می خواهید برنامه انجام دهد کار می کند. برای توسعهدهندگان و پایگاههای داده، این کار ایجاد پرسوجوها را آسانتر میکند، زیرا میتوانید به جای جمعآوری کل محاسبات، روی نتیجهای که میخواهید به دست آورید تمرکز کنید. در واقع، SQL به شما امکان می دهد نتیجه را توصیف کنید، و پیچیدگی اجرای محاسبه را به پایگاه داده واگذار می کند.
مانند هر زبان قدرتمند، SQL نیز منتقدان خود را دارد. به عنوان مثال، یک شکایت رایج این است که بهینه سازهای SQL در بهبود عملکرد چندان موثر نیستند. در حالی که ممکن است بخواهید نتایج و سرعت پاسخگویی خود را بهبود ببخشید، این ابزارها به اندازه میزان کاری که در ابتدا انجام می دهید قدرتمند هستند. ما گاهی اوقات با مشکل مشابهی در کامپایلرهای زبان مواجه می شویم. اگرچه کامپایلرها معمولاً موفق میشوند کد توسعهدهنده را به یک باینری کوچکتر و سریعتر تبدیل کنند، اما شناخته شدهاند که گاهی اوقات بهشدت با شکست مواجه میشوند و نتیجه معکوس دارند.
به عنوان یک توسعه دهنده، ممکن است لازم باشد برای دستیابی به نتایج مناسب به کامپایلر یا بهینه ساز کمک کنید. گاهی اوقات این دانش می تواند مبهم باشد! همانطور که عمو بن مرد عنکبوتی گفت، قدرت بزرگ با مسئولیت بزرگ همراه است. شما باید انتظار داشته باشید که رویکرد SQL خود را تا حد امکان بهینه کنید، نه اینکه صرفاً به ابزارهایی برای ارائه بهبودها تکیه کنید.
یکی دیگر از انتقادات رایج SQL به دلیل پیوند قوی آن با پایگاه داده های رابطه ای است. چگونه چیزی که اینقدر عمیق در طراحی پایگاه داده سنتی ریشه دارد می تواند برای دنیای مدرن مناسب باشد؟ البته، ترکیب SQL و پایگاههای داده رابطهای امروزه به صدها مورد استفاده ارائه میدهد و مقیاسپذیری و عملکردی را ارائه میکند که میتواند نیازهای برنامه را برآورده کند. چالش این است که رویکرد خود را بر اساس درک آنچه SQL در ارائه خوب است طراحی کنید.
برآوردن نیازهای توسعه دهندگان مدرن
از آنجایی که تقاضا برای نرم افزار، سرعت توسعه نرم افزار و تعداد توسعه دهندگان افزایش یافته است، چالش SQL این است که توسعه دهندگان کمتری درک عمیقی از نحوه عملکرد SQL از دیدگاه تئوریک دارند. در حالی که جنبشهایی مانند توسعه و مهندسی قابلیت اطمینان سایت بر پاسخگویی به خواستههای کسبوکارها در مورد خدمات فناوری اطلاعات تمرکز میکنند، نقشهای درگیر تمایل دارند به جای عملکردهای خاص، بخشهای متعددی از پشته فناوری اطلاعات را پوشش دهند. .
اگرچه این نقشها از نظر تئوری بر کل سیستم متمرکز هستند، اما تمرکز کافی روی نحوه همسو کردن منطق کسبوکار، یا آنچه مشتری میخواهد به آن دست یابد، با پیچیدگیهای زیرساخت وجود ندارد. چرا این موضوع اینقدر مهم است؟ زیرا معماری پایگاه داده نه تنها باید الزامات عملکردی را برآورده کند، بلکه باید با عملکرد، مقیاس پذیری و اهداف امنیتی همسو باشد. بدون هر دو، شما یک پایه محکم برای توسعه نرم افزار موفق ندارید.
هنگامی که برنامهها به طور گسترده شروع به بزرگ شدن میکنند یا زمانی که مشکلات عملکرد ظاهر میشوند، دانستن نحوه عملکرد SQL میتواند بسیار مفید باشد. درک طراحی پرس و جو، مانند نحوه انتخاب داده ها از یک جدول بزرگتر به جای تجزیه چندین بار داده ها از یک جدول، می تواند تأثیر زیادی بر عملکرد داشته باشد. این مهارت های مدیریت داده ها به طور موثر به درک نظریه پایگاه داده بستگی دارد. درک و استقرار آن در عمل به زمان نیاز دارد، اما برای ارائه نتایج بهتر ضروری است.
یادگیری هر زبانی می تواند دشوار و زمان بر باشد. بسیاری از ما وقت کافی برای بررسی اصول و استفاده از آن دانش در زبان ها و برنامه ها نداریم. با این حال، این منجر به مشکلاتی مانند عملکرد ضعیف می شود که تشخیص و درمان موثر آن دشوارتر می شود. استقرار نوع نادرست پایگاه داده نیز می تواند بر موفقیت پروژه شما تأثیر بگذارد. شما می توانید با یک پایگاه داده که برای موارد استفاده خاص عالی است بسیار خوشحال باشید، اما ممکن است برای همه چیز مناسب نباشد. SQL انتزاع این الزامات را به دور از زیرساخت های اساسی آسان تر می کند. حتی اگر در انتخاب پایگاه داده خود اشتباه کنید، SQL انتقال به گزینه بهتر را آسان تر می کند.
SQL همچنان در بین بسیاری از کاربران محبوب است و محبوب خواهد ماند زیرا برخی از بزرگترین چالشهای موجود در مورد نحوه کار با دادهها را حل میکند. ممکن است برای برخی شهرت ترسناکی داشته باشد، اما حجم عظیمی از فناوری اطلاعات که هر روز به SQL برای ارائه ارزش به ما متکی است، کم نمی کند. شاید بتوانیم ارزش SQL را SELECT
و CREATE
با آن داشته باشیم.
چارلی باتیستا رهبر فنی PostgreSQL در پرکونا.
—
انجمن فناوری جدید مکانی را برای رهبران فناوری – از جمله فروشندگان و سایر مشارکتکنندگان خارجی – فراهم میکند تا فناوری سازمانی نوظهور را در عمق و وسعت بیسابقه بررسی و بحث کنند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه پرس و جوها را به doug_dineley@foundryco.com.
پست های مرتبط
چرا SQL همچنان حاکم است
چرا SQL همچنان حاکم است
چرا SQL همچنان حاکم است