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

PostgreSQL তে Views এবং Materialized Views - পোস্টগ্রিএসকিউএল (PostgreSQL) - Database Tutorials

476

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


1. Views কী?

View হল একটি ভার্চুয়াল টেবিল যা একটি বা একাধিক টেবিলের ডেটার উপর ভিত্তি করে তৈরি হয়। যখন আপনি একটি View তৈরি করেন, তখন এটি SQL কুয়েরি হিসেবে সংরক্ষিত থাকে, এবং আপনি ঐ কুয়েরি ব্যবহার করে ডেটা দেখতে বা প্রশ্ন করতে পারেন, কিন্তু এটি ডেটা সংরক্ষণ করে না। এটি টেবিলের মতোই ব্যবহার করা যায়, তবে আসল টেবিলের মধ্যে ডেটা পরিবর্তন করার জন্য সোজাসুজি টেবিলের পরিবর্তে View ব্যবহার করা হয়।

View এর সাধারণ ব্যবহার:

  • পঠনযোগ্যতা বৃদ্ধি: View দিয়ে আপনি একাধিক জটিল টেবিলের ডেটা একত্রিত বা সংগ্রহ করতে পারেন এবং এটি ব্যবহারকারীর জন্য সহজে পঠনযোগ্য করে তুলতে পারেন।
  • ডেটার সারাংশ: View সাধারণত ডেটার সারাংশ তৈরি করতে ব্যবহৃত হয়, যেমন টেবিলের একটি নির্দিষ্ট অংশ বা একটি নির্দিষ্ট শর্তের ওপর ভিত্তি করে ডেটা প্রদর্শন করা।
  • অ্যাবস্ট্রাকশন: View ব্যবহারকারী বা অ্যাপ্লিকেশনকে ডেটাবেসের জটিলতা থেকে রক্ষা করে। এটি ডেটাবেসের কাঠামোকে লুকিয়ে রেখে সহজ ইন্টারফেস প্রদান করে।

2. Views তৈরি করা

PostgreSQL এ একটি View তৈরি করতে CREATE VIEW স্টেটমেন্ট ব্যবহার করা হয়। এটি একটি SELECT কুয়েরি দিয়ে ডেটা প্রদর্শন করবে।

View তৈরি করার উদাহরণ:

CREATE VIEW active_users AS
SELECT id, name, email
FROM users
WHERE status = 'active';

এখানে, active_users নামে একটি View তৈরি করা হয়েছে, যা users টেবিল থেকে শুধু active স্ট্যাটাসের ইউজারদের id, name এবং email রিটার্ন করবে।

View ব্যবহার:

SELECT * FROM active_users;

এখন, আপনি active_users View থেকে ডেটা নির্বাচন করতে পারেন ঠিক যেমনটি একটি সাধারণ টেবিল থেকে করা হয়।


