آشنایی با SQL Server

در این بخش به معرفی Sql Server، نسخه های مختلف آن، معماری Sql Server، موتور پایگاه داده، SSMS و SQL Server Instances می پردازیم.

 آشنایی با SQL Server

آشنایی با SQL Server

SQL Server (سیستم مدیریت پایگاه داده رابطه ای) نرم افزاری است که توسط مایکروسافت توسعه یافته است که به آن MS SQL Server نیز می گویند.

این آموزش شامل تمام موضوعات SQL Server، نصب ویژوال استودیو، نصب SQL Server، معماری، management studio، انواع داده، db operations، ورود به پایگاه داده، ایجاد پایگاه داده، انتخاب پایگاه داده، حذف پایگاه داده، ایجاد جدول، حذف جدول، به روز رسانی جدول، تابع min، تابع max، تابع sum، عملگرهای sql، ایجاد view، محدودیت ها و اندیس ها، clauses، کلیدهای اصلی (primary)، کلیدهای خارجی، اندیس ها و غیره می باشد.

آموزش Sql Server

SQL Server چیست؟

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

مایکروسافت سیستم مدیریت پایگاه داده رابطه ای (RDBMS) یا همان SQL Server را برای رقابت با پایگاه های داده MySQL و Oracle توسعه داد و به بازار عرضه کرد. به آن MS SQL Server نیز می گویند، که یک ORDBMS است، وابسته به پلتفرم که می تواند روی رابط کاربری گرافیکی (GUI) و نرم افزارهای مبتنی بر command کار کند. ابزار interface کلیدی برای SQL Server ، (SSMS) SQL Server Management Studio است که در هر دو محیط 32 بیتی و 64 بیتی کار می کند.

اگر بخواهیم SQL Server را به طور کامل درک کنیم، ابتدا باید زبان SQL را یاد بگیریم.

SQL یک زبان پردازش پرس و جو است (query processing language) که برای کار با داده ها در پایگاه داده های رابطه ای استفاده می شود. بر اساس مدل client-server، سرور پایگاه داده یک برنامه کامپیوتری است که خدمات متعددی را برای پایگاه داده ما به برنامه ها یا رایانه های دیگر ارائه می دهد. در نتیجه، ما به SQL Server به عنوان یک سرور پایگاه داده اشاره کردیم که از SQL به عنوان زبان پرس و جو خود استفاده می کند.

Microsoft SQL Server در چندین نسخه عرضه می شود که هر کدام با حجم های کاری و تقاضاهای مختلف مطابقت دارند. نسخه data center برای سطوح بالاتر پشتیبانی برنامه و مقیاس پذیری بهینه شده است، در حالی که نسخه Express نسخه رایگان و کوچک شده نرم افزار است.

کاربرد SQL Server

موارد زیر کاربرد کلیدی MS SQL Server است:

1- هدف اصلی آن ایجاد و نگهداری پایگاه داده است.

2- برای تجزیه و تحلیل داده ها با استفاده از سرویس های تجزیه و تحلیل (SSAS) SQL Server استفاده می شود.

3- برای تولید گزارش با استفاده از خدمات گزارش (SSRS) SQL Server استفاده می شود.

4- برای انجام عملیات ETL با استفاده از SQL Server Integration Services (SSIS) استفاده می شود.

تاریخچه نسخه های SQL Server

SQL Server در 12 ژوئن 1988 آغاز شد، زمانی که مایکروسافت به Ashton-Tate و Sybase پیوست تا نوع جدیدی از Sybase SQL Server را برای IBM OS/2 توسعه دهد. آنها اولین محصول پایگاه داده را با نام SQL Server v1.0 در سال 1989 منتشر کردند. اولین نسخه به عنوان ورود مایکروسافت به بازار پایگاه داده در سطح سازمانی (enterprise-level database) عمل کرد و با پایگاه های داده Sybase ،IBM ,Oracle و MySQL رقابت کرد.

پس از پایان همکاری در اوایل دهه 1990، مایکروسافت مالکیت نام SQL Server را حفظ کرد. مایکروسافت چندین نسخه SQL Server را از دهه 1990 منتشر کرده است که عبارتند از SQL Server 2000، 2005، 2008، 2012، 2014، 2016، 2017 و 2019.

