پرش به محتوا

پایگاه داده بلادرنگ

از ویکی‌پدیا، دانشنامهٔ آزاد

یک پایگاه داده بلادرنگ یک نوع پایگاه داده است که از پردازش بلادرنگ برای مدیریت بار داده‌ای که دائماً در حال تغییر است، استفاده می‌کند.[۱] این نوع پایگاه داده با نوع معمولی آن که معمولاً از زمان تأثیر نمی‌پذیرد متفاوت است. به‌طور مثال بازار سهام به‌طور سریع تغییر می‌کند و دائماً در حال تغییر است. نمودار بازارهای مختلف بسیار ناپایدار به تظر می‌رسد و این در حالی است که پایگاه داده باید ارزش جاری در تمام بازارهای بورس نیویورک را نگه داری و دنبال کند.[۲] پردازش بلادرنگ به این معناست که تراکنش به اندازه کافی سریع باشد که بتواند در زمان مورد نظر پاسخگو باشد.[۳] پایگاه داده‌های بلادرنگ برای حسابداری، بانکداری، قانون، داده‌های پزشکی، چند رسانه ای، کنترل فرایند، سیستم‌های رزرو، و تجزیه و تحلیل داده‌های علمی کارآمد هستند.[۴]

نگاه اجمالی[ویرایش]

پایگاه‌های داده بلادرنگ پایگاه‌های داده سنتی هستند که از یک افزونه استفاده می‌کنند تا توانایی بیشتری برای پاسخگویی به‌طور قابل اطمینان ارائه دهند. این پایگاه داده‌ها از محدودیت‌های زمانبندی استفاده می‌کنند که محدوده مشخصی را که داده‌ها در آن معتبر هستند نشان می‌دهند. این محدوده زمانی اعتبار موقتی نامیده می‌شود. یک پایگاه داده معمولی نمی‌تواند در چنین شرایطی کار کند، زیرا ناسازگاری بین اشیاء واقعی و داده‌هایی که آنها را نشان می‌دهد، برای تغییرات ساده بسیار شدید است. یک سیستم مؤثر باید بتواند رکوردهای حساس به زمان را کنترل کند، فقط اطلاعات موقت را بازگرداند و اولویت زمانبندی را پشتیبانی کند. برای وارد کردن داده‌ها در رکوردها، اغلب یک سنسور یا یک دستگاه ورودی، وضعیت فیزیکی سیستم را مانیتور می‌کند و پایگاه داده را با اطلاعات جدید به روز می‌کند تا سیستم فیزیکی را دقیق تر نشان دهد.[۵] هنگام طراحی یک سیستم پایگاه داده بلادرنگ، باید چگونگی نشان دادن زمان معتبر، چگونگی ارتباط حقایق با سیستم بلادرنگ را در نظر گرفت. همچنین، نحوه نشان دادن مقادیر ویژگی در پایگاه داده باید طوری باشد که تراکنش‌ها و سازگاری داده‌ها دچار اشکال نشود.

هنگام طراحی یک سیستم، مهم است که در نظر بگیریم در شرایطی که سیستم نتواند به محدودیت زمانی مورد نظر برسد چه کاری انجام دهد. به عنوان مثال، یک سیستم کنترل ترافیک هوایی به‌طور مداوم صدها هواپیما را نظارت می‌کند و تصمیمات مربوط به مسیرهای هواپیماهای ورودی را تعیین می‌کند و فرود هواپیما را براساس اطلاعاتی مانند سوخت، ارتفاع و سرعت تعیین می‌کند. اگر هر یک از این اطلاعات دیر دریافت شوند، نتیجه می‌تواند ویرانگر باشد. برای رسیدگی به مسائل مربوط به داده‌های منسوخ، نشانگر زمان می‌تواند با ارائه مراجع زمانی مشخص از تراکنش‌ها پشتیبانی کند.

حفظ یکپارچگی و سازگاری داده‌ها[ویرایش]

