اصول تجميع و يکپارچه سازي داده ها Data Integration

اصول تجميع و يکپارچه سازي داده ها Data Integration
اصول تجميع و يکپارچه سازي داده ها Data Integration


 






 
براي يک فرد متوسط، فناوري اطلاعات (IT) يک دنياي اسرارآميز به حساب مي آيد که با زبان هاي برنامه نويسي غيرقابل فهم و سخت افزارهاي گرانقيمت پر شده است. گوش دادن به صحبت هاي تکنيسين هاي IT مانند اين است که تصادفاً به مکالمه اي در يک زبان بيگانه گوش مي دهيد. اما عليرغم اين موانع ظاهراً غيرقابل نفوذ، شناخت دنياي IT براي تصميم گيرندگان در بنگاه هاي تجاري و سازمان هاي گوناگون از اهميت حياتي برخوردار است. يکي از مهمترين تصميمات IT، تجميع داده ها (Data Integration) است.
در ظاهر، تجميع داده ها چيزي شبيه به يک ايده ساده به نظر مي رسد. از آنجائيکه بسياري از سازمان ها اطلاعات خود را بر روي بانک هاي اطلاعاتي متعدد نگهداري مي کنند، به روشي براي بازيابي داده ها از منابع مختلف و همگذاري آنها با يک شيوه يکپارچه نياز دارند. براي مثال، اجازه بدهيد فرض کنيم که يک شرکت الکترونيکي براي ارائه ي يک ابزار موبايل جديد آماده مي شود. بخش بازاريابي اين شرکت احتمالاً مي خواهد اطلاعات مشتريان را از يک بانک اطلاعاتي بخش فروش استخراج کرده و آن را با اطلاعات بخش محصول مقايسه نمايد تا يک فهرست فروش هدفمند را ايجاد کند. يک سيستم خوب تجميع داده ها به بخش بازاريابي اجازه خواهد داد تا اطلاعات هر دو منبع را با يک شيوه ي يکپارچه مشاهده نموده و هر اطلاعاتي که به جستجوي مورد نظر مربوط نمي شود را کنار بگذارد.

داده (Data) چيست؟
 

داده مي تواند هر نوع اطلاعاتي باشد. اين اطلاعات مي تواند محتويات يک سلول بر روي يک صفحه ي گسترده، يک فايل صوتي يا ويدئوئي، يک رشته از کلمات در يک سند، اطلاعات خام ايجاد شده بعنوان خروجي يک برنامه کامپيوتري و يا اطلاعات مورد استفاده براي توصيف يک فايل باشد. تجميع داده ها بر روي اطلاعات تمرکز مي نمايد، نه فايل ها.
در واقعيت، تجميع داده ها يک فرآيند نسبتاً پيچيده است. هيچ روش فراگيري براي تجميع داده ها وجود ندارد و بسياري از تکنيک هاي مورد استفاده متخصصين IT هنوز در مرحله رشد و تکامل قرار دارند. بعضي از روش هاي تجميع داده ها براي يک سازمان بهتر از ساير روش ها عمل مي کنند که اين موضوع کاملاً به نيازهاي آن سازمان بستگي خواهد داشت. ما در اين مقاله به بررسي بعضي از استراتژي هاي عمومي که متخصصين IT از آنها براي ادغام منابع متعدد داده ها استفاده مي کنند پرداخته و وارد دنياي مديريت بانک اطلاعاتي خواهيم شد.

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

