Views SQL Server-এ একটি virtual table হিসেবে কাজ করে, যা ডেটাবেসের এক বা একাধিক টেবিলের উপর ভিত্তি করে ডেটা প্রদর্শন করে। একটি complex view বা join view সাধারণত একাধিক টেবিলের ডেটাকে একত্রিত করে একটি ইউনিফাইড বা কাস্টমাইজড ভিউ তৈরি করে, যা ব্যবহারকারীদের বা ডেভেলপারদের জন্য জটিল প্রশ্নের সমাধান সহজ করে।
এখানে, আমরা Complex Views এবং Join Views তৈরির প্রক্রিয়া এবং তাদের ব্যবহারের কিছু উদাহরণ আলোচনা করব।
1. Complex Views তৈরি করা
Complex View হলো এমন একটি ভিউ যা একাধিক টেবিল, সাবকোয়েরি, ফিল্টার এবং অন্যান্য SQL উপাদান ব্যবহার করে ডেটা নির্বাচন করে। এটি ব্যবহারকারীদের কমপ্লেক্স বা কাস্টমাইজড প্রশ্নের ফলাফল সহজে প্রদান করে, যাতে তারা সরাসরি টেবিলগুলো থেকে ডেটা না নিয়ে শুধুমাত্র ভিউ ব্যবহার করে ডেটা বের করতে পারে।
1.1. Complex View তৈরির সিনট্যাক্স:
CREATE VIEW ViewName AS
SELECT column1, column2, ...
FROM Table1
INNER JOIN Table2 ON Table1.column = Table2.column
WHERE condition;
1.2. Complex View তৈরির উদাহরণ
ধরা যাক, আমাদের দুটি টেবিল রয়েছে: Employees এবং Departments। এখন, আমরা এমন একটি ভিউ তৈরি করতে চাই যা প্রত্যেক কর্মচারীর নাম এবং তাদের বিভাগের নাম দেখাবে, যেখানে কর্মচারীর বয়স ৩০ বছরের বেশি এবং বিভাগটি 'Sales' বিভাগে রয়েছে।
CREATE VIEW EmployeeDepartmentView AS
SELECT e.EmployeeName, e.Age, d.DepartmentName
FROM Employees e
INNER JOIN Departments d ON e.DepartmentID = d.DepartmentID
WHERE e.Age > 30 AND d.DepartmentName = 'Sales';
এখানে, EmployeeDepartmentView নামে একটি complex view তৈরি হয়েছে যা Employees এবং Departments টেবিলের মধ্যে একটি INNER JOIN করে এবং কিছু ফিল্টারও অ্যাপ্লাই করে (যেমন কর্মচারীর বয়স ৩০ বছরের বেশি এবং বিভাগের নাম 'Sales')।
1.3. Complex View এর সুবিধা
- Query Simplification: কমপ্লেক্স কোয়েরি সোজা করা যায়, যেমন একাধিক টেবিলের JOIN ব্যবহার করে।
- Security: কিছু তথ্য লুকানো এবং শুধুমাত্র প্রয়োজনীয় ডেটা প্রদর্শন করা যায়।
- Reuse: ভিউটি বারবার ব্যবহার করা যেতে পারে, যাতে একাধিক টেবিলের ডেটা দ্রুত একত্রিত করা যায়।
2. Join View তৈরি করা
Join View হলো এমন একটি ভিউ যা এক বা একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপন করে (যেমন INNER JOIN, LEFT JOIN, RIGHT JOIN), এবং তার পরিণামে ডেটা একটি একক ভিউ আকারে রিটার্ন করে। এই ধরনের ভিউ সাধারণত সম্পর্কিত টেবিলের ডেটা একত্রিত করতে ব্যবহৃত হয়।
2.1. Join View তৈরির সিনট্যাক্স:
CREATE VIEW ViewName AS
SELECT column1, column2, ...
FROM Table1
JOIN Table2 ON Table1.column = Table2.column;
2.2. Join View তৈরির উদাহরণ
ধরা যাক, আমাদের দুটি টেবিল রয়েছে: Orders এবং Customers। আমাদের প্রয়োজন এমন একটি ভিউ তৈরি করা, যা Orders টেবিলের সমস্ত অর্ডার এবং তার সাথে সম্পর্কিত Customers টেবিলের তথ্য (যেমন নাম এবং ঠিকানা) দেখাবে।
CREATE VIEW OrderCustomerView AS
SELECT o.OrderID, o.OrderDate, c.CustomerName, c.CustomerAddress
FROM Orders o
INNER JOIN Customers c ON o.CustomerID = c.CustomerID;
এখানে, OrderCustomerView নামে একটি Join View তৈরি হয়েছে যা Orders এবং Customers টেবিলের মধ্যে INNER JOIN করেছে। এই ভিউটি প্রতিটি অর্ডারের সাথে সম্পর্কিত গ্রাহকের নাম এবং ঠিকানা রিটার্ন করবে।
2.3. Join View এর সুবিধা
- Data Aggregation: একাধিক টেবিলের ডেটা একত্রিত করতে পারে, যা অনেক বেশি কার্যকরী।
- Ease of Access: ব্যবহারকারীরা বিভিন্ন টেবিলের সাথে সম্পর্কিত ডেটা একত্রিত করতে পারেন এবং এটি একটি একক ভিউ হিসেবে ব্যবহার করতে পারেন।
3. Join Types in Views
SQL-এ বিভিন্ন ধরনের JOIN ব্যবহার করা যেতে পারে যা ভিউ তৈরি করার সময়ে ডেটার সম্পর্ক এবং প্রয়োজন অনুসারে পরিবর্তিত হতে পারে। নিচে কিছু সাধারণ JOIN টাইপের বর্ণনা দেয়া হলো:
3.1. INNER JOIN
এটি দুইটি টেবিলের মধ্যে এমন রেকর্ডগুলো নির্বাচন করে যেগুলোর মধ্যে মিল পাওয়া যায়। অন্য কথায়, যেগুলোর উভয় টেবিলেই সংশ্লিষ্ট ডেটা থাকে।
উদাহরণ:
CREATE VIEW EmployeeProjectView AS
SELECT e.EmployeeName, p.ProjectName
FROM Employees e
INNER JOIN Projects p ON e.EmployeeID = p.EmployeeID;
3.2. LEFT JOIN (OUTER JOIN)
এটি বামপাশের টেবিলের সমস্ত রেকর্ড রিটার্ন করবে এবং ডানপাশের টেবিলের সাথে মিলে না এমন রেকর্ডগুলো NULL হিসেবে দেখাবে।
উদাহরণ:
CREATE VIEW EmployeeProjectView AS
SELECT e.EmployeeName, p.ProjectName
FROM Employees e
LEFT JOIN Projects p ON e.EmployeeID = p.EmployeeID;
3.3. RIGHT JOIN (OUTER JOIN)
এটি ডানপাশের টেবিলের সমস্ত রেকর্ড রিটার্ন করবে এবং বামপাশের টেবিলের সাথে মিলে না এমন রেকর্ডগুলো NULL হিসেবে দেখাবে।
উদাহরণ:
CREATE VIEW EmployeeProjectView AS
SELECT e.EmployeeName, p.ProjectName
FROM Employees e
RIGHT JOIN Projects p ON e.EmployeeID = p.EmployeeID;
3.4. FULL OUTER JOIN
এটি উভয় টেবিলের সমস্ত রেকর্ড রিটার্ন করবে, এবং যেগুলোর মধ্যে মিল না পাওয়া যায়, সেখানে NULL দেখাবে।
উদাহরণ:
CREATE VIEW EmployeeProjectView AS
SELECT e.EmployeeName, p.ProjectName
FROM Employees e
FULL OUTER JOIN Projects p ON e.EmployeeID = p.EmployeeID;
4. Existing View এর সাথে কাজ করা
4.1. View দেখতে
SELECT * FROM EmployeeDepartmentView;
4.2. View আপডেট বা পরিবর্তন করা
ALTER VIEW EmployeeDepartmentView AS
SELECT e.EmployeeName, e.Age, d.DepartmentName, d.Location
FROM Employees e
INNER JOIN Departments d ON e.DepartmentID = d.DepartmentID
WHERE e.Age > 30 AND d.DepartmentName = 'Sales';
4.3. View মুছে ফেলা
DROP VIEW EmployeeDepartmentView;
সারাংশ
Complex Views এবং Join Views SQL Server-এ ডেটাবেসের বিভিন্ন টেবিলের মধ্যে সম্পর্ক স্থাপন এবং ডেটা সংগ্রহের জন্য অত্যন্ত কার্যকরী। Complex View সাধারণত একাধিক টেবিল, সাবকোয়েরি এবং ফিল্টার ব্যবহার করে ডেটা সংগ্রহ করে, যেখানে Join View একাধিক টেবিলের মধ্যে সরাসরি সম্পর্ক স্থাপন করে ডেটা একটি ইউনিফাইড আউটপুট হিসেবে প্রদান করে। এই ভিউগুলো ডেটাবেসের কার্যকারিতা বাড়াতে এবং জটিল প্রশ্নের উত্তর সহজ করতে সহায়ক।
Read more