ষষ্ঠ অধ্যায়: ডেটাবেজ ম্যানেজমেন্ট সিস্টেম

Back to Chapters

Database Management System (DBMS)

🗄️ ৬.১ ডেটা, ইনফরমেশন ও ডেটাবেজ

ডেটা (Data): অপ্রক্রিয়াজাত তথ্য বা কাঁচা ফ্যাক্ট। যেমন: ১৫, রহিম।
ইনফরমেশন (Information): প্রক্রিয়াজাত, অর্থপূর্ণ ডেটা। যেমন: "রহিমের বয়স ১৫ বছর"।
ডেটাবেজ: সুশৃঙ্খলভাবে সাজানো পরস্পর সম্পর্কিত ডেটার সমষ্টি।
DBMS: Database Management System — ডেটাবেজ তৈরি, সংরক্ষণ ও পরিচালনার সফটওয়্যার।

ডেটাবেজ সফটওয়্যারের উদাহরণ:

  • Oracle — বড় প্রতিষ্ঠান ও কর্পোরেট
  • MySQL — ওপেন সোর্স, ওয়েব অ্যাপ্লিকেশন
  • MS Access — ছোট ডেটাবেজ, সহজ ব্যবহার
  • SQLite — সার্ভারলেস, মোবাইল অ্যাপ
  • MS SQL Server — মাইক্রোসফট এন্টারপ্রাইজ
📍 DBA (Database Administrator): ডেটাবেজের সার্বিক পরিচালনা, নিরাপত্তা ও রক্ষণাবেক্ষণের দায়িত্বে থাকেন।

📊 ৬.২ ডেটাবেজ টেবিলের উপাদান

উপাদান বিবরণ উদাহরণ
ফিল্ড (Field) / অ্যাট্রিবিউট / কলাম একই ধরনের ডেটার উলম্ব কলাম নাম, রোল, বয়স
রেকর্ড (Record) / টুপল / রো একটি সত্তার সম্পূর্ণ তথ্যের সারি রহিম, ০১, ১৫
ভ্যালু (Value) একটি নির্দিষ্ট ঘরের তথ্য "রহিম" বা "০১"
Null Value কোনো মান নেই বা অজানা (≠ শূন্য) মোবাইল নম্বর না দেওয়া
উদাহরণ — "student" টেবিল:
Roll (PK) Name Class Marks
01 রহিম 12 85
02 করিম 12 92
03 সুমন 11 78
এখানে Roll হলো Primary Key কারণ প্রতিটি রোলের মান অদ্বিতীয়।

🔑 ৬.৩ কি (Key) এর প্রকারভেদ

কি (Key) বিবরণ
প্রাইমারি কি (Primary Key) যে ফিল্ড প্রতিটি রেকর্ডকে অদ্বিতীয়ভাবে শনাক্ত করে। Null/Duplicate হতে পারে না।
ফরেন কি (Foreign Key) এক টেবিলের প্রাইমারি কি যখন অন্য টেবিলে ব্যবহৃত হয়। টেবিলের মধ্যে সম্পর্ক তৈরি করে।
কম্পোজিট কি (Composite Key) একাধিক ফিল্ড মিলে যে প্রাইমারি কি গঠিত হয়।
ক্যান্ডিডেট কি প্রাইমারি কি হওয়ার যোগ্য সকল ফিল্ড।
📍 প্রাইমারি কি নির্বাচন: যে ফিল্ডের মান সবসময় অদ্বিতীয় তাকেই প্রাইমারি কি হিসেবে নির্বাচন করা উচিত। যেমন: রোল নম্বর, NID, ইমেইল। নাম বা বয়স ডুপ্লিকেট হতে পারে তাই এগুলো প্রাইমারি কি হিসেবে উপযুক্ত নয়।

🔗 ৬.৪ রিলেশন (Relation / Relationship)