اگر چه سیستم پایگاه داده بلادرنگ ممکن است به نظر یک سیستم ساده باشد، اما مشکل از آنجایی شروع می‌شود که دو یا چند تراکنش در پایگاه داده نیاز به دسترسی همزمان به یک بخش از پایگاه داده را دارند. یک تراکنش معمولاً نتیجه اجرای برنامه‌ای است که به محتوای یک پایگاه داده دسترسی دارد یا آن را تغییر می‌دهد[۶]. تراکنش و جریان داده دو چیز متفاوت از هم هستند، زیرا در جریان داده فقط امکان به کارگیری عملکر خواندن وجود دارد ولی تراکنش هر دو عمل خواندن و نوشتن را می‌تواند انجام دهد. این به این معناست که در جریان، چند کاربر می توانند به یک بخش از داده دسترسی داشته باشند و از آن بخوانند اما هیچکدام نمی‌توانند در آن تغییرات ایجاد کنند [۵]. پایگاه داده برای آن که بتواند یکپارچکی داده را حفظ کند باید در هر لحظه فقط به یک تراکنش اجازه اجرا بدهد. به طور مثال، اگر دو دانش آموز همزمان تقاضای زمان باقی مانده از یک بخش از کلاس را دارند و به طور هم زمان دکمه ثبت را فشار دادند، تنها یک دانش آموز باید بتواند برای آن ثبت نام کند [۵].

پایگاه های داده بلادرنگ می‌توانند این درخواست ها را با استفاده از الگوریتم‌های زمانبدی برای کنترل همروندی، پردازش کنند و درخواست های هر دو دانش‌آموز را اولویت بندی کنند. در طول این مقاله، ما فرض می‌کنیم که یک سیستم یک پردازنده واحد، یک پایگاه داده مبتنی بر دیسک و یک انباره حافظه دارد[۷].

در پایگاه داده های بلادرنگ، مهلت زمانی وجود دارد و سیستم‌های مختلف به داده‌هایی که در خارج از مهلت‌زمانی اتفاق افتاده باشند به روش‌های متفاوتی پاسخ می‌دهند. در یک سیستم بلادرنگ، هر تراکنش از یک زمان‌بندی یا ردپای زمان برای برنامه‌ریزی تراکنش‌ها استفاده می‌کند [۵]. یک واحد اختصاص دهنده اولویت، یک مقدار اهمیت را به هر تراکنش در لحظه ورود آن به سیستم پایگاه داده اختصاص می‌دهد که این مقدار به جایگاه زمان در سیستم و سایر اولویت‌ها وابسته است. روش برچسب گذاری زمان برپایه زمان ورود تراکنش به سیستم عمل می‌کند. محققان اشاره کردند که در بیشتر مطالعات، تراکنش ها به صورت متناوب و با زمان ورود غیر قابل پیش بینی هستند. به عنوان مثال، سیستم به یک درخواست با اولویت بالاتر مهلت زمانی نزدیکتر و به درخواست با اولویت کمتر مهلت زمانی دیرتری می‌دهد[۷]. مقایسه بین روش‌های زمانبدی مختلف در زیر ارائه شده است.


زودترین مهلت زمانی
ارزش تراکنش اهمیتی ندارد. به عنوان مثال گروهی از افراد که برای سفارش یک محصول تماس می‌گیرند.


بیشترین ارزش
مهلت زمانی اهمیتی ندارد. بعضی از تراکنش‌ها باید براساس ضرورت ها به پردازنده دسترسی داشته باشند و نه به صورت عادلانه. به این صورت که تراکنشی که کمتر از همه می‌تواند منتظر بماند. اگر خط تلفن شلوغ است، افرادی که با 119 و امداد تماس می‌گیرند در اولویت قرار دارند[۴].
مهلت زمانی تاثیر گرفته از ارزش
براساس روش زمانبندی به ارزش تراکنش و مهلت زمانی وزن یکسانی اختصاص داده می‌شود. یک مثال برای ثبت نام برای کلاس‌هایی است که دانش آموز یک بلوک از کلاس هایی را که می‌خواهد انتخاب می‌کند و دکمه ثبت را فشار می دهد. در این سناریو، اولویت‌های بیشتر اغلب از اهمیت بیشتری برخوردار می‌شوند. سیستم ثبت نام مدرسه احتمالاً وقتی که سرور دو عملیات ثبت نام را دریافت می کند، از این تکنیک استفاده می کند. اگر یک دانش آموز 22 اعتبار داشته باشد و دیگری 100 اعتبار داشته باشد، شخص با اعتبار 100 اولویت بیشتری دارد (برنامه ریزی مبتنی بر ارزش).

