SQL SERVER از آغاز تاکنون

 

 

 

ما در عصری زندگی می‌کنیم که روزانه حجم عظیمی از داده‌ها تولید می‌شوند. به همین دلیل است که برای سازماندهی اطلاعات به یک پایگاه داده سرور SQL نیاز داریم تا کاربران بتوانند به راحتی به داده‌ها دسترسی داشته باشند. با این حال، برای دستیابی ساده و درست به داده‌ها، ابتدا باید پایگاه‌های داده را مدیریت کنیم. برای انجام این‌کار به ابزاری که سامانه مدیریت پایگاه داده نام دارد، نیاز داریم. یکی از معروف‌ترین گزینه‌ها در این زمینه Microsoft SQL Server است.



در این مقاله سعی می‌کنیم به نکات ظریف معماری SQL Server، چیستی و چرایی SQL Server، نحوه استفاده از MS SQL Server، نحوه تعامل با Windows SQL Server و مشکلات مرتبط با سرور SQL بپردازیم. ابتدا اجازه دهید کار را با اصول اولیه و تعاریف آغاز کنیم.
SQL Server چیست؟

SQL Server یک سیستم مدیریت پایگاه داده رابطه‌ای (RDBMS) است که توسط مایکروسافت توسعه یافته است. این ابزار به طور ویژه برای رقابت با پایگاه داده‌های MySQL و Oracle طراحی شده است. SQL Server از ANSI SQL، زبان استاندارد SQL (زبان جستجوی ساختاریافته) پشتیبانی می‌کند. با این حال، SQL Server با الهام‌گرفتن از زبان SQL، یک زبان مایکروسافتی به نام T-SQL (یا Transact-SQL) را به دنیای پایگاه‌های داده معرفی کرد.

سرورهای SQL ذخیره‌سازی داده‌ها با کارایی بالا را فراهم می‌کنند و مجموعه‌های عظیم داده‌ها را در هر رایانه متصل به شبکه مدیریت می‌کنند. تفاوت اصلی بین SQL Server و Windows SQL Server در کاربری آن‌ها خلاصه می‌شود. سرورهای SQL داده‌های خام را ذخیره می‌کنند، در حالی که سرورهای ویندوزی به کاربران اجازه می‌دهند داده‌های فرمت‌شده مانند صفحات گسترده، پروژه‌ها، تصاویر و اسناد ورد را ذخیره کنند.

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

سه مولفه اصلی معماری SQL Server عبارتند از لایه پروتکل، موتور رابطه‌ای و موتور ذخیره‌سازی.

    لایه پروتکل: این لایه از سه نوع معماری سرور سرویس‌گیرنده به اضافه یک استریم جریانی پشتیبانی می‌کند و قابلیت‌های زیر را ارائه می‌کند:
    حافظه اشتراکی: کلاینت و سرور SQL بر روی یک دستگاه اجرا می‌شوند و می‌توانند از طریق یک پروتکل حافظه مشترک با یکدیگر ارتباط برقرار کنند.
    TCP/IP: این پروتکل به کلاینت و سرور SQL اجازه می‌دهد تا اگر بر روی ماشین‌های جداگانه نصب شده‌اند و در فواصل دور از یکدیگر قرار دارند با یکدیگر در ارتباط باشند.
    Named Pipes:. این پروتکل به کلاینت و سرور SQL از طریق یک شبکه محلی (LAN) اجازه برقرار ارتباط می‌دهد.
    TDS: هر سه پروتکل از بسته‌های Tabular Data Stream استفاده می‌کنند. این بسته‌ها امکان انتقال داده‌ها از ماشین کلاینت به ماشین سرور را فراهم می‌کنند.

موتور رابطه‌ای

موتور رابطه‌ای که به آن پردازنده محاوره (Query Processor) نیز می‌گویند شامل مولفه‌های SQL Server است که دقیقاً مشخص می‌کند یک پرس و جو باید چه کاری انجام دهد و چگونه آن‌را به بهترین شکل اجرا کرد. موتور رابطه‌ای، پرس‌و‌جوهای کاربر را با درخواست داده از موتور ذخیره‌سازی و پردازش نتایج برگشتی اجرا می‌کند. موتور دارای سه مولفه اصلی زیر است:

    تجزیه کننده CMD: هدف اصلی تجزیه کننده CMD این است که پرس و جو را برای خطاهای معنایی و نحوی بررسی کند، سپس یک Query Tree ایجاد کند. تجزیه کننده اولین مؤلفه موتور رابطه‌ای است که داده‌های محاوره را دریافت می‌کند.
    بهینه‌‌ساز: بهینه‌ساز بر روی الگوریتم‌های جامع و اکتشافی داخلی کار می‌کند تا در نهایت زمان اجرای پرس و جو را به حداقل برساند و یک برنامه اجرایی ایجاد کند. دقت کنید که Optimizer ارزان‌ترین الگو و نه بهترین طرح را پیدا می کند.
    Query Executor: بر فرآیند ساخت منطق واکشی داده‌ها نظارت می‌کند. هنگامی که Executor داده‌ها را از Storage Engine دریافت می‌کند، نتیجه پردازشی را در لایه پروتکل منتشر می‌کند. پس از انتشار نتایج، داده‌های حاصل در اختیار کاربر نهایی قرار می‌گیرد.

