আমি ইদানীং অনেক শুনেছি যে এসকিউএল একটি ভয়ঙ্কর ভাষা, এবং মনে হয় যে সূর্যের নীচে প্রতিটি কাঠামো একটি ডাটাবেস বিমূর্ত স্তর সহ প্রাক-প্যাকেজযুক্ত হয়।
মনে রাখবেন যে এই স্তরগুলি কেবল তাদের নিজস্ব স্টাফগুলিকে রূপান্তর করে SQL। বেশিরভাগ ডাটাবেস বিক্রেতাদের SQLজন্য ইঞ্জিনের সাথে যোগাযোগের একমাত্র উপায়।
যদিও আমার অভিজ্ঞতায় এসকিউএল হ'ল ডেটা ইনপুট এবং আউটপুট পরিচালনা করার জন্য অনেক বেশি সহজ, আরও বহুমুখী এবং আরও বেশি প্রোগ্রামার বান্ধব উপায়। আমি যে প্রতিটি বিমূর্ত স্তরটি ব্যবহার করেছি এটি মনে হয় সত্যিকারের কোনও সুবিধা ছাড়াই একটি স্পষ্টভাবে সীমিত পদ্ধতি approach
… কারণ যার জন্য আমি কেবল উপরে বর্ণিত করেছি।
ডাটাবেসের স্তর না যোগ কিছু, তারা শুধু সীমিত আপনি। তারা প্রশ্নগুলি বিতর্কিতভাবে আরও সহজ করে তোলে তবে কখনও বেশি দক্ষ হয় না।
সংজ্ঞা অনুসারে, ডাটাবেস স্তরগুলিতে এমন কিছু নেই যা অন্তর্ভুক্ত নেই SQL।
কী SQLএত ভয়ঙ্কর করে তোলে এবং ডাটাবেস বিমূর্ত স্তরগুলি কেন মূল্যবান?
SQL এটি একটি দুর্দান্ত ভাষা, তবে এটির সাথে কাজ করতে কিছুটা মস্তিষ্কের মোড় লাগে।
ধারণায়, SQL ঘোষণামূলক, এটিই আপনি ঘোষণা করেন যে আপনি কী পেতে চান এবং ইঞ্জিন এটি দ্রুততম উপায়ে সরবরাহ করে।
অনুশীলনে, সঠিক কোয়েরি গঠনের অনেকগুলি উপায় রয়েছে (এটি এমন কোয়েরি যা সঠিক ফলাফলগুলি ফেরত দেয়)
অপ্টিমাইজারগুলি কিছু পূর্বনির্ধারিত অ্যালগরিদম (হ্যাঁ, তারা একাধিক) এর বাইরে লেগো দুর্গ তৈরি করতে সক্ষম তবে তারা কেবল নতুন অ্যালগরিদম তৈরি করতে পারবেন না। SQLতাদের সহায়তা করতে এখনও এটি বিকাশকারী লাগে ।
যাইহোক, কিছু লোক আশা করেন যে সর্বোত্তম পরিকল্পনাটি "সম্ভাব্য সর্বোত্তম পরিকল্পনা" উত্পাদন করবে, "প্রদত্ত কার্যকর প্রয়োগের সাথে এই ক্যোয়ারির জন্য সেরা পরিকল্পনা উপলব্ধ নয়" SQL ইঞ্জিনের " তৈরি করবে।
এবং যেমনটি আমরা সবাই জানি, কম্পিউটার প্রোগ্রাম যখন মানুষের প্রত্যাশা পূরণ করে না, তখন এটি এমন প্রোগ্রাম যা দোষী হয়, প্রত্যাশা নয়।
তবে বেশিরভাগ ক্ষেত্রেই, কোনও প্রশ্নের সংস্কার করা প্রকৃতপক্ষে একটি সেরা পরিকল্পনা তৈরি করতে পারে। এমন কিছু কাজ রয়েছে যখন এটি অসম্ভব, তবে, SQLএই ক্ষেত্রে নতুন এবং ক্রমবর্ধমান উন্নতি সংখ্যায় কম এবং কম পাবে।
এটি দুর্দান্ত লাগবে, যদিও বিক্রেতারা যদি "সূচী রেঞ্জ পান", "" একটি সারি পান rowid"ইত্যাদি ইত্যাদি ক্রিয়াকলাপগুলিতে কিছু নিম্ন স্তরের অ্যাক্সেস সরবরাহ করে , যেমন Cসংকলকগুলি আপনাকে ঠিক ঠিক ভাষায় এমেম্বিটি এম্বেড করতে দেয়।
আমি সাম্প্রতিককালে আমার ব্লগে এই সম্পর্কে একটি নিবন্ধ লিখেছি: