Follow Us
মাধ্যম নির্বাচন করুন / Select Medium:
Eng (English) Beng (বাংলা) Hindi (हिन्दी)
পশ্চিমবঙ্গ মধ্যশিক্ষা পর্ষদ (WBBSE) • শ্রেণি XII • Computer Science • অধ্যায় 3
আনুমানিক সময়: 120 Mins
অগ্রগতি: অধ্যয়নে সক্রিয়

Database Management System (DBMS) (ডেটাবেস ম্যানেজমেন্ট সিস্টেম)

ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) হলো একটি শক্তিশালী সফটওয়্যার প্যাকেজ যা আন্তঃসম্পর্কিত তথ্যের সুসংগঠিত সংগ্রহ তৈরি, সংরক্ষণ, নিয়ন্ত্রণ এবং দ্রুত পুনরুদ্ধারে ব্যবহৃত হয়। সনাতনী ফাইল প্রসেসিং ব্যবস্থার প্রধান ত্রুটি যেমন ডেটার অপচয় বা পুনরাবৃত্তি (Redundancy), ডেটার অসঙ্গতি (Inconsistency), বিচ্ছিন্নতা ও কনকারেন্ট অ্যাক্সেস সংক্রান্ত জটিলতা দূর করতে DBMS-এর আবির্ভাব। আধুনিক রিলেশনাল ডেটাবেস ANSI/SPARC-এর ত্রি-স্তর বিশিষ্ট আর্কিটেকচার অনুসরণ করে লজিক্যাল ও ফিজিক্যাল ডেটা স্বাধীনতা নিশ্চিত করে। এই অধ্যায়ে সত্তা-সম্পর্ক (ER) মডেল, রিলেশনাল অ্যালজেব্রা, ডেটাবেস নরমালাইজেশন (1NF থেকে BCNF), ডিক্লেয়ারেটিভ SQL কুয়েরি এবং ট্রানজ্যাকশনের ACID বৈশিষ্ট্য বিশদভাবে আলোচিত হয়েছে।

অধ্যায়টির গুরুত্ব

আধুনিক ডিজিটাল সভ্যতার প্রতিটি ক্রিয়াকলাপ—ব্যাংকিং লেনদেন, অনলাইন টিকিট সংরক্ষণ, ই-কমার্স এবং সোশ্যাল নেটওয়ার্ক—সবই নির্ভর করে রিলেশনাল ডেটাবেসের নির্ভরযোগ্যতার ওপর। ডেটাবেস নরমালাইজেশন ও ACID ধর্মের সঠিক প্রয়োগ না জানলে সফ্টওয়্যার ব্যবস্থায় ডেটা নষ্ট হওয়া, ভুল ব্যালেন্স তৈরি হওয়া এবং নিরাপত্তা বিঘ্নিত হওয়ার মারাত্মক ঝুঁকি থাকে। উচ্চমাধ্যমিক কম্পিউটার সায়েন্স পরীক্ষায় সফলতার পাশাপাশি উচ্চশিক্ষায় ডেটা সায়েন্স ও সফটওয়্যার ইঞ্জিনিয়ারিংয়ের ভিত্তি গড়তে এই অধ্যায়টি অত্যন্ত গুরুত্বপূর্ণ।

অধ্যায়ের বিষয়সূচি ও রূপরেখা

1 Module 1: ডেটাবেস সিস্টেমের ধারণা,...
2 Module 2: সত্তা-সম্পর্ক (ER) মডেল ও...
3 Module 3: রিলেশনাল মডেল, কি-এর শ্রে...
4 Module 4: ডেটাবেস নরমালাইজেশন ও ফাং...
5 Module 5: স্ট্রাকচার্ড কুয়েরি ল্যাঙ...
6 Module 6: ট্রানজ্যাকশন প্রসেসিং, AC...

সম্পূর্ণ তত্ত্ব ও ধারণাগত আলোচনা

Module 1: ডেটাবেস সিস্টেমের ধারণা, আর্কিটেকচার ও ডেটা স্বাধীনতা

১.১ সনাতনী ফাইল সিস্টেম বনাম ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS)

ডেটাবেস আবিষ্কারের পূর্বে ফাইল প্রসেসিং সিস্টেমের মাধ্যমে বিভিন্ন ডেটা আলাদা ফাইলে সংরক্ষণ করা হতো। এর ফলে একাধিক গুরুতর সমস্যার সৃষ্টি হয়েছিল:

  • ডেটা পুনরাবৃত্তি ও অপচয় (Data Redundancy): একই তথ্য বিভিন্ন ফাইলে বারবার সংরক্ষিত হতো, যা মেমরি অপচয় ঘটাত।
  • ডেটা অসঙ্গতি (Data Inconsistency): কোনো এক জায়গায় তথ্য পরিবর্তন করা হলেও অন্য ফাইলে তা অপরিবর্তিত থেকে যেত, যার ফলে তথ্যের মধ্যে অমিল সৃষ্টি হতো।
  • প্রোগ্রাম-ডেটা নির্ভরশীলতা (Program-Data Dependence): ফাইলের স্টোরেজ কাঠামো সামান্য পরিবর্তন করলেই সংশ্লিষ্ট সমস্ত অ্যাপ্লিকেশন প্রোগ্রাম পুনরায় লিখতে হতো।
  • কনকারেন্ট অ্যাক্সেসের সমস্যা (Concurrency Anomalies): একাধিক ব্যবহারকারী একই সময়ে ফাইলে পরিবর্তন করার চেষ্টা করলে ডেটা বিকৃত হওয়ার সম্ভাবনা থাকত।
  • নিরাপত্তা ও অখণ্ডতার অভাব: সুনির্দিষ্ট অ্যাক্সেস কন্ট্রোল ও বিধিনিষেধ (Constraints) প্রয়োগ করা কষ্টসাধ্য ছিল।
১.২ ANSI/SPARC তিন-স্তর বিশিষ্ট ডেটাবেস আর্কিটেকচার

ডেটাবেস সিস্টেমকে ব্যবহারকারী থেকে পৃথক রাখতে তিন স্তরের আর্কিটেকচার ব্যবহার করা হয়:

আর্কিটেকচার স্তর কার্যকারিতা ও পরিধি ব্যবহারকারী ও উপাদান
এক্সটার্নাল বা ভিউ স্তর (External Level) বিভিন্ন শ্রেণির ব্যবহারকারীর জন্য ডেটাবেসের নির্দিষ্ট অংশের কাস্টমাইজড রূপ প্রদর্শন করে। অপ্রয়োজনীয় তথ্য আড়াল রাখা হয়। সাধারণ ব্যবহারকারী ও অ্যাপ্লিকেশন প্রোগ্রামার; বিভিন্ন SQL ভিউ স্ক্রিন।
কনসেপচুয়াল বা লজিক্যাল স্তর (Conceptual Level) সমগ্র ডেটাবেসের সামগ্রিক যৌক্তিক গঠন, সত্তাসমূহ, ডেটা টাইপ, সম্পর্ক ও নিয়মাবলী সংজ্ঞায়িত করে। ডেটাবেস প্রশাসক (DBA); রিলেশনাল স্কিমা, প্রাইমারি কি ও ফরেন কি।
ইন্টারনাল বা ফিজিক্যাল স্তর (Internal Level) হার্ডডিস্ক ও সেকেন্ডারি স্টোরেজে কীভাবে ডেটা বিট, ব্লক, ক্লাস্টার এবং B+ ট্রি ইনডেক্সে সঞ্চিত থাকে তা বর্ণনা করে। DBMS স্টোরেজ ইঞ্জিন ও সিস্টেম প্রকৌশলী; ফাইল অর্গানাইজেশন ও কম্প্রেশন।
ডেটা স্বাধীনতা (Data Independence):
১. ফিজিক্যাল ডেটা স্বাধীনতা: কনসেপচুয়াল স্কিমা পরিবর্তন না করে ইন্টারনাল বা স্টোরেজ স্কিমা (যেমন নতুন ইনডেক্স তৈরি, ফাইল স্থানান্তর) পরিবর্তন করার ক্ষমতা।
২. লজিক্যাল ডেটা স্বাধীনতা: এক্সটার্নাল ভিউ বা বিদ্যমান প্রোগ্রাম পরিবর্তন না করে কনসেপচুয়াল স্কিমা (যেমন নতুন অ্যাট্রিবিউট যোগ বা টেবিল বিভাজন) পরিবর্তন করার ক্ষমতা। এটি অর্জন করা অপেক্ষাকৃত কঠিন।

Module 2: সত্তা-সম্পর্ক (ER) মডেল ও রিলেশনাল স্কিমায় রূপান্তর

২.১ সত্তা (Entity) ও বৈশিষ্ট্যের (Attribute) শ্রেণিবিন্যাস

১৯৭৬ সালে পিটার চেনের প্রস্তাবিত ER মডেল অনুযায়ী বাস্তব জগতের বস্তু ও ধারণাকে বিভিন্ন প্রতীকের সাহায্যে উপস্থাপন করা হয়:

  • শক্তিশালী সত্তা (Strong Entity): যে সত্তার নিজস্ব প্রাইমারি কি রয়েছে (একক আয়তক্ষেত্র দ্বারা চিহ্নিত)।
  • দুর্বল সত্তা (Weak Entity): যার নিজস্ব প্রাইমারি কি নেই এবং শনাক্তকারী শক্তিশালী সত্তার ওপর নির্ভরশীল (দ্বৈত আয়তক্ষেত্র দ্বারা চিহ্নিত; এর আংশিক কি ড্যাশড আন্ডারলাইন দিয়ে দেখানো হয়)।
  • সরল বনাম যৌগিক বৈশিষ্ট্য (Simple vs. Composite): সরল বৈশিষ্ট্য অবিভাজ্য (যেমন Roll_No); যৌগিক বৈশিষ্ট্যকে ছোট অংশে ভাগ করা যায় (যেমন Name → First_Name, Last_Name)।
  • এককমান বনাম বহুমানবিশিষ্ট বৈশিষ্ট্য (Single vs. Multi-Valued): একক মানে একটি মান থাকে (যেমন DOB); বহুমানবিশিষ্ট বৈশিষ্ট্যে একাধিক মান থাকতে পারে (যেমন Phone_Number, দ্বৈত উপবৃত্ত দ্বারা চিহ্নিত)।
  • উদ্ভাবিত বৈশিষ্ট্য (Derived Attribute): অন্য সংরক্ষিত তথ্যের ভিত্তিতে গণনাযোগ্য (যেমন DOB থেকে Age, ড্যাশড উপবৃত্ত দ্বারা চিহ্নিত)।
২.২ কার্ডিনালিটি অনুপাত ও রিলেশনাল ম্যাপিং নিয়মাবলী
সম্পর্কের প্রকার সংজ্ঞা ও বাস্তব উদাহরণ টেবিলে রূপান্তরের নিয়ম
One-to-One (1:1) সত্তা A-এর একটি উপাদান সত্তা B-এর অনধিক একটি উপাদানের সাথে যুক্ত (যেমন: বিভাগ — পরিচালনা — বিভাগীয় প্রধান)। যেকোনো একটি টেবিলের প্রাইমারি কি অপর টেবিলে Foreign Key ও UNIQUE হিসেবে যুক্ত করতে হয়।
One-to-Many (1:N) A-এর একটি উপাদান B-এর বহু উপাদানের সাথে যুক্ত হতে পারে, কিন্তু B-এর প্রতিটি উপাদান A-এর মাত্র একটির সাথে যুক্ত (যেমন: বিভাগ — শিক্ষক)। '১'-দিকের সত্তার প্রাইমারি কি-কে 'N'-দিকের টেবিলের মধ্যে Foreign Key হিসেবে স্থাপন করতে হয়।
Many-to-Many (M:N) A-এর উপাদান B-এর অনেকের সাথে এবং B-এর উপাদান A-এর অনেকের সাথে সম্পর্কিত (যেমন: ছাত্র — কোর্স)। একটি সম্পূর্ণ নতুন জাংশন টেবিল (Junction Table) তৈরি করতে হয় যার প্রাইমারি কি হবে উভয় টেবিলের ফরেন কি-এর সমন্বিত রূপ।

Module 3: রিলেশনাল মডেল, কি-এর শ্রেণিবিন্যাস ও রিলেশনাল অ্যালজেব্রা

৩.১ রিলেশনাল মডেলের পরিভাষা

১৯৭০ সালে ই. এফ. কড রিলেশনাল মডেলের প্রস্তাব দেন। এর মূল উপাদানসমূহ হলো:

  • রিলেশন (Relation): কলাম ও সারির সমন্বয়ে গঠিত দ্বিমাত্রিক ডেটা টেবিল।
  • টাপল (Tuple): রিলেশনের একটি স্বতন্ত্র সারি (Row বা Record)।
  • অ্যাট্রিবিউট (Attribute): রিলেশনের একটি নির্দিষ্ট কলাম বা বৈশিষ্ট্য।
  • ডিগ্রি (Degree): একটি রিলেশনে বিদ্যমান মোট অ্যাট্রিবিউট বা কলামের সংখ্যা।
  • কার্ডিনালিটি (Cardinality): একটি রিলেশনে বিদ্যমান মোট টাপল বা সারির সংখ্যা।
  • ডোমেন (Domain): একটি অ্যাট্রিবিউট যে সমস্ত বৈধ পরমাণু মান (Atomic Values) গ্রহণ করতে পারে তার সেট।