تجميع داده ها اصولاً بر بانک هاي اطلاعاتي تمرکز دارد. يک بانک اطلاعاتي، يک مجموعه سازماندهي شده از داده ها است. اين مجموعه به يک سيستم فايل شباهت دارد که يک ساختار سازماندهي براي فايل ها است تا يافتن، دسترسي و دستکاري آنها آسان باشد.
روش هاي مختلفي براي دسته بندي بانک هاي اطلاعاتي وجود دارد. بعضي از مردم ترجيح مي دهند که آنها را براساس نوع داده هايي که در بانک هاي اطلاعاتي ذخيره مي شوند، طبقه بندي کنند. براي مثال اگر تمام اطلاعات ذخيره شده در يک بانک اطلاعاتي حاوي فايل هاي صوتي يا ويدئوئي باشد، مي توانيد آن را بعنوان يک بانک اطلاعاتي رسانه اي دسته بندي نمائيد.
روش ديگر طبقه بندي، به نحوه سازماندهي داده ها در بانک اطلاعاتي توجه مي کند. چيدمان سازماني يک بانک اطلاعاتي تحت عنوان الگو يا شماي آن (Schema) شناخته مي شود. يک تکنيک رايج سازماندهي، استفاده از جداول براي نمايش رابطه ي ميان واحدهاي داده (Datat Points) است. جداول شبيه صفحات گسترده هستند. ستون ها دسته بندي داده ها را تعيين مي کنند در حاليکه رکوردها در سطرها قرار گرفته اند. يک بانک اطلاعاتي که از اين روش استفاده مي کند، يک بانک اطلاعاتي رابطه اي (Relational) به حساب مي آيد.
بانک هاي اطلاعاتي OOP(Object-oriented programming) روش متفاوتي را براي سازماندهي داده ها بکار مي گيرند. زبان OOP يک جابجائي از روشهاي سنتي برنامه نويسي به حساب مي آيد که از الگوي درج داده ها در يک مجموعه از دستورالعمل ها و سپس توليد خروجي، پيروي مي نمايند. در مقابل، زبان OOP بر روي تعريف داده ها بصورت آبجکت ها و سپس تعريف نحوه ي ارتباط و تعامل آبجکت هاي مختلف با يکديگر، تمرکز مي کند.
براي ايجاد يک بانک اطلاعاتي OOP، شما ابتدا بايد تمام آبجکت هايي که در نظر داريد در بانک اطلاعاتي ذخيره شوند را تعريف نمائيد. سپس، بايستي روش ارتباط هر آبجکت با هر آبجکت ديگري در داخل بانک اطلاعاتي را تعريف کنيد. پس از شناسايي يک آبجکت، آن را در يک کلاس يا مجموعه اي از آبجکت ها قرار مي دهد. براي تعريف يک کلاس، شما بايد تعريف کنيد که هر يک از آبجکت هاي داخل آن کلاس بايد چه داده هايي داشته باشد و چه توالي منطقي (که Method ناميده مي شود) بر اين آبجکت ها تأثير خواهد گذاشت. آبجکت هاي داخل يک سيستم مي توانند با استفاده از اينترفيس هايي که پيام (Messages) نام دارند، با شما و يا ساير آبجکت ها ارتباط برقرار کنند.
درک اين وضعيت با يک مثال آسانتر خواهد بود. اجازه بدهيد فرض کنيم که شما در حال ايجاد يک بانک اطلاعاتي حاوي اطلاعاتي درباره ي ورزش ها هستيد. شما تصميم مي گيريد که کار را با تعريف تيم هاي فوتبال شروع کنيد. پس از آنکه تعاريف مربوط به يک تيم فوتبال را ايجاد کرديد، مي توانيد آن را بعنوان يک کلاس در داخل بانک اطلاعاتي، عمومي سازي نمائيد. بايرمونيخ مي تواند يک نمونه ي خاص از اين کلاس باشد که در عين حال بعنوان يک آبجکت نيز شناخته مي شود. کلاس تيم هاي فوتبال به يک سوپرکلاس از تيم هاي ورزشي دنيا تعلق دارد که کلاس هاي ديگري نظير تيم هاي واليبال و هندبال را نيز در بر مي گيرد.
براي دسترسي به اطلاعات داخل يک بانک اطلاعاتي (صرفنظر از نحوه ي سازماندهي داده ها در آن)، شما از يک جستار (Query) استفاده مي کنيد. يک جستار تنها يک درخواست براي اطلاعات است. کاربران و نرم افزارهاي کاربردي مي توانند جستارهاي خود را به بانک هاي اطلاعاتي بفرستند. يک بانک اطلاعات با ارسال داده هايي که با معيار درخواست اوليه انطباق دارند، به جستارها پاسخ مي دهد. جستارها بر زبان هاي کامپيوتري خاصي نظير SQL(Structured Query Language) تکيه دارند. اگر تاکنون از يک موتور جستجوي اينترنتي استفاده کرده باشيد، يک جستار (يعني عبارات جستجوي فرد) را ارسال کرده ايد.
بانک اطلاعاتي با ايجاد يک نما (View) از داده ها، به جستارها پاسخ مي دهد. يک نما، شيوه ي خاصي براي نمايش داده ها به حساب مي آيد. در يک سيستم تجميع داده ها، نماي برگردانده شده تنها داده هايي را نشان مي دهد که مستقيماً با جستار اوليه ارتباط دارند. در جدول مثال ما، اگر يک جستار را ارسال نموده و نام تمام مشترياني که محصولاتي با ارزش بيش از 100 دلار خريداري کرده اند را درخواست کنيد، نمائي شبيه به جدول [2] را دريافت خواهيد کرد.
اين نما، صرفاً داده هاي مرتبط با جستار «مشترياني که بيش از 100 دلار خريد انجام داده اند» را نشان مي دهد. توجه داشته باشيد که اين نما نشان نمي دهد که چه نوع محصولي توسط اين مشتريان خريداري شده است و در عين حال مشترياني که ميزان خريد آنها کمتر از 100 دلار بوده است را نيز نشان نمي دهد.

