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