৩.২ ডেটাবেস কি ও অখণ্ডতার নিয়মাবলী (Integrity Constraints)
কি-এর নাম সংজ্ঞা ও বৈশিষ্ট্য সংশ্লিষ্ট অখণ্ডতার শর্ত
Super Key এক বা একাধিক অ্যাট্রিবিউটের সেট যা একটি টেবিলের প্রতিটি টাপলকে অদ্বিতীয়ভাবে শনাক্ত করতে পারে। ইউনিকনেস বজায় রাখা।
Candidate Key ন্যূনতম (Minimal) সুপার কি; যার কোনো উপসেট একা টাপল শনাক্ত করতে পারে না। অপসারণযোগ্য নয় এমন অনন্যতা।
Primary Key (PK) ক্যান্ডিডেট কি-গুলির মধ্য থেকে ডেটাবেস ডিজাইনার দ্বারা মনোনীত প্রধান কি। Entity Integrity: প্রাইমারি কি-এর মান কখনোই NULL হতে পারে না।
Foreign Key (FK) একটি টেবিলের এমন একটি অ্যাট্রিবিউট যা অপর একটি টেবিলের প্রাইমারি কি-কে নির্দেশ করে। Referential Integrity: ফরেন কি-এর মান মূল টেবিলের প্রাইমারি কি-এর সাথে মিলবে অথবা NULL হবে।
৩.৩ রিলেশনাল অ্যালজেব্রা (Relational Algebra)

রিলেশনাল অ্যালজেব্রা হলো প্রসিডিউরাল কুয়েরি ভাষা। এর মূল অপারেটরসমূহ:

  • সিলেকশন (\(\sigma_p(R)\)): শর্ত পূরণকারী নির্দিষ্ট সারি নির্বাচন করে (অনুভূমিক ফিল্টারিং): \(\sigma_{ ext{Marks} \ge 80}( ext{STUDENT})\)।
  • প্রোজেকশন (\(\Pi_{A_1, \dots, A_k}(R)\)): নির্দিষ্ট কলামসমূহ বেছে নেয় এবং ডুপ্লিকেট সারি বাদ দেয় (উল্লম্ব ফিল্টারিং): \(\Pi_{ ext{Roll}, ext{Name}}( ext{STUDENT})\)।
  • কার্টেসিয়ান গুণ (\(R imes S\)): দুটি টেবিলের সম্ভাব্য সকল জোড়া তৈরি করে। ডিগ্রি যোগ হয় (\(m + n\)) এবং কার্ডিনালিটি গুণ হয় (\(r imes s\))।
  • ন্যাচারাল জয়েন (\(R owtie S\)): সাধারণ অ্যাট্রিবিউটের ওপর সমতা বিচার করে সারি যুক্ত করে এবং ডুপ্লিকেট কলাম বাদ দেয়।

Module 4: ডেটাবেস নরমালাইজেশন ও ফাংশনাল ডিপেন্ডেন্সি (1NF, 2NF, 3NF ও BCNF)

৪.১ ডেটাবেসের অসঙ্গতি (Anomalies) ও ফাংশনাল ডিপেন্ডেন্সি

অনরমালাইজড টেবিলে ডেটা সংরক্ষিত থাকলে প্রধান তিনটি ত্রুটি দেখা দেয়:

  • ইনসার্শন অ্যানোম্যালি (Insertion Anomaly): অপ্রাসঙ্গিক তথ্যের অনুপস্থিতির কারণে প্রয়োজনীয় বৈধ তথ্য প্রবেশ করাতে না পারা।
  • ডিলিশন অ্যানোম্যালি (Deletion Anomaly): একটি অপ্রয়োজনীয় তথ্য ডিলিট করতে গিয়ে অসাবধানতাবশত সম্পূর্ণ ভিন্ন প্রয়োজনীয় তথ্য মুছে যাওয়া।
  • আপডেট অ্যানোম্যালি (Update Anomaly): একই তথ্য বহু জায়গায় থাকার কারণে এক জায়গায় পরিবর্তন করলে অন্য জায়গা অপরিবর্তিত থেকে অসঙ্গতি তৈরি হওয়া।
