আজকে আমাদের আলোচনার বিষয় – ডাটা মডেল এর প্রকারভেদ যা অধ্যায়-৩ এর ডাটাবেস ম্যানেজমেন্ট সিস্টেম এ অন্তর্ভুক্ত। এটি চার বছর মেয়াদি কোর্সের আলোকে লেখা হয়েছে। ডাটাবেস ম্যানেজমেন্ট সিস্টেমের বিভিন্ন ইংরেজি বই অনুসরণ করেই রচনা করা হয়েছে। ইঞ্জিনিয়ারিং বিষয়ের যে-কোন বই সম্পূর্ণরূপে বাংলা ভাষায় রচনা করা সম্ভব নয়। এজন্যে কিছু কিছু ইংরেজি শব্দকে বাংলায় অনুবাদ করা হয়নি। ফলে ছাত্রছাত্রীদের হয়ত কিছুটা অসুবিধা হতে পারে।
Table of Contents
ডাটা মডেল এর প্রকারভেদ
ডাটা মডেল-এর প্রকারভেদ
ডাটাবেস ম্যানেজমেন্ট সিস্টেমে প্রস্তাবিত (Proposed) বিভিন্ন ডাটা মডেলকে মোট তিনটি গ্রুপে (group) বিভক্ত করা যায়। আবার এ তিনটি গ্রুপ-এর প্রত্যেকটিকে কয়েকটি ভাগে ভাগ করা যায়-
১। অবজেক্ট বেসড লজিক্যাল মডেল (Object-based logical model)
(ক) দি এনটিটি রিলেশনশীপ মডেল (The entity relationship model)
(খ) দি অবজেক্ট অবিয়েন্টেড মডেল (The object-oriented model)
(গ) দি সিম্যান্টিক ডাটা মডেল (The semantic data model)
(ঘ) দি ফাংশনাল ডাটা মডেল (The Functional data model)
২। রেকর্ড বেসড লজিক্যাল মডেল (Record-based logical model)
(ক) রিলেশনাল ডাটা মডেল (Relational date model)
(খ) নেটওয়ার্ক মডেল (Network model) এবং
(গ) হাইয়ারার্কিক্যাল মডেল (Hierarchical model)
৩। ফিজিক্যাল ডাটা মডেল (Physical data model)
(ক) ইউনিফায়িং মডেল (Unifying model)
(খ) ফ্রেম মেমোরি মডেল (Frame memory model)
১। অবজেক্ট বেসড লজিক্যাল মডেলস (Object based logical models)
লজিক্যাল (Logical) ও ভিউ (View) লেভেল-এ ডাটা বর্ণনা করার জন্যে যে সমস্ত ডাটা মডেল (Data model) ব্যবহার ক্য হয় তাদেরকেই অবজেক্ট বেসড লজিক্যাল মডেলস (Object based logical model) বলে। এ মডেলগুলোকে সুনির্দিষ্ট ও বিশদভাবে বাস্তবতা (Fact) দিয়ে এমনভাবে বৈশিষ্ট্যমণ্ডিত করা হয়, যাতে এরা সম্পূর্ণ নমনীয় কাঠামোযুক্ত সামর্থ্য (Fairly flexible structure. capability) সরবরাহ করতে পারে এবং ডাটা কনস্ট্রেইন্ট (Data constraint)-কে অনুমতি প্রদান করতে পারে।
অবজেক্ট বেসড লজিক্যাল মডেলগুলোর মধ্যে বহুল পরিচিত ও ব্যবহৃত মডেলগুলো হলঃ
(ক) দি এনটিটি রিলেশনশীপ মডেল (The entity relationship model)
(খ) দি অবজেক্ট অরিয়েন্টেড মডেল (The object-oriented model)
(গ) দি সিম্যান্টিক ডাটা মডেল (The semantic data model) এবং
(ঘ) দি ফাংশনাল ডাটা মডেল (The functional data model)
নিচে এদের প্রথম দুটির সংক্ষিপ্ত বর্ণনা দেয়া হলঃ
(ক) দি এনটিটি রিলেশনশীপ মডেল (The entity relationship model) : বাস্তব জগতের ইন্দ্রিয়গ্রাহ্য কতকগুলো মৌলির অবজেক্ট (Basic object) এর সমষ্টি এবং এদের মধ্যে রিলেশনশীপ (Relationship) এর উপর ভিত্তি করে অবজেক্ট বেসড লজিক্যা মডেল (Object based logical model) এর অন্তর্ভুক্ত যে ডাটা মডেল (Data model) প্রতিষ্ঠিত, তা এনটিটি রিলেশনশীপ মডে (The entity relationship model) সিস্টেমের লজিক্যাল লেভেলে একে ডিজাইন করা হয়। এক্ষেত্রে অবজেক্টগুলোকে এনটিি (Entity) বলে।
সুতরাং কতকগুলো বেসিক অবজেক্ট এবং তাদের মধ্যে পারস্পরিক সম্পর্ক যে ডাটা মডেলের মাধ্যমে গ্রাফিক্যালী উপস্থাপন করা হয়, তাকে E-R Model বা এনটিটি রিলেশনশীপ মডেল বলে।
Entity relationship বা E-R মডেলকে অ্যাট্রিবিউট, এনটিটি, এনটিটি সেট, রিলেশনশীপ, রিলেশনশীপ সেট ইত্যাদির জন ব্যবহৃত সিম্বলের মাধ্যমে এনটিটি রিলেশনশীপ মডেল প্রকাশ করা হয়।
উদাহরণঃ ধরি, Customer এবং Account দু’টি এনটিটি সেট এবং তাদের মধ্যে Depositor হল রিলেশনশীপ সেট। Customer এবং Account সেটের অ্যাট্রিবিউটগুলোকে Depositor রিলেশনশীপের মাধ্যমে সম্পর্ক-স্থাপন চিত্র নিচে দেয়া হলঃ
(খ) দি অবজেক্ট অরিয়েন্টেড মডেল (The object oriented model) : এনটিটি রিলেশনশীপ মডেল (Entity relationship model) এর মতই দি অবজেক্ট অরিয়েন্টেড মডেল (The object oriented model) কতকগুলো অবজেক্ট এর উপর ভিত্তি করে প্রতিষ্ঠিত। এক্ষেত্রে একটি অবজেক্ট তার ইনস্ট্যানস ভেরিয়েবল (Instance Variable) এ জমাকৃত Data’র মান (Stored valve) ধারণ করে থাকে। যদি কতকগুলো অবজেক্ট (Object) একই ধরনের মান (Value) ধারণ করে, তবে তাদেরকে একত্রে ক্লাস (Class) নামে অভিহিত করা হয়।
অবজেক্ট অরিয়েন্টেড ডাটা মডেল মূলত অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ল্যাংগুয়েজের ধারণার উপর প্রতিষ্ঠিত। OOP বা Object Oriented Programming সাধারণত ইনহেরিটেন্স, অবজেক্ট আইডেন্টিটি, ইনক্যাপসুলেশন ইত্যাদির মাধ্যমে Object এর সাথে Interfacing অনুমোদন করে।
অবজেক্ট অরিয়েন্টেড ডাটা মডেলের অবজেক্টের একাধিক ক্লাস থাকে, যেগুলো ডাটা ভ্যালু এবং মেথড ধারণ করে। ক্লাসকে অবজেক্টের টাইপ ডেফিনিশন হিসেবে প্রকাশ করা যায়। ৩.৩২ নং চিত্রে Account নামক একটি ক্লাস এর ভ্যারিয়েবল এবং মেথড দেখানো হল :
class account
account_no
balance
pay_interest ()
pay_update ()
চিত্রঃ Account নামক একটি ক্লাস,
উপরের চিত্রে Account নামক ক্লাসে দুটি ভ্যারিয়েবল Account_no, balance এবং দু’টি মেথড Pay_interest, pay_update ব্যবহৃত হয়েছে। কিন্তু এ ভ্যারিয়েবল, মেথড় ইত্যাদি সবগুলো মিলে Account নামের ক্লাস তৈরি করেছে।
গ) দি সিম্যান্টিক ডাটা মডেল (The semantic data model) : সফ্টওয়্যার ইঞ্জিনিয়ারিং-এ সিম্যান্টিক ডাটা মডেল হ ডাটাকে ডিফাইন বা স্পেসিফিকেশন করার একটি কৌশল বা টেকনিক। এ টেকনিক বা কৌশল অবলম্বন করে ডাটা ইন্টারনালী অ আরেকটি ডাটার সাথে ইন্টাররিলেশনশীপ (Interrelationshp) তৈরি করে।
সিম্যান্টেক ডাটামডেল মূলত একটি অ্যাবস্ট্রাক্ট, যা জমাকৃত সিম্বল, ডাটাকে রিয়াল ওয়ার্ল্ড (Real warld)-এর সাথে সম্পর তৈরিতে ডিফাইন, সাহায্য এবং উপস্থাপন করে থাকে। এজন্য সিম্যান্টিক ডাটা মডেলকে মাঝে মাঝে কন্সেপচুয়াল ডাটা মঙ্গে (Conceptual data model)-ও বলা হয়।
নিচে সিম্যান্টিক ডাটা মডেলের চিত্র দেয়া হলঃ
২। রেকর্ড বেসড লজিক্যাল মডেলস (Record based logical models)
ডাটা মডেল (Data model) এর অন্তর্ভুক্ত রেকর্ড বেসড লজিক্যাল মডেল (Record based logical model)-সমূহকে লজিক্যাল এবং ভিউ লেভেল (View level)-এ বর্ণনা করা হয়। ডাটাবেসের সমগ্র লজিক্যাল স্ট্রাকচারকে এ জাতীয় মডেলের সাহায্যে বর্ণনা করা যায়। তবে অবজেক্ট বেসড লজিক্যাল মডেলস এর সাথে এ মডেল এর মূল পার্থক্য হল এদেরকে ডাটাবেস এর সমগ্র লজিক্যাল কাঠামো (Overall logical structure)-কে সুস্পষ্ট (Specify) করা এবং সেই সাথে বাস্তবায়ন (Implementation) এর উচ্চতর স্তর (Higher level) এর বর্ণনা সরবরাহ করার জন্যে ব্যবহার করা হয়। এতে নিম্নলিখিত মডেলগুলো আছে-
(ক) রিলেশনাল ডাটা মডেল (Relational data model)
(খ) নেটওয়ার্ক মডেল (Network model) এবং
(গ) হাইয়ারার্কিক্যাল মডেল (Hierarchical model)
নিম্নে এদের সংক্ষিপ্ত বর্ণনা দেয়া হলঃ
(ক) রিলেশনাল ডাটা মডেল (Relational data model) : রেকর্ড বেসড লজিক্যাল মডেলস (Record based logical models) এর অন্তর্ভুক্ত যে ডাটা মডেল-এ ডাটা এবং তাদের মধ্যে সম্পর্ককে প্রকাশ (Represent) করার জন্য কতকগুলো টেবিলের সমষ্টি (Collection of tables) ব্যবহার করা হয়, তাকে রিলেশনাল ডাটা মডেল (Relational data model) বলে।
নিম্নে এর একটি চিত্র দেখানো হল:
customer name | customer soc. sec. no. | customer city | account no. | balance |
Kamal | 555-234 | Sylhet | A-100 | 2524 |
Salam | 123-676 | Chittagong | A-200 | 45345 |
Jamal | 465-567 | Comilla | A-201 | 56356 |
Saber | 234-455 | Dhaka | A-202 | 3412 |
(খ) নেটওয়ার্ক মডেল (Network model) : রেকর্ড বেসড লজিক্যাল মডেল (Record based logical model) এর অন্তর্গত যে ডাটা মডেল-এ ডাটাকে কালেকশন অফ রেকর্ড (Collection of Record) এবং তাদের মধ্যে রিলেশনশীপ (Relationship)-কে লিঙ্কস (Links) দ্বারা প্রকাশ (Represent) করা হয়, তাকে নেটওয়ার্ক মডেল (Network model) বলা হয়। এক্ষেত্রে লিংক (Links)- কে পয়েন্টার (Pointer) হিসাবে দেখানো হয়।
নিম্নে এর একটি চিত্র দেখানো হলঃ
(গ) হাইয়ারার্কিক্যাল মডেল (Hierarchical model) : রেকর্ড বেসড লজিক্যাল মডেলস (Record based logical models) এর অন্তর্গত যে ডাটা মডেল-এ ডাটা ও এদের মধ্যে রিলেশনশীপ (Relationship)-কে রেকর্ড (Record) ও লিঙ্ক (Link) দ্বারা ট্রি আকারে (Collection of trees) প্রকাশ করা হয়, তাকে হাইয়ারার্কিক্যাল মডেল (Hierarchical model) বলে। নিচে এ মডেলের একটি চিত্র দেখানো হলঃ
৩। ফিজিক্যাল ডাটা মডেল (Physical data model)
ডাটাবেস এর সবচেয়ে নিচু স্তরের (Lowest level) ডাটা বর্ণনা করার জন্য যে ডাটা মডেল ব্যবহার করা হয়, তাকে ফিজিক্যাল ডাটা মডেল (Physical data model) বলে। ফিজিক্যাল ডাটা মডেল মূলত ডাটা ডিজাইনকে রিপ্রেজেন্ট বা উপস্থাপন করে থাকে। একটি কম্পিট বা পূর্ণাঙ্গ ফিজিক্যাল ডাটা মডেলে সকল database artifacts যুক্ত থাকে, যার ফলে ডাটাবেস সিস্টেমের টেবিলগুলোর মধ্যে রিলেশনশীপ তৈরি করা যায়। আর এতে নির্দিষ্ট পারফরমেন্স অর্জন করা যায়, যেমন-
- Indexes
- Constraint definitions
- Linking tables
- Partitioned table কিংবা Clusters.
লজিক্যাল ডাটা মডেল (Logical data model) এর তুলনায় খুব অল্পসংখ্যক ফিজিক্যাল ডাটা মডেল বর্তমানে প্রচলিত আছে। তাদের মধ্যে দুটি উল্লেখযোগ্য মডেলের নাম নিম্নে প্রদত্ত হলঃ
(ক) ইউনিফাইং মডেল (Unifying model) এবং
(খ) ফ্রেম মেমোরি মডেল (Frame memory model)।
ফিজিক্যাল ডাটা মডেলের মাধ্যমে ডাটাবেসের নিচের স্তরের ডাটা বর্ণনা করতে যে প্রক্রিয়া বা টেকনিক অবলম্বন করে, তা নিচে দেয়া হল :
আরও দেখুনঃ