📘

উত্তর

DBMS (Database Management System) ডাটাকে ফাইল আকারে স্টোর করে এবং টেবিলের মধ্যে রিলেশনশিপ মেইনটেইন করার দরকার হয় না। RDBMS (Relational DBMS) ডাটাকে টেবিল আকারে সাজায় এবং ফরেন কি (Foreign Key) ব্যবহার করে টেবিলগুলোর মধ্যে সম্পর্ক তৈরি করে। MySQL একটি RDBMS।

🏷️ Basics
📘

উত্তর

১. Primary Key কখনোই Null হতে পারে না, কিন্তু Unique Key একটি Null ভ্যালু নিতে পারে। ২. একটি টেবিলে শুধুমাত্র একটি Primary Key থাকতে পারে, কিন্তু একাধিক Unique Key থাকতে পারে। ৩. দুটিই ডুপ্লিকেট ডাটা এন্ট্রি হতে বাধা দেয়।

🏷️ Constraints
📘

উত্তর

১. DDL (Data Definition Language): টেবিল বা ডাটাবেসের স্ট্রাকচার তৈরি বা পরিবর্তন করে। যেমন: CREATE, ALTER, DROP। ২. DML (Data Manipulation Language): ডাটা নিয়ে কাজ করে। যেমন: SELECT, INSERT, UPDATE, DELETE। ৩. DCL (Data Control Language): ইউজার পারমিশন কন্ট্রোল করে। যেমন: GRANT, REVOKE।

🏷️ Commands
📘

উত্তর

JOIN ব্যবহার করে দুই বা ততোধিক টেবিলের কমন কলামের ওপর ভিত্তি করে ডাটা একত্রিত করা হয়। - INNER JOIN: উভয় টেবিলের ম্যাচিং ডাটা দেখায়। - LEFT JOIN: বাম টেবিলের সব এবং ডান টেবিলের ম্যাচিং ডাটা দেখায়। - RIGHT JOIN: ডান টেবিলের সব এবং বাম টেবিলের ম্যাচিং ডাটা দেখায়। - CROSS JOIN: উভয় টেবিলের কার্টিসিয়ান প্রোডাক্ট তৈরি করে।

🏷️ Joins
📘

উত্তর

Normalization হলো ডাটাবেস ডিজাইন করার একটি টেকনিক যা ডাটা রিডানডেন্সি (redundancy) বা ডুপ্লিকেশন কমায় এবং ডাটা ইন্টিগ্রিটি নিশ্চিত করে। এটি ডাটাবেসকে বিভিন্ন নরমাল ফর্মে (1NF, 2NF, 3NF) ভাগ করে টেবিলগুলোকে আরও দক্ষ করে তোলে।

🏷️ Database Design
📘

উত্তর

১. DELETE: নির্দিষ্ট রো মুছে ফেলে এবং এটি ROLLBACK করা যায়। ২. TRUNCATE: টেবিলের সব ডাটা মুছে ফেলে কিন্তু স্ট্রাকচার ঠিক রাখে। এটি DELETE এর চেয়ে দ্রুত এবং ROLLBACK করা কঠিন। ৩. DROP: টেবিলের ডাটা এবং স্ট্রাকচার উভয়ই পুরোপুরি মুছে ফেলে।

🏷️ Commands
📘

উত্তর

Index হলো একটি পারফরম্যান্স অপ্টিমাইজেশন টুল যা ডেটাবেস ইঞ্জিনকে খুব দ্রুত নির্দিষ্ট ডাটা খুঁজে পেতে সাহায্য করে। এটি অনেকটা বইয়ের সূচিপত্রের মতো কাজ করে, ফলে পুরো টেবিল স্ক্যান না করেই কুয়েরি রেজাল্ট পাওয়া যায়।

🏷️ Performance
📘

উত্তর

Aggregate functions অনেকগুলো ভ্যালুর ওপর ক্যালকুলেশন করে একটি সিঙ্গেল ভ্যালু রিটার্ন করে। উদাহরণ: - SUM(): যোগফল বের করে। - AVG(): গড় বের করে। - COUNT(): মোট রো সংখ্যা গুনে দেখে। - MAX/MIN(): সর্বোচ্চ বা সর্বনিম্ন মান বের করে।

🏷️ Functions
📘

উত্তর

WHERE ক্লজ ব্যবহার করা হয় সাধারণ রো ফিল্টার করার জন্য। অন্যদিকে, HAVING ক্লজ ব্যবহার করা হয় GROUP BY এর পর অ্যাগ্রিগেট ফাংশনের (যেমন SUM, COUNT) রেজাল্ট ফিল্টার করার জন্য। WHERE অ্যাগ্রিগেট ফাংশনের সাথে কাজ করতে পারে না।

🏷️ Query Clauses
📘

উত্তর

ট্রানজ্যাকশনের সঠিকতা নিশ্চিত করতে ACID প্রপার্টি ব্যবহৃত হয়: - Atomicity: কাজটির সবটুকু হবে অথবা কিছুই হবে না। - Consistency: ডাটাবেস সবসময় ভ্যালিড স্টেটে থাকবে। - Isolation: একটি ট্রানজ্যাকশন অন্যটির কাজে বাধা দিবে না। - Durability: কাজ শেষ হলে ডাটা স্থায়ীভাবে সেভ থাকবে।

🏷️ Transactions
📘

উত্তর

Stored Procedure হলো একগুচ্ছ SQL স্টেটমেন্ট যা ডাটাবেসে সেভ করে রাখা যায়। এটি বারবার কল করে ব্যবহার করা যায়, যা কোড রিইউজেবিলিটি বাড়ায় এবং নেটওয়ার্ক ট্রাফিক কমায়।

🏷️ Advanced Concepts
📘

উত্তর

Trigger হলো একটি স্বয়ংক্রিয় প্রোগ্রাম যা কোনো টেবিলে নির্দিষ্ট ইভেন্ট (যেমন: INSERT, UPDATE, DELETE) ঘটার সাথে সাথে এক্সিকিউট হয়। এটি সাধারণত ডাটা ভ্যালিডেশন বা লগ মেইনটেইন করতে ব্যবহৃত হয়।

🏷️ Advanced Concepts
📘

উত্তর

View হলো একটি ভার্চুয়াল টেবিল যা এক বা একাধিক টেবিলের কুয়েরি রেজাল্টের ওপর ভিত্তি করে তৈরি হয়। এটি ফিজিক্যালি মেমোরি দখল করে না, শুধুমাত্র যখন কল করা হয় তখন কুয়েরি রান করে ডাটা দেখায়।

🏷️ Objects
📘

উত্তর

প্রধান দুটি ইঞ্জিন হলো: ১. InnoDB: এটি ডিফল্ট ইঞ্জিন যা ট্রানজ্যাকশন (ACID) এবং ফরেন কি সাপোর্ট করে। ২. MyISAM: এটি পুরনো ইঞ্জিন, ট্রানজ্যাকশন সাপোর্ট করে না কিন্তু রিড অপারেশনে খুব দ্রুত।

🏷️ Storage Engines
📘

উত্তর

যখন একটি SQL কুয়েরির ভেতরে অন্য একটি কুয়েরি ব্যবহার করা হয়, তখন তাকে Subquery বা Nested Query বলা হয়। এটি সাধারণত WHERE ক্লজে ডাটা ফিল্টার করতে ব্যবহৃত হয়।

🏷️ Queries
📘

উত্তর

NULL মানে হলো ভ্যালু নেই বা অজানা। এটি চেক করার জন্য `=` ব্যবহার করা যায় না, বরং `IS NULL` বা `IS NOT NULL` ব্যবহার করতে হয়। এছাড়াও `IFNULL()` বা `COALESCE()` ফাংশন দিয়ে NULL ভ্যালু রিপ্লেস করা যায়।

🏷️ Data Handling
📘

উত্তর

যখন একটি টেবিলকে তার নিজের সাথেই জয়েন করা হয়, তাকে Self Join বলে। উদাহরণ: একটি 'Employees' টেবিলে যদি এমপ্লয়ি আইডি এবং ম্যানেজার আইডি থাকে, তবে কে কার আন্ডারে কাজ করে তা বের করতে Self Join ব্যবহার করা হয়।

🏷️ Joins
📘

উত্তর

Foreign Key হলো একটি কলাম যা অন্য একটি টেবিলের Primary Key-কে রেফার করে। এটি টেবিলগুলোর মধ্যে রিলেশনাল লিঙ্ক তৈরি করে এবং 'Referential Integrity' নিশ্চিত করে (যাতে ভুল ডাটা ডিলিট বা এন্ট্রি না হয়)।

🏷️ Constraints
📘

উত্তর

UNION দুই বা ততোধিক কুয়েরির রেজাল্টকে একত্রিত করে এবং ডুপ্লিকেট রোগুলো বাদ দেয়। আর UNION ALL ডুপ্লিকেট সহ সব রোগুলোই দেখায়, তাই এটি UNION এর চেয়ে দ্রুত কাজ করে।

🏷️ Operators
📘

উত্তর

CHAR একটি ফিক্সড লেংথ ডাটা টাইপ, অর্থাৎ এটি সবসময় নির্ধারিত জায়গা দখল করে। VARCHAR একটি ভ্যারিয়েবল লেংথ ডাটা টাইপ, এটি শুধুমাত্র ইনপুট করা ক্যারেক্টারের সমান জায়গা দখল করে। VARCHAR স্টোরেজ সেভ করতে সাহায্য করে।

🏷️ Data Types

🔒 কপিরাইট সুরক্ষিত কন্টেন্ট 🔒

কপি, স্ক্রিনশট, প্রিন্ট করা সম্পূর্ণ নিষিদ্ধ।