11آموزش SQL

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

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

 ما در این سلسله مقالات قصد آموزش یکی از نرم افزارهای مدیریت پایگاه داده به نام

 SQL  Serverرا داریم.

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

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

نسخه های مختلفی از SQL ارائه شده که در حال حاضر آخرین نسخه آن 2012 می‌باشد.

متأسفانه در آموزش نرم افزار SQL بیشترین تکیه بر روی کدهای زبان SQL یا اصطلاحاً T_SQL می‌باشد. در صورتی که کد نویسی در SQL یکی از بخش‌های کار با نرم افزار است و برای بهره بردن از تمامی امکانات نرم افزار نیاز به دانش مدیریت پایگاه داده و استفاده از سایر بخش‌های نرم افزار برای بهبود در سرعت بهره برداری از پایگاه داده و همچنین امکاناتی برای حفظ امنیت و استفاده از پایگاه داده در شبکه می‌باشد.

ما در این دوره آموزشی تلاش کردیم که مباحث مربوط به مدیریت پایگاه داده را پر رنگ‌تر مطرح کرده و به صورت کاربردی به شرح این مباحث بپردازیم.

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

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

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

 

با توجه به موارد ذکر شده، نرم افزارهای مدیریت پایگاه داده به دو دسته کلی نرم افزارهای مدیریت پایگاه داده Desktop و Client/Server تقسیم می‌شود.

 

به عنوان مثال نرم افزار Access یکی از نرم افزارهای مدیریت پایگاه داده Desktop می‌باشد که اطلاعات ذخیره شده در پایگاه داده در یک فایل ذخیره می‌شود و قابلیت قرار دادن نرم افزار و اطلاعات پایگاه داده در شبکه و دسترسی کاربران دیگر به اطلاعات مقدور نمی‌باشد.

معمولاً نرم افزارهای مدیریت پایگاه داده Desktop توان پردازشی بالایی نداشته و به صورت محدود استفاده می‌شود.

البته می‌توان فایل مربوط به پایگاه داده را در شبکه به صورت Share قرار داد تا دیگر کاربران نیز به فایل پایگاه داده دسترسی داشته باشند ولی در صورتی که دسترسی به فایلِ پایگاه داده را به این صورت به چند کاربر دهیم، احتمال خراب شدن فایل و همچنین دسترسی همه افراد به تمام بخش‌های پایگاه داده وجود دارد که این عوامل موجب استفاده نکردن از این‌گونه نرم افزارها به صورت پایگاه داده شبکه ای می‌باشد.

 

نرم افزار SQL Server یکی از نرم افزارهای مدیریت پایگاه داده به صورت Client/Server می‌باشد که مشکلات نرم افزارهای مدیریت پایگاه داده Desktop در حالت قرار گرفتن در شبکه را نداشته و بجای تولید یک فایل برای پایگاه داده و به اشتراک گذاشتن فایل در سیستم‌های کاربران، به صورت Service در شبکه عمل کرده و امکانات بسیاری برای تعریف سطوح دسترسی برای افراد مختلف و حفظ امنیت در شبکه را فراهم می‌کند.

اما در دسته نرم افزارهای مدیریت پایگاه داده Client/Server نرم افزارهای دیگری از جمله نرم افزارهای Oracle، 2DB، MYSQL وجود دارد.

هر یک از نرم افزارهای مدیریت پایگاه داده دارای ویژگی‌ها و نقص‌هایی می‌باشند ولی به طور کل می‌توان DB2 که توسط شرکت IBM ساخته شده را بهترین نرم افزار مدیریت پایگاه داده معرفی کرد.

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

ولی برای استفاده معمولی و تعداد کاربران محدود تفاوت زیادی بین این نرم افزارها وجود ندارد.

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

تنها نرم افزار SQL Server می‌تواند به این اطلاعات دسترسی داشته باشد و این فایل توسط نرم افزارهای دیگر قابل دسترسی نمی‌باشد.

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

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

