سفارش تبلیغ
صبا ویژن
فانتوم
صفحه اصلی وبلاگ
پارسی بلاگ
شناسنامه من
ایمیل من
من در یاهو
 RSS 
اوقات شرعی
چهارشنبه 85 اسفند 2 ساعت 5:10 عصربانک های اطلاعاتی شی گرا

بسمه تعالی 
بانک های اطلاعاتی شیء گرا 
 

1 . مقدمه 
شی گرائی از همان روزهای اولیه ظهورش به عنوان یک الگو برنامه نویسی قوی و مفید شناخته شد .  بیشترین قدرت شی گرائی ناشی از قابلیت ان در مدلسازی پدیدهای دنیای واقعی می باشد .  قدرت دیگر شی گرائی استفاده مجدد کد ( code reusable ) می باشد  که باعث می شود میزان کد مورد نیاز به شدت کاهش یابد .

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

ما در این تحقیق سعی می کنیم خصوصیات یک سیستم شی گرا را بررسی کرده و نقاط قوت و ضعف بانکهای شی گرا را بیان می کنیم .   
2. موفقیتهای بانک اطلاعات شیئ گرا

OODB به نسبت سیستم رابطه ای، نمایش اشیائ مختلط و مرکب را بسیار اسان کرده است.در این قسمت ما در باره بعضی از موفقیت های OODB صحبت می کنیم :

OODB به افراد اجازه تعریف تجرید را می دهد، توسعه بعضی از ارتباطات را اسان می کند، نیاز به کلید های تعریف شده توسط کاربر را از بین می برد ،مجموعه جدیدی از تساوی مستندات را توسعه داده است، در بعضی موارد نیاز به پیوند را حذف می کند ، در بعضی موارد کارایی بیشتری نسبت به مدل رابطه ای دارد،  برای versioning (تغییرات چند نسخه ای) و تراکنش بلند مدت پشتیبانی می شودو در نهایت جبر شیئ گرا توسعه یافته است. 
OODB به افراد اجازه تعریف تجرید را می دهد

OODB قابلیت تعریف مجردات جدید و کنترل پیاده سازی انها را داراست.مجردات جدید میتوانند ساختمان داده مورد نیاز برای کارهای پیچیده را تطبیق دهند.به همین خاطر ، بسته های OODB به کاربران اجازه تعریف کلاسهای جدید با متد ها وصفات خاص خود را می دهند ، کلاسهایی دارند که صفات ومتد های خود را از کلاسهای اصلی به ارث می برند،هر نمونه از کلاس را با یک شناسه واحد می سازد،نمونه ها را تکی یا دسته جمعی بازیابی می کندو متد ها را بار و اجرا میکند.OODB همچنین تعریف یک شیئ به عنوان مجموعه ای از اشیائ دیگر را مجاز می شمارد و این مجموعه ها می توانند در چندین مرحله تودرتو بیایند. همچنین خاصیت ها نیز ساختار مختلط دارند و می توانند با استفاده از سازنده مجموعه تعریف شوند. بعلاوه ،می توانند اشیاء غیر اصلی را به عنوان مقدار داشته داشته باشند ، که ساختار عمیق اشیاء تودرتو را میسر می سازد.

خواص چند مقداری در OODB برای شرح ساختمان داده های مختلط بکار می روند.در مدل رابطه ای این کار با استفاده از پیوندها و روابط اضافی انجام می گیرد.

یک مثال از OODB که شامل تمام ترکیب بالا باشد ENCORE می باشد.مدل داده ها در ENCORE بر پایه داده مجرد می باشد. ENCORE به ما اجازه استفاده از  زیرنوع (وراثت) ، بسته بندی ، ساختارهای مختلط ، شناسایی اشیاء و متد های late binding را می دهد. ENCOREهمچنین توانایی برقراری ارتباط بین اشیاء بوسیله خاصیت ها را فراهم می کند. در ENCORE ، یک خاصیت می تواند بدون هیچ دستوری بین یک شیئ و مجموعه ای از اشیائ ارتباط برقرار کند ، که این ممکن است بوسیله ارجاع مستقیم به شناسه مجموعه صورت گیرد یا با یکسان قرار دادن مقادیر بعضی از خاصیت ها (پیوند) انجام شود. 
OODB توسعه بعضی از ارتباطات را اسان می کند