نسخه های اولیه MS SQL Server عمدتاً در برنامه های دپارتمان و اپلیکیشن های workgroup استفاده می شد، اما بعداً مایکروسافت قابلیت های خود را در نسخه های بعدی مانند DBMS رابطه ای enterprise-class گسترش داد. در طول سال ها، SQL Server ابزارها و ویژگی های پردازش داده و تجزیه و تحلیل داده های متعددی را برای پشتیبانی از فناوری های نو ظهور مانند اینترنت، cloud computing و دستگاه های تلفن همراه به کار گرفته است.

SQL Server Editions

SQL Server شامل پنج نسخه با سرویس ها و ابزارهای مختلف همراه و گزینه های قیمت گذاری برای رفع نیازهای کاربر است. مایکروسافت دو نسخه از SQL Server را به صورت رایگان ارائه می دهد که در زیر آورده شده است:

SQL Server Developer : این نسخه عمدتاً برای استفاده در محیط غیر تولیدی، یعنی توسعه و آزمایش پایگاه داده منتشر شده است و امکان ساخت، آزمایش و همچنین demo purpose را فراهم می کند.

SQL Server Express : برای برنامه های کاربردی در مقیاس کوچک و پایگاه های داده با ظرفیت ذخیره سازی دیسک تا 10 گیگابایت استفاده می شود.

برای مقاصد تجاری، از نسخه های زیر استفاده می شود:

SQL Server Enterprise : در مشاغل پیشرفته، بزرگتر و حیاتی تر استفاده می شود. تمامی ویژگی های SQL Server مانند امنیت بالا، تجزیه و تحلیل پیشرفته و یادگیری ماشینی در این نسخه گنجانده شده است.

SQL Server Standard : این نسخه برای data marts و برنامه های کاربردی سطح متوسط (mid-tier applications) که شامل گزارش گیری و تجزیه و تحلیل اولیه است، مناسب است. همچنین از ویژگی نسخه partial enterprise و همچنین محدودیت های سرور در تعداد هسته های پردازنده و حافظه ای که می توانیم پیکربندی کنیم پشتیبانی می کند.

SQL Server WEB : این نسخه برای میزبانان وب که خواهان هزینه مالکیت کلی پایین هستند مناسب است. SQL Server WEB دارای ویژگی های مقیاس پذیری، قابلیت مدیریت و مقرون به صرفه بودن برای property های وب در مقیاس کوچک تا بزرگ است.

SQL Server به عنوان معماری Client-Server

SQL Server مبتنی بر معماری Client-Server است و برای کاربران نهایی شناخته شده به عنوان کلاینت هایی در نظر گرفته شده است که درخواست هایی را به MS SQL Server نصب شده بر روی یک کامپیوتر خاص ارسال می کنند. سرور به محض پردازش داده ورودی که درخواست شده است، خروجی مطلوب را می دهد. این سرور به عنوان یک برنامه جداگانه در دسترس است و مسئول رسیدگی به تمام دستورالعمل ها، دستورات یا command های پایگاه داده است. موتور پایگاه داده SQL Server یا SQL Server Database Engine ، که ذخیره سازی، پردازش و امنیت داده ها را کنترل می کند، جزء اصلی MS SQL Server است.

SQL Server  به عنوان معماری Client-Server

معماری SQL Server

دیاگرام زیر نمای کلی معماری SQL Server را نشان می دهد:

معماری SQL Server

SQL Server روی معماری سرویس client-server کار می کند. از نمای ظاهری (front end) بسیار ساده به نظر می رسد، اما در داخل، چندین فرآیند در پس زمینه برای انجام یک درخواست اجرا می شوند. بر اساس معماری،SQL Server عمدتا دارای سه جزء اصلی است:

1- پروتکل های شبکه - Network Protocols (SNI- SQL Server Network Interface)

2- موتور پایگاه داده (Database Engine)

3- SQLOS

پروتکل شبکه (Network Protocol)

پروتکل شبکه مسئول اتصال کلاینت موتور پایگاه داده SQL Server است، برای اتصال کلاینت به موتور پایگاه داده SQL Server. همچنین Network Protocol یک پروتکل دیگر به نام VIA دارد. VIA یک پروتکل مبتنی بر سخت افزار است که اکنون توسط مایکروسافت منسوخ شده است. در آخرین SQL Server Configuration Manager، ما این پروتکل را نخواهیم دید.

Network Protocol از سه پروتکل اصلی برای اتصال به شبکه پشتیبانی می کند:

1- Shared Memory : ساده ترین پروتکلی است که نیازی به پیکربندی ندارد. این پروتکل روی همان سیستمی کار می کند که SQL Server در آن نصب شده است. هیچ ارتباطی بین مشتری و سرور وجود ندارد.