ফাংশনাল ডিপেন্ডেন্সি ও আর্মস্ট্রং-এর স্বতঃসিদ্ধ (Armstrong's Axioms):
যদি \(X\) এর প্রতিটি নির্দিষ্ট মানের জন্য \(Y\) এর একটি অদ্বিতীয় মান নির্ধারিত হয়, তবে তাকে \(X ightarrow Y\) বলা হয়।
• স্বতঃপ্রবৃত্ত নিয়ম (Reflexivity): যদি \(Y \subseteq X\) হয়, তবে \(X ightarrow Y\)।
• বৃদ্ধি নিয়ম (Augmentation): যদি \(X ightarrow Y\) হয়, তবে \(XZ ightarrow YZ\)।
• সংক্রমণ নিয়ম (Transitivity): যদি \(X ightarrow Y\) এবং \(Y ightarrow Z\) হয়, তবে \(X ightarrow Z\)।
৪.২ বিভিন্ন নরমাল ফর্মের তুলনামূলক বিচার
নরমাল ফর্ম বাধ্যতামূলক শর্ত ও নিয়ম দূরীকৃত ত্রুটি
1NF (First Normal Form) প্রতিটি কলামের মান অবশ্যই পরমাণু বা অবিভাজ্য (Atomic) হতে হবে। কোনো পুনরাবৃত্তিমূলক গ্রুপ থাকা চলবে না। কমা দেওয়া তালিকা বা বহুমানবিশিষ্ট উপাদান।
2NF (Second Normal Form) 1NF-এ থাকতে হবে এবং আংশিক নির্ভরতা (Partial Dependency) থাকা চলবে না। নন-প্রাইম অ্যাট্রিবিউটকে সম্পূর্ণ ক্যান্ডিডেট কি-এর ওপর নির্ভর করতে হবে। যৌগিক কি-এর আংশিক অংশের ওপর নির্ভরতা।
3NF (Third Normal Form) 2NF-এ থাকতে হবে এবং ট্রানজিটিভ নির্ভরতা থাকা চলবে না। প্রতিটি \(X ightarrow Y\) এর ক্ষেত্রে \(X\) একটি Super Key হবে অথবা \(Y\) একটি Prime Attribute হবে। নন-প্রাইম অ্যাট্রিবিউটের ওপর নন-প্রাইম অ্যাট্রিবিউটের নির্ভরতা।
BCNF (Boyce-Codd NF) প্রতিটি অ-তুচ্ছ ফাংশনাল ডিপেন্ডেন্সি \(X ightarrow Y\) এর ক্ষেত্রে \(X\) অবশ্যই একটি Super Key হতে হবে। ওভারল্যাপিং ক্যান্ডিডেট কি সংক্রান্ত জটিলতা।

Module 5: স্ট্রাকচার্ড কুয়েরি ল্যাঙ্গুয়েজ (SQL) — DDL, DML, জয়েন ও অ্যাগ্রিগেশন

৫.১ SQL-এর কমান্ডসমূহের শ্রেণিবিন্যাস

SQL রিলেশনাল ডেটাবেসের সাথে যোগাযোগের আন্তর্জাতিক প্রমিত ভাষা। এর প্রধান চারটি শাখা রয়েছে:

বিভাগ কার্যকারিতা ও পরিধি প্রধান কমান্ডসমূহ
DDL (Data Definition) টেবিল ও ডেটাবেসের সামগ্রিক কাঠামো তৈরি, পরিবর্তন ও ধ্বংস করে। স্বয়ংক্রিয়ভাবে Commit হয়। CREATE, ALTER, DROP, TRUNCATE
DML (Data Manipulation) টেবিলের ভেতরের ডেটা প্রবেশ, পরিমার্জন, ডিলিট এবং খোঁজার কাজে লাগে। SELECT, INSERT, UPDATE, DELETE
DCL (Data Control) ব্যবহারকারীদের অধিকার ও অনুমতি প্রদান বা প্রত্যাহার করে। GRANT, REVOKE
TCL (Transaction Control) লেনদেন সংরক্ষণ বা বাতিলের কাজ পরিচালনা করে। COMMIT, ROLLBACK, SAVEPOINT
WHERE বনাম HAVING ক্লজের পার্থক্য (বোর্ড পরীক্ষার বিশেষ ফাঁদ):
• WHERE ক্লজ: গ্রুপ তৈরির পূর্বে প্রতিটি একক সারি ফিল্টার করে। এতে Aggregate ফাংশন ব্যবহার করা যায় না (যেমন: WHERE AVG(salary) > 50000 ভুল)।
• HAVING ক্লজ: GROUP BY-এর মাধ্যমে গ্রুপ তৈরির পর সামগ্রিক গ্রুপকে ফিল্টার করে। এতে Aggregate ফাংশন ব্যবহৃত হয় (যেমন: HAVING COUNT(*) >= 5)।

Module 6: ট্রানজ্যাকশন প্রসেসিং, ACID বৈশিষ্ট্য ও কনকারেন্সি নিয়ন্ত্রণ

৬.১ ট্রানজ্যাকশনের ACID বৈশিষ্ট্যসমূহ

ডেটাবেস প্রক্রিয়াকরণের একটি অবিভাজ্য যৌক্তিক একক হলো ট্রানজ্যাকশন। ডেটাবেসের শুদ্ধতা বজায় রাখতে এর চারটি ধর্ম অপরিহার্য:

ACID বৈশিষ্ট্য নীতিমালা ও অর্থ DBMS সাবসিস্টেম
Atomicity (পরমাণুতা) "সব বা কিছুই না" নীতি। ট্রানজ্যাকশনের সব কাজ সফলভাবে সম্পন্ন হবে, নয়তো ব্যর্থ হলে পূর্বাবস্থায় ফিরে যাবে (Rollback)। রিকভারি ম্যানেজার (Undo Log / WAL)।
Consistency (সঙ্গতি) ট্রানজ্যাকশন শুরুর পূর্বে এবং সফল পরিসমাপ্তির পরে ডেটাবেস সর্বদা একটি সুসংগত অবস্থায় থাকবে। অ্যাপ্লিকেশন কোড ও ইন্টিগ্রিটি কনস্ট্রেইন্ট।
Isolation (বিচ্ছিন্নতা) একাধিক ট্রানজ্যাকশন সমান্তরালে চললেও একে অপরের অন্তর্বর্তী ফলাফল দেখতে পারবে না। প্রত্যেকে স্বাধীনভাবে কাজ করবে। কনকারেন্সি কন্ট্রোল ম্যানেজার (Locking / 2PL)।
Durability (স্থায়িত্ব) একবার ট্রানজ্যাকশন Commit হলে সিস্টেম ক্র্যাশ বা বিদ্যুৎ চলে গেলেও সেই পরিবর্তনের ডেটা স্থায়ীভাবে সংরক্ষিত থাকবে। রিকভারি ম্যানেজার (Redo Log)।
৬.২ টু-ফেজ লকিং প্রোটোকল (2PL Protocol)

একাধিক ব্যবহারকারী একসাথে লেনদেন চালালে কনকারেন্সি সমস্যা (যেমন ডার্টি রিড ও লস্ট আপডেট) প্রতিরোধ করতে 2PL প্রোটোকল দুটি দশায় বিভক্ত:

  • ক্রমবর্ধমান দশা (Growing Phase): ট্রানজ্যাকশন প্রয়োজন অনুযায়ী বিভিন্ন ডেটায় লক (Shared বা Exclusive) গ্রহণ করতে পারে, কিন্তু কোনো লক ছাড়তে পারে না।
  • সংকোচনশীল দশা (Shrinking Phase): ট্রানজ্যাকশন লক ছাড়তে পারে, কিন্তু নতুন কোনো লক গ্রহণ করতে পারে না।

প্রোগ্রামিং সিনট্যাক্স, কমান্ড ও অনুবাদক নীতি

কার্টেসিয়ান গুণফলের মাত্রা ও কার্ডিনালিটি সূত্র
$$Degree(R imes S) = Degree(R) + Degree(S); \quad Cardinality(R imes S) = Cardinality(R) imes Cardinality(S)$$
আর্মস্ট্রং-এর সংক্রমণ স্বতঃসিদ্ধ (Transitivity Axiom)
$$(X ightarrow Y) \land (Y ightarrow Z) \implies X ightarrow Z$$
দ্বিতীয় নরমাল ফর্ম (2NF) যাচাই সূত্র
$$ orall (X ightarrow A) \in F: (A otin ext{Prime}) \implies ( exists K \in ext{Candidate Keys}: X \subset K)$$
তৃতীয় নরমাল ফর্ম (3NF) শর্ত
$$ orall (X ightarrow Y) \in F_{ ext{non-trivial}}: (X ext{ is a Super Key}) \lor (Y ext{ is a Prime Attribute})$$
বয়েস-কড নরমাল ফর্ম (BCNF) শর্ত
$$ orall (X ightarrow Y) \in F_{ ext{non-trivial}}: X ext{ must be a Super Key}$$
রিলেশনাল ন্যাচারাল জয়েন সমীকরণ
$$R owtie S = \Pi_{Attrs(R) \cup Attrs(S)} ( \sigma_{R.A_1 = S.A_1 \land \dots \land R.A_k = S.A_k} (R imes S) )$$

সমাধানকৃত উদাহরণ ও প্রয়োগ (Solved Examples)

উদাহরণ 1
প্রাইমারি কি এবং ইউনিক কি-এর মধ্যে দুটি মূল পার্থক্য লিখুন। (NULL মান ও টেবিল প্রতি সংখ্যার নিরিখে)
ধাপে ধাপে সমাধান / উত্তর:

উত্তর:

তুলনার বিষয় প্রাইমারি কি (Primary Key) ইউনিক কি (Unique Key)
NULL মান গ্রহণযোগ্যতা কোনো অবস্থাতেই NULL মান গ্রহণ করতে পারে না (Entity Integrity)। কলামে অনধিক একটি NULL মান গ্রহণ করতে পারে।
টেবিল প্রতি সংখ্যা একটি টেবিলে শুধুমাত্র একটিমাত্র প্রাইমারি কি থাকতে পারে। একটি টেবিলে একাধিক ইউনিক কি কনস্ট্রেইন্ট থাকতে পারে।
উদাহরণ 2
দুটি রিলেশন দেওয়া আছে: STUDENT(Roll, Name, Department, Marks) এবং ENROLL(Roll, Course_ID)। রিলেশনাল অ্যালজেব্রা এক্সপ্রেশন লিখুন: (ক) 'Computer Science' বিভাগের যে সমস্ত ছাত্রের Marks >= 80 তাদের Name প্রদর্শন। (খ) 'CS101' কোর্সে নথিভুক্ত এবং Marks >= 90 প্রাপ্ত ছাত্রদের Roll প্রদর্শন।
ধাপে ধাপে সমাধান / উত্তর:

রিলেশনাল অ্যালজেব্রা সমাধান:

(ক) কুয়েরি ১: Department = 'Computer Science' এবং Marks >= 80 শর্তে সিলেকশন করে Name কলাম প্রজেক্ট করা হলো:
\Pi_{Name} ( \sigma_{Department = 'Computer Science' \land Marks \ge 80} (STUDENT) )

(খ) কুয়েরি ২: STUDENT ও ENROLL টেবিলের ন্যাচারাল জয়েন করে Course_ID = 'CS101' এবং Marks >= 90 শর্ত প্রয়োগ করে Roll কলাম প্রজেক্ট করা হলো:
\Pi_{Roll} ( \sigma_{Course\_ID = 'CS101' \land Marks \ge 90} (STUDENT \bowtie ENROLL) )

উদাহরণ 3
একটি রিলেশন R(A, B, C, D, E)-এর ফাংশনাল ডিপেন্ডেন্সি সেট F = { A -> BC, CD -> E, B -> D, E -> A }। অ্যাট্রিবিউট ক্লোজার (X+) পদ্ধতি প্রয়োগ করে R-এর সকল ক্যান্ডিডেট কি নির্ণয় করুন।
ধাপে ধাপে সমাধান / উত্তর:

ধাপে ধাপে ক্লোজার নির্ণয়:

  1. A-এর ক্লোজার:
    \(A^+ = \{A\}\)
    \(A ightarrow BC\) প্রয়োগে: \(A^+ = \{A, B, C\}\)
    \(B ightarrow D\) প্রয়োগে: \(A^+ = \{A, B, C, D\}\)
    \(CD ightarrow E\) প্রয়োগে: \(A^+ = \{A, B, C, D, E\}\)।
    যেহেতু \(A^+\) সম্পূর্ণ রিলেশনের সকল অ্যাট্রিবিউট নির্ণয় করতে পারে, তাই A একটি Candidate Key।
  2. E-এর ক্লোজার:
    \(E^+ = \{E\}\)
    \(E ightarrow A\) প্রয়োগে: \(E^+ = \{E, A\}\)। যেহেতু \(A\) একটি ক্যান্ডিডেট কি, তাই \(E^+ = \{A, B, C, D, E\}\)।
    অতএব, E একটি Candidate Key।
  3. CD-এর ক্লোজার:
    \(CD^+ = \{C, D\}\)
    \(CD ightarrow E \implies CD^+ = \{C, D, E\}\)
    \(E ightarrow A \implies CD^+ = \{A, C, D, E\}\)
    \(A ightarrow BC \implies CD^+ = \{A, B, C, D, E\}\)।
    \(C\) বা \(D\) একা কি হতে পারে না, তাই CD একটি Candidate Key।
  4. BC-এর ক্লোজার:
    \(B ightarrow D \implies BC ightarrow CD \implies BC^+ = \{A, B, C, D, E\}\)।
    অতএব, BC-ও একটি Candidate Key।

চূড়ান্ত উত্তর: রিলেশন \(R\)-এর ক্যান্ডিডেট কি-সমূহ হলো {A, E, CD, BC}।

উদাহরণ 4
একটি কলেজে ছাত্র ভর্তির জন্য একটি একক টেবিল ব্যবহৃত হয়: ENROLLMENT(Student_ID, Student_Name, Course_ID, Course_Name, Instructor_Name, Instructor_Office)। প্রাথমিক কি হলো (Student_ID, Course_ID)। ফাংশনাল ডিপেন্ডেন্সি সেট: { (Student_ID, Course_ID) -> Instructor_Name, Student_ID -> Student_Name, Course_ID -> (Course_Name, Instructor_Name), Instructor_Name -> Instructor_Office }। টেবিলটি কোন নরমাল ফর্মে আছে তা চিহ্নিত করে উপযুক্ত ব্যাখ্যাসহ 3NF রিলেশনে বিভক্ত করুন।
ধাপে ধাপে সমাধান / উত্তর:

বিশ্লেষণ ও ধাপে ধাপে নরমালাইজেশন:

  1. বর্তমান নরমাল ফর্ম: টেবিলটি 1NF-এ আছে, কিন্তু 2NF-এ নেই।
    কারণ: ক্যান্ডিডেট কি হলো যৌথ (Student_ID, Course_ID)। এখানে আংশিক নির্ভরতা বিদ্যমান:
    • Student_ID → Student_Name (আংশিক নির্ভরতা)।
    • Course_ID → Course_Name (আংশিক নির্ভরতা)।
  2. 2NF-এ বিভাজন (আংশিক নির্ভরতা দূরীকরণ):
    • STUDENT(Student_ID, Student_Name)
    • COURSE(Course_ID, Course_Name, Instructor_Name, Instructor_Office)
    • ENROLLMENT(Student_ID, Course_ID) [উভয় টেবিলের ফরেন কি]।
  3. 3NF-এ বিভাজন (ট্রানজিটিভ নির্ভরতা দূরীকরণ):
    COURSE টেবিলে Course_ID → Instructor_Name এবং Instructor_Name → Instructor_Office বিদ্যমান।
    এখানে নন-কি অ্যাট্রিবিউট Instructor_Office অপর নন-কি অ্যাট্রিবিউটের ওপর নির্ভরশীল (ট্রানজিটিভ নির্ভরতা)।
    একে ভেঙে দুটি টেবিলে বিভক্ত করা হলো:
    • INSTRUCTOR(Instructor_Name, Instructor_Office)
    • COURSE(Course_ID, Course_Name, Instructor_Name) [Instructor_Name হলো Foreign Key]।

চূড়ান্ত 3NF রিলেশনাল স্কিমা:
১. STUDENT(Student_ID, Student_Name)
২. INSTRUCTOR(Instructor_Name, Instructor_Office)
৩. COURSE(Course_ID, Course_Name, Instructor_Name)
৪. ENROLLMENT(Student_ID, Course_ID)

উদাহরণ 5
দুটি টেবিল দেওয়া আছে: EMPLOYEE(Emp_ID, Emp_Name, Dept_ID, Salary, Commission) এবং DEPARTMENT(Dept_ID, Dept_Name, Location)। উপযুক্ত SQL কুয়েরি লিখুন: (ক) যে সমস্ত বিভাগে ৩ জনের বেশি কর্মচারী কর্মরত তাদের Dept_Name এবং গড় বেতন প্রদর্শন করুন (গড় বেতনের অধঃক্রম অনুযায়ী সাজিয়ে)। (খ) যে কর্মচারীদের বেতন তাদের নিজ বিভাগের গড় বেতনের চেয়ে বেশি তাদের নাম ও বেতন খুঁজুন।
ধাপে ধাপে সমাধান / উত্তর:

SQL সমাধান:

(ক) GROUP BY ও HAVING সহ কুয়েরি:

SELECT d.Dept_Name, AVG(e.Salary) AS Avg_Salary
FROM EMPLOYEE e
INNER JOIN DEPARTMENT d ON e.Dept_ID = d.Dept_ID
GROUP BY d.Dept_ID, d.Dept_Name
HAVING COUNT(e.Emp_ID) > 3
ORDER BY Avg_Salary DESC;

(খ) কোরিলেটেড সাবকুয়েরি (Correlated Subquery):

SELECT e1.Emp_ID, e1.Emp_Name, e1.Dept_ID, e1.Salary
FROM EMPLOYEE e1
WHERE e1.Salary > (
    SELECT AVG(e2.Salary)
    FROM EMPLOYEE e2
    WHERE e2.Dept_ID = e1.Dept_ID
);

উদাহরণ 6
ব্যাংকিং ব্যবস্থার একটি অ্যাকাউন্ট A (প্রারম্ভিক ব্যালেন্স ৫০,০০০ টাকা) থেকে অপর অ্যাকাউন্ট B (প্রারম্ভিক ব্যালেন্স ২০,০০০ টাকা)-তে ১০,০০০ টাকা ফান্ড ট্রান্সফারের উদাহরণ দিয়ে ট্রানজ্যাকশনের ACID বৈশিষ্ট্য ব্যাখ্যা করুন। অ্যাকাউন্ট A থেকে টাকা কাটার পর যদি সিস্টেম ক্র্যাশ করে তবে DBMS কীভাবে অখণ্ডতা রক্ষা করে?
ধাপে ধাপে সমাধান / উত্তর:

ACID বৈশিষ্ট্যের বিশদ বিশ্লেষণ:

ট্রানজ্যাকশন \(T\)-এর কার্যপ্রণালী নিম্নরূপ:

T: 1. Read(A);  2. A = A - 10000;  3. Write(A);  4. Read(B);  5. B = B + 10000;  6. Write(B);  7. Commit;
  1. Atomicity (পরমাণুতা):
    • ধাপ ৩-এর পর (\(A = 40,000\) টাকা) সিস্টেম ক্র্যাশ করলে অ্যাকাউন্ট B-তে টাকা জমা হয়নি।
    • পুনরায় চালু হলে রিকভারি ম্যানেজার Write-Ahead Log (WAL) পরীক্ষা করে দেখে যে <T, Commit> রেকর্ড নেই। ফলে সিস্টেম সঙ্গে সঙ্গে UNDO অপারেশন চালায় এবং অ্যাকাউন্ট A-এর টাকা ফিরিয়ে দিয়ে \(A = 50,000\) করে। অর্থাৎ ট্রানজ্যাকশন পুরোপুরি বাতিল হয়, কোনো টাকা নষ্ট হয় না।
  2. Consistency (সঙ্গতি):
    • নিয়ম: মোট ব্যাংকিং ব্যালেন্স \(A + B = ৫০,০০০ + ২০,০০০ = ৭০,০০০\) টাকা।
    • লেনদেনের পূর্বে মোট ব্যালেন্স ৭০,০০০ টাকা। সফল লেনদেনের পরও \(৪০,০০০ + ৩০,০০০ = ৭০,০০০\) টাকা অপরিবর্তিত থাকে।
  3. Isolation (বিচ্ছিন্নতা):
    • ধাপ ৩ ও ধাপ ৬-এর মধ্যবর্তী সময়ে অন্য কোনো অডিট ট্রানজ্যাকশন যদি ব্যালেন্স পড়ে, তবে সে \(A = ৪০,০০০\) ও \(B = ২০,০০০\) দেখতে পেত (মোট ৬০,০০০ টাকা — যা অসঙ্গত)।
    • এক্সক্লুসিভ লক (X-lock) প্রয়োগের মাধ্যমে DBMS অন্য কাউকে অন্তর্বর্তী মান দেখতে দেয় না যতক্ষণ না COMMIT সম্পন্ন হয়।
  4. Durability (স্থায়িত্ব):
    • ধাপ ৭-এ Commit হওয়ার সাথে সাথে তথ্য হার্ডডিস্কে স্থায়ী হয়। এর ১ সেকেন্ড পর বিদ্যুৎ চলে গেলেও ডেটাবেস থেকে কোনো পরিবর্তন মুছে যাবে না; রিকভারি ম্যানেজার REDO লগের মাধ্যমে তা অক্ষুণ্ণ রাখে।

সাধারণ ভুলত্রুটি ও সতর্কতা (Common Traps)

সাধারণ ভুল ধারণা

SQL কুয়েরিতে WHERE ক্লজের ভেতরে Aggregate ফাংশন (যেমন AVG, SUM) ব্যবহার করা।

সঠিক পদ্ধতি ও সমাধান

WHERE ক্লজ গ্রুপ তৈরির আগে প্রতিটি একক সারি ফিল্টার করে। Aggregate ফাংশন দিয়ে ফিল্টার করার জন্য সর্বদা HAVING ক্লজ ব্যবহার করতে হবে (যেমন HAVING AVG(salary) > 50000)।

সাধারণ ভুল ধারণা

সুপার কি (Super Key) এবং ক্যান্ডিডেট কি (Candidate Key)-কে একই মনে করা।

সঠিক পদ্ধতি ও সমাধান

প্রতিটি ক্যান্ডিডেট কি একটি সুপার কি, কিন্তু প্রতিটি সুপার কি ক্যান্ডিডেট কি নয়। ক্যান্ডিডেট কি হলো ন্যূনতম (Minimal) সুপার কি যাতে কোনো অতিরিক্ত অপ্রয়োজনীয় কলাম থাকে না।

সাধারণ ভুল ধারণা

মনে করা যে ফরেন কি (Foreign Key) কখনোই NULL মান গ্রহণ করতে পারে না।

সঠিক পদ্ধতি ও সমাধান

প্রাইমারি কি কখনো NULL হতে পারে না (Entity Integrity), কিন্তু ফরেন কি বৈধ প্রাইমারি কি-এর মান অথবা NULL হতে পারে (যদি না NOT NULL দিয়ে আটকানো থাকে)।

সাধারণ ভুল ধারণা

DROP, TRUNCATE এবং DELETE কমান্ডের মধ্যে পার্থক্য না বোঝা।

সঠিক পদ্ধতি ও সমাধান

DELETE হলো DML কমান্ড যা শর্তসাপেক্ষে সারি মোছে ও Rollback করা যায়। TRUNCATE হলো DDL কমান্ড যা দ্রুত পুরো টেবিল খালি করে পেজ অবমুক্ত করে। DROP হলো DDL কমান্ড যা টেবিলের কাঠামো ও মেটাডেটা সহ সম্পূর্ণ মুছে ফেলে।

সাধারণ ভুল ধারণা

ন্যাচারাল জয়েন এবং সাধারণ ইকুই-জয়েনকে অভিন্ন ভাবা।

সঠিক পদ্ধতি ও সমাধান

ইকুই-জয়েনে উভয় টেবিলের সাধারণ কলাম আউটপুটে দুবার প্রদর্শিত হয়। ন্যাচারাল জয়েন স্বয়ংক্রিয়ভাবে প্রজেকশন করে সাধারণ কলামটিকে মাত্র একবার রাখে।

চিত্রগত ব্যাখ্যা ও মডেল

ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) — আর্কিটেকচার ও মূল ধারণাসমূহ WBCHSE শ্রেণি ১২ কম্পিউটার সায়েন্স • অধ্যায় ৩: DBMS আর্কিটেকচার, ER মডেল, রিলেশনাল অ্যালজেব্রা, নরমালাইজেশন ও SQL স্তর ১: তিন-স্তর বিশিষ্ট আর্কিটেকচার এক্সটার্নাল ভিউ (External Views) — ব্যবহারকারীর নিজস্ব দর্শন কনসেপচুয়াল স্কিমা (Conceptual) — লজিক্যাল গঠন ও সম্পর্ক ইন্টারনাল স্তর (Internal/Physical) — হার্ডডিস্কে ডেটা সংরক্ষণ ও ইনডেক্সিং ⚡ লজিক্যাল ও ফিজিক্যাল ডেটা স্বাধীনতা (Data Independence) স্তর ২: ডেটা মডেল ও ER ম্যাপিং ER ডায়াগ্রাম — সত্তা (Entity), বৈশিষ্ট্য (Attribute), সম্পর্ক (Relationship) রিলেশনাল কি — প্রাইমারি কি, ক্যান্ডিডেট কি, অল্টারনেট কি ফরেন কি (Foreign Key) — রেফারেন্সিয়াল ইন্টিগ্রিটি বজায় রাখা 🛡️ ইন্টিগ্রিটি শর্ত: এনটিটি, ডোমেন ও রেফারেন্সিয়াল নিয়ম স্তর ৩: রিলেশনাল অ্যালজেব্রা ও SQL অ্যালজেব্রা — সিলেকশন (σ), প্রোজেকশন (Π), কার্টেসিয়ান গুণ (×) জয়েন ও সেট অপারেশন — ন্যাচারাল জয়েন (⋈), ইউনিয়ন (∪), ডিফারেন্স (-) SQL সাব-ল্যাঙ্গুয়েজ — DDL, DML, DCL, TCL (SELECT, GROUP BY, JOIN) ⚙️ প্রসিডিউরাল অ্যালজেব্রা বনাম নন-প্রসিডিউরাল SQL কুয়েরি স্তর ৪: নরমালাইজেশন ও ট্রানজ্যাকশন নরমালাইজেশন — 1NF (পরমাণু মান) → 2NF (আংশিক নির্ভরতা বর্জন) উন্নত ধাপ — 3NF (ট্রানজিটিভ নির্ভরতা মুক্ত) ও BCNF ACID ধর্ম — অ্যাটোমিসিসিটি, কনসিস্টেন্সি, আইসোলেশন, ডিউরেবিলিটি 🔒 2PL লকিং প্রোটোকল ও কনকারেন্সি নিয়ন্ত্রণ DBMS কোর ইঞ্জিন ডেটা স্বাধীনতা ও নির্ভরযোগ্যতা