محدودیت و مهلت های زمانی[ویرایش]

یک سیستم که به درستی شروط اجرای سریال و زمان‌بندی مربوط به تراکنش‌ها با محدودیت زمانی سخت و نرم را با ارضا می‌کند از مزیت های اجرای سازگاری بهره می گیرد[۸]. از دیگر روش هایی که می توان درستی داده را تضمین کرد به کارگیری محدودیت های نسبی است. محدودیت نسبی تضمین می کند که تراکنش هایی که همزمان وارد سیستم می شوند به عنوان جزئی از یک گروه هستند که داده تراکنش با آن مرتبط است. به کارگیری مکانیزم محدودیت نسبی و مطلق دقت داده را تضمین می کند.

علاوه بر مهلت زمانی، یک روش دیگر برای مقابله با تضادها در یک سیستم پایگاه داده بلادرنگ، به کارگیری روش مبتنی بر وقفه است. این فرایند در لحظات بحرانی به اطمینان از صحت آخرین اطلاعات موجود در سیستم کمک می کند. این سیاست با درخواست از تمام بلوک های غیر درخواستی برای صبر کردن تا زمانی که مهم‌ترین بلوکهای داده پردازش شود. مانع ایجاد تضاد و تناقض می‌شود[۵]. در حالی که مطالعات انجام شده در آزمایشگاه ها نشان می دهد که سیاست های مبتنی بر مهلت داده ها تاثیر قابل توجهی در کارایی ندارند، اما سیاست های مبتنی بر وقفه اجباری توانستند عملکرد را تا 50 درصد افزایش دهد[۹]. سیاست مبتنی بر وقفه اجباری ممکن است یک وقفه طولانی مدت برای یک تراکنش با اهمیت بالا را موجب شوند تا بتوانند از رخداد بن بست جلوگیری کنند. یک مثال دیگر از زمانی که داده ها می توانند به تعویق افتد، زمانی است که یک بلوک از داده ها در حال منقضی شدن است . سیاست مبتنی بر وقفه اجباری مجبور است پردازش را تا زمانی که داده ها با استفاده از داده های ورودی جدید به روز شود، به تاخیر بیندازد. این روش به افزایش دقت سیستم کمک می‌کند و می‌تواند تعداد فرایندهای ضروری که منحل(aborted) شدند را کاهش دهد. به طور کلی، تکیه بر سیاستهای مبتنی بر وقفه بهینه نیست[۱۰].

در این بخش نیاز است تا در مورد شکل گیری و تعیین مهلت زمانی بحث کنیم. مهلت زمانی یک محدودیت برای جایگذاری در اولین فرصت، داده هایی است که توسط تراکنش ها مورد استفاده قرار گرفتند. مهلت زمانی می توانی نظری و یا پیش بینی شوند باشد[۱۰]. در یک سیستم مهلت نظری، تمام تراکنش های ناتمام مورد بررسی قرار می گیرد و پردازنده تعیین می کند که چه تراکنشی به ددلاین و مهلتش رسیده است[۵]. در این روش مشکلات به دلیل تغییرات به وجود آمده بر اثر عواملی متاثر از زمان مانند خطای صفحه، مدیریت بافر(مروری بر سیستم پایگاه داده زمان) رخ می دهد. روش مناسب تر و پایدار تر برای مدیریت مهلت زمانی روش پیش بینی است. این روش زمانبدی پیشنهادی و کاندید را ایجاد می کند و تخمین می زند که تراکنش تحت این زمانبدی چقدر امکان دارد که مهلت زمانی خود را از دست دهد[۵].

