پایگاه داده چیست؟
پایگاه داده مجموعه ای سازمان یافته از داده ها است که به راحتی قابل دسترسی و مدیریت است.
میتوانید دادهها را در جدولها، ردیفها، ستونها سازماندهی کنید و آنها را فهرستبندی کنید تا پیدا کردن اطلاعات مرتبط آسانتر شود.
کنترل کننده های پایگاه داده یک پایگاه داده را به گونه ای ایجاد می کنند که تنها یک مجموعه نرم افزار دسترسی به داده ها را برای همه کاربران فراهم می کند.
هدف اصلی پایگاه داده این است که حجم زیادی از اطلاعات را از طریق ذخیره، بازیابی و مدیریت داده ها به کار گیرد.
امروزه وب سایت های پویا زیادی در شبکه جهانی وب وجود دارد که از طریق پایگاه های داده مدیریت می شوند.
به عنوان مثال، مدلی که در دسترس بودن اتاق های یک هتل را بررسی می کند. این نمونه ای از یک وب سایت پویا است که از پایگاه داده استفاده می کند.
پایگاه داده های زیادی مانند MySQL، Sybase، Oracle، MongoDB، Informix، PostgreSQL، SQL Server و غیره موجود است.
پایگاه های داده مدرن توسط سیستم مدیریت پایگاه داده (DBMS) مدیریت می شوند. SQL یا زبان پرس و جو ساختاریافته برای کار بر روی داده های ذخیره شده در پایگاه داده استفاده می شود.
SQL به جبر رابطه ای و حساب رابطه ای چندگانه بستگی دارد.
تکامل مبتنی بر فایل
1968 سالی بود که پایگاه داده مبتنی بر فایل معرفی شد. در پایگاه های داده مبتنی بر فایل، داده ها در یک فایل مسطح نگهداری می شدند. اگرچه فایل ها مزایای زیادی دارند، اما محدودیت های متعددی نیز وجود دارد. یکی از مزیت های اصلی این است که سیستم فایل دارای روش های دسترسی مختلفی است، به عنوان مثال، ترتیبی، نمایه سازی شده و تصادفی. این نیاز به برنامه نویسی گسترده در یک زبان نسل سوم مانند COBOL، BASIC دارد. مدل داده های سلسله مراتبی 1968-1980 عصر پایگاه داده سلسله مراتبی بود. مدل پایگاه داده سلسله مراتبی برجسته اولین DBMS IBM بود. این سیستم IMS (سیستم مدیریت اطلاعات) نام داشت.
برخی از پایگاههای داده محبوب عبارتند از:
- MySQL
- Sybase
- Oracle
- MongoDB
- Informix
- PostgreSQL
- SQL Server
تکامل پایگاه های داده
پایگاه داده تکامل خود را از سیستم فایل مسطح به سیستم های رابطه ای و مبتنی بر شی در بیش از 50 سال کامل کرده است. چندین نسل را پشت سر گذاشته است.
در سال 1968، پایگاه دادههای مبتنی بر فایل معرفی شدند. در پایگاه دادههای مبتنی بر فایل، دادهها در یک فایل مسطح ذخیره میشدند. اگرچه این فایلها مزایای زیادی دارند، اما همچنین چندین محدودیت نیز دارند. یکی از مزایای اصلی این است که سیستم فایل روشهای مختلفی برای دسترسی به دادهها دارد، به عنوان مثال، دسترسیابی ترتیبی، ایندکسشده و تصادفی. این نوع سیستمها برای استفاده به برنامهنویسی گسترده در زبانهای نسل سوم مانند COBOL و BASIC نیاز دارند. مدل داده سلسلهمراتبی (Hierarchical Data Model) از سال 1968 تا 1980 به عنوان عصر پایگاه دادههای سلسلهمراتبی شناخته میشود. در این دوران، دادهها به صورت سلسلهمراتبی و در یک ساختار درختی ذخیره میشدند. یکی از مدلهای برجسته پایگاه داده سلسلهمراتبی، IMS (Information Management System) شرکت IBM بود که اولین سیستم مدیریت پایگاه داده این شرکت به حساب میآید. پایگاه دادههای سلسلهمراتبی به گونهای طراحی شده بودند که دادهها در یک ساختار درختی ذخیره میشدند، به طوری که هر رکورد میتوانست زیرمجموعهای از رکورد دیگری باشد. این مدل برای برخی از کاربردها مفید بود، اما مشکلاتی مانند محدودیت در انعطافپذیری و تغییرات دادهها داشت. این دوره نقطهی شروعی برای تکامل بیشتر پایگاههای داده به مدلهای پیچیدهتر و منعطفتر بود که در دهههای بعدی ظهور کردند.
تصویر زیر نمونه ای از طراحی پایگاه داده را نشان می دهد

