آشنايي با SQL Server 2005

- آشنايي با نسخه‌هاي SQL Server 2005

SQL Server2005 در نسخه‌هاي مختلفي عرضه شده است  كه از نظر كارايي و قيمت بسيار متفاوت هستند و البته براي كاربران مختلفي نيز طراحي شده‌اند.

‌ (SQL Server2005 Enterprise Edition (32-bit and 64 bit

اين نسخه در حقيقت نسخه پيشرفته اين نرم‌افزار است و براي محيطي طراحي شده است كه يا داراي بانك اطلاعاتي بسيار بزرگ (از نظر تعداد ركورد يا حجم اطلاعات) يا داراي تعداد پردازش آنلا‌ين بسيار زياد يا نيازمند تحليل پيچيده اطلاعات است. اين نسخه همه قابليت‌هاي اين نرم‌افزار را دارد.

(SQL Server2005 Standard Edition (32-bit and 64-bit 

اين نسخه در حقيقت براي شركت‌هاي متوسط مناسب است. نكته مهم اين است كه اين نسخه نيز به راحتي بانك‌هاي اطلاعاتي بزرگ را پشتيباني مي‌كند. اما بعضي از ويژگي‌هاي مورد نياز براي تحليل پيچيده اطلاعات را ندارد و البته قيمت بسيار مناسب‌تري نسبت به نسخه Enterprise دارد.

(SQL Server2005 Workgroup Edition (32-bit only

اين نسخه براي شركت‌هاي كوچك و سرويس‌دهنده‌هاي وب و البته بانك‌هاي اطلاعاتي كه به عنوان نسخه پشتيبان استفاده مي‌شوند، مناسب است. اين نسخه در بين نسخه‌هايي كه به كاربران نهايي عرضه مي‌شود، كمترين قيمت را دارد.

‌‌ (SQL Server 2005 Developer edition (32-bit and 64-bit

اين نسخه از نظر خصوصيات و ويژگي‌ها هيچ تفاوتي با نسخه Entrprise ندارد. اما مختص برنامه‌نويسان است. لذا قيمت بسيار پاييني دارد و شركت‌هاي برنامه‌نويسي در زمينه بانك‌هاي اطلاعاتي از اين نسخه استفاده مي‌كنند. بدين ترتيب اين شركت‌ها ديگر مجبور نيستند براي تست برنامه خود نسخه Entrprise را تهيه كنند.

(SQL Server2005 Express Edition (32-bit only 

اين نسخه كاملاً مجاني است و مي‌تواند به عنوان يك سرويس‌دهنده يا يك سرويس گيرنده با حجم كوچكي از اطلاعات استفاده شود. بدين‌ترتيب برنامه‌نويساني نيز كه مي‌خواهند برنامه‌اي بنويسند كه داراي يك بانك اطلاعات كوچك است ديگر نيازي نيست كه نگران بانك اطلاعاتي خود باشند. چرا كه مي‌توانند برنامه خود را همراه با يك نسخه مجاني Exprees Edition ارائه كنند.

SQL Server 2005 Compact Edition و SQL Server2005 Mobile Edition

اين دو نسخه جزء نسخه‌هايي هستند كه بعدها به مجموعه اصلي اضافه شده‌اند كه فعلاً از بحث ما خارج هستند.
نكته: يك نسخه ديگر نيز وجود دارد كه البته نسخه كرك شده نرم‌افزار مورد نظر است كه با پرداخت مبلغي اندك و ناقابل مي‌توانيد دي وي دي آن را تهيه كنيد كه در آن تمام نسخه‌هاي گفته شده وجود داشته باشد و البته بدون هيچ كم و كاستي هم كار مي‌كند!

براي اطلاعات بيشتر و دقيق‌تر در رابطه با تفاوت‌هاي بين اين نسخه‌ها مي‌توانيد به اين آدرس مراجعه  كنيد.

2- كدام سيستم عامل؟

در مورد اين‌كه SQL Server2005 روي كدام سيستم عامل را نصب كنيم، بسته به اين‌كه شما كدام نسخه را بخواهيد نصب كنيد، انتخاب‌هاي زيادي وجود دارد. اما پيشنهاد مي‌كنم كه روي سيستم‌عامل windows server2003 نصب كنيد.

چراكه با اين كار مي‌توانيد از امكانات امنيتي اين سيستم‌عامل در پايگاه داده خود بهره ببريد. توجه داشته باشيد كه اگر شما windows server2003 نداريد، بدين معني نيست كه نمي‌توانيد از SQL Server2005 استفاده نماييد؛ مي‌توانيد SQL Server2005 را روي windows XP SP2 نصب كنيد.

اگر windows Server2003 را نصب كرديد، حتماً از قسمت نرم‌افزارهايي كه با خود سي‌دي ويندوز عرضه مي‌شوند، نرم‌افزار IIS را نيز نصب كنيد. براي اين كار كافي است به Control Panel>add or remove Programs>add/remove windows component مراجعه كنيد و روي Aplication server دو بار كليك كنيد و سپس با انتخاب گزينه Internet Information services نرم‌افزار IIS را نصب كنيد. به خاطر داشته باشيد كه پيش از نصب حتماً سي‌دي ويندوز را در دستگاه گذاشته باشيد (شكل 1).

s79_SQL-Server01_s.jpg

شکل 1


نكته: در رابطه با اين‌كه كدام نسخه‌ها از SQL Server2005 را روي چه سيستم‌عاملي نصب كنيد و چه نيازهاي سخت‌افزاري يا نرم‌افزاري داريد، مي‌توانيد به اين آدرس زير مراجعه كنيد.

3- نصب SQL Server2005

بعد از قرار دادن دي‌وي‌دي SQL Server2005 در دستگاه و اجراي فايل Setup و تأييد License برنامه، صفحه‌اي را مشاهده مي‌كنيد كه برنامه‌هاي مورد نياز براي نصب SQL Server2005 را در كامپيوتر شما نصب مي‌كند. اين موارد به‌طور مشخص NET FRAMWORK 2.0. و NATIVE CLIENT براي دسترسي به سرويس‌دهنده شبكه و تعدادي فايل حمايتي براي نصب SQL Server2005 است (شكل 2).

s79_SQL-Server02_s.jpg

شکل 2


بعد از انتخاب گزينه Install صفحه آغازين نصب SQL  Server2005 ظاهر مي‌شود و با انتخاب گزينه Next صفحه‌اي مانند شكل 3 ظاهر مي‌شود.



s79_SQL-Server03_s.jpg

شکل 3

اين صفحه در حقيقت قسمت چك كردن سيستم براي مشخص كردن مهيا بودن سيستم براي نصب SQL Server2005 است. همان‌طور كه مي‌بينيد، مواردي مانند نصب بودن ماجول‌هاي حمايت از XML و وجود Service pack در سيستم‌عامل يا دارا بودن حداقل نيازهاي سخت‌افزاري براي نصب SQL  Server2005، نصب بودن IIS و ... در اين صفحه چك مي‌شود.

اگر پيام خطا در مورد سخت‌افزار دريافت كرديد، خيلي نگران نباشيد. زيرا اگر اختلاف سخت‌افزار شما با آنچه مايكروسافت مي‌خواهد زياد نباشد، مشكلي در نصب نخواهيد داشت. اگر مانند شكل 3 ديديد كه IIS روي سيستم شما نصب نيست يا طبق روال گفته شده آن را نصب كنيد يا اگر نمي‌خواهيد با بستر اينترنت و ماجول توليد گزارش كار كنيد، بدون توجه به اين اشكال به مرحله بعد برويد.

در ادامه نصب SQL Server2005 روي كامپيتر شما آغاز مي‌شود. در ادامه صفحه بايد شماره سريال را وارد كنيد كه با انجام اين كار صفحه‌اي مانند شكل 4 ظاهر مي‌شود.

s79_SQL-Server04_s.jpg

شکل 4


در اين صفحه مي‌توانيد با انتخاب سرويس‌هاي مناسب ادامه نصب نرم‌افزار را پي بگيريد. مايكروسافت اكيداً توصيه مي‌كند كه براي داشتن امنيت بهتر اگر از ماجولي استفاده نمي‌كنيد، از نصب آن خودداري كنيد. اما اگر به منظور آموزش نرم‌افزار را نصب مي‌كنيد، مي‌توانيد همه ماجول‌هاي آن را نصب كنيد.

توصيه مي‌كنم همه مثال‌ها و راهنماي نرم‌افزار كه به آن Books On Line مي‌گوييم را نيز حتماً نصب كنيد كه بعداً حتماً به كارتان خواهد آمد. براي نصب همه ماجول‌ها مي‌توانيد با انتخاب گزينه Advance از صفحه بعدي كمك بگيريد (شكل 5).

s79_SQL-Server05_s.jpg

شکل 5


در صفحه بعدي شما دو انتخاب خواهيد داشت: انتخاب اول، گزينه Default instance است. اين گزينه هنگامي استفاده مي‌شود كه براي اولين بار مشغول نصب SQL  Server روي سيستم خود هستيد. اما اگر روي سيستم خود داراي SQL Server  هستيد، سيستم جديدي كه نصب مي‌كنيد، حتماً بايد داراي يك نام جديد باشد تا قابل شناسايي باشد.

بنابراين گزينه Named Instance را انتخاب مي‌كنيم و يك نام را در قسمت مربوطه براي سيستم خود وارد مي‌كنيم و سپس با گزينه Next به صفحه بعد مي‌رويم. شايد از خود بپرسيد: به چه دليلي ممكن است نياز داشته باشيم چند نسخه از اين نرم‌افزار را روي سيستم خود داشته باشيم.

مايكروسافت چهار دليل را براي اين مسئله بيان مي‌كند: اول هنگامي كه بخواهيد چند نسخه مختلف را به طور همزمان روي سيستم خود داشته باشيد. دوم هنگامي كه مي‌خواهيد كار يك برنامه براي برقراري ارتباط بين چند سيستم را تست كنيد.

بدين ترتيب به جاي اين‌كه چند سيستم را روي چند كامپيوتر اجرا كنيد، همه سيستم‌ها را روي يك كامپيوتر نصب مي‌كنيد و بعد تست مي‌كنيد. بديهي است اين روش داراي صرفه اقتصادي بيشتري است. دليل سوم هنگامي كه داراي چند مشتري هستيد كه هر كدام سيستم خود را مي‌خواهند و چهارم مربوط به زماني است كه داراي چند برنامه روي سيستم خود هستيد كه هر برنامه نيازمند سيستم خود است (شكل 6).


s79_SQL-Server06_s.jpg

شکل 6


در ادامه بايد كاربران مجاز را با سطح دسترسي مشخص براي سيستم معلوم  كنيد. براي اين كار سه راه وجود دارد: اول شما انتخاب مي‌كنيد كه افرادي كه به كامپيوتري كه سيستم مديريت پايگاه شما روي آن نصب است دسترسي دارند با همان username و password به SQL Server2005 دسترسي خواهند داشت. حالت دوم هنگامي است كه خود username و password جديد براي كاربر انتخاب مي كنيد. حالت سوم نيز هنگامي است كه به ازاي هر سرويس، كاربر تعريف مي‌كنيد (شكل 7).

s79_SQL-Server07_s.jpg

شکل 7


همان‌طور كه در شكل 7 مي‌بينيد، مي‌توانيد از قسمت پايين سرويس‌هايي كه بعد از نصب مي‌خواهيد اجرا شود را انتخاب كنيد. با انتخاب گزينه NEXT به صفحه بعد مي‌رويد. در اين صفحه نحوه تعيين هويت را براي SQL Server2005 معلوم مي‌كنيد.

براي اين‌ كار دو راه‌حل داريد: اول انتخاب Windows Authentication Mode كه موجب مي‌شود سيستم از روال‌هاي امنيتي سيستم‌عامل استفاده كند و دوم Mixed Mode كه هم روال‌هاي سيستم‌عامل است و هم ساير روال‌هاي تعريف شده براي خود SQL Server. بايد توجه داشت كه با انتخاب Mixed Mode بايد نام و رمز مدير سيستم را معلوم كنيد.

در اينجا دو نكته اساسي وجود دارد: اول اين‌كه Windows Authentication Mode از امنيت بيشتري برخوردار است و البته در اينجا دليل استفاده از سيستم‌عامل Windows Server2003 معلوم مي‌شود. دوم اين‌كه، اگر از Mixed Mode استفاده مي‌كنيد، حتماً بايد براي مدير سيستم از يك Password قوي استفاده كنيد. توجه داشته باشيد كه Mixed Mode هنگامي كاربرد دارد كه كاربران زيادي از طريق يك برنامه با SQL Server2005 ارتباط برقرار مي‌كنند (شكل 8).

s79_SQL-Server08_s.jpg

شکل 8


در صفحه بعد مي‌توانيد نحوه ذخيره‌سازي اطلاعات را از نظر نحوه كد شدن حروف و كاراكترها انتخاب كنيد. توجه داشته باشيد كه اين انتخاب براي حالت كلي است و البته در خروجي شما هنگامي كه مي‌خواهيد خروجي منظم باشد، اثر مستقيم دارد.

يعني هر Collation داراي نظم خاصي است. البته مي‌توانيد به ازاي هر سرويس قرارداد خاصي  تنظيم كنيد. براي اين ‌كار كافي است فقط تيك اول صفحه را فعال كنيد. اما فعلاً بهتر است به همان صورت پيش فرض نصب كنيد (شكل 9).

s79_SQL-Server09_s.jpg

شکل 9


در صفحه بعد دو گزينه مي‌بينيد: اولي براي اين‌كه اگر سيستم به مشكلي برخورد كرد، اطلاعات خطاي شما به صورت خودكار براي مايكرو سافت ارسال شود تا بتواند از آن براي بهتر شدن محصولات خود استفاده كند و در عين حال سعي كند مشكل شما را حل كند.


دوم براي اين است كه اطلاعات كاربرد و ويژگي‌هاي مورد استفاده شما از SQL Server2005 به مايكروسافت فرستاده شود تا اگر در كار شما مطلب يا كاربرد جديدي بود، در نسخه هاي بعدي به عنوان قسمتي از راهنما به كاربران عرضه شود.

در صفحه بعد خلاصه‌اي از چيزي كه قرار است روي سيستم شما نصب شود، مشاهده مي‌كنيد و با انتخاب گزينه Install فرآيند نصب آغاز مي‌شود و البته خوشبختانه فرايند پيشرفت در هر سرويسي جداگانه نمايش داده مي‌شود كه اين خود براي كاربر درك بهتري پديد مي‌آورد (شكل 10).

s79_SQL-Server10_s.jpg

شکل 10


و بدين ترتيب نصب SQL Server2005 به پايان مي‌رسد.

4- آشنايي با محيط SQL Server Management Studio

بعد از نصب SQL Server2005 با مراجعه به گزينه Start و انتخاب programs در windows XP يا انتخاب All programs در Windows Server2003 و انتخاب Microsoft SQL Server2005 گزينه SQL Server Management Studio را مشاهده خواهيد كرد و با انتخاب اين گزينه محيط اين برنامه ظاهر خواهد شد.
 
از اين به بعد اين گونه كارها را بدين شكل نمايش مي‌دهيم.
مثلاً: Start>Programs>Microsoft SQL Server 2005>SQL Server Management studio در ابتدا با صفحه‌اي مانند شكل 11 روبه‌رو مي‌شويد.

s79_SQL-Server11_s.jpg

شکل 11


اگر روي كامپيوتر خود چند  سيستم نصب كرده‌ايد، مي‌توانيد سرويس‌دهنده‌اي را كه مي‌خواهيد به آن وصل شويد، از قسمت Server Name انتخاب كنيد و البته نحوه وصل شدن به سيستم و نام ورمز كاربري را نيز توسط قسمت Authentication معين كنيد تا بتوانيد به SQL Server Management Studio (از اين به بعد آن را به اختصار SSMS مي‌ناميم) وصل شويد و بدين‌ترتيب شكل 12 را خواهيد ديد.

s79_SQL-Server12_s.jpg

شکل 12


همان‌طور كه در شكل مي‌بينيد، در سمت چپ داراي Object explorer هستيم. بدين ترتيب مي‌توانيم به همه شيءهاي موجود دسترسي داشته باشيم. اگر بخواهيم نگاهي ظاهري به اين قسمت داشته باشيم، اولين چيزي كه جلب توجه مي‌كند، وجود يك شيء به نام Server است و البته درست حدس زديد.

با دسترسي به اين شيء اين امكان براي ما وجود خواهد داشت كه همزمان به چند Server مختلف دسترسي داشته باشيم. براي اين‌ كار كافي است از منوي file گزينه Connect Object Explorer را انتخاب كنيد تا بتوانيد سرور جديدي را كه مي‌خواهيد به آن وصل شويد، انتخاب كنيد.

در Object Explorer بعد از گزينه Server داراي شيء Database هستيم. نكته بسيار جالب و مهم اين است كه در SQL Server2005 شما System Database و Database Snapshot را به صورت جدا از بقيه پايگاه هاي كاربر مي‌بيند و بدين ترتيب امكان مديريت بسيار بيشتر و راحت‌تر براي كاربر وجود دارد.

در قسمت پايگاه‌هاي كاربر اگر هر پايگاه را انتخاب كنيد داراي موارد ذيل هستيد: اول از همه، Database Diagramكه شامل دياگرام‌هاي رسم شده براي پايگاه است. سپس Tables كه همان جداول پايگاه است وجود دارد. بعد گزينه‌ view كه فهرست ويوهاي پايگاه در آن قرار دارد و به همين ترتيب بقيه موارد نيز ديده مي‌شود.

كسب‌و‌كار هوشمند در SQL Server 2005

امروزه هوشمندي كسب و كار (BI) يا به عبارتي تجزيه و تحليل داده‌هاي ذخيره شده براي برنامه‌ريزي درازمدت در آينده، موضوعي است كه به شدت مورد توجه سازندگان بانك‌هاي اطلا‌عاتي، از جمله مايكروسافت، قرار گرفته است. در اين مقاله نگاهي خواهيم داشت به سرويس جديدي موسوم به Analysis Service كه در نسخه 2005 بانك اطلا‌عاتي SQL Server براي اين منظور در نظر گرفته شده است.


ساختار
در Analysis Service 2005 موجوديت مكعب (cube) به عنوان مهم‌ترين ابزار تحليل داده‌ها، مورد توجه خاصي قرار گرفته است. cube يك شي چند بعدي است كه مي‌تواند اطلا‌عاتي را براساس اطلا‌عاتي ديگر به ما نشان داده يا با هم مقايسه كند. ابعاد اين مكعب در واقع فاكتورهايي هستند كه ما مي‌خواهيم داده‌هايمان را بر اساس آن‌ها مقايسه كنيم.
 
مثلا‌ً در يك سيستم انبار، نوع كالا‌ مي‌تواند يكي از ابعاد مناسب براي بررسي ورود و خروج كالا‌ باشد. يكي از مهم‌ترين فاكتورها يا ابعادي كه يك مكعب مي‌تواند داشته باشد، بعد زمان است. تقريباً مي‌توان گفت كه در هيچ سيستمي، زمان مسئله كم‌اهميتي نيست. مثلا‌ً ورود و خروج كالا‌ها در بازه‌هاي زماني روزانه، ماهانه، سالا‌نه و ... يا ميزان درآمد و هزينه‌ها طي بازه‌هاي زماني خاص از جمله فاكتورهايي محسوب مي‌شوند كه عموماً مورد توجه شركت‌ها قرار دارند.

يكي از مثال‌هاي سايت مايكروسافت كه يك مكعب تحليلي از تعداد پكيج‌هاي مسافرتي و تاريخ آن‌را بر اساس ابعاد، زمان، مكان و نوع سفر ارائه مي‌دهد.

در Analysis Service ابعاد يك مكعب را در قسمت Dimensions تعريف مي‌كنند. اما مقادير كه به ازاي در كنار هم قرار گرفتن اين ابعاد،‌ بايد توسط سيستم محاسبه و نمايش داده شود، مقاديري هستند كه نهايتاً هدف يك cube را از نتيجه تجزيه و تحليل داده‌ها بيان مي‌كنند و به آن‌ها، مقياس (Measure) گفته مي‌شود.
 
معمولا‌ً فاكتورهايي چون ماكزيمم و مينيمم، جمع و ... . يك ارزش عددي در بازه‌اي از مقادير يك بُعد (Dimension) مي‌تواند به عنوان يك مقياس در نظر گرفته شود.

مثلا‌ً جمع ورود و خروج يك نوع كالا‌ در بازه‌اي از زمان يك Measure مناسب براي دو بُعد نوع كالا‌ و زمان به حساب مي‌آيد يا مثلا‌ً ميزان درآمد ماهانه شركت مي‌تواند يك مقياس براي دو بُعد واحد پول و زمان، در نظر گرفته شود.

راه‌حل‌هاي تجاري
بسياري از سازمان‌هاي بزرگ تجاري داراي چندين سيستم اطلا‌عاتي مثل سيستم‌هاي ERP يا SCM هستند.

اين سيستم‌ها ممكن است حتي تحت چند پلتفرم يا موتور پايگاه داده‌اي مختلف در سطح آن سازمان پراكنده شده باشند. بنابراين جمع‌آوري اطلا‌عات و مقايسه و نتيجه‌گيري از چند منبع اطلا‌عاتي مختلف بدين شكل، كار بسيار مشكلي است.

حتي در صورتي كه بخواهيم در چنين سازمان‌هايي، فقط يك منبع اطلا‌عاتي را مورد تجزيه و تحليل قرار دهيم، داده‌هاي موجود در آن را بايد به محيطي منتقل كنيم تا امكان تجزيه و تحليل و ساير اعمال محاسباتي پيچيده بر آن فراهم شود.

در ابزار جديد Analysis Service مفهومي به نام Unified Dimensional Model) UDM) در نظر گرفته شده كه به معناي ايجاد يك مدل تجاري مجتمع و يكتا با خاصيت چندبُعدي روي يك يا چند منبع اطلا‌عاتي است.

بر اين اساس، شي يا موجوديتي به نام Data Source View ساخته مي‌شود كه شامل كليه جداول يا ديدهاي يك يا چند بانك اطلا‌عاتي همگون يا ناهمگون است. پس از تعريف اين شي و برقراري روابط ميان فيلدهاي اطلا‌عاتي جداول يا ديدهاي موجود در آن، مي‌توان اقدام به ساخت شِماهاي  چندبُعدي يا همان مكعب كرد.
 
به عنوان مثال، مي‌توان ميزان فروش يك سري اقلا‌م خاص را در طي يك توالي زماني مشخص به صورت يك نمودار سه بعدي نمايش داد. استفاده از اين تكنيك علا‌وه بر رساندن ما به هدف مورد نظر كه همان گردآوري اطلا‌عات گوناگون و تهيه نمودارهاي چند بعدي آماري براساس آنان است، دو مزيت ديگر هم دارد: اول اين‌كه، از انواع منابع اطلا‌عاتي مثل انواع بانك‌هاي اطلا‌عاتي رابطه‌اي، بانك‌هاي ويژه انجام فرايندهاي پردازشي (OLTP)، ‌فايل‌هاي تخت (Flat) يا حتي سرويس‌هاي وب، مي‌تواند استفاده نمايد.

دوم اين‌كه، به دليل ماهيت فيزيكي cube كه خودش نوعي فضاي ذخيره‌سازي موقت براي داده‌ها است، تداخل خاصي با پردازش‌ها و فرايندهاي در حال اجرا روي اطلا‌عات اصلي موجود در منابع اطلا‌عاتي  نداشته و روي كارايي و سرعت آن‌ها اثر منفي محسوسي ندارد.

يكي از روش‌هاي مرسوم ذخيره‌سازي اطلا‌عات در سيستم‌هاي بزرگ، تقسيم‌بندي انباره اطلا‌عات (Data Warehouse) به واحدهاي كوچك‌تر با كاربردهاي مختلف مي‌باشد كه به آن Data Mart گفته مي‌شود. بر اين ‌اساس، مثلا‌ً محل ذخيره‌سازي داده‌هاي مربوط به اسناد مالي از محل ذخيره داده‌هاي مربوط به وضعيت عرضه و تقاضاي بازار مصرف جدا شده و هر كدام در محل خاصي قرار مي‌گيرند. در اين حالت دو مشكل مي‌تواند به وجود آيد: اول اين‌كه تعدد Data martها در سازمان به دليل مشكل بودن ايجاد رابطه ميان اطلا‌عات آن‌ها، به كُندشدن هر نوع تجزيه و تحليل آماري مي‌انجامد. دوم اين‌كه، حتي براي گزارش‌هاي ساده‌تر كه فقط روي يك Data Mart بايد انجام شود، به دليل احتمال هم‌سنخ‌نبودن مخازن اطلا‌عاتي با يكديگر، بايد برنامه‌هاي مختلفي را براي گزارش‌گيري يا تجزيه و تحليل اطلا‌عات، مورد استفاده قرار داد.

با اين حال به لطف وجود Analysis Service، هر دو مشكل مذكور به نحو مطلوبي رفع شده‌اند: اول اين‌كه، ساختار مدل‌سازي واحد (UDM) محيطي متمركز براي نگهداري يك كپي كامل از تمام Data Martها است. ضمن اين‌كه قادر است به هر كاربر و هر دپارتماني از آن سازمان صرفاً اطلا‌عات و تجزيه و تحليل‌هاي مورد نياز خودش را نشان دهد. به اين دسته‌بندي منطقي داده‌ها بر اساس كاربرد، اصطلا‌حا ًPresPective گفته مي‌شود.

با وجود پرسپكتيوهاي مختلف از يك UDM، هم مسئله تقسيم‌بندي داده‌هاي مورد نياز دپارتمان‌ها حل مي‌شود و هم مشكل لينك شدن اطلا‌عات موجود در Data Martهاي مختلف با يكديگر، برطرف مي‌گردد. اما اين مسئله از نقطه نظر ديگري نيز قابل بررسي است. در گذشته، جدايي و تفاوت بين سيستم‌هاي فرايندي (OLTP) و سيستم‌هاي تحليلي (OLAP) بسيار آشكار بود.
 
سازمان‌ها داده‌هاي خود را در OLTP ذخيره و پردازش مي‌كردند. سپس داده‌هاي پردازش‌شده را به OLAP منتقل مي‌نمودند تا بتوانند بدون تأثير منفي در كارايي و سرعت پردازش‌داده‌ها درOLTP، آناليز اطلا‌عات را به راحتي انجام دهند. اما اكنون و به لطف وجود UDM داده‌هايي كه توسط OLTP پردازش مي‌شوند، بي‌درنگ به OLAP منتقل مي‌گردند. در اين روش محل ذخيره اطلا‌عات مورد نياز OLTP و OLAP واحد است و داده‌ها بر اساس يك مكانيسم بي‌درنگ (Real Time) در هنگام هر نوع انتقال يا پردازش به فضاي مورد نياز گزارش‌هاي تحليلي OLAP آورده شده وcubeهاي آناليزي موجود در آن را بروز (update) مي‌كند.
 
در اين صورت به دليل يكتا بودن محل ذخيره‌سازي اطلا‌عات نيز،‌نيازي به استفاده از برنامه‌هاي مختلف براي دسترسي به مخازن اطلا‌عاتي مختلف نمي‌باشد. بنابراين مسئله گفته شده در اين بند نيز با اين ويژگي جديد حل مي‌شود.

يكي از ويژگي‌هاي هميشگي برنامه‌ها و ابزارهاي گزارش‌گيري، امكان كنكاش و تحليل اطلا‌عات در لا‌يه‌هاي مختلف است. به عنوان مثال، يك برنامه گزارش‌گيري مي‌تواند در يك لا‌يه، رابطه ميان فروش محصولا‌ت خود و مشتريان خريدار آن محصولا‌ت را به صورت يك جدول دو بعدي نشان دهد. در لا‌يه ديگري، همين برنامه مي‌تواند رابطه ميان فروش محصولا‌ت و كارخانه‌هاي سازنده آن‌ها را بيان نمايد و بالا‌خره در لا‌يه سوم و در صورت لزوم مي‌تواند بين سه فاكتور مذكور يك نمودار سه‌بعدي ايجاد كند كه اين حالت از پيشرفته‌ترين ويژگي‌هاي يك ابزار گزارش‌گيري محسوب مي‌شود.

با اين همه، نيازهاي كارشناسان تجاري يك شركت محدود به اين نوع گزارش‌ها نمي‌باشد. در برخي موارد يك تحليلگر نياز به در كنار هم قراردادن و مقايسه چندين فاكتور مختلف از چند موجوديت مجزا را دارد. به عنوان نمونه، در همان مثال قبل فرض كنيد مي‌خواهيم روابطي را براساس فاكتورهاي تاريخي قابل محاسبه مثل تاريخ سفارش، تاريخ تحويل، تاريخ ساخت كالا‌ و تاريخ فروش به مشتري را براي چند نوع كالا‌ي مختلف به دست آوريم.

بنابراين اينگونه گزارش‌هاي چندبعدي با مدل گزارش‌گيري سنتي (سلسله مراتبي) يا نمودارهاي ساده موجود در آن‌ها قابل ايجاد نمي‌باشد. اما Analysis Service راه‌حلي را براي نيل به اين هدف در نظر گرفته كه جزء ويژگي‌هاي مدل چند بُعدي (UDM) آن است و به نام ابعاد مبتني بر خصوصيت (Attribute Based Dimension) شناخته مي‌شود.
براساس اين ويژگي، تحليلگران قادر خواهند بود تجزيه و تحليل اطلا‌عات خود را نه به شكل سلسله مراتبي (كه در روش سنتي ميسر بود)، بلكه به صورت همزمان و چندبعدي انجام دهند. مثلا‌ً مي‌توان با اين روش آمار هر نوع خصوصيت كالا‌ي فروخته شده مثل رنگ، اندازه، وزن، واحد و... را به صورت يكجا و در قالب ابعاد مختلف ويژگي‌هاي كالا‌ها، به دست آورد.

همچنين با استفاده از قابليت ديگري كه به آن <ايفاي نقش> يا Role Playing مي‌گويند، مي‌توان يك ويژگي را به عنوان مبناي يك تجزيه و تحليل قرار داد و آن‌گاه ويژگي‌هاي ديگر هم سنخ آن را به عنوان ابعاد ديگر آن تحليل بررسي نمود. مثلا‌ً مي‌توان فاكتور زمان (روز، ماه، سال و ...) را به عنوان يك ويژگي عام در نظر گرفت و آنگاه تعداد كالا‌ي خريداري،  فروخته شده و تحويل شده را براساس آن فاكتور زمان به عنوان ابعاد ديگر اين تحليل معرفي نمود و با يكديگر مقايسه كرد.

يكي از روش‌هايي كه OLAPهاي سنتي براي جلوگيري از كاهش راندمان سرور اصلي بانك‌اطلا‌عاتي به كار مي‌بردند اين بود كه از سرور ديگري براي گرفتن گزارش‌هاي تحليلي استفاده مي‌نمودند. سرور دوم شامل همان ساختار بانك اطلا‌عاتي سرور اول بود و داده‌ها نيز در يك تناوب زماني مثلا‌ً در نيمه‌هاي شب و هنگام كاهش ترافيك شبكه، به سرور دوم كپي مي‌شد. اين شيوه براي كاربردهايي چون تحليل درآمدهاي ساليانه يا ساير تحليل‌هاي درازمدت با كاربرد مشابه، كار معقولي به نظر مي‌رسيد.
 
اما براي كاربردهايي كه نياز به بررسي آني آخرين وضعيت براي برنامه‌ريزي كوتاه‌مدت داشت، روش مناسبي نبود؛ چرا كه امكان داشت هنوز آخرين اطلا‌عات به سرور OLAP (سرور دوم) كپي نشده باشد. سيستم‌هاي برنامه‌ريزي توليد از جمله سيستم‌هايي بود كه نياز به داشتن چنين گزارش‌هاي كوتاه مدتي داشت. در Analysis Service اين مسئله با كپي‌شدن آني و بي‌درنگ داده‌ها به سرور OLAP در حين انتقال به سرور اصلي حل شده است. با اين كار داده‌ها بلا‌فاصله در سرور دوم و در محل cubeهاي ساخته‌شده قرار مي‌گيرند و حتي تجزيه و تحليل‌هاي موجود نيز به صورت بي‌درنگ بروز مي‌شوند. اين خاصيت، مهم‌ترين ويژگي يك سيستم BI پيشرفته امروزي به شمار مي‌رود.

راهكارهايي براي‌ افزايش سرعت در بانك‌هاي اطلاعاتي SQL Server  

 شايد بعضي از شما تاكنون دست‌اندركار يكي دو پروژه مبتني بر بانك‌هاي اطلاعاتي بوده‌ايد و يا اكنون با چنين پروژه‌هايي سروكار داريد. اگر تجربه كار در محيط‌هاي متوسط (مثلاً با يكصد كاربر) يا بزرگ‌ را نيز داشته باشيد، قطعاً با مسائل و مشكلات مربوط به كاهش سرعت ناشي از افزايش تعداد كاربران يا حجم پردازشي آن‌ها مواجه شده‌ايد. اين مقاله با استناد به منابع مايكروسافتي، راهكارهايي را براي بهبود سرعت و كارايي سيستم در بانك‌هاي اطلاعاتي با تعداد كاربر و حجم پردازش زياد مورد بررسي قرار مي‌دهد. شايان ذكر است كه در تمامي نمونه‌هاي مورد اشاره، بانك‌هاي اطلاعاتي مبتني بر محصول مايكروسافت يعني SQL Server2000 مدنظر قرار گرفته است. طبق بررسي‌هايي كه كارشناسان مايكروسافت انجام داده‌اند، كارايي يك سيستم بانك اطلاعاتي به پنج عامل مختلف بستگي دارد كه به ترتيب اهميت عبارتند از: برنامه نوشته شده، پايگاه داده موردنظر، سخت‌افزار سرور يا كلاينت، تنظيمات و نسخه مورد استفاده SQL Server و سيستم‌عامل ويندوز. همان‌طور كه حتماً مي‌بينيد، ساختار پايگاه داده، براي كارايي سيستم، در رتبه دوم اهميت قرار‌دارد. بنابراين ايجاب مي‌كند كه در زمان تحليل و طراحي سيستم، به‌صورت ويژه‌ به بانك اطلاعاتي در‌حال ساخت توجه شود و رابطه بين اين بانك و برنامه‌هاي كاربردي و همچنين رابطه بين اجزاي مختلف درون بانك، به بهترين شكل ممكن طراحي و پياده‌سازي شود.


توسعه 
به‌طور كلي براي افزايش سرعت يك بانك اطلاعاتي مي‌توان به دو روش اقدام كرد. در واقع پنج عامل مورد اشاره در بالا‌، به دو دسته طولي و عرضي تقسيم‌بندي مي‌شوند. در توسعه طولي كه در اصطلاح انگليسي به Scalp up نيز شناخته مي‌شود، مدير سيستم با صرف هزينه‌، به ارتقاي سخت‌افزار (مثل پردازنده‌ها يا هاردديسك‌ها) يا به‌طوركلي ايجاد شبكه‌اي سريع‌تر اقدام مي‌نمايد يا مثلاً سيستم‌عامل خود را به نسخه‌اي جديدتر و پايدارتر ارتقا مي‌دهد. اما در روش عرضي (Scale out) تقريباً با حفظ همان سخت‌افزار و ساختار شبكه، به بهينه‌سازي روابط موجود ميان عناصر دخيل در سرعت مثل برنامه‌هاي كاربردي، بانك اطلاعاتي و سرور اقدام مي‌كند.

توسعه طولي (Scale up) 
هدف اين مقاله پرداختن به توسعه عرضي براي بهره‌برداري بهينه از امكانات موجود است. اما قبل از آن، جادارد به‌صورت خلا‌صه و فهرست‌وار به توسعه طولي و راه‌حل‌هاي آن نيز پرداخته شود تا زمينه براي بررسي‌هاي بيشتر در آينده فراهم گردد.

راه‌حل يكم: افزايش حافظه مورد استفاده SQL Server از يك به سه گيگابايت. اين كار را بايد با دستكاري در فايلBoot.ini سرور 2000 يا 2003 كه SQL Server در آنجا قرار دارد، انجام دهيد. براي اطلاع از چگونگي انجام‌دادن اين كار، به سايت پشتيباني مايكروسافت رجوع كنيد نشاني(
http://support.microsoft.com) و در آنجا عبارت AWE SQLServer را جستجو كنيد تا مقالاتي كه در اين زمينه وجود دارد، در دسترس شما قرار گيرد.

راه‌حل دوم: ارتقاي سيستم‌عامل ويندوز 2000 به 2003 كه در فرايند caching، سيستم‌عاملي پايدارتر و هوشمندتر قلمداد مي‌شود.

راه‌حل سوم: استفاده از پردازنده‌هاي Xeon به جاي پنتيوم 4 در سرور. اين پردازنده‌ها به دليل ويژگيhyper threading، مي‌توانند سرعت پردازش اطلاعات در سمت سرور را به دو برابر افزايش دهند.

راه‌حل چهارم: هاردديسك‌هاي اسكازي با 15‌هزار دور در دقيقه و سرعت سه مگابيت در ثانيه و يا Sata با 10‌هزار دور در دقيقه و دو مگابيت در ثانيه نسبت به هاردديسك‌هاي IDE با 7500 دور در دقيقه و يك مگابيت در ثانيه از عملكرد بهتري برخوردارند.پس درصورت امكان، از اين ادوات ذخيره‌سازي در سرور بانك اطلا‌عاتي استفاده كنيد.

 راه‌حل پنجم: جداسازي محل ذخيره فايل‌هاي داده‌اي بانك اطلاعاتي (mdf) و فايل‌هاي لاگ (ldf) برروي دو هاردديسك مختلف يا دو ديسك مختلف از يك RAID. معمولاً براي نگهداري mdf استفاده از RAID1 و براي ldf  استفاده از RAID5 توصيه مي‌شود.

با جداسازي اين فايل‌ها از يكديگر، عمل ايجاد لاگ، وقفه‌اي در خواندن و نوشتن اطلاعات بر روي هاردديسكي كه حاوي فايل‌هاي داده‌اي mdf است، ايجاد نمي‌كند.

راه‌حل ششم: راه‌حل آخر و در واقع مشكل‌ترين راه، تقسيم بانك اطلاعاتي (در صورت لزوم) به دو بانك جدا از هم و بر روي دو سرور مختلف است. به عنوان مثال، فرض كنيد كه عمليات روزانه سيستم شما به دو دسته تقسيم مي‌شود: دسته يكم عملياتي است كه طي آن بايد از آخرين اطلاعات موجود بر روي سيستم استفاده شود و هرگونه تغيير نيز بايد فوراً  در همان لحظه بر روي بانك سيستم‌ها (جداول مربوط به آن‌ها كه به
online transactional Processing) OLTP) مشهورند،) اعمال شود.

دسته دوم نيز شامل عملياتي است كه طي آن مي‌توان از اطلاعات چند ساعت يا چند روز پيش نيز استفاده كرد و لزومي به داشتن آخرين اطلاعات به صورت لحظه‌اي نيست. به عنوان نمونه فرض كنيد تعدادي از گزارش‌هاي سيستم مربوط به تحليل آماري فرايندهاي مختلف ماه پيش است. بنابراين بايد تمهيداتي انديشيده شود تا تهيه اين گزارش‌ها -كه البته ارزش آني ندارند، اما به دليل بازه زماني و نوع تحليل آن‌ها، منابع زيادي از سيستم براي خواندن اطلاعات انبوه و تجزيه و تحليل صرف مي‌شود، بايد بر روي سرور دومي در شبكه كه به
سيستم‌هاي online Analytical Processing) OLAP) مشهورند قرار گيرند تا در كار كساني كه مشغول  كار با OLTP  هستند، خللي ايجاد نشود.

بنابراين سرور دومي را در شبكه در نظر بگيريد و كپي بانك اطلاعاتي موجود در سرور اول را به سرور دوم انتقال دهيد. سپس با استفاده از روش Replication سيستم را طوري تنظيم كنيد تا در مواقع خلوت‌بودن ترافيك سيستم (مثلاً نيمه شب) اطلاعات Upgrade شده آن روز را از سرور اول به سرور دوم كپي كند. كليه برنامه‌هايي كه با OLAP  كار مي‌كنند را به بانك مشابه، اما با آدرس سرور دوم ارجاع دهيد.
 
براي كسب اطلاعات بيشتر در زمينه نحوه انجام‌دادن Replication، عبارت مذكور را در سايت ماهنامه شبكه جستجو كنيد. تا به مقالا‌تي در اين زمينه دست پيدا كنيد.

توسعه عرضي (Scale out) 

نام خانوادگي

نام

شماره تامين اجتماعي بيمه شده

شماره سريال بيمه شده

ب

الف

ايندكس خوشه‌اي يا خاصيت منحصر به فرد

كليد اوليه ايندكس غيرخوشه‌اي

راه‌هاي موجود در توسعه عرضي در واقع سريع‌ترين راه‌حل‌هاي افزايش سرعت در بانك‌هاي اطلاعاتي را تشكيل مي‌دهند. برخي از اين راه‌ها فقط با يك بار استفاده، اثر دايمي خود را روي سيستم به جا مي‌گذارند. اما برخي ديگر بايد به عنوان يك الگوي دوره‌اي در مراحل زماني مناسب ازسوي مدير سيستم اجرا شود. اين راه‌ها در واقع جزئي از دستورالعمل‌هاي نگهداري و پشتيباني سيستم محسوب مي‌شوند. در ادامه  به بررسي آن‌ها مي‌پردازيم:

1 - از ساخت جداولي كه فاقد كليد اوليه (Primary key) باشند، خودداري كنيد. كليد اوليه علاوه بر جلوگيري از  ورود اشتباه اطلاعات از سوي كاربر، به دليل داشتن خاصيت منحصر به‌فرد بودن (Unique) به سريع‌تر پيدا‌شدن ركورد موردنظر از همان جدول كمك شاياني مي‌كند. تا آنجا كه براي سيستم امكان دارد براي كليد اوليه از فيلدهاي عددي استفاده كنيد.

استفاده از فيلدهاي رشته‌اي (string) مثلchar ياvarchar به‌عنوان كليد اوليه، كمي كندتر از فيلدهاي عددي است. از انتخاب فيلدهاي رشته‌اي با طول زياد و يا فيلدهايي مثل Memo ،Text و Picture به عنوان كليد اوليه نيز اجتناب كنيد.

2 - تمام كليدهاي خارجي (Foreign key) قابل تعريف در بانك را تعريف كنيد. وجود كليدهاي خارجي نيز علاوه بر جلوگيري از اشتباه كاربر در واردكردن يا حذف اطلاعات، موجب مي‌شود هنگام لينك شدن (join) جداول مادر و فرزند از طريق كليدهاي خارجي، سيستم سرعت بيشتري را در انجام دستورات Select شما از خود نشان دهند.

3 - همان‌طور كه مي‌دانيد ايندكس‌ها در دو نوع خوشه‌اي (cluster) و غيرخوشه‌اي (Non cluster) قابل ساخت هستند. ايندكس‌ها باعث افزايش سرعت خواندن اطلاعات به‌وسيله دستور Select مي‌شوند.
ما تعريف بي‌رويه آن‌ها در سيستم نيز باعث كاهش سرعت اجراي دستورات فرايندي مثل Insert ،Update و Delete  مي‌شود. بنابراين سعي كنيد ايندكس‌هاي ضروري را در سيستم تعريف كنيد. اما در اين راه دست و دلبازي بي‌مورد از خود نشان ندهيد. به عنوان مثال، فرض كنيد در يك شعبه اداره تأمين اجتماعي، جدولي ويژه تعريف بيمه‌شدگان به شكل زير وجود دارد.  

مبلغ

تاريخ

شماره سريال

1

جزء دوم كليد اوليه

جزء اول كليد اوليه

1

 

كليد خارجي از جدول قبل

1

جزئي از ايندكس خوشه اي

جزئي از ايندكس خوشه اي

جدولي نيز براي نگهداري وجه حق بيمه از بيمه‌شدگان نيز تعريف شده است.

همان‌طور كه مشاهده مي‌كنيد، ايندكس نوع خوشه‌اي به فيلدي داده شده كه نسبت به بقيه فيلدها در يك جدول كاربرد بيشتري دارد. چرا كه اين نوع ايندكس نسبت به نوع غيرخوشه‌اي سرعت بيشتري دارد. در ضمن در هر جدول از بانك اطلاعاتي شما فقط قادر به تعريف يك ايندكس خوشه‌اي هستيد كه انتخاب فيلد آن اهميت زيادي دارد. بنابراين لزومي ندارد فيلدي كه كليد اوليه است، حتماً به عنوان ايندكس خوشه‌اي انتخاب شود.

نكته مهم ديگر اين است كه لا‌زم است تمام كليدهاي اوليه جداول ايندكس داراي باشند (خوشه‌اي يا غيرخوشه‌اي) نكته ديگر در زمان ساخت ايندكس‌ها فاكتور پرشدن (Fill Factor) آن‌ها است. اين فاكتور در واقع بيانگر ميزان فضاي مياني است كه بايد براي ركوردهايي كه در آينده درج يا حذف مي‌شوند، خالي نگه داشته شود. بنابراين اگر احساس مي‌كنيد جدول شما به‌طور مداوم مورد عمليات حذف و درج (Insert،‌Delete) قرار مي‌گيرد، اين فاكتور را پايين (مثلاً 30 درصد) انتخاب كنيد. اما اگر صرفاً عمليات درج بر روي يك جدول انجام مي‌گيرد و ميزان حذف اطلاعات از آن بسيار كم است، مي‌توانيد اين ميزان را به ارقام بالاتر مثلاً 90 درصد افزايش دهيد. زيرا اين نوع جداول نيازي به داشتن فضاي خالي مياني براي ركوردهايي كه در آينده جانشين ركوردهاي حذف شده مي‌شوند، ندارد.

اين مسئله براي ايندكس‌هايي كه برروي ديدها (Indexed Views) ساخته مي‌شوند نيز صادق است. به‌طوركلي گذاشتن ايندكس برروي ديدها به افزايش سرعت آن‌ها كمك مي‌كند. در اين حالت، كليه مطالب مذكور از جمله سياست استفاده از ايندكس‌هاي خوشه‌اي و غيرخوشه‌اي و همچنينFill Factor در جداول، در مورد ديدها نيز عيناً بايد رعايت گردد.

4 - در هنگام نوشتن دستورات Select يا در هنگام ساختن ديدها، از استفاده بي‌مورد از پارامترهاي پردازش مثلDistinct و LIKE order by و لينك‌هاي خارجي (Outer join) اجتناب كنيد. در صورت استفاده از اين پارامترها، مطمئن باشيد كه گذاشتن آن‌ها كاملاً ضروري است و چاره ديگري نداريد.

5 - از واگذاري پردازش‌هاي رياضي يا آماري سنگين


مطالب مشابه :


دانلود نرم افزار های فارسی ( Farsi Tools )

براي نصب اين پكيج شما ميتوانيد پس از نصب آفيس 2007 در ويندزو هاي ايكس پي، ويستا قيمت: رايگان




فارسي ساز آفيس 2010 Microsoft Office 2010 Language Interface Pack Persian

براي نصب اين پكيج شما ميتوانيد پس از نصب آفيس 2010 در ويندزو هاي ايكس پي، ويستا قيمت: رايگان




فارسي ساز آفيس 2007 با غلط گير فارسي

دانلود تلاوت قرآن - بهترین تلاوت ها - فارسي ساز آفيس 2007 با غلط گير فارسي - دانلود تلاوت مجلسی




آشنايي با SQL Server 2005

SQL Server2005 در نسخه‌هاي مختلفي عرضه شده است كه از نظر كارايي و قيمت پكيج ‌هاي ويستا. تعمير




برچسب :