شيوه هاي تجميع داده ها
 

با مطالعه بخش قبلي، ممکن است تصور کنيد که بانک هاي اطلاعاتي ماهيت هاي بسيار پيچيده اي دارند. اين يک فرضيه کاملاً درست است و به توضيح اين موضوع کمک مي نمايد که چرا تجميع داده ها حتي با وجود آنکه بيش از 30 سال از عمر آن مي گذرد هنوز يک روند در حال رشد و تکامل را طي مي کند. هدف تجميع داده ها، گردآوري داده ها از منابع مختلف، ترکيب آنها و نمايش آنها با شيوه اي است که همانند يک کل واحد به نظر برسند. اجازه بدهيد فرض کنيم که شما مي خواهيد به مسافرت برويد و پيش از آنکه در مورد مسير خروج از شهر تصميم بگيريد، مي خواهيد از وضعيت ترافيک مطلع شويد. حال اجازه بدهيد نحوه ي اداره ي جستار شما توسط شيوه هاي مختلف تجميع داده ها را بررسي کنيم:
شيوه ي تجميع دستي، تمام کار را بر عهده ي خودتان مي گذارد. پيش از هرچيز شما بايد بدانيد که کجا به جستجوي داده هاي مورد نظرتان بپردازيد. بايد از محل فيزيکي گزارش ترافيک و نقشه ي شهر خودتان اطلاع داشته باشيد. شما نياز داريد که گزارش ترافيک و داده هاي نقشه را مستقيماً از بانک هاي اطلاعاتي متناظر آنها بازيابي نموده و سپس اين دو مجموعه از داده ها را با يکديگر مقايسه کنيد تا بتوانيد بهترين مسير براي خروج از شهر را مشخص نمائيد.
اگر از يک شيوه ي "اينترفيس کاربري مشترک" استفاده مي کرديد، مي توانستيد کار کمتري را انجام دهيد. شما در اين شيوه بايد از يک اينترفيس نظير وب جهان گستر براي ايجاد يک جستار استفاده نمائيد. نتايج جستار بصورت يک نما بر روي اينترفيس ظاهر خواهند شد. شما هنوز بايد گزارش ترافيک و نقشه را براي تعيين بهترين مسير مقايسه کنيد، اما حداقل اينترفيس کار مکان يابي و گردآوري داده ها را بر عهده مي گيرد.

اين يک پيروزي بود
 