انواع پایگاههای داده
پایگاههای داده میتوانند انواع مختلفی داشته باشند که به سوالاتی مانند تعداد انواع پایگاه داده، مفهوم پایگاه داده و نحوه ذخیرهسازی دادهها در پایگاههای داده پاسخ میدهند. در ادامه انواع مختلف پایگاههای داده به طور خلاصه توضیح داده شده است:
پایگاه دادههای توزیع شده: این نوع پایگاه داده از اطلاعات جمعآوری شده محلی و یک پایگاه داده مشترک استفاده میکند. در چنین سیستمهایی، تمام دادهها در یک مکان ذخیره نمیشوند. بلکه دادهها در چندین سازمان توزیع میشوند، به همین دلیل نام "توزیع شده" را دارند.
پایگاه دادههای رابطهای: پایگاه دادههای رابطهای مانند RDBMS (سیستم مدیریت پایگاه داده رابطهای) از جداول برای تعریف و ارتباط دادهها استفاده میکنند. این نوع پایگاه دادهها به دلیل کاهش افزونگی دادهها، سهولت در بازیابی دادهها و ذخیرهسازی، بسیار محبوب هستند. مثالهایی از RDBMS شامل MySQL، SQL Server شرکت مایکروسافت، Oracle DB شرکت اوراکل و غیره هستند.
پایگاه دادههای شیگرا: این نوع پایگاه داده از انواع داده و دادههایی پشتیبانی میکند که معمولاً به صورت اشیاء ذخیره میشوند. اشیاء در این پایگاه دادهها دارای متدها، قوانین و ویژگیهایی هستند که مشخص میکنند پرس و جوها به چه معنا هستند و با دادههای ارائه شده چه کار کنند. به عنوان مثال: PostgreSQL یک RDBMS شیگرا است.
پایگاه دادههای متمرکز: این پایگاههای داده چندکاربره از یک مکان متمرکز برای ذخیرهسازی دادهها استفاده میکنند که کاربران با پیشزمینههای مختلف میتوانند به آن دسترسی داشته باشند. یک پایگاه داده در مکان دوردست دارای یک روش کاربردی خاص است که به دادهها دسترسی جهانی میدهد. مثال: درخواست ویزای آمریکا از هر کجای جهان.
پایگاه دادههای متنباز: این نوع پایگاه دادهها یک پایگاه داده عملیاتی هستند که شامل کد و برنامههای کاربردی میباشند. به عنوان مثال: برنامههای کاربردی در زمینههایی مانند بازاریابی (SalesForce)، منابع انسانی و غیره.
پایگاه دادههای ابری: پایگاه دادههای ابری پایگاه دادههایی هستند که در محیطهای مجازی ساخته و ذخیره میشوند. این نوع پایگاه دادهها مزایای زیادی مانند دسترسی آسان، پهنای باند قابل پرداخت، ظرفیت ذخیرهسازی و غیره دارند و به راحتی میتوان آنها را به میزان نیاز مقیاسبندی کرد. مثال: برنامههای امنیتی از Imperva.
پایگاه دادههای NoSQL: پایگاه دادههای NoSQL زمانی استفاده میشوند که دادهها توزیع شده و نیاز به وارد کردن مجموعههای بزرگ داده باشد. پایگاههای داده RDBMS توانایی خوبی در مدیریت دادههای بزرگ غیرساختاریافته دارند و همچنین از پایگاههای داده رابطهای برای تجزیه و تحلیل، بازیابی و گزارشدهی استفاده میشود.
پایگاه دادههای گرافی: این نوع پایگاه دادهها بر اساس نظریه گراف ساخته شدهاند و میتوانند بهطور مؤثری روابط را ذخیره، جستجو و ترسیم کنند. مثال: استخراج پایگاه مشتریان از شبکههای اجتماعی.
پایگاه دادههای OLTP : OLTP نوعی پایگاه داده است که یکپارچگی دادهها را حتی در حین انجام پردازش سریع پرس و جو در محیطهای چندکاربره حفظ میکند.
پایگاه دادههای شخصی: پایگاه داده شخصی معمولاً در یک رایانه شخصی ذخیره میشود و مدیریت آن آسان است در حالی که چندین کاربر از آن استفاده میکنند.
پایگاه دادههای مستند/JSON: پایگاه دادههای مستند JSON حاوی دادههایی هستند که در مجموعهای از مستندات با استفاده از زبانهای مختلف پایگاه داده مانند JSON، XML، BSON و غیره ذخیره میشوند.
پایگاه دادههای سلسلهمراتبی: این پایگاههای داده روابط "والد-فرزند" را هنگام ذخیره دادهها به اشتراک میگذارند و ساختاری درختی با چندین گره برای رکوردها و شاخهها برای فیلدها دارند. مثال: رجیستری ویندوز در ویندوز XP.