این روزها احتمالاً اسم پایگاهداده را زیاد شنیده باشید. دیتابیس (Database) یا پایگاهداده همینطور که از اسمش مشخص است به نظر میآید جایی باشد که دادهها در آن نگهداری میشوند. این تفکر تا حد خوبی درست است، اما باید در نظر داشته باشید که دادهها بهراحتی آنچه که ما جایی را ذخیره میکنیم در دیتابیسها جمع نمیشوند، بلکه برنامهنویسی مخصوص به خود را دارند و افراد متخصصی با تسلط به زبانهای برنامهنویسی خاص، این دادهها را با الگوهای خاصی درون دیتابیسها جمعآوری میکنند.
پایگاهداده یا دیتابیس چیست و چه کاربردی دارد؟
شاید برای شما جالب باشد که بدانید در طول روز همه از دیتابیسها در خانههای خود استفاده میکنند. یکی از این موارد دفترچه تلفن است. این دفترچه میتواند همان شمارهها و ایمیلهای کانتکتهای شما درون گوشی شما باشند یا واقعاً در یک دفتر کاغذی شامل شمارهتلفنهای جمعآوری شده در طی سالها باشد. زمانی که شما بخواهید به کسی زنگ بزنید یا شماره آن را پیدا کنید با سرچ کردن نام آن فرد در این دفترچه به اطلاعات تماس او میرسید. در نتیجه، این دفترچه تلفن یا کانتکتهای شما یک دیتابیس کوچک شخصی برای شما است.
مثال سایتهای بومگردی
مسلماً قضیه به اینجا ختم نمیشود و دنیای دیتابیسها بسیار بزرگتر از چیزی است که نشان داده شد. تصور کنید قصد دارید برای تعطیلات به یک ویلا در شهری خوشآبوهوا بروید. اگر ویلای مشخصی در نظر نداشته باشید سریعاً به اینترنت مراجعه میکنید و سایتهای بومگردی را بررسی میکنید. این سایتها در حقیقت یک Database یا پایگاهداده محلی از تمام سوییتها، ویلاها، آپارتمانها و حتی هتلهای موجود در سطح کشور دارند.
افرادی که میخواهند مکانی را برای مدت کوتاهی اجاره دهند پیشنهاد خود را در این سایتها وارد میکنند. برنامهنویسان سایت، این اطلاعات بهدستآمده را در این دیتابیس محلی جمعآوری میکنند تا زمانی که شما به دنبال یک ویلای مناسب هستید با سرعت بالایی این اطلاعات را در اختیار شما قرار دهند. این پایگاهداده آنقدر بزرگ است که در یک دفترچه یا در یک تلفن همراه قاعدتاً جمعآوری نمیشود و یک سرور بزرگ برای نگهداری از آن لازم است.
میتونی رایگان یادبگیری :
مثال پایگاههای داده علمی
این نوع دیتابیس برخلاف موارد اشاره شده بسیار گستردهتر است. برخلاف مثال قبلی هم میتوان این دیتابیس را یک پایگاهداده عمومی قلمداد کرد که همه مردم دنیا به آن دسترسی دارند. این دیتابیسهای علمی میتوانند شامل تعداد زیادی مقالات منتشرشده باشند و حتی میتوانند اطلاعات موجود در این مقالات را در خود نگهداری کنند. محققین سراسر دنیا بدون نیاز به پرداخت مبلغی بهراحتی میتوانند به این پایگاههای داده دسترسی داشته باشند و تحقیقات خود را جلو ببرند. در نتیجه باتوجهبه این مثالهای گفته شده، Database یا پایگاهداده اطلاعات جمعآوریشده را بهصورت مرتب و سازماندهی شده در خود نگهداری میکند تا زمانی که به این اطلاعات احتیاج پیدا میکنیم آنها را با سرعت و با دقت بالا در اختیار ما قرار دهد.
در نتیجه باتوجهبه این مثالهای گفته شده، Database یا پایگاهداده اطلاعات جمعآوریشده را بهصورت مرتب و سازماندهی شده در خود نگهداری میکند تا زمانی که به این اطلاعات احتیاج پیدا میکنیم آنها را با سرعت و با دقت بالا در اختیار ما قرار دهد.
کاربرد پایگاههای داده چیست؟
همانطور که گفته شد، پایگاهداده حجم عظیمی از دادههای تولید شده را در خود نگهداری میکند. این دادهها آنقدر زیاد هستند که نمیتوان آنها را در یک کامپیوتر شخصی نگه داشت. اگر تا حدی با برنامهنویسی آشنا باشید میدانید که هرچه تعداد دادههای موجود بیشتر باشند یافتن اطلاعات مشخصی در این خیل عظیم داده کار دشواری است.
آموزش بانک های اطلاعاتی _SQL server
این مثال ساده را در نظر بگیرید که شما قصد دارید برگه مشخصی را از میان برگههای موجود در یک قفسه پیدا کنید. هرچه تعداد این برگهها بیشتر باشند امکان یافتن این برگه برای شما سختتر خواهد شد.
معمولاً راهکاری که برای این مشکل ارائه میدهیم، علامتگذاری و دستهبندی صحیح برگهها در این قفسهها است؛ بنابراین، پایگاههای داده قصد دارند که با مرتب کردن دادههای ورودی به کمک الگوریتمهای جستوجوی برنامهنویسی آمده و سریعتر اطلاعات ذخیرهشده را بازیابی کنند. این موضوع را در نظر بگیرید که دادههای تولید شده در سطح جهان و کشور بهمراتب بیشتر از چیزی است که میتوان تصور کرد. به همین علت، پیشرفت برنامهنویسی دیتابیس و ساختن دیتابیسهای بهتر یکی از مهمترین مسائل در دنیای برنامهنویسی است.
پایگاههای داده دیتاهای بهدستآمده را درون جداول با ویژگیهای مشخصی نگهداری میکنند تا زمان بازیابی اطلاعات بهراحتی قابلشناسایی باشند و سریعاً به سطر و ستون این جداول دسترسی پیدا کنیم.
چه اپلیکیشنهایی از پایگاهداده استفاده میکنند؟
تقریباً میتوان گفت تمام اپلیکیشنهایی که بر روی تلفن همراه هوشمند خود داریم دارای یک دیتابیس مرکزی هستند. در زیر به تعدادی از این موارد اشاره میکنیم.
- آپارات و یوتیوب، آرشیوی از فایلهای ویدئویی دارد که تمام آنها را درون یک Database مرکزی ذخیره کرده است.
- اسپاتیفای دارای دیتابیس بزرگی از موسیقیهای منتشرشده است که با داشتن یک اکانت میتوانید به آنها دسترسی داشته باشید.
- اپلیکیشنهای پادکست مثل کستباکس دارای Database بزرگی از پادکستهای منتشرشده در کانالهای مختلف است که شما میتوانید با سرچ کردن اسم یا علائق خود به این موارد دسترسی پیدا کنید.
- سایتهای خریدوفروش اینترنتی مانند دیجیکالا، بانیمد، ایمالز و مشابه خارجی این موارد مانند آمازون، همگی Database عظیمی از کالاها و فروشندههای مربوطه دارند و شرایط خرید را برای شما آسان میکنند. در حقیقت به کمک الگوریتمهای موجود و هوش مصنوعی، این سایتها میتوانند اطلاعات ذخیره شده در دیتابیسهای خود را به هم مرتبط کنند و زمانی که شما از محصولی خوشتان میآید موارد مربوط به آن را بیشتر به شما نشان بدهند و شانس فروش خود را بالاتر ببرند.
- اسنپ و تپسی دیتابیس بزرگی از رانندهها دارند و اطلاعات آنها و وسایل نقلیه را در خود ثبت کردهاند. مسلماً بدون داشتن این Database محلی و بزرگ نمیتوانند خدمات گستردهای ارائه دهند. اخیراً نیز اسنپ با جمعآوری پایگاهداده بزرگی از رستورانها و سوپرمارکتها، امکان خرید مواد غذایی را برای کاربران خود فراهم کرده است.
- سایتهای آموزشی مانند مکتبخونه، یودمی، کورسرا و دیگر موارد مشابه نیز دیتابیس عظیمی از ویدئوهای آموزشی منتشرشده از دانشگاههای سراسر دنیا دارند.
مثالی از دیتابیسهای کوچکتر
اگر از دنیای اپلیکیشنهای بزرگ و پرمخاطب فاصله بگیریم، میتوانیم به بعضی موارد دیگر در اندازههای کوچکتر هم اشاره کنیم. یک باشگاه ورزشی دیتابیسی از افراد ثبتنام کرده، شرایط جسمانی و هزینه پرداختی دارند. مدارس یا مؤسسات آموزشی نیز دارای پایگاه دادهای شامل معلمان، کارکنان و دانشآموزان مجموعه و اطلاعات مربوط به آنها هستند.
پایگاههای داده چه انواع مختلفی دارند؟
پایگاههای داده یا دیتابیسها انواع مختلفی دارند که بسته به نیاز برنامهنویسان و اپلیکیشنها انتخاب میشوند. دلیل دستهبندی آنها روشهای متفاوتی است که برای پیادهسازی آنها مورداستفاده قرار میگیرد.
پشنهاد میکنیم مطالعه کنید : برنامه نویسی بک اند چیست؟ برنامه نویس بک اند کیست؟
پایگاه دادههای رابطهای
پایگاههای داده رابطهای یا Relational databases در دهه 1980 از بهترین پایگاه دادههای موجود شناخته میشدند. اطلاعات موجود و قرار گرفته در یک پایگاهداده رابطهای بهصورت مجموعهای از جداول سازماندهی میشوند. هر جدول مخصوص دارای ستونها و ردیفهای مخصوص به خود است که حاوی اطلاعات است. فناوری پایگاهداده رابطهای از بهترین و معتبرترین روشهای دسترسی به اطلاعات ذخیره شده در یک سیستم است که به برنامهنویسان برای دسترسی راحت به این اطلاعات کمک میکند.
به طور مثال اگر شما در حال راهاندازی یک سایت فروش آنلاین هستید، چندین جدول را در نظر خواهید گرفت. جدول فروشندهها، جدول خریداران، جدول کالاها و جدول توزیعکنندگان میتوانند تعدادی از این جدولها محسوب شوند. در جدول خریداران، در هر ستون میتوان آیدی این فرد، محل زندگی، میزان خریدی که داشته، بدهیها، مشخصات فردی و شمارهتلفن آن را ذخیره کنید. مفهوم ردیف نیز به تعداد افرادی که در این جدول قرار گرفتهاند مربوط میشود. بهمحض اضافهشدن خریداری جدید، این فرد در یک ردیف به این جدول اضافه میشود و ستونهای مربوطه پر میشوند.
پایگاهدادههای شیءگرا
اطلاعات در یک پایگاهداده شیءگرا یا Object-oriented databases مانند برنامهنویسی شیءگرا در قالب اشیا نمایش داده شده و پردازش میشوند. در این نوع برنامهنویسی به متغیرهای موجود در سیستم بهعنوان یک آبجکت یا شی نگاه میشود که هرکدام ویژگی مخصوصی دارند و فرزندان میتوانند ویژگیهای والد خود را به ارث ببرند.
پایگاههای داده توزیع شده
یک پایگاهداده توزیع شده یا Distributed databases از چندین فایل تشکیل شده است که میتواند در چند کامپیوتر یا چند شبکه مختلف پراکنده شده باشد. گاهی اوقات نگهداری تمام اطلاعات در یک سرور کار بهینهای نبوده و با پخش کردن آن در چند کامپیوتر میتوان اطلاعات بیشتری را ذخیره کرد.
انبارهای داده
یک مخزن مرکزی برای دادهها یا Data warehouses، یک مخزن یا انبار داده مخصوص است که با ویژگیهایی که دارد میتواند به کوئری یا جستوجو و آنالیز دادهها کمک کند.
پایگاههای داده NoSQL
یک پایگاهداده NoSQL پایگاه دادهای است که در مقایسه با مورد اول متفاوت است. این پایگاهداده امکان ذخیره و دستکاری دادههای که ساختاری نیستند یا نیمه ساختاری هستند را فراهم میکند. همانطور که در مثال اول پایگاه دادهها اشاره شد، پایگاه دادههای رابطهای زمانی که دادهها به آنها وارد میشوند ساختار آنها را مشخص میکند. این نوع پایگاههای داده با محبوبتر شدن برنامهنویسی وب و گستردهتر شدن آن بیشتر موردتوجه برنامهنویسان دیتابیس قرار گرفته است.
پایگاههای داده گرافی
این نوع دیتابیس، اجزای موجود در سیستم را در کنار ارتباطی که این اجزا با هم دارند را در یک سیستم ذخیره میکند. در یک گراف رئوسی وجود دارند که به کمک یالها به هم متصل میشوند. در حقیقت این یالها ارتباطهای این اجزا هستند که در کنار اجزا در پایگاهداده ذخیره میشوند.
پایگاههای داده OLTP
پایگاهداده OLTP یک پایگاهداده تحلیلی و بسیار سریع است که برای استفاده همزمان چندین کاربر مورداستفاده قرار میگیرد.
پایگاههای داده منبع باز
یک سیستم پایگاهداده منبع باز یا Open-source databases، پایگاهی محسوب میشود که کد آن در دسترس عموم قرار دارد و دیگران نیز میتوانند از کد نوشته شده برای ساختن این دیتابیس استفاده کنند. برای ساختن این پایگاههای داده میتوان از زبانهای برنامهنویسی SQL یا NoSQL استفاده کرد.
پایگاههای داده ابری
پایگاهداده ابری یا Cloud databases مجموعهای از دادهها را تشکیل میدهد که این دادهها میتوانند چه ساختاری و چه غیرساختاری باشند. سپس این دادهها در یک سیستمعامل محاسباتی ابری خصوصی، عمومی یا ترکیبی قرار میگیرند. دو نوع مدل پایگاهداده ابری وجود دارند که یک مدل آن سنتی بوده و مورد دیگر آن DBaaS نام دارد. به کمک مورد دوم، فعالیتهای اجرایی و نگهداری به کمک یک تأمینکننده سرویس انجام میشوند.
پایگاههای داده خودران
پایگاههای داده خودران یا Self-driving databases از جدیدترین انواع پایگاهداده محسوب میشود که به آنها پایگاههای داده خودمختار یا autonomous databases نیز گفته میشود. این دیتابیس، مبتنی بر پایگاه دادههای ابری بوده و از یادگیری ماشین برای فعالیتهای مختلف استفاده میکند. از این موارد میتوان به تنظیم خودکار پایگاهداده، تضمین امنیت، گرفتن بکاپ، بهروزرسانی سیستم و انجام سایر کارهای مدیرتی معمول اشاره کرد.
پایگاهداده چند مدل
پایگاههای اطلاعاتی چندین مدل یا Multimodel database پایگاههای دادهای هستند که از انواع پایگاههای داده در ساختار خود استفاده میکنند. این پایگاهها میتوانند انواع مختلفی از دادهها را در خود ذخیره کنند.
پایگاهداده سند یا JSON
پایگاه دادههای اسناد برای ذخیره، بازیابی و مدیریت اطلاعات دارای مستند استفاده میشوند. این پایگاهداده روشی جدید برای ذخیره دادهها به کمک قالب JSON ارائه میدهد که بهجای روش سطرها و ستونها معرفی شده است.
پایگاهداده شخصی
پایگاهداده شخصی یا Personal database، پایگاه دادهای کوچک برای یک رایانههای شخصی محسوب میشود که بسیار کوچک و قابلکنترل هستند. این دادهها قابلکنترل بوده و توسط افراد مشخصی و بخش معینی از یک شرکت استفاده میشود و افراد زیادی به آن دسترسی ندارند. کارکردن با این دیتابیسها به دلیل حجم پایین بسیار راحت است.
یک پایگاهداده از چه اجزایی تشکیل شده است؟
برای ساختن یک Database به موارد مختلفی احتیاج داریم که به موارد اساسی آنها در زیر اشاره میکنیم.
- سختافزار یک بخش فیزیکی است که الکترونیکی بوده و ارتباط بین دنیای واقعی و دنیای کامپیوترها را برقرار میکند. در حقیقت میتوان آن را یک وسیله برای صحبتکردن بین این دو دنیا دانست. این بخش میتواند شامل کامپیوترها و وسیلههای ذخیرهسازی اطلاعات باشد.
- نرمافزار برنامهای است که برای مدیریت و کنترل کلی پایگاهداده موردنیاز است. این مورد شامل خود پایگاهداده و سیستمعامل میشود که برای پخش کردن اطلاعات بین کاربران و دسترسی به اطلاعات است.
- اطلاعات چیزی است که قرار است در این سیستم ذخیره شوند. اطلاعات اولیه خام و مرتب نشده هستند اما با مرتب کردن آنها میتوان آنها را معنیدار و قابلاستفاده کرد.
- روش نیز برای ساخت دیتابیس مهم است. اینکه از چه نوع پایگاه دادهای استفاده میکنید یا اینکه به چه افرادی قرار است دسترسی دهید در این بخش قرار میگیرند.
- زبان لازم برای دسترسی به اطلاعات درون Database نیز مهم است. به کمک تعدادی دستور که درون نرمافزار وارد میکنید میتوانید به اطلاعات خاصی که در سیستم وجود دارند دسترسی پیدا کنید.