صفحات پورتالي نظير iGoogle و يا My Yahoo، مثال هايي از اينترفيس هاي کاربري مشترک هستند. پورتال ها تمام اطلاعات را از منابع مختلف گردآوري مي نمايند، اما داده ها را در يک نماي متحد تجميع نمي کنند.
بعضي از شيوه هاي تجميع، براي انجام تمام کارهاي فوق الذکر به نرم افزارهاي کاربردي نياز دارند. نرم افزارهاي کاربردي که برنامه هاي کامپيوتري تخصصي هستند، وظيفه ي مکان يابي، گردآوري و تجميع اطلاعات براي شما را بر عهده دارند. در طول فرآيند تجميع، نرم افزارهاي کاربردي بايد داده ها را طوري دستکاري نمايند که اطلاعات يک منبع با اطلاعات منبع ديگر سازگار باشد. در مثال ما، اين فرآيند به معناي آن است که شما يک جستار را به يک نرم افزار کاربردي مي فرستيد و سپس نرم افزار کاربردي نمائي را در اختيار شما قرار مي دهد که يک نقشه از شهرتان را با داده هاي بدست آمده از گزارش هاي ترافيکي ترکيب مي نمايد. مشکل اين شيوه در آن است که با افزايش تعداد فرمت ها و منابع داده، نرم افزارهاي کاربردي نيز پيچيده تر گرديده و برنامه نويسي آنها دشوارتر مي شود.
سپس نوبت به شيوه ي ذخيره سازي داده مشترک مي رسد که تحت عنوان «انبارداري داده ها» (Data Warehousing) نيز شناخته مي شود. با استفاده از اين روش، تمام داده ها از بانک هاي اطلاعاتي مختلفي که تصميم به تجميع آنها داريد استخراج، تبديل و بارگذاري مي شوند. اين بدان معني است که انبار داده ها تمام داده ها را از منابع مختلف داده ها گردآوري مي کند. سپس اين انبار، تمام داده ها را به يک فرمت مشترک تبديل مي کند تا هر مجموعه از داده ها با مجموعه ي ديگر سازگار باشد. سپس انبار، اين داده هاي جديد را در بانک اطلاعاتي خودش بارگذاري مي نمايد. هنگاميکه شما جستار خودتان را ارسال مي کنيد، انبار داده ها اطلاعات مربوطه را يافته، آنها را بازيابي کرده و سپس در يک نماي تجميع شده به شما ارائه مي نمايد. با استفاده از مثال ما، انبار داده ها بايد آخرين اطلاعاتي که بر اساس گزارش هاي ترافيکي و نقشه هاي شهر شما در اختيار دارد را بيابد. سپس، اين دو مجموعه با يکديگر تجميع شده و نماي بدست آمده براي شما ارسال مي گردد.
فرض اکثر طراحان سيستم هاي تجميع داده بر اين است که هدف نهائي، ايجاد کمترين حجم کاري ممکن براي کاربر نهائي مي باشد و به همين دليل بيشتر بر روي تکنيک هاي انبارداري داده ها و نرم افزارهاي کاربردي تمرکز مي کنند.

انبارهاي داده
 

