মূল কনটেন্টে যান

সূত্র, নিয়ম ও ফ্ল্যাশ কার্ড

দ্রুত রিভিশনের জন্য সূত্র, সাধারণ ভুল আর ফ্ল্যাশ কার্ড, এক জায়গায়।

৬টি সূত্র ও নিয়ম

ডেটাবেস (DBMS)

নরমালাইজেশনের ধারাবাহিক ধাপ ও মূল শর্তসমূহ (1NF থেকে BCNF)

Database Normalization Flow: 1NF -> 2NF -> 3NF -> BCNF Hierarchy

সূত্র

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: টেবিলে কোনো মাল্টি-ভ্যালুড বা কম্পোজিট অ্যাট্রিবিউট থাকতে পারবে না (প্রতিটি সেলে একটাই অ্যাটমিক মান)। - 2NF: 1NF হতে হবে + কোনো আংশিক নির্ভরতা (Partial Dependency) থাকা চলবে না। অর্থাৎ নন-প্রাইম অ্যাট্রিবিউট প্রাইমারি কি-এর কোনো অংশের ওপর নির্ভর করতে পারবে না। (শর্টকাট: প্রাইমারি কি সিঙ্গেল অ্যাট্রিবিউট হলে টেবিলটি 1NF হলে স্বয়ংক্রিয়ভাবে 2NF-এ থাকে!)। - 3NF: 2NF হতে হবে + ট্রানজিটিভ নির্ভরতা থাকা যাবে না। নিয়ম: X -> Y এর ক্ষেত্রে হয় X-কে Super Key হতে হবে, অথবা Y-কে Prime Attribute (ক্যান্ডিডেট কি-এর অংশ) হতে হবে। - BCNF: বয়সি-কড নরমাল ফর্ম (3NF-এর চেয়ে কঠোর)। যেকোনো নির্ভরতা X -> Y-এর জন্য X-কে নিশ্চিতভাবে Super Key হতেই হবে (ডানপাশে প্রাইম অ্যাট্রিবিউটের কোনো ছাড় নেই)।

ডেটাবেস (DBMS)

DELETE বনাম TRUNCATE বনাম DROP: পার্থক্য ও ট্র্যাপ ম্যাট্রিক্স

DELETE vs TRUNCATE vs DROP: Classification, Logging & Rollback Matrix

সূত্র

DELETE: DML command, row-by-row, WHERE clause allowed, fires triggers, can be Rolled Back. TRUNCATE: DDL command, deallocates data pages, resets identity counter, no triggers, faster, can rollback in transaction block. DROP: DDL command, deletes entire table structure, constraints and data completely.

নিয়ম ও সহজ উপায়

SQL ডেটা অপসারণের ত্রয়ী পার্থক্য টেবিল: ১. DELETE: - কমান্ডের ধরন: DML - শর্ত: WHERE ক্লজ দিয়ে নির্দিষ্ট সারি ডিলিট করা যায়। - লগিং: প্রতিটি সারির জন্য আলাদা লগ রাখে, তাই তুলনামূলক ধীরগতির। - ট্রিগার: DELETE ট্রিগার ফায়ার করে। - রোলব্যাক: ট্রানজ্যাকশনে ROLLBACK করা যায়। ২. TRUNCATE: - কমান্ডের ধরন: DDL - শর্ত: WHERE ক্লজ ব্যবহার করা যায় না (সম্পূর্ণ টেবিল একবারে ফাঁকা হয়)। - মেমোরি: ডেটা পেজগুলো সরাসরি deallocate করে, তাই অতি দ্রুতগতির। - অটো-ইনক্রিমেন্ট: IDENTITY / AUTO_INCREMENT কাউন্টারকে ১-এ রিসেট করে। - ট্রিগার: কোনো ট্রিগার ফায়ার করে না। টেবিল স্ট্রাকচার অবিকল থাকে। ৩. DROP: - কমান্ডের ধরন: DDL - কাজ: টেবিলের স্ট্রাকচার, ইনডেক্স, পারমিশন ও ডেটা সবকিছু ডাটাবেস থেকে চিরতরে মুছে ফেলে।

ডেটাবেস (DBMS)

SQL কোয়েরি এক্সিকিউশন অর্ডার এবং WHERE বনাম HAVING ফিল্টারিং পার্থক্য

SQL Execution Pipeline & WHERE vs HAVING Distinction

সূত্র

SQL Logical Execution Order: FROM -> JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT. WHERE filters rows BEFORE aggregation; HAVING filters groups AFTER aggregation.

নিয়ম ও সহজ উপায়

SQL স্টেটমেন্ট লেখার ক্রম আর ডাটাবেস ইঞ্জিনের এক্সিকিউট করার ক্রম এক নয়! - এক্সিকিউশন ক্রম: ১. FROM & JOIN -> ২. WHERE -> ৩. GROUP BY -> ৪. HAVING -> ৫. SELECT -> ৬. DISTINCT -> ৭. ORDER BY -> ৮. LIMIT। - WHERE vs HAVING: * WHERE: গ্রুপ তৈরির পূর্বে একক সারিগুলো ফিল্টার করে। এতে এগ্রিগেট ফাংশন (যেমন SUM, COUNT, AVG) ব্যবহার করা যায় না। * HAVING: GROUP BY দ্বারা গ্রুপ তৈরির পর সেই গ্রুপগুলোর ওপর ফিল্টার প্রয়োগ করে। এতে এগ্রিগেট ফাংশন ব্যবহার করা যায়।

