پایگاه داده توزیع شده چیست ؟
«توزیع» (Distribution) یا ادغام قابلیتهای پردازشی چندین ماشین برای استفاده از کارایی آنها به گونهای که گویی همگی یک موجودیت واحد هستند، در دنیای امروزی محاسبات، بسیار رایج و مرسوم است. به احتمال زیاد، بسیاری از افراد تاکنون بدون اینکه مطلع باشند، با یک سیستم توزیع شده تعامل داشتهاند.
برای مثال، اپلیکیشنهای شبکههای اجتماعی به کاربران خود تجربهای رفتاری را ارائه میدهند که بر قابلیت و عملکرد کامپیوتری قدرتمند، اما واحد دلالت دارد، در حالی که در فناوری زیربنایی آن اصلاً این چنین نیست.
پلتفرمهایی مثل توئیتر و فیسبوک در مقیاس مناسب اجرا میشوند و بر بستر ابزارهایی ساخته شدهاند که در میان تعداد زیادی از عناصر محاسباتی، اغلب در مکانهای متفاوت بهاشتراکگذاری (پراکنده) شده و در قالب برنامههای نرم افزاری منظم و مرتب و به راحتی قابل استفادهاند و به خوبی در هم ادغام شدهاند. کاربران اغلب هیچ اطلاعی راجع به معماری زیربنایی محصولات نرمافزاری مورد استفاده خود ندارند.
پایگاه دادهها در حوزه ساخت و توسعه اپلیکیشن نقش بسیار برجسته و مهمی دارند و همچنین به میزان قابل توجهی از قابلیت «توزیع» بهره میبرند. پایگاه دادههای توزیع شده، بر خلاف دیتابیسهایی که در یک ماشین واحد تعبیه شدهاند، قابل افزایش مقیاس هستند، کارایی زیادی دارند و شفافیت دادهها نیز در آنها ملموس است.
استفاده از پایگاه داده توزیع شده به گونهای موثر نیاز به اینکه دقیقاً بدانیم در پشت صحنه چه اتفاقی در حال رخ دادن است را به میزان زیادی از بین میبرد. علاوه بر این، اپلیکیشنهایی که به پایگاه داده های توزیع شده متصل هستند، تجربه کاربری بهتری را هم فراهم میسازند.
مفاهیم سیستم های توزیع شده چیست ؟
مهمترین مفاهیم رایانش توزیع شده را میتوان بهصورتی که در ادامه آمده است، بیان کرد.
- اشتراکگذاری منابع (Resource sharing): به سختافزار، نرمافزار یا دادهای اشاره میکند که میتوان به اشتراک گذاشت.
- باز بودن (Openness): این نکته را بیان میکند که در توسعه و اشتراکگذاری نرمافزار طراحی شده، تا چه اندازه آزادی داریم است.
- همزمانی (Concurrency): کامپیوترهای متعدد میتوانند عملیات یکسانی را بهطور همزمان پردازش کنند.
- مقیاسپذیری (Scalability): به افزایش تواناییهای محاسباتی و پردازشی وقتیکه به کامپیوترهای متعددی گسترش مییابند، اشاره دارد.
- تحملپذیری در برابر خطا (Fault tolerance): میزان سرعت و سهولت در تشخیص «خرابی» (Failures) و همچنین بازیابی آن در بخشهایی از سیستم را بیان میکند.
- شفافیت (Transparency): میزان دسترسی یک گره برای پیدا کردن و تعامل با سایر گرههای موجود در سیستم چقدر است.
سیستمهای توزیعشده کنونی، بهنحوی تکامل یافتهاند که شامل فرآیندهای مستقلی باشند. فرایندهاییکه ممکن است روی یک کامپیوتر (از نظر فیزیکی) اجرا شوند، اما با تبادل پیام، با یکدیگر تعامل داشته باشند.
ذخیره سازی داده توزیع شده
به دو روش می توان داده ها را در سایت های مختلف ذخیره کرد. اینها هستند:
- تکثیر
تکثیر پایگاه داده تضمین می کند که داده ها در پایگاه داده های توزیع شده تا به امروز باقی می مانند.
با تکثیر ، همه داده ها به طور ناخواسته در 2 سایت یا بیشتر ذخیره می شوند. اگر پایگاه داده کامل در همه سایت ها ذخیره شده باشد ، ما در مورد یک پایگاه داده کاملاً زائد صحبت می کنیم. در تکثیر ، سیستم ها در واقع نسخه هایی از داده ها را نگه می دارند.
ما می توانیم داده های تکثیر شده را به دو دسته داده های فقط خواندنی و قابل نوشتن تقسیم کنیم. نسخه های فقط خواندنی داده های تکثیر شده فقط در سرور سایت تعیین شده برای اولین بار مجاز به بازبینی هستند. سپس داده ها در سایر سرورهای بعدی تنظیم می شوند.
داده های قابل نوشتن قابل تغییر هستند ، اما اولین سرور سایت بلافاصله تغییر می کند. آ شبکه تحویل محتوا (CDN) برای مثال در وب سایت ها بر اساس این اصل است.
مزیت بزرگ این مسئله این است که در دسترس بودن داده ها در مکان های مختلف زیاد است. س Quالات می توانند به این ترتیب به صورت موازی پردازش شوند.
با این حال ، معایبی نیز وجود دارد. داده ها باید به طور مداوم به روز شوند. هرگونه تغییر در یک سایت باید به هر سایت دیگری منتقل شود در غیر این صورت منجر به ناسازگاری می شود.
این امر بار سنگینی بر سیستم ها و شبکه وارد می کند. علاوه بر این ، بررسی همزمان بسیار پیچیده تر می شود زیرا قفل کردن سوابق باید در همه سایت ها انجام شود ، زمانی که به طور همزمان به آنها دسترسی پیدا می شود.
در این روش ، داده ها تقسیم می شوند ، یعنی به قسمت های کوچکتر تقسیم می شوند. قطعات در مکانهای مختلف مورد نیاز توزیع و ذخیره می شوند. توزیع قطعات به روشی هوشمندانه انجام می شود که به آنها اجازه می دهد در صورت خرابی یکی از سایت ها ، برای بازسازی داده های اصلی استفاده شوند. بنابراین از بین رفتن داده ها وجود ندارد.
مزیت تکه تکه شدن این است که ما نیازی به کپی کردن داده ها نداریم در حالی که پایگاه داده ثابت است.
بنابراین ، در بعضی موارد ، از رویکرد ترکیبی تقسیم بندی و تکثیر استفاده می شود.
صفحه گسترده و پایگاهداده چه تفاوتهایی دارند؟
صفحه گسترده (Spreadsheet) دفتر الکترونیکی و آنلاینی است که کاربران با کمک آن میتواننند جدولهایی را ایجاد و دادههای خود را داخل آنها قرار دهند. صفحه گستردهها همچنین به مرتبسازی و محاسبه دادها کمک بسیاری کرده و از فرمولها و توابع ریاضی مختلفی پشتیبانی میکنند. به همین دلیل برخی از افراد معتقدند که صفحه گسترده و پایگاهداده تفاوت چندانی باهم ندارند و میتوانند به جای هم مورد استفاده قرار بگیرند اما این ادعا درست نبوده که در ادامه دلیل آن را برای شما بازگو خواهیم کرد.
اگر شما فردی هستید که تنها نیاز به محاسبه تعدادی فرمول ساده و قرار دادن دادههای عدد و غیرعددی خود در جدولهایی مشخص دارید، بنابراین صفحه گسترده میتواند گزینه بسیار خوبی برای شما باشد اما اگر با دادههای پیچیدهتری سر و کار دارید، بنابراین باید از پایگاهداده استفاده کنید. نحوه ذخیرهسازی دادهها، تفاوت اصلی بین صفحه گسترده و پایگاهداده است.
در صفحه گسترده، دادهها در یک سلول ذخیره میشوند و کاربران میتوانند آنها را ویرایش و یا مدیریت کنند اما در پایگاهداده، سلولها حاوی رکوردهایی هستند که از جدولهای خارجی میآیند. علاوه بر این، صفحه گسترده از اشتباهات سهوی کاربران جلوگیری نمیکند.
به عنوان مثال، اگر شما در فیلد تاریخ، رشتهای از حروف را وارد کنید، نرمافزار خطایی به شما نشان نمیدهد اما چنین اتفاقی در دیتابیس رخ نمیدهد و در صورت اشتباه، پیام خطا دریافت خواهید کرد و باید داده وارد شده را اصلاح کنید.
پایگاهداده | صفحهگسترده |
کاربر برای دسترسی به آن نیاز به یک اپلیکیشن دارد | کاربر میتواند به صورت مستقیم به آن دسترسی داشته باشد |
یادگیری آن کمی سخت است | یادگیری آن آسان است |
دادهای بیشتری را ذخیره میکند | دادهای کمتری را ذخیره میکند |
شرکتهای بزرگ از آن برای ذخیره و مدیریت دادههای خود استفاده میکنند | بیشتر مناسب انجام کارهای اداری و محاسبات عددی است |
بررسی سیر تکامل و انواع پایگاه داده به ترتیب ظهور
دیتابیس بیش از ۵۰ سال سیر تکاملی خود را از سیستم فایل مسطح به سیستمهای رابطهای و اشیاء تکمیل کرده است. چندین نسل را پشت سر گذاشته است. در ادامه به بررسی و معرفی هر کدام از دورهها میپردازیم:
این نوع پایگاه داده که در سال ۱۹۶۸ معرفی شد، دادهها را در یک فایل مسطح ذخیرهسازی میکرد. این ساختار در کنار سادگی استفاده، محدودیتهای بسیاری را نیز شامل میشود. در واقع این روش در کنار مشکلات امنیتی، دست برنامه نویسان در استفاده از دادهها را نیز باز نمیگذاشت.
با این وجود از مزیتهای اصلی این روش میتوان به دسترسی ساده با یک نرمافزار به دادهها اشاره کرد. این روشها شامل ترتیبی، نمایه سازی شده و تصادفی است. این روش ذخیرهسازی نیاز به برنامه نویسی گسترده در یک زبان نسل سوم مانند COBOL ،BASIC دارد.
دیتابیس مدل داده سلسله مراتبی
سالهای ۱۹۶۸ تا ۱۹۸۰ به عصر دیتابیس سلسله مراتبی معروف است. مدل سلسله مراتبی برجسته اولین DBMS IBM بود. در این سیستم که IMS (سیستم مدیریت اطلاعات) نام داشت، فایلها به صورت والد/فرزند به هم مرتبط میشدند. نمودار زیر مدل داده سلسله مراتبی را نشان میدهد. دایره کوچک نشان دهنده اشیاء است.
مانند سیستم فایل، این مدل نیز دارای محدودیتهایی مانند پیادهسازی پیچیده است. بنابراین این مدل به دلیل عدم استقلال ساختاری، به راحتی نمیتواند روابط چند به چند و غیره را مدیریت کند.
عناصر پایگاه داده
فیلدها، سطرها، ستون ها، جدول ها ارکان پایگاه داده اند. تمامی این موارد عناصر سازنده پایگاه داده می باشند.
۱-جدول جدول پایگاه داده شامل سطرها و ستون هایی است که داده ها را در بر می گیرند. برای مثال، شما جدولی دارید که پروفایل های افراد یعنی ID، نام، آدرس و جزئیات تماس را ذخیره می کند.
۲-سطرها سطرها با یک ستون یا بیشتر در بر دارنده داده ها هستند. خواندن داده ها در سطرها برای پی بردن به اطلاعات کار آسان تری است. مثلا خواندن پروفایلی با ID، نام، آدرس و جزئیات تماس تنها یک گزارش در یک سطر است.
۳-ستون ها ستون ها به فیلدها شباهت دارند، آیتم های جداگانه ای که شامل داده ها هستند. در مثال بالا گزارش پروفایل دارای یک نام، آدرس و جزئیات تماس با سه ستون است.
۴-فیلدها فیلد بخشی از یک گزارش و شامل تنها پاره ای از داده هاست. در مثال بالا از پایگاه داده، فیلد مانند یک تک سلولی است.
بدون دیدگاه