همانطور که قبلاً ديديم، يک انبار داده عملاً يک بانک اطلاعاتي است که اطلاعات ساير بانک هاي اطلاعاتي را با استفاده از يک فرمت مشترک ذخيره سازي مي نمايد. اين تقريباً مشخص ترين تعريفي است که در هنگام توضيح انبارهاي داده مي توانيد از آن استفاده کنيد. هيچ تعريف متحدي وجود ندارد که تعيين کند انبارهاي داده چه هستند و يا طراحان چگونه بايد آنها را ايجاد کنند. در نتيجه، شيوه هاي متفاوتي براي ايجاد انبارهاي داده وجود دارند و يک انبار داده مي تواند ظاهر و رفتار بسيار متفاوتي نسبت به يک انبار داده ديگر داشته باشد.
بطور کلي، جستارهايي که به انبارهاي داده فرستاده مي شوند، در مدت بسيار کوتاهي پاسخ مي گيرند. دليل اين مسئله آن است که انبارهاي داده از قبل بخش عمده اي از کار استخراج، تبديل و ترکيب داده ها را انجام داده اند. وجهي از انبار داده که به سمت کاربر قرار مي گيرد. Front-End ناميده مي شود. بنابراين از يک ديدگاه Front-End، انبارداري داده ها يک شيوه ي کارآمد براي تجميع داده ها به حساب مي آيد.
از نقطه نظر Back-End، اين فرآيند يک داستان کاملاً متفاوت به حساب مي آيد. مديران بانک هاي اطلاعاتي بايد تفکر فراواني را در يک سيستم انبارداري داده صرف کنند تا آن را کارآمد و مؤثر نمايند. تبديل داده هاي جمع آوري شده از منابع مختلف در يک فرمت مشترک، مي تواند فوق العاده دشوار باشد. اين سيستم به يک شيوه ي همسان براي تشريح و کدگذاري داده ها نياز دارد.
بانک اطلاعاتي مورد استفاده انبار داده بايد به اندازه ي کافي بزرگ باشد تا داده هاي جمع آوري شده از منابع متعدد را ذخيره نمايد. بعضي از انبارهاي داده ها شامل يک مرحله ي اضافي با نام «بازارچه ي داده» (Data Mart) هستند. انبار داده، وظايف جمع آوري داده ها را بر عهده مي گيرد، در حاليکه Data Mart با بازيابي و ترکيب داده هاي مقتضي از انبار، به جستارهاي کاربر پاسخ مي دهد.
يکي از مشکلات انبارهاي داده اين است که اطلاعات در آنها هميشه جاري و بروز نيستند. دليل اين مسئله به شيوه ي کار انبارهاي داده مربوط مي شود: آنها اطلاعات را بطور متناوب از ساير بانک هاي اطلاعاتي گردآوري مي کنند. اگر داده هاي بانک هاي اطلاعاتي منبع در فاصله زماني بين دو استخراج تغيير کنند، جستارهاي انجام شده بر روي انبار داده نمي تواند دقيق ترين و جاري ترين نماها را ارائه نمايد. اگر داده ها در يک سيستم به ندرت تغيير مي کنند، اين وضعيت مشکل بزرگي به حساب نخواهد آمد. با اينحال، در ساير موارد مي تواند مشکل ساز باشد.
با بازگشت به مثال خودمان درباره ي گزارش ترافيک و نقشه ها، شما مي توانيد ببينيد که اين وضعيت چگونه مي تواند به يک مشکل جدي تبديل شود. در حاليکه نقشه هاي شهر به بروزرساني هاي مداوم نياز ندارند، اما شرايط ترافيکي مي توانند در يک دوره ي زماني کوتاه بطور قابل ملاحظه اي تغيير کنند. يک انبار داده نمي تواند داده ها را در دفعات بسيار زيادي استخراج نمايد و اين بدان معني است که اطلاعات حساس به زمان در آن نمي توانند قابل اعتماد باشند. براي اين نوع کاربردها، بهتر است از يک شيوه متفاوت براي تجميع داده ها استفاده کنيم.

م تاديتا
 

توضيحات مربوط به يک داده تحت عنوان Metadata شناخته مي شوند. متاديتا براي نامگذاري و تعريف داده ها و همچنين توصيف رابطه ي يک مجموعه از داده ها با مجموعه ي ديگر، مفيد است. سيستم هاي تجميع داده ها از متاديتا براي مکان يابي اطلاعات مرتبط با جستارها استفاده مي کنند.

بانک هاي اطلاعاتي شبکه سازي شده
 

