ষষ্ঠ অধ্যায়: ডেটাবেজ ম্যানেজমেন্ট সিস্টেম
Back to ChaptersDatabase Management System (DBMS)
🗄️ ৬.১ ডেটা, ইনফরমেশন ও ডেটাবেজ
ডেটা (Data): অপ্রক্রিয়াজাত তথ্য বা কাঁচা ফ্যাক্ট। যেমন: ১৫, রহিম।
ইনফরমেশন (Information): প্রক্রিয়াজাত, অর্থপূর্ণ ডেটা। যেমন: "রহিমের বয়স ১৫ বছর"।
ডেটাবেজ: সুশৃঙ্খলভাবে সাজানো পরস্পর সম্পর্কিত ডেটার সমষ্টি।
DBMS: Database Management System — ডেটাবেজ তৈরি, সংরক্ষণ ও পরিচালনার সফটওয়্যার।
ইনফরমেশন (Information): প্রক্রিয়াজাত, অর্থপূর্ণ ডেটা। যেমন: "রহিমের বয়স ১৫ বছর"।
ডেটাবেজ: সুশৃঙ্খলভাবে সাজানো পরস্পর সম্পর্কিত ডেটার সমষ্টি।
DBMS: Database Management System — ডেটাবেজ তৈরি, সংরক্ষণ ও পরিচালনার সফটওয়্যার।
ডেটাবেজ সফটওয়্যারের উদাহরণ:
- Oracle — বড় প্রতিষ্ঠান ও কর্পোরেট
- MySQL — ওপেন সোর্স, ওয়েব অ্যাপ্লিকেশন
- MS Access — ছোট ডেটাবেজ, সহজ ব্যবহার
- SQLite — সার্ভারলেস, মোবাইল অ্যাপ
- MS SQL Server — মাইক্রোসফট এন্টারপ্রাইজ
📍 DBA (Database Administrator): ডেটাবেজের সার্বিক পরিচালনা, নিরাপত্তা ও
রক্ষণাবেক্ষণের দায়িত্বে থাকেন।
📊 ৬.২ ডেটাবেজ টেবিলের উপাদান
| উপাদান | বিবরণ | উদাহরণ |
|---|---|---|
| ফিল্ড (Field) / অ্যাট্রিবিউট / কলাম | একই ধরনের ডেটার উলম্ব কলাম | নাম, রোল, বয়স |
| রেকর্ড (Record) / টুপল / রো | একটি সত্তার সম্পূর্ণ তথ্যের সারি | রহিম, ০১, ১৫ |
| ভ্যালু (Value) | একটি নির্দিষ্ট ঘরের তথ্য | "রহিম" বা "০১" |
| Null Value | কোনো মান নেই বা অজানা (≠ শূন্য) | মোবাইল নম্বর না দেওয়া |
উদাহরণ — "student" টেবিল:
এখানে Roll হলো Primary Key কারণ প্রতিটি রোলের মান অদ্বিতীয়।
| Roll (PK) | Name | Class | Marks |
|---|---|---|---|
| 01 | রহিম | 12 | 85 |
| 02 | করিম | 12 | 92 |
| 03 | সুমন | 11 | 78 |
🔑 ৬.৩ কি (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 শুধু নির্দিষ্ট রেকর্ড মুছে।
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 = অধঃক্রম (বড় → ছোট)
ASC = ঊর্ধ্বক্রম (ছোট → বড়) — ডিফল্ট
DESC = অধঃক্রম (বড় → ছোট)
SELECT * FROM student ORDER BY marks DESC;
এটি মার্কস অনুসারে বড় থেকে ছোট ক্রমে দেখাবে।
🔒 ৬.৯ ডেটাবেজ নিরাপত্তা
| পদ্ধতি | বিবরণ |
|---|---|
| পাসওয়ার্ড ও অ্যাক্সেস কন্ট্রোল | অনুমোদিত ব্যবহারকারী ছাড়া অ্যাক্সেস বন্ধ |
| এনক্রিপশন (Encryption) | ডেটাকে সাংকেতিক ভাষায় (Cipher Text) রূপান্তর |
| ডিক্রিপশন (Decryption) | সাংকেতিক ভাষাকে মূল ডেটায় রূপান্তর |
| ব্যাকআপ (Backup) | ডেটার অনুলিপি সংরক্ষণ (ডেটা হারানো থেকে রক্ষা) |
| রিস্টোর (Restore) | ব্যাকআপ থেকে ডেটা পুনরুদ্ধার |
📂 ৬.১০ ডেটাবেজের ব্যবহার
- সরকারি: জাতীয় পরিচয়পত্র ডেটাবেজ, ভোটার তালিকা, জনশুমারি
- কর্পোরেট: পে-রোল সিস্টেম, কর্মচারী ব্যবস্থাপনা
- ব্যাংকিং: গ্রাহক তথ্য, লেনদেন হিসাব
- শিক্ষা: ছাত্রদের রেজাল্ট, ভর্তি তথ্য
- ই-কমার্স: পণ্যের তথ্য, অর্ডার ব্যবস্থাপনা
📍 ডেটা রিডান্ডেন্সি: একই ডেটা একাধিকবার সংরক্ষিত থাকাকে ডেটা রিডান্ডেন্সি বলে।
এটি স্টোরেজ অপচয় করে এবং ডেটার অসঙ্গতি সৃষ্টি করতে পারে। নরমালইজেশন এর মাধ্যমে
রিডান্ডেন্সি কমানো হয়।
📝 গুরুত্বপূর্ণ সংক্ষিপ্ত প্রশ্ন
- DBMS এর পূর্ণরূপ কী? — Database Management System।
- টেবিলের প্রতিটি সারিকে কী বলে? — রেকর্ড (Record) / টুপল।
- টেবিলের প্রতিটি কলামকে কী বলে? — ফিল্ড (Field) / অ্যাট্রিবিউট।
- Null Value কী? — কোনো মান নেই বা অজানা (শূন্য নয়)।
- SQL এর পূর্ণরূপ কী? — Structured Query Language।
- CREATE TABLE কোন ধরনের কমান্ড? — DDL।
- টেবিল মুছতে কোন কমান্ড? — DROP TABLE।
- একজন ব্যক্তি ও তার NID — কোন ধরনের রিলেশন? — One-to-One।
- ডেটা রিডান্ডেন্সি কমানোর পদ্ধতি কী? — নরমালইজেশন।
- এনক্রিপশন কী? — ডেটাকে সাংকেতিক ভাষায় রূপান্তর করা।