نحوه پاسخ به تراکنشی که مهلت زمانی اش را از دست داده بستگی به این دارد که مهلت زمانی آن از چه نوعی بوده است، سخت یا نرم. مهلت زمانی سخت مستلزم آن است که هر بسته داده قبل از آنکه بسته داده منفضی شود به مقصد خود برسد و اگر چنین اتفاقی نیفتد کل فرایند می تواند از بین برود، که موجب مشکل احتمالی می شود. چنین مشکلانی خیلی رایج نیستند؛ زیرا قبل از انتساب مهلت زمانی برای تخمین بدترین حالت نیازبه تمام توان سیستم نیاز است. این کاری بسیار سخت است و اگر اتفاق غیرقابل پیش بینی رخ دهد مثلاً یک مشکل سخت افزاری چند دقیقه ای، می تواند داده ها را از بین ببرد. برای مهلت زمانی های نرم و انعطاف پذیر، از دست رفتن مهلت زمانی می تواند باعث کاهش کارایی سیستم شود اما فاجعه رخ نمی‌دهد[۷]. در مهلت زمانی نرم سعی می شود تا جای ممکن مهلت ها رسیدگی شوند. هرچند، گارانتی وجود ندارد که سیستم بتواند تمام مهلت های زمانی را رعایت کند. تراکنش ها اجازه دارند تا مهلت زمانی خود را از دست بدهند و سیستم انعطاف پذیری بیشتری دارد. در زیر نحوه پاسخگویی ها شرح داده شده است:

مهلت زمانی سخت
اگر از دست دادن مهلت زمانی منجر به مشکل جدی می شود، زمانبدی سخت بهترین گزینه است. متناوب است، به این معنی که داده به صورت یک الگوی دارای ریتم و منظم وارد می شود. به عنوان مثال داده های جمع آوری شده توسط یک سنسور. معمولاً در سیستم های حیاتی به کار گرفته می شود[۱۱].
مهلت زمانی محکم و پایدار
این نوع مهلت زمانی به نظر می رسد که شبیه به مهلت زمانی سخت باشد اما متفاوت است، زیرا این نوع مهلت زمانی در زمان دریافت و ورود تراکنش تعیین می کند که میزان به پایان رساندن به موقع تراکنش چقدر مهم ایت. گاهی به پایان رساندن تراکنش بعد از منقضی شدن مهلت زمانی آن می تواند خطرناک باشد و فایده ای نداشته باشد، هر دو زمانبدی سخت و محکم این مساله را در نظر می گیرند. یک نمونه از رمانبدی محکم سیستم کنترل هواپیما است[۴]
مهلت زمانی نرم
اگر رسیدن به مهلت زمانی ایده‌آل باشد اما از دست دادن مهلت زمانی خسارات جدی به بار نیاورد، زمانبدی نرم بهترین گزینه است. به صورت غیر متناوب مدیریت می شود. در حقیقت، زمان رسیدن هر کار نامشخص است. از نمونه های این نوع زمانبدی اپراتور سوئیچ برای خط تلفن است[۱۱].


در مهلت زمانی سخت، پردازش ها، تراکنش هایی که مهلت زمانی آن ها گذشته باشد را لغو می کنند و با حذف بهم ریختگی ها سیستم بهبود داده می دهند. فرایندها می توانند نه تنها تراکنش هت با مهلت های منقضی شده را حذف کنند بلکه همچنین تراکنش ها با مهلت های طولانی را نیز حذف می کنند، فرض بر این است که زمانی به پردازنده می رسند که منسوخ شده اند. این به این معنی است که سایر تراکنش‌ها باید اولویت بالاتری داشته باشند. علاوه بر این، یک سیستم می تواند تراکنش های کم اهمیت را حذف کند. وقتی پیش ثبت نام کلاس ها را در یک دوره پرترافیک انتخاب می کنم، یک فیلد در پایگاه داده می تواند خیلی مشغول ثبت درخواستهای ثبت نامی باشد که برای مدتی در دسترس نبودند و نتیجه تراکنش من نمایش یک کوئری SQL و پیام داده ها در حال حاضر در دسترس نیست، باشد. این خطا توسط چک کننده ایجاد می شود، مکانیسمی که وضعیت قوانین و مقررات و قانونی که قبل از آن رخ داده را بررسی می کند.[۱۲].

