ওরাকল ২১সি ডাটাবেস অন-প্রেমিস এবং ক্লাউড ইনফ্রাস্ট্রাকচারে ওরাকল ডাটাবেস সার্ভিসগুলোকে শক্তি দেয়, যার মধ্যে অটোনোমাস ডাটাবেস (ADB), ওরাকল এক্সাডেটা সার্ভিস@কাস্টমার এবং ওরাকল এক্সাডেটা মেশিন অন্তর্ভুক্ত।
সর্বশেষ ওরাকল সংস্করণে নতুন কেস, অপ্টিমাইজার পারফরম্যান্স অটোমেশন, JSON ডেটা এবং গ্রাফ মডেলের জন্য সাপোর্ট অন্তর্ভুক্ত। এর অটোমেশন ফিচারগুলো ব্যবহারকারী এবং ডেভেলপারদের জীবন সহজ করে। এটি বিশাল পরিসরের ডেটা মডেল, ওয়ার্কলোড সাপোর্ট করে, বিল্ট-ইন মেশিন লার্নিং ক্যাপাবিলিটি রয়েছে যা আলাদা সার্ভিসের প্রয়োজন সরিয়ে দেয়। ওরাকল ২১সি সকল ধরণের ডেটা মডেল জুড়ে SQL, REST এবং API ট্রানজ্যাকশন সক্ষম করে।
২১সি আর্কিটেকচার
একটি ওরাকল ডাটাবেস আর্কিটেকচার পুরনো সংস্করণের মতো। এতে ওরাকল ডাটাবেস ইন্সট্যান্স এবং ওরাকল ডাটাবেস থাকে, নিচের ডায়াগ্রামে দেখানো হয়েছে।
Image Source
ওরাকল ডাটাবেস ২১সি টেকনিক্যাল আর্কিটেকচার:
মাল্টিটেন্যান্ট আর্কিটেকচার ফিজিক্যাল ফাইল যাদের ডেটাফাইল বলা হয় এবং ডাটাবেস ইন্সট্যান্স মেমোরি স্ট্রাকচার (SGA যাকে শেয়ার্ড গ্লোব্যাল এরিয়া বলা হয় এবং PGA) এবং ব্যাকগ্রাউন্ড প্রসেস নিয়ে গঠিত যা ইউজারদের পক্ষ থেকে কোয়েরি এক্সিকিউট করার মতো কাজ করে, ডিস্ক থেকে ডেটা ফেচ করে, ডেটাফাইল বা রিডো লগ ফাইলে ডেটা লেখে, এক্সিকিউশন প্লান স্টোর করে ইত্যাদি।
সিঙ্গেল ডাটাবেস আর্কিটেকচারে ইন্সট্যান্স এবং ডাটাবেসের মধ্যে এক-से-এক সম্পর্ক থাকে। একই সার্ভারে একাধিক সিঙ্গেল ইন্সট্যান্স ইনস্টল করা যায়, কিন্তু প্রতিটি ইন্সট্যান্সের জন্য আলাদা ডাটাবেস থাকবে।
ওরাকল RAC আর্কিটেকচারে একাধিক ইন্সট্যান্স আলাদা সার্ভারে রান করে, কিন্তু সবগুলো একই ডাটাবেস ব্যবহার করে। এই কনফিগারেশন হাই অ্যাভেইলেবিলিটি, হাই-এন্ড পারফরম্যান্স এবং স্কেলেবিলিটি দিতে ডিজাইন করা। ডাটাবেসে লিসেনার ক্লায়েন্ট অ্যাপ্লিকেশন রিকোয়েস্ট গ্রহণ করে এবং ডাটাবেসের সাথে কানেকশন thiết lập করে, তারপর সার্ভার প্রসেসকে হস্তান্তর করে। সার্ভার প্রসেস ইউজারের পক্ষ থেকে কাজ করে এবং তার অনুরোধ পূরণ করে।
ওরাকল ২১সি ফিচার
২১সি জেনারেশন সকল ধরণের ডেটা টাইপ সাপোর্ট করে যেমন রিলেশনাল, JSON, XML, স্পেশিয়াল গ্রাফ, OLAP ইত্যাদি এবং সকল ধরণের ওয়ার্কলোড যেমন অ্যানালিটিক্যাল, অপারেশনাল এবং মিক্সড ওয়ার্কলোডের জন্য উচ্চ পারফরম্যান্স, স্কেলেবিলিটি, অ্যাক্সেসিবিলিটি এবং সিকিউরিটি প্রদান করে, নিচের ছবিতে চিত্রিত।
Image Source
১) ব্লকচেইন টেবিল:
এটি ভেরিফাইড ট্রানজ্যাকশন সম্পর্কিত সমস্যা সমাধান করেছে। এটি ডিস্ট্রিবিউটেড লেজার সাপোর্ট করতে এমন অ্যাপ্লিকেশন বিল্ড করার জটিলতাকে সমাধান করে। এই টেবিলগুলো যেকোনো সাধারণ হিপ টেবিলের মতো কাজ করে কিন্তু বেশ কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে। সবচেয়ে উল্লেখযোগ্য হলো সারি বা রো ইনসার্ট होते হয়ে ক্রিপ্টোগ্রাফিক্যালি হ্যাশড হয়, যা নিশ্চিত করে যে সারিটি পরবর্তীতে পরিবর্তন করা যাবে না।
Image Source
এটি একটি ইনসার্ট-অনলি টেবিল তৈরি করে এবং ব্যবহারকারী ব্লকচেইন টেবিলের রো আপডেট বা ডিলিট করতে পারে না। 또한, নির্দিষ্ট সময় সীমার মধ্যে ব্যবহারকারী ডেটা ট্রানকেট করতে, ব্লকচেইন ড্রপ করতে এবং টেবিল পার্টিশন করতে পারবেন না। এই গুরুত্বপূর্ণ ক্ষমতাগুলো মানে অন্য ব্যবহারকারীরা ব্লকচেইন টেবিলে থাকা ডেটা যেন ইভেন্টের সঠিক রেকর্ড সেটি বিশ্বাস করতে পারে।
২) নেটিভ JSON ডেটা টাইপ:
এটি JSON ডেটা VARCHAR2 বা LOB (CLOB বা BLOB) হিসেবে স্টোর করে যা ডেভেলপারকে স্কিমালেস ডিজাইন মডেলের নমনিতা দিয়ে অ্যাপ্লিকেশন বিল্ড করতে সাহায্য করে। উদাহরণস্বরূপ, একটি ব্যবহারকারী SQL দিয়ে JSON ডকুমেন্ট কোয়েরি করতে পারে এবং উন্নত অ্যানালিটিক্স, indywidual অ্যাট্রিবিউট বা পুরো ডকুমেন্ট ইনডেক্স করতে পারে এবং বিলিয়ন গুলো JSON ডকুমেন্ট প্যারালেলে প্রসেস করতে পারে। ওরাকল ডাটাবেস ২১সি-এ, JSON সাপোর্ট নেটিভ ডেটা টাইপ "JSON" অফার করে আরও উন্নত করা হয়েছে।
এর মানে হলো রিড বা আপডেট অপারেশনে JSON পার্স করতে হয় না, পার্স শুধু ইনসার্টের সময় হয় এবং JSON তারপর ইন্টারন্যাল বাইনারি ফরম্যাটে রাখা হয় যা এক্সেস অনেক দ্রুত করে। এর ফলে রিড এবং আপডেট অপারেশন ৪ বা ৫ গুণ দ্রুত হতে পারে এবং বড় JSON ডকুমেন্ট আপডেট ২০ থেকে ৩০ গুণ দ্রুত হতে পারে।
CREATE TABLE j_order
(
id INTEGER PRIMARY KEY,
po_doc JSON
);
নতুন ডেটা টাইপটি একমাত্র পরিবর্তন ছিল না যা ওরাকল ডাটাবেস ২১সি-এ JSON-এর জন্য চালু করা হয়েছে, ওরাকল একটি নতুন JSON ফাংশন JSON_TRANSFORM যোগ করেছে যা একটি ডকুমেন্টে একাধিক অ্যাট্রিবিউট আপডেট এবং রিমুভ করতে একটি অপারেশনে অনেক সহজ করে দিয়েছে।
UPDATE j_order SET po_doc = JSON_TRANSFORM( po_doc, SET '$.address.city' = 'Santa Cruz', REMOVE'$.phones[*]?(@.type == "office") ) WHERE id = 555;
৩) ওরাকল ডাটাবেসের ভিতরে জাভাস্ক্রিপ্ট এক্সিকিউশন:
এটি Multi Language Engine (MLE) ব্যবহার করে ডাটাবেসের ভিতরে জাভাস্ক্রিপ্ট কোড রান করে নতুন PL/SQL প্যাকেজ দিয়ে: DBMS_MLE। MLE। জাভাস্ক্রিপ্ট ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপে সমৃদ্ধ ইউজার ইন্টারঅ্যাকশন সক্ষম করে। এটি অল্প ভাষাগুলোর মধ্যে এক যা ওয়েব ব্রাউজারে রান করে এবং সার্ভার এবং ক্লায়েন্ট-সাইড কোড ডেভেলপ করতে ব্যবহৃত হয়।
জটিল প্রোগ্রাম বাস্তবায়নের জন্য বিদ্যমান জাভাস্ক্রিপ্ট লাইব্রেরির একটি বিশাল সংগ্রহ রয়েছে এবং জাভাস্ক্রিপ্ট জনপ্রিয় ডেভেলপমেন্ট টেকনোলজি যেমন JSON এবং REST-এর সাথে মিলে কাজ করে। ওরাকল ২১সি-এ ডেভেলপার তাদের জাভাস্ক্রিপ্ট কোড ডাটাবেসের ভিতরে সেখানে রান করতে পারেন যেখানে ডেটা থাকে। এটি তাদের ডেটা মিড-টিয়ার বা ব্রাউজারে না নেওয়ায় জাভাস্ক্রিপ্টে লেখা ছোট কম্পিউটেশনাল টাস্ক এক্সিকিউট করতে দেয়। MLE স্বয়ংক্রিয়ভাবে জাভাস্ক্রিপ্ট ডেটা টাইপকে ওরাকল ডাটাবেস ডেটা টাইপে ম্যাপ করে এবং بالعکس এবং ডেভেলপারদের ডেটা টাইপ কনভারশনের যত্ন নেওয়ার প্রয়োজন নেই।
এছাড়া, জাভাস্ক্রিপ্ট বিল্ট-ইন জাভাস্ক্রিপ্ট মডিউল দিয়ে PL/SQL এবং SQL এক্সিকিউট করতে পারে। এই সব APEX ডেভেলপারদের তাদের APEX অ্যাপে জাভাস্ক্রিপ্টকে ফার্স্ট-ক্লাস ল্যাঙ্গুয়েজ হিসেবে ব্যবহার করতে সক্ষম করে, PL/SQL এবং SQL-এর ক্ষমতা ছাড়া না দিয়ে। জাভাস্ক্রিপ্টে আপনি রেগুলার SQL দিয়ে ডাটাবেস - টেবিল এবং ভিউ - এক্সেস করতে পারেন। নিচে জাভাস্ক্রিপ্টে কোড লেখার উদাহরণ দেওয়া হলো:
declare
ctx dbms_mle.context_handle_t;
begin
ctx := dbms_mle.create_context(); -- MLE এক্সিকিউশনের জন্য এক্সিকিউশন কনটেক্সট তৈরি
dbms_mle.eval(ctx, 'JAVASCRIPT', 'console.log(`Hello from JavaScript`)'); -- এক্সিকিউশন কনটেক্সটে সোর্স কোড স্নিপেট ইভ্যালুয়েট
dbms_mle.drop_context(ctx); --
আর প্রয়োজন না থাকলে এক্সিকিউশন কনটেক্সট ড্রপ করুন;
দ্রষ্টব্য: যতক্ষণ কনটেক্সট রিটেইন করা থাকে, গ্লোবাল অবজেক্টসের মান ধরে রাখে ফাংশনসহ end;
৪) SQL ম্যাক্রোস:
জয়েনের সংখ্যা বড় হলে বা ডেটা রিট্রিভিং জটিল হলে SQL কোয়েরি জটিল হওয়া স্বাভাবিক। ডেভেলপাররা এই সমস্যা সমাধানের জন্য স্টোরড প্রসিজার এবং ফাংশন ব্যবহার করে এই অপারেশনগুলো সরল করতে। কিন্তু এটি পারফরম্যান্স কমাতে পারে কারণ SQL ইঞ্জিন PL/SQL ইঞ্জিনের সাথে কনটেক্সট স্যুইচ করে। ওরাকল ২১সি-এ SQL ম্যাক্রোস এই সমস্যা সমাধান করে SQL এক্সপ্রেশন এবং টেবিল ফাংশনকে স্টোরড প্রসিজার কল দিয়ে রিপ্লেস করতে দিয়ে যা একটি স্ট্রিং লিটারেল রিটার্ন করে যা আপনি যে SQL এক্সিকিউট করতে চান সেটিতে ইনসার্ট করা হয়।
৫) ইন-মেমরি উন্নতি:
কলামনার ফরম্যাট ব্যবহার করে ডেটা বিশ্লেষণ রো-ভিত্তিক ফরম্যাটের চেয়ে পারফরম্যান্স বাড়াতে পারে। যদিও রো মডেলে ডেটা আপডেট দ্রুত হয়, ওরাকল ডাটাবেস ইন-মেমরি ফিচার আমাদের দুটি মডেলই প্রয়োজন অনুযায়ী ব্যবহার করতে দেয়। এর সাহায্যে ব্যবহারকারী তাদের অ্যাপ্লিকেশন পরিবর্তন ছাড়া রান করতে পারেন এবং ইন-মেমরি একটি কলামনার স্টোর রক্ষা করবে যা ব্লেজিংলি ফাস্ট রিয়েল-টাইম অ্যানালিটিক্যাল কোয়েরি সাপোর্ট করবে। ওরাকল ডাটাবেস ইন-মেমরিতে পারফরম্যান্স বাড়াতে এবং ব্যবহার সহজ করতে তিনটি বড় উন্নতি করা হয়েছে।
A. ডাটাবেস ইন-মেমরি ভেক্টর জয়েন:
এটি ইন-মেমরি কলাম স্টোরের ভিতরে কলামের ওপর হ্যাশ জয়েনের মতো অপারেশন দ্রুত করতে সাহায্য করে। হ্যাশ জয়েনের ক্ষেত্রে, জয়েনগুলো ছোট অপারেশনে ভাঙা হয় এবং ভেক্টর প্রসেসে পাস করা হয়। কী-ভ্যালু টেবিলটি SIMD অপ্টিমাইজড এবং ডান ও বাম হাতের জয়েনে সারি মিলান করতে ব্যবহৃত হয় এবং এটি পারফরম্যান্স দশ গুণ উন্নত করে।
B. সেলফ-ম্যানেজিং ইন-মেমরি কলাম স্টোর:
যখন ওরাকল ডাটাবেস ইন-মেমরি রিলিজ हुओয়েছিল, ব্যবহারকারীদের কলামগুলো এক্সপ্লিসিটলি ডিক্লেয়ার করতে হতো যেগুলো মেমরি কলাম স্টোরে পপুলেট হবে, এটি ব্যবহারকারীদের হাই কন্ট্রোল দেয় যদি মেমরি টাইট থাকে।
১৮সি ডাটাবেসে, এটি এমন ফাংশনালিটি চালু করেছিল যা এক্টিভলি ব্যবহৃত অবজেক্টগুলো কলাম স্টোরে স্বয়ংক্রিয়ভাবে রাখে এবং যেগুলো ব্যবহৃত হচ্ছে না সেগুলো সরিয়ে দেয়। তবে ব্যবহারকারীদের এখনও অবজেক্টগুলো নির্দেশ করতে হতো যেগুলো বিবেচনা করা হবে।
ওরাকল ডাটাবেস ২১সি-এ INMEMORY_AUTOMATIC_LEVEL HIGH সেট করলে, সমস্ত অবজেক্ট বিবেচনা করা হয় - যা ইন-মেমরি কলাম স্টোর ম্যানেজ করার কাজ সহজ করে দেয়।
C. ইন-মেমরি হাইব্রিড কলামনার স্ক্যান:
মেমরি সীমিত থাকায় প্রতিটি টেবিলের প্রতিটি কলাম কলাম স্টোরে পপুলেট করা সম্ভব নয়। অনেক ক্ষেত্রে এটি সমস্যা নয় কিন্তু কখনো কখনো ব্যবহারকারী এমন কোয়েরি 마주 করতে পারেন যেটি কলাম স্টোর থেকে ডেটা (কলাম) এবং রো স্টোরে শুধু উপলব্ধ ডেটা দুটোই প্রয়োজন।
ওরাকল ডাটাবেস ইন-মেমরির পূর্বের রিলিজে, такие কোয়েরি শুধু রো স্টোরের বিরুদ্ধে রান হতো। ওরাকল ডাটাবেস ২১সি-এ, ব্যবহারকারী এখন দুটোই ব্যবহার করতে পারেন! অপ্টিমাইজার এখন ইন-মেমরি কলাম স্টোর স্ক্যান করতে এবং প্রজেক্টেড কলাম ভ্যালু রো স্টোর থেকে ফেচ করতে পারেন যদি প্রয়োজন হয়। এটি উল্লেখযোগ্য পারফরম্যান্স উন্নতি আনে পারে।
Image Source
উপসংহার
সমগ্র সুবিধাগুলো নিচে সারাংশ দেওয়া হলো:
- ১) ডাটাবেসের কোয়েরি পারফরম্যান্সে উল্লেখযোগ্য উন্নতি
- ২) ২১সি জেনারেশন JSON, XML, এবং OLAP সহ সকল ডেটা টাইপ সাপোর্ট করে।
- ৩) এটি ব্যাপক স্কেলেবল, হাইলি অ্যাক্সেসিবল এবং সকল ওয়ার্কলোড যেমন OLTP, অ্যাড-হক কোয়েরি এবং ডেটা ওয়েयरহাউসের জন্য সিকিউরিটি দেয়।
- ৪) এটি অপারেশনাল এবং মিক্সড ওয়ার্কলোড দুটোই সাপোর্ট করে।
- ৫) ২১সি-এ অনেক জিনিস অটোমেটেড যেমন প্যারালেল স্ক্যান, অনলাইন ব্যাকআপ ইত্যাদি, যা ডেভেলপারদের ডেটা পারসিস্টেন্সি নিয়ে চিন্তা থেকে মুক্ত করে।
- ৬) পারফরম্যান্স ফিচার বড় মাত্রায় অটোমেটেড হয়েছে অটোমেটিক ইনডেক্সিং এর মতো ফিচারের মাধ্যমে।
মন্তব্য বা প্রশ্নের জন্য Feedback ট্যাব ব্যবহার করুন। আপনি আমাদের সাথে কথা বলতে পারেন।