در نرم افزارهای client/server، سرور وظیفه اصلی پردازش اطلاعات را بر عهده دارد و برای بهتر کار کردن سیستم باید سرور از لحاظ سخت افزاری بسیار قوی باشد.

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

در بخش بعدی، آموزش نرم افزار  SQL Server را با نصب نرم افزار ادامه می‌دهیم.

آموزش SQL، بخش دوم

امتیاز کاربران

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

 به طور عمده نرم افزار SQL SERVER  دارای دو نسخه 32 بیت و 64 بیتی می‌باشد.

به طور کلی نرم افزارهای 32 بیتی حداکثر از 4GB ،حافظه Ram پشتیبانی می‌کنند ولی نرم افزارهای 64 بیتی قابلیت پشتیبانی کردن تا 2 Tra از حافظه Ram را نیز دارند.

در نرم افزارهای مدیریت پایگاه داده، مقدار Ram از اهمیت زیادی برخوردار است و نسخه‌ی 64 بیتی نرم افزارها نسبت به نسخه 32 بیتی آن‌ها برتری محسوسی در انجام پردازش‌ها دارد.

در تقسیم بندی دیگر نرم افزار SQL  SERVER  در دو نسخه Standard و Enterprise ارائه می‌شود.

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

در این قسمت، ما به معرفی امکانات موجود در نرم افزار SQL SERVER می‌پردازیم.

زمانی که قصد راه اندازی سیستم مدیریت پایگاه داده برای یک سازمان را داشته باشیم، چند سؤال اساسی مطرح می‌شود.

اول اینکه سازمان چقدر می‌تواند قطع شدن سیستم را تحمل کند؟

دوم اینکه سازمان چقدر می‌تواند از دست دادن داده را تحمل کند؟

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

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

همان‌طور که قبلاً اشاره شد، وجه تمایز نرم افزارهای پایگاه داده اشتراکی و تک کاربر در ابزارهایی است که این نرم افزارها برای مدیریت اتصال چندین کاربر به صورت همزمان به پایگاه داده ارائه می‌دهند می‌باشد.

در این قسمت این ابزارها را نام برده و توضیح مختصری در این رابطه بیان می‌کنیم.

روش  Log Shipping

یکی از روش‌های مدیریت پایگاه داده، در حالت اشتراکی، روش Log Shipping می‌باشد.

برای ایجاد Log Shipping احتیاج به دو سرور می‌باشد که کاربران به یکی از این سرورها متصل می شوند.

با توجه به تنظیمات انجام شده، در زمان‌های متوالی از پایگاه داده در سرور اول فایل پشتیبان تهیه می‌شود و فایل پشتیبانِ تهیه شده به سرور دوم منتقل می‌شد  و در سرور دوم بازیابی می‌شود.

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

در این حالت کاربران به سرور اول متصل هستند و داده‌ها در سرور اول ذخیره می‌شود در صورتی که سرور اول دچار مشکل شود، مسئول فنی، ارتباط کاربران با سرور اول را قطع می‌کند و کاربران را به سرور دوم متصل می‌کند.

در این حالت زمان از دسترس خارج بودن سیستم بسیار کوتاه می‌شود و همچنین از دست دادن داده، حداکثر به اندازه زمان تنظیم شده برای انتقال فایل پشتیبان می‌باشد.

تهیه فایل پشتیبان در Log Shipping نمی‌تواند به صورت آنی باشد. با توجه به توان سرورها، زمانی برای تولید فایل پشتیبان، زمانی برای انتقال این فایل به سرور دوم و زمانی برای بازیابی اطلاعات در سرور دوم صرف می‌شود. 

 

روش Cluster

در شرایطی که از دست دادن داده و همچنین قطع شدن سیستم، حتی برای مدت کوتاه، پذیرفته نباشد می‌توان از راه حل دیگری به نام Cluster استفاده کرد.

یکی از ملزومات چنین شرایطی، استفاده از سخت افزار قدرتمند برای بهره گیری در سرورها می‌باشد.

