Views কী এবং কেন ব্যবহার করা হয়?

SQL এ Views এবং Materialized Views - এসকিউএল সার্টিফিকেশন (SQL Certification) - Database Tutorials

372

Views SQL এর একটি বিশেষ ধরণ যা একটি ভার্চুয়াল টেবিল হিসেবে কাজ করে। এটি একটি কুয়েরি যা ডেটাবেসের এক বা একাধিক টেবিল থেকে তথ্য SELECT স্টেটমেন্টের মাধ্যমে প্রদর্শন করে, কিন্তু প্রকৃতপক্ষে কোনো ডেটা স্টোর করে না। একটি ভিউ ডেটাবেসের সঠিক ডেটা প্রকাশ করার জন্য ব্যবহৃত হয় এবং ব্যবহারকারীদের সঠিক দৃষ্টিকোণ থেকে ডেটা অ্যাক্সেস করতে সাহায্য করে।

এটি মূলত SQL কুয়েরির একটি সংজ্ঞা, যা টেবিল বা অন্যান্য ভিউ থেকে ডেটা ক্যাপচার করে এবং এটি পরবর্তী সময়ে সহজে ব্যবহারযোগ্য করে তোলে।


Views এর গঠন:

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
  • view_name: ভিউটির নাম।
  • SELECT statement: যে কুয়েরিটি ভিউটির ভিত্তি হিসেবে কাজ করবে।

Views এর কার্যপ্রণালী:

  1. Virtual Table: ভিউ একটি ভার্চুয়াল টেবিল, এটি নিজে কোনো ডেটা ধারণ করে না। এটি মূলত একটি কুয়েরি যা টেবিল থেকে ডেটা তুলে আনে, এবং ভিউটি মূল ডেটার উপর কোনো পরিবর্তন করে না।
  2. Data Access Layer: ভিউ ব্যবহারকারীদের ডেটা এক্সেস করতে একটি সুরক্ষিত এবং সহজ উপায় প্রদান করে। একাধিক টেবিল থেকে জটিল কুয়েরি করতে না গিয়ে, শুধু ভিউয়ের মাধ্যমে সহজেই ডেটা পেতে পারেন।
  3. Security: ভিউ ডেটাবেসে একাধিক টেবিল থেকে সংযুক্ত তথ্য সরবরাহ করতে পারে এবং গুরুত্বপূর্ণ কলামগুলিকে লুকিয়ে রাখতে পারে। এতে ব্যবহারকারী শুধুমাত্র প্রয়োজনীয় ডেটা দেখতে পায় এবং স্পর্শকাতর ডেটা সুরক্ষিত থাকে।

Views কেন ব্যবহার করা হয়?

  1. ডেটা অ্যাবস্ট্রাকশন (Data Abstraction):
    • ভিউ ডেটাবেসের ডেটার সাথে সরাসরি যোগাযোগ না করে, শুধু প্রয়োজনীয় তথ্য প্রদর্শন করে। এটি ব্যবহারকারীদের কাছে ডেটাবেসের জটিলতা লুকাতে সাহায্য করে।
    • উদাহরণ: ডেটাবেসে একাধিক টেবিল থাকতে পারে, কিন্তু ভিউ ব্যবহারকারীকে শুধুমাত্র এক বা দুটি টেবিলের কমপ্লেক্স কনসোলিডেটেড ডেটা দেখাতে পারে।
  2. কমপ্লেক্স কুয়েরি সহজতর করা:
    • ভিউ ব্যবহার করা হলে বার বার একই জটিল কুয়েরি লিখতে হয় না। একবার ভিউ তৈরি করার পর, সহজ SELECT কুয়েরি ব্যবহার করে সেই ডেটা পাওয়া যায়।
    • উদাহরণ: বহু টেবিল থেকে JOIN করা কুয়েরি বারবার লিখতে না গিয়ে, আপনি একটি ভিউ তৈরি করতে পারেন এবং তারপর সেই ভিউ ব্যবহার করে ডেটা এক্সেস করতে পারেন।
  3. ডেটাবেস সিকিউরিটি:
    • ভিউ ব্যবহার করে, আপনি শুধুমাত্র নির্দিষ্ট ডেটা ব্যবহারকারীর কাছে প্রকাশ করতে পারেন এবং বাকি ডেটা লুকিয়ে রাখতে পারেন।
    • উদাহরণ: আপনি একটি ভিউ তৈরি করতে পারেন যা শুধুমাত্র একটি টেবিলের নির্দিষ্ট কলাম দেখাবে এবং অন্য কলামগুলো লুকিয়ে রাখবে।
  4. ডেটা এক্সেস নিয়ন্ত্রণ:
    • ভিউ ব্যবহার করে ডেটাবেস অ্যাক্সেস সহজে নিয়ন্ত্রণ করা যায়। আপনি অনুমতি দিতে পারেন শুধুমাত্র নির্দিষ্ট ভিউগুলোর মাধ্যমে ডেটা এক্সেস করার জন্য।
  5. ডেটাবেসের পারফরম্যান্স উন্নতি:
    • একাধিক জটিল কুয়েরি বারবার চালানোর পরিবর্তে, একটি ভিউ দিয়ে তা একত্রে তৈরি করা যায়। তবে, বেশ কিছু ভিউ স্বয়ংক্রিয়ভাবে ইন্ডেক্স তৈরি করে না, তাই পারফরম্যান্সের দিক থেকে সাবধানতা অবলম্বন করা উচিত।

