যদি কোনও ব্যক্তির নাম নাল হয় তবে এটি কীভাবে ডাটাবেসটি ভেঙে ফেলবে?


55

আমি বিবিসিতে এই নিবন্ধটি পড়ছিলাম । এটি জেনিফার নুল নামে একজন ব্যক্তির গল্প এবং কীভাবে সে অনলাইনে ডাটাবেসগুলি ব্যবহার করে যেমন বিমানের টিকিট বুকিং, নেট ব্যাংকিং ইত্যাদির জন্য প্রতিদিন সমস্যা দেখা দেয় tells

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

এই পরিস্থিতি যখন ঘটবে তখন কেউ কারিগরি ব্যাখ্যা করতে পারেন? ফর্ম বৈধতা কি কেবল একটি string == NULLবা কিছু করছে? তবুও ভাবি না NULL is same as "NULL"


32
নিবন্ধটি অবশ্যই একজন সাংবাদিক লিখেছিলেন। নালগুলি অনেক বিভ্রান্তির কারণ, আপনি কোনও সাংবাদিক কম বিভ্রান্ত হওয়ার আশা করবেন না।
ypercubeᵀᴹ

2
প্রত্যেকে: সম্পর্কিত প্রশ্ন বা নিবন্ধগুলির লিঙ্কযুক্ত মন্তব্যগুলি নীচে একটি সম্প্রদায়ের উইকি উত্তরের দিকে সরানো হয়েছে । দয়া করে এই পৃষ্ঠায় আরও লিঙ্ক যুক্ত করার পরিবর্তে সেই উত্তরে সম্পাদনা করুন (বা একটি সম্পাদনার পরামর্শ দিন)।
পল হোয়াইট

উত্তর:


42

আমি ডাটাবেস ইন্টারফেস দেখেছি (যেমন ফ্রেমওয়ার্ক লাইব্রেরি) যা নাল কলামের স্ট্রিং হিসাবে 'নাল' ফেরায়। আমি বিশ্বাস করি যে এখানে একটি পতাকা ছিল যা এটি ডিবাগিংয়ের জন্য চালু বা বন্ধ করে দেবে। এই পতাকাটি বিকাশকারীদের সহজেই নির্ধারণ করতে দেয় যে খালি ক্ষেত্রটি নাল মান বা খালি মানের ফলাফল of এটি একটি খারাপ সেটিংস, বিশেষত উত্পাদনের ক্ষেত্রে এবং নিবন্ধে বর্ণিত সমস্যাগুলি ব্যাখ্যা করবে।

'নাল' কে নাল মান রূপান্তর করার বিপরীত প্রক্রিয়াকরণ একটি নাম ক্ষেত্রের জন্য একটি অ্যাপ্লিকেশন ত্রুটি উত্পন্ন করবে। আমি এটি বরং দ্রুত সমাধান হবে আশা করি।


প্রকৃতপক্ষে - এটি টাইপযুক্ত ভাষার জন্য ফ্রেমওয়ার্কগুলিতে বেশ সাধারণ যেখানে সমস্ত ডেটা স্ট্রিংয়ে রূপান্তরিত হয়। আমি এটিতে কাজ করার পরে কয়েক বছর হয়ে গেছে, তবে আমি বিশ্বাস করি, উদাহরণস্বরূপ, কোল্ডফিউশনের প্রাথমিক সংস্করণগুলিতে এই সমস্যা ছিল।
জুলস

25

আপনার বিভ্রান্তির একটি ভাল অংশ সাংবাদিকের কাছ থেকে এসেছে এমন একটি ভাল সুযোগ রয়েছে। নিবন্ধটি কেবলমাত্র ডাটাবেস নয়, পুরো অ্যাপ্লিকেশন সিস্টেমগুলি ব্যবহার করে সমস্যার বিষয়ে কথা বলে talks সম্পূর্ণরূপে যুক্তিসঙ্গত যেহেতু এটি একটি বিশাল লেখার অংশ যা জনসাধারণের ব্যবহারের উদ্দেশ্যে করা হয় তবে প্রযুক্তিগত বিবরণগুলি লেখক কর্তৃক গ্লোবড বা ভুল বোঝাবুঝি।

সম্ভবত ডিবি'র এপিআইয়ের পরিবর্তে অ্যাপ্লিকেশন স্তরে এই সমস্যাগুলির বেশিরভাগ সমস্যা দেখা দিয়েছে। যাদু মানগুলি একটি বিরোধী-নিদর্শন যা হাস্যকরভাবে শিল্প থেকে সরে যেতে শক্ত stamp খুব সহজেই কোনও প্রোগ্রামার "" নাল "টাইপ করা কেউ'র লাইনে শর্ত লিখতে পারতেন? তাদের অবশ্যই অর্থ নেই যে এর কোন মূল্য নেই, কারণ এটাই নাল মানে!" এসকিউএল ইনজেকশন প্রতিরোধে একটি বিভ্রান্তিকর চেষ্টাও নুলের উল্লিখিত দুর্ব্যবহারের জন্য বা হাওয়াইয়ানের শেষ নামতে দায়ী হতে পারে যা একটি একক উক্তি রয়েছে, এটি স্ট্যান্ডার্ড এসকিউএল স্ট্রিং ডিলিমিটারও।

