Microsoft SQL Server چیست و چه کاربردهایی دارد؟
بحث امروز ما دربارۀ یک سیستم مدیریت پایگاه داده، به نام Microsoft SQL Server است.
قبل از اینکه شروع کنیم، پیشنهاد میکنم برای درک بهتر این مقاله، نگاهی به مقاله پایگاه داده چیست بیندازید و در بخش انواع سیستم مدیریت پایگاه داده، به مدل رابطهای (Relational) دقت کنید. اگر هم وقت این کار را ندارید، اشکالی ندارد؛ در همین مقاله، مفاهیم مورد نیاز را مرور خواهیم کرد.
خب؛ اول برویم سراغ داده (Data) و ببینیم که چرا باید از دادهها سر دربیاوریم؟ اصلاً دادهها چه اهمیتی دارند؟
داده قدرت میبخشد!
اقتصاددان معروف بریتانیایی، آقای رونالد کوز (Ronald Coase)، جملۀ معروفی دارد؛ او میگوید:
«داده (Data) را شکنجه کنید، تا به همهچیز اعتراف کند!»
شاید بپرسید که اعتراف به چه چیزی؟
اعتراف به اینکه:
- افرادی که از سایت شما بازدید کردهاند، بیشتر در کدام رده سنی قرار میگیرند
- چند درصد از بازدیدکنندگان سایت شما به مشتری تبدیل شدهاند
- مشتریهای شما به چه رنگی بیشتر واکنش نشان میدهند
- طرفداران آقای ایکس (نامزد انتخاباتی) از چه وسیله نقلیهای بیشتر استفاده میکنند
- چه ساعتی برای پخش مناظره انتخاباتی بهتر است
- اصلاً طرفداران دوست دارند چه چیزهایی بشوند
و کلی نمونه دیگر که بدون آنکه حسشان کنیم، قدم به قدمِ ما را لو میدهند!
خب؛ فکر میکنم با همین جملۀ آقای کوز، اهمیت خیلی خیلی پررنگ شکنجۀ دادهها (یا همان تحلیل دادهها) را فهمیدید.
حالا حدس میزنید برای اینکه به یک شکنجهگر ماهر تبدیل شویم و بتوانیم خیلی خوب از دیتاها حرف بکشیم، به چه لوازم یا ابزارهایی نیاز داریم؟
آفرین!
- پایگاه داده (Database)؛ برای ذخیره دادهها و نظم دادن به آنها
- نرمافزار مدیریت پایگاه داده (DBMS)؛ برای مدیریت، اضافهکردن، فراخوانی و ویرایش دادهها
اینجا یک توقف کوتاه داریم و تعریف دیتابیس و نرمافزار مدیریت دیتابیس مرور میکنیم (برای کسانی که مقاله قبلی را نخواندهاند.)
مروری بر تعریف دیتابیس و DBMS
تصور کنید قدیمها که اینترنتی وجود نداشت، کار ادارۀ ثبت احوال به چه شکل بود؟
در هر شهر، یک ساختمان غولپیکر، با چندین انبار بایگانی که تا خرخره از پوشه و برگه پر شده بودند، وجود داشت. داخل این پوشهها، اطلاعات هویتی ما ثبت شده بود.
حالا فکر کنید قرار بود این اطلاعات را از انبار بیرون بکشیم یا تغییراتی در آنها اعمال کنیم… اول از همه باید تا آن شهر میرفتیم و بعد، چندین نفر باید درگیر این میشدند که اطلاعات ما را از آن انبار بزرگ پیدا کنند و کارهای لازم را انجام دهند.
الان هم کار ثبت احوال، تقریباً به همین شکل است! منتها، بهصورت اینترنتی و مجازی!
یعنی هنوز هم یک ساختمان غول پیکر وجود دارد؛ ولی سرورها، جایگزین انباری شدهاند. هنوز هم فایل و برگههایی که اطلاعات هویتی ما را دربردارند، وجود دارند؛ ولی بهصورت الکترونیکی و داخل پایگاه داده!
هنوز هم برای فراخوانی و ویرایش اطلاعات به آن انباری سر میزنند؛ ولی آن انباری با پایگاه داده (Database) مرتب شده و بهجای درگیر کردن چندین نفر، با یک نرمافزار مدیریت پایگاه داده (DBMS) خیلی راحتتر میشود با دیتاها کار کرد!
خب، حالا که با پیشنیازها بهخوبی آشنا شدید، برویم سراغ اصل مطلب، یعنی SQL Server.
Microsoft SQL Server چیست؟
SQL Server، یک سیستم مدیریت پایگاه داده – از نوع رابطهای – است. این سیستم توسط کمپانی مایکروسافت توسعه داده شده است و از زبان ANSI SQL پشتیبانی میکند.
یک پرانتز باز کنیم.
ANSI SQL چیست؟
SQL مخفف Structured Query Language و به معنی نوعی زبان است که برای جستجوهای ساختاریافته استفاده میشود (شبیه زبان برنامهنویسی، ولی با عملکردی متفاوت).
ANSI هم مخفف American National Standards Institute و اینجا به معنی است که SQL از استاندارد بینالمللی ANSI پیروی میکند.
💡 در واقع، SQL Server که یک نرمافزار مدیریت پایگاه داده است، برای اینکه منظورش را به پایگاه داده برساند، از زبان SQL استفاده میکند.
سیستم مدیریت پایگاه داده رابطهای (RDBMS) چیست؟
نرمافزارهای مدیریت پایگاه داده، انواع مختلفی دارند که یکی از آنها مدل Relational یا رابطهای است. در مدل رابطهای، بهجای اینکه دادهها خیلی ساده داخل فایل قرار داده شوند، داخل یک سری جدول (Table) سازماندهی شده و بعد ذخیره میشوند.
هر جدول یا Table، شامل تعدادی سطر و ستون است که به آنها Tuples و Attributes میگویند.
اگر با حجم بزرگی از دادهها (در حد چندین ترابایت) سروکار داشته باشید، خیلی زود متوجه میشوید که مدیریت آنها با DBMS غیرممکن است و باید از مدلهای دیگر، مثل RDBMS استفاده کنید.
برای اینکه بهتر درک کنید، Microsoft Access که احتمالاً الان داخل کامپیوترتان دارید، یک DBMS است و به درد استفاده شخصی میخورد. در مقابل، SQL Server، MySQL، PostgreSQL، MariaDB و Oracle همگی سیستمهای RDBMS هستند.
خب؛ همانطور که متوجه شدید، SQL Server شرکت مایکروسافت، رقبای قدری مثل MySQL و Oracle هم دارد. در بخش بعدی میخواهیم مزایای اس کیو ال سرور را بررسی کنیم و ببینیم که چه چیزی باعث میشود در برخی موارد، از رقبا جلوتر باشد.
مزایای مایکروسافت اس کیو ال سرور چیست؟
- نصب، پیکربندی و راهاندازی آن ساده است
- رابط کاربری خوبی دارد که کار کردن با دادهها را آسانتر کرده است
- امنیت بالایی دارد
- در صورت نیاز میتوانید اطلاعات از دسته رفته را بازیابی کنید
- از پایگاه دادههای ابری و On-premises پشتیبانی میکند
- نسخههای مختلفی دارد که برای کارهای مختلف بهینهسازی شدهاند
- آموزشها و مستندات زیادی (به زبان انگلیسی) برای آن تهیه شده است
- روی سیستم عامل لینوکس هم قابلاستفاده است
این از مزایا؛ بد نیست نگاهی هم به معایب داشته باشیم.
معایب مایکروسافت اس کیو ال سرور چیست؟
- قیمت بالایی دارد (البته اگر بخواهید لایسنس قانونی آن را تهیه کنید)
- در مقایسه با Oracle، برای پارتیشنبندی گزینههای زیادی ندارد (مثلاً پارتیشنبندی کلیدهای خارجی (Foreign Key) که در اوراکل وجود دارد، در MS SQL Server نیست.
- پشتیبانی رسمی آن نیازمند پرداخت هزینه است
- در اتصال به نرمافزارهایی غیر از نرمافزارهای شرکت مایکروسافت، ممکن است مشکلاتی پیش بیاید (که اغلب قابل حل هستند)
اگر شما هم دربارۀ مزایا و معایب SQL Server مایکروسافت نظری دارید، خوشحال میشویم که آن را با ما در میان بگذارید و از تجربههایتان بگویید.
همانطور که بالاتر اشاره کردیم، اس کیو ال سرور، نسخههای مختلفی دارد. در ادامه این نسخهها را بررسی میکنیم.
با نسخه های مختلف Microsoft SQL Server آشنا شوید
تا الان نسخههای مختلفی برای اس کیو ال سرور ارائه شده است که برخی از آنها رایگان هستند، برخی پولی، برخی تخصصی و برخی دیگر از رده خارج شدهاند.
ما در این بخش نسخههای مهمتر و محبوبتر را بررسی میکنیم و اگر فرصتی بود، در مقالههای بعدی وبلاگ ایرانسرور، راجعبه تمام نسخهها صحبت میکنیم.
اگر دوست داشتید راجعبه سایر نسخهها هم اطلاعات کسب کنید، حتماً به ما بگویید.
SQL Server Express
پایهایترین نسخۀ اسکیوال سرور است و همه میتوانند آن را بهصورت رایگان دانلود کرده و استفاده کنند. امکانات این نسخه محدود است و در نسخۀ 2019، در صورتی که اندازه پایگاه داده بیشتر از 10 گیگ نباشد، میتوانید از آن استفاده کنید.
نسخه اکسپرس اس کیو ال سرور، بیشتر به درد افرادی میخورد که در حال یادگیری هستند و میخواهند برنامههای کوچک دادهمحوری بسازند. توجه کنید که در صورت پیشرفت، میتوانید SQL Server Express را به نسخههای دیگر ارتقاء دهید.
SQL Server Developer
این نسخه مشابه نسخۀ اینترپرایز است؛ اما محدود به تست و توسعه نرمافزار است و نمیتوان از آن بهعنوان سرور تولید استفاده کرد. نسخۀ دولوپر اس کیو ال سرور، به درد توسعهدهندههایی میخورد که میخواهند برنامه بسازند و آن را تست کنند .
SQL Server Enterprise
این نسخه، کاملترین نسخۀ SQL Server است و برای انجام ماموریتهای مهم، پردازشهای سنگین، مدیریت و تحلیل دادهها در مقیاسهای خیلی بزرگ از آن استفاده میشود. امنیت نسخه اینترپرایز، فوقالعاده بالاست و قادر است حافظهای 12 ترابایتی را آدرسدهی و دیتابیسی با حجم 524 پتابایت را مدیریت کند.
ادارههایی که حجم زیادی داده دارند (مثل ثبت احوال) یا فروشگاههای اینترنتی بزرگ (مثل آمازون) از این سیستم میتوانند استفاده کنند.
و … همانطور که پیداست، این نسخه رایگان نیست و برای استفاده از آن باید لایسنس تهیه کنید.
SQL Server Standard
نسخه استاندارد اسکیوال، یک سری امکانات پایهای برای مدیریت دادهها و همچنین هوش تجاری دارد. امکانات این نسخه از نسخۀ Enterprise کمتر است؛ مثلاً در هر کلاستر (Cluster) از تعداد نود (Node) کمتری پشتیبانی میشود.
شرکتها و سازمانهای کوچک ، فروشگاههای اینترنتی با تعداد مخاطبین کم و کسانی که در شروع کار هستند، میتوانند از SQL Server Standard استفاده کنند و هزینه کمتری هم بایت لاینس قانونی آن بپردازند.
SQL Server WEB
این نسخه، یکی از انتخابهای مقرونبهصرفه برای کسانی هست که کار میزبانی وب (هاستینگ) انجام میدهند. امکانات نسخۀ وب اس کیو ال سرور، تقریباً یک چیزی بین نسخه Standard و Express است.
شرکتهای هاستینگ میتوانند با این سیستم، قابلیتهایی مثل مقیاسپذیری، ارتقاء، مدیریت ظرفیتها و صرفهجویی در هزینهها را برای کسبوکارهای مختلف فراهم کنند.
تا اینجا با نسخههای مهم SQL Server آشنا شدید. در بخش بعدی میخواهیم راجعبه Instance یا نصب نسخههای مختلف اس کیو ال سرور روی ماشین صحبت کنیم.
SQL Server Instance چیست؟
یکی از قابلیتهای خوب SQL سرور این است که شما میتوانید چندین نسخه از آن را، که در Version، Edition و Platform تفاوت دارند، بهصورت مستقل روی یک ماشین نصب کنید. به تکتکِ SQL Server های نصب شده روی این ماشین، یک Instance (نمونه) از SQL Server گفته میشود.
شما میتوانید به هر Instance یک نام مشخص را اختصاص دهید؛ فقط دقت کنید که اگر به یکی از Instanceها در زمان نصب هیچ نامی اختصاص ندهید و با ماشینی که روی آن نصب میشود همنام بماند، به عنوان نمونه پیشفرض (Default Instance) در نظر گرفته میشود.
یک سوال: وجود این Instance ها به چه دردی میخورد؟
شما یک سری نرمافزار روی سرور نصب کردهاید و گاهی ممکن است چندتا از نرمافزارها، فقط با یکی از ورژنهای اس کیو ال سرور سازگاری داشته باشد. در این شرایط، شاید لازم باشد که چند Instance (مثلاً 2008، 2012 و …) برای نرمافزارهای مختلف نصب کنید.
SQL Server Studio چیست؟
اس کیو ال سرور استودیو، یک محیط یکپارچه، برای مدیریت هر نوع زیرساخت SQL (ازSQL Server Instances گرفته تا Azure SQL Database) است.
خب، بدون شک مدیریت Instance های مختلف کار راحتی نیست؛ اما SQL Server Studio یک رابط گرافیکی برای این کار در اختیار شما میگذارد و کار را تا جای ممکن ساده میکند.
حرف آخر
خب فکر میکنم که تا اینجا بهخوبی با SQL Server و طرز کار آن آشنا شدید. به عنوان آخرین نکته میخواهم درباره تلفظ SQL Server هم نکتهای را بگویم. ببینید، در ویدئوهای مختلف ممکن است تلفظهای مختلفی مثل اس کیو ال سرور و سیکوئل (SEQUEL) سرور را بشنوید. هر دوی این تلفظها درست هستند؛ ولی خب خود بیل گیتس این کلمه را سیکوئل تلفظ میکند.
همین دیگر. امیدوارم که این مقاله حسابی به دردتان خورده باشد. اگر سوال، نظر یا پیشنهادی دارید، حتماً حتماً آن را با ما در میان بگذارید 💙