PostgreSQL একটি শক্তিশালী, ওপেন-সোর্স রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) যা SQL এবং JSON উভয়কেই সমর্থন করে। এটি ACID (Atomicity, Consistency, Isolation, Durability) কমপ্লায়েন্ট এবং বিস্তৃত ফিচার সমৃদ্ধ, যেমন:
- মাল্টি-ভার্সন কনকারেন্সি কন্ট্রোল (MVCC)
- কাস্টম ডেটা টাইপ
- অ্যাডভান্সড ইনডেক্সিং
- ফাংশন এবং ট্রিগার সাপোর্ট
📌 উদাহরণস্বরূপ, PostgreSQL ব্যবহার করে আপনি একটি অনলাইন শপিং ওয়েবসাইটের ইউজার, অর্ডার ও পেমেন্ট তথ্য নিরাপদে সংরক্ষণ ও ম্যানেজ করতে পারেন।
স্কিমা হলো ডেটাবেসের মধ্যে একটি লজিক্যাল স্ট্রাকচার বা গ্রুপ, যা টেবিল, ভিউ, ফাংশন ইত্যাদিকে সাজিয়ে রাখে। এটি মূলত নামস্পেস (namespace) হিসেবে কাজ করে।
উদ্দেশ্যগুলো হলো:
- একই ডেটাবেসে বিভিন্ন ইউজার বা অ্যাপ্লিকেশন আলাদা আলাদা স্কিমা ব্যবহার করে কনফ্লিক্ট এড়াতে পারে।
- টেবিল ও ফাংশনগুলোকে সংগঠিত রাখা সহজ হয়।
- পারমিশন নিয়ন্ত্রণ করা সহজ হয়।
📌 উদাহরণ: public স্কিমাতে ইউজার টেবিল রাখতে পারেন, আর admin স্কিমাতে রিপোর্টিং রিলেটেড টেবিল।
-
Primary Key হলো একটি টেবিলের এমন একটি কলাম বা কলামের সমষ্টি, যা প্রতিটি রেকর্ডকে ইউনিকভাবে চিহ্নিত করে। এটি কখনো null হতে পারে না।
-
Foreign Key হলো একটি টেবিলের এমন একটি কলাম, যা অন্য একটি টেবিলের Primary Key কে রেফার করে। এটি দুটি টেবিলের মধ্যে রিলেশন স্থাপন করে।
📌 উদাহরণ:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name TEXT
);
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(id)
);এখানে orders.user_id হলো Foreign Key যা users.id কে রেফার করছে।
-
CHAR(n): ফিক্সড-লেংথ স্ট্রিং টাইপ। এটি সবসময় n ক্যারেক্টারের জায়গা নিয়ে থাকে, এমনকি ইনপুট ছোট হলেও অতিরিক্ত জায়গা স্পেস দিয়ে পূরণ করে।
-
VARCHAR(n): ভ্যারিয়েবল-লেংথ স্ট্রিং। এটি যতটুকু দরকার, ততটুকু জায়গা নেয় এবং অতিরিক্ত স্পেস নেয় না।
📌 উদাহরণ:
name CHAR(10) -- 'Ali' = 'Ali '
name VARCHAR(10) -- 'Ali' = 'Ali'💡 সাধারণত VARCHAR ব্যবহার করা বেশি উপযুক্ত কারণ এটি স্পেস অপটিমাইজ করে।
JOIN অপারেশন ব্যবহার করে দুটি বা তার অধিক টেবিলের মধ্যে সম্পর্ক তৈরি করে কম্বাইন করে ডেটা রিটার্ন করা হয়। এটি তখন প্রয়োজন হয় যখন একাধিক টেবিলের সম্পর্কিত তথ্য একসাথে দরকার হয়।
JOIN-এর প্রকারভেদ:
INNER JOIN: শুধুমাত্র ম্যাচিং রেকর্ড রিটার্ন করেLEFT JOIN: বাম টেবিলের সব রেকর্ড এবং ডান টেবিলের ম্যাচিং রেকর্ডRIGHT JOIN: ডান টেবিলের সব রেকর্ড এবং বাম টেবিলের ম্যাচিং রেকর্ডFULL JOIN: উভয় টেবিলের সব রেকর্ড
📌 উদাহরণ:
SELECT users.name, orders.id
FROM users
INNER JOIN orders ON users.id = orders.user_id;✍️ Note: Some explanations and formatting support were taken with help from ChatGPT to ensure clarity and completeness. This is humble, transparent, and professional.
Have thoughts about PostgreSQL? I'm all ears!
Contact Me:
- 📧 Email: [zubayerhossain1009@gmail.com]
- 🐱 GitHub: @uday2027
- A generous pour of PostgreSQL power 🐘
- Fluent strokes of Markdown ✍️
- A steady stream of caffeine ☕
- Multiple "what is this bug even?" moments 😵
- Sweet victory cries of "SELECT * FROM success;" 🎉
🧠 Some explanation structure and wording were guided by ChatGPT to ensure clarity and polish.
❤️ Made with curiosity, and a sprinkle of stack overflow sadness
© 2025 |