پایگاه داده اوراکل چیست؟
97 شرکت از 100 تا کمپانی موجود در لیست برترین کمپانیهای مجله Fortune، از دیتابیس اوراکل استفاده میکنند! همین موضوع عظمت این کمپانی و سیستم پایگاه داده آن را نشان میدهد. دیتابیسها انواع مختلفی دارند و اوراکل همه آنها را به مشتریانش (بسته به نیازی که دارند) ارائه میکند.
نکته: برای مدیریت پایگاه داده، یک سیستم مدیریتی مخصوص لازم داریم. به این سیستم Database Management System میگویند؛ اما نه انقدر طولانی! نام اختصاری آن DBMS است.
همانطور که گفتیم، انواع مختلفی از پایگاههای داده وجود دارند. خب مسلماً یکی از آنها بهتر از بقیه است
پایگاه داده رابطهای: RelationalDatabase
مثال دفترچه تلفن را خاطرتان است؟ در دفترچه تلفن اطلاعات مختلف (اسامی و شمارهها) با یکدیگر در ارتباط هستند. فرض کنید در ۱۰ صفحه اول فقط اسامی نوشته شده باشند و در ۱۰ صفحه آخر شمارهها یادداشت شده باشند. بهنظرتان فایدهای دارد؟!! بعید میدانم!
پایگاه داده رابطهای یا همان Relational Database را میتوان بهترین نوع دیتابیسها دانست. اطلاعات در این مدل بهشکل جدول و همراه با ستون و ردیف مرتب شدهاند. این موضوع باعث میشود دسترسی به اطلاعات مختلف خیلی راحت ممکن شود.
سیستمی که برای مدیریت پایگاه داده رابطهای استفاده میشود، RDBMS نام دارد. این عبارت مخفف Relational Database Management System است.
نکته: زبان کوئری که توسط بیشتر دیتابیسهای رابطهای – از جمله پایگاه داده اوراکل – مورد استفاده قرار میگیرد، SQL نام دارد.
بیایید برگردیم سراغ بحث اصلی و ببینیم ویژگیهای پایگاه داده Oracle چیست؟
تمام ویژگیهای پایگاه داده اوراکل
اگر اجازه دهید، بررسی ویژگیها را به دو بخش تقسیم کنیم. بخش اول مربوط به ویژگیهای کلی این دیتابیس است و بخش دوم راجع به ویژگیهای انحصاری آن. اول بخش اول!
ویژگیهای کلی پایگاه داده Oracle چیست؟
- این دیتابیس کراس-پلتفرم است؛ یعنی روی پلتفرمهای مختلف قابل اجرا است و میتواند روی سختافزارها و سیستمعاملهای مختلف مثل ویندوز، یونیکس و توزیعات مختلف لینوکس مورد استفاده قرار گیرد.
- پایگاه داده اوراکل به پشتوانه ساختار شبکهای، امکان برقراری ارتباط بین اپلیکیشنهای مختلف از پلتفرمی دیگر را فراهم میکند. کمی پیچیده است! برای مثال اپلیکیشنی که روی ویندوز اجرا شده است، میتواند به پایگاه داده اوراکلی که روی لینوکس قرار دارد متصل شود.
- اوراکل همیشه آماده استقبال از تکنولوژیهای جدید است. دیتابیس این کمپانی جزو اولینهایی بود که از سیستمعامل لینوکس در آغاز عرضه (اوایل دهه ۹۰) پشتیبانی کرد.
- این دیتابیس با ACID سازگار است. به این ترتیب استفاده از اطلاعات بهصورت یکپارچه و مطمئن ممکن میشود.
ACID یعنی حضور همزمان چهار عنصر!
منظور از ACID چیست؟
حروف این عبارت از اولین حرف هر عنصر گرفته شده است:
- Atomicity: منظور این است که در فرایندهای نقلوانتقال در دیتابیس، دادهها به اجزای بسیار ریزی تبدیل میشوند تا انتقال راحتتر انجام شود.
- Consistency: این عبارت معنای ثبات را میدهد. برای اینکه یک دیتابیس کارش را انجام دهد، باید از یکسری قوانین مشخص پیروی کند. اگر نقلوانتقالی در دیتابیس انجام شود که تابع قوانین نباشد، کار به سرانجام نمیرسد.
- Isolation: منظور از Isolation در پایگاه داده، پردازش همزمان پروسهها بدون تاثیر یکی بر دیگری است.
- Durability: این قابلیت برای مقابله با مشکلات احتمالی مفید است. در دیتابیسهایی که دارای قابلیت پایداری هستند، بعد از انجام هر عملیات انتقال، دادهها و اطلاعات ذخیره میشوند. بنابراین حتی اگر اتفاقاتی مانند قطع برق یا سیستم رخ دهد، مشکل خاصی به وجود نمیآید.
پس وقتی میگوییم پایگاده داده اوراکل، با ACID سازگار است، یعنی از هر ۴ قابلیت بالا بهره میبرد.
ویژگیهای ساختاری پایگاه داده Oracle چیست؟
اگر بگوییم یکی از اصلیترین دلایل محبوبیت و معروفیت این دیتابیس، ویژگیهای ساختاری آن هستند، بیراه نگفتهایم.
- ساختار منطقی دادهها: با داشتن این ویژگی، میتوانید بدون دانستن مکان فیزیکی داده با دیتابیس ارتباط برقرار کنید.
- پارتیشنبندی: این ویژگی کمک میکند جدولهای بزرگ – در پایگاه داده رابطهای – را به بخشهای کوچکتر تقسیم کنید و هر قسمت را در بخشی از هارد ذخیره کنید.
- کش مموری: این قابلیت باعث میشود با بزرگتر شدن پایگاه داده، سرعتعمل آن دچار مشکل نشود.
- دیکشنری دادهها: با استفاده از این ویژگی که نوعی جدول داخلی است، اداره دیتابیس راحتتر از همیشه میشود.
- بکاپ و ریکاوری: داشتن این قابلیت برای دیتابیسها از واجبات است. پایگاه داده اوراکل هم با برخورداری از این ویژگی، از تمام اطلاعات و دادهها انواع بکآپها را میگیرد تا در صورت بروز مشکل بتواند بعداً آنها را ریکاوری کند. این کار توسط اپلیکیشنی قدرتمند با نام RMAN انجام میشود که مخفف Recovery Manager است.
- دستهبندی: این قابلیت اوراکل توسط اپلیکیشنی با نام RAC اجرا میشود. وظیفه این اپلیکیشن اطمینان از درستی عملکرد کل سیستم است. حتی در زمانی که یک یا چند سرور با مشکل مواجه شده باشند.
انواع مختلف پلنهای پایگاه داده اوراکل
۳ پِلَن اصلی دیتابیسهای این کمپانی شناختهشده به شرح زیر هستند:
1) نسخه مخصوص شرکتها (EE)
این پلن پرطرفدارترین و در عین حال گرانترین نسخه دیتابیس اوراکل است و ۳ ویژگی زیر را دارد:
- نداشتن محدودیت در تعداد CPU ها.
- نبود محدودیت در اندازه مموری و دیتابیس.
- دارای ویژگیهای پریمیوم که در نسخههای دیگر دیده نمیشود.
2) نسخه استاندارد (SE)
این پِلَن نسخه محدودشده از نسخه مخصوص شرکتها یا (EE) است. ۳ ویژگی زیر از خصوصیات این نسخه هستند:
- محدود شدن تعداد CPUهای مورد استفاده به 4 عدد.
- نبود محدودیت در اندازه مموری و دیتابیس.
- دارای ویژگیهای بسیار، اما نه به اندازه نسخه EE.
3) نسخه رایگان (XE)
این پِلَن بهصورت رایگان در اختیار مشتریان قرار میگیرد و در مقایسه با دو پِلَن قبلی محدودیتهای بیشتری دارد. به ویژگیهای این نسخه توجه کنید:
- محدود شدن تعداد CPU های مورد استفاده به 2 عدد.
- نهایت RAM قابل استفاده 2 گیگابایت است و نهایتاً امکان ذخیرهسازی 12 گیگابایت داده وجود دارد.
- دارای ویژگیهای بسیار محدود!
۳ راهحل برای بهبود عملکرد دیتابیس داده اوراکل
اگر احساس میکنید دیتابیسی که از اوراکل تهیه کردهاید، کارایی لازم را ندارد، باید بدانید که تنها نیستید.
اگر بخواهیم وارد مباحث تخصصی بهینهسازی عملکرد دیتابیس Oracle شویم، بحث پیچیده و تخصصی میشود. به همین خاطر تصمیم گرفتیم ۳ راهحلی که میتوانند کمکحالتان باشند را معرفی کنیم.
1) تنظیم کردن SQL ناکارآمد
سریعترین، مطمئنترین و موثرترین روش برای بهبود عملکرد دیتابیس Oracle چیست؟ قطعاً بهینهسازی SQL ناکارآمدی که در اپلیکیشنها استفاده میشود! همانطور که در ابتدای مقاله هم گفتیم، SQL یک زبان کوئری است که در برنامهریزی اپلیکیشنهای دیتابیس – بهخصوص دیتابیسهای رابطهای – مورد استفاده قرار میگیرد.
به همین خاطر تنظیم و بهینهسازی SQL ناکارآمد – بهمنظور اجرای ایدئال پروسه جستوجو و بهبود عملکرد کلی پایگاه داده – یک راه فوقالعاده محسوب میشود.
مهمترین کاری که باید در این راستا انجام دهید، شناسایی و اندازهگیری درست ایرادات در عملکرد سیستم است.
بگذارید خیالتان را راحت کنیم. بهینهسازی بدون آگاهی از مشکل کار بیهوده و بیفایدهای است.
۲) بهبود عملکرد فضای ذخیره سازی
بعد از بهینهسازی تمام SQL های موجود در سایت، میتوانید برای داشتن عملکردی بهتر سراغ فضای ذخیرهسازیای که دیتابیس روی آن قرار گرفته است بروید؛ یعنی آن را هم بهینهسازی کنید. یک روش موثر و مقرونبهصرفه برای حذف موانعی که در عملکرد کل اختلال ایجاد میکنند.
برای انجام اینکار میتوانید از تکنولوژی Flash Storage استفاده کنید. (این تکنولوژی بهخاطر سرعت بالایی که دارد معروف است.) استفاده هدفمند از این تکنولوژی باعث میشود بدون نیاز به Refresh کردن تمام زیرساختها، بتوانید بهبود چشمگیری در عملکرد پایگاه داده اوراکل ایجاد کنید.
برای انجام این کار باید اجزای مشخصی از دیتابیس را در قسمتی از Flash Storage قرار دهید تا بهترین نتایج عملکردی را برای شما و سیستمتان رقم بزنند. اجازه دهید باقی اجزا در همان Storage قبلی باقی بمانند.
در اوراکل، فرایندهای ارزیابی و هر فرایند دیگری که نیازمند بررسی حجم زیادی از دادهها است، شدیداً تحت تاثیر عملکرد فضای ذخیرهسازی قرار دارد. منتقل کردن اجزای مرتبط اوراکل به Flash Storage یک راه مقرونبهصرفه برای افزایش سرعت در چنین فرایندهایی است.
نکته مهم: مشکلات عمکلردی Storage از یکسری رویکرد مشخص و هدفگذاری شده ناشی میشوند. به همین خاطر نیازی به انتقال تمام اجزای دیتابیس به فضای ذخیرهسازی جدید نیست. فقط اجزایی که به رویکردهای موثر ارتباط دارند را به Flash Storage منتقل کنید.
۳) تهیه زیرساخت اختصاصی برای پایگاه داده
شاید مشکل کلاً از جای دیگری باشد! ممکن است تمام تلاشهایی که برای بهینهسازی و تنظیم فرایندها انجام میدهید، هیچ فایدهای نداشته باشند. معمولاً این مشکل هنگام استفاده از زیرساخت اشتراکی خودش را نشان میدهد. در چنین مواقعی، بهترین راهحل سوا کردن و انتقال فرایندهای مختلف پایگاه داده اوراکل به یک زیرساخت اختصاصی است.
البته داشتن زیرساخت اختصاصی و بهرهمندی از پشتیبانیهای مربوط به آن، رایگان نیست!اما خب مزایایی که در ادامه به آنها اشاره میکنیم، این هزینهها را توجیه میکنند:
- شخص دیگری زیرساخت را با شما شریک نیست که بتواند روی سرعت پاسخگویی دیتابیس اثر بگذارد.
- بهبود عملکرد تمام فرایندهای پایگاه داده یا دیتابیس.
- کاهش اثر زیرساخت در فرایندها.
- ساده شدن مدیریت، رصد کردن و تامین امنیت.
عملیات عیبیابی در عمکلرد دیتابیسی که زیرساخت مشترک دارد، کاری زمانبر و دشوار است! از طرف دیگر، عملکرد مناسب، گنجایش بالا و امکان مقیاسپذیری از ویژگیهای اصلی پایگاه داده اوراکل محسوب میشوند. در کنار اینها باید به یکی از مهمترین مزایای پایگاه داده اوراکل اشاره کنیم: توانایی اندازهگیری، عیبیابی و بهینهسازی فرایندهای ضروری در یک محیط اختصاصی! به همین خاطر است که تهیه یک زیرساخت اختصاصی برای این دیتابیس، بهمقدار زیادی عملکرد کلی را بهبود میبخشد.
خوب است بدانید در بیشتر اوقات، عیبیابی در Oracle بسیار سریعتر از پلتفرمهای رقبایش انجام میشود. برای داشتن دیتابیسی مقیاسپذیر و منعطف، باید هزینه کنید؛ پس هنگام برآورد هزینهها، فراموش نکنید که هزینههای غیرمستقیم ناشی از عملکرد ضعیف سیستم را هم محاسبه کنید. شاید قانع شوید که تهیه زیرساخت اختصاصی در بلندمدت از نظر اقتصادی صرف بیشتری دارد.
آیا بهروزرسانی پایگاه داده اوراکل، عملکرد سیستم را بهبود میبخشد؟
در برخی موارد آپگرید کردن پایگاه داده اوراکل به آخرین نسخه، میتواند در عیبیابی و برطرف کردن مشکلات عملکردی موثر باشد. مثلاً با ارائه نسخه Oracle 12c، تغییرات قابلتوجهی در عملکرد SQLها و مدیریت برنامههای جستوجو بهوجود آمد.
اگر بر استفاده از نسخههای قدیمی سماجت بهخرج دهید، دستتان برای عیبیابی و رفع مشکلات عملکردی هم بسته خواهد ماند. البته که آپگرید کردن هیچوقت بدون ریسک نیست، اما خب باعث میشود بهتر شدن عملکرد را در برخی موارد بهچشم ببینید!
اوراکل بهعنوان معروفترین کمپانی ارائهدهنده خدمات پایگاه داده، پلنهای مختلفی را برای مشتریانش در نظر گرفته است. همانطور که در متن هم اشاره کردیم، یکی از دلایل محبوبیت و معروفیت دیتابیس اوراکل، ویژگیهای ساختاری آن است.
دیتابیسها انواع مختلفی دارند و Oracle هم بیشتر آنها را به مشتریانش ارائه میکند، اما پایگاه داده رابطهای را میتوان بهترین نوع دیتابیس دانست که تمرکز اصلی این کمپانی هم روی آن قرار دارد.
از طرفی، بزرگترین ضعف Oracle متمرکز، وجود تک نقطه شکست (Single Point Of Failure) است؛ SPOF نقطهای است که در صورت خرابی، موجب از کار افتادن تمام سیستم میشود. همین امر قراردادهای هوشمند را در برابر حملات احتمالی به شدت آسیبپذیر میکند.
Oracleهای غیرمتمرکز عملکردی مشابه بلاکچینهای عمومی دارند و فاقد یک نهاد واحد یا منبع تامین اطلاعات هستند. در این نوع از Oracleها، صحت اطلاعات تنها از یک منبع نیست و چندین Oracle همزمان در حال فعالیت و گردآوری اطلاعات هستند و پس از تایید نهایی، دادهها مورد استفاده قرار میگیرند. از همین جهت، این اوراکلها مشهور به اوراکل اجماعی نیز هستند.
اوراکل مختص به یک قرارداد هوشمند
این نوع از Oracle به طور عمده برای یک قرارداد هوشمند به طور یکتا طراحی شده است. این بدان معنا است که اگر شخصی بخواهد از آن برای چند قرارداد هوشمند استفاده کند، به همان تعداد اوراکل باید ساخته و توسعه داده شود.
این نوع از اوراکلها بسیار زمانبر و هزینهبر تلقی میشوند؛ زیرا شرکتهایی که نیازمند کسب اطلاعات از چندین منبع داده دارند، مجبور خواهند بود که چند Oracle طراحی و پیادهسازی کنند که این امر برای آنها اصلا مقرون به صرفه نیست.
اوراکلهای انسانی
افرادی هستند که در حوزهای به خصوص، اطلاعات کامل و جامعی دارند و میتوان از این افراد به عنوان Oracle استفاده کرد. این اشخاص دادههای مورد نظر قرارداد هوشمند را پس از انجام فرایندهای لازم، در اختیار آن قرار میدهند. در این روش، به دلیل احراز هویت رمزنگاری این افراد، امکان جعل هویت و دستکاری اطلاعات به شدت کم خواهد بود.
معایب اوراکل چیست؟
از آنجایی که اجرای قراردادهای هوشمند براساس دادههایی است که توسط Oracleها تامین میشوند، برای یک اکوسیستم بلاکچین سالم، بسیار حیاتی هستند. به طور کلی، چالش اصلی استفاده از Oracleها، در خرابی آنها است؛ در صورتی که اوراکلها دچار مشکل شوند، به طور کلی قراردادهای هوشمند مبتنی بر آنها، بلااستفاده خواهند بود!
با توجه به اینکه اوراکلها بخشی اصلی از مکانیسم اجماع بلاکچین نیستند، متاسفانه نمیتوانند بخشی از مکانیسم امنیتی بلاکچین عمومی باشند. به همین دلیل، ایجاد توافقی بدون دردسر میان مکانیسم اجماع و اوراکلها، همچنان غیرقابل حل باقی مانده است.