সংজ্ঞা: দুই বা ততোধিক টেবিলের মধ্যে লজিক্যাল সম্পর্ককে রিলেশন বলে। RDBMS (Relational Database Management System) রিলেশনের উপর ভিত্তি করে কাজ করে।
রিলেশন বিবরণ বাস্তব উদাহরণ
One-to-One (1:1) এক রেকর্ড অন্য টেবিলের এক রেকর্ডের সাথে একজন ব্যক্তি → একটি NID
One-to-Many (1:M) এক রেকর্ড অন্য টেবিলের একাধিক রেকর্ডের সাথে একজন শিক্ষক → অনেক ক্লাস
Many-to-One (M:1) একাধিক রেকর্ড অন্য টেবিলের এক রেকর্ডের সাথে অনেক ছাত্র → এক শ্রেণি
Many-to-Many (M:M) একাধিক রেকর্ড একাধিকের সাথে ছাত্র ↔ বিষয় (একজন ছাত্র অনেক বিষয়, একটি বিষয়ে অনেক ছাত্র)

📝 ৬.৫ ডেটা টাইপ

ডেটা টাইপ বিবরণ উদাহরণ
INT / INTEGER পূর্ণসংখ্যা 10, 50, 100
FLOAT / DECIMAL দশমিক সংখ্যা 3.14, 85.5
CHAR(n) নির্দিষ্ট দৈর্ঘ্যের টেক্সট CHAR(10)
VARCHAR(n) পরিবর্তনশীল দৈর্ঘ্যের টেক্সট VARCHAR(50)
DATE তারিখ 2025-01-15
BOOLEAN True/False 1 বা 0
TEXT দীর্ঘ টেক্সট বিস্তারিত বিবরণ

💻 ৬.৬ SQL (Structured Query Language)

সংজ্ঞা: SQL (Structured Query Language) হলো রিলেশনাল ডেটাবেজ পরিচালনার জন্য ব্যবহৃত স্ট্যান্ডার্ড ভাষা। প্রতিটি SQL স্টেটমেন্ট সেমিকোলন (;) দিয়ে শেষ হয়।

SQL কমান্ডের শ্রেণিবিভাগ:

ক্যাটাগরি পূর্ণরূপ কমান্ড কাজ
DDL Data Definition Language CREATE, DROP, ALTER টেবিল কাঠামো তৈরি/মুছা/পরিবর্তন
DML Data Manipulation Language SELECT, INSERT, UPDATE, DELETE ডেটা দেখা/যোগ/পরিবর্তন/মুছা

🛠️ ৬.৭ গুরুত্বপূর্ণ SQL কমান্ড

১. টেবিল তৈরি (CREATE TABLE):

CREATE TABLE student ( roll INT PRIMARY KEY, name VARCHAR(50), class INT, marks FLOAT );

২. ডেটা ইনসার্ট (INSERT INTO):

INSERT INTO student (roll, name, class, marks) VALUES (01, 'রহিম', 12, 85);

৩. ডেটা দেখা (SELECT):

-- সব ডেটা দেখা SELECT * FROM student; -- নির্দিষ্ট কলাম দেখা SELECT name, marks FROM student; -- শর্ত সহ SELECT * FROM student WHERE class = 12; -- সাজিয়ে দেখা SELECT * FROM student ORDER BY marks DESC;

৪. ডেটা আপডেট (UPDATE):

UPDATE student SET marks = 90 WHERE roll = 01;

৫. ডেটা ডিলিট (DELETE):

DELETE FROM student WHERE roll = 03;

৬. টেবিল মুছা (DROP TABLE):

DROP TABLE student;

৭. টেবিল পরিবর্তন (ALTER TABLE):

-- নতুন কলাম যোগ ALTER TABLE student ADD phone VARCHAR(15); -- কলাম মুছা ALTER TABLE student DROP COLUMN phone;
📍 DDL vs DML:
DDL (CREATE, DROP, ALTER): টেবিলের কাঠামো (Structure) পরিবর্তন করে।
DML (SELECT, INSERT, UPDATE, DELETE): টেবিলের ভেতরের ডেটা পরিবর্তন করে।
DROP পুরো টেবিল মুছে দেয়, DELETE শুধু নির্দিষ্ট রেকর্ড মুছে।

