db_introduction

ডেটাবেজ কি?

ডেটাবেজ শব্দটি বিশ্লেষণ করলে দুইটি ইংরেজি শব্দ Data ও Base পাওয়া যায়, যার অর্থ যথাক্রমে উপাত্ত ও ঘাঁটি। তাহলে বলা যায়, Database হচ্ছে ডেটা বা উপাত্তের ঘাঁটি যেখানে অনেক পরিমান ডেটা সুন্দরভাবে সাজিয়ে রাখা হয়, যাতে পরে সহজে ডেটা খুঁজে পাওয়া, পরিবর্তন করা বা ব্যবহার করা যায়।

DBMS এর কাজ কি?

  • ডেটা সংরক্ষণ করা
  • ডেটা খোঁজা (Search)
  • ডেটা আপডেট করা
  • ডেটা মুছে ফেলা
  • ডেটা নিরাপদ রাখা

DBMS এর প্রয়োগক্ষেত্রঃ

  • স্কুল ও কলেজে শিক্ষার্থীর ভর্তি, ফলাফল ও উপস্থিতির তথ্য রাখতে।
  • ব্যাংকে গ্রাহকের হিসাব ও লেনদেনের তথ্য সংরক্ষণে।
  •  হাসপাতালে রোগীর তথ্য ও রিপোর্ট সংরক্ষণে।
  •  অফিসে কর্মচারীর তথ্য ও কাজের রেকর্ড ব্যবস্থাপনায়।
  • অনলাইন ওয়েবসাইট ও অ্যাপে ব্যবহারকারীর তথ্য সংরক্ষণ ও নিয়ন্ত্রণে। ইত্যাদি।

রিলেশনাল DBMS কি?

রিলেশনাল ডেটাবেজ হলো এমন ডেটাবেজ যেখানে তথ্য টেবিল (Table) আকারে রাখা হয় এবং একাধিক টেবিলের মধ্যে সম্পর্ক (Relation) থাকে।

রিলেশনাল DBMS এর সুবিধা কি?

  • ডেটা সাজানো থাকে
  • ভুল কম হয়
  • ডেটা নিরাপদ থাকে
  • বড় ডেটা সহজে ম্যানেজ করা যায়

টেবিল কি?

টেবিল হলো ডেটাবেজের মূল অংশ, যেখানে তথ্য সারি (Row) ও কলাম (Column) আকারে থাকে।

  • Row (Record): একটি সম্পূর্ণ তথ্য

  • Column (Field): একটি নির্দিষ্ট ধরনের তথ্য

প্রাইমারি কি (Primary Key) কি?

প্রাইমারি কি হলো এমন একটি ফিল্ড, যা দিয়ে একটি রেকর্ডকে আলাদা করে শনাক্ত করা যায়

ফরেন কি (Foreign Key) কি?

ফরেন কি হলো এমন একটি কি, যা এক টেবিলের সাথে আরেক টেবিলের সম্পর্ক তৈরি করে

 এস কিউ এল (SQL) কি?

ফরেন কি হলো এমন একটি কি, যা এক টেবিলের সাথে আরেক টেবিলের সম্পর্ক তৈরি করেSQL–এর কাজগুলোকে সহজভাবে দুই ভাগে ভাগ করা যায়—

  • DDL (Data Definition Language): ডেটাবেজ ও টেবিলের গঠন তৈরি বা পরিবর্তনের জন্য DDL ব্যবহার করা হয়। যেমন টেবিল তৈরি করা, পরিবর্তন করা বা মুছে ফেলা।

  • DML (Data Manipulation Language): টেবিলের ভেতরের তথ্য নিয়ে কাজ করার জন্য DML ব্যবহার করা হয়। যেমন নতুন তথ্য যোগ করা, থাকা তথ্য পরিবর্তন করা বা তথ্য মুছে ফেলা।