অধ্যায় সারসংক্ষেপ ও গুরুত্বপূর্ণ বিষয়

মূল বিষয় 1
DBMS ফাইল প্রসেসিং সিস্টেমের ডেটা পুনরাবৃত্তি, অসঙ্গতি, কনকারেন্সি জটিলতা এবং বিচ্ছিন্নতা দূর করে।
মূল বিষয় 2
ANSI/SPARC তিন-স্তর বিশিষ্ট আর্কিটেকচারে এক্সটার্নাল (ভিউ), কনসেপচুয়াল (লজিক্যাল) এবং ইন্টারনাল (ফিজিক্যাল) স্তর থাকে।
মূল বিষয় 3
ফিজিক্যাল ডেটা স্বাধীনতা স্টোরেজ পরিবর্তনের স্বাধীনতা দেয়; লজিক্যাল ডেটা স্বাধীনতা ভিউ না ভেঙে স্কিমা পরিবর্তনের স্বাধীনতা দেয়।
মূল বিষয় 4
ER মডেলে শক্তিশালী সত্তা একক আয়তক্ষেত্র, দুর্বল সত্তা দ্বৈত আয়তক্ষেত্র এবং বহুমানবিশিষ্ট অ্যাট্রিবিউট দ্বৈত উপবৃত্ত দ্বারা চিহ্নিত হয়।
মূল বিষয় 5
ডিগ্রি হলো একটি রিলেশনের কলাম বা অ্যাট্রিবিউট সংখ্যা; কার্ডিনালিটি হলো মোট সারি বা টাপল সংখ্যা।
মূল বিষয় 6
এনটিটি ইন্টিগ্রিটি অনুযায়ী প্রাইমারি কি কখনো NULL হতে পারে না। রেফারেন্সিয়াল ইন্টিগ্রিটি অনুযায়ী ফরেন কি প্যারেন্ট টেবিলের প্রাইমারি কি নির্দেশ করবে বা NULL হবে।
মূল বিষয় 7
রিলেশনাল অ্যালজেব্রার পাঁচটি মৌলিক অপারেটর হলো সিলেকশন (σ), প্রোজেকশন (Π), কার্টেসিয়ান গুণ (×), ইউনিয়ন (∪) এবং সেট ডিফারেন্স (-)।
মূল বিষয় 8
1NF পরমাণু মান নিশ্চিত করে, 2NF আংশিক নির্ভরতা বর্জন করে, 3NF ট্রানজিটিভ নির্ভরতা বর্জন করে এবং BCNF-এ সকল নির্ধারক সুপার কি হয়।
মূল বিষয় 9
SQL-এর চারটি মূল উপভাষা হলো DDL (কাঠামো), DML (ডেটা পরিচালনা), DCL (অধিকার প্রদান) এবং TCL (লেনদেন নিয়ন্ত্রণ)।
মূল বিষয় 10
ACID ধর্মাবলি হলো Atomicity (রিকভারি ম্যানেজার), Consistency (অ্যাপ্লিকেশন + নিয়ম), Isolation (কনকারেন্সি কন্ট্রোল / 2PL) এবং Durability (রেডু লগ)।