براي سيستم هاي تجميع داده هايي که بر اطلاعاتي با تغييرات مداوم تکيه دارند، يک انبار داده نمي تواند ايده آل باشد. يک روش که متخصصين IT براي حل اين مشکل بر روي آن کار مي کنند، طراحي سيستم هايي است که داده ها را مستقيماً از منابع داده مجزا گردآوري نمايند. از آنجائيکه هيچ بانک اطلاعاتي مرکزي به آناليز، دسته بندي و تجميع داده ها در آماده سازي نما براي جستارهاي کاربر اختصاص نيافته است، اين مسئوليت هاي به ساير بخش هاي سيستم سپرده مي شوند.
متخصصين IT سيستم هاي تجميع داده ها را بصورت شماتيک تعريف مي کنند. نماي متحدي که از يک جستار پردازش شده توليد مي گردد، شماي عمومي (Global Schema) نام دارد. ساختار منابع داده مختلف و شيوه ي ارتباط آنها با يکديگر، شماي منبع (Source Schema) ناميده مي شود. نحوه ي وابستگي دو شماي عمومي و منبع، نگاشت (Mapping) نام دارد. شما مي توانيد نماي منبع را بصورت يک Bluprint براي تمام داده هاي داخل سيستم در نظر بگيريد، در حاليکه شماي عمومي يک Blueprint براي نماي ارائه شده در پاسخ به يک جستار است.
دو شيوه ي اصلي براي پاسخ به جستارها در يک سيستم تجميع داده وجود دارد: Global-as-View و Local-as-View. هر يک از اين شيوه ها بر روي يک بخش بخصوص از سيستم کلي تمرکز دارند و از مزايا و معايب مخصوص به خود برخوردار مي باشند.
در يک شيوه Global-as-View، تمرکز بر روي نماي عمومي است. ماداميکه منابع داده ثابت باشند، اين شيوه بخوبي کار خواهد کرد. تغيير چيدمان شماي عمومي بسيار آسان خواهد بود و اين بدان معني است که آناليز يک مجموعه ي کلي واحد از داده ها با روش هاي مختلف چندان دشوار نخواهد بود. با اينحال، اضافه کردن و يا حذف منابع داده به / از سيستم مي تواند مشکل ساز باشد، زيرا بر داده هاي سراسر سيستم بعنوان يک "کل" تأثير مي گذارد.
تکنيکLocal-as-View روش وارونه اي را پيش مي گيرد. اين تکنيک بر منابع داده تمرکز دارد. ماداميکه شماي عمومي ثابت بماند، اضافه و يا حذف کرن منابع داده به سيستم بسيار آسان خواهد بود. اين شما (Schema) در داخل منابع داده جديد به جستجوي انواع مشابهي از داده ها و روابط مي پردازد. در اين روش، تغيير پارامترهاي شماي عمومي کار دشوار است. اگر بخواهيد منابع داده را به روش جديدي آناليز کنيد، بايد کل سيستم را مجدداً تعريف نمائيد.
حالا شما از داستان تجميع داده ها اطلاع داريد. دفعه بعدي که به يک نقشه ي هواشناسي نگاه مي کنيد و يا يک مجموعه فيلترگذاري شده از داده ها را بررسي مي نمائيد، مي دانيد چه مجموعه ي پيچيده اي از پردازش ها در پشت صحنه جريان دارند تا دستيابي به اين اطلاعات امکانپذير گردد.

سيستم هاي متحد
 

سيستم هاي FDBMS(Federated database system)، مجموعه هايي از بانک هاي اطلاعاتي خود گردان شبکه سازي شده هستند. اين سيستم ها، وظايف بسيار سنگيني را اداره مي نمايند:
پذيرش جستارهاي کاربر
تقسيم جستارها به چند جستار فرعي (Sub-Queries)
استفاده از برچسب هاي ويژه اي با نام Wrapper براي تعريف جستارهاي فرعي بصورتي که هر بانک اطلاعاتي مرتبط قادر به درک آنها باشد.
ارسال اين جستارهاي فرعي برچسب گذاري شده به بانک هاي اطلاعاتي مقتضي
پذيرش داده هاي برگردانده شده از اين بانک هاي اطلاعاتي
تجميع تمام داده ها در يک نماي متحد و يکپارچه
ارائه ي اين نما به کاربر
ايجاد و نگهداري اين سيستم بسيار دشوار است که دليل آن تا حدود زيادي به طبيعت پيچيده ي بانک هاي اطلاعاتي مربوط مي شود.
منبع: ماهنامه ي کامپيوتري بزرگراه رايانه، شماره ي 130



 

نسخه چاپی