ডেটাবেজে ব্যবহৃত ডেটাটাইপসমূহঃ

ডাটা টাইপ ব্যবহার
INT পূর্ণসংখ্যা সংরক্ষণের জন্য ব্যবহৃত হয়
FLOAT দশমিক সংখ্যা সংরক্ষণের জন্য ব্যবহৃত হয়
DOUBLE বড় দশমিক সংখ্যা সংরক্ষণের জন্য ব্যবহৃত হয়
CHAR নির্দিষ্ট দৈর্ঘ্যের টেক্সট সংরক্ষণের জন্য ব্যবহৃত হয়
VARCHAR পরিবর্তনশীল দৈর্ঘ্যের টেক্সট সংরক্ষণের জন্য ব্যবহৃত হয়
TEXT দীর্ঘ লেখা সংরক্ষণের জন্য ব্যবহৃত হয়
DATE তারিখ সংরক্ষণের জন্য ব্যবহৃত হয়
TIME সময় সংরক্ষণের জন্য ব্যবহৃত হয়
DATETIME তারিখ ও সময় একসাথে সংরক্ষণের জন্য ব্যবহৃত হয়
BOOLEAN সত্য বা মিথ্যা মান সংরক্ষণের জন্য ব্যবহৃত হয়

ডেটাবেজের ভেতরে ডেটাগুলো টেবিল আকারে সাজানো থাকে। কিভাবে তা তৈরি ও ব্যবহার করে চলো দেখি। সহজে বোঝার জন্য উদাহরণ হিসেবে আমরা কলেজ শিক্ষার্থীদের ডেটাবেজ ব্যবহার করবো। নিচের টেবিলটি লক্ষ্য করো। আমরা ঠিক এমনই একটি টেবিল তৈরি করে দেখবো যেখানে roll, name, class, section, group_name এই পাঁচটি কলাম থাকবে।

Table Title Style

student

roll name class section group_name
1Rudra11AScience
2Habib12ACommerce
3Pappu11BArts
4Anik12BScience
5Priya11ACommerce

টেবিল তৈরীঃ

টেবিল তৈরি করার জন্য CREATE TABLE কমান্ড লেখার পর প্রথমা বন্ধনীর “( )” ভেতরে টেবিল কলামের নামগুলো ডেটাটাইপসহ পর্যায়ক্রমে লিখে দিতে হবে। সবশেষে সেমিকোলন লিখবো। নিচে আমরা সিনট্যাক্স দেখে নেই।

সিনট্যাক্সঃ

SQL Syntax Rule
CREATE TABLE [টেবিলের নাম] (
  [কলামের নাম] [ডেটাটাইপ],
  [কলামের নাম] [ডেটাটাইপ],
  [কলামের নাম] [ডেটাটাইপ]
);

উপরের সিনট্যাক্স অনুযায়ী কোড লিখলে টেবিলের শুধু কাঠামো তৈরি হবে। অর্থাৎ ডেটা বিহীন একটা টেবিল তৈরি হবে।

টেবিলে ডেটা প্রবেশঃ

তৈরী টেবিলের ভেতরে ডেটা প্রবেশের জন্য INSERT INTO কমান্ড লেখার পর যে টেবিলে ডেটা প্রবেশ করাতে হবে তার নাম লিখতে হবে। অতঃপর VALUES কমান্ডের পর প্রথমা বন্ধনীর ভেতরে ডেটাগুলোর মান পর্যায়ক্রমে কমা “,” ব্যবহার করে লিখে যাবো। সবশেষে সেমিকোলন লিখবো।

SQL Syntax Rule
INSERT INTO [টেবিলের নাম] VALUES
(ডেটা, ডেটা, ডেটা),
(ডেটা, ডেটা, ডেটা);

উপরের টেবিলটির কাঠামো তৈরি করতে আমাদের কোন DBMS -এ নিচের কোড লিখতে হবে।