OODB طرحی برای ارتباط معکوس پیشنهاد می کند، که نقش ارتباط دو طرفه بین دو شیئ را ایفا می کند . این درستی ارجاعات را با ایجاد یک ارجاع مشابه به محض ساخته شدن ان ، تضمین می کند . یک مثال از OODB که به طور اتوماتیک از ارتباط معکوس پشتیبانی می کند ObjectStore می باشد. 
OODB نیاز به کلید های تعریف شده توسط کاربر را از بین می برد

مدل OODB یک OID دارد که بطور اتوماتیک توسط سیستم ساخته می شود و یکتایی هر شیئ را تضمین می کند.این خاصیت بهمراه حذف نیاز به کلید های تعریف شده توسط کاربر مزایای دیگری برای OODB به ارمغان اورده است :

  1. OID نمی تواند بوسیله برنامه های کاربردی اصلاح شود.
  2. شناسه اشیاء ، یک شناسه سازگار و جداگانه را فراهم می کند که به چگونگی دسترسی یا ایجاد شیئ بستگی دارد.

بنابر این دو شیئ  متفاوتند اگر OID های متفاوتی داشته باشند، اگرچه آنها ساختار یکسانی داشته باشند و برای همه خواص ، مقادیر یکسان باشد.

توسعه مجموعه جدیدی از تساوی مستندات

در مدل رابطه ای تساوی همیشه بر پایه مقدار بود ، انجا دو تاپلی زمانی یکی می شدند که تمام صفات کلید انها مقادیر یکسانی داشته باشند . بهرحال در OODB انواع مختلف تساوی ها تعریف و توسعه داده شده اند :

  1. تساوی شناسه اشیاء :دو شیئ وقتی برابرند که OID یکسانی داشته باشند
  2. تساوی مقدار اشیاء: این به دو صورت تعیین می گردد.
    • دو شیئ اولیه برابرند اگر مقادیر یکسانی داشته باشند.
    • دو شیئ غیر اصلی برابرند اگر دارای تعداد خواص برابر باشند و برای هر خاصیت مقدار برابر داشته باشند.
  1. برابری مقادیر خواص.
  2. برابری شناسه های  خواص.

 
OODB نیاز به پیوند را کاهش می دهد

قابلیت هدایت از طریق  ساختار اشیاء  و بدست اوردن عبارات مسیر در صفات شیئ ، یک دید کلی از پیوند ها در OODB را به ما می دهد . پیوند رابطه ای یک مکانیزم برای ارتباط  دو رابطه بر پایه مقادیر متناظر یا صفات روابط می باشد.از انجائیکه در OODB ممکن است جفت متناظری از صفات داشته باشیم ، هنوز پیوند رابطه ای ضروری بنظر می رسد. برای مثال فرض کنید ما یک کلاس student و یک کلاس school داریم و هر دوی اینها صفات name و age را دارند که دامنه این دو در دو کلاس متفاوت می باشد و حال می خواهیم بر پایه مقادیر این صفات ارطباطی بین دو کلاس برقرار کنیم ! ( تمام دانش اموزانی که سن شان از سن مدرسه شان کمتر باشد ) .

ولی همانطور که در بالا اشاره شد ، عبارات مسیر در مقایسه با مدل رابطه ای بطور چشمگیری نیاز به پیوند کلاس ها را کاهش می دهند.این همانوقتی است که نیاز به پیوند رابطه ای حذف می شود. برای مثال وقتی دامنه صفات کلاس A ،B باشد، اوردن OID اشیاء در یک کلاس که به عنوان مقادیر یک صفت در کلاس دیگر ذخیره شده اند ، نیاز به یک پیوند ضمنی را از بین می برد.

بنابراین در OODB بین پیوند ضمنی که وراثت تودرتوی اشیاء سرچشمه می گیرد و پیوند صریح که شبیه پیوند رابطه ای ، دو شیئ صریحا با تساوی مقادیر یا شناسه با هم مقایسه می شوند ، تفاوتی وجود دارد . بعلاوه تمام پیوند های صریح نمی توانند در زبان رابطه ای تعریف شوند ، زیرا هر گزاره در مدل رابطه ای تنها میتواند با صفات تجزیه ناپذیر درگیر شود. Union شیئی را که در مجموعه P یاQ یا هر دو باشد بر می کرداند. Diffrence اشیائی که در P باشند ودر Q نباشند را باز می گرداند.select یک زیر مجموعه از ورودی را باز می گرداند. Generate اشیائی از مجموعه های ورودی می سازد. Map مجموعه اشیاء نتایج هر برنامه کاربردی را بر می گرداند. 
 