Views এর উদাহরণ:

ধরা যাক, আপনার দুটি টেবিল রয়েছে:

  1. employees (কর্মচারী)
    • employee_id, name, salary, department_id
  2. departments (বিভাগ)
    • department_id, department_name

এখন, আপনি একটি ভিউ তৈরি করতে চান যা প্রতিটি কর্মচারীর নাম এবং তার বিভাগ নাম দেখাবে।

CREATE VIEW employee_department_view AS
SELECT e.name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id;

এখন, আপনি এই ভিউ থেকে ডেটা SELECT করতে পারবেন সহজে:

SELECT * FROM employee_department_view;

এই কুয়েরিটি কর্মচারীদের নাম এবং তাদের বিভাগ নাম দেখাবে, কিন্তু এখানে টেবিল employees এবং departments সরাসরি এক্সেস করতে হবে না।


Views এর কিছু সীমাবদ্ধতা:

  1. ডেটা আপডেট করা কঠিন হতে পারে:
    • কিছু ভিউ শুধুমাত্র তথ্য প্রদর্শনের জন্য তৈরি করা হয় এবং তাদের মাধ্যমে ডেটা আপডেট করা কঠিন বা অসম্ভব হতে পারে।
    • বিশেষত যদি ভিউটি একাধিক টেবিল বা জটিল কুয়েরি ব্যবহার করে, তখন তা আপডেট বা ইনসার্ট করা খুবই জটিল হয়ে ওঠে।
  2. পারফরম্যান্স:
    • ভিউটি যখনই ব্যবহার করা হয়, তখন মূল কুয়েরি পুনরায় সম্পাদিত হয়। এটি কিছুক্ষেত্রে পারফরম্যান্সের জন্য বিরক্তিকর হতে পারে, বিশেষ করে যদি ভিউটি অনেক বড় বা জটিল হয়।
  3. ভিউর মাধ্যমে কনস্ট্রেইন্ট প্রয়োগ করা সম্ভব নয়:
    • ভিউয়ের মাধ্যমে কনস্ট্রেইন্ট (যেমন: PRIMARY KEY, FOREIGN KEY) প্রয়োগ করা যায় না, এটি শুধুমাত্র ডেটা রিডিংয়ের উদ্দেশ্যে ব্যবহৃত হয়।

নিষ্কর্ষ:

ভিউগুলি SQL ডেটাবেসে ডেটা এক্সেস, ডেটা সিকিউরিটি এবং ডেটাবেস ব্যবস্থাপনাকে সহজতর করার জন্য ব্যবহৃত হয়। এটি ডেটার অ্যাবস্ট্রাকশন প্রদান করে এবং ডেটাবেসের জটিলতা লুকিয়ে রাখতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...