هدف از برنامه ریزی زمانبدی ها و مهلت ها به روز کردن تراکنش ها و تضمین برای تکمیل آن ها قبل از مهلت شان به طوری که حجم کار حداقل باشد است. با پایگاه داده های بلادرنگ بزرگ، توابع بافر می تواند به شدت به بهبود عملکرد کمک کند. یک بافر بخشی از پایگاه داده است که در حافظه اصلی ذخیره می شود تا زمان پاسخ تراکنش را کاهش دهد. برای کاهش تراکنش های ورودی و خروجی دیسک، تعداد مشخصی از بافر ها باید اختصاص داده شود[۱۳]. گاهی اوقات چندین نسخه در بافرها ذخیره می‌شوند، زمانی که داده های مورد نیاز تراکنش در حال حاضر در حال استفاده هستند. در ادامه، پایگاه داده دارای اطلاعاتی است که به آن اضافه شده است. استراتژی های مختلفی برای اختصاص بافرها وجود دارد، و باید بین داشتن حجم زیادی از حافظه و داشتن تمام اطلاعات روی بافرها تعادل ایجاد کرد. هدف کاهش و حذف زمان جستجو و توزیع منابع بین فریم های بافر به منظور دسترسی سریعتر به داده است. مدیریت کننده بافر می تواند در صورت نیاز مقدار بیشتری حافظه به بافر اختصاص دهد تا زمان پاسخ را بهبود بخشد. مدیر بافر حتی می‌تواند تعیین کند که آیا که باید آن تراکنش را پیش ببرد. به طور کل بافر کردن می تواند سرعت سیستم های بلادرنگ را بهبود بخشد[۱۳].

سیستم‌های پایگاه داده های آینده[ویرایش]

پایگاه داده‌های رایج پایدار هستند اما توانایی برخورد و مدیریت داده های پویای که دائماً در حال تغییر هستند را ندارد. بنابراین، یک سیستم دیگر مورد نیاز است. پایگاه داده های بلادرنگ ممکن است به منظور بهبود دقت و کارایی و جلوگیری از تداخل، با ایجاد مهلت ها و وقفه های متناوب سازگاری موقت را تضمین کنند. سیستم های پایگاه داده بلادرنگ امکان نظارت بر سیستم فیزیکی را فراهم می کنند و آن را به صورت جریان داده به پایگاه داده نمایش می دهند. یک جریان داده، مانند حافظه، با گذشت زمان محو می شود. به منظور تضمین جدید بود و دقیق بودن داده های ذخیره شده راه های محتلفی برای بررسی اینکه تراکنش ها به ترتیب درستی اجرا شدند، وجود دارد. یک مزایده حراج خانه به صورت آنلاین، یک مثال از تغییر سریع داده ها در پایگاه داده را نشان می دهد.

در حال حاضر سیستم های پایگاه داده سریع تر از گذشته هستند. در آینده، ما می توانیم انتظار سیستم های پایگاه داده بسیار سریعتری را داشته باشیم. اگر چه سیستم های در حال حاضر نیز سیستم های سریعتری نسبت به گذشته وجود دارد، تلاش برای کاهش اشتباهات و تاخیرات زمانی همچنان می تواند کارآمد باشد. توانایی پردازش نتایج به صورت به موقع و قابل پیش بینی همیشه مهتمتر از سرعت است. پردازش سریع که به اشتباه اعمال شود برای سیستم های پایگاه داده بلادرنگ مفید نیست. تراکنش‌هایی که سریعتر اجرا میشوند، گاهی اوقات بلوکه می‌شوند و باید آنها را لغو و مجدداً اجرا کرد. در واقع، پردازش سریع به برخی از برنامه های بلادرنگ آسیب می زند، زیرا افزایش سرعت پیچیدگی را بیشتر می کند و احتمال بیشتری برای ایجاد مشکلات ناشی از تغییرات سرعت را ایجاد می کند. پردازش سریع تر باعث می شود که تعیین اینکه کدام تراکنش ها در زمان مقرر اجرا شده اند و به مهلت زمانی خود رسیده اند را سخت میکند. برای سیستم های پایگاه داده سریع نسل آینده، نیاز است تا مطالعات بیشتری انجام شود تا بتوانیم سیستم های کارامدی داشته باشیم[۱۴].

