✏️ Explanatory Question

SQL এ ভিউ এবং টেবিলের মধ্যে পার্থক্য কি? উদাহরণ সহযোগে বর্ণনা কর। ভিউ এর উপকারিতা কি?

👁 3 Views
📘 Detailed Answer
🟢 Easy
💡

Answer with Explanation

SQL View and Table

Exam-ready answer with definition, difference table, examples, advantages, and conclusion.

Question 13

প্রশ্ন

SQL এ ভিউ এবং টেবিলের মধ্যে পার্থক্য কি? উদাহরণ সহযোগে বর্ণনা কর। ভিউ এর উপকারিতা কি?

Answer: Difference Between View and Table in SQL

ভূমিকা

SQL বা Relational Database Management System-এ Table এবং View দুটিই data দেখানো ও ব্যবহার করার জন্য গুরুত্বপূর্ণ database object। তবে Table এবং View এক জিনিস নয়। এদের কাজ, storage, data access এবং ব্যবহারিক উদ্দেশ্য আলাদা।

Table হলো database-এর physical object যেখানে actual data rows এবং columns আকারে সংরক্ষিত থাকে। অন্যদিকে View হলো একটি virtual table, যা এক বা একাধিক table-এর উপর লেখা SELECT query-এর result দেখায়।

সহজ ভাষায়: Table actual data store করে, কিন্তু View নিজে data store করে না; View হলো saved query-এর মাধ্যমে তৈরি virtual table।

Table কী?

Table হলো database-এর একটি physical structure যেখানে data rows এবং columns আকারে সংরক্ষিত থাকে। প্রতিটি row একটি record নির্দেশ করে এবং প্রতিটি column record-এর একটি attribute বা property নির্দেশ করে।

Table-এ data directly insert, update, delete এবং retrieve করা যায়। Table সাধারণত database-এর মূল data storage হিসেবে কাজ করে।

Definition: A table is a physical database object that stores data in rows and columns.

View কী?

View হলো SQL-এর একটি virtual table, যা একটি SELECT query-এর result-এর উপর ভিত্তি করে তৈরি হয়। View নিজে actual data store করে না। এটি base table বা tables থেকে data এনে user-এর সামনে table-এর মতো দেখায়।

View ব্যবহার করে complex query সহজ করা যায়, sensitive data hide করা যায় এবং user-কে প্রয়োজনীয় data-এর একটি controlled view দেখানো যায়।

Definition: A view is a virtual table based on the result of a SQL query. It does not store data itself but displays data from one or more base tables.

Table-এর উদাহরণ

ধরা যাক, আমরা একটি Student table তৈরি করতে চাই যেখানে student-এর roll number, name, department এবং marks থাকবে।


CREATE TABLE Student (
    Roll_No INT PRIMARY KEY,
    Name VARCHAR(50),
    Department VARCHAR(50),
    Marks INT
);
            

এখন table-এ data insert করা হলো:


INSERT INTO Student (Roll_No, Name, Department, Marks)
VALUES
(101, 'Rahul', 'Computer Science', 85),
(102, 'Riya', 'Commerce', 72),
(103, 'Karim', 'Computer Science', 90),
(104, 'Anita', 'Arts', 68);
            

Student table-এর data:

Roll_No Name Department Marks
101 Rahul Computer Science 85
102 Riya Commerce 72
103 Karim Computer Science 90
104 Anita Arts 68

এখানে Student table actual data store করছে। তাই এটি physical table।

View-এর উদাহরণ

এখন যদি আমরা শুধু Computer Science department-এর students দেখাতে চাই, তাহলে বারবার query না লিখে একটি View তৈরি করতে পারি।


CREATE VIEW CS_Students AS
SELECT Roll_No, Name, Marks
FROM Student
WHERE Department = 'Computer Science';
            

View ব্যবহার করে data দেখার query:


SELECT * FROM CS_Students;
            

Output:

Roll_No Name Marks
101 Rahul 85
103 Karim 90

এখানে CS_Students View নিজে data store করছে না। এটি Student table থেকে Computer Science department-এর selected data দেখাচ্ছে।

View এবং Table-এর মধ্যে পার্থক্য

বিষয় Table View
Definition Table হলো physical database object যেখানে actual data store হয়। View হলো virtual table যা query-এর result দেখায়।
Data Storage Table actual data store করে। View সাধারণত actual data store করে না।
Physical Space Table database storage space ব্যবহার করে। View সাধারণত query definition store করে, actual data নয়।
Data Source Table নিজেই data source। View base table বা multiple tables-এর উপর নির্ভর করে।
Data Modification Table-এ INSERT, UPDATE, DELETE করা যায়। View সব ক্ষেত্রে directly update করা যায় না; simple view update হতে পারে, complex view নাও হতে পারে।
Security Table access দিলে user অনেক data দেখতে পারে। View ব্যবহার করে selected rows বা columns দেখানো যায়।
Complex Query Complex result পেতে বারবার query লিখতে হয়। Complex query একবার view হিসেবে save করে বারবার ব্যবহার করা যায়।
Dependency Table independent object হিসেবে কাজ করে। View underlying table-এর উপর dependent।
Example Student table actual student data store করে। CS_Students view Student table থেকে selected data দেখায়।

View কেন দরকার?

View database ব্যবহারের ক্ষেত্রে অনেক সুবিধা দেয়। বিশেষ করে যখন complex query বারবার ব্যবহার করতে হয়, অথবা user-কে table-এর পুরো data না দেখিয়ে selected data দেখাতে হয়, তখন View খুব useful।

View একটি abstraction layer হিসেবে কাজ করে। User table-এর actual structure না জেনেও View-এর মাধ্যমে প্রয়োজনীয় data access করতে পারে।

View-এর উপকারিতা

১. Complex Query সহজ করে

অনেক সময় multiple table join করে বা condition দিয়ে complex query লিখতে হয়। View ব্যবহার করলে সেই complex query একবার create করে পরে simple SELECT statement দিয়ে result দেখা যায়।


SELECT * FROM CS_Students;
            

এখানে user-কে পুরো complex SELECT query লিখতে হচ্ছে না।

২. Security বৃদ্ধি করে

View ব্যবহার করে user-কে table-এর সব columns না দেখিয়ে নির্দিষ্ট columns দেখানো যায়। যেমন salary, password, phone number-এর মতো sensitive column hide করা যায়।


CREATE VIEW Student_Public_Info AS
SELECT Roll_No, Name, Department
FROM Student;
            

এই View-তে Marks column hide করা হয়েছে।

৩. Data Abstraction প্রদান করে

View user-কে database-এর internal structure থেকে দূরে রাখে। User শুধু View দেখে data access করে, base table-এর জটিল structure জানার দরকার হয় না।

৪. Reusability বাড়ায়

একই query বারবার লিখতে না হয়ে View তৈরি করে বারবার ব্যবহার করা যায়। এতে query writing সহজ হয় এবং time save হয়।

৫. Data Consistency বজায় রাখতে সাহায্য করে

একই calculation বা same filtering condition বারবার manually না লিখে View ব্যবহার করলে result consistent থাকে।

৬. User-specific Data Presentation করা যায়

Different users-এর জন্য different View তৈরি করা যায়। যেমন student user শুধু নিজের marks দেখতে পাবে, teacher user department-wise marks দেখতে পাবে।

৭. Multiple Tables-এর Data একসঙ্গে দেখানো যায়

View ব্যবহার করে multiple tables join করে একটি virtual table আকারে data দেখানো যায়।

Multiple Tables থেকে View তৈরির উদাহরণ

ধরা যাক, দুটি table আছে: Student এবং Department।


CREATE TABLE Department (
    Dept_ID INT PRIMARY KEY,
    Dept_Name VARCHAR(50)
);