ডেটাবেস (DBMS)

ACID বৈশিষ্ট্যের ৪টি মূল নীতি এবং বাস্তবায়নকারী টেকনিক

ACID Properties Triad: Transaction Guarantees & Implementation Mechanisms

সূত্র

A (Atomicity): All-or-nothing (Undo Log / Rollback). C (Consistency): Preserves database invariants (Integrity constraints). I (Isolation): Intermediate states hidden from concurrent transactions (2PL / Locking / MVCC). D (Durability): Committed updates persist across crashes (Redo Log / WAL).

নিয়ম ও সহজ উপায়

ডাটাবেস ট্রানজ্যাকশনের নির্ভরযোগ্যতার ৪ স্তম্ভ (ACID): - Atomicity (পরমাণুতা): ট্রানজ্যাকশনের সব অপারেশন সফল হবে অথবা কোনোটিই হবে না। ব্যাঙ্ক ট্রানজ্যাকশনে টাকা কেটে গেলে প্রাপকের একাউন্টে জমা হতেই হবে, ব্যর্থ হলে সম্পূর্ণ টাকা ফেরত আসবে। (বাস্তবায়ন: Undo Log)। - Consistency (সঙ্গতি): ট্রানজ্যাকশন শেষে ডাটাবেসের মোট ব্যালেন্স ও ইন্টিগ্রিটি কনস্ট্রেইন্ট অপরিবর্তিত থাকবে। - Isolation (বিচ্ছিন্নতা): একই সাথে একাধিক ট্রানজ্যাকশন চললেও তারা একে অপরের অসম্পূর্ণ তথ্য দেখতে পাবে না। (বাস্তবায়ন: Two-Phase Locking - 2PL, MVCC)। - Durability (স্থায়িত্ব): একবার COMMIT হয়ে গেলে বিদ্যুৎ চলে গেলেও বা সিস্টেম ক্র্যাশ করলেও ডেটা হারাবে না। (বাস্তবায়ন: Write-Ahead Logging - WAL, Redo Log)।

ডেটাবেস (DBMS)

অ্যাট্রিবিউট ক্লোজার ও ক্যান্ডিডেট কি বের করার দ্রুত শর্টকাট কৌশল

Candidate Key Finding Shortcut via Right-Hand Side (RHS) Exclusion

সূত্র

Candidate Key Shortcut: Attributes that NEVER appear on the Right-Hand Side (RHS) of any Functional Dependency MUST be part of EVERY candidate key! Attributes on RHS only can NEVER be part of minimal key.

নিয়ম ও সহজ উপায়

ক্যান্ডিডেট কি বের করার বিদ্যুৎগতির শর্টকাট: ১. প্রদত্ত সব Functional Dependency (FD)-এর ডানপাশ (RHS) লক্ষ্য করুন। ২. যে অ্যাট্রিবিউটগুলো কখনোই কোনো FD-এর ডানপাশে আসেনি, তারা নিশ্চিতভাবে প্রতিটি ক্যান্ডিডেট কি-এর আবশ্যিক সদস্য হবে (কারণ অন্য কেউ তাদের নির্ধারণ করতে পারে না)। ৩. এই অপরিহার্য অ্যাট্রিবিউটগুলোর ক্লোজার (X)+ বের করুন। যদি ক্লোজারে রিলেশনের সব অ্যাট্রিবিউট চলে আসে, তবে সেটিই একমাত্র ক্যান্ডিডেট কি! ৪. যদি সব না আসে, তবে অন্য অ্যাট্রিবিউটগুলোর সাথে কম্বিনেশন তৈরি করে ক্লোজার পরীক্ষা করুন। বি.দ্র.: যে অ্যাট্রিবিউটগুলো শুধু ডানপাশে আছে কিন্তু কখনো বামপাশে আসেনি, তারা কখনো কোনো মিনিমাল ক্যান্ডিডেট কি-এর অংশ হতে পারে না।

ডেটাবেস (DBMS)

রিলেশনাল ডিভিশন অপারেটর: "প্রত্যেক / সবগুলো" কোয়েরি সমাধান কৌশল

Relational Division Operator (R ÷ S): The "Universal / FOR ALL" Query Solver

সূত্র

Relational Division: R(A, B) ÷ S(B) yields tuples in A that are associated with EVERY tuple in S. Algebraic Definition: R ÷ S = π_A(R) - π_A((π_A(R) × S) - R).

নিয়ম ও সহজ উপায়

রিলেশনাল অ্যালজেবরায় যখনই কোনো প্রশ্নে "সবগুলো" বা "প্রত্যেকটি" (FOR ALL / EVERY) সংক্রান্ত শর্ত থাকে, তখনই Division (÷) অপারেটর ব্যবহৃত হয়। - উদাহরণ: "সেই সব শিক্ষার্থীদের রোল বের করো যারা CSE ডিপার্টমেন্টের সকল কোর্স (ALL courses) সম্পন্ন করেছে।" - যদি R(Student, Course) হয় এবং S(Course) হয় CSE-এর সব কোর্স, তবে কাঙ্ক্ষিত উত্তর হবে R ÷ S। - সহজ কথায়: R-এর এমন Student যাদের Course লিস্টের মধ্যে S-এর সব উপাদান বিদ্যমান।