انبار داده

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

• انبار داده چیست؟

انـبـار داده بـه مجـموعـه ای از داده هــا گفـتـه می شود که از منابع مختلف اطلاعاتی سازمان جمع آوری ، دسته بندی و ذخیره می شود. در واقع یک انبار داده مخزن اصلی کلیه داده های حال و گذشته یک سازمان می باشد که برای همیشه جهت انجام عملیات گزارش گیری و آنالیز در دسترس مدیران می باشد. انبارهای داده حاوی داده هایی هستند که به مرور زمان از سیستم های عملیاتی آنلاین سازمان (OLTP) استخراج می شوند، بنابراین سوابق کلیه اطلاعات و یا بخش عظیمی از آنها را می توان در انبار داده ها مشاهده نمود.

از آنجائیکه انجام عملیات آماری و گزارشات پیچیده دارای بارکاری بسیار سنگینی برای سرورهای پایگاه داده می باشند، وجود انبار داده سبب می گردد که اینگونه عملیات تاثیری بر فعالیت برنامه های کاربردی سازمان (OLTP) نداشته باشد.

همانگونه که پایگاه داده سیستمهای عملیاتی سازمان (برنامه های کاربردی) به گونه ای طراحی می شوند که انجام تغییر و حذف و اضافه داده به سرعت صورت پذیرد، در مقابل انبار داده ها دارای معماری ویژه ای می باشند که موجب تسریع انجام عملیات آماری و گزارش گیری می شود (OLAP).

دلایل استفاده از انبار داده:

  1. تهيه گزارشات (Reports) و انجام پرس و جو هايي (Query) که نياز به عمليات ورودي/خروجي (IO) بسياري هستند:

    – از اهداف سيستمهاي پردازش تراکنش (TPS:Transaction Processing System) آن است که گزارشات مورد نياز بخش هاي عملياتي و مديريتي را توليد کنند. تهيه اين گزارشات معمولا سخت و باحجم زياد IO همراه است و باعث کند شدن خود سيستمها مي گردد. بنابراين شرکت هاي تجاري به دنبال راهي هستند تا در کمترين زمان و با کمترين هزينه به سيستم هايي دست يابند که زمان پردازش تراکنش ها در آن ها قابل قبول باشد. بهترين راهکار استفاده از DW هايي بود که از منابع IO مجزايي براي گزارش گيري و انجام پرس و جو استفاده مي کردند.


  2. استفاده از مدل هاي داده اي و يا تکنولوژي هاي سرور به منظور بالا بردن سرعت عمليات گزارش گيري و پرس و جو ها که سيستم هاي عادي پردازش تراکنش ها(TPS) براي آن ها مناسب نيست.

  3. ايجاد محيطي براي تسهيل و آسان نمودن به دست آوردن گزارش ها و پرس و جو ها و يا ايجاد وسيله اي براي سرعت بخشيدن به عمليات گزارش گيري:- غلب مي توان DW اي ساخت که کاربراني باسطح آگاهي کمتر بتوانند گزارش ها و پرس و جوهاي ساده اي را تهيه کنند.

  4. براي ايجاد انباري از داده هاي تصفيه شده ي سيستم هاي پردازش تراکنش ها (TPS)که مي توانند به طور پيوسته گزارش از آن تهيه نمود. اين انبار الزاماً احتياجي به ثابت بودت TPS ها ندارد DW. ها اين امکان را به شما مي دهند که داده ها را بدون تغيير دادن سيستم هاي پردازش تراکنش ها ،تصفيه کنند. (clean up) توجه کنيد که در برخي از پياده سازي ها ، DW ها به گونه اي هستند که در آن ها امکان يافتن اصلاحات انجام شده بر روي داده هاي DW و فرستادن feedback به TPS ها براي اعلام اين تغييرات ، وجود دارد. گاهي اوقات اين گونه رفتار کردن با تغييرات داده ها بامعناتر از اين است که تغييرات را به طور مستقيم بر روي خود TPS ها اعمال کنيم.

  5. براي آن که بر اساس قواعد ، گزارش گيري و پژوهش را بر روي داده هايي که از چندين TPS مختلف مي آيند و يا از يک منبع داده اي خارجي مي آيند، يا اينکه داده هايي هستند که تنها براي گزارش گيري و انجام تحقيقات بايد ذخيره شوند ، تسهيل بخشيم:- براي مدت زمان مديدي ، شرکت هايي که نياز به گزارش هايي بر پايه ي داده هاي چندين TPS مختلف ، داشتند ؛ مجبور بودند داده هاي هر TPS را بيرون کشيده ، سپس آن ها را مرتب نموده و در هم ادغام نمايند تا به داده ي چکيده اي برسند که مناسب گزارش گيري است در بسياري از موارد اين روش مناسب است.اما در شرکت هايي که با حجم عظيمي از داده هايي مواجه هستند که مرتباً نياز به مرتب سازي و ادغام دارند ؛ در صورتي که نياز به گزارش گيري از داده هاي تصفيه شده ي TPS ها داشته باشيم؛ DW ها کارايي بيشتري دارند.

  6. براي ايجاد مخزني از داده هاي TPS ها ، که شامل داده هاي يک بازه ي زماني بسيار طولاني هستند وبه همين دليل کارايي کنترل آن ها توسط خود TPS پايين مي آيد.

