مقدمه

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

SQL چیست؟

SQL که مخفف عبارت Structured Query Language (SQL جیست؟) به معنای “زبان ساختاریافته جستار” یا “زبان پرس ‌و جوی ساختار یافته” می ‌باشد؛ یک زبان استاندارد برای دسترسی و کار با پایگاه‌ داده (database) می ‌باشد. به زبان ساده‌تر SQL نوعی زبان برنامه ‌نویسی است که توانایی کار با داده ‌ها و اطلاعات را به شخص برنامه ‌نویس می‌ دهد. و از ابزارهای مهم در زمینه ذخیره سازی اطلاعات در سایت، طراحی بک اند (Backend) و طراحی سمت سرور می‌ باشد.
سیستم SQL از عملیات مختلف تجاری، عملیات تحلیل داده و همچنین پردازش معاملات پشتیبانی می ‌کند. با اینکه هر دیتابیسی محلی برای ذخیره اطلاعات است اما SQL Server علاوه بر ذخیره اطلاعات، امکان مدیریت آن ها را نیز فراهم می کند، و در عین کم هزینه بودن بسیار در دسترس و قابل توسعه می ‌باشد.

کارهایی که می ‌توان با SQL انجام داد:

  • پرس و جوها (Query) بروی دیتابیس
  • بازگردانی داده ‎‌ها از دیتابیس
  • حدف داده ‌ها از دیتابیس
  • درج رکوردها در دیتابیس
  • به روز رسانی رکوردها در دیتابیس
  • ایجاد دیتا بیس جدید
  • ایجاد جدول ‎‌های جدید در دیتابیس
  • ایجاد توابع ذخیره شده (stored procedures) در دیتابیس
  • ایجاد نماها View) ها( در دیتابیس
  • قرار دادن سطح دسترسی بر روی جداول (tables)، توابع (procedures) و نماها (views)

نرم افزار SQL server و کاربرد آن

SQL server یک بانک اطلاعاتی از نوع پایگاه ‌های داده‌ ای Relational Database است که توسط شرکت مایکروسافت ارائه شده است. این پایگاه‌ه داده‌ اطلاعات را بر اساس مقدارهای مشترک و در جدول های مرتبط سازماندهی می کنند. و این امکان را به کاربر می دهند تا بتواند یک جدول کاملاً جدید از داده ها را ایجاد نماید و آن را در چند جدول دیگر مجدداً بازیابی کند. در نتیجه این امر باعث درک و بینش بهتر نسبت به روابط تمام داده های موجود در پایگاه داده خواهد شد.
وظیفه اصلی نرم افزار SQL server ذخیره و بازیابی اطلاعات بر اساس درخواست نرم افزارهای دیگر می ‌باشد. دارای نسخه ‌های متنوع و متناسب با مخاطبان و محیط‌های کاری مختلفی است که در ادامه به معرفی این نسخه ‌ها خواهیم پرداخت.
مایکروسافت اس کیو ال سرور کاربردهای زیادی در کسب و کارها دارد. از جمله کاربردهای آن می‌ توان به ایجاد پایگاه داده برای ذخیره و مدیریت اطلاعات، نگهداری اطلاعات شخصی و کارت های بانکی، امکان به اشتراک گذاری فایل های دیتا در شبکه و امکان اجرای پردازش های بزرگتر در زمان کمتر اشاره کرد. همچنین امکان به اشتراک گذاری پرونده ‌های داده توسط کامپیوترها در یک شبکه را فراهم می ‌کند‌، و این عاملی است که باعث می ‌شود بتوان به این سرور اعتماد کرد. علاوه بر این برای افزایش سرعت پردازش داده‌ ها نیز می‌ توان از آن استفاده کرد.

قابلیت دسترسی هزاران کاربر بطور همزمان به بانک اطلاعاتی، خود سازگاری، کار با بانک های اطلاعاتی حجیم، پشتیبانی از حجم بالایی از حافظه در سرور، استفاده از چندین پردازنده به صورت موازی و پشتیبانی از لایه ها و سوکت های امنیتی (Secure Sockets Layer) یا اس‌اس‌ال (SSL)، خصوصاً جهت استفاده در وب از دیگر قابلیت‌ های آن می‌ باشد.

اجزاء SQL server

مایکروسافت تمامی خدمات و ابزارهای مدیریت داده و هوش کسب و کار (BI) را یک جا و در نرم افزار SQL Server جای داده است.

اجزای اصلی این سیستم عبارتند از:

  •  موتور پایگاه داده (Database Engine)
    موتور پایگاه داده اصلی ‌ترین بخش اس کیو ال سرور می‌ باشد و به دلیل داشتن یک موتور رابطه ‌ای، وظیفه بررسی کوئری و انجام عملیات بر روی آنها را دارد.
    موتور رابطه ای (Relational Engine) و موتور ذخیره سازی(Storage Engine) از نواع موتورهای پایگاه داده هستند. پردازش کوئری‌ ها، مدیریت حافظه، مدیریت ترد و تسک و مدیریت بافر و توزیع پردازش کوئری از وظایف موتور رابطه‌ ای و ذخیره یا بازیابی اطلاعات روی دیسک یا SAN از وظایف موتور ذخیره سازی است.
  • سیستم‌عامل SQL Server (SQLOS)
    SQLOS، پایین تر از موتور رابطه ای و موتور ذخیره‌ سازی قرار می‌ گیرد و حافظه، مدیریت، همگام سازی و خدمات دیگراز جمله خدماتی است که توسط این سیستم عامل انجام می ‌شود.

 

از دیگر اجزای آن می ‌توان به موارد زیر اشاره کرد:

  •  SQL Server Agent
  • Server Browser SQL
  •  SQL Server VSS Writer
  •  جستجوی متن کامل سرور ( (SQL Server Full-Text Search
  •  تجزیه و تحلیل سرور (SSAS) (SQL Server Analysis Services)
  •  گزارش دهی سرور (SSRS) (SQL Server Reporting Services)
  •  یکپارچه سازی سرور (SSIS) (SQL Server Integration Services)
  •  مدیریت‌، استقرار و نظارت سرور ( SSMS) (SQL Server Management Studio)

انواع نسخه‌ های SQL server

از آغاز کار سیستم مدیریت پایگاه داده ‌ای، انواع مختلفی از نسخه ‌های اس‌کیو‌ال و ویرایش ‌های آن وارد بازار شده ‌اند. نسخه‎‌ های اولیه این سیستم صرفا برای کارهای داخلی تولید شده بودند. مایکروسافت از سال 1995 میلادی تا 2019 دوازده نسخه مختلف را جهت ارتقا و بهبود مشکلات و حفره های امنیتی این سیستم وارد بازار کرده است.

این نسخه ‌ها عبارتند از:

  •  SQL Server 6.0
  •  SQL Server 6.5
  •  SQL Server 7.0
  •  SQL Server 2000
  •  SQL Server 2005
  •  2008 SQL Server
  •  SQL Server 2008 R2
  •  SQL Server 2012
  •  SQL Server 2014
  •  SQL Server 2016
  •  SQL Server 2017
  •  SQL Server 2019

از SQL Server 2016 به بعد، این محصول فقط در پردازنده های x64 پشتیبانی می شود.
نسخه فعلی مایکروسافت SQL Server 2019 است که در تاریخ 4 نوامبر 2019 منتشر شده است. و آخرین نسخه RTM آن 15.0.2000.5 است.
این نسخه ‌ها بر اساس عملکرد، در دسترس بودن، امنیت، آمادگی برای ابر( cloud)، ویژگی‌ های مدیریت و برنامه نویسی و هوش تجاری و تحلیل متفاوت می ‌باشند.

ویرایش‌ های مختلف SQL Server

ویرایش ‌های مختلف اس کیو ال سرور امکانات مختلفی را ارائه می ‌دهند و دارای قیمت ‌های متفاوتی هستند. این ویرایش‌ ها عبارتند از:

  • Enterprise
  •  Standard
  •  Workgroup
  • Web
  •  Developer
  •  Express
  •  Compact
  • Datacenter
  •  Business Intelligence

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

مزایا و معایب SQL Server

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

طنحوه ارتقا و روش ‌های نصب SQL

ارتقاء نسخه های SQL باید به صورت پلکانی انجام شود به عنوان مثال اگر بخواهید نسخه 2012 را به نسخه 2019 ارتقا دهید باید ابتدا به نسخه 2014 سپس به نسخه 2016 و 2017 و در نهایت به نسخه 2019 ارتقا دهید.

به طور کلی برای نصب اس کیو ال دو راه کلی وجود دارد:

1-  نصب Instance جدید
در این روش یک اینستنس جدید نصب می‌ شود که مشابه جابه جا کردن سرور می ‌باشد. در این حالت کل سرویس مانند Login ها و Link ها و هر چیزی که در سطح Instance وجود دارد، روی Instance جدید نصب می ‌شود. این کار علاوه بر نیاز داشتن به Down Time، کمی دردسر هم دارد.

2- به روز رسانی Instance موجود
به روز رسانی اینستنس موجود راحت ‌تر از نصب آن می ‌باشد. در این حالت می ‌توانید Instance ای که در حال حاضر نصب هست را به نسخه جدیدتر ارتقا دهید، بدون اینکه بانک‌ ها و Login های داخل SQL دچار مشکل شوند.
پیشنهاد می ‌شود یک نسخه از دیتابیس ها را روی محیط تستی بازیابی کنید و بعد از تست صحت عملکرد برنامه و کدها روی این نسخه با خیال راحت Instance را به روزرسانی کنید. همانگونه که قبلاً اشاره شد نسخه به نسخه Update انجام شود.

روش دیگری که می ‌توانید برای ارتقاء به نسخه بالاتر SQL انجام دهید به این صورت است که ابتدا از Database مورد نظرتان یک اسکریپت تهیه کنید که شامل schema خود بانک و اطلاعات جداول است و بعد از تغییر سرور و نصب SQL اسکریپت مورد نظر را اجرا کنید تا بانک ایجاد شود.
البته می تونید ابتدا SQL Server را روی همان نسخه آپدیت کنید و سپس ویندوز را به روز رسانی کنید که مشکلی ایجاد نشود.
به عنوان مثال فرض کنید می‌ خواهیم از SQL Server 2014 به SQL Server 2016 مهاجرت کنیم،

  •  ابتدا SQL Server 2016 را نصب می ‌کنیم. لازم هست ابتدا از management status 2016 به engine نسخه پایین‌ تر connect شویم.
  •  سپس وارد instance 2014 شده و connect می ‌شویم.
  •  بانک مورد نظر را انتخاب کرده و به 2016 منتقل می ‌کنیم. برای این کار روی آن راست کلیک کرده و generate strict را انتخاب می ‌کنیم و گزینه Next را انتخاب می‌ کنیم.
  •  از گزینه advance نسخه مقصد را نشان می‌ کنیم.
  •  گزینه‌ های Next را می‌زنیم تا به Finish برسیم.
  •  وارد SQL Server 2016 می‌ شویم و هم نام این بانک اطلاعاتی یک بانک می ‌سازیم.

توجه داشته باشید اگر جحم بانک بزرگ است بهتر است حجم منطقی را انمتخاب کنیم تا در انتخاب اطلاعات با مشکل و کمبود فضا مواجه نشوید.