কোনও অ্যাপ্লিকেশন যা এই মানগুলিকে ভুলভাবে NULL তে রূপান্তর করে বা একটি খালি স্ট্রিং সহজেই ত্রুটিগুলি তৈরি করতে পারে যদি ব্যবসার যুক্তি বা ডিবি সীমাবদ্ধতা কিছু ভিন্ন প্রত্যাশা করে। নিবন্ধে বর্ণিত হতাশার অভিজ্ঞতার অভিজ্ঞতার ফলে এটি স্বাভাবিকভাবেই আসে।


5
আমি জানতাম না ওব্রিয়ান হাওয়াইয়ান ছিল।
glglgl

19

নিবন্ধটি নিজেই স্ট্যাক ওভারফ্লো প্রশ্নের একটি লিঙ্ক অন্তর্ভুক্ত করেছে যা সমস্যাটি দেখায়; এটি একটি ফ্লেক্স অ্যাপ্লিকেশনটিতে ছিল যেখানে কোড:

currentChild.appendChild("Fred");

Fredএকটি এক্সএমএল নথিতে শব্দ যুক্ত একটি উপাদান যুক্ত করবে তবে কোডটি:

currentChild.appendChild("null");

একটি শূন্য উপাদান সংযোজন করবে, "নাল" পাঠ্যযুক্ত উপাদান নয়।

XML, প্রতি সে, টেক্সট মান "NULL" নিয়ে সমস্যা নেই, সুতরাং এই জাতীয় পাঠ্য সহ কোনও সমস্যা হবে না। আসলে, NULLXML এর মোটেই কোনও বিশেষ অর্থ নেই।


13

আমার মনে হয় না যে আমি উল্লেখ করেছি দেখেছি: আমরা কেবল এসকিউএল সম্পর্কে কথা বলছি না।

নামটি ডাটাবেসে শুরু হতে পারে / শেষ হতে পারে ... তবে সাধারণত সেখানে পেতে বহুবিধ চ্যানেল জড়িত। ডাটাবেস, এসকিএল, পিএইচপি, এইচটিএমএল, জাভাস্ক্রিপ্ট ... জাভা, সি #, ভিবি, পার্ল, ফাইথন, রুবি, ব্যাশ, ব্যাচ, ইত্যাদি, ইত্যাদি ... ইত্যাদি

পাইপলাইনের এই পদক্ষেপগুলির প্রত্যেকটিতে ডেটা এক ফর্ম্যাট থেকে অন্য ফর্ম্যাটে রূপান্তর করতে পারে। এসকিউএল টেবিলগুলি থেকে, জসন, এক্সএমএল, সিএসভি ইত্যাদিতে ...

এই জটিল চেইনের যে কোনও সময়ে, এটি কেবলমাত্র খারাপ প্রোগ্রামিংয়ের একটি স্পট বা একটি अस्पष्ट প্রোগ্রামিং ভাষা গ্রহণ করবে ( উদাহরণস্বরূপ জাভাস্ক্রিপ্ট নাল হ্যান্ডলিং ) ...

সুতরাং নিজেকে ডাটাবেসে থাকা সমস্যা সীমাবদ্ধ করবেন না ... কারণ এটি "স্ট্যাক" এর যে কোনও জায়গায় হতে পারে।


8

মূলত এই জনপ্রিয় প্রশ্নের মন্তব্য হিসাবে বিভিন্ন লিঙ্কগুলির জন্য সম্প্রদায় উইকি উত্তর


4

সম্পর্কিত ডেটাবেসগুলিকে নিখোঁজ বা অপ্রয়োজনীয় মান সমন্বিত করতে হবে। উদাহরণস্বরূপ, গ্রাহকদের তালিকায় একটি মোবাইল ফোন নম্বর বা লিঙ্গ অন্তর্ভুক্ত থাকতে পারে। যদি কোনও কর্পোরেশন গ্রাহক হতে চায় - তবে এর লিঙ্গটি কী হওয়া উচিত?

একটি মান অনুপস্থিত দেখানোর জন্য একটি বিশেষ সূচক ব্যবহৃত হয়। এই বিশেষ পতাকাটি হল NULL। সুতরাং স্লোপি প্রোগ্রামিংয়ের কারণে অনুপস্থিত মান সূচক - নুল - জেনিফার নুলের উপনামের সাথে বিভ্রান্ত হতে পারে, সম্ভবত তার প্রকৃত নামটিকে প্রকৃত মানের পরিবর্তে অনুপস্থিত ডেটা হিসাবে ব্যাখ্যা করতে পারে।

এটি কিছুটা ব্যাংক অ্যাকাউন্ট খোলার মতো তবে কোনও অর্থ জমা করা নয়। ভারসাম্য শূন্য। এর অর্থ এই নয় যে আপনার কোনও ভারসাম্য নেই। এর অর্থ হল আপনার ভারসাম্য রয়েছে এবং এর মান "0"। তবে স্লোপি প্রোগ্রামিং শূন্যের ভুল ব্যাখ্যা করতে পারে কারণ "অস্তিত্ব নেই" এবং নির্ধারণ করতে পারে যে আপনার কোনও অ্যাকাউন্ট নেই।


2

এখানে প্রচুর দুর্বল লিখিত সফ্টওয়্যার এবং ফ্রেমওয়ার্ক রয়েছে যা নুল নামে কারও সাথে অদ্ভুত আচরণ করবে।

তবে আসুন মানব উপাদানটি ভুলে যাবেন না: সম্ভবত পর্দা এবং প্রিন্টআউটগুলিতে লোকেরা নামটি দেখে এবং এটি একটি ভুল বলে মনে করে এবং সেই ব্যক্তিকে মুছে ফেলার আরও একটি সম্ভাব্য কারণ কি?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.