SQL Syntax
CREATE TABLE student (
    roll INT PRIMARY KEY,
    name VARCHAR(50),
    class INT,
    section CHAR(1),
    group_name VARCHAR(15)
);

ব্যাখ্যাঃ

CREATE TABLE → নতুন টেবিল তৈরি করার জন্য

student → টেবিলের নাম

INT → পূর্ণসংখ্যা ডেটা টাইপ

VARCHAR → পরিবর্তনশীল দৈর্ঘ্যের টেক্সট ডেটা টাইপ

CHAR → নির্দিষ্ট দৈর্ঘ্যের টেক্সট ডেটা টাইপ

PRIMARY KEY → ইউনিক ও প্রধান শনাক্তকারী কলাম

টেবিলটির কাঠামো তৈরি করার পর সেখানে ডেটা প্রবেশ করানোর জন্য আমাদের নিচের কোড লিখতে হবে।

INSERT INTO student VALUES
(1, 'Rudra', 11, 'A', 'Science'),
(2, 'Habib', 12, 'A', 'Commerce'),
(3, 'Pappu', 11, 'B', 'Arts'),
(4, 'Anik', 12, 'B', 'Science'),
(5, 'Priya', 11, 'A', 'Commerce');
Table Title Style

contact

contact_id roll address mobile_no
1011Gopalganj01711111111
1022Narayanganj01822222222
1033Barisal01933333333
1044Dhaka01644444444
1055Khulna01555555555

CREATE TABLE contact (
    contact_id INT PRIMARY KEY,
    roll INT,
    address VARCHAR(50),
    mobile_no VARCHAR(15),
    FOREIGN KEY (roll) REFERENCES student(roll)
);
INSERT INTO contact VALUES
(101, 1, 'Gopalganj', '01711111111'),
(102, 2, 'Narayanganj', '01822222222'),
(103, 3, 'Barisal', '01933333333'),
(104, 4, 'Dhaka', '01644444444'),
(105, 5, 'Khulna', '01555555555');
Table Title Style

subject

subject_code subject_name group_name
101BanglaCommon
275ICTCommon
174PhysicsScience
253AccountingCommerce
109EconomicsCommerce
304HistoryArts

CREATE TABLE subject (
    subject_code INT PRIMARY KEY,
    subject_name VARCHAR(30),
    group_name VARCHAR(15)
);
INSERT INTO subject VALUES
(101, 'Bangla', 'Common'),
(275, 'ICT', 'Common'),
(174, 'Physics', 'Science'),
(253, 'Accounting', 'Commerce'),
(109, 'Economics', 'Commerce'),
(304, 'History', 'Arts');
Table Title Style

result

roll subject_code marks
127588
117482
110176
227578
225375
210972
327529
330465
310160
427531
417490
410170
527565
525384
510980
CREATE TABLE result (
    roll INT,
    subject_code INT,
    marks INT,
    PRIMARY KEY (roll, subject_code),
    FOREIGN KEY (roll) REFERENCES student(roll),
    FOREIGN KEY (subject_code) REFERENCES subject(subject_code)
);

INSERT INTO result VALUES
-- Roll 1 (Science)
(1, 275, 88),   -- ICT
(1, 174, 82),   -- Physics
(1, 101, 76),   -- Bangla

-- Roll 2 (Commerce)
(2, 275, 78),   -- ICT
(2, 253, 75),   -- Accounting
(2, 109, 72),   -- Economics

-- Roll 3 (Arts)
(3, 275, 29),   -- ICT (Fail)
(3, 304, 65),   -- History
(3, 101, 60),   -- Bangla

-- Roll 4 (Science)
(4, 275, 31),   -- ICT (Fail)
(4, 174, 90),   -- Physics
(4, 101, 70),   -- Bangla

-- Roll 5 (Commerce)
(5, 275, 65),   -- ICT
(5, 253, 84),   -- Accounting
(5, 109, 80);   -- Economics