2- TCP/IP : این رایج ترین پروتکل ارتباطی client-server است. ما می توانیم از SQL Server Configuration Manager برای فعال کردن آن استفاده کنیم.

3- Named Pipes : عمدتاً برای اتصال LAN استفاده می شود و می توان آن را از طریق SQL Server Configuration Manager فعال کرد.

موتور پایگاه داده (Database Engine)

موتور پایگاه داده هسته اصلی معماری SQL Server است. Database Engine لایه دوم معماری است که اتصال بین user connections را با استفاده از پروتکل شبکه و سیستم عامل SQL server برای اجرای واقعی فراهم می کند. موتور پایگاه داده معماری های منطقی اشیاء پایگاه داده مانند جداول، views ، stored procedures و تریگرها را نشان می دهد که با معماری فیزیکی و موتور رابطه کار می کنند تا خواسته های مشتری را برآورده کنند.

موتور پایگاه داده از دو بخش تشکیل شده است:

1- Relational Engine : مسئول ارزیابی درخواست های کاربر و اجرای آن است. Relational Engine کارآمدترین روش برای اجرای یک پرس و جو (query) را تعیین می کند. همچنین به آن Query Processor نیز می گویند. پردازش پرس و جو، مدیریت حافظه، مدیریت task و thread، مدیریت بافر و پردازش پرس و جوی توزیع شده (distributed query processing)، همه وظایف اصلی انجام شده توسط این بخش هستند.

2- Storage Engine : معماری پایگاه داده فیزیکی و همچنین ذخیره سازی و بازیابی داده ها از سیستم های ذخیره سازی و مدیر بافر را نشان می دهد.

SQL OS

SQL OS برای اولین بار در SQL 2005 استفاده شد که قبلاً فقط برای برنامه های کوچک و متوسط در نظر گرفته می شد. مایکروسافت، SQL Server را در SQL 2005 ارتقا می دهد تا پایگاه دادهenterprise پیشرفته را در خود جای دهد. SQL OS لایه ای است که بین موتور پایگاه داده و سیستم عامل ویندوز قرار دارد. همچنین بسیاری از خدمات سیستم عامل توسط SQLOS مدیریت می شوند، از جمله مدیریت حافظه و I/O، زمان بندی، threading ، مدیریت استثنا و همگام سازی (synchronization).

سرویس ها و ابزارهای SQL Server

مدیریت داده و ابزار هوش تجاری (BI) در MS SQL Server گنجانده شده است که در ادامه به آنها می پردازیم.

SQL Server شامل ابزارها و سرویس های زیر برای مدیریت داده است:

(SSIS) SQL Server Integration Services : این ابزار انواع داده های مختلف را از طریق صادرات، واردات، تبدیل و بارگذاری از یک منبع به منبع دیگر منتقل می کند. SSIS داده های خام را به اطلاعاتی تبدیل می کند که در آینده می توان از آنها استفاده کرد.

SQL Server Data Quality Services (DQS) : یک محصول با کیفیت داده مبتنی بر دانش ایجاد می کند و از آن برای انجام تصحیح، غنی سازی، استانداردسازی و de-duplication داده ها استفاده می کند. ما همچنین می توانیم از DQS برای پاکسازی داده ها با خدمات داده مرجع مبتنی بر cloud استفاده کنیم.

SQL Server Master Data Services (MDS) : برای مدیریت مجموعه اصلی داده های سازمان استفاده می شود. MDS داده ها را در مدل ها سازماندهی می کند، قوانینی را برای به روز رسانی داده ها ایجاد می کند و کنترل می کند که چه کسی این داده ها را به روز می کند.

SQL Server Data Tool (SSDT) : یک ابزار طراحی و توسعه پایگاه داده است.

(SSMS) SQL Server Management Studio : این ابزار به ما امکان مدیریت، استقرار و نظارت بر پایگاه داده های SQL Server را می دهد.

SQL Server شامل ابزارها و سرویس های زیر برای تجزیه و تحلیل داده ها است:

SQL Server Analysis Services (SSAS) : این ابزار در موتور داده های تحلیلی پشتیبانی تصمیم و تجزیه و تحلیل تجاری استفاده می شود. SSAS برای تجزیه و تحلیل داده های عمیق تر و سریع تر و داده کاوی طراحی شده است و همچنین دارای قابلیت یادگیری ماشین (machine learning) است. زبان R و Python با SQL Server برای تجزیه و تحلیل پیشرفته یکپارچه شده اند.