CREATE TABLE Student (
    Roll_No INT PRIMARY KEY,
    Name VARCHAR(50),
    Dept_ID INT,
    Marks INT
);
            

এখন Student এবং Department table join করে একটি View তৈরি করা যায়:


CREATE VIEW Student_Department_View AS
SELECT 
    S.Roll_No,
    S.Name,
    D.Dept_Name,
    S.Marks
FROM Student AS S
JOIN Department AS D
ON S.Dept_ID = D.Dept_ID;
            

View ব্যবহার:


SELECT * FROM Student_Department_View;
            

এই View ব্যবহার করলে user সহজেই student-এর নাম, department name এবং marks একসঙ্গে দেখতে পাবে।

View-এর কিছু সীমাবদ্ধতা

  • View নিজে সাধারণত actual data store করে না।
  • Base table delete বা change হলে View affected হতে পারে।
  • Complex View সব ক্ষেত্রে update করা যায় না।
  • খুব complex View performance slow করতে পারে।
  • View base table-এর উপর dependent হওয়ায় base table না থাকলে View কাজ করবে না।

View সম্পর্কিত SQL Commands

Command কাজ
CREATE VIEW নতুন View তৈরি করে।
SELECT FROM VIEW View থেকে data দেখায়।
CREATE OR REPLACE VIEW Existing View replace বা update করে।
DROP VIEW View delete করে।

CREATE VIEW View_Name AS
SELECT column1, column2
FROM Table_Name
WHERE condition;

SELECT * FROM View_Name;

DROP VIEW View_Name;
            

Real-life Example

একটি college database-এ Student table-এ অনেক information থাকতে পারে: Roll_No, Name, Department, Marks, Phone, Address, Fee_Status ইত্যাদি।

যদি admin user সব information দেখতে পারে কিন্তু সাধারণ student user শুধু Roll_No, Name এবং Marks দেখতে পারে, তাহলে View ব্যবহার করা যেতে পারে।


CREATE VIEW Student_Result_View AS
SELECT Roll_No, Name, Marks
FROM Student;
            

এই View ব্যবহার করে student user sensitive data যেমন Phone, Address বা Fee_Status দেখতে পাবে না।

Short Comparison

Table: Actual data storage.

View: Virtual representation of data based on a query.


Table = Stores actual data
View  = Shows selected or processed data from table
            

Exam Writing Tips

  • প্রথমে Table এবং View-এর definition লিখবে।
  • লিখবে Table actual data store করে, View virtual table।
  • Difference table অবশ্যই দেবে।
  • CREATE TABLE এবং CREATE VIEW query লিখলে answer বেশি scoring হবে।
  • View-এর উপকারিতা আলাদা heading দিয়ে লিখবে।
  • Security, simplicity, abstraction এবং reusability point অবশ্যই লিখবে।
  • শেষে short conclusion লিখবে।

উপসংহার

সুতরাং, SQL-এ Table এবং View দুটিই গুরুত্বপূর্ণ database object হলেও এদের মধ্যে মৌলিক পার্থক্য রয়েছে। Table actual data rows এবং columns আকারে store করে, কিন্তু View হলো virtual table যা base table-এর data query-এর মাধ্যমে দেখায়।

View ব্যবহার করলে complex query সহজ হয়, security বাড়ে, sensitive data hide করা যায় এবং user-specific data presentation করা যায়। তাই database management এবং reporting-এর ক্ষেত্রে View অত্যন্ত গুরুত্বপূর্ণ।

Quick Revision Points

  • Table actual data store করে।
  • View virtual table হিসেবে কাজ করে।
  • View SELECT query-এর result দেখায়।
  • Table physical storage space ব্যবহার করে।
  • View সাধারণত actual data store করে না।
  • View complex query simplify করে।
  • View security বাড়াতে সাহায্য করে।
  • View selected rows বা columns দেখাতে ব্যবহার করা যায়।