আজকে আমাদের আলোচনার বিষয় – ডাটা অ্যাবসট্রাকশন যা অধ্যায়-১ এর ডাটাবেস ম্যানেজমেন্ট সিস্টেম এ অন্তর্ভুক্ত। এটি চার বছর মেয়াদি কোর্সের আলোকে লেখা হয়েছে। ডাটাবেস ম্যানেজমেন্ট সিস্টেমের বিভিন্ন ইংরেজি বই অনুসরণ করেই রচনা করা হয়েছে। ইঞ্জিনিয়ারিং বিষয়ের যে-কোন বই সম্পূর্ণরূপে বাংলা ভাষায় রচনা করা সম্ভব নয়। এজন্যে কিছু কিছু ইংরেজি শব্দকে বাংলায় অনুবাদ করা হয়নি। ফলে ছাত্রছাত্রীদের হয়ত কিছুটা অসুবিধা হতে পারে।
Table of Contents
ডাটা অ্যাবসট্রাকশন
ডাটা অ্যাবসট্রাকশন
দক্ষতার সাথে ডাটাবেস হতে ডাটা উদ্ধার (Retrieve) করা ডাটাবেস ম্যানেজমেন্ট সিস্টেমের একটি বড় উদ্দেশ্য। এ উদ্দেশ্যকে পূরণের জন্য DBMS কে User-দের নিকট সহজবোধ্য ও ব্যবহার উপযোগী করে তুলতে হয়, যাতে User’রা সহজেই Data রিট্রিভ বা উদ্ধার করতে পারে।
ডাটাবেস ম্যানেজমেন্ট সিস্টেমের User’রা সকলই সমান জ্ঞান হতে পারে। এজন্য ডাটাবেস ম্যানেজমেন্ট সিস্টেম ডেভেলপকারীগণ ডাটাবেসের বিভিন্ন অংশের বিভিন্ন ধরনের জটিলতাকে User-দের নিকট থেকে গোপন রাখে। এজন্য ডাটা রিপ্রেজেন্ট বা উপস্থাপনের সময় ডাটাবেসের জটিলতা পরিহার করে User-দের নিকট ডাটাবেসের ব্যবহার বৃদ্ধি করা হয়।
সুতরাং ডাটাবেস ম্যানেজমেন্ট সিস্টেমের জটিলতা (Complexity) পরিহার করে ব্যবহারকারীর নিকট DBMS কে ইন্টারয়্যাকটিভ (Interactive) বা গ্রহণযোগ্য করে তোলার জন্যে শুধুমাত্র প্রয়োজনীয় বৈশিষ্ট্যাবলী (Characteristics) বাছাই করার প্রক্রিয়াকে ডাটা অ্যাবসট্রাকশন বলে। ডাটা অ্যাবসট্রাকশন প্রক্রিয়ার সাহায্যেই ডাটার অপ্রয়োজনীয় বৈশিষ্ট্যসমূহ লুকিয়ে (Hide) রাখা হয়। ফলে একজন ব্যবহারকারী ডাটাবেসের শুধু প্রয়োজনীয় অংশটুকুই দেখতে পায় এবং এজন্য তার নিকট ডাটাবেসের গ্রহণযোগ্যতা বহুগুণ বেড়ে যায়।

Database instances
Database এর information সব সময়ই পরিবর্তনশীল। কারণ প্রতিনিয়ত Database এ information insertion deletion এর কাজ চলতে থাকে। কোন নির্দিষ্ট মুহূর্তে (at a particular moment) database-এ সংগৃহীত বা জমাকৃত সর্বমোট Information এর পরিমাণকেই ঐ Database এর instance বলে।
স্কীমা’র সংজ্ঞা (Definition of schema)
স্কীমা শব্দটি গ্রীক শব্দ Schema থেকে এসেছে, যার অর্থ শেইপ (shape) বা প্ল্যান (plan)। Schema এর বহুবচন হল schemata. আর ইংরেজিতে এর বহুবচন হল schemas (স্কীমাস)। Schema শব্দটি ভাঙ্গলে উচ্চারণ হবে skee এবং ma।।
ডাটাবেস স্কীমা (Database schema)
ডাটাবেস সিস্টেমে ফরমাল লাংগুয়েজ দ্বারা তৈরী সামগ্রীক ডিজাইন বা overall ডিজাইনকে ডাটাবেস স্কীমা (Database schema) বলে। একইভাবে কোন রিলেশনাল ডাটাবেসে টেবিল, ফিল্ড টেবিল-ফিল্ড এর মধ্যকার রিলেশন ইত্যাদি রিলেশন ডিজাইনকে ঐ রিলেশনের স্কীমা বলে।
স্কীমাকে সচরাচর পরিবর্তন করা যায় না। তবে প্রয়োজনবোধে সময়ে সময়ে এটা পরিবর্তন করা যেতে পারে। Database administrator এই স্কীমা ডিজাইন করে থাকে এবং শুধুমাত্র তিনিই এটা পরিবর্তন করতে পারেন। প্রোগ্রামে ভ্যারিয়াবেল ঘোষণা বা টাইপ ডেফিনিশনের সাথে ডাটাবেস স্কীমা সামাঞ্জস্যপূর্ণ।
ডাটাবেস স্কীমা সাধারণত ডাটা ডিকশনারিতে জমা থাকে। যদিও স্কীমাকে টেক্সট ডাটাবেস ল্যাংগুয়েজ হিসেবে ডিফাইন করা হয়, কিন্তু তারপরও ডাটাবেস ডিজাইনের গ্রাফিক্যাল ডিপিকশন (depiction)-এ স্কীমা ব্যবহৃত হয়।

