Database Management SystemsNormalization
Database Keys এবং Normalization: 1NF, 2NF, 3NF ও BCNF
পড়তে প্রায় ১২ মিনিটসংস্করণ ১সর্বশেষ আপডেট: ২১ অক্টোবর, ২০২৬১৩টি অনুশীলন প্রশ্ন
সংক্ষেপে মনে রাখুন
দ্রুত রিভিশনের জন্য মূল কথা
মূল কথা
- Super Key, Candidate Key, Primary Key ও Prime Attribute চিহ্নিত করা
- 1NF, 2NF, 3NF ও BCNF-এর শর্ত এবং কোনটি কোন dependency দূর করে তা বলা
- Insertion, Updation ও Deletion anomaly কেন ঘটে তা ব্যাখ্যা করা
সূত্র ও নিয়ম
1NF: Atomic attributes (no repeating groups). 2NF: 1NF + No Partial Dependency. 3NF: 2NF + No Transitive Dependency (For X -> Y, X is SuperKey OR Y is Prime). BCNF: For EVERY X -> Y, X MUST be a SuperKey.
নরমালাইজেশন ধাপ মনে রাখার ফিল্টার ফর্মুলা: - 1NF: টেবিলে কোনো মাল্টি-ভ্যালুড বা কম্পোজিট অ্যাট্রিবিউট থাকতে পা…
যেখানে ভুল হয়
3NF-এ X -> Y হলে Y প্রাইম অ্যাট্রিবিউট হলেও চলে, কিন্তু BCNF-এ Y প্রাইম হোক বা না হোক, বামপাশের X-কে অবশ্যই Super Key হতে হবে। তাই সব BCNF রিলেশন 3NF, কিন্তু সব 3NF রিলেশন BCNF নয়।
Database Keys একনজরে
- Super Key: এক বা একাধিক অ্যাট্রিবিউটের সেট যা একটি টেবিলের প্রতিটি রো-কে অনন্যভাবে (uniquely) শনাক্ত করতে পারে।
- Candidate Key: ন্যূনতম (Minimal) Super Key—যার কোনো প্রকৃত উপসেট (proper subset) একা Super Key হতে পারে না।
- Primary Key: Candidate Key-গুলোর মধ্য থেকে ডেটাবেস ডিজাইনার যেটিকে প্রধান শনাক্তকারী হিসেবে বেছে নেন। এটি কখনোই NULL হতে পারে না।
- Alternate Key: Primary Key ছাড়া বাকি সব Candidate Key।
- Foreign Key: একটি টেবিলের অ্যাট্রিবিউট যা অন্য (বা একই) টেবিলের Primary Key-কে রেফার করে Referential Integrity বজায় রাখে।
- Prime Attribute: যেকোনো Candidate Key-এর অন্তর্ভুক্ত অ্যাট্রিবিউট।
Normalization-এর ধাপসমূহ (1NF → BCNF)
Normalization-এর মূল উদ্দেশ্য হলো Data Redundancy (পুনরাবৃত্তি) কমানো এবং Insertion, Update ও Deletion Anomaly দূর করা।
- 1NF (First Normal Form): প্রতিটি সেলের মান Atomic (অবিভাজ্য) হতে হবে; কোনো multi-valued বা composite অ্যাট্রিবিউট থাকা যাবে না।
- 2NF (Second Normal Form): টেবিলটি 1NF-এ থাকতে হবে এবং কোনো Partial Dependency থাকা যাবে না। অর্থাৎ কোনো non-prime অ্যাট্রিবিউট কোনো Candidate Key-এর আংশিক অংশের (proper subset) ওপর নির্ভর করতে পারবে না।
- 3NF (Third Normal Form): টেবিলটি 2NF-এ থাকতে হবে এবং কোনো Transitive Dependency থাকা যাবে না। প্রতিটি functional dependency
X → Y-এর জন্য: হয়Xএকটি Super Key হবে, নতুবাYএকটি Prime Attribute হবে। - BCNF (Boyce-Codd Normal Form / 3.5NF): 3NF-এর চেয়েও কঠোর। প্রতিটি non-trivial dependency
X → Y-এর জন্য X অবশ্যই একটি Super Key হতে হবে।
code
মনে রাখার শর্টকাট:
1NF -> Atomic values (নো মাল্টিভ্যালু)
2NF -> No Partial Dependency (পুরো Key-র ওপর নির্ভরশীল)
3NF -> No Transitive Dependency (Non-key -> Non-key নিষিদ্ধ)
BCNF -> প্রতিটি Determinant (বাম পাশ) অবশ্যই Super Keyপরের ধাপ
এই টপিকে ৫টি প্রশ্ন অনুশীলন করুন
পড়া মনে আছে কি না, ছোট একটি সেটে দেখে নিন। প্রতিটি উত্তরের সাথে ব্যাখ্যা থাকবে, আর ভুল প্রশ্নগুলো রিভিশনের তালিকায় যাবে