স্ব-মূল্যায়ন অনুশীলন (Check Your Understanding)

মূল ধারণাগত স্পষ্টতা যাচাই করার জন্য অনুশীলন প্রশ্ন। উত্তর দেখার আগে নিজে সমাধান করার চেষ্টা করো।

1
ফিজিক্যাল ডেটা স্বাধীনতা এবং লজিক্যাল ডেটা স্বাধীনতার মধ্যে মূল পার্থক্য কী? কোনটি অর্জন করা অপেক্ষাকৃত কঠিন?
উত্তর ও ব্যাখ্যা দেখুন
উত্তর: ফিজিক্যাল ডেটা স্বাধীনতা হলো কনসেপচুয়াল স্কিমা পরিবর্তন না করে ইন্টারনাল বা স্টোরেজ স্কিমা পরিবর্তনের ক্ষমতা। লজিক্যাল ডেটা স্বাধীনতা হলো ব্যবহারকারীর ভিউ বা প্রোগ্রাম পরিবর্তন না করে কনসেপচুয়াল স্কিমা পরিবর্তনের ক্ষমতা। লজিক্যাল ডেটা স্বাধীনতা অর্জন করা অনেক বেশি কঠিন কারণ অ্যাপ্লিকেশন কোড ডেটার যৌক্তিক কাঠামোর সাথে নিবিড়ভাবে জড়িত থাকে।
হার্ডডিস্ক স্টোরেজ পরিবর্তন বনাম টেবিলের কলাম পরিবর্তনের কথা ভাবুন।
2
যদি একটি রিলেশন R-এর ডিগ্রি ৪ ও কার্ডিনালিটি ১০০ হয় এবং অপর রিলেশন S-এর ডিগ্রি ৩ ও কার্ডিনালিটি ৫০ হয়, তবে R × S এর ডিগ্রি ও কার্ডিনালিটি কত হবে?
উত্তর ও ব্যাখ্যা দেখুন
উত্তর: Degree(R × S) = Degree(R) + Degree(S) = ৪ + ৩ = ৭। Cardinality(R × S) = Cardinality(R) × Cardinality(S) = ১০০ × ৫০ = ৫,০০০।
ডিগ্রি যোগ হয়, কার্ডিনালিটি গুণ হয়।
3
BCNF কেন 3NF-এর চেয়ে বেশি শক্তিশালী? কোন শর্তে একটি 3NF টেবিল নিশ্চিতভাবে BCNF-এ থাকবে?
উত্তর ও ব্যাখ্যা দেখুন
উত্তর: 3NF-এ অ-তুচ্ছ ফাংশনাল ডিপেন্ডেন্সি X -> Y এর ক্ষেত্রে যদি Y প্রাইম অ্যাট্রিবিউট হয়, তবে X সুপার কি না হলেও চলে। BCNF এই ছাড় পুরোপুরি বাতিল করে এবং নির্দেশ দেয় যে প্রতিটি অ-তুচ্ছ নির্ভরতায় X অবশ্যই একটি সুপার কি হতে হবে। যদি কোনো টেবিলে একাধিক ওভারল্যাপিং ক্যান্ডিডেট কি না থাকে, তবে 3NF টেবিলটি নিশ্চিতভাবে BCNF-এ থাকে।
ডানপক্ষে প্রাইম অ্যাট্রিবিউট থাকার ছাড় 3NF দেয়, কিন্তু BCNF দেয় না।
4
কুয়েরিটি কেন ভুল তা ব্যাখ্যা করে সঠিক রূপ লিখুন: 'SELECT Dept_ID, AVG(Salary) FROM EMPLOYEE WHERE AVG(Salary) > 40000 GROUP BY Dept_ID;'
উত্তর ও ব্যাখ্যা দেখুন
উত্তর: WHERE ক্লজ একক সারি ফিল্টার করে, তাই এতে AVG(Salary)-এর মতো গ্রুপ অ্যাগ্রিগেট ফাংশন দেওয়া অবৈধ। সঠিক কুয়েরি হবে HAVING ক্লজ দিয়ে: 'SELECT Dept_ID, AVG(Salary) FROM EMPLOYEE GROUP BY Dept_ID HAVING AVG(Salary) > 40000;'।
WHERE ক্লজ গ্রুপ তৈরির আগে বসে, তাই এতে Aggregate ফাংশন বসানো যায় না।
5
টু-ফেজ লকিং (2PL) প্রোটোকল কী? এটি কীভাবে কনকারেন্সি ত্রুটি প্রতিরোধ করে?
উত্তর ও ব্যাখ্যা দেখুন
উত্তর: 2PL প্রোটোকল নিশ্চিত করে যে প্রতিটি ট্রানজ্যাকশন দুটি দশায় কাজ করবে: ক্রমবর্ধমান দশায় লক নেবে কিন্তু কোনো লক ছাড়বে না, এবং সংকোচনশীল দশায় লক ছাড়বে কিন্তু নতুন কোনো লক নিতে পারবে না। এটি সিরিয়ালাইজেবিলিটি নিশ্চিত করে ডার্টি রিড ও লস্ট আপডেটের মতো ত্রুটি প্রতিরোধ করে।
ক্রমবর্ধমান দশায় লক নেওয়া এবং সংকোচনশীল দশায় লক ছাড়া।
অধ্যায় পড়া শেষ হয়েছে?
অনুশীলন শুরু করো

অনলাইন মক টেস্ট দিয়ে প্রস্তুতি যাচাই করো

পশ্চিমবঙ্গ মধ্যশিক্ষা পর্ষদ (WBBSE) পাঠ্যক্রম অনুযায়ী বহু বিকল্পীয় প্রশ্ন (MCQ) সমাধান করো। তাৎক্ষণিক ফলাফল, সঠিক ব্যাখ্যা এবং নিজের স্কোর জেনে নাও।

AI সহায়ক

তাত্ক্ষণিক সমাধান

Database Management System (DBMS) (ডেটাবেস ম্যানেজমেন্ট সিস্টেম) অধ্যায়ে কোনো প্রশ্ন বা সন্দেহ আছে? আমাদের AI শিক্ষক থেকে সহজ সমাধান ও ব্যাখ্যা নিন।

STAY UPDATED

Get the Latest Updates

New test series, syllabus updates, exam notifications and more.

Syllabus
Updates
Exam
Alerts
Study
Resources