پایگاه داده «Database» یکی از مهمترین اصطلاحات در علوم کامپیوتر و برنامه نویسی است. پایگاه داده مجموعهای از اطلاعات سازمان یافته است که به ترتیب و قواعد خاصی در کنار یکدیگر نگهداری میشوند. در این مقاله از سری مقالات آموزشی مجله پی استور میخواهیم پایگاه داده و انواع آن را توضیح دهیم.
مقدمه
امروزه حجم بزرگی از دادهها و اطلاعات هست که نقش خیلی مهمی در عصر تکنولوژی دارند. اگر این داده ها بدون نظم و امنیت در یک مکان ذخیره شوند پردازش و دسترسی به آنها تقریباً غیر ممکن خواهد بود.
ما با استفاده از پایگاه داده میتوانیم دادهها را ذخیره، سازماندهی و مدیریت کنیم تا نظم و امنیت را در ذخیرهسازی دادهها برقرار کنیم و به راحتی بتوانیم به دادهها دسترسی داشته باشیم.
داده چیست؟
داده مجموعهای از اطلاعات است که جمعآوری، ذخیره و پردازش میشوند. این اطلاعات می تواند به شکلهای مختلفی ماننداعداد، حروف، تصاویر، ویدئوها، صداها و غیره باشد. دادهها به عنوان بلوکهای سازنده اطلاعات محسوب میشوند و در واقع دنیای دیجیتال ما بر پایه دادهها بنا شده است. به زبان سادهتر، هر چیزی که بتوان آن را اندازهگیری، ثبت یا مشاهده کرد، یک داده محسوب میشود.
پایگاه داده چیست؟
پایگاه داده مجموعهای از داده ها و اطلاعاتی است که با نظم خاصی بر روی یک سیستم کامپیوتری ذخیره می شوند. این اطلاعات می تواند یک لیست ساده ی خرید باشد یا اطلاعات پیچیده ی یک شرکت بزرگ. یک بانک اطلاعاتی میتواند از یک یا چند جدول تشکیل شود که هر جدول شامل ستونها «columns» و سطرها «rows» است که با داده های مختلف پر می شوند.
مزایای استفاده از پایگاه داده
اطلاعاتی که در حافظه موقت (مانند Ram) ذخیره میشود، با بستن برنامه از بین میرود پایگاه داده این امکان را میدهد که دادهها به صورت دائمی ذخیره شوند. پایگاه دادهها به گونهای طراحی شدهاند که به سرعت میتوان به اطلاعات مورد نظر دسترسی پیدا کرد.
پایگاه دادهها معمولاً دارای مکانیزم های امنیتی هستند که از دادهها در برابر دسترسی های غیر مجاز، خرابیهای سخت افزاری و سایر تهدیدات محافظت میکنند.
پایگاه داده از چه قسمت هایی تشکیل شده است؟
پایگاه داده از پنج جزء اصلی تشکیل شده که عبارتند از:
- سخت افزار «hardware»: سخت افزار شامل اجزای فیزیکی و دستگاه ها است.
- نرم افزار «software»: مجموعه ای از برنامهها و دادهها برای مدیریت و کنترل پایگاه داده است که به رایانه داده میشود.
- داده «data»: مجموعهای از اطلاعات خام و پردازش نشده است.
- رویه ها «procedures»: مجموعهای از دستورات است که به عنوان یک واحد قابل اجرا ذخیره می شوند.
- زبان برنامه نویسی پایگاه داده «Database language programming»: با استفاده از زبان برنامهنویسی میتوان اطلاعات را بازیابی، دستکاری و مدیریت کرد.
انواع پایگاه داده
انواع مختلفی از پایگاههای داده وجود دارند که شناخت و درک دقیق آنها اهمیت زیادی دارد. و هریک از پایگاه دادهها کاربردهای متفاوتی دارند. در ادامه به معرفی انواع پایگاه داده میپردازیم.
۱- پایگاه داده رابطهای
پایگاه داده رابطهای «Relational database» نوعی از پایگاه داده است که درآن اطلاعات و دادهها در جدولهایی سازماندهی می شوند که هر جدول شامل سطرها و ستونهایی است که میتوانند بر اساس دادههای مشترک با یکدیگر به چندین جدول دیگر پیوند داده شوند. روابط بین داده ها از چندین جدول از طریق کلید ها برقرار می شود.
از مزایای پایگاه داده رابطه ای ساختار منظم و سلسله مراتبی،پشتیبانی از پرس و جوهای پیچیده و یکپارچگی داده ها است ولی ممکن است برای داده های غیر ساختیافته مناسب نباشد.
نمونهای از پایگاه داده رابطهای عبارتند از:
- Oracle
- MySQL
- PostgreSQL
- Microsoft SQL Server
- IBM Db
۲- پایگاه داده Nosql
پایگاه داده (Not only Database) nosql غیر جدولی هستند و ذخیره اطلاعات در آنها متفاوت از جداول رابطهای است.در واقع سیستم ذخیره سازی دادهها در این نوع پایگاههای دادهای به جای جدول، از سندها برای ذخیرهسازی اطلاعات استفاده می کند.
این پایگاه داده بر اساس مدل داده طبقهبندی میشوند و عملکرد آنها ارائه مکانیزمی برای ذخیره و بازیابی اطلاعات است.
از ویژگیهای این پایگاه داده این است که ساختار انعطافپذیرتری نسبت به پایگاه داده رابطهای دارد ، مناسب برای دادههای غیر ساختیافته و نیمهساختیافته است.
پایگاه داده nosql بیشتر برای پلتفرم های وبلاگ نویسی،سیستم cms،تجارت الکترونیک و تجزیه و تحلیل بلادرنگ استفاده میشود.
انواع پایگاه داده Nosql عبارتند از:
- پایگاه داده نموداری «Graph database»
- پایگاه داده کلید مقدار «Key – value database»
- پایگاه داده سند گرا «Document-oriented database»
- پایگاه داده ستون گسترده «wide-column database»
پایگاه داده نموداری
پایگاه دادههای نموداری «Graph database» نوعی از پایگاه دادههای Nosql هستند که برای مدل سازی داده ها به صورت گراف استفاده می شوند. در این نوع پایگاه دادهها، دادهها به صورت گرهها (Nodes) و یالها (Edges) نمایش داده میشوند. گرهها نماینده موجودیتها (مانند افراد، مکان ها، اشیاء) و یالها نماینده روابط بین آنها (مانند دوست بودن، داشتن، واقع در) هستند.
زمانی که روابط پیچیدهای بین دادهها وجود دارد و نیاز به انجام پرسوجوهای پیچیده وسریع دارید، پایگاه داده نموداری انتخاب بسیار مناسبی است.
این پایگاه دادهها برای تحلیل شبکههای اجتماعی، توصیه گرهای شخصی و بسیاری از کاربردهای دیگر مفید هستند.
پایگاه داده کلید مقدار
پایگاه داده کلید-مقدار «Key – value database» یکی از انواع پایگاه دادههای Nosql که به دلیل سادگی و سرعت در ذخیره و بازیابی اطلاعات بسیار محبوب است. در این نوع پایگاه داده، دادهها به صورت زوج کلید-مقدار (key-value) ذخیره میشوند. کلید به عنوان یک شناسه منحصر به فرد برای یک داده عمل میکند و مقدار خود داده است. فرض کنید یک دیکشنری دارید که در آن هر کلمه (کلید) به یک تعریف (مقدار) مرتبط است. در پایگاه داده کلید-مقدار نیز به همین شکل، هر کلید به یک مقدار خاص اشاره میکند.
از مزایای پایگاه داده کلید-مقدار سادگی، سرعت بالا، مقیاس پذیری و انعطاف پذیری است.
کاربرد های پایگاه داده کلید-مقدار عبارتند از:
- ذخیره سازی داده های جلسه «session Data»: اطلاعات مربوط به هر کاربر در یک جلسه وب.
- کش «cache»: ذخیره موقت دادهها برای بهبود عملکرد برنامه ها.
- پیکربندی سیستم: ذخیره تنظیمات و پارامتر های سیستم.
- داده های شمارنده: شمارش تعداد بازدیدکنندگان یک وب سایت یا تعداد کلیک بر روی یک لینک.
پایگاه داده سند گرا
پایگاه دادههای سند گرا «Document-oriented database» یکی از انواع پایگاه دادههای Nosql که در آن داده به صورت اسناد ذخیره میشوند. هر سند در واقع یک واحد داده مستقل است که میتواند شامل تصویرها، ویدیوها و مقالهها باشد. این اسناد شباهت زیادی به اسناد JSON دارند و به همین دلیل انعطافپذیری بالایی در ساختار دادهها فراهم میکنند.
MongoDB یکی از محبوب ترین پایگاه دادههای سند گرا است که از زبان پرسوجوی قدر تمند MongoDB Language استفاده میکند.
پایگاه دادههای سندگرا یک گزینه بسیار خوب برای مدیریت دادههای نامنظم و نیمه ساختار یافته هستند.همچنین این نوع پایگاه دادهها انعطافپذیر و مقیاسپذیر هستند.
پایگاه داده ستون گسترده
پایگاه دادههای ستون گسترده «wide-column database» نوع دیگری از پایگاه دادههای Nosql هستند که در کنار پایگاه دادههای ستونی، برای مدیریت دادههای ساختار نیافته و نیمه ساختار یافته به کار میروند. در حالی که پایگاه دادههای ستونی دادهها را به صورت ستونی ذخیره میکنند. پایگاه دادههای ستون گسترده انعطافپذیری بیشتری را در ساختار دادهها ارائه میدهند.
از پایگاه داده ستون گسترده میتوان در دادههای تولید شده توسط سنسورها (که ساختار مشخصی ندارند) و دادههای مربوط به کاربران (مانند تنظیمات، تاریخچه جستجو) و دادههای زمانی (که به صورت سری زمانی ذخیره می شوند) استفاده کرد.
Apache Cassandra: یکی از محبوب ترین پایگاه دادههای ستون گسترده است.
۳- پایگاه داه متمرکز
پایگاه داده متمرکز «Centralized database» پایگاه دادهای است که در یک مکان قابل دسترسی ذخیره و نگهداری می شود. این نوع پایگاه داده از خود آن مکان اداره، اصلاح و مدیریت می شود. این مکان یک سیستم پایگاه داده یا کامپیوتر مرکزی است. برای رسیدن به مکان متمرکز(LAN,WAN,…) اتصال به اینترنت مورد نیاز است.
یک پایگاه داده متمرکز توسط موسسات(مانند دانشگاه) و سازمانها(مانند شرکت تجاری) برای نگهداری مربوط به عملیات خود استفاده می شود.
۴- پایگاه داده توزیع شده
پایگاه داده توزیع شده «Distributed Database» نوعی پایگاه داده است که در آن دادهها به جای ذخیرهسازی در یک مکان واحد، در چندین مکان فیزیکی مختلف توزیع میشوند. این مکانها که دادهها در آن ذخیره میشوند گره یا سایت گفته میشود و از طریق یک شبکه به هم متصل هستند.
یک پایگاه داده توزیع شده توسط سیستمهای بزرگ و پیچیده مانند سیستمهای بانکی، مخابراتی و تجارت الکترونیک استفاده میشود و همچنین در پردازش دادههای بزرگ مانند تحلیل دادههای علمی و مهندسی کاربرد دارد.
۵- پایگاه داده ابری
پایگاه داده ابری «cloud database» نوعی پایگاه داده است که به جای ذخیره شدن در سرورهای فیزیکی یک سازمان، بر روی زیرساختهای ابری میزبانی میشوند. این نوع پایگاه داده به کاربر این امکان را میدهد که بدون نیاز به فراهم آوردن سختافزار و نرمافزارهای مختلف، به اطلاعات پایگاه داده دسترسی ۲۴ ساعته داشته باشد. دسترسی به این نوع پایگاه داده با استفاده از اینترنت میباشد.
از مزایای پایگاه داده ابری عبارتند از:
- مقیاس پذیری آسان: با افزایش حجم دادهها، میتوانید به راحتی حجم پایگاه داده خود را افزایش دهید.
- دسترسی از هر نقطه: تنها با اتصال به اینترنت میتوانید به دادههای خود دسترسی داشته باشید.
- کاهش هزینهها: نیازی به خرید سخت افزار های گران قیمت ندارید.
- امنیت بالا: ارائه دهندگان خدمات ابری اقدمات امنیتی قوی برای محافظت از دادهها انجام میدهند.
- پشتیبانی ونگهداری: چون پایگاه داده ابری توسط شرکتها ارائه داده می شوند. این شرکتها وظیفهی پشتیانگیری از اطلاعات را بر عهده دارند.
- کاهش زمان راه اندازی: می توانید به سرعت یک پایگاه داده ابری را راه اندازی کنید.
از پایگاه داده ابری می توان در توسعه نرم افزار ،تجارت الکترونیک، تحلیل داده، بیمارستان ها، شرکت های مالی استفاده کرد.
۶- پایگاه داده شی گرا
پایگاه داده شیگرا «Object – oriented Database» نوعی سیستم مدریت پایگاه داده است که دادهها را در قالب اشیا ذخیره میکند که هر شی دارای ویژگیها و رفتارهای مرتبط با خود هستند. اشیا را میتوان با استفاده از تکنیکهای برنامهنویسی شیگرا ذخیره، بازیابی و دستکاری کرد تا کار با ساختارهای پیچیده داده آسانتر شود.
در یک پایگاه داده شیگرا دادهها با استفاده از مفاهیم شیگرا مانند کلاسها، وراثت و کپسوله سازی مدل میشوند.
از مزایای پایگاه داده شی گرا مدل سازی پیچیده دادهها و یکپارچگی با زبانهای برنامهنویسی شیگرا است. ولی عملکرد این نوع پایگاه داده ممکن است کمتر از پایگاه داده رابطهای باشد.
۷- پایگاه داده ستونی
پایگاه داده ستونی «Columnar Database» نوعی پایگاه داده است که برخلاف پایگاه داده رابطهای سنتی (که داده ها را به صورت سطری ذخیره می کند ) دادهها را به صورت ستونی ذخیره میکند. این ساختار منجر به بهینه سازیهای قابل توجهی در پردازش پرسوجوهای تحلیلی آنلاین میشود و برای تحلیل حجم عظیمی از داده ها بسیار مناسب است.
در پایگاه دادههای ستونی دادههای هر ستون به صورت متوالی ذخیره میشوند که باعث کاهش I/O و افزایش سرعت پردازش میشود.
۸- پایگاه داده سلسله مراتبی
پایگاه داده سلسله مراتبی «Hierarchical database» نوعی از پایگاه داده است که داده در آن به صورت سلسله مراتبی و با ساختار درختی سازماندهی میشوند. در این مدل، هر رکورد دارای یک والد است، به جز رکورد ریشه که هیچ والدی ندارد. این ساختار شبیه یک درخت خانوادگی است که در آن هر فرد یک پدر یا مادر دارد.
برای مثال در ساختار سازمانی یک شرکت، مدیر عامل ریشه درخت است و مدیران بخشها فرزندان او هستند. کارمندان هر بخش نیز فرزندان مدیر آن بخش هستند.
اگر با داده هایی سر و کار دارید که به صورت طبیعی سلسله مراتبی هستند و نیاز به یک مدل داده ساده و کار آمد دارید، این نوع پایگاه داده میتواند گزینه مناسبی باشد. اما برای کاربردهای پیچیده تر و دادههای بزرگتر، بهتر است از مدل های دیگری مانند پایگاه داده رابطه ای یا Nosql استفاده کنید.
۹- پایگاه داده شبکه ای
پایگاه داده شبکهای «Network Database» یکی از مدلهای قدیمی پایگاه داده است که بر اساس روابط شبکهای بین دادهها طراحی شده است. در این مدل، هر رکورد میتواند با چندین رکورد دیگر مرتبط باشد واین روابط به صورت شبکه نمایش داده می شوند.
مدل شبکه ای به دلیل پیچیدگی بالا، درک و مدیریت آن دشوار است.
پایگاه داده شبکهای شباهت زیادی به پایگاه داده سلسله مراتبی دارد. در مدل سلسله مراتبی هر والد میتواند چندین فرزند داشته باشد، اما یک فرزند فقط میتواند یک پدر و مادر داشته باشد. در پایگاه داده شبکه ای گرهها می توانند چندین اتصال به گرههای دیگر داشته باشند و این باعث میشود ساختار انعطافپذیرتر و پیچیدهتری داشته باشند.
جمع بندی
پایگاه داده به عنوان یک ابزار قدرتمند، نقش بسیار مهمی در توسعه نرمافزار ایفا میکند. انتخاب نوع مناسب پایگاه داده برای هر پروژه، به عوامل مختلفی مانند حجم داده، نوع داده، عملکرد مورد نیاز و بودجه بستگی دارد. درک تفاوت بین انواع مختلف پایگاه داده به شما کمک می کند تا بهترین انتخاب را برای نیازهای خود داشته باشید.
با سلام
مطالب خیلی ارزشمندی هست ممنون
مقاله خیلی خوبی بود و به صورت جامع به انواع پایگاه داده پردخته شده. ممنون از نویسنده محترم این مقاله
ممنون برای انرژی مثبتی که دادید.