موتور ذخیره‌سازی

موتور ذخیره‌سازی (Storage Engine) داده‌ها را در یک سیستم ذخیره‌سازی مانند SAN یا یک دیسک ذخیره می‌کند و در صورت نیاز آن‌ها را بازیابی می‌کند.

    File Types: موتور ذخیره‌سازی شامل سه نوع فایل است که عبارتند از فایل‌های اولیه، ثانویه و گزارش.
    Access Method: این مولفه رابط میان پرس‌و جو، مدیر بافر (buffer manager) و لاگ گزارش‌ها است.
    Buffer Manager: این مؤلفه عملکردهای اصلی میان سه ماژول زیر را مدیریت می‌کند:
    Plan Cache: مدیر بافر به دنبال برنامه اجرایی موجود ذخیره شده در Plan Cache می‌گردد.
    Data Parsing: در ادامه مدیر بافر از طریق ماژول تجزیه کننده داده‌ها و بافر دسترسی، اجازه می‌دهد به داده‌های مورد نیاز دسترسی پیدا کنید.
    Dirty Pages: این صفحات داده‌های منطقی پردازشی Transaction Manager را نگه می‌دارند.
    Transaction Manager: ماژول مدیر تراکنش زمانی فعال می‌شود که تراکنش‌های غیرانتخابی وجود داشته باشد و این تراکنش‌ها باید با Log and Lock Managers مدیریت شوند.

تاریخچه و نسخه‌های نسخه سرور SQL

SQL Server بیش از سه دهه از زمان عرضه این نسخه زمان سپری شده است.

    1989. مایکروسافت و Sybase نسخه 1.0 را منتشر کردند.
    1993. مایکروسافت و Sybase به همکاری خود پایان دادند، اما مایکروسافت حقوق SQL Server را حفظ کرد.
    1998. مایکروسافت SQL Server 7.0 را منتشر کرد که یک بازنویسی بزرگ بود.
    2000. مایکروسافت SQL Server 2000 را منتشر کرد.
    2005. مایکروسافت SQL Server 2005 را منتشر کرد.
    2008. مایکروسافت SQL Server 2008 را منتشر کرد.
     2010. مایکروسافت SQL Server 2008 R2 را منتشر کرد و خدمات جدید و سیستم مدیریت داده اصلی را به آن اضافه کرد.
    2012. مایکروسافت SQL Server 2012 را منتشر کرد.
    2014. مایکروسافت SQL Server 2014 را منتشر کرد.
    2016. مایکروسافت SQL Server 2016 را منتشر کرد.
    2017. مایکروسافت SQL Server 2017 را همراه با پشتیبانی از لینوکس منتشر کرد.
    2019. مایکروسافت SQL Server 2019 را همراه با پشتیبانی از کلاسترهای کلان داده‌ها معرفی کرد.

امروزه نسخه‌های زیر از نرم‌افزار SQL Server محبوب هستند:

    SQL Server Enterprise: طراحی شده برای عملیات تجاری سطح بالا، مقیاس بزرگ و حیاتی است که آنالیزهای پیشرفته، امنیت سطح بالا و قابلیت‌هایی در ارتباط با یادگیری ماشین ارائه می‌دهد.
    SQL Server Standard: بهترین و مناسب‌ترین گزینه برای برنامه‌های کاربردی سطح متوسط و داده‌ها است که شامل گزارش‌گیری و تجزیه و تحلیل اولیه است.
    SQL Server WEB: طراحی شده برای میزبانی وب و یک گزینه مقرون به صرفه بودن، مقیاس‌پذیر و همراه با قابلیت‌های مدیریتی موردنیاز برای مدیریت وب‌های کوچک تا بزرگ است.
    SQL Server Developer: مانند نسخه سازمانی است، اما برای محیط‌های غیر تولیدی طراحی شده و عمدتاً برای ساخت‌ها، آزمایش‌ها و دموها استفاده می‌شود.
    SQL Server Express: یک گزینه منبع باز و سطح میانی است که برای برنامه‌های کاربردی در مقیاس کوچک طراحی شده است.

MS SQL Server مبتنی بر معماری کلاینت‌سرور

کلاینت برنامه‌ای است که درخواست‌هایی را برای MS SQL Server ارسال می‌کند که باید روی یک ماشین خاص اجرا شوند. سرور ‌ی تواند داده‌های ورودی را بر اساس درخواست دریافتی پردازش کند. در نهایت، سرور داده‌های پردازش شده را به عنوان خروجی در اختیار کاربر قرار می‌دهد.