به طور مثال یکی از ابزارهایی که از دست دادن داده را به حداقل می‌رساند استفاده از هاردهای SAN یا NAS در سرور می‌باشد که با توجه به تکنولوژی‌های استفاده شده در طراحی این هاردها، احتمال از دست دادن داده تقریباً به صفر می‌رسد.

روش Cluster برای استفاده از این‌گونه سخت افزارها در SQL SERVER طراحی شده است.

در روش Cluster احتیاج به دو سرور و یک هارد SAN یا NAS داریم.

فایل پایگاه داده در هارد SAN یا NAS قرار می‌گیرد و این فایل با دو سرور دیگر به اشتراک گذاشته می‌شود.

کاربران به یکی از سرورها متصل می‌شوند و از پایگاه داده استفاده می‌کنند. در صورت خراب شدن سرورِ پایگاه داده، نرم افزار SQL SERVER به صورت خودکار، سرور را تغییر می‌دهد و کاربران در کوتاه‌ترین زمان ممکن به سرور دوم منتقل می‌شوند.

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

در روش Cluster بجز سروری که کاربران با آن در ارتباط هستند، از توان بقیه سرورها نمی‌توان در شبکه استفاده کرد . ولی نرم افزار Oracle این قابلیت را دارد که کاربران را در سرورها، تقسیم می‌کند تا از توان بقیه سرورها نیز استفاده شود.

در این روش به علت استفاده از NAS یا SAN احتمال از دست دادن داده نیز به حداقل می‌رسد.

 

روش Mirroring

یکی دیگر از روش‌های ارتباط بین پایگاه های داده روش Mirroring می‌باشد.

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

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

در این روش در صورت ثبت نشدن داده در سرور دوم، داده‌ها در سرور اول نیز ذخیره نمی‌شود.

یکی از مشکلات این روش، این است که در صورت قطع شدن ارتباط بین دو سرور، داده‌ها در سرور اول نیز ذخیره نمی‌شوند. برای رفع این مشکل می‌توان از چند ارتباط برای اتصال دو سرور استفاده کرد تا در صورت ایجاد مشکل برای یکی از اتصال‌ها، در دیگری بهره برد.

در این روش از ثبت شدن داده‌ها در سرور دوم مطمئن هستیم زیرا تا داده‌ها در سرور دوم ثبت نشود، در سرور اول نیز ثبتی صورت نمی‌گیرد.پس می‌توان از این روش به عنوان یک روش پشتیبان گیری همزمان استفاده کرد.

 

روش Replication

روشReplication  یکی از تکنیک‌های تجمیع می‌باشد که در یک بستر ارتباطی اطلاعات را از یک سرور به سرور دیگر منتقل می‌کند.

در این روش به سروری که داده‌ها از آن منتقل می‌شوند، Publisher گفته می‌شود و به سروری که داده‌ها در آن تجمیع می‌شوند Subscriber  گفته می‌شود.

تفاوت این روش با سایر روش‌های به اشتراک گذاری داده در این است که در سایر روش‌ها انتقال داده در لایه های پایین صورت می‌گیرد و همه داده های موجود در پایگاه داده سرور اول به سرور دوم منتقل می‌شود اما در این روش می‌توان تعیین کرد که چه داده‌هایی از کدام جداول و از کدام فیلدها منتقل شوند.

در روش Mirroring  انتقال داده به صورت همزمان صورت می‌گیرد ولی در Replication می‌توان تنظیم کرد که در چه زمانی انتقال داده صورت بگیرد.

در روش Replication در صورت بالا بودن پهنای باند انتقال داده‌ها سریع‌تر صورت می‌گیرد ولی در روش Mirroring   به علت انتقال تدریجی داده‌ها، پهنای باند تأثیر زیادی در سرعت انتقال اطلاعات ندارد.

تا این بخش به طور خلاصه روش‌های انتقال داده بین چند سرور را مطرح کردیم.

در بخش‌های بعد نصب نرم افزار SQL SERVER و نکات مربوط به آن را شرح خواهیم داد.