View হল একটি ভিউ (virtual table) যা একটি বা একাধিক টেবিল থেকে ডেটা সংগ্রহ করে এবং একটি নির্দিষ্ট কুয়েরি বা কাস্টম সিলেকশন অনুযায়ী ডেটা প্রদর্শন করে। এটি মূল টেবিলের ডেটা পরিবর্তন না করে কেবলমাত্র একটি সিলেকশন হিসেবে কাজ করে। PostgreSQL তে Views ডেটা দেখার জন্য খুবই গুরুত্বপূর্ণ টুল, যেগুলি আপনার ডেটাবেসের কুয়েরি পারফরম্যান্স এবং নিরাপত্তা উন্নত করতে সাহায্য করে।
Views দুটি প্রকারের হতে পারে:
- Simple View: একক টেবিল থেকে ডেটা নির্বাচন করা।
- Complex View: একাধিক টেবিলের সংযোগ (JOIN), সাবকুয়েরি, গ্রুপিং, অ্যাগ্রিগেট ফাংশন ইত্যাদি ব্যবহার করা।
1. Simple View তৈরি করা
Simple View একটি খুবই সাধারণ View, যা একটিমাত্র টেবিল থেকে ডেটা নির্বাচন করতে ব্যবহৃত হয়। এটি মূলত সহজ কুয়েরি বা ফিল্টার করা ডেটা প্রদর্শন করার জন্য তৈরি করা হয়।
Simple View তৈরি করার Syntax:
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
উদাহরণ ১: Simple View তৈরি করা
ধরা যাক, আমাদের একটি students টেবিল রয়েছে এবং আমরা ওই টেবিল থেকে শুধু name এবং age কলাম দেখতে চাই।
CREATE VIEW student_view AS
SELECT name, age
FROM students;
এটি একটি Simple View তৈরি করবে যার নাম student_view, এবং এটি students টেবিলের name এবং age কলামগুলির ডেটা দেখাবে।
View থেকে ডেটা SELECT করা:
SELECT * FROM student_view;
এটি student_view থেকে ডেটা প্রদর্শন করবে, যেমন students টেবিলের name এবং age।
2. Complex View তৈরি করা
Complex View একাধিক টেবিলের ডেটা নিয়ে কাজ করে। এতে JOIN, GROUP BY, HAVING, SUBQUERY, AGGREGATE FUNCTIONS ইত্যাদি ব্যবহার করা হয়। এটি অধিকাংশ ক্ষেত্রেই জটিল কুয়েরি এবং ডেটার সম্পর্ক তৈরি করতে ব্যবহৃত হয়।
Complex View তৈরি করার Syntax:
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table1
JOIN table2 ON table1.column = table2.column
WHERE condition;
উদাহরণ ২: Complex View তৈরি করা
ধরা যাক, আমাদের students এবং enrollments নামে দুটি টেবিল রয়েছে। students টেবিলের মধ্যে ছাত্রদের নাম এবং বয়স আছে, এবং enrollments টেবিলের মধ্যে ছাত্রদের কোর্সের তথ্য রয়েছে। আমরা একটি View তৈরি করতে চাই যাতে ছাত্রদের নাম এবং তাদের নির্বাচিত কোর্সের নাম দেখানো হবে।
CREATE VIEW student_courses AS
SELECT s.name, s.age, c.course_name
FROM students s
JOIN enrollments e ON s.student_id = e.student_id
JOIN courses c ON e.course_id = c.course_id;
এটি একটি Complex View তৈরি করবে যার নাম student_courses, এবং এটি students, enrollments, এবং courses টেবিল থেকে ছাত্রদের নাম, বয়স এবং কোর্সের নাম নিয়ে আসবে।
View থেকে ডেটা SELECT করা:
SELECT * FROM student_courses;
এটি student_courses ভিউ থেকে সমস্ত ছাত্রদের নাম, বয়স এবং কোর্সের নাম প্রদর্শন করবে।
3. View এর সুবিধা এবং ব্যবহার
- ডেটার সুরক্ষা: View এর মাধ্যমে আপনি ডেটাবেসের কিছু কলাম বা টেবিল ব্যবহারকারীর কাছে লুকিয়ে রাখতে পারেন, অর্থাৎ শুধুমাত্র প্রাসঙ্গিক ডেটা দেখানো হয়।
- পারফরম্যান্স উন্নতি: কমপ্লেক্স কুয়েরি বা সাধারণ সিলেকশন বারবার না লিখে, একবার View তৈরি করে সেটি পুনরায় ব্যবহার করা যেতে পারে, যা কোডের পুনরাবৃত্তি কমায় এবং পারফরম্যান্স বৃদ্ধি করে।
- অ্যাবস্ট্রাকশন: View তৈরি করার মাধ্যমে ডেটাবেসে কুয়েরি লজিককে অ্যাবস্ট্রাক্ট (abstract) করা যায়, যাতে ব্যবহারকারীরা সরাসরি মূল টেবিলের ডেটা না দেখে View এর মাধ্যমে ডেটা দেখতে পারে।
4. View ম্যানেজমেন্ট
a. View আপডেট করা (Updating Views)
View এ কিছু পরিবর্তন করা হলে, পুনরায় সেটি তৈরি করতে হয়। PostgreSQL এ আপনি CREATE OR REPLACE VIEW ব্যবহার করতে পারেন।
CREATE OR REPLACE VIEW student_courses AS
SELECT s.name, s.age, c.course_name, c.course_duration
FROM students s
JOIN enrollments e ON s.student_id = e.student_id
JOIN courses c ON e.course_id = c.course_id;
এটি পূর্বের student_courses View আপডেট করবে এবং কোর্সের নামের পাশাপাশি কোর্সের মেয়াদকাল (course_duration)ও দেখাবে।
b. View মুছে ফেলা (Dropping Views)
View মুছে ফেলতে DROP VIEW ব্যবহার করা হয়:
DROP VIEW IF EXISTS student_courses;
এটি student_courses ভিউ মুছে ফেলবে যদি তা বিদ্যমান থাকে।
c. View এর উপকারিতা এবং সীমাবদ্ধতা
সুবিধা:
- ডেটাবেসের পলিসি এবং নিরাপত্তা ব্যবস্থার জন্য খুবই উপকারী।
- পুনরায় ব্যবহারের জন্য কুয়েরি সংরক্ষণ এবং পরবর্তী সময়ে সহজে ব্যবহারযোগ্য।
- জটিল কুয়েরি লজিককে অ্যাবস্ট্রাক্ট করা যায়।
সীমাবদ্ধতা:
- বড় View গুলি পারফরম্যান্সে নেতিবাচক প্রভাব ফেলতে পারে।
- কিছু View গুলি Read-Only হতে পারে, অর্থাৎ আপনি সেগুলিতে ডেটা ইনসার্ট বা আপডেট করতে পারবেন না যদি না View একটি নির্দিষ্ট নিয়ম অনুযায়ী তৈরি করা হয়।
সারাংশ
- Simple View শুধুমাত্র একটি টেবিল থেকে ডেটা নির্বাচিত করে, সাধারণ কুয়েরি বা সিলেকশন প্রদর্শন করার জন্য ব্যবহৃত হয়।
- Complex View একাধিক টেবিলের মধ্যে সম্পর্ক তৈরি করে, যেখানে JOIN, GROUP BY, AGGREGATE FUNCTIONS ইত্যাদি ব্যবহার করা হয়।
- Views ডেটাবেসের পারফরম্যান্স, নিরাপত্তা এবং কুয়েরি ব্যবস্থাপনাকে আরও সহজ ও কার্যকরী করে তোলে।
Read more