3. View এর সুবিধা

  1. ডেটা অ্যাবস্ট্রাকশন:
    • View ব্যবহার করে আপনি ডেটাবেসের জটিলতা থেকে ব্যবহারকারী বা অ্যাপ্লিকেশনকে আলাদা করতে পারেন। যখন ডেটা একাধিক টেবিল থেকে আসে, তখন ব্যবহারকারীকে সেগুলির সব তথ্য জানতে হবে না, বরং একটাই View দিয়ে সহজেই ডেটা দেখতে পারবে।
  2. পুনঃব্যবহারযোগ্য কোড:
    • একবার একটি View তৈরি করলে, সেই View বারবার ব্যবহৃত হতে পারে। এটি কোডের পুনঃব্যবহারযোগ্যতা নিশ্চিত করে এবং ডেটাবেসে কোয়েরি লেখা সহজ করে তোলে।
  3. সিকিউরিটি:

    • View ব্যবহার করে আপনি টেবিলের কিছু কলাম বা ডেটা লুকিয়ে রাখতে পারেন। যেমন, আপনি একটি View তৈরি করতে পারেন যেখানে শুধুমাত্র নির্দিষ্ট কলামগুলো দেখা যাবে এবং অন্য কলামগুলো অ্যাক্সেস করা যাবে না।

    উদাহরণ:

    CREATE VIEW user_details AS
    SELECT id, name, email
    FROM users;
    
  4. কাস্টম সারাংশ তৈরি করা:

    • View এর মাধ্যমে আপনি একটি টেবিলের ডেটার সারাংশ তৈরি করতে পারেন, যেমন মোট রেকর্ড বা অ্যাগ্রিগেট ফাংশন ব্যবহার করে টেবিলের কিছু নির্দিষ্ট অংশ উপস্থাপন করা।

    উদাহরণ:

    CREATE VIEW total_sales AS
    SELECT product_id, SUM(amount) AS total_amount
    FROM sales
    GROUP BY product_id;
    
  5. ডেটার সহজ উপস্থাপন:
    • View একটি সহজ এবং পরিষ্কার উপস্থাপনা তৈরি করতে সাহায্য করে। একাধিক টেবিলের ডেটা বা জটিল কুয়েরির ফলাফল ব্যবহারকারীর জন্য সহজভাবে উপস্থাপন করা যায়।

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

  1. ডেটা পরিবর্তন করা কঠিন:
    • যদিও View-এ ডেটা দেখানো যায়, তবে সাধারণভাবে আপনি View এর মাধ্যমে ডেটা ইনসার্ট, আপডেট বা ডিলিট করতে পারবেন না (যদি না View সিম্পল হয় এবং তার মধ্যে কোনো অপ্রয়োজনীয় যৌথ টেবিল না থাকে)।
  2. পারফরম্যান্স:
    • বড় বা জটিল View সিস্টেমের পারফরম্যান্সকে কিছুটা ধীর করে দিতে পারে, কারণ এই View গুলি একটি SELECT কুয়েরি হিসাবে কাজ করে এবং কুয়েরি এক্সিকিউশন প্ল্যানের ওপর নির্ভর করে।
  3. ফাংশনালিটি সীমাবদ্ধ:
    • View শুধুমাত্র ডেটা প্রদর্শন করে, কিন্তু কোনও ডেটা ট্রান্সফরমেশন বা লজিকাল পরিবর্তন করা হলে Stored Procedure বা Function ব্যবহার করা বেশি উপকারী।

5. Materialized View

PostgreSQL এ Materialized View নামে একটি বিশেষ View রয়েছে, যা সাধারণ View থেকে আলাদা। এটি ডেটা সংরক্ষণ করে এবং পরে কেবলমাত্র সেই সংরক্ষিত ডেটা ফেরত দেয়, যা সাধারণ View থেকে আলাদা। এটি বড় ডেটাসেটের ক্ষেত্রে পারফরম্যান্স উন্নত করতে সহায়ক হতে পারে, তবে আপনাকে ডেটা আপডেট করতে REFRESH MATERIALIZED VIEW ব্যবহার করতে হবে।

Materialized View তৈরি করা:

CREATE MATERIALIZED VIEW sales_summary AS
SELECT product_id, SUM(amount) AS total_sales
FROM sales
GROUP BY product_id;

Materialized View আপডেট করা:

REFRESH MATERIALIZED VIEW sales_summary;

Materialized View, সাধারণ View এর তুলনায় বেশি দ্রুত ফলাফল দিতে পারে, কারণ এটি ডেটা সংরক্ষণ করে এবং আপনাকে বারবার কুয়েরি চালাতে হয় না। তবে, এটি কেবল তখনই কার্যকরী যখন আপনি ডেটার সাম্প্রতিক আপডেট প্রয়োজন নেই।


সারাংশ

  • View PostgreSQL ডেটাবেসের একটি ভার্চুয়াল টেবিল, যা এক বা একাধিক টেবিল থেকে ডেটা নিয়ে একটি কুয়েরি প্রদান করে এবং এটি ডেটা সংরক্ষণ করে না।
  • View ব্যবহার করলে ডেটার অ্যাবস্ট্রাকশন, কোড পুনঃব্যবহারযোগ্যতা, সিকিউরিটি এবং ডেটার সহজ উপস্থাপন সম্ভব হয়।
  • Materialized View ডেটা সংরক্ষণ করে এবং সেই ডেটা দ্রুত সরবরাহ করে, কিন্তু আপডেট করার জন্য REFRESH প্রয়োজন।

View ব্যবহার করে আপনি ডেটাবেসের জটিলতা থেকে মুক্ত থাকতে পারেন এবং অ্যাপ্লিকেশন এবং ব্যবহারকারীদের জন্য একটি সহজ এবং পরিষ্কার ইন্টারফেস তৈরি করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...