Lesson – 18

আমার এই লেসনে Normalization & Anomaly সম্পর্কে পড়বো ।

Normalization কাকে বলে ? এর বিভিন্ন ধাপগুলির বর্ণনা কর ।

Database এর রিলেশনে ডেটার পুনরাবৃত্তি (Redundancy) কম করানর জন্য টেবিল/রিলেশন কে একাধিক ছোট ছোট টেবিলে বা রিলেশনে ভাঙ্গার পদ্ধতি কে Normalization বলে ।

Normalization এর মাধ্যমে আমরা একটি রেকর্ড Structure (Table) কে আরো সহজ এবং বাস্তব অন্য আর একটি রেকর্ড Structure এ পরিনত করা যায় । Normalization এর মুল লক্ষ হল ডেটার পুনরাবৃত্তি (Redundancy) কম করান ।

এর বিভন্ন ধাপগুলি হল

1st Normal Form,

 2nd  Normal Form,

3rd  Normal Form, বা(Boyce-Codd Normal Form(BCNF))

4th Normal Form,

5th  Normal Form  বা (Project-Join Normal form(PJNF))

এবং Domain Key Normal Form ।

Normalization এর বিভিন্ন ধাপের বর্ণনা

Normalization এর বিভিন্ন ধাপ বোঝার জন্য প্রথেমে একটি রিলেশন নেব যেখানে Unnormalized ডেটা থাকবে ।

ধরি- কোন বিশ্ববিদ্যালয়ে কোনো বিভাগে একাধিক কোর্স পড়ান হয় এবং ছাত্ররা বিভিন্ন কোর্সে ভর্তি হতে পারে ।

যেমন _ Student_Course(Roll_No, Dept_Code, HOD_Code, Course_Code, Curse_Name)

1st Normal Form(1NF): কোনো টেবিল 1NF এ থাকবে, যখন সেই টেবিলে কোনো কলাম বা ফিল্ডের পুনরাবৃত্তি  হবে না । এই ধরনের ফিল্ডকে এক্ষেত্রে আলাদা টেবিলে সরাতে হবে ।

যেমন- এই জন ছাত্র একসাথে একাধিক কোর্স পড়তে পারে তাই Student_Course টেবিলে তাদের রেকর্ড রাখা যাবেনা তাই Student_Course  টেবিলটিকে দুটি আলাদা টেবিলে ভাগ করতে হবে ।

Student(Roll_No, Dept_Code, HOD_Code) এবং  Study(Roll_No, Course_Code, Course_Name)

2nd Normal Form(2NF):

কোনো টেবিল 2NF এ থাকবে, যখন সেই টেবিলে কোনো কম্পউন্ড কী থাকবেনা । আর পরীক্ষা করতে হবে যে টেবিলের প্রতিটি রেকর্ড প্রতিটি ফিল্ডের উপর নির্ভরশীল কিনা । যদি না হয় তাহলে সেই ফিল্ড ও তা কী কে আলাদা টেবিলে সারাতে হবে ।

যেমন- Study(Roll_No, Course_Code, Course_Name) টেবিলে Compound Key হল Roll_No এবং Course_Code । কারন এখানে Course_Name শুধু মাত্র Course_Code এর উপর নির্ভরশীল Roll_No এর ওপর নয় আবার Roll_No Course_Code এর  উপর নির্ভরশীল । তাই এদেরকে আলাদা টেবিলে সরাতে হবে । তাহলে টেবিল গুলি হবে-

Student(Roll_No, Dept_Code, HOD_Code) Study(Roll_No, Course_Code)  এবং Course(Course_Code, Course_Name)

3rd  Normal Form(3NF) :

কোনো টেবিল 3NF এ থাকবে, যখন সেই টেবিলে কোনো রেকর্ডের NON-KEY আইটেমগুলি পরস্পরের উপর নির্ভরশীল কিনা । যদি নির্ভরশীল হয় তাহলে তাদের আলাদা টেবিলে সারাতে হবে ।

যেমন- Student টেবিলের Dept_Code এবং HOD_Code পরস্পরের উপর নির্ভরশীল কারন কোনো ডিপার্টমেন্টে একজনই প্রধান হতে পারে । তাই এই ফিল্ড দুটি নিয়ে আলাদ টেবিল তৈরি করতে হবে ।

Student(Roll_No, Dept_Code)

Dept(Dept_Code, HOD_Code)

Study(Roll_No, course_Code)

Course(Course_Code, Course_Name)

এখানে ডেটা সম্পূর্ণ ভাবে Normalized করা হল কারন উপরের টেবিলগুলির কোথাও ডেটার পুনরাবৃত্তি হবে না ।

Anomaly কাকে বলে ? কত প্রকার ও কী কী ? বার্ণনা দাও ।

: কোনো রিলেশনে বা টেবিলে রেকর্ড প্রতিস্থাপন(Insert), মেটান(Delete) বা আপডেট(Update) করার অসুবিধা কে Anomaly বলে ।

Anomaly সাধারনত তিন প্রকার – •ইনসারশন অ্যানোমালি(Insertion Anomaly) •ডিলিশন অ্যানোমালি(Deletion Anomaly) •আপডেট অ্যানোমালি(Update Anomaly) •

ইনসারশন অ্যানোমালি (Insertion Anomaly): কোনো রিলেশনে বা টেবিলে রেকর্ড প্রতিস্থাপন করার অসুবিধা কে Anomaly বলে ।

ডিলিশন অ্যানোমালি (Deletion Anomaly): কোনো রিলেশনে বা টেবিলে রেকর্ড প্রতিস্থাপন করার অসুবিধা কে Anomaly বলে ।

আপডেট অ্যানোমালি (Update Anomaly): কোনো রিলেশনে বা টেবিলে রেকর্ড প্রতিস্থাপন করার অসুবিধা কে Anomaly বলে ।