সাধারণত প্রোগ্রামিং ল্যাংগুয়েজে যেভাবে টাইপ ডেফিনিশনের নাম দেয়া হয়, তেমনিভাবে রিলেশন স্কীমাকেও নামকরণ করা হয়। সাধারণত যে কোন রিলেশনকে ছোট হাতের অক্ষরের মাধ্যমে নামকরণ করা হয়, যেমন-deposit। আবার রিলেশন স্কীমার ক্ষেত্র প্রথমটি বড় হাতের অক্ষরের মাধ্যমে নামকরণ করা হয়, যেমন- Deposit_Schema।
উদাহরণ
ডাটাবেস ম্যানেজমেন্ট সিস্টেম
১। নিচে account রিলেশনকে রিলেশন স্কীমা হিসেবে Account_Schema নামে প্রকাশ করা হলঃ Account Schema=(account_number, branch name, balance) এখন, Account Schema কে account রিলেশন হিসেবে প্রকাশ করা যায় যা নিম্নরূপঃ
account (Account_Schema) | account number | branch name | balance |
A-1000 | New Market | 4000 | |
A-2000 | Farmgate | 350 | |
A-3005 | Kakrail | 2505 | |
A-4004 | Mirpur | 500 | |
A-2158 | Tejgaon | 3004 | |
A-2225 | Bonani | 4005 |
চিত্র: account রিলেশন
২। এবার customer রিলেশনকে রিলেশন স্কীমা হিসেবে ডিফাইন করা হয় এবং Customer_Schema নামকরণ করা হয়, তবে রিলেশন স্কীমাটি হবে নিম্নরূপঃ
Customer Schema = (customer_name, customer_street, customer_city)
আবার customer_schema কে customer রিলেশন হিসেবে প্রকাশ করা যায়।
customer (Customer_Schema)
customer name | customer street | customer_city |
Sagir | Tejgaon | Dhaka |
Mahmuda | Rokeya Sarani | Khulna |
Hitu | Hatirpul | Dhaka |
Poly | Alambag | Bogra |
Fatema | K.C. Road | Chittagong |
চিত্রঃ customer রিলেশন
এবার কাস্টকার এবং অ্যাকাউন্ট-এর মধ্যে সৃষ্টিকারী Depositor_Schema-কে নিম্নরূপে প্রকাশ করা যায়:
Depositor_Schema = (customer_name, account_number)
এখন, Depositor_Schema কে depositor রিলেশন হিসেবে প্রকাশ করি- depositor (Depositor_Sehema), যা নিম্নে বর্ণিত হয়েছে-
customer_name | account number |
Sagir | A-1000 |
Mahmuda | A-2000 |
Hitu | A-3005 |
Poly | A-2158 |
Fatema | A-2225 |
চিত্র: depositor রিলেশন
স্কীমা’র প্রকারভেদসমূহ
ডাটাবেস সিস্টেমে ফরমাল লাংগুয়েজ দ্বারা তৈরী সামগ্রীক ডিজাইন বা overall ডিজাইনকে ডাটাবেস স্কীমা (Database schema) বলে। একইভাবে কোন রিলেশনাল ডাটাবেসে টেবিল, ফিল্ড টেবিল-ফিল্ড এর মধ্যকার রিলেশন ইত্যাদি রিলেশন ডিজাইনকে ঐ রিলেশনের স্কীমা বলে।
প্রকারভেদঃ
ডাটাবেস সিস্টেমে বিভিন্ন ধরনের স্কীমা ব্যবহৃত হয়। এসব স্কীমাগুলোকে অ্যাবস্ট্রাকশনের লেভেল অনুযায়ী ৪টি (চারটি) ভাগে
ভাগ করা যায়। তাহলঃ
১। কনসেপচুয়াল স্কীমা (Conceptual schema)
২। লজিক্যাল স্কীমা (Logical schema)
৩। ফিজিক্যাল স্কীমা (Physical schema)
৪। স্কীমা অবজেক্ট (Schema object)
আরও দেখুনঃ