sql server چیست؟ درباره نرم افزار اس کیو ال سرور چه میدانید؟
sql server چیست؟ شاید بارها کلمه اس کیو ال سرور را شنیده باشید ولی به دلیل تشابه اسمی، تفاوت این سیستم مدیریت پایگاه داده با بقیه data base ها را ندانید.
SQL Server یک سیستم مدیریت پایگاه داده رابطه ای از مایکروسافت است. این سیستم به منظور مدیریت و ذخیره اطلاعات طراحی و ساخته شده است. این سیستم از انواع مختلفی عملیات مانند عملیات اطلاعاتی تجاری، عملیات تحلیلی و پردازش معاملات پشتیبانی میکند. اطلاعات ذخیره شده در سرور، در پایگاه داده رابطه ای ذخیره میشود. با این حال، از آنجا که این سیستم بسیار بیشتر از یک بانک اطلاعاتی است، از سیستم مدیریتی نیز تشکیل شده است. SQL مخفف Structured Query Language است، یک زبان رایانه ای که سرور را مدیریت و اداره میکند. نسخههای بسیاری از سرور SQL وجود دارد که هر نسخه بعدی مدل بهبود یافته ای از خودش است.
SQL Server یک سیستم مدیریت دادهی رابطهای (relational database management system, یا RDBMS ) که است که توسط شرکت مایکروسافت تولید و به بازارهای جهانی عرضه شده است.
مثل دیگر نرم افزارهای RDBMS، اس کیو ال سرور بر اساس SQL ساخته شده است. یک زبان برنامه نویسی استاندارد که برای کار کردن با سیستمهای مدیریت دادهی رابطه ای ساخته شده است. SQL سرور کاملا به Transact-SQL یا همان T-SQL رابطه ای است ای مدل پیاده سازی مایکروسافت از زبان اس کیو ال است که برای استفاده بهتر از آن یک سری ساختارهای اختصاصی به آن اضافه شده است.
الان بیش از بیست سال است که اس کیو ال سرور صرفا بر روی سیستمها ویندوز کار میکند.از سال ۲۰۱۶ شرکت مایکروسافت اجازه داد که بر روی سیستم عاملهای لینوکس هم کار کند. SQL Server 2017 رسما از سال ۲۰۱۶ به طور کلی و بر روی همه سیستمهای عامل ویندوز و لینوکس قابل دسترسی شد.
نحوه ایجاد Link Server در SQL Server
برخی مواقع شما نیاز دارید تا یک Query را بر روی یک سرور اجرا نمایید و این Query برخی اطلاعات خود را از سرور دیگری دریافت مینماید. در این صورت باید یک پل ارتباطی بین سرور جاری و سرور دیگر وجود داشته باشد تا بتوانید در یک Query به سرور دیگری متصل شوید و اطلاعاتی را دریافت نمایید. در حالت عادی یک Query فقط میتواند بر روی سرور جاری اجرا شده و اطلاعاتی را بازیابی نماید.
اما اگر همین Query بخواهد به سرور دیگری متصل شود، آن سرور باید در سرور جاری بصورت Linked Server تعریف شده باشد.از اسکیوال سرور امکان این را داریم که با کمک آبجکتی به نام Link Server به Database Engine های مختلفی وصل شده و اطلاعات مورد نیاز خود را واکشی نماییم.
فرض کنید از یکی از واحدهای سازمانی درخواستی برای شما از طریق اتوماسیون شرکت ارسال می گردد . خواهشمند است دستور فرمایید اقدامات لازم به منظور ایجاد Linked Server از سرور 192.168.20.90 (دیتابیس INV) به سرور 192.168.20.95 به منظور بروز رسانی اطلاعات پرداختی، در دیتابیس CashPayment انجام پذیرد.
دقت کنید که نام دیتابیس ما در سرور اول INV می باشد.
مراحل مربوط به ایجاد Link Server
ابتدا در سرور مقصد (192.168.20.95) یک لاگین (به طور مثال LsINVRE) ایجاد می نماییم
تذکر : هر سازمانی قواعد نامگذاری مخصوص به خود را دارد . به طور مثال یکی از قواعد نامگذاری جهت لاگین های Link Server به صورت زیر می باشد. به عنوان مثال دو حرف Ls را در ابتدا آورده (جهت Link Server) و سپس نام بانک اطلاعاتی مبداء(یعنی دیتابیس Login) و سپس عملیاتی که کاربر درخواست کننده می خواهد انجام دهد. یعنی اگر فقط اطلاعات را می خواهد ببیند یعنی حرف R (مخفف Read) را در انتها اضافه می نماییم در این صورت LsINVR را خواهیم داشت.
به جدول زیر که بیان کننده قواعد نامگذاری Link Server می باشد ، دقت فرمایید.
نحوه ایجاد لاگین در سرور مقصد
ابتدا مطابق شکل زیر بر روی آیتم Logins کلیک راست زده و گزینه New Login را کلیک نمایید.
در پنجره باز شده مطابق شکل زیر، یک Login با نام LsINVRE در سرور مقصد (یعنی سرور 20.95) ایجاد می نماییم.
سپس به دیتابیس ( و یا دیتابیس هایی که لازم است) در سرور مقصد یعنی دیتابیس CashPayment (در سرور 20.95) دسترسی لازم (در اینجا db_datareader و اجرای SPها) را ، مطابق شکل زیر می دهیم.
قدم دوم ایجاد یک Link Server در سرور مبداء (20.90) می باشد.
برای ایجاد یک Link Server جدید در قسمت Server Objects بر روی Link Servers کلیک راست زده و گزینه New Link Server را مطابق شکل زیر انتخاب می نماییم.
در پنجره باز شده و سپس در قسمت General مطابق شکل زیر اطلاعات را کامل می نماییم
- در قسمت Link Server ابتدا یک نام مناسب وارد می نماییم . بهتر است ابتدا نام دیتابیس مبداء و سپس کلمه To و سپس نام دیتابیس مقصد را وارد می نماییم (سه کلمه توسط حرف underline از هم جدا می شوند).INV_TO_CASHPAYMENT
- در قسمت Product name نام دیتابیس مقصد را وارد می نماییم (البته پر کردن این قسمت اختیاری است می توانید چیزی در این جا وارد نکنید یعنی نام CASHPAYMENT).
- در قسمت Data Source شماره IP مربوط به سرور مقصد را وارد می نماییم.
- در قسمت Catalog مجددا نام دیتابیس مقصد را وارد می نماییم(یعنی نام دیتابیس CASHPAYMENT).
قسمت Security
مطابق شکل زیر Radio Button مربوط به Be made using this security context را انتخاب نموده و سپس در قسمت Remote login ، نام لاگینی را که در سرور مقصد(یعنی همان LsINVRE ساخته بودیم را وارد و در قسمت With Password رمز همان لاگین را وارد می نماییم.
در قسمت Server Option باید تنظیمات زیر را انجام دهیم
ابتدا گزینه RPC را به True تغییر می دهیم و سپس گزینه RPC Out را مطابق شکل زیر تغییر می دهیم .
- تذکر : لازم به ذکر است در صورت مشاهده پیغام زیر دو گزینه فوق را True می نماییم(به عبارت کلی تر اینکه هر گاه کاربر قصد اجرای Stored Procedureها را داشته باشد در این صورت باید دو گزینه فوق True شوند).
- تذکر : لازم به ذکر است که اگر فقط گزینه RPC Out را به True تغییر دهیم دیگر نیازی به تغییر گزینه RPC نداریم.
- تذکر : برای اتصال از سرور اول به سرور دوم و استفاده از لینک سرور باید ساختار زیر را رعایت نماییم :
- تذکر : برای بدست آوردن لیست لینک سرورها و لاگین ها مربوط به آنها می توانیم از دو کوئری زیر استفاده نماییم :
- Select * from Sys.Servers
- Select * from Linked_logins
- تذکر : تا آنجایی که می توانید در محیط های عملیاتی که به شدت Workload بالایی دارند از Link Server استفاده نکنید و از روشهای دیگر به طور مثال SSIS استفاده نمایید.
کاربرد SQL Server در تجارت و بازار
SQL سرور دارای استفادههای فراوان و گسترده ای در صنعت و تجارت است. اولین و کاربردیترین آنها این است که دیتابیسها یا پایگاههای داده برای ذخیره سازی اطلاعات استفاده میشوند و این کاری است که ۹۹ درصد کسب و کارهایی که بر اساس سیستمهای مدرن و تکنولوژی به روز کار میکنند انجام میدهند.نرم افزار sql server یکی از بهترینها برای انجام این کار است.
همچنین مشاغل دارای اطلاعات حساس مشتری مانند مشخصات شخصی، اطلاعات کارت اعتباری و سایر اطلاعات محرمانه از امنیت بسیار بالایی که این سرور ارائه میدهد بهره مند میشوند. میتوان گفت در بسیاری از سازمانهای دولتی و حتی شرکتهای خصوصی هم تمامی اطلاعات مهم را در این پایگاه داده ذخیره کرده و به عنوانی آرشیوی در دسترس هر زمان که نیاز به آن داشته باشند به آن مراجعه میکنند.
این سیستم همچنین امکان به اشتراک گذاری پروندههای داده توسط رایانهها در یک شبکه را فراهم میکند، این عاملی است که باعث میشود بتوان به این سرور اعتماد کرد. همچنین ازاسکیوال سرور برای افزایش سرعت پردازش دادهها استفاده میشود.
این سرور طوری طراحی شده که باعث میشود عملیاتی که در حال عادی زمان زیادی میبرد و بسیار بزرگ است به راحتی و با سرعت انجام پذیرد و همین امر حاکی از این است که استفاده از این سرور برای کسب و کارها بسیار سود آور خواهد بود و در عین کم هزینه بودن بسیار در دسترس و قابل توسعه است.
همچنین به دلیل این که اطلاعات به صورت مداوم و به شکلی بسیار منظم در حال ذخیره شدن در دیتابیس یا پایگاه داده است بیزینسهای مختلف همیشه یک بکاپ یا پشتیبان از اطلاعات خود دارند تا با مشکلات ناگهانی مواجه نشوند و هر زمان که خواستند بتوانند آنها را بازیابی کنند که این خود یک مزیت فوقالعاده برای کسب و کارهای مدرنی است که نقش مدیریت اطلاعات در آنها بسیار کلیدی است.
بهترین RDBMS دنیا
طبق آماری که سایت TPC.orgمشاهده میشود و همچنینطبق آماری که موسسه گارتنر (یک موسسه تحقیقاتی آمریکایی بوده که یکی از وظایف این شرکت طبقه بندی RDBMS های مختلف از لحاظ امنیت ، FriendlyUser بودن، قیمت نرم افزار و غیره می باشد )ارائه داده است ، SQL Server بهترین RDBMS در بین RDBMS های موجوددر دنیامی باشد.
معماری ساختار SQL سرور
SQL سرور از دو کامپوننت یا جزء اصلی تشکیل شده است:
- موتور دیتابیس
- SQLOS
موتور دیتابیس چه کار میکند؟
کامپوننت اصلی SQL Server موتور دیتابیس آن است. موتور دیتابیس دارای یک موتور رابطه ای است که کوئریها را بررسی کرده و بر رویشان عملیات انجام میدهد. موتور ذخیره سازیای که فایلها، صفحات و فهرستهای موجود در دیتابیس را مدیریت میکند. آبجکتهای دیتابیس مثل مراحل ذخیره شده، نمایشها و تریگرها در موتور دیتابیس ساخته و اجرا میشوند.
موتور رابطه ای (Relational Engine)
موتور رابطهای شامل کامپوننتهایی میشود که بهترین راه حل برای اجرای کوئریها را مشخص میکنند. موتور رابطه ای همچنین با نام پردازنده کوئری(query processor) هم شناخته میشود. موتور رابطهای اطلاعات را از موتور ذخیره سازی بر اساس کوئریهای وارد شده میگیرد و خروجی را پردازش میکند. تعدادی از وظایف موتور رابطهای شامل اینها میشود:
- پردازش کوئریها
- مدیریت حافظه
- مدیریت ترد و تسک
- مدیریت بافر و توزیع پردازش کوئری
موتور ذخیره سازی(Storage Engine)
وظیفه موتور ذخیره سازی این است که اطلاعات را روی دیسک یا SAN ذخیره یا بازیابی کند.
SQLOS
پایین تر از موتور رابطه ای و موتور ذخیرهسازی سیستم عامل SQL یا (SQL Server Operating System / SQLOS) قرار دارد.SQLOS بسیاری از خدمات سیستم عامل مانند حافظه و مدیریت I / O را ارائه میدهد. سایر خدمات شامل مدیریت کردن اکسپشنها و همگام سازی است.
خدمات و ابزارهای SQL Server
مایکروسافت هر دو ابزار مدیریت دادهها و اطلاعات تجاری (BI) را به همراه SQL Server فراهم میکند. برای مدیریت دادهها SQL سرور دارای ابزار سرویس یکپارچه سازی اس کیو ال سرور (SQL Server Integration Service)، خدمات کیفیت دادههای سرور SQL و خدمات دیتای مستر سرور SQL است. برای توسعه بانکهای اطلاعاتی، اس کیو ال سرور ابزارهای SQL Server Data را فراهم میکند و برای مدیریت، استقرار و نظارت بر پایگاه دادهها اس کیو ال سرور دارای استودیوی مدیریت سرور SQL است.
ویرایش های (Edition ) مختلف اسکیوال سرور
ویرایشهای مختلفی از اسکیو ال سرور وجود دارد که امکانات مختلفی را ارائه میدهند و قیمتهای متفاوتی دارند. انتخاب ویرایش مناسب میتواند کار سختی باشد. انتخاب ویرایشهای مختلف به فاکتورهای مختلفی وابسته است. به میزان بودجهای که در اختیار دارید، نیازمندیهای شما و سخت افزار و نرم افزاری که استفاده میکنید وابسته است.
هر کدام از نسخه های اسکیوال سرور ویرایش های (Edition) مختلفی دارند که نسخه Enterprise کاملترین آنها می باشد. لازم به ذکر است که ویرایش Enterprise هم نوع است که نوع اول Enterprise Edition است که تا 40Core را پشتیبانی می کند و نوع دوم EditionEnterprise Core می باشد که تا 512عدد CPU Core را پشتیبانی می کند.
نسخههای سرور SQL
SQL Server چهار نسخه اصلی دارد که دارای خدمات و ابزارهای مختلف هستند. دو نسخه به صورت رایگان در دسترس است. راجع به این مباحث در ویدیو رایگان آموزش نصب sql server 2019 گفته شده است.
SQL Server Expression
نسخه توسعه دهنده SQL Server برای استفاده در توسعه و آزمایش دیتابیس است.SQL Server Expression برای بانکهای اطلاعاتی کوچک با اندازه حداکثر 10 گیگابایت ظرفیت ذخیره سازی دیسک.
Enterprise
برای برنامههای بزرگتر و مهمتر، SQL Server نسخه Enterprise را ارائه میدهد که شامل تمام ویژگیهای سرور SQL است.
Standard Edition
SQL Server Standard Edition دارای مجموعه ای از ویژگیهای جزئی از Enterprise Edition است و بر روی سرور یسته به تعداد هسته پردازنده و حافظه قابل تنظیم روی سرور محدودیتهایی دارد.