একটি শ্রেণিবিন্যাস মডেল একটি গাছের মতো কাঠামোর ডেটা উপস্থাপন করে যেখানে প্রতিটি রেকর্ডের জন্য একটি একক অভিভাবক থাকে৷ শৃঙ্খলা বজায় রাখার জন্য একটি বাছাই ক্ষেত্র রয়েছে যা ভাইবোন নোডগুলিকে রেকর্ড করা পদ্ধতিতে রাখে। এই ধরনের মডেলগুলি মূলত প্রাথমিক মেইনফ্রেম ডাটাবেস ম্যানেজমেন্ট সিস্টেমের জন্য ডিজাইন করা হয়েছে, যেমন IBM-এর ইনফরমেশন ম্যানেজমেন্ট সিস্টেম (IMS)।
এই মডেল কাঠামোটি দুই/বিভিন্ন ধরনের ডেটার মধ্যে এক-থেকে-এক এবং এক-থেকে-অনেক সম্পর্কের অনুমতি দেয়। এই কাঠামো বাস্তব জগতের অনেক সম্পর্কের বর্ণনা দিতে খুবই সহায়ক; বিষয়বস্তুর সারণী, যেকোনো নেস্টেড এবং সাজানো তথ্য।
সঞ্চয়স্থানে রেকর্ডের ভৌত ক্রম হিসাবে শ্রেণিবদ্ধ কাঠামো ব্যবহার করা হয়৷ ক্রমিক অ্যাক্সেসের সাথে একত্রিত পয়েন্টার ব্যবহার করে ডাটা স্ট্রাকচারের মাধ্যমে নিচে নেভিগেট করে কেউ রেকর্ড অ্যাক্সেস করতে পারে। অতএব, প্রতিটি রেকর্ডের জন্য একটি সম্পূর্ণ পাথও অন্তর্ভুক্ত না হলে, শ্রেণিবদ্ধ কাঠামো নির্দিষ্ট ডাটাবেস ক্রিয়াকলাপের জন্য উপযুক্ত নয়৷
এই ধরনের ডাটাবেসের ডেটা ক্রমানুসারে গঠন করা হয় এবং সাধারণত একটি উল্টানো গাছ হিসাবে বিকাশ করা হয়। কাঠামোর "মূল" ডাটাবেসের একটি একক টেবিল এবং অন্যান্য টেবিলগুলি মূল থেকে প্রবাহিত শাখা হিসাবে কাজ করে। নীচের চিত্রটি একটি সাধারণ শ্রেণিবদ্ধ ডাটাবেস কাঠামো দেখায়৷
এজেন্ট ডেটাবেস
উপরের চিত্রে, একজন এজেন্ট বেশ কয়েকটি বিনোদনকে বুক করে, এবং প্রতিটি বিনোদনকারীর বিনিময়ে তার নিজস্ব সময়সূচী থাকে। একজন এজেন্টের দায়িত্ব হল বেশ কিছু ক্লায়েন্টকে বজায় রাখা যাদের বিনোদনের প্রয়োজন মেটাতে হবে। একজন ক্লায়েন্ট এজেন্টের মাধ্যমে ব্যস্ততা বুক করে এবং এজেন্টকে তার পরিষেবার জন্য অর্থ প্রদান করে।
এই ডাটাবেস মডেলে একটি সম্পর্ক পিতামাতা/সন্তান শব্দ দ্বারা প্রতিনিধিত্ব করা হয়। এই ধরনের সম্পর্কের মধ্যে একটি প্যারেন্ট টেবিলকে এক বা একাধিক চাইল্ড টেবিলের সাথে লিঙ্ক করা যেতে পারে, কিন্তু একটি একক চাইল্ড টেবিল শুধুমাত্র একটি প্যারেন্ট টেবিলের সাথে লিঙ্ক করা যেতে পারে। টেবিলগুলি স্পষ্টভাবে একটি পয়েন্টার/সূচির মাধ্যমে বা টেবিলের মধ্যে রেকর্ডগুলির শারীরিক বিন্যাসের মাধ্যমে লিঙ্ক করা হয়৷
একজন ব্যবহারকারী রুট টেবিল থেকে শুরু করে এবং গাছের মাধ্যমে লক্ষ্য ডেটাতে কাজ করে ডেটা অ্যাক্সেস করতে পারে। কোনো জটিলতা ছাড়াই ডেটা অ্যাক্সেস করতে ব্যবহারকারীকে অবশ্যই ডাটাবেসের কাঠামোর সাথে পরিচিত হতে হবে।
সুবিধা
- টেবিল কাঠামোর মধ্যে সুস্পষ্ট লিঙ্কের উপস্থিতির কারণে একজন ব্যবহারকারী খুব দ্রুত ডেটা পুনরুদ্ধার করতে পারে।
- রেফারেন্সিয়াল ইন্টিগ্রিটি তৈরি করা হয়েছে এবং স্বয়ংক্রিয়ভাবে প্রয়োগ করা হয়েছে যার কারণে একটি চাইল্ড টেবিলের একটি রেকর্ড অবশ্যই একটি প্যারেন্ট টেবিলের একটি বিদ্যমান রেকর্ডের সাথে লিঙ্ক করতে হবে, সেই সাথে যদি প্যারেন্ট টেবিলে একটি রেকর্ড মুছে ফেলা হয় তবে এটি সমস্ত সম্পর্কিত কারণ হবে চাইল্ড টেবিলের রেকর্ডও মুছে ফেলা হবে।
অসুবিধা
- যখন একজন ব্যবহারকারীকে একটি চাইল্ড টেবিলে একটি রেকর্ড সংরক্ষণ করার প্রয়োজন হয় যা বর্তমানে একটি অভিভাবক টেবিলের কোনো রেকর্ডের সাথে সম্পর্কিত নয়, তখন এটি রেকর্ড করতে অসুবিধা হয় এবং ব্যবহারকারীকে অবশ্যই অভিভাবক টেবিলে একটি অতিরিক্ত এন্ট্রি রেকর্ড করতে হবে৷
- এই ধরনের ডাটাবেস জটিল সম্পর্ককে সমর্থন করতে পারে না, এবং রিডানডেন্সির সমস্যাও রয়েছে, যার ফলে বিভিন্ন সাইটে ডেটার অসঙ্গতিপূর্ণ রেকর্ডিংয়ের কারণে ভুল তথ্য তৈরি হতে পারে।
পূর্ববর্তী ডায়াগ্রামে দেখানো ডাটাবেস ডায়াগ্রাম ব্যবহার করে একটি উদাহরণ বিবেচনা করুন৷ একজন ব্যবহারকারী এন্টারটেইনার টেবিলে বিনোদনকারীর জন্য একটি নতুন রেকর্ড লিখতে পারবেন না যতক্ষণ না এজেন্ট টেবিলে একটি নির্দিষ্ট এজেন্টকে এজেন্ট বরাদ্দ না করা হয় যেহেতু একটি শিশু টেবিলের (বিনোদনকারী) একটি রেকর্ড অবশ্যই প্যারেন্ট টেবিলের একটি রেকর্ডের সাথে সম্পর্কিত হতে হবে (এজেন্ট) . অতএব, এই ধরনের ডাটাবেস অপ্রয়োজনীয় ডেটার সমস্যায় ভোগে। উদাহরণস্বরূপ, যদি ক্লায়েন্ট এবং বিনোদনকারীদের মধ্যে বহু-থেকে-অনেক সম্পর্ক থাকে; একজন বিনোদনকারী অনেক ক্লায়েন্টের জন্য পারফর্ম করবে, এবং একজন ক্লায়েন্ট অনেক বিনোদনকারীদের ভাড়া করবে। একটি শ্রেণিবদ্ধ ডাটাবেসে এই ধরনের সম্পর্ক সহজে মডেল করতে পারে না, তাই ডেভেলপারদের অবশ্যই সময়সূচী এবং এনগেজমেন্ট টেবিল উভয়ের মধ্যে অপ্রয়োজনীয় ডেটা প্রবর্তন করতে হবে।
- সূচী সারণীতে এখন ক্লায়েন্ট ডেটা থাকবে যাতে ক্লায়েন্টের নাম, ঠিকানা এবং ফোন নম্বরের মতো তথ্য থাকে যাতে দেখানো হয় কার জন্য এবং কোথায় প্রতিটি বিনোদনকারী পারফর্ম করছে। এই তথ্যটি অপ্রয়োজনীয় কারণ এটি বর্তমানে ক্লায়েন্ট টেবিলেও সংরক্ষিত আছে।
- এনগেজমেন্ট টেবিলে এখন বিনোদনকারীদের তথ্য থাকবে যাতে বিনোদনকারীর নাম, ফোন নম্বর এবং বিনোদনকারীর প্রকারের মতো তথ্য থাকে যা নির্দেশ করে যে প্রদত্ত ক্লায়েন্টের জন্য কোন বিনোদনকারীরা পারফর্ম করছে। এই ডেটাটিও অপ্রয়োজনীয় কারণ এটি বর্তমানে এন্টারটেইনার টেবিলে সংরক্ষিত আছে।
এই অপ্রয়োজনীয়তার সাথে সমস্যা হল যে এটি ভুল তথ্য তৈরি করতে পারে কারণ এটি একটি ব্যবহারকারীকে অসংলগ্নভাবে ডেটার একক অংশ প্রবেশ করার অনুমতি দেওয়ার সম্ভাবনা খুলে দেয়।
এই সমস্যাটি বিশেষভাবে বিনোদনকারীদের জন্য এবং অন্যটি বিশেষভাবে এজেন্টদের জন্য একটি শ্রেণিবদ্ধ ডাটাবেস তৈরি করে সমাধান করা যেতে পারে৷ Entertainers ডাটাবেসে শুধুমাত্র Entertainers টেবিলে রেকর্ড করা ডেটা থাকবে এবং সংশোধিত এজেন্ট ডাটাবেসে এজেন্ট, ক্লায়েন্ট, পেমেন্ট এবং এনগেজমেন্ট টেবিলে রেকর্ড করা ডেটা থাকবে। এজেন্ট ডাটাবেসের এনগেজমেন্ট টেবিল এবং এন্টারটেইনার ডাটাবেসের এন্টারটেইনার টেবিলের মধ্যে আপনি একটি যৌক্তিক শিশু সম্পর্ক সংজ্ঞায়িত করতে পারেন এমন কোন প্রয়োজন নেই। এই সম্পর্কের জায়গায়, আপনি বিভিন্ন তথ্য পুনরুদ্ধার করতে পারেন, যেমন একটি প্রদত্ত ক্লায়েন্টের জন্য বুক করা বিনোদনকারীদের তালিকা বা একটি প্রদত্ত বিনোদনকারীর জন্য একটি পারফরম্যান্স সময়সূচী। নীচের চিত্রটি পুরো ছবিটি বর্ণনা করে৷
1970-এর দশকে মেইনফ্রেম দ্বারা ব্যবহৃত টেপ স্টোরেজ সিস্টেমগুলির জন্য অনুক্রমিক ডাটাবেসটি ভালভাবে উপযোগী ছিল এবং যে সংস্থাগুলির ডাটাবেস সেই সিস্টেমগুলির উপর ভিত্তি করে তৈরি হয়েছিল তাদের মধ্যে এটি খুব জনপ্রিয় ছিল। কিন্তু, যদিও ক্রমিক ডাটাবেস ডেটাতে দ্রুত এবং সরাসরি অ্যাক্সেস প্রদান করে এবং বিভিন্ন পরিস্থিতিতে এটি কার্যকর ছিল, এটি পরিষ্কার যে ডেটা রিডানডেন্সি এবং ডেটার মধ্যে জটিল সম্পর্কের ক্রমবর্ধমান সমস্যাগুলিকে মোকাবেলা করার জন্য একটি নতুন ডাটাবেস মডেলের প্রয়োজন ছিল৷
এই ডাটাবেস মডেলের পেছনের ধারণাটি একটি নির্দিষ্ট ধরনের ডেটা স্টোরেজের জন্য উপযোগী, কিন্তু এটি অত্যন্ত বহুমুখী নয় এবং কিছু নির্দিষ্ট ব্যবহারের মধ্যে সীমাবদ্ধ।
উদাহরণস্বরূপ, যেখানে একটি কোম্পানির প্রতিটি ব্যক্তি একটি প্রদত্ত বিভাগে রিপোর্ট করতে পারে, বিভাগটিকে একটি অভিভাবক রেকর্ড হিসাবে ব্যবহার করা যেতে পারে এবং পৃথক কর্মচারীরা সেকেন্ডারি রেকর্ডের প্রতিনিধিত্ব করবে, যার প্রত্যেকটি সেইটির সাথে লিঙ্ক করে একটি অনুক্রমিক কাঠামোতে অভিভাবক রেকর্ড।