میزان تحقیقات در مورد سیستم های پایگاه داده بلادرنگ به دلیل افزایش برنامه های کاربردی تجاری مانند خانه های حراج مبتنی بر وب مانند e-bay افزایش می یابد. کشورهای توسعه یافته نیز بیشتر سیستم های تلفن خود را گسترش می دهند و تعداد افرادی که در ایالات متحده از تلفن های همراه استفاده می کنند همانند دیگر نقاط جهان پیوسته در حال افزایش و رشد است. همچنین احتمال دارد تحقیقات در زمینه سیستم های بلادرنگ، موجب افزایش سریع سرعت میکروپردازنده ها شود. این اتفاق همچنین در فناوری های جدید مانند ویدئو کنفرانس های وب و پیام‌رسان فوری، مکالمات با صدا و تصاویر با وضوح بالا که بر پایه سیستم های پایگاه داده بلادرنگ کار می می‌کنندرا امکان پذیر می سازد. مطالعات بر روی سازگاری موقت و لحظه ای موجب ایجاد پروتکل های جدید و محدودیت زمان بندی با هدف مدیریت موثرتر تراکنش های بلادرنگ شده است[۷].

منابع[ویرایش]

  1. Buchmann, A. "Real Time Database Systems." Encyclopedia of Database Technologies and Applications. Ed. Laura C. Rivero, Jorge H. Doorn, and Viviana E. Ferraggine. Idea Group, 2005.
  2. Kanitkar, Vinay & Alex Delis (1997). "A Case for Real-Time Client-Server Databases". Brooklyn, New York: Polytechnic University. Retrieved 13 December 2006. {{cite journal}}: Cite journal requires |journal= (help)
  3. Carpron, H.L. , J. A. Johnson. Computers: Tools for the Information Age. Prentice Hall, 1998. 5th ed.
  4. ۴٫۰ ۴٫۱ (Snodgrass)
  5. ۵٫۰ ۵٫۱ ۵٫۲ ۵٫۳ ۵٫۴ ۵٫۵ ۵٫۶ Abbot, Robert K. , and Hector Garcia-Molina. (1992). "Scheduling Real-Time Transactions: a Performance Evaluation" (PDF). Stanford University and Digital Equipment Corp. ACM. doi:10.1145/140000/132276. Retrieved 13 December 2006. {{cite journal}}: Cite journal requires |journal= (help)نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  6. Singhal, Mukesh. Approaches to Design of Real-Time Database Systems, SIGMOD Record, volume 17, no. 1, March 1988
  7. ۷٫۰ ۷٫۱ ۷٫۲ ۷٫۳ Haritsa, J., J. Stankovic, and M Xiong. "A State-Conscious Concurrency Control Protocol for Replicated Real-Time Databases". University of Virginia. IEEE Real-Time Applications Symposium. Retrieved 13 December 2006. {{cite journal}}: Cite journal requires |journal= (help)نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  8. Lee, Juhnyoung (1994). "Concurrency Control Algorithms for Real-Time Database Systems". Diss. Univ. of Virginia. Retrieved 13 December 2006. {{cite journal}}: Cite journal requires |journal= (help)
  9. (Porkka)
  10. ۱۰٫۰ ۱۰٫۱ Kang, K D., S Son, and J Stankovic. Specifying and Managing Quality of Real-Time Data Services. University of Virginia. IEEE TKDE, 2004.
  11. Stankovic, John A., Marco Spuri, Krithi Ramamritham, and Giorgio C. Buttazzo. Deadline Scheduling for Real-Time Systems: EDF and Related Algorithms. Springer, 1998.
  12. (Ramamritham)
  13. ۱۳٫۰ ۱۳٫۱ (O'Neil)
  14. Lam, Kam-Yiu, and Tei-Wei Kuo. Real-Time Database Systems: Architecture and Techniques. Springer, 2001.

مطالعه بیشتر[ویرایش]