Sixth Normal Form (6NF) হলো ডাটাবেস নরমালাইজেশনের সর্বোচ্চ লেভেল। একটি রিলেশন 6NF-তে থাকবে যদি এবং কেবল যদি:
- সেটি 5NF (Fifth Normal Form)-এ থাকে, এবং
- রিলেশনের ওপর প্রতিটি Join Dependency (JD) ত্রিভিয়াল (Trivial) হয়।
অর্থাৎ, রিলেশন ভেরিয়েবলটি এর অপরিবর্তনীয় (Irreducible) কম্পোনেন্টে ডিকম্পোজ করা যায়। 6NF-এ প্রতিটি রিলেশন শুধু একটি ফ্যাক্ট (Fact) ধারণ করে — "One Fact Per Relation"।
উদাহরণ ১: Student টেবিল
মূল টেবিল (5NF-এ, কিন্তু 6NF-এ নয়):
| Enrollment_No | Name | Marks |
|---|
Join Dependencies (Non-trivial):
- {Enrollment_No, Marks}
- {Enrollment_No, Name}
6NF-এ ডিকম্পোজিশন:
StudentInformation
| Enrollment_No | Name |
|---|
ResultInformation
| Enrollment_No | Marks |
|---|
উদাহরণ ২: StudentMarks টেবিল
| Student_ID | Student_FirstName | Student_LastName | Marks |
|---|---|---|---|
| S01 | Tom | Alter | 90 |
| S02 | Jacob | Watson | 80 |
| S03 | Harry | Smith | 85 |
6NF-এ ডিকম্পোজিশন (প্রতিটি কলাম আলাদা টেবিল):
StudentFirstName
| Student_ID | Student_FirstName |
|---|---|
| S01 | Tom |
| S02 | Jacob |
| S03 | Harry |
StudentLastName
| Student_ID | Student_LastName |
|---|---|
| S01 | Alter |
| S02 | Watson |
| S03 | Smith |
StudentResult
| Student_ID | Marks |
|---|---|
| S01 | 90 |
| S02 | 80 |
| S03 | 85 |
বাস্তবতা এবং সমালোচনা
- অবাস্তব (Impractical): রিয়েল-ওয়ার্ল্ড অ্যাপ্লিকেশনে 6NF ব্যবহার করা প্রায় অসম্ভব — এক্সট্রিমলি নরমালাইজড হলে জয়েন কস্ট চরম সীমায় পৌঁছায়।
- টেম্পোরাল ডেটা (Temporal Data): 6NF মূলত টেম্পোরাল ডাটাবেস (Time-varying data) এর জন্য প্রাসঙ্গিক, যেখানে প্রতিটি ফ্যাক্টের একটি টাইমস্ট্র্যাম্প থাকে।
- Anchor Modeling / Data Vault: এই মেথডোলজি 6NF প্রিন্সিপল ব্যবহার করে।
- পারফরম্যান্স: OLTP-এ 6NF খারাপ, OLAP/Analytics-এ কখনও কখনও উপকারী।
নরমালাইজেশন লেভেল সারসংক্ষেপ
| NF | ফোকাস |
|---|---|
| 1NF | Atomic Values |
| 2NF | No Partial Dependency |
| 3NF | No Transitive Dependency |
| BCNF | Strict 3NF (Every Determinant is Candidate Key) |
| 4NF | No Multi-valued Dependency |
| 5NF | No Join Dependency (Reconstructible) |
| 6NF | Irreducible Components (One Fact Per Relation) |