با این توصیف باید بگوییم که کلاینت طرف درخواست کننده است و سرور طرفی است که فرآیندی را آغاز می‌کند که در نهایت به آن درخواست پاسخ می‌دهد.
مولفه‌های معماری SQL Server

    MS SQL Server از یک سری خدمات و مولفه‌ها به شرح زیر تشکیل شده است:
    Database Engine: این مولفه وظیفه ذخیره‌سازی، ایمن‌سازی داده‌ها و پردازش سریع تراکنش‌ها را بر عهده دارد.
    SQL Server: این سرویس نمونه‌های (Instance) مایکروسافت SQL Server را شروع می‌کند، متوقف می‌کند، به حالت تعلیق درمی‌آورد و ادامه می‌دهد. نام اجرایی آن sqlservr.exe است.
    SQL Server Agent: این عامل نقش زمان‌بندی وظایف را بر عهده دارد و با هر رویداد یا بر حسب تقاضا، راه‌اندازی می‌شود. نام اجرایی آن sqlagent.exe است.
    SQL Server Browser: این وامش‌گر به درخواست‌های دریافتی گوش می‌دهد و آن‌ها را به نمونه مورد نیاز سرور SQL متصل می‌کند. نام اجرایی آن sqlbrowser.exe است.
    SQL Server Full-Text Search: این مولفه جستجو به کاربران اجازه می‌دهد تا پرس و جوهای متن کامل را روی داده‌های کاراکتری موجود در جداول SQL اجرا کنند. نام اجرایی آن fdlauncher.exe است.
    SQL Server VSS Writer: این مؤلفه امکان پشتیبان‌گیری و بازیابی فایل‌های داده در زمانی که سرور SQL در حال اجرا نیست را مدیریت می‌کند. نام اجرایی آن sqlwriter.exe است.
    SQL Server Analysis Services: این سرویس عملکردهای تجزیه و تحلیل داده، داده کاوی و یادگیری ماشین را ارائه می‌دهد. برنامه‌نویسان آر و پایتون می‌توانند از قابلیت‌هایی که این ماژول ارائه می‌کند برای تعامل با داده‌های میزبانی شده روی SQL Server استفاده کنند. نام اجرایی آن msmdsrv.exe است.
    SQL Server Reporting Services:  این سرویس ویژگی‌های گزارش‌دهی و قابلیت‌های تصمیم‌گیری از جمله یکپارچه‌سازی Hadoop را ارائه می‌دهد. نام اجرایی آن ReportingServicesService.exe است.
    SQL Server Integration Services:  این سرویس قابلیت‌های استخراج-تبدیل و بارگذاری انواع مختلف داده‌ها بین منابع را فراهم می‌کند. به‌طور خلاصه، اطلاعات خام را به اطلاعات مفید تبدیل می‌کند. نام اجرایی آن MsDtsSrvr.exe است.

تفکیک نمونه‌های سرور SQL و اهمیت آن‌ها

    SQL Server به کاربران امکان می‌دهد چندین سرویس را به طور همزمان اجرا کنند که هر کدام پایگاه داده، پورت‌ها، لاگین‌ها و موارد خاص خود را دارند. نمونه‌ها در دو نوع هستند: اولیه (Primary) و نامدار (named) هستند.
    سرویس اولیه (Primary) پیش‌فرض است، در حالی که سرویس‌های باقی‌مانده نام‌گذاری شده‌اند. کاربران یا از طریق آدرس آی‌پی یا با استفاده از نام سرور به سرویس اصلی دسترسی پیدا می‌کنند، در حالی که سرویس‌های نام‌گذاری شده نیاز به اضافه کردن یک بک اسلش و نام نمونه دارند.

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

شما می‌توانید نسخه‌های مختلف را روی یک ماشین نصب و اجرا کنید

    می‌توانید نسخه‌های مختلفی از SQL Server را روی یک دستگاه اجرا کنید تا هر نصب مستقل از بقیه کار می‌کند.

می‌توانید هزینه‌ها را کاهش دهید

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

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

    اگر نمونه‌های SQL Server زیادی روی یک ماشین دارید، می‌توانید نمونه‌های مختلفی را به وظایف توسعه، تولید و آزمایش اختصاص دهید.

می‌توانید مشکلات موقت پایگاه داده را کاهش دهید

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

می‌توانید مجوزها و دسترسی‌ها را از هم جدا کنید

    می‌توانید مقوله امنیت را به شکل جدی‌تری دنبال کنید و روی برخی از نمونه‌ها سرویس‌های حساس را اجرا کنید.

می‌توانید یک سرور آماده به کار داشته باشید

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

موارد استفاده SQL Server

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

    ایجاد پایگاه‌های داده
    نگهداری از پایگاه‌های داده
    تجزیه و تحلیل داده‌ها از طریق سرویس‌های تحلیل سرور (SSAS)
    ایجاد گزارش با SSRS سرنام SQL Server Reporting Services
    انجام عملیات ETL شامل (Extract، Transform و Load) با سرویس SSIS سرنام SQL Server Integration