داده هاي قديمي تر غالباً از يک TPS خالي مي شوند تا زمان پاسخ مورد انتظار دراين سيستم ها ، به راحتي کنترل شود.براي انجام تحقيقات و گزارش ها ممکن است داده هاي قديمي و داده هاي جاري مورد نياز باشند که در اين موارد استفاده از DW به علت مهم نبودن زمان انتظار براي پاسخ ، مؤثر خواهد بود.

سیستمهای عملیاتی سازمان (OLTP) دارای نقاط ضعفی می باشند که انبار های داده آنها را رفع می‌کنند. از جمله:

  • بار پردازش گزارشات موجب کندی عملکرد برنامه های کاربردی می گردد.
  • پایگاه های داده برنامه های کاربردی دارای طراحی مناسبی جهت انجام عملیات آماری و گزارش نیستند.
  • بسیاری از سازمانها دارای بیش از یک برنامه کاربردی ( منابع اطلاعاتی) می باشند، بنابراین تهیه گزارشات در سطح سازمان غیر ممکن می شود.
  • تهیه گزارشات در سیستمهای عملیاتی غالبا نیازمند نوشتن برنامه های مخصوص می باشد که معمولا کند و پرهزینه هستند.

مراحل و نحوه ایجاد انبار داده در سازمان:

بسیاری از شرکت ها و سازمانها به این باور رسیده اند که گردآوری، سازمان دهی و یکپارچه سازی داده ها در یک مخزن داده برای مدیریت بهینه و اتخاذ تصمیمات کلان یک ضرورت می باشد.

به طور کلی ساخت یک انبار داده، به شکل یک پروژه شامل مراحل اصلی زیر می باشد:

استخراج داده های تراکنشی از پایگاه های داده به یک مخزن واحد

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

تبدیل داده ها

از آنجائیکه سیستمهای اطلاعاتی و برنامه های کاربردی یک سازمان غالبا توسط افراد و پروژه های مختلف به مـرور زمان در مواجهـه با نیـازهای جدید سـاخته یا تغییر شـکل داده می شـوند، یکسـان سـازی آنها امری ضروریمی باشد.در بسیاری از موارد نیز سیستمهای اطلاعاتی در بستر های مختلف پایگاه داده مانند Microsoft SQL Server ،Oracle ، Sybase ، Microsoft Access و غیره طراحی گردیده اند. بررسی جداول، برقراری ارتباط بین فیلدها و یک شکل سازی داده ها در این مرحله صورت می پذیرد.

بارگذاری داده های تبدیل شده به یک پایگاه داده چند بعدی

بر خلاف پایگاه داده سیستمهای عملیاتی (OLTP) که دارای معماری رابطه ای می باشند و از اصول نرمالیزه استفاده می کنند، طراحی انبار داده به شکلی ویژه بدون بهره گیری از اصول نرمالیزاسیون می باشد. درانبار داده فیلدها در جاهای مختلفی تکرار می شوند و روابط بین جداول کمتر به چشم می خورند. علت آن هم افزایش سرعت پردازش اطلاعات هنگام گزارشات و عملیات آماری می باشد.  

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

خصوصیات اصلی انبار داده:

1- مبتني بر موضوع:

  • سازماندهي داده­ها بسته به چگونگي ارجاع كاربران.

2- يكپارچگي

  • يكپارچه سازي اسامي.
  • يكپارچه سازي واحدهاي اندازه­گيري متغيرها.
  • يكپارچه سازي ساختارهاي داده­اي از نظر محدوده ارزشها.
  • حذف ناسازگاريها و اطلاعات متناقض.

3-  غير قابل تغيير

  • داده­هاي فقط خواندني

4- محدوده وسيع زماني

  • محيط هاي عملياتي: گستره زماني 60-90روز
  • پايگاه داده تحليلی: گستره زماني 5-10سال

5- خلاصه شده

  • داده هاي تحليلي مناسب براي تصميم­گيري­ها بر اساس اهداف تعيين شده

6- حجيم

  • به علت محدوده وسيع زماني

7- نرمال­ نشده

  • امكان وجود افزونگي

 

مزایا و معایب انبارداده:

با توجه به توضیحات قبلی به نظر میرسد که روش Data Warehousing مزیتهای زیادی دارد، یک فایده آن این است که Data warehousing برای برآورده کردن نیازهای تجزیه و تحلیل گر طراحی شده است، چون مجموعه ای از داده های مناسب و متناسب زمان را در خود دارد و برای Query با کارآیی زیاد بهینه شده است.

با یک داده در Data Warehouse کاربران سازمان لازم نیست با مدلهای مختلفی از داده سروکار داشته باشند و آنها را بدانند و لازم نیست که برای آنالیز کردن چند زبان اجرای Query را بدانند و همچنین یکپارچگی داده ها طراحی پردازشهای سیستم را ساده میکند، مثلأ نیازی به بهینه کردن Query برای منابع ناهمگون نیست زیرا که اجرای Query برای منابع ناهمگون یکی از مشکلات روشهای سنتی و قدیمی است.

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

هر روشی مزای و معایبی دارد و انبار داده نیز علاوه بر فوایدش معایبی هم دارد از جمله:

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