# پایگاه‌های داده > NoSQL >  نیاز به معرفی یک Object Database

## 13601360

سلام دوستان
امکانش هست یک object database معرفی کنید که از LINQ پشتیبانی کنه و همچنین یک محیط برای طراحی شِمای بانک داشته باشه
ممنون

----------


## مبین رنجبر

> سلام دوستان
> امکانش هست یک object database معرفی کنید که از LINQ پشتیبانی کنه و همچنین یک محیط برای طراحی شِمای بانک داشته باشه
> ممنون


سپاس از سوال خوبی که پرسیدید.پایگاه های داده ای شی-گرا انواع مختلف و برای زبان های مختلفی وجود داره و هرکدام هم با توجه به نیاز و وابستگی هر زبان طراحی شده است.شما برای اینکه بتوانید از Linq استفاده کنید خواه نا خواه باید از دیتابیس شی-گرایی استفاده کنید که برای زبان دات نت طراحی شده اند.2 مورد از این دیتابیس ها که من میشناسم SiaqoDB است و دیگری SterlingDB . برای مورد اولی ، محیط طراحی اسکیما یا همان شِمایی وجود دارد به نام SiaqoDB Manager که این کار را به خوبی انجام میدهد.ولی برای مورد دوم محیطی معرفی نشده.

وب سایت رسمی SiaqoDB :
http://siaqodb.com/

وب سایت رسمی SterlingDB :
http://sterling.codeplex.com/

----------


## 13601360

تشکر از لطفتون
SiaqoDB عالی بود ولی ظاهرا تجاری هست 
ببخشید یک سوال  دیگه هم داشتم
آیا این امکان هست که یک بانک اطلاعاتی رو به یک بانک شی گرا نگاشت کرد؟
یا چطور میشه ER model رو به یک object model تبدیل کرد؟ 
معادل کلیدهای مدل رابطه ای در مدل شی گرایی چی هست؟

----------


## مبین رنجبر

> تشکر از لطفتون
> SiaqoDB عالی بود ولی ظاهرا تجاری هست 
> ببخشید یک سوال  دیگه هم داشتم
> آیا این امکان هست که یک بانک اطلاعاتی رو به یک بانک شی گرا نگاشت کرد؟
> یا چطور میشه ER model رو به یک object model تبدیل کرد؟ 
> معادل کلیدهای مدل رابطه ای در مدل شی گرایی چی هست؟


همانطور که عرض کردم شما برای استفاده از LINQ باید از دیتابیس های شی-گرای تحت دات نت استفاده کنید که تعدادشون کم هم نیست.میتونید از SterlingDB هم استفاده کنید.

در مورد نگاشت باید عرض کنم سوالتون خیلی کلیه.گفتید "یک بانک اطلاعاتی" این بانک اطلاعاتی چی هست و اصلا چه خصوصیاتی دارد.هرچند که دیتابیس های شی-گرا دیتابیس های ترکیبی یا Hybrid هستند و میشه بیشتر مدل ها رو به دیتابیس های شی-گرا با در نظر گرفتن شرایطی نگاشت کرد.

در مورد تبدیل ER به OO هم باید عرض کنم به دلیل اینکه دنیای NoSQL دنیای پویایی است و هر روز تحقیقات جالبی در این موضوع انجام میشه هنوز ناشناخته ها زیاد هستند.در این مورد تحقیقی در دانشگاه ملی سنگاپور صورت گرفته که فایل pdf اون رو میتونید از این لینک تماشا کنید :
http://www.comp.nus.edu.sg/~lingtw/d...FAA93/P287.pdf

در مورد کلیدهای مدل شی-گرا بهم باید عرض کنم در مدل شی-گرا مفهوم کلید وجود ندارد و اصولا نیازی هم به کلید به هر نوع نیست.در مدل شی-گرا وقتی شیء ای ایجاد میشود یک "شناسه داخلی یکتا" به اون اختصاص داده میشه که حتی برنامه نویس هم نمی تواند آنرا مشاهده کند.منبع گفته هام در این مورد هم کتاب SQL Clearly Explained ویرایش سوم در بخش ۱۸ ام قسمت معرفی مدل شی-گرا می باشد.

----------


## 13601360

> در مورد نگاشت باید عرض کنم سوالتون خیلی کلیه.گفتید "یک بانک اطلاعاتی" این بانک اطلاعاتی چی هست و اصلا چه خصوصیاتی دارد.هرچند که دیتابیس های شی-گرا دیتابیس های ترکیبی یا Hybrid هستند و میشه بیشتر مدل ها رو به دیتابیس های شی-گرا با در نظر گرفتن شرایطی نگاشت کرد.


ممنون از پاسختون
عذرخواهی می کنم، منظورم بانک های رابطه ای بود
چون به نظر خودم جدا از بحث کارایی، شبیه ترین نوع بانک های اطلاعاتی NoSQL به بانک های رابطه ای، همین Object Databases هستند
البته نمی دونم تا چه حد این نظر درست هست.
همانطور هم که خودتون گفتید NoSQL و همچنین Big Data از موضوعات آینده دار هست
ولی بدلیل دید رابطه ای که داریم هنوز این نوع بانک ها اطلاعاتی برای افرادی مثل من ملموس نیست
و نمی دونیم در چه جاهایی می تونیم از بانک های NoSQL به عنوان جایگزینی برای یک بانک رابطه ای در پروژه خودمون استفاده کنیم.

----------


## مبین رنجبر

> ممنون از پاسختون
> عذرخواهی می کنم، منظورم بانک های رابطه ای بود
> چون به نظر خودم جدا از بحث کارایی، شبیه ترین نوع بانک های اطلاعاتی NoSQL به بانک های رابطه ای، همین Object Databases هستند
> البته نمی دونم تا چه حد این نظر درست هست.
> همانطور هم که خودتون گفتید NoSQL و همچنین Big Data از موضوعات آینده دار هست
> ولی بدلیل دید رابطه ای که داریم هنوز این نوع بانک ها اطلاعاتی برای افرادی مثل من ملموس نیست
> و نمی دونیم در چه جاهایی می تونیم از بانک های NoSQL به عنوان جایگزینی برای یک بانک رابطه ای در پروژه خودمون استفاده کنیم.


این نکته رو فراموش نکنید که NoSQL یک نوع یا مدل نیست.NoSQL به خودی خود یک جنبش است که خود مدل های بسیاری را شامل می شود.مثل مدل های سندگرا ، شی گرا ، کلید-مقدار ، مبتنی بر ستون و ... .

برای استفاده از NoSQL باید کاملا دیدی مستقل داشت و نمی توان دیدی که در دیتابیس های رابطه ای برقرار است مثل مفاهیم جدول،فیلد،رکورد و ... بر طبق اون رفتار کرد.

در مورد اینکه در چه زمانی از غیر رابطه ای و رابطه ای استفاده کنیم تاپیک های مختلفی در این بخش موجود است :

 پایگاه های داده ای رابطه ای یا غیر رابطه ای ؟ مسئله این است!


در چه زمانی از NOSQL استفاده کنیم؟

----------


## 13601360

در جستجویی که داشتم به یک پایگاه داده شی گرا به نام DB4Object برخورد کردم
که هم یک محیط طراحی به صورت پلاگین برای ویژوال استودیو داره و هم یک کتاب از انتشارات Apress به نام "The Definitive Guide to db4o" که می تونید از اینجا دانلود کنید
در کل انتخاب خوبی هست

----------