OODB در بعضی موارد کارایی بیشتری نسبت به مدل رابطه ای دارد

اگر چه اکثر OODB های موجود سیستم های بانک اطلاعات کاملا مستعدی در قیاس با RDB های کنونی نیستند ، ولی به نسبت چند منبع بهره کارائی دارند :

1. در یک OODB ، مقدار یک صفت یک شیئ X  که دامنه اش شیئ Y میباشد، OID مربوط به Y  است. بنابراین اگر یک  برنامه کاربردی X را بازیابی کرده باشد و بخواهد Y را هم بازیابی کند، سیستم بانک اطلاعات ممکن است شیئ Y را با نگاه به OID ان بازیابی کند. اگر OID یک ادرس فیزیکی یک شیئ باشد، شیئ ممکن است مستقیما بازیابی شود واگر ادرس منطقی باشد ، شیئ ممکن است با مراجعه به hash table بدست اید (فرض کنید سسیستم یک hash table را برای نگاشت OID به ادرس فیزیکی نگهداری می کند). ازانجائیکه RDB ها OID ها را نگه داری نمی کنند، این کار برای انها غیر ممکن است.

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

3.همچنین، اگرچه OODB ها شاخص گذاری نشده اند، شاید بهترباشد پرسش های دلخواه متناسب با ساختار شیئ را اجرا کنیم که بوسیله مرور ترتیبی، مسیر ارجاع بین اشیاء را استخراج می کند. زمانیکه پرسش بطوریکه با ارجاع پشتیبانی نشود ، فرمول بندی شود ، پرسش بصورت مرور ترتیبی پردازش می شود. بهرحال پرسش هایی که در روابط شیئ فرمول بندی شده اند و کاملا با ارجاع مدل شده اند ، با بی کفایتی اجرا شده اند. 
OODB  برای versioning و تراکنش بلند مدت پشتیبانی می شود

تغییرات چند کاربره و تراکنش بلند مدت در مدل رابطه ای  حضور نداشت ولی بعضی ازOODB ها ان را با تسهیلات خیلی محدود ارائه می کنند.

OODB جبر شیئ گرا توسعه یافته است

نه به اندازه پیشرفت جبر رابطه ای ، جبر شیئ گرا انقدر بهبود یافته که پنج شیئ نگه دار را تعریف کرده : union , diffrence , select , generate ,map . بقیه عملگر ها مانند intersection ممکن است با همین عملگر های پایه تعریف شوند. در حالی که پردازه نگاشت برای عملگر های union , diffrence , map یک به یک می باشد ، نگاشت عملگر های select , generate یک به چند هستند . نگه داری شیئ بدین معناست که عملگر های جبر اشیائی را برمی گردانند که که منطبق بر کلاسهای از پیش تعریف شده بانک اطلاعات باشد و شیئ جدید نمی سازد.

3. ضعف های بانک اطلاعات مدل شیئ گرا

انتظار می رود که فناوری شیئ گرا یک پرش کوانتومی به در فناوری بانک اطلاعات را بهمراه داشته باشد ولی مدل OODB بخاطر نقاط ضعفی که هنوز در ان هست قادر به انجام ان نیست

در OODB فقدان یک طرح پایه که کاربران سیستم های بانک اطلاعات  به ان عادت داشته باشند ، به چشم می خورد.طرح شامل اینهاست: فقدان همکاری بین RDB ها و OODB ها، کمبود بهینه سازی پرسش ها ، فقدان جبر پرسش استاندارد ، فقدان سهولت پرسش ، عدم پشتیبانی از نما ، نگرانی امنیت ، عدم پشتیبانی از تغییرات تعریف کلاس پویا ، پشتیبانی محدود از قیود ثابت ، امکانات محدود انجام میزان سازی ، پشتیبانی اندک از اشیاء مختلط ، یکپارچگی محدودد

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

