آنچه در این صفحه می خوانید:
- معرفی اس کیوال (SQL)
- تاریخچه اس کیوال (SQL)
- سینتکس اس کیوال (SQL)
- ویژگی های اس کیوال (SQL)
- مزایای اس کیوال (SQL)
- مقایسه اس کیوال (SQL) با NoSQL
معرفی اس کیوال (SQL)
SQL یک زبان خاص برای دامنه است که در برنامه نویسی مورد استفاده قرار می گیرد و برای مدیریت داده های نگهداری شده در سیستم مدیریت پایگاه داده رابطه (RDBMS) یا برای پردازش جریان در سیستم مدیریت جریان داده های رابطه ای (RDSMS) طراحی شده است. این امر به ویژه در پردازش داده های ساخت یافته، یعنی داده هایی که روابط بین واحدها و متغیرها را در بر می گیرند، بسیار مفید است. SQL دو مزیت اصلی نسبت به API های قدیمی تر خواندن و نوشتن مانند ISAM یا VSAM دارد. اولا، مفهوم دستیابی به بسیاری از رکوردها را با فرمان واحد معرفی کرد. ثانیا، نیاز به مشخص کردن نحوه دستیابی به رکورد را حذف می کند.
در اصل مبتنی بر جبر رابطه و محاسبه رابطه ای tuple، SQL از انواع مختلفی از عبارات تشکیل شده است، که ممکن است به طور غیر رسمی به عنوان زیر زبان ها طبقه بندی شوند، معمولاً: زبان جستجوی داده (DQL)، زبان تعریف داده (DDL)، زبان کنترل داده (DCL) ) و زبان دستکاری داده (DML). دامنه SQL شامل پرس و جو داده ها، دستکاری داده ها (درج، به روزرسانی و حذف)، تعریف داده ها (ایجاد و اصلاح شماتیک) و کنترل دسترسی به داده ها است. اگرچه SQL در اصل زبان اعلانی (4GL) است، اما شامل عناصر رویه ای نیز می شود.
SQL یکی از اولین زبان های تجاری بود که از مدل رابطه Edgar F. Codd استفاده کرد. این مدل در مقاله تأثیرگذار او در سال 1970 با عنوان "مدل رابطه ای از داده ها برای بانک های بزرگ مشترک داده" توصیف شده است. علیرغم اینکه کاملاً به مدل رابطه ای مطابق توضیحات Codd پایبند نیست، اما این زبان به عنوان گسترده ترین زبان پایگاه داده استفاده می شود. SQL در سال 1986 به استانداردی از موسسه استاندارد ملی آمریكا (ANSI) و سازمان بین المللی استاندارد سازی (ISO) در سال 1987 تبدیل شد. از آن زمان، این استاندارد مورد بازبینی قرار گرفته است تا مجموعه ای از ویژگی های بزرگتر را نیز شامل شود. با وجود وجود چنین استاندارد هایی، اکثر کدهای SQL کاملاً قابل حمل در بین سیستم های مختلف پایگاه داده و بدون تنظیم نیست.
SQL زبان برای کار با پایگاه داده است که شامل ایجاد و حذف پایگاه داده، افزودن ردیف ها، تغییر ردیف ها و غیره می باشد. SQL زبان برنامه نویسی ساختاری کوئری است که زبان کامپیوتر برای ذخیره، دستکاری و بازیابی اطلاعات ذخیره شده در پایگاه داده رابطه ای به حساب می آید. SQL زبان استاندارد برای سیستم پایگاه داده رابطه ای است. تمامی سیستم های مدیریت پایگاه داده رابطه ای (RDMS) مانند اس کیوال لایت ،مای اس کیوال، MS Access، اوراکل، Sybase، Informix، پستگرس کیوال و اس کیوال سرور از SQL به عنوان زبان پایگاه داده استاندارد خود استفاده می کنند. همچنین، آنها از گویش های مختلف استفاده می کنند، مانند:
- MS SQL Server با استفاده از T-SQL
- اوراکل با استفاده از PL / SQL
- نسخه MS Access از SQL به نام JET SQL (فرمت بومی) و غیره.
تاریخچه اس کیوال (SQL)
SQL ابتدا در IBM توسط دونالد دی. چمبرلین و ریموند اف. بوویس پس از کسب اطلاعات در مورد مدل رابطه از تد كد در اوایل دهه 1970 توسعه یافت. این نسخه که در ابتدا با نام SEQUEL یا (Structured English Query Language) خوانده شد، برای دستکاری و بازیابی داده های ذخیره شده در سیستم مدیریت پایگاه داده شبه رابطه ای اصلی IBM، سیستم R طراحی شده است، که گروهی در آزمایشگاه تحقیقاتی IBM San Jose در دهه 1970 توسعه داده بودند.
اولین تلاش چمبرلین و بویز برای زبان بانک اطلاعاتی رابطه ای، Square بود، اما استفاده از آن به دلیل علامت گذاری مشترک دشوار بود. آنها پس از رفتن به آزمایشگاه تحقیقاتی سان خوزه در سال 1973، کار خود را در زمینه SEQUEL آغاز کردند. نام اختصاری SEQUEL بعداً به SQL تغییر یافت زیرا "SEQUEL" علامت تجاری شرکت Hawker Siddeley Dynamics Engineering Limited با مستقر در انگلستان بود. پس از آزمایش SQL در سایت های آزمایش مشتری برای تعیین سودمندی و کاربردی بودن سیستم، IBM تولید محصولات تجاری را بر اساس نمونه اولیه System R خود از جمله System / 38، SQL / DS و DB2 که از سال به ترتیب 1979، 1981، 1983 در دسترس تجاری بودند، آغاز کرد.
در اواخر دهه 1970، .Relational Software، Inc (که اکنون شرکت اوراکل است) پتانسیل مفاهیمی را که توسط Codd، Chamberlin و Boyce شرح داده شده بود، دید و RDMS مبتنی بر SQL خود را با آرزوهایی برای فروش آن به نیروی دریایی ایالات متحده،آژانس و سایر سازمان های دولتی ایالات متحده و اطلاعات مرکزی توسعه داد. در سال 1986، گروه های استاندارد ANSI و ISO رسماً تعریف استاندارد "زبان پایگاه داده SQL" را تصویب كردند.
سینتکس اس کیوال (SQL)
زبان SQLاز نظر سینتکس به چندین عنصر زبان تقسیم می شود، از جمله:
- Clauses،که اجزای تشکیل دهنده statements و queries است. (در برخی موارد، این موارد اختیاری است.)
- Expressions، که می تواند مقادیر مقیاس پذیر باشد، یا جداول متشکل از ستون ها و ردیف داده ها
- Predicates که شرایطی را برای ارزیابی منطق سه ارزش SQL (true / false / ناشناخته) یا مقادیر حقیقت بولی (SQL) ارزیابی می کند و برای محدود کردن تأثیر گزاره ها و queries یا تغییر جریان برنامه استفاده می شود.
- Queries، که داده ها را بر اساس معیارهای خاص بازیابی می کنند. این عنصر مهم SQL است.
- Statements، که ممکن است تأثیر مداوم در برنامه ها و داده ها داشته باشد، یا ممکن است معاملات، جریان برنامه، اتصالات، جلسات یا تشخیص را کنترل کند.
- عبارت های SQL همچنین شامل ترمینال بیانیه علامت اختصاری ("؛") است. اگرچه در هر سیستم عامل لازم نیست، اما به عنوان بخش استاندارد از دستور زبان SQL تعریف شده است.
- فضای سفید ناچیز به طور کلی در بیانیه ها و کوئری های SQL نادیده گرفته می شود و فرمت کد SQL را برای خوانایی آسان تر می کند.
ویژگی های اس کیوال (SQL)
موتورهای پایگاه داده و SQL با پسوند در کار با مقادیر زیادی از داده ها بسیار خوب هستند. SQL حتی برای دستکاری داده های دشوار نیز مناسب است، اما برای منطق پیچیده تجارت چندان مناسب نیست، زیرا درک آن دشوار است. این بدان معنا نیست که نمی توان انجام داد، اما منطق تجارت ممکن است به زبانی شی گرا انجام شود زیرا دنبال کردن آن ساده تر است.
نکته ای که باید در نظر داشته باشید این است که هنگام کار با داده ها، موتور دیتابیس معمولاً بدون ارسال آن از طریق شبکه با داده ها در همان دستگاه کار می کند. این می تواند مزیت مهم باشد زیرا شبکه بسیار کندتر از سرعت رایانه داخلی است. به برنامه نویسان توصیه می کنیم که در مورد مکانی که باید منطق خود را در پایگاه داده یا برنامه خود قرار دهند، فکر کنند. در هنگام زندگی همه داده های منبع در همان مکان، از پایگاه داده استفاده کنید و سپس محصول نهایی را به مقصد منتقل کنید.
استاندارد SQL
اولین استاندارد برای SQL در سال 1986 توسط ANSI (موسسه استاندارد ملی آمریکا) و ISO (سازمان استاندارد بین المللی) در سال 1987 دنبال شد. آخرین بخش استاندارد در سال 2011 ساخته شده است.
قابل حمل
SQL بر روی حافظه های اصلی، رایانه های شخصی، لپ تاپ ها، سرورها، تبلت ها و تلفن های هوشمند اجرا می شود. این سیستم در سیستم های محلی، اینترانت و اینترنت اجرا می شود. پایگاه داده با استفاده از SQL بدون مشکل می تواند از یک دستگاه به دستگاه دیگر منتقل شود.
مورد استفاده توسط فروشندگان عمده سیستم DBMS
SQL توسط کلیه فروشندگان مانند IBM، Oracle و مایکروسافت که DBMS را توسعه می دهند استفاده می شود.
یادگیری و درک آسان
SQL عمدتاً از عبارت انگلیسی است و یادگیری و نوشتن سؤالات SQL را آسان می کند.
زبان تعاملی
از SQL می توان برای گفتگو با بانک های داده و دریافت پاسخ به سوالات پیچیده در چند ثانیه استفاده کرد.
زبان برنامه نویسی
SQL را می توان با برنامه نویسان در حال نوشتن برنامه ها با استفاده از پایگاه داده ها، به عنوان مثال، برنامه های خرید در اینترنت استفاده کرد.
زبان کامل برای بانک اطلاعاتی
SQL برای ایجاد بانک های اطلاعاتی، مدیریت امنیت پایگاه داده استفاده می شود. در حالی که کاربرد اصلی آن برای به روزرسانی، بازیابی و به اشتراک گذاری داده ها با چندین کاربر است.
کوئری های چندگانه
به کاربران مختلف پایگاه داده می توان از طریق SQL دیدگاه های مختلفی درباره ساختار و محتوای پایگاه داده ارائه داد.
زبان کلاینت / سرور
SQL برای اتصال رایانه های فرانت اند (کلاینت ها) و پایگاه داده های بک اند (سرورها) استفاده می شود. بنابراین، پشتیبانی از معماری کلاینت-سرور.
استفاده از اینترنت
SQL را می توان در معماری اینترنت سه لایه استفاده کرد. این معماری شامل کلاینت، سرور برنامه و بانک اطلاعاتی است.
SQL مهارت بسیار مطلوب
بسیاری از مشاغل از جمله پشتیبانی از فناوری اطلاعات، توسعه وب و تجزیه و تحلیل داده های کسب و کار نیاز به مهارت در SQL دارند.
مزایای اس کیوال (SQL)
- به کاربران برای دسترسی به داده ها در سیستم های مدیریت پایگاه داده رابطه ای اجازه می دهد.
- به کاربران اجازه می دهد داده ها را توصیف کنند.
- به کاربران امکان می دهد داده ها را در پایگاه داده تعریف کنند و داده های آن را دستکاری کنند.
- اجازه می دهد تا در زبان های دیگر با استفاده از ماژول های SQL، کتابخانه ها و پیش کامپایلرها تعبیه شود.
- به کاربران امکان می دهد پایگاه داده ها و جداول را ایجاد و رها کنند.
- به کاربران اجازه می دهد تا view، روند ذخیره شده، توابع در پایگاه داده ایجاد کنند.
- به کاربران اجازه می دهد مجوزها را روی جداول، رویه ها و view ها تنظیم کنند.
مقایسه اس کیوال (SQL) با NoSQL
هنگام انتخاب پایگاه داده، بزرگترین تصمیم گیری انتخاب ساختار داده ای رابطه ای (SQL) یا غیر رابطه ای (NoSQL) است. در حالی که هر دو پایگاه داده گزینه های قابل قبولی هستند، اما تفاوت های کلیدی خاصی بین این دو وجود دارد که کاربران هنگام تصمیم گیری باید آنها را به خاطر بسپارند.
تفاوت های اصلی:
نوع
بانک های اطلاعاتی SQL در درجه اول به عنوان پایگاه داده های رابطه ای (RDBMS) نامیده می شوند. در حالی که بانک اطلاعاتی NoSQL در درجه اول پایگاه داده غیر رابطه ای یا توزیع شده نامیده می شود.
زبان
بانک های اطلاعاتی SQL زبان پرس و جو ساختار یافته مبتنی بر داده ها (SQL) را تعریف و دستکاری می کنند. دیدن از یک طرف این زبان بسیار قدرتمند است. SQL یکی از گزینه های متنوع و پرکاربرد در دسترس است که باعث می شود به خصوص برای نمایش داده های پیچیده بزرگ گزینه ای بی خطر باشد. اما از طرف دیگر، می تواند محدود کننده باشد. SQL از شما می خواهد که قبل از کار با آن ها از طرح های از پیش تعریف شده برای تعیین ساختار داده های خود استفاده کنید. همچنین، تمام داده های شما باید از همان ساختار پیروی کنند. این می تواند آماده سازی قابل توجهی از جلو باشد، به این معنی که تغییر ساختار هم برای کل سیستم شما مشکل و هم مختل خواهد بود.
پایگاه داده NoSQL دارای طرح پویا برای داده های بدون ساختار است. داده ها از بسیاری جهات ذخیره می شوند و این بدان معنی است که می تواند به صورت اسناد، ستون گرا، مبتنی بر نمودار یا به صورت فروشگاه KeyValue سازماندهی شود. این انعطاف پذیری بدان معنی است که اسناد را می توان بدون ایجاد ساختار مشخص در ابتدا ایجاد کرد. همچنین هر سند می تواند ساختار منحصر به فرد خود را داشته باشد. نحو از پایگاه داده به پایگاه داده متفاوت است و شما می توانید فیلدها را همزمان با آن اضافه کنید.
مقیاس پذیری
تقریباً در همه شرایط، بانک های اطلاعاتی SQL بصورت عمودی قابل مقیاس هستند. این بدان معنی است که می توانید با افزایش مواردی مانند RAM، CPU یا SSD بار را در سرور واحد افزایش دهید. اما از طرف دیگر بانک های اطلاعاتی NoSQL از نظر افقی مقیاس پذیر هستند. این بدان معناست که شما با خرد کردن یا اضافه کردن سرورهای بیشتر در پایگاه داده NoSQL خود، ترافیک بیشتری را کنترل می کنید. مشابه اضافه کردن طبقات بیشتر به همان ساختمان در مقابل اضافه کردن ساختمان های بیشتر به محله است. بنابراین NoSQL در نهایت می تواند بزرگتر و قدرتمندتر شود و این پایگاه های داده را به مجموعه ای از داده های بزرگ یا همیشه در حال تغییر تبدیل می کند.
ساختار
بانک های اطلاعاتی SQL مبتنی بر جدول هستند و از طرف دیگر بانک های اطلاعاتی NoSQL یا جفت های دارای ارزش کلیدی، مبتنی بر اسناد، بانک های اطلاعاتی نمودار یا فروشگاه های ستون گسترده هستند. این امر باعث می شود که بانک های اطلاعاتی SQL رابطه ای گزینه بهتری برای برنامه های کاربردی که نیاز به معاملات چند ردیفی مانند سیستم حسابداری یا سیستم های میراثی هستند که برای ساختار رابطه ساخته شده اند، بسازند.
حمایت کردن
پشتیبانی عالی برای کلیه بانک های اطلاعاتی SQL از فروشندگان آنها در دسترس است. همچنین، بسیاری از مشاوره های مستقل وجود دارد که می توانند برای استقرار در مقیاس بسیار بزرگ از پایگاه داده SQL به شما کمک کنند اما برای برخی از پایگاه داده های NoSQL هنوز هم باید به حمایت جامعه اعتماد کنید و فقط متخصصان محدودی در خارج برای تنظیم و استقرار NoSQL مقیاس بزرگ شما موجود هستند.
برخی از نمونه های پایگاه داده های SQL شامل PostgreSQL، MySQL، Oracle و Microsoft SQL Server است. نمونه های پایگاه داده NoSQL شامل Redis، RavenDB Cassandra، MongoDB، BigTable، HBase، Neo4j و CouchDB است.