SQL Server Reporting Services (SSRS) : دارای قابلیت تصمیم گیری و همچنین مجموعه ای از ابزارها و خدمات برای ایجاد، استقرار و مدیریت گزارشات است. Hadoop با این ابزار یکپارچه شده است.

SQL Server همچنین دارای اجزای ضروری زیر است:

SQL Server : ما را قادر می سازد تا نمونه MS SQL Server را شروع، متوقف، مکث و ادامه دهیم.

SQL Server Agent : مانند زمانبند وظایف (task scheduler) در سیستم کامپیوتری کار می کند. هر زمان که نیاز داشته باشیم می توانیم از آن استفاده کنیم.

SQL Server Browser : درخواست کاربر را دریافت کرده و به SQL Server instance مناسب متصل می شود.

SQL Server Full-Text Search : Full-Text Search تمام کلمات کلیدی سند را که ممکن است دقیقاً با معیارهای جستجو مطابقت داشته باشند یا نباشند جستجو می کند. کاربر را قادر می سازد تا پرس و جوهای full-text را بر اساس داده های کاراکتر در جداول اجرا کند.

SQL Server VSS Writer : زمانی که SQL Server اجرا نمی شود برای پشتیبان گیری و بازیابی فایل های داده استفاده می شود.

SQL Server Instances

یک instance یا نمونه همان نصب SQL Server است. ما می توانیم چندین instance را روی یک ماشین خاص نصب کنیم، اما تنها یکی می تواند پیش فرض باشد. instance یک کپی دقیق از فایل های سرور، پایگاه داده ها و اعتبارنامه های امنیتی است.

SQL Server به دو نوع تقسیم می شود:

Primary Instances : به دو صورت می توانیم به نمونه اصلی (Primary Instance) دسترسی پیدا کنیم. اولی با استفاده از نام سرور و دومی آدرس IP آن است که همیشه منحصر به فرد است.

Named Instances : می توانیم با اضافه کردن بک اسلش و نام instance به آن دسترسی پیدا کنیم.

به عنوان مثال، فرض کنید می خواهیم به یک instance با نام xxx در سرور محلی متصل شویم، باید از 127.0.0.1\xxx استفاده کنیم. در سروری که از SQL Server 2005 یا بالاتر پشتیبانی می کند، می توانیم تا 50 instance را همزمان اجرا کنیم.

مزایای SQL Server Instances

مزایای نمونه SQL Server به شرح زیر است:

1- نصب نسخه های مختلف بر روی یک دستگاه

این قابلیت به ما امکان می دهد چندین نسخه را روی یک رایانه نصب کنیم که هر کدام مستقل از دیگران کار می کنند.

2- کاهش هزینه

این به کاهش هزینه های عملیاتی SQL Server کمک می کند. ما می توانیم سرویس های مختلفی را از instance های مختلف دریافت کنیم، بنابراین مجبور نیستیم برای هر چیزی یک license بخریم.

3- حفظ و نگهداری محیط های تولید، توسعه و آزمایش به طور جداگانه

مزیت اصلی اجرای چندین نسخه از SQL Server بر روی یک کامپیوتر این است که می توانید محیط های توسعه، خروجی و آزمایش خود را به طور جداگانه تشخیص دهید.

4- کاهش مشکلات موقت پایگاه داده

اگر همه سرویس ها را بر روی یک SQL Server instance اجرا کنیم، خطر بروز مشکل بالاست. اگر چنین سرویس هایی در instance های مختلف اجرا شوند، می توانیم از بروز مشکلات جلوگیری کنیم.

5- امتیازات امنیتی مجزا

هنگامی که نمونه های مختلف SQL Server سرویس های مختلفی را اجرا می کنند، به راحتی می توان بر روی ایمن سازی نمونه ای متمرکز شد که حساس ترین سرویس را اجرا می کند.

6- حفظ و نگهداری standby server

اگر SQL Server instance از کار بیفتد، می تواند منجر به قطع سرویس شود. این اهمیت وجود یک سرور پشتیبان در دسترس در صورت خرابی سرور اصلی را نشان می دهد. این ویژگی انجام آن را با نمونه های SQL Server ساده می کند.

پیش نیازهای SQL Server

قبل از یادگیری SQL Server، باید دانش اولیه Basic SQL و MySQL را داشته باشید.

مخاطبین SQL Server

آموزش SQL Server ما برای کمک به مبتدیان و حرفه ای ها طراحی شده است.

آموزش Sql Server Sql Versions نسخه های Sql Server Sql Server Instances