ডেটাবেস আবিষ্কারের পূর্বে ফাইল প্রসেসিং সিস্টেমের মাধ্যমে বিভিন্ন ডেটা আলাদা ফাইলে সংরক্ষণ করা হতো। এর ফলে একাধিক গুরুতর সমস্যার সৃষ্টি হয়েছিল:
- ডেটা পুনরাবৃত্তি ও অপচয় (Data Redundancy): একই তথ্য বিভিন্ন ফাইলে বারবার সংরক্ষিত হতো, যা মেমরি অপচয় ঘটাত।
- ডেটা অসঙ্গতি (Data Inconsistency): কোনো এক জায়গায় তথ্য পরিবর্তন করা হলেও অন্য ফাইলে তা অপরিবর্তিত থেকে যেত, যার ফলে তথ্যের মধ্যে অমিল সৃষ্টি হতো।
- প্রোগ্রাম-ডেটা নির্ভরশীলতা (Program-Data Dependence): ফাইলের স্টোরেজ কাঠামো সামান্য পরিবর্তন করলেই সংশ্লিষ্ট সমস্ত অ্যাপ্লিকেশন প্রোগ্রাম পুনরায় লিখতে হতো।
- কনকারেন্ট অ্যাক্সেসের সমস্যা (Concurrency Anomalies): একাধিক ব্যবহারকারী একই সময়ে ফাইলে পরিবর্তন করার চেষ্টা করলে ডেটা বিকৃত হওয়ার সম্ভাবনা থাকত।
- নিরাপত্তা ও অখণ্ডতার অভাব: সুনির্দিষ্ট অ্যাক্সেস কন্ট্রোল ও বিধিনিষেধ (Constraints) প্রয়োগ করা কষ্টসাধ্য ছিল।
ডেটাবেস সিস্টেমকে ব্যবহারকারী থেকে পৃথক রাখতে তিন স্তরের আর্কিটেকচার ব্যবহার করা হয়:
| আর্কিটেকচার স্তর | কার্যকারিতা ও পরিধি | ব্যবহারকারী ও উপাদান |
|---|---|---|
| এক্সটার্নাল বা ভিউ স্তর (External Level) | বিভিন্ন শ্রেণির ব্যবহারকারীর জন্য ডেটাবেসের নির্দিষ্ট অংশের কাস্টমাইজড রূপ প্রদর্শন করে। অপ্রয়োজনীয় তথ্য আড়াল রাখা হয়। | সাধারণ ব্যবহারকারী ও অ্যাপ্লিকেশন প্রোগ্রামার; বিভিন্ন SQL ভিউ স্ক্রিন। |
| কনসেপচুয়াল বা লজিক্যাল স্তর (Conceptual Level) | সমগ্র ডেটাবেসের সামগ্রিক যৌক্তিক গঠন, সত্তাসমূহ, ডেটা টাইপ, সম্পর্ক ও নিয়মাবলী সংজ্ঞায়িত করে। | ডেটাবেস প্রশাসক (DBA); রিলেশনাল স্কিমা, প্রাইমারি কি ও ফরেন কি। |
| ইন্টারনাল বা ফিজিক্যাল স্তর (Internal Level) | হার্ডডিস্ক ও সেকেন্ডারি স্টোরেজে কীভাবে ডেটা বিট, ব্লক, ক্লাস্টার এবং B+ ট্রি ইনডেক্সে সঞ্চিত থাকে তা বর্ণনা করে। | DBMS স্টোরেজ ইঞ্জিন ও সিস্টেম প্রকৌশলী; ফাইল অর্গানাইজেশন ও কম্প্রেশন। |
১. ফিজিক্যাল ডেটা স্বাধীনতা: কনসেপচুয়াল স্কিমা পরিবর্তন না করে ইন্টারনাল বা স্টোরেজ স্কিমা (যেমন নতুন ইনডেক্স তৈরি, ফাইল স্থানান্তর) পরিবর্তন করার ক্ষমতা।
২. লজিক্যাল ডেটা স্বাধীনতা: এক্সটার্নাল ভিউ বা বিদ্যমান প্রোগ্রাম পরিবর্তন না করে কনসেপচুয়াল স্কিমা (যেমন নতুন অ্যাট্রিবিউট যোগ বা টেবিল বিভাজন) পরিবর্তন করার ক্ষমতা। এটি অর্জন করা অপেক্ষাকৃত কঠিন।