উত্তর: Database Management System বা DBMS-এর প্রেক্ষিতে স্ন্যাপশট বলতে কোনো ডেটাবেজ বা ডেটার একটি নির্দিষ্ট সময়ের স্থির অবস্থা বা point-in-time copy বোঝায়। অর্থাৎ, একটি নির্দিষ্ট মুহূর্তে ডেটাবেজে যে তথ্যগুলো ছিল, সেগুলোর একটি স্থির ছবি বা অবস্থা সংরক্ষণ করা হলে তাকে স্ন্যাপশট বলা হয়। SQL Server-এর ক্ষেত্রে database snapshot হলো source database-এর একটি read-only, static view, যা snapshot তৈরির সময়কার অবস্থার সাথে transactionally consistent থাকে।
সহজভাবে বলা যায়, স্ন্যাপশট হলো ডেটাবেজের একটি নির্দিষ্ট সময়ের ছবি। যেমন আমরা মোবাইলে কোনো দৃশ্যের ছবি তুললে সেই মুহূর্তের অবস্থা ছবিতে ধরে রাখা হয়, ঠিক তেমনি ডেটাবেজের স্ন্যাপশট একটি নির্দিষ্ট সময়ে ডেটার অবস্থা ধরে রাখে।
স্ন্যাপশট হলো ডেটাবেজের একটি নির্দিষ্ট সময়ের স্থির কপি বা অবস্থা, যার মাধ্যমে সেই সময়ে ডেটাবেজে কী তথ্য ছিল তা দেখা যায়। এটি সাধারণত read-only হয়, অর্থাৎ এতে সরাসরি পরিবর্তন করা যায় না। স্ন্যাপশট reporting, auditing, testing এবং পূর্বের ডেটার অবস্থা দেখার কাজে ব্যবহৃত হয়। SQL Server documentation অনুযায়ী database snapshot একটি read-only, static view of a SQL Server database।
ধরা যাক, একটি স্কুলের ডেটাবেজে ছাত্রদের নাম, রোল নম্বর, ফলাফল এবং ফি জমার তথ্য সংরক্ষিত আছে। সকাল ১০টায় ডেটাবেজটির একটি স্ন্যাপশট নেওয়া হলো। এরপর দুপুরে কিছু ছাত্রের result update করা হলো বা fee record পরিবর্তন করা হলো। কিন্তু সকাল ১০টার স্ন্যাপশটে ডেটাবেজের সেই আগের অবস্থাই দেখা যাবে।
অর্থাৎ, স্ন্যাপশট ডেটাবেজের বর্তমান পরিবর্তন দেখায় না; বরং যে সময়ে স্ন্যাপশট নেওয়া হয়েছিল, সেই সময়কার ডেটার অবস্থা দেখায়। Microsoft Learn-এ বলা হয়েছে, database snapshot data-কে snapshot তৈরির সময়কার state-এ read-only view হিসেবে দেখায়।
ধরা যাক, একটি স্কুলে নিচের মতো Student table আছে:
| Roll | Name | Class | Marks |
|---|---|---|---|
| 1 | Rahul | 10 | 80 |
| 2 | Sima | 10 | 85 |
| 3 | Amit | 10 | 78 |
এখন সকাল ১০টায় এই database-এর একটি snapshot নেওয়া হলো। এরপর Sima-এর marks 85 থেকে 90 করা হলো। কিন্তু snapshot-এ Sima-এর marks আগের মতো 85-ই দেখা যাবে, কারণ snapshot সেই নির্দিষ্ট সময়ের ডেটার অবস্থা ধরে রাখে।
ডেটাবেজে স্ন্যাপশট ব্যবহার করার প্রধান উদ্দেশ্য হলো একটি নির্দিষ্ট সময়ের ডেটার অবস্থা ধরে রাখা। এটি বিশেষভাবে কাজে লাগে যখন কোনো গুরুত্বপূর্ণ কাজের আগে ডেটার আগের অবস্থা সংরক্ষণ করে রাখতে হয়।
স্ন্যাপশটকে কখনোই পূর্ণাঙ্গ backup-এর বিকল্প মনে করা উচিত নয়। Snapshot একটি নির্দিষ্ট সময়ের read-only view দিতে পারে, কিন্তু এটি regular backup-এর পরিবর্তে ব্যবহার করার জন্য নয়। Microsoft Learn স্পষ্টভাবে উল্লেখ করেছে যে database snapshots regular backups-এর replacement নয় এবং data protection-এর জন্য robust backup strategy প্রয়োজন।
সহজভাবে: Snapshot হলো কোনো মুহূর্তের ছবি, আর Backup হলো ডেটা রক্ষার জন্য সম্পূর্ণ নিরাপদ সংরক্ষণ ব্যবস্থা। তাই snapshot সাহায্য করে আগের অবস্থা দেখতে, কিন্তু backup ডেটা হারালে পুনরুদ্ধারে বেশি গুরুত্বপূর্ণ।
| বিষয় | Snapshot | Backup |
|---|---|---|
| অর্থ | নির্দিষ্ট সময়ের ডেটার স্থির অবস্থা | ডেটার নিরাপদ সংরক্ষিত কপি |
| ব্যবহার | Reporting, testing, previous state দেখা | ডেটা হারালে recovery |
| পরিবর্তনযোগ্যতা | সাধারণত read-only | Restore করার জন্য ব্যবহৃত হয় |
| উদ্দেশ্য | একটি নির্দিষ্ট সময়ের view প্রদান | ডেটা সুরক্ষা ও পুনরুদ্ধার |
| Backup-এর বিকল্প? | না | হ্যাঁ, recovery-এর মূল উপায় |
কিছু DBMS-এ snapshot শব্দটি materialized view-এর অর্থেও ব্যবহৃত হয়। Materialized view হলো এমন একটি database object যেখানে কোনো query-এর result সংরক্ষণ করা থাকে। GeeksforGeeks অনুযায়ী materialized view হলো snapshot বা materialized query table, যা query result সংরক্ষণ করে।
Oracle documentation-এও snapshot-কে materialized view হিসেবে উল্লেখ করা হয়েছে, বিশেষ করে replicated environment-এ target master table-এর point-in-time replica হিসেবে।
উদাহরণ: যদি একটি query সব Class 10 ছাত্রের result বের করে এবং সেই result আলাদা করে সংরক্ষণ করা হয়, তাহলে সেটি materialized view বা snapshot হিসেবে ব্যবহার করা যেতে পারে।
শিক্ষক ছাত্রদের এভাবে বোঝাতে পারেন:
ধরা যাক, তোমরা একটি ব্ল্যাকবোর্ডে ছাত্রদের নম্বর লিখেছ। এখন শিক্ষক সেই বোর্ডের একটি ছবি তুলে রাখলেন। পরে বোর্ডে নম্বর পরিবর্তন করা হলেও ছবিতে আগের নম্বরই থাকবে। এই ছবিটিই হলো snapshot-এর মতো।
ডেটাবেজেও একইভাবে কোনো নির্দিষ্ট সময়ে ডেটার একটি স্থির অবস্থা ধরে রাখা হয়। পরে ডেটাবেজে পরিবর্তন হলেও snapshot-এ সেই পুরনো সময়ের ডেটা দেখা যায়।
প্রথমে snapshot-এর সংজ্ঞা লিখবে।
তারপর লিখবে যে এটি database-এর নির্দিষ্ট সময়ের স্থির অবস্থা।
এরপর উল্লেখ করবে যে snapshot সাধারণত read-only হয়।
একটি school database বা marks table-এর সহজ উদাহরণ দেবে।
শেষে লিখবে যে snapshot reporting, testing এবং previous state দেখার কাজে ব্যবহৃত হয়, তবে এটি backup-এর বিকল্প নয়।
স্ন্যাপশট হলো ডেটাবেজের একটি নির্দিষ্ট সময়ের স্থির ছবি, যেখানে সেই সময়কার ডেটার অবস্থা দেখা যায়।
DBMS-এর প্রেক্ষিতে স্ন্যাপশট হলো ডেটাবেজের একটি নির্দিষ্ট সময়ের স্থির কপি বা অবস্থা। এটি database-এর point-in-time view প্রদান করে, অর্থাৎ snapshot নেওয়ার সময় ডেটাবেজে যে তথ্য ছিল তা দেখা যায়। সাধারণত snapshot read-only হয় এবং এতে সরাসরি পরিবর্তন করা যায় না। উদাহরণস্বরূপ, সকাল ১০টায় একটি school database-এর snapshot নেওয়া হলে পরে result update করা হলেও snapshot-এ সকাল ১০টার আগের তথ্যই দেখা যাবে। Snapshot reporting, auditing, testing এবং আগের data state দেখার কাজে ব্যবহৃত হয়। তবে snapshot backup-এর বিকল্প নয়; data protection-এর জন্য regular backup প্রয়োজন।