RDB ها و OODB فقدان همکاری بین

برای اینکه OODB ها یک تاثیراساسی به بازار بانک اطلاعات وارد کنند ،باید این موارد انجام

شود :

  1. OODBهآ باید سیستم های بانک اطلاعات کاملا مستعد و به اندازه کافی سازگار با مدل رابطه ای بشوند ، یک مسیر بسوی همزیستی و مهاجرت تدریجی از محصولات جاری به محصولات جدید نیاز است.
  2. ابزار دستیابی به بانک اطلاعات و ابزار توسعه برنامه ها باید برای اینگونه بانک های اطلاعات توسعه یابند.
  3. باید معماری OODB وRDB یکپارچه شود.
  4. باید مدل های داده OODB  و RDB یکپارچه شود.

کمبود بهینه سازی پرسش ها

یکی از بزرگترین مسائل OODB ها بهینه کردن اعلان پرسش ها می باشد. پیچیدگی های اضافی مدل داده شیئ گرا بهینه سازی پرسش هایOODB را دشوار ساخته است. این پیچیدگی اضافی

بدین دلایل می باشد :

1. انواع داده اضافی – کلاس های مشتق شده و انواع تعریف شده توسط کاربر می توانند هم به بهینه سازی پرسش ها کمک کرده وهم ان را خنثی کنند.

2 . تعویض گوناگونی نوع ها- پرسش ها ممکن است بر پایه عملگر های روی مجموعه باشند ولی بهینه سازی که به مجموعه ها ( یا مجموعه های چند گانه یا لیست یا..) بستگی دارد ، به ترکیب با بهینه سازی انواع اشیاء درون مجموعه ها ، نیاز دارد.یک بهینه ساز پرسش شیئ گرا باید قادر به بکار بردن بهینه سازی ویژه انواع و بهینه سازی ارتباط اشیاء انواع مختلف باشد.

3.اشیاء مختلط ، متد ها و بسته بندی به پیچیدگی پردازش پرسش درOODB اضافه می کنند. اشیاء مختلط عبارات مسیر هایی می سازند که پردازش پرسش ها را پیچیده می کند.ساختمان شاخص های عبارات مسیر بویژه در بخش متد های دلخواه در مسیر ، پردازش پرسش ها را پیچیده می کند. این مشکل بدتری است اگر متد ها تاثیرات جانبی داشته باشند. مشکل دیگر عبارات مسیر این است که پیچیدگی زمانی به اندازه متد های مسیر را پیشنهاد می کند که مکن است خیلی ناکارامد باشد.

4.زبان های پرسش OODB استفاده از ساختار های تودرتو را پشتیبانی می کنندکه ممکن است پیچیدگی پردازش بهینه سازی را خیلی بیافزاید و ان را از یک مشکل محلی به یک مشکل سراسری تبدیل کند که به دانش کل عبارات پرسش نیازمند است.

5. هویت شیئ  -  وقتی که اشیاء هویت داشته باشند ، چه چیزی تساوی دو شیئ را تشکیل می دهد.  این به زبان واگذار می شود ، جائیکه عملگر  های تساوی  در گزاره ها استفاده می شوند و یک تصمیم در خصوص ساخت اشیاء جدید با یک پرسش باید اتخاذ شود. بهینه سازی مدل های شیئ گرا باید قادر به درگیری با ساخت اشیاء جدید و تعاریف گوناگون تساوی باشد. 
بدلیل مسائلی که در بالا بحث شد ،بهینه سازی پرسش های شیئ گرا خیلی دشوار است و هنوز در مرحله تحقیق قرار دارد. OODB های امروزه استراتژی  بهینه سازی ساده تر را پیشنهاد می کنند. همچنین بهینه سازی پیوند ها موضوعی است که باید بیشتر مورد توجه قرار گیرد.

فقدان جبر پرسش استاندارد

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

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

فقدان سهولت پرسش

اکثر OODB ها از فقدان سهولت پرسش رنج می برند . در چند سیستمی هم که مفاهیم سهولت پرسش را فراهم کرده اند، زبان پرسش با ANCI SQL سازگار نمی باشند. سهولت پرسش شامل اینها نمی باشد : پرسش های تودرتو ، پرسش های مجموعه (union intersection , difference) ، تجمع توابع ، GROUP BY وپیوند کلاس های چندگانه.

