دیتابیس های خود را بشناسید (پارت سوم و آخر)

دیتابیس های خود را بشناسید (پارت سوم و آخر)

آنچه گذشت

در قسمت های قبلی با تاریخچه دیتابیس ها و دیتابیس های مدرن آشنا شدیم. 2 تکنولوژی بسیار مهم دیگر نیز وجود دارند که برای درک بهتر و انتخاب دیتابیس مناسب بهتر است آنها را بررسی کنیم.

دیتابیس های شی گرا( Object-Oriented )


این دیتابیس ها داده ها را در قالب اشیا(objects) و کلاس ها در خود ذخیره می کنند. اشیا المان های مختلفی هستند که میتوانند انواع متفاوتی داشته باشند. یک دیتابیس شی گرا، ترکیب دیتابیس های SQL(دارای مدل ارتباطی) مرسوم با ویژگی های شی گراییست. این دیتابیس ها یک جایگزین موثر دیتابیس های relational هستند. DBMS در این دیتابیس ها نیز یک برنامه ی دوگانه(hybrid) است که همزمان ویژگی های شی گرایی و ارتباطی را مدیریت میکند. این دوگانگی به این معنا است که این دیتابیس ها میتوانند ویژگی های دیتابیس های NoSQL را در کنار ویژگی های SQL داشته باشند.


ویژگی های شی گرایی:

  • اشیا(objects)
  • کلاس ها
  • وراثت
  • چندریختگی(polymorphism)
  • کپسوله سازی(Encapsulation)

ویژگی های ارتباطی(relational):

  • Atomicity
  • Consistency
  • Integrity
  • Durability
  • Concurrency
  • Query processing



دیتابیس های گراف


یک دیتابیس گراف در واقع یک دیتابیس NoSQL است که توانایی ذخیره اطلاعات به صورت گراف مانند را داراست. اطلاعات در این دیتابیس در دو نوع گره(node) و لبه(edge) دسته بندی می شوند. هر گره نمایانگر یک المان و هر لبه بیانگر ارتباط بین 2 گره خواهد بود. هر گره در یک دیتابیس گراف نمایانگر یک المان یکتا است.

زمانی که نیاز به بررسی و جستجوی ارتباط بین داده ها باشد این دیتابیس ها بهترین گزینه هستند، چراکه لبه ها ارتباط بین داده ها را به شکل بسیار مناسبی نشان میدهند.



دیتابیس های گراف قابلیت ذخیره ی ارتباطات( relationships ) پیچیده و نمایش دینامیک را دارند.


انتخاب دیتابیس مناسب

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

دیتابیس های SQL و NoSQL

ضمنا ما به تجربه خود پیشنهاد میکنیم ابتدا تصمیم بگیرید که میخواهید با دیتابیس های SQL یا NoSQL و یا Graph کار کنید و سپس با توجه به این انتخاب یکی از دیتابیس های زیر را انتخاب کنید:

  • اگر به یادگیری SQL متمایل هستید : Postgres (این دیتابیس یک دیتابیس شی گراست)
  • اگر به یادگیری NoSQL متمایل هستید: MongoDB
  • اگر به یادگیری دیتابیس های گراف علاقمند هستید: Neo4j


دقت داشته باشید که سالهاست دیگر نیازی به نوشتن ارتباط جزئی بین زبان برنامه نویسی و دیتابیس وجود ندارد و هر زبان برنامه نویسی back-end دارای ابزاری به نام ORM است که ارتباط بین برنامه و دیتابیس را به سادگی ممکن می کند؛ پس فقط یک دیتابیس را انتخاب کنید، ORM مورد نیاز را نصب و راه اندازی کنید و از کار خود لذت ببرید. پیشنهاد میکنیم برای کار محلی روی سیستم خود از docker image های آماده ی دیتابیس ها استفاده کنید که نیاز به نصب هسته ی این دیتابیس ها بر روی سیستم خود نداشته باشید.

آخرین نکته:

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

منبع این رشته مقالات:

https://www.javatpoint.com/dbms-tutorial

این منبع برای تصمیم گیری و انتخاب دیتابیس بسیار مناسب است اما بهتر است تنها برای همین مسئله استفاده شود و کار کردن با دیتابیس های را به ORM و راه اندازی آنها را به داکر بسپارید.