🔍 ৬.৮ কুয়েরি ও ক্লজ

ক্লজ / অপারেটর কাজ উদাহরণ
WHERE শর্ত যুক্ত করা WHERE marks > 80
ORDER BY ডেটা সাজানো (ASC/DESC) ORDER BY name ASC
AND একাধিক শর্ত একসাথে সত্য WHERE class=12 AND marks>80
OR যেকোনো একটি শর্ত সত্য WHERE class=11 OR class=12
LIKE প্যাটার্ন ম্যাচিং WHERE name LIKE 'র%'
BETWEEN একটি পরিসরের মধ্যে WHERE marks BETWEEN 70 AND 90
Sorting উদাহরণ:
ASC = ঊর্ধ্বক্রম (ছোট → বড়) — ডিফল্ট
DESC = অধঃক্রম (বড় → ছোট)
SELECT * FROM student ORDER BY marks DESC;
এটি মার্কস অনুসারে বড় থেকে ছোট ক্রমে দেখাবে।

🔒 ৬.৯ ডেটাবেজ নিরাপত্তা

পদ্ধতি বিবরণ
পাসওয়ার্ড ও অ্যাক্সেস কন্ট্রোল অনুমোদিত ব্যবহারকারী ছাড়া অ্যাক্সেস বন্ধ
এনক্রিপশন (Encryption) ডেটাকে সাংকেতিক ভাষায় (Cipher Text) রূপান্তর
ডিক্রিপশন (Decryption) সাংকেতিক ভাষাকে মূল ডেটায় রূপান্তর
ব্যাকআপ (Backup) ডেটার অনুলিপি সংরক্ষণ (ডেটা হারানো থেকে রক্ষা)
রিস্টোর (Restore) ব্যাকআপ থেকে ডেটা পুনরুদ্ধার

📂 ৬.১০ ডেটাবেজের ব্যবহার

  • সরকারি: জাতীয় পরিচয়পত্র ডেটাবেজ, ভোটার তালিকা, জনশুমারি
  • কর্পোরেট: পে-রোল সিস্টেম, কর্মচারী ব্যবস্থাপনা
  • ব্যাংকিং: গ্রাহক তথ্য, লেনদেন হিসাব
  • শিক্ষা: ছাত্রদের রেজাল্ট, ভর্তি তথ্য
  • ই-কমার্স: পণ্যের তথ্য, অর্ডার ব্যবস্থাপনা
📍 ডেটা রিডান্ডেন্সি: একই ডেটা একাধিকবার সংরক্ষিত থাকাকে ডেটা রিডান্ডেন্সি বলে। এটি স্টোরেজ অপচয় করে এবং ডেটার অসঙ্গতি সৃষ্টি করতে পারে। নরমালইজেশন এর মাধ্যমে রিডান্ডেন্সি কমানো হয়।

📝 গুরুত্বপূর্ণ সংক্ষিপ্ত প্রশ্ন

  1. DBMS এর পূর্ণরূপ কী? — Database Management System।
  2. টেবিলের প্রতিটি সারিকে কী বলে? — রেকর্ড (Record) / টুপল।
  3. টেবিলের প্রতিটি কলামকে কী বলে? — ফিল্ড (Field) / অ্যাট্রিবিউট।
  4. Null Value কী? — কোনো মান নেই বা অজানা (শূন্য নয়)।
  5. SQL এর পূর্ণরূপ কী? — Structured Query Language।
  6. CREATE TABLE কোন ধরনের কমান্ড? — DDL।
  7. টেবিল মুছতে কোন কমান্ড? — DROP TABLE।
  8. একজন ব্যক্তি ও তার NID — কোন ধরনের রিলেশন? — One-to-One।
  9. ডেটা রিডান্ডেন্সি কমানোর পদ্ধতি কী? — নরমালইজেশন।
  10. এনক্রিপশন কী? — ডেটাকে সাংকেতিক ভাষায় রূপান্তর করা।
📋 MCQ অনুশীলন করুন