همچنین هیچ شیئ پرسش استانداردی وجود ندارد و هنوز سعی و تلاش زیادی  برای مطرح شدن object SQL نیاز می باشد. 

عدم پشتیبانی از نما

OODB ها از نما ها پشتیبانی نمی کنند . ولی اگر چه مشکلات بسیاری وجود دارد، توافقاتی برای چگونگی اجرای مکانیزم نما ها برای OODB صورت گرفته است.توسعه نماهای شیئ گرا با طرح هایی مانند هویت شیئ بسیار پیچیده است.( هویت شیئ در یک نما چیست ؟). از طرف دیگر ، دلایلی دارند که بسته بندی و وراثت ،  تعریف نمای صریح را غیر ضروری می کند.

OODB نگرانی امنیت در

زمانیکه مدل رابطه ای Athorization را پشتیبانی می کردند اکثر زبان های OODB از ان پشتیبانی نمی کردند.مدل رابطه ای به کاربران این اجازه را می دهند که امتیازخواندن یا تغییر

تعاریف و تاپلی ها در روابط و نماها را Revoke , Grant کنند

بعضی از OODB ها نیاز دارند که کاربر صریحا قفل ها را قرار داده و مدیریت کنند ولی در مدل رابطه ای این عمل بصورت خودکار انجام می شود.

عدم پشتیبانی از تغییرات تعریف کلاس پویا

علاوه بر این حقیقت که هنوز هیچ مدل داده استاندارد تنهایی برای OODB ها وجود ندارد ، بیشترOODB ها تغیرات پویا را در شمای بانک اطلاعات مجاز نمی دانند، مانند : اضافه کردن یک صفت یا متد جدید در یک کلاس،اضافه کردن یک ابر کلاس به یک کلاس، حذف یک ابر کلاس از یک کلاس ، اضافه کردن یک  کلاس، حذف کردن یک کلاس . ولی مدل رابطه ای این

را با دستور Alter در اختیار کاربران میگذارد.

اکثر OODB ها مدیریت خودکار بسط کلاس را ارائه نمی دهند و اگر یک بسط کلاس لازم باشد ، کابر باید یک مجموعه برای ان تعریف کند و ان را در insertion , deletion به روز نگه دارد.

پشتیبانی محدود از قیود ثابت

هیچ مکانیزمی برای مواردزیر وجود ندارد:

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

امکانات محدود انجام میزان سازی

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

اجازه انجام میزان سازی سیستم را می دهد.

پشتیبانی اندک از اشیاء مختلط

اشیاء مختلط هنوز کاملا پشتیبانی نمی شود. همه ارجاعات برای اشیاء مستقل می باشند و مفاهیم ارنباطات ویژه بین اشیاء مختلط در عملیات تدارک داده شده توسط کاربران نهفته است.

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

بازنویسی برنامه های شیئ گرا برای مدیریت داده های مانا بسیار مشکل است . چندین مشکل پیش می اید :

1) برخورد نام گذاری. 

2) سلسله مراتب کلاس ها باید باز نویسی شود.

3) OODB ها تمایل به باز نویسی عملیات سیستم دارند.

بازدهی محدود

اگر همه برنامه های بانک اطلاعات فقط به مراجعه به OID نیاز داشتند ، اشاره گرهای حافظه یا اشیاء بانک اطلاعات بقیه اشیاء را با بازدهی دو یا سه برابر در حاافظه قرار می دهند. بهرحال اکثر برنامه ها یی که به مرجعه به OID نیاز دارند ، به بانک اطلاعات نیز دسترسی دارندو تجهیزات را به روز می کنند. این تجهیزات شامل این موارد می باشند : بار کردن بدنه بانک اطلاعات ، ساخت و بروز رسانی و حذف اشیاء منحصر به فرد ( همه در یک زمان) ، بازیابی یک یا چند شیئ از یک کلاس  که شرایط جستجوی معین را قانع کند ، پیوند بیش از یک کلاس ، انجام تراکنش و... 

OODB برای اینگونه برنامه ها هیچ گونه بازدهی نسبت به مدل رابطه ای ندارد.


متن فوق توسط: مهدی طوسی نوشته شده است| نظرات دیگران ( نظر)

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