به طور کلی پایگاه داده یا Database، فضایی برای ذخیره سازی داده ها و اطلاعات به صورت منظم و ساختیافته است. در واقع به فضایی که اطلاعات به یک صورت تعیین شده در آن ذخیره گردد، پایگاه داده یا دیتابیس میگویند. با استفاده از پایگاه داده، میتوان اطلاعات را به آسانی ذخیره، بازیابی و مدیریت کرد، همچنین دسترسی به این داده ها نیز بهآسانی صورت میپذیرد.
داده های موجود در پایگاه داده
تقریبا هرگونه اطلاعاتی که قابل ذخیره شدن درون پایگاه داده ها هستند، دادههای رشتهای مانند نام و نام خانوادگی کاربران، دادههای عددی مانند میزان موجودی حسابهای بانکی، دادههای زمانی مانند زمان انجام یک تراکنش و بسیاری از انواع دادههای دیگر. این داده ها در ساختاری که از پیش بهوسیله طراحهای پایگاه داده یک ارگان طراحی شده است ذخیره میگردد. به عنوان نمونه در مثال زیر اطلاعات ذخیره شده دو دانشآموز در جدول اطلاعات دانشآموزان را مشاهده میکنید:
معدل کل | مقطع تحصیلی | سن | نام خانوادگی | نام |
---|---|---|---|---|
18.33 | دوم دبیرستان | 16 | قلیزاده | علیرضا |
17.54 | دوم دبیرستان | 15 | تبریزی | آرمان |
در این جدول پنج نوع داده وجود دارد که سه تای آنها (نام، نام خانوادگی و مقطع تحصیلی) از نوع رشته و دو تای دیگر از نوع داده عددی هستند.
کاربردهای پایگاه داده
- برای ذخیره اطلاعات: از مهمترین کاربرد پایگاه داده و اولین هدف از ساخته شدن آن، ذخیره داده ها بوده است. امروزه ردپای پایگاه داده تقریبا در تمامی حوزهها مشاهده میشود، از سایتهای فروشگاهی، مدارس، آموزشگاهها و بیمارستانها گرفته تا خانههای هوشمند و ابزارهای هوش مصنوعیهوش مصنوعی (AI) چیست؟ انواع، کاربردها، مزایا و معایبهوش مصنوعی یا Artificial Intelligence یا به اختصار AI، امروزه کاربردهای بسیاری پیدا کرده و به یکی از داغترین حوزههای بشر تبدیل شده است، اما با این وجود بسیاری از افراد با کاربردهای آن آشنایی کامل ندارند، به همین علت در این صفحه کاربردها، مزایا و معایب AI بطور کامل بررسی شده است همگی به نوعی از پایگاه داده برای ذخایر اطلاعات استفاده میکنند.
- بررسی اطلاعات کاربران: با استفاده از ابزارهایی که پایگاه داده ها در اختیار ما میگذارند و نحوه ذخیره اطلاعات در آنها، میتوان اطلاعات کاربران را بررسی کرد و از آنها برای موارد مختلفی استفاده کرد، به عنوان مثال برنامههایی مانند اینستاگرام با بررسی داده های کاربران مانند صفحات دنبال شده، پستهای ذخیره شده، لایکها و موارد دیگر میتواند سلیقه کاربران را تشخیص داده و محتواهایی که برای آنها به نمایش میگذارد را با توجه به سلیقه آنها مرتب کند.
- برای ذخیره داده های شخصی: یکی دیگر از موارد استفاده پایگاه داده ها که امروزه همهگیر شده است، استفاده از آن به عنوانی مکانی برای ذخیره داده های شخصی مانند فایلها، تصاویر، اسناد و... است. فضاهای ابری مانند Google Drive، One Drive و ICloud نمونههای موفقی از این پایگاه داده ها برای ذخیره اطلاعات شخصی هستند.
- استفاده برای مباحث آماری: با تجزیه و تحلیل اطلاعات استخراج شده از پایگاه داده ها میتوان به مباحث آماری کمک کرد، به عنوان مثال کاربران یک فروشگاه بیشتر از چه محصولاتی استفاده میکنند؟ میانگین معدل دانش آموزان یک شهر چقدر است؟ چه تعداد از بیماران کرونایی سابقه بیماریهای زمینهای دارند؟ سرانه مطالعه کتاب در یک کشور چقدر است؟ امکان یافتن پاسخ تمامی این پرسشها بهوسیله اطلاعات ذخیره شده در پایگاه داده وجود دارد.
انواع پایگاه داده
پایگاه داده رابطه ای (Relational)
یکی از معروفترین، قدیمیترین و پرکاربردترین نوع پایگاه داده، پایگاه داده رابطه ای است. در این پایگاه داده، از جدولها (Table) استفاده میشود تا بتوان داده ها را سازماندهی کرد و از راههای مختلف بتوان به آنها دسترسی داشت. داده ها در دستهها و نوعهای از پیشتعریف شدهای (Category) درون این جداول قرار میگیرند. جدولها شامل ستونهایی (Columns) میباشند که هر ستون یک نوع دستهبندی خاص دارد. همچنین داده ها نیز در سطرهای (Row) این جدول ذخیره میشوند. به عنوان مثال جدول یا Table مربوط به مشخصات افراد میتواند شامل ستونهای نام، نام خانوادگی از نوع رشته (String) و سن از نوع عددی (Number) باشد. نمونه این نوع پایگاه داده را قبلتر در مثال دانشآموزان بررسی کردیم. پایگاه داده رابطه ای از SQL استفاده میکند. همچنین سیستم مدیریت پایگاه داده رابطه ای، RDBMS که مخفف Relational Database Management System است نام دارد. عملیات مربوط به پرسوجو یا کوئری (Query) از پایگاه داده، ذخیره، مدیریت و استخراج داده ها به وسیله ی RDBMS انجام میشود.
مزایای پایگاه داده رابطه ای
- سادهتر بودن مدل و کار با این نوع پایگاه داده نسبت به مابقی مدلهای پایگاه داده
- استفاده، کنترل و مدیریت آسان
- دقت یا Accuracy بالا
- یکپارچگی داده ها
- امنیت بالا
معایب پایگاه داده رابطه ای
- مشکلات نگهداری با افزایش تعداد داده ها
- هزینه نگهداری بالا
- نیازمند بودن به تعداد حافظه فیزیکی بالا
- مقیاس پذیری ضعیف
- کاهش پرفورمنس در طول زمان
پایگاه داده توزیع شده (Distributed)
پایگاه داده های توزیع شده در یک مکان فیزیکی قرار ندارند، بلکه در سیستمهای مختلفی قرار گرفتهاند و توسط ارگانهای مختلف مدیریت میشوند. بنابراین ذخیره فایلها و رکورها نیز در مکانهای مختلفی صورت میپذیرد. همچنین پردازش داده های ذخیره شده به صورت متمرکز نمیباشد و توزیع شده است. سیستمهایی که این نوع دیتابیس را پیادهسازی و مدیریت میکنند، هم میتوانند از سختافزارهای یکسان استفاده کرده باشند و نرمافزارهای یکسانی را اجرا کنند، و هم میتوانند کاملا متفاوت از یکدیگر باشند.
پایگاه داده NoSQL
به طور کلی، این پایگاه داده برخلاف پایگاه داده رابطه ای، از نظم و ساختاری پیروی نمیکند. بنابراین برای داده های بزرگ و حجیم مانند سرویسهای مجازی در فضای ابری، داده های Track شده توسط هوش مصنوعی و بسیاری از موارد دیگر، استفاده از پایگاه داده NoSQL میتواند گزینه بهتری باشد. پایگاه داده NoSQL به جای ذخیره داده ها در جدولها و سطرها، معمولا آنها را در قالب فایل های JSON به صورت کلید-مقدار یا Key-Value ذخیره میکند. در نهایت اینکه به این نوع پایگاه داده به اصطلاح پایگاه داده غیر رابطه ای یا No-Relational نیز میگویند.
مزایای پایگاه داده NoSQL
- مقیاسپذیری بالا، برخلاف پایگاه داده رابطه ای
- دسترسی پذیری بالا به علت پشتیبانی از Auto Replication
معایب پایگاه داده NoSQL
- نبود هیچ استاندارد قابل اطمینان به دلیل Open Sourceاوپن سورس یا متن باز چیست؟ اوپن سورس به چه معناست؟اوپن سورس یا متن باز چیست؟ این صفحه عالی به بررسی این موارد و همچنین تاریخچه نرم افزار متن باز و نحوه به کارگیری متن باز در توسعه نرم افزار پرداخته است بودن
- چالشبرانگیز بودن و سختتر بودن مدیریت نسبت به پایگاه داده های رابطه ای
- نداشتن هیچ رابط کاربریرابط کاربری یا ui چیست؟ – تفاوت ui و ux + مراحل طراحی uiاین مقاله عالی بررسی کرده که رابط کاربری ui چیست، همچنین تفاوت های UI و UX و مراحل طراحی UI و همچنین اصول طراحی رابط کاربری و سبک های طراحی UI را بررسی کرده گرافیکی یا GUI
- نداشتن رویکردی قوی برای بکآپگیری
پایگاه داده های ابری (Cloud)
این پایگاه داده در نوعهای مختلف عمومی، خصوصی و ترکیبی ساخته شدهاند و به طور معمول کاربران با توجه به فضایی ذخیرهسازی مورد نیاز، مبلغی را میپردازند تا از این پایگاه داده ها استفاده کنند.
پایگاه داده گراف (Graph)
این پایگاه داده، نوعی پایگاه داده NoSQL است که عملیات مربوط به ارتباط داده ها، ذخیره سازی و استخراج داده ها را از طریق تئوریهای گراف انجام میدهد. از این پایگاه داده معمولا وقتی استفاده میشود که بخواهیم داده ها را تجزیه و تحلیل کنیم مانند تعامل کاربران در یک برنامه فضای مجازی. پایگاه داده های دیگری نیز وجود دارند که هرچند از شهرت کمتری برخوردارند اما در بعضی صنعتها از آنها استفاده میشود مانند پایگاه داده شی گرا (Object-Oriented)برنامه نویسی شی گرا چیست؟ شی گرایی چیست؟این صفحه عالی به معرفی برنامه نویسی شی گرا پرداخته و توضیح داده شی گرایی یا همان object oriented یا OPP چیست؟ همچنین مزایای برنامه نویسی شی گرا را بیان کرده، پایگاه داده شبکه ای، پایگاه داده سلسه مراتبی و غیره.
محبوب ترین پایگاه های داده
معروفترین و پراستفادهترین پایگاه داده های رابطه ای که در بزرگترین شرکتهای دنیا مورد استفاده قرار میگیرند در لیست زیر آمده است:
- MySQL
- PostrgreSQL
- Oracle
- Microsoft SQL Server
- MariaDB
- IBM Db2
همچنین لیست زیر معروفترین پایگاه داده های NoSQL که امروزه بهوفور از آنها استفاده میشود را نشان میدهد:
- MongoDB
- Redis
- Apache Cassandra
- DynamoDB
- RavenDB
- OrientDB
- Riak
- Oracle NoSQL DB
سیستم مدیریت پایگاه داده
سیستم های مدیریت پایگاه داده (Database Management System) که اصطلاحا به آن DBMS میگویند، مجموعه نرمافزاری هستند (نرمافزارهای پایگاه داده) که برای ذخیره، بازیابی و اجرای پرسوجو یا کوئری بر روی داده ها مورد استفاده قرار میگیرند. در واقع DBMSها نقش یک واسط نرمافزاری بین کاربران و دیتابیس را دارند. عملیات ایجاد کردن، بهروزرسانی کردن، حذف کردن، نمایش، ویرایش و... توسط سیستم های مدیریت پایگاه داده صورت میپذیرد، همچنین فراهم کردن امنیت اطلاعات و کنترل یکپارچه بودن داده ها نیز از وظایف دیگر DBMS است. در نهایت اینکه مدیر پایگاه داده یا DBA با استفاده از DBMS میتواند به مانیتور کردن کارکرد پایگاه داده و تعریف دسترسیهایی در سطوح مختلف برای کاربران بپردازد.
مزایای DBMS
- کنترل افزونگی با توجه به اینکه تمامی داده ها در یک فایل دیتابیس ذخیره میشوند.
- امکان به اشتراک گذاری داده های ذخیره شده
- امکان بکآپگیری و ریکاوری خودکار
- داشتن انواع واسطهای کاربری و GUIهای مختلف
معایب DBMS
- فضای زیادی از حافظه دیسک و رم را اشغال میکند.
- هزینهبر بودن به دلیل نیاز به سرعت پردازش داده بالا و رم برای اجرای نرمافزارهای DMBS
- DBMSها باعث اضافه شدن پیچیدگی به یک سیستم پایگاه داده ای میشوند.
اجزای اصلی پایگاه داده
در حالی که دیتابیس های مختلف از اسکیماها، ساختار داده ای و داده های متفاوتی استفاده میکنند، اما تمامی آنها از 5 جزء اصلی تشکیل شدهاند:
- سخت افزار (Hardware): وسایل فیزیکیای هستند که نرم افزار های دیتابیس بر روی آنها اجرا میشوند، مانند کامپیوترها، سرورها و هارد درایو ها.
- نرم افزار (Software): نرم افزارها به کاربران اجازه برقراری و کنترل بر روی پایگاه داده را میدهد. به عنوان مثال نرم افزارهای DBMS که برای مدیریت و کنترل دیتابیس استفاده میشود.
- داده (Data): اطلاعات خام هستند که در پایگاه داده ها ذخیره میشوند، ادمین های پایگاه داده با نظم بخشیدن به این داده ها، آنها را معنادار و مرتب میکنند.
- زبان دسترسی به داده ها (Data access language): زبان برنامه نویسیای است که برای کنترل پایگاه داده مورد استفاده قرار میگیرد. یکی از معروفترین زبانهای برنامه نویسی SQL یا Structured Query Language است.
- رویه ها (Procedures): به طور خلاصه قوانینی هستند که برای چگونگی عملکرد دیتابیس و چگونگی مدیریت داده ها وضع میشوند.
تاریخچه پایگاه داده
اولین بار در سال 1968، پایگاه داده مبتنی بر فایل (File-Based) ساخته شد. در این پایگاه داده ها، داده ها در فایلهای سطحی یا Flat-File ذخیره میشدند. این روش مزایای مختلفی داشت، به عنوان مثال از راههای مختلفی مانند دسترسی تصادفی، دسترسی متوالی، Index یا اندیسگذاری امکان دسترسی به داده ها وجود داشت. از معایب این پایگاه داده ها، نیازمندی آنها به زبانهای برنامه نویسی مثل COBOL و BASIC بود. در سال های 1968 تا 1980، پایگاه داده های سلسه مراتبی یا Hierarchal مورد استفاده قرار گرفتند. در این مدل، فایلها با رویکرد والد/فرزند یا Parent/Child مرتبط میشدند. تصویر زیر یک نمونه خلاصه شده از این مورد است، دایرهها نماد شیها (Object) هستند. همانند پایگاه داده های فایلی، این رویکرد پایگاه داده ای نیز معایبی داشت، مانند پیادهسازی سخت، عدم ساختار مسقل، سخت بودن مدیریت رابطه های چند به چند یا Many-Many و غیره.
بعد از پایگاه داده های سلسله مراتبی، مدل شبکهای بوجود آمد. چارلز باخمن (Charles Bachman) که اولین سازنده DBMS است، سیستمی با نام IDS یا Integrated Data Store ارائه داد. هرچند که این سیستم در 1960 ساخته شد اما تا سال 1971 هیچ استانداردسازیای صورت نگرفت. در این مدل، رابطه فایلها به صورت مالک و اعضا یا Owners و Members برقرار بود. از سال 1970 تاکنون، بحث پایگاه داده های رابطه ای مطرح است. در سال 1970، مدل پایگاه داده رابطه ای توسط ادگار کاد (E.F Codd) ارائه شد.
جمعبندی
مبحث پایگاه داده، مبحث بسیار گستردهای است که برای تسلط بر آن نیازمند سالیان سال مطالعه و تجربه است. با این حال که بیش از 55 سال از ساخت اولین پایگاه داده میگذرد، اما هنوز یکی از مباحث داغ برای تحقیق است. در این مقاله به طور خلاصه به چیستی پایگاه داده و انواع آنها پرداختیم. همچنین مزایا و معایب روش های مختلف ذخیره سازی داده را مورد بررسی قرار دادیم.
پایگاه داده چیست؟
یک پایگاه داده یا دیتابیس (Database) محلی برای ذخیره داده ها به طور ساختاریافته و منظم است. داده ها معمولا به صورت الکترونیکی درون یک سیستم کامپیوتری ذخیره میشوند.
معروف ترین انواع پایگاه داده کدامها هستند؟
به طور کلی پایگاه داده Relational مانند MySQL و SQL Server و NoSQL مانند MongoDB از معروفترین پایگاه داده هایی هستند که به طور گسترده مورد استفاده قرار میگیرند. در کنار آنها پایگاه داده های ابری، سلسله مراتبی، گرافی، شبکهای و شی گرا وجود دارند که در موارد مختلفی استفاده میشوند.
سیستم مدیریت پایگاه داده یا DBMS چیست؟
DBMS یا Database Management Systemها در واقع نرمافزارهایی برای مدیریت پایگاه داده هستند. این نرمافزارها واسطی بین کاربران و پایگاه داده هستند و کارهایی از قبیل ایجاد، حذف، پرسوجو، ذخیره و کنترل داده ها توسط این DBMSها انجام میشوند.