ডাটাবেস বৈশিষ্ট্যগুলিকে কেন উপেক্ষা করা হচ্ছে এবং পরিবর্তে মাঝারি স্তরে পুনর্বিন্যাস করা হচ্ছে?


83

( "ডাটাবেস স্বাধীনতা" বাদে ) প্রধান কারণগুলি কী যা বর্তমানে বেশিরভাগ তথ্যপ্রযুক্তি প্রকল্পগুলি ওরাকল ১১ জি এবং এসকিউএল সার্ভার ২০০৮-এর মতো আধুনিক ডাটাবেস ইঞ্জিনগুলিতে উপস্থিত বৈশিষ্ট্যের সম্পদ উপেক্ষা করে বলে মনে হচ্ছে?

বা, হেলসিঙ্কি ঘোষণাপত্র ব্লগ থেকে ধার নেওয়া যা এটি এইভাবে রাখে:

বিগত বিশ বছরে আমরা লক্ষ্য করেছি যে ডিবিএমএসের ভিতরে আমাদের কাছে উপলব্ধ কার্যকারিতা (বৈশিষ্ট্যগুলি) দ্রুত বৃদ্ধি পেয়েছে। এই বৈশিষ্ট্যগুলি আমাদের ডাটাবেস অ্যাপ্লিকেশনগুলি তৈরি করতে সক্ষম করেছে। নব্বইয়ের দশকে আমরা সবাই কী শুরু করেছিলাম?

কিন্তু তখন নতুন সহস্রাব্দের ভোরে কিছু ঘটেছিল। এবং এটি কোনও গোপনীয়তার সাথে একটি ডেটাবেস অ্যাপ্লিকেশন প্রকল্পের ভিতরে DBMS এর ভূমিকা তুচ্ছ হয়ে যায়। (...) নতুন সহস্রাব্দের হিসাবে আমরা সমস্ত অ্যাপ্লিকেশন যুক্তিটি ডিবিএমএস থেকে বের করে মাঝারি স্তরের সার্ভারগুলিতে চাপছি। ডিবিএমএসের বাইরে প্রয়োগ করা স্টাফের কার্যকারিতাটি বিস্ফোরিত হয়েছে এবং বৈশিষ্ট্যযুক্ত সমৃদ্ধ ডিবিএমএস সারি-সঞ্চয় ব্যতীত অন্য কোনও কারণে কার্যকরভাবে ব্যবহৃত হয় না।

আমরা মত স্টাফ সম্পর্কে কথা বলছি

  • ডেটা এপিআই হিসাবে ব্যবহৃত সুরক্ষিত পদ্ধতিগুলি (সুরক্ষা এবং অতিরিক্ত নেটওয়ার্ক ট্র্যাফিক এড়াতে)
  • বস্তুগত মতামত
  • পরিবর্তে-ট্রিগারগুলি
  • শ্রেণিবদ্ধ জিজ্ঞাসা (এর মাধ্যমে সংযুক্ত)
  • ভূগোল (স্থানিক তথ্য ধরণের)
  • বিশ্লেষণ (লিড, ল্যাগ, রোলআপ, কিউব, ইত্যাদি)
  • ভার্চুয়াল ব্যক্তিগত ডেটাবেস (ভিপিডি)
  • ডাটাবেস-স্তরের নিরীক্ষণ
  • ফ্ল্যাশব্যাক অনুসন্ধান
  • এক্সএমএল জেনারেশন এবং ডাটাবেসে এক্সএসএল রূপান্তর
  • ডাটাবেস থেকে HTTP কলআউট
  • পটভূমি কাজের সময়সূচী

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


13
+1 সুন্দর কথোপকথন-ফ্রেমার।
ড্যান রোজনস্টার্ক

আউটরের যোগদানের প্রস্তাবের জন্য আপনি কি এই নমুনা প্রশ্ন হিসাবে পোস্ট করতে পারেন: অঞ্চল 51.stackexchange.com/proposals/4260/outer-join (আমি এটি করব এবং এট্রিবিউট সরবরাহ করব, তবে আমি ইতিমধ্যে আমার 5 টি প্রশ্নের সীমাতে আছি)
জো

উত্তর:


55

কারণ সঞ্চিত পদ্ধতি:

  • আরও একটি বিকাশ ভাষা যুক্ত করুন, ক্রমবর্ধমান জটিলতা এবং সম্ভাব্য অপ্রয়োজনীয় কোড (উভয় ভাষায় লিখিত যুক্তি) যুক্ত করুন;
  • সাধারণত পিএইচপি, সি #, জাভা, পাইথন ইত্যাদির চেয়ে খারাপ সরঞ্জামদান, পর্যবেক্ষণ এবং ডিবাগিং ক্ষমতা থাকে;
  • বেশিরভাগ মাঝারি স্তরের ভাষার চেয়ে কম দক্ষ;
  • কেবলমাত্র উচ্চ ভলিউম ডেটা ট্রান্সফর্মেশন (যেখানে আপনি সার্ভার রাউন্ডট্রিপ এড়ানো) এর সাথে একটি সুবিধা পাবেন যা কেবলমাত্র সর্বনিম্ন প্রকৃত ব্যবহারের প্রবণতা।

বলা হচ্ছে, এটি সি # এএসপি.এনইটি অ্যাপ্লিকেশনগুলির একটি সাধারণ পদ্ধতি।

জেফ অ্যাটউড যেমন বলেছিলেন, সঞ্চিত পদ্ধতিগুলি ডাটাবেসের সমাবেশের ভাষা এবং তাদের প্রয়োজন না হলে লোকেরা সমাবেশ ভাষার কোডে প্রবণতা পোষণ করে না।

আমি প্রায়শই বস্তুগত দৃষ্টিভঙ্গি ব্যবহার করেছি এবং কখনও কখনও ওরাকলে সংযুক্ত ব্যবহার করেছি, যার মধ্যে আমি বিশ্বাস করি না যে মাইএসকিউএলে আছে।

আমি ডাটাবেসে এক্সএমএল / এক্সএসএলটি ব্যবহার করার প্রবণতা করি না কারণ, ভাল, এর অর্থ আমি এক্সএমএল এবং এক্সএসএলটি ব্যবহার করছি।

ভৌগলিক বা স্থানিক ডেটা স্ট্রাকচারের ক্ষেত্রে, সম্ভবত কারণ সম্ভবত তাদের কেবল "বাছাই" করা শক্ত। এটি মোটামুটি বিশেষজ্ঞ অঞ্চল। আমি স্থানিক ডেটা কাঠামোতে মাইএসকিউএল ম্যানুয়ালটি পড়েছি এবং আমি নিশ্চিত যে এটি বিস্তৃত জিআইএস অভিজ্ঞতার সাথে আমার কাছে এবং আমার সীমিত প্রয়োজনগুলির (যা একটি বিন্দুর অক্ষাংশ / দ্রাঘিমাংশকে চিহ্নিত করার আশেপাশে থাকে) এটি উপলব্ধি করে না এটি নির্ধারণের জন্য সময় বিনিয়োগের পক্ষে মূল্যবান মনে হচ্ছে না।

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


34
আমি এই সত্যটি যুক্ত করব যে সঞ্চিত পদ্ধতিগুলি খুব কমই উত্স নিয়ন্ত্রণে রাখা হয়।
মুসিজেনিসিস

19
ঠিক আছে, এটি সত্য হতে পারে তবে তাদের উত্স নিয়ন্ত্রণে রাখা যায় না এমন কোনও কারণ নেই ।
ক্লিটাস

4
আমাদের সমস্ত এসপিগুলি সোর্স নিয়ন্ত্রণে রয়েছে, এটি একটি কারণ নয় কারণ একটি অজুহাত
এইচএলজিইএম

4
@Aric TenEyck: আপনার হয় এক্সেকিউটেবল উৎস নিয়ন্ত্রণে? কিছু এলোমেলো পাঠ্য ফাইল নয় যা (আশাকরি) তাদের জন্য সর্বাধিক সাম্প্রতিক উত্স কোড রয়েছে, তবে প্রকৃত সংকলিত প্রোগ্রামগুলি উত্স নিয়ন্ত্রণে আছে? মুল বক্তব্যটি হ'ল যতক্ষণ আপনার ভাল উত্স নিয়ন্ত্রণ এবং স্থাপনার প্রক্রিয়া থাকে ততক্ষণ .sQL ফাইলগুলি উত্স নিয়ন্ত্রণে রাখা সম্পূর্ণ পর্যাপ্ত। অবশ্যই, যে কোনও প্রক্রিয়া হিসাবে, এর অর্থ বিকাশকারীদের প্রোগ্রামটি পাওয়া উচিত, তবে এটি ডাটাবেস বা এসকিউএল কোড সম্পর্কিত কোনও সমস্যা নয়।
ড্যানিয়েল প্রাইডেন 18

8
আমি সম্মত হই যে এসপিদের "উচ্চ ভলিউম ডেটা ট্রান্সফর্মেশন (যেখানে আপনি সার্ভারের রাউন্ডট্রিপ এড়ান) এর সাথে একটি সুবিধা রয়েছে" এর সাথে আমি একমত। তবে, তারপরে আপনি বলেছেন যে "কেবলমাত্র সর্বনিম্ন ব্যবহারের ঝোঁক থাকে"। আমি মনে করি এটিই বিতর্কের মূল বিষয়: আপনার যদি এমন কোনও অ্যাপ্লিকেশন থাকে যেখানে উচ্চ ভলিউম ডেটা ট্রান্সফর্মেশনটি সর্বনিম্ন ব্যবহারের হয় তবে প্রচুর ডাটাবেসের কার্যকারিতা যুক্ত করা উপযুক্ত নয়। তবে, যদি কোনও টেবিলে আপনার বিলিয়নেরও বেশি রেকর্ড রয়েছে এবং আপনার 0.1 sec সেকেন্ডে 24 8-ঘন্টা স্লাইডিং গড় নির্বাচন করতে হবে, তবে ডাটাবেসটি আরও ভাল সমাধান হতে শুরু করে। সঠিক উত্তরটি আপনার আবেদনের উপর নির্ভর করে।
ড্যানিয়েল প্রাইডেন 18

36

কারণ বিকাশকারীরা এসকিউএল সম্পর্কে জানেন না। তারা হাইবারনেট এবং জেপিএ টীকা জাতীয় ভাষার স্তরের কনস্ট্রাক্টসের মতো সরঞ্জাম দ্বারা উত্পাদিত ডিডিএল এবং ডিএমএলের উপর নির্ভর করে। বিকাশকারীরা এগুলি মারাত্মকভাবে অদক্ষ কিনা তা বিবেচনা করে না কারণ তারা সাধারণ লগ স্তরের দ্বারা করুণার সাথে লুকিয়ে রয়েছে এবং কারণ ডিবিএগুলি উন্নয়ন দলের অংশ নয় of

এজন্য আমি সরঞ্জামগুলি আইব্যাটিস পছন্দ করি । তারা আপনাকে ডিবিএমএস নির্দিষ্ট বৈশিষ্ট্য সহ এসকিউএল লিখতে এবং বুঝতে সক্ষম করে।


সুতরাং আমি আপনার লিঙ্ক তাকান। । । আইবিটিস কি কোনও অর্ম নয়? একটি সরঞ্জাম রাখার পরিবর্তে আপনাকে কেবল একটি সংজ্ঞা দিতে হবে এটি কী আপনার জন্য?
অ্যান্ড্রুউইন

4
না, আইব্যাটিস কোনও ওআরএম নয়, এটি একটি কোয়েরি ম্যাপার। এটি টেবিলগুলিতে অবজেক্টগুলিকে মানচিত্র করে না তবে কোনও ভাষার কাঠামো, বস্তু বা না সম্পর্কিত অনুসন্ধান করে।

সুতরাং আপনি এটি কী আপনার জন্য এটি না করে কী কী বস্তুগুলি (ক্যোয়ারির ফলাফল এবং কী নয়) তা বলুন?
অ্যান্ড্রুউইন

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

4
@ অ্যান্ড্রুউইন: পুরো বিষয়টি হ'ল আপনি সিআরইউডি ফাংশনের চেয়ে অনেক বেশি ডাটাবেস ব্যবহার করতে পারেন ।
ড্যানিয়েল প্রাইডেন

21

আমি অনুমান করি এর একটি কারণ হ'ল ভেন্ডর লককিনের ভয়।

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

আমি এই উদাহরণটি সামনে আনব: বিশ্লেষণ পরিষেবাদি, রিপোর্টিং পরিষেবাদি ইত্যাদির সমস্ত কিছুই আপনার অ্যাপ্লিকেশনটির জন্য কী করতে পারে তা একবার বুঝতে পারলে এসকিউএল সার্ভারের "লককিন "টি আরও গ্রহণযোগ্য হতে পারে। প্রধান বাণিজ্যিক ডাটাবেস সিস্টেমগুলির জন্য, এটি এসকিউএল ডাটাবেস ইঞ্জিনকে "কেবল" নয় যা অ্যাকাউন্টে নেওয়া দরকার।


7
ডাটাবেসের চেয়ে ওআরএমের জন্য বেশি বিক্রেতার লককিন। বিশেষত ওয়েব-ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য ডাটাবেসগুলি পরিবর্তন করা খুব বিরল।
এইচএলজিইএম

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

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

4
আমার মন্তব্য বৈশিষ্ট্যগুলি সম্পর্কে অগত্যা ছিল না। একটি নির্দিষ্ট বৈশিষ্ট্যটির জন্য আমরা ব্যবহার করছিলাম, এমনকি ওরাকল এটি থাকলেও, এটি ভিন্নভাবে কাজ করে। সিনট্যাক্সে অন্য কিছু না হলে (এবং সাধারণত এটির চেয়ে বেশি কিছু থাকে)। সুতরাং যে সমস্ত পোর্ট এবং retested করতে হবে। এখানে যুক্তি হ'ল স্থানান্তরিত করার ওভারহেড সম্পর্কে যা তাৎপর্যপূর্ণ, তবে আপনি এটি দেখুন। আপনি কি পরামর্শ দিচ্ছেন যে সবাই ওরাকলকে ঠিকঠাক করে দেবে যাতে করে তাদের সমস্ত ঘাঁটি ?েকে যায়? <- এটি ছিনতাই হয় না। সাধারণ প্রকল্পটি কী হওয়া উচিত তার জন্য একটি সাধারণ ডিবি বেছে নেওয়ার বিরুদ্ধে আপনার কী আছে ?
মার্কো 18

17

"কেন ডাটাবেস বৈশিষ্ট্য উপেক্ষা করা হচ্ছে"।

কারণ তথাকথিত অনেক ডেভলপার ডেটা ম্যানেজমেন্ট সম্পর্কে সম্পূর্ণ অজ্ঞ, এবং আরও খারাপ এটি, তারাও তাদের অজ্ঞতা সম্পর্কে সম্পূর্ণ অজ্ঞ। "দক্ষ নয় এবং এটি সম্পর্কে অসচেতন", যার জন্য এটি একটি ঘণ্টা বাজায়।


4
আমি কিছু বিকাশকারীকে জানি, এবং আমি আসলেই সক্রিয় নই, আমি বেশিরভাগ স্থানিক ডেটাবেস (মডেলিং / ডিবিএ) নিয়ে কাজ করি তবে এটি সত্য। বিকাশকারীরা এটা জানেন না যে কোনও সহজেই বুদ্ধিমান ডেটাবেস তৈরি করা এবং রক্ষণাবেক্ষণ করা একটি জটিল কাজ।
জর্জ সিলভা

12

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


4
আমি ইতিমধ্যে কিছু প্রকল্প দেখেছি, যেখানে এই সমস্যাটি অনেক দেরিতে উপলব্ধি হয়েছিল। শীঘ্রই অ্যাপ্লিকেশনটি রোল আউট হওয়ার সাথে সাথে ডাটাবেসটি একটি বড় বোঝা হয়ে যায়। ডাটাবেস এবং অবজেক্ট ওয়ার্ল্ডের মধ্যে ডেটা মডেল বিচ্ছিন্ন হওয়া শুরু করে। কুৎসিত workaround উত্পাদনে নিক্ষিপ্ত হয়। একের পর এক ডাটাবেস সম্পর্কিত বাগগুলি উপস্থিত হয়। একটি বিশাল গণ্ডগোল পাইলস।
থিও লেনডরফ

10

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


17
আমি এমন কোনও প্রকল্পে যাইনি যেখানে নির্বাচিত আরডিএমএস পরে পরিবর্তিত হয়েছিল।

4
এমনকি একটি সংস্করণ থেকে অন্য সংস্করণে পরিবর্তনের কারণে ব্রেকিং পরিবর্তন হতে পারে।
অ্যান্ড্রুউইন

4
@ লুটজ: অ্যান্ড্রুউইন যা বলেছে তার কারণেই - এমনকি একটি একক পরিবর্তনও সম্ভবত পুরানো কোডটি ভেঙে দিতে পারে, তাই সবচেয়ে ভাল, নিরাপদতম উপায়টি পরিবর্তন করা নয়। অতএব, কেউ স্বেচ্ছায় তাদের আরডিবিএমএস পরিবর্তন করতে চায় না। তবে এর অর্থ এই নয় যে আপনি নিজের আরডিবিএমএসের উপর নির্ভর করতে চান না যেহেতু যদি এটির ঘাটতি দেখা যায় তবে আপনার সমস্ত কাস্টম সঞ্চিত প্রোক বা এটিতে যে পরিষেবাগুলি রয়েছে সেগুলি পুনরায় প্রয়োগ বা পোর্ট করা দরকার। অতএব, আমার বক্তব্য - আরডিবিএমএস স্টোরড প্রাকের মতো পরিষেবাদির পিছনে সামঞ্জস্যপূর্ণ উপায়ে ইন্টারফেস করার জন্য একটি নির্ভরযোগ্য উপায় সরবরাহ করে না।
চিআই

4
@ লুটজ: আমি এমন পরিস্থিতিতে ছিলাম যেখানে আমরা ডিবি পরিবর্তন করেছি। (আমরা 10+ বছরের পুরনো ওরাকল 8 ইনস্টলটিতে সর্বাধিক টেবিলের আকারটি হিট করেছি এবং ডিবিটিকে আপগ্রেড করার কোনও অর্থ ছাড়াই হিজরত করতে হয়েছিল ... যার অর্থ সবকিছু পুনরায় বাস্তবায়ন করা হয়েছিল।) আমরা সম্ভবত এটির চেয়ে বেশি লোক-ঘন্টা ব্যয় করেছি it একটি ওরাকল লাইসেন্সের জন্য দাম পড়তে হবে তবে সেগুলির জন্য বাজেট করা হয়েছিল।
জো

4
@ লুটজ: আমেন রাস্তাটি একটি ডেটাবেস ব্র্যান্ডটি স্যুইড ডাউন করার জন্য একটি সিস্টেম তৈরি করা "পূর্বে ইচ্ছা আগে রাখাই" এর সর্বোত্তম ঘটনাটি বাদে এটি "রাখার আগে দেবে না" রাখার মতো।
মুসিজিনিসিস

8

মাইএসকিউএল।

1990 এর দশকের শেষের দিকে এবং 2000 এর দশকের গোড়ার দিকে যখন ওয়েব অ্যাপ্লিকেশনগুলি বিস্ফোরিত হয়েছিল, তখন মাইএসকিউএলটি 3.3 বা 4.0 সংস্করণে ছিল এবং সাধারণগুলির উপরে কিছু সমর্থন করে না SELECT। এটি অবশ্য নিখরচায় এবং বেশিরভাগ লিনাক্স বিতরণে ইনস্টল করা হয়েছিল। ফলস্বরূপ, প্রোগ্রামারদের একটি প্রজন্ম ডেটাবেস সম্পর্কে জানেনি এবং সেগুলি কীভাবে ব্যবহার করবে তা জানে না।

এখনও এখন যে মাইএসকিউএল 5.1-এ রয়েছে এবং একটি বাণিজ্যিক সিস্টেমের বেশিরভাগ বৈশিষ্ট্য সমর্থন করে, যখন একটি নতুন এলএএমপি প্রকল্প চালু হয় তখন মাইএসকিউএল টেবিল এবং 3.3-যুগের কার্যকারিতা সহ একই ক্রাশযুক্ত পুরাতন ব্লগ এবং নিবন্ধগুলি টেমপ্লেট হিসাবে ব্যবহৃত হয় ।


6
+1 মাইএসকিউএল ভালের চেয়ে বেশি ক্ষতি করেছে - উভয়ই ডাটাবেসের খ্যাতি এবং এটি ব্যবহারকারী প্রোগ্রামারদের পক্ষে।
ড্যানিয়েল প্রাইডেন

সম্মত - আমি আসলে এটি করেছি, মাইএসকিউএল দিয়ে শুরু করে এবং পরে কেবল একটি বাস্তব ডাটাবেস সিস্টেম আর কী করতে পারে তা পূরণ করে (বিদেশী কী সম্পর্ক? ক্যাসকেডিং মোছা? ট্রিগার? অনন্য সূচক? সীমাবদ্ধতা?)।
কিথ উইলিয়ামস

7

এসকিউএল যেমন হ্যাস্কেলের মতো একই কারণে ব্যর্থ হচ্ছে। ভাষার সাফল্য নির্ধারণ করে এমন মেট্রিক হ'ল বিশুদ্ধতা নয়, কম্পিউটারগুলির দ্বারা ব্যাখ্যা সহজে করা নয়, তবে এতে লিখিত প্রোগ্রামগুলি বজায় রাখা কতটা কঠিন।

খুব সহজ ভাষা এমনকি আমার প্রাণীরা ব্যর্থ হয়। 10 জনের মধ্যে 1 জনের মধ্যে সি # এর মতো সোজা ভাষা ব্যবহার করার দক্ষতা রয়েছে। তবে এই 10% এর মধ্যে 10 জনের মধ্যে 1 জন বা সমস্ত লোক 1% কার্যকরভাবে এসকিউএল বা হাস্কেলের মতো ভাষা ব্যবহার করতে পারেন।

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

দ্বিতীয় সমস্যাটি হ'ল এসকিউএল কার্যকরভাবে উত্স সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয়। এসকিউএল সত্যিই আপনি প্রথমবার এটি পেয়েছেন যে ধারণাটি বরাবর নির্মিত। সুতরাং, এটি কেবল বিকাশকারীদের পক্ষে উপযুক্ত নয়, এটি উন্নয়ন প্রক্রিয়ার জন্য একটি দুর্বল ম্যাচও।


ভাল যুক্তি. আমি সবসময় ভাবতাম যে এই এসপিরা কেন ফ্রিগিনের ডাটাবেসের অভ্যন্তরে রয়েছেন, পরিবর্তণযোগ্য able কেন তাদের বহিরাগত পাঠ্য ফাইলগুলিতে নেই, সম্ভবত ক্যাশে করার বিকল্প রয়েছে? এছাড়াও, এসকিউএল কত কঠিন তা সম্পর্কিত সত্য। এসকিউএল উদ্ভট স্টাফ: বাইরের বনাম অভ্যন্তরীণ যোগদানের বিষয়ে সাক্ষাত্কার প্রার্থীদের জিজ্ঞাসা করার পরিবর্তে, আমি যে
জিনিসটি

13
বাহ, ঠিক ভুল এসকিউএল সি # বা নেট ব্যবহার করে যে কোনও কিছুর চেয়ে শিখতে এবং ব্যবহার করতে (এবং ভালভাবে ব্যবহার করা) সহজতর মানের একটি অর্ডার। বেশিরভাগ প্রোগ্রামার এখন আর চেষ্টা করে না।
আরবেরি ইয়ং

12
এসকিউএলের ডিক্যারেটিভ সিনট্যাক্স রয়েছে, সিওবিওএল পদ্ধতিগত, সুতরাং আপনার "তথ্য" দুর্বল। আমি ৩০ টিরও বেশি বিভিন্ন ভাষা শিখেছি এবং এসকিউএল প্রশ্নবিদ্ধ ছিল সহজ শেখার মধ্যে অন্যতম, অনেকগুলি অধ্যয়নগুলি যখন এটি পুনরায় তৈরি করা হয়েছিল তখন (এবং সাধারণভাবে এটি ঘোষিত ভাষাগুলিই অত্যাবশ্যকীয় ভাষাগুলির চেয়ে শিখতে সহজ) । উদ্বেগ হিসাবে এই নেট ব্যবহারযোগ্যতা ছিল যে কোনও API ডাব্লু 20 কে + এন্ট্রি পয়েন্টগুলি শিখতে এবং দক্ষ হতে আগ্রহী হওয়ার বিষয়টি কমিয়ে দেয় না
আরবারি ইউং

4
আরবেরি ইয়ং, আমি পারলে আপনার মন্তব্যটি
কয়েক

4
লাকলিলিডি - এটি মূলত এটি কারণ যে এসকিউএল এর চেয়ে নতুন প্রোগ্রামারদের সি # তে আরও বেশি অভিজ্ঞতা থাকে। এসকিউএল প্রায়শই একটি সরল-এবং-থেকে-বিন্দু ঘোষণাকারী ভাষা। কোড লেখার এবং বোঝার জন্য এর সুস্পষ্ট সুবিধা রয়েছে। বিকাশকারীরা প্রযুক্তিগত ওওপি এবং ডিজাইনের প্যাটার্ন বিষয়গুলির পরিবর্তে ব্যবসায়িক সমস্যার দিকে মনোনিবেশ করতে পারেন। আমরা লিনকিউ-এর মতো বৈশিষ্ট্যগুলি দেখছি এটির অন্যতম প্রধান কারণ যা আবশ্যক ভাষায় এই সুবিধাগুলি নিয়ে আসে।
জেসন ক্রেসোয়াটি

7

ডিবিএমএসের চেয়ে মধ্যবর্তী স্তরটিকে ঠিক করা / পুনর্নির্দিষ্ট করা সহজ।

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


6

আমি বেশ কয়েক জনকে নিয়ে এসেছি যারা এই জাতীয় বৈশিষ্ট্যগুলির উপস্থিতি সম্পর্কে কেবল অবগত ছিল না - তারা মাইএসকিউএলের প্রথম দিনগুলিতে তাদের দাঁত কাটত এবং তারা আর কখনও কিছুই ব্যবহার করেনি এবং তারা এখনও রাখেনি they এমনকি মাইএসকিউএলে নতুন স্টোরেজ টেবিলগুলির অগ্রগতি। অথবা তারা স্কুলে ডাটাবেস শিখেছে এবং তারা যে জিনিসগুলি মিস করেছে তার সবগুলি দেখতে কখনও ফিরে যায় নি।

এগুলি পেতে তারা খালি ন্যূনতম এসকিউএল শিখতে পারে এবং বিভিন্ন আরডিবিএমএস প্রস্তাবিত বিভিন্ন এক্সটেনশনের সমস্ত উপলব্ধি করে না।

একটি প্রকল্পে, আমি বস্তুগত দৃষ্টিভঙ্গি পছন্দ করতে চাই ... তবে আমি পোস্টগ্র্রেস ব্যবহার করছি। আমি অন্য প্রকল্পের জন্য স্থানিক ডেটা ধরণের ব্যবহার করতে চাই, তবে আমার একটি হ্যাক করতে হবে, বা মাইএসকিউএল এর জেদী সাথে মোকাবেলা করার জন্য ডাটাবেসগুলি পরিবর্তন করতে হবে যেগুলি বাতিল হবে না। এমনকি ওএলটিপি-র দীর্ঘকালীন চলমান প্রশ্নের মোকাবিলার জন্য কীভাবে ওরাকেলের লেনদেনের ধারাবাহিকতাটি অক্ষম করতে হবে তাও আমি বের করেছিলাম যা মাইএসকিউএলে কোনও সমস্যা হত না।

আমি একটি প্রদত্ত সমস্যার জন্য সাধারণত ডাটাবেসের ঘাটতিগুলির চারপাশে কোড করতে পারি, তবে সমস্যার একটি অংশটি কাজের জন্য সঠিক সরঞ্জাম নির্বাচন করা - একটি বর্তমান প্রকল্পে, আমরা ডেটা প্রতিরূপে মান-মাস নষ্ট করেছি কারণ আমরা পোস্টগ্র্রেস ব্যবহার করে, এবং তারা কীভাবে আমরা প্রতিলিপি করতে চাই তা আসলে তাদের জানার আগে তারা স্লোনি -১ এ সিদ্ধান্ত নিয়েছিল।

... আমি মত হচ্ছে এই প্রশ্ন দেখার 'কেন নয় আরও অনেক বেশি মানুষের ব্যবহার করেন বৈশিষ্ট্য এক্স মধ্যে ভাষা Y ' - যদি তারা একজন বিশেষজ্ঞ না হন ভাষা Y তারা জানে না পারে বৈশিষ্ট্য এক্স বিদ্যমান।

(এবং এটি ডিবিএ শংসাপত্র পাওয়ার জন্য সমর্থন হিসাবে গ্রহণ করবেন না ... আমি এমন কিছু ওরাকল ডিবিএ জানি যা তাদের ভেজা বস্তা থেকে বেরিয়ে আসতে পারেনি; আমি ৮ ই দিনের মধ্যে সমস্ত কোর্স নিয়েছি, তবে আমি এই গ্রুপের সাথে লম্পট হতে চাইনি বলে পরীক্ষা দিতে অস্বীকৃতি জানালাম)


4
PostgreSQL স্থানিক ডেটা ধরণের জন্য সমর্থন করে।
জর্জ সিলভা 17

পোস্টজিআইএস ( postgis.refferences.net ) পিজি ব্যবহার করার একটি স্ট্যান্ডার্ড কারণ আপনি যদি ইতিমধ্যে না হন তবে :)
গ্রেগ লিন্ড

5

আমি মনে করি যে সমস্ত কিছুর বাকি অংশগুলিকে ছাপিয়ে যাওয়ার সবচেয়ে বড় কারণটি যখন একাধিক অ্যাপ্লিকেশন একই ডেটা ভাগ করে নিচ্ছে তখন রিলেশনাল ডাটাবেস সিস্টেমগুলি নাটকীয়ভাবে আরও গুরুত্বপূর্ণ হয়ে ওঠে। কোডের বিখ্যাত পেপারটির শিরোনাম "বৃহত্তর শেয়ারড ডেটা ব্যাংকগুলির জন্য ডেটা সম্পর্কিত সম্পর্কিত মডেল " (জোর দেওয়া খনি)।

লোকেরা ভাবার প্রবণতা রয়েছে যে তারা এখন যে আবেদনটি লিখছেন তা সর্বদা তাদের দল দ্বারা নিয়ন্ত্রিত হবে; এবং এটি সর্বদা অ্যাপ্লিকেশন দ্বারা উত্পন্ন ডেটাতে আগ্রহী মানুষের সমস্ত চাহিদা পূরণ করবে। যদি কোনও নতুন প্রয়োজন দেখা দেয় তবে তা বিদ্যমান অ্যাপ্লিকেশনটিতে একটি নতুন বৈশিষ্ট্য যুক্ত করে কোনও নতুন অ্যাপ্লিকেশন তৈরি না করে সন্তুষ্ট হবে।

তবে অনেক ক্ষেত্রে (অবশ্যই, সকলেরই নয়; প্রতিটি পরিস্থিতি আলাদা), সেই বিকাশ মডেল দীর্ঘ মেয়াদে খুব ভাল কাজ করে না। অ্যাপ্লিকেশন দ্বারা উত্পন্ন ডেটা যেমন সংগ্রহ করে এবং ব্যবসায়ের জন্য আরও গুরুত্বপূর্ণ হয়ে ওঠে, তেমনি বিভিন্ন ব্যক্তির ডেটা কীভাবে ব্যবহার করতে হয় সে সম্পর্কে আকর্ষণীয় ধারণা থাকবে। যখন এটি ঘটে তখন আপনার যদি কোনও সম্পর্কিত ডেটাবেস পরিচালনার ব্যবস্থা না থাকে তবে আপনি একটি বড় চ্যালেঞ্জের মধ্যে রয়েছেন।


ডিডিডি বিকাশকারীরা এখন "একটি সত্য ডেটাবেস" কে একটি অ্যান্টি-প্যাটার্ন হিসাবে বিবেচনা করে তা সম্ভবত অবাক করতে পারবেন না। সর্বশেষ প্রবণতা হ'ল একাধিক ডাটাবেস যা দুর্নীতি বিরোধী স্তরগুলির মাধ্যমে সিঙ্ক হয়েছে।
ড্যানিয়েল অাগার

5

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


4
সুতরাং ... আপনি "লোড-ভারসাম্য অ্যাপ্লিকেশন সার্ভারের পুরো খামার" ব্যবহার করতে পারেন, তবে আপনি কেবল লোড-ভারসাম্য ডাটাবেস সার্ভারের পুরো খামারটি ব্যবহার করতে পারবেন না কারণ ...? আপনি শুধু জানেন না কারণ কিভাবে? তারপরে আপনার সম্ভবত ডেটাবেস ক্লাস্টারিং এবং প্রতিলিপি সম্পর্কে শিখতে হবে। কারণ এটি অবশ্যই সম্ভব।
ড্যানিয়েল প্রাইডেন 18

দুঃখিত, আমার যোগ্য হওয়া উচিত যে আমার কাছে কেবল এসকিউএল সার্ভারের অভিজ্ঞতা থাকতে হবে, যা আফাইক লোড-ব্যালান্সিং সমর্থন করে না, কেবল ব্যর্থ ওভার।
খ্রিস্টান হাইটার 18

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

4
@ ড্যানিয়েল - লোড ব্যালেন্সিং অ্যাপ্লিকেশন সার্ভারগুলি ভারসাম্যপূর্ণ ডাটাবেস সার্ভারগুলির তুলনায় অনেক সহজ। এছাড়াও, অতিরিক্ত অ্যাপ্লিকেশন সার্ভার কেনার জন্য এটি খুব সস্তা (যেমন কেবলমাত্র একটি O / S এবং স্ট্যান্ডার্ড মাল্টি-সিপিইউ সার্ভার পান) অতিরিক্ত ডেটাবেস সার্ভারের পরিবর্তে (ও / এস + ব্যয়বহুল ডিবি লাইসেন্স + দ্রুত ড্রাইভ, টন সহ বিফাই ডিবি সার্ভার স্মৃতি ইত্যাদি)।
বীপ বীপ

@ ড্যানিয়েল প্রাইডেন: আপনি নিজের বক্তব্য সম্পর্কিত প্রশ্নের উত্তর দিন। "আপনি কেবল লোড-ভারসাম্য ডাটাবেস সার্ভারের পুরো খামারটি ব্যবহার করতে পারবেন না কারণ ..." এটির জন্য আপনাকে নাক দিয়ে দিতে প্রস্তুত থাকতে হবে।
কক্সি

5

আমি অনেক পরিস্থিতিতে পড়েছি যেখানে কর্পোরেট রাজনীতি ("আমরা এসকিউএল সার্ভারে অ্যাক্সেসের অনুমতি দিই না তাই কয়েক মিলিয়ন সারি প্রক্রিয়াকরণের জন্য অ্যাক্সেসের মতো কম শক্তিশালী ডিবিএমএস ইনস্টল করতে দেয় এবং লক্ষ লক্ষ সারি দিয়ে অন্য টেবিলে যোগ দিতে পারি এবং সেই আমদানিকে স্বয়ংক্রিয় করতে দেয়) .. ") এমনকি এমন প্রযুক্তিগত রাজনীতিও ঘটতে পারে (" আমি জানি অ্যাক্সেস সেই পরিমাণের ডেটা পরিচালনা করতে পারে এবং তা না হলেও আমরা এমডিবিকে বেশ কয়েকটি এমডিবিতে বিভক্ত করতে পারি এবং সেগুলি উল্লেখ করতে পারি ..... ")

ইউজিএইচ। কর্পোরেট রাজনীতি এবং প্রযুক্তিগত রাজনীতি বা এমনকি অজ্ঞতা আমাকে অনেকগুলি বৈশিষ্ট্য ব্যবহার করতে বাধা দিয়েছে।

আরেকটি উদাহরণ - আমি 100% মাইক্রোসফট দোকান যেখানে এসকিউএল সার্ভার মধ্যে সংরক্ষিত পদ্ধতি ব্যবহার করবেন কোনো কারণ দেখতে পছন্দের DBMS। তবে, যে আইটি লোকটি শেষ পর্যন্ত সমাধানটির মালিক হতে চলেছিল সে এসপিগুলিতে "হালকা" ছিল, তাই আমাকে অন্যান্য পদক্ষেপ নিতে হয়েছিল। আমি বোঝাতে চাইছি যে কিছু কেন সেই "বৈশিষ্ট্য" তাদের দোকানে উপেক্ষা করেছিল তার একটি নিখুঁত উদাহরণ রয়েছে।

আমি অন্য একটি দোকান জানি যা এখনও ডস ফক্সপ্রো 2 ব্যবহার করে কারণ তাদের একমাত্র আইটি লোকটি বিদ্যমান সিস্টেমটি সেভাবেই লিখেছিল এবং সেভাবেই সমস্ত নতুন স্টাফ তৈরি করা হবে। কেন? আমরা কি সময়ের সাথে সাথে চলতে পারি? সেখানকার বিপণনকারীদের অনেকেরই একসাথে একাধিক ডস প্রম্পট খোলা থাকে, ফক্সপ্রো "জবস" তাদের সাথে চালিত হয়েছে যা আমি দেখেছি সবচেয়ে কুৎসিত প্রতিবেদন তৈরি করতে। তবে এটি কার্যকর - আমি তাদের এটি দেব। এটি কাজ করে - তাদের প্রধান টেবিলের সাথে তাদের 12 মিলিয়ন সারি এবং 50+ অন্যান্য টেবিল যা তারা মূল টেবিলের সাথে 'যোগদান' করে (সমস্ত একবারে স্পষ্টতই নয়) তবে মানুষ ... এটি 1991 সালের অতীত! এমনকি আপনি আপনার প্রশ্নে যে বুলেট তালিকা সরবরাহ করেছেন তা থেকে তারা একটি আইটেম নিয়ে আলোচনা করতে চান না।

স্টাফ এই কারণেই অনুমান করি।


4

আমি বলব সবচেয়ে বড় কারণ হ'ল বেশিরভাগ লোক তাদের সম্পর্কে জানে না। কেউ একবার কোনও সমস্যার সমাধান বের করে ফেললে এটি একইরকমের ডিফল্ট সমাধান হয়ে যায়। নির্বাচন করুন * থেকে টেবিল দীর্ঘ সময়ের জন্য অনেক লোকের জন্য কাজ করেছে, তাই তারা পুরানো সমস্যার নতুন পদ্ধতির দিকে তাকিয়ে মাথা ঘামায় না।

অন্য কারণটি হ'ল কখনও কখনও ডেটাবেস ব্যবহারের চেয়ে কোডে এটি লেখা খুব সহজ। শেল্ফ উপাদানটি কিনে আপনার নিজের বনাম ঘূর্ণায়মান হিসাবে একই ধারণা। প্রাক-লিখিত বৈশিষ্ট্যটি ব্যবহার করা আপনার সমস্যাগুলি বহুবার সমাধান করতে পারে তবে একবারে একবারে আপনাকে এমন কিছু করা দরকার যা প্রাক-লিখিত উপাদানগুলি সম্পাদন করতে পারে তার সক্ষমতা বাইরে।


4

দুর্দান্ত প্রশ্ন, এবং ভাল আলোচনা।

এটির আরেকটি উপায় হ'ল "কেন ডিবি আপত্তি করল না?" যা মুদ্রার অন্য দিক। ডিবিগুলি একটি বিরক্তিকর বিমূর্ততা হিসাবে অব্যাহত রয়েছে যা এখনও সেখানে প্রতিটি অ্যাপ্লিকেশনটিতে প্রবেশ করে, তবে তারা আধুনিক অ্যাপ্লিকেশনগুলির ওও যুক্তির সাথে বেমানান।

এটি প্রকৃতপক্ষে একটি অদ্ভুত অবস্থা যা আমরা অ্যাক্টিভেকর্ড, হাইবারনেট এবং অন্যান্য মিডলওয়্যারগুলিতে ডিবিগুলির কার্যকারিতা লুকাতে এবং নকল করি। তবে ভাঙনের সময়ে ("অবজেক্ট-রিলেশনাল ইম্পিডেন্স মেলে না") দৃষ্টান্তগুলির ক্ষেত্রে এটিই ঘটে। আমরা কি আমাদের ওও অ্যাপসের সমতুল্য ডাটাবেস প্রযুক্তিগুলিতে রূপান্তর করব (যেমন, ডিবি অবজেক্ট)?

উত্তরটি "দীর্ঘ সময়ের জন্য নয়" এবং এর মধ্যে, ডিবিটিকে উপেক্ষা করা এবং স্কোয়াশ হয়ে যাওয়ার এবং অনেক ক্ষেত্রে কেবল সারি স্টোরেজের জন্য ব্যবহার করার প্রত্যাশা রয়েছে, কারণ মধ্যবর্তী স্তরটি ব্যবধানটি সীমাবদ্ধ করতে কার্যক্ষমতায় বৃদ্ধি পায়।

আর একটি প্রশ্ন "মধ্যবিত্ত এটি করতে পারলে আমি কেন ডিবিতে এটি করব?" মাঝারি স্তরটি সর্বদা গতি এবং কার্যকারিতা থেকে পরিচিত এবং অর্জন করে। আবার আমরা ওও-আরডিএমএসের অমিলটি এড়াতে মাঝারি স্তরটি ব্যবহার করি।


4

খ্রিস্টান যা স্কেলাবিলিটি সম্পর্কে বলেছিল সে সম্পর্কে এগিয়ে যেতে

সহজভাবে, আরডিবিএমগুলি খাঁটি ডেটা স্টোর হিসাবে বেশি ব্যবহৃত হচ্ছে, যখন যুক্তিটি অ্যাপ্লিকেশন সার্ভারে স্থানান্তরিত হচ্ছে। এএস এর অতিরিক্ত স্তরটি অ্যাপ্লিকেশন সার্ভার হিসাবে আরডিবিএমএস ব্যবহার করার চেয়ে বিকাশকারীদের আরও নমনীয়তা দেয়।

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

আজকাল, অন্যান্য অ্যাপ্লিকেশন প্রোটোকলগুলি খুব বেশি সাধারণ (সিওআরবিএ, ডিসিওএম, রিমোট ইজেবি, এবং এইচটিটিপি-র মাধ্যমে এক্সএমএল / জেএসএন / এইচটিটিপি-আরপিসি স্টাইল প্রোটোকল)। বেশিরভাগ ডাটাবেসগুলি সরাসরি সেই প্রোটোকলগুলিতে প্রতিক্রিয়া জানায় না, সুতরাং একটি অ্যাপ্লিকেশন স্তর সেই কলগুলিকে আটকাতে ইন্টারজেক্ট হয় এবং সেই স্তরটি ডাটাবেসকে কল করে।

আমরা যেমন শিখেছি আমরা এখন এই স্তরটিতে যুক্তি যুক্ত করার জন্য আরও অনেক নমনীয়তা পাব। সরঞ্জামগুলির বিস্তৃত পছন্দ, ক্যাশে বা ফেলিওভার, বা এমনকি ডেটাবেস প্রযুক্তি (আরডিএমবিএস, ওওডিবিএমএস, কাউচডিবি এর মতো নথি স্টোর) সম্পর্কিত আরও নমনীয়তা। যোগ করা জটিলতা সত্ত্বেও "নতুন", তৃতীয় স্তরের এটি জটিলতার তুলনায় আরও নমনীয়তা এবং শক্তি যোগ করে।

আপনার অ্যাপ্লিকেশন স্তরটি যখন সঞ্চিত প্রক্রিয়াগুলির শীর্ষে খুব পাতলা ব্যহ্যাবরণ হয় তখন কেন এটি একেবারেই আছে তা প্রশ্ন করা বৈধ।

ডাটাবেস এবং এর সমস্ত বৈশিষ্ট্য উপার্জন একটি বৈধ অ্যাপ্লিকেশন কৌশল, আজও। এসকিউএল সার্ভার, ওরাকল, ইত্যাদি, সফ্টওয়্যারগুলির ভয়ঙ্কর শক্তিশালী টুকরা।

তারপরেও, তৃতীয় স্তরটি আধুনিক সিস্টেমে নমনীয়তা যুক্ত করতে প্রচুর সহায়ক।


3

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

আমি ব্যক্তিগতভাবে অনুভব করি যে আপনি উল্লেখ করেছেন, সঞ্চিত পদ্ধতিগুলির বাইরে থাকা সমস্ত কিছুই প্রয়োগের মধ্যে রয়েছে। আপনি যদি জানেন যে আপনার আর্কিটেকচারটি এক্স, তবে এক্স এর বৈশিষ্ট্যগুলির সুবিধা গ্রহণ করুন, উপযুক্ত হলে ডিবি সার্ভারে হ্যান্ড লোড বন্ধ করুন ইত্যাদি ... এটি যদি এক্স বা ওয়াই (বা জেড) হতে পারে তবে আপনার অ্যাপ্লিকেশনটি অজ্ঞেয় সম্পর্কিত হওয়া উচিত unless আপনার অ্যাপ্লিকেশনটি রিফ্যাক্টর করতে হতে পারে তা নিশ্চিত করে কাজের সুরক্ষা তৈরি করার চেষ্টা করছেন :)। আমি মনে করি স্বাচ্ছন্দ্যের সাথে মিলিত কিছুটা অলসতা এটির সাথে কিছু করতে পারে। আমি জানি যদি আমি পারতাম তবে এসকিউএল এর চেয়ে বরং সি # তে এটি করব। । । আমার সি # দক্ষতা আরও ভাল।


4
মুল বক্তব্যটি হ'ল আপনি ডাটাবেসটি CRUD ফাংশনের চেয়ে অনেক বেশি ব্যবহার করতে পারেন। আপনার যা দরকার তা যদি CRUD হয় তবে স্ক্লাইট ব্যবহার করুন। মুল বক্তব্যটি হ'ল যদি আপনি বড় ডেটাসেটগুলিতে ডেটা প্রসেসিং, বিশেষত পরিসংখ্যান, গড়, বা ইন্টারপোলেশনগুলি করেন (কমপক্ষে এক মিলিয়ন সারি বেশি) তবে ডাটাবেসে এসকিউএল এর চেয়ে আরও সহজ অন্যান্য অনুশীলন রয়েছে যা এসকিউএল এর চেয়ে বেশি অনুশীলন করা সহজ সি # মজার বিষয় হচ্ছে, লিনিকিউ অনেকগুলি অনুরূপ কার্যকারিতা যুক্ত করছে, মূলত ডেটাবেস কার্যকারিতা এবং এসকিউএল-এর মতো ঘোষণামূলক বাক্য গঠন সি # তে করে। পুরো বিষয়টি হ'ল ডেটা প্রসেসিং হ'ল ডাটাবেসগুলিতে এক্সেল কী !
ড্যানিয়েল প্রাইডেন 18

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

3

প্রথম বন্ধ: একটি ওআরএম ব্যবহার করে যে কোনও বিকাশকারী নিখুঁত হয় যদি তিনি / ও যদি মনে করেন যে কোনও ওআরএম ব্যবহার করে এসকিউএল দক্ষতা থাকার কথা অস্বীকার করে। বেশিরভাগ ওআরএম যা এসকিউএল উত্পন্ন করে সেগুলি কীভাবে বস্তু অনুসন্ধানগুলি তৈরি হয় তার উপর নির্ভর করে নির্গত এসকিউএল পরিবর্তিত হয় vary বিকাশকারীকে এসকিউএলকে বিশ্লেষণ করতে হবে যে তাদের কোনও বস্তুর প্রশ্নের পরিবর্তন করা উচিত কিনা তা দেখার জন্য।

সংক্ষিপ্ত উত্তর: এই বৈশিষ্ট্যগুলির অনেকগুলি ওও বিকাশের জন্য ব্যবহারিক নয়। আমি জানি যে ডিবিএরা শুনতে শুনতে পছন্দ করে না তবে এটি সত্য। এই বৈশিষ্ট্যগুলি প্রান্তের ক্ষেত্রে ভাল এবং বেশিরভাগ ভাল ওআরএম যেমন এন / হাইবারনেট আপনাকে সেই প্রান্তের ক্ষেত্রে এসকিউএল সরবরাহ করতে দেয়।

এটি যখন বেশিরভাগ সিআরইউডি-তে অর্পিত হয়:

দীর্ঘ উত্তর: আমি মনে করি আরডিবিএমএস বিশ্বটি পরিপক্কতার ক্রমবর্ধমান বেদনাগুলির মধ্য দিয়ে যাচ্ছে এবং এটি বিশ্বে এটির স্থান খুঁজে পাচ্ছে। সত্য: ওওপি আরডিবিএমএসের চেয়ে পুরানো। ওওপি এটির ক্রমবর্ধমান যন্ত্রণা এবং পরিপক্কতা থেকে সবেমাত্র বের হচ্ছে। আমি মনে করি একটি ভাষা হিসাবে এসকিউএল খুব পরিণত, তবে একটি আরডিবিএমএস কী পরিচালনা করবে সে সম্পর্কে ধারণাটি নিষ্পত্তি হয়ে উঠছে। আরডিবিএমএস জাভা এবং সি # না আসা পর্যন্ত বেশিরভাগ ওয়েব অ্যাপ্লিকেশনগুলির ব্যবসায়ের লজিক ধারক ছিল। আমি মনে করি আমরা এখন এই সংশোধনটি অনুভব করতে শুরু করছি।

বলা হচ্ছে, আমি মনে করি না যে কোনও ওআরএম ডিজাইনার আপনাকে বলতে যাচ্ছে যে আরডিবিএমএসকে খাওয়ানো স্কেল স্টেটমেন্টের গুণমানের কোনও গুরুত্ব নেই।

যখন এটি নন-সিআরইউডি আসে তখন আমার এখানে উত্তর নেই। আমার জানা বেশিরভাগ দোকানগুলি এখনও ইটিএল / ইত্যাদির জন্য ডিবি ব্যবহার করে ...


"ইডিয়ট" এমন শক্ত শব্দ। হয়তো "নিষ্পাপ" , "অলস" , বা "অনভিজ্ঞ" বাসা বাধা ছাড়াই সমান নির্ভুল হবে। সবেমাত্র
স্টু থম্পসন

ভাল যুক্তি. আমি উত্তরটি কিছুটা হলেও নষ্ট করে দিয়েছি। আমি নির্দোষ সাথে গেলাম।
ড্যানিয়েল অাগার

2

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

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


1

আমি মনে করি কারণটি বেশিরভাগ আরডিবিএম ব্যবহারকারীদের পক্ষ থেকে লক-ইন এবং জ্ঞানের অভাবের সংমিশ্রণ। এসকিউএল একটি প্রোগ্রামিং ভাষা, এবং এসকিউএল যে ভাষাটি এসকিউএল এবং এসকিউএল থেকে কল করে থাকেন তার মধ্যে একটি বা অন্যটির উপর দক্ষতা অর্জনের চেয়ে বিশেষভাবে বিশেষত যেহেতু এসকিউএল একটি বিশেষ অনন্য ভাষা both

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


0

বর্ধিত ডাটাবেসের কার্যকারিতা লাভারেজের সাথে আমি যে উদ্বেগটি দেখেছি তা হল স্কেলিং। আপনার ডাটাবেস লোড বনাম ওয়েব / অ্যাপ্লিকেশন সার্ভারের লোড স্কেল করা এটি আরও অনেক কঠিন প্রস্তাব বলে মনে হচ্ছে।

আপনার বিকল্পগুলি সীমাবদ্ধ, বড় দ্রুত হার্ডওয়্যার (কখনও কখনও অনেক বেশি লাইসেন্সের ব্যয় সহ) বা জটিল, কেবল পঠনযোগ্য অনুলিপি সহ স্কেলিং-আউট are

যদি পারফরম্যান্সের সমস্যা থাকে তবে আমি তাদের ওয়েব সার্ভার অ্যাপ্লিকেশন স্তরে থাকতে চাই। কমপক্ষে আমার বিকল্পগুলির মধ্যে একটি হ'ল অন্য ওয়েব সার্ভার যুক্ত করা এবং লোড বিতরণ করা।

ওয়েব সার্ভার এবং ডাটাবেস সার্ভারের মধ্যে প্রেরিত নেটওয়ার্ক ট্র্যাফিক (রেকর্ড) এর পরিমাণ হ্রাস করতে আমি ডাটাবেস স্তরের কোডের বিরুদ্ধে তর্ক করছি না। আমি অন্যান্য বৈশিষ্ট্যগুলির বিরুদ্ধে তর্ক করছি eg ডাটাবেস পর্যায়ে বিজনেস লজিক প্রসেসিং।


0

কয়েকটি পোস্টে উল্লেখ করা হয়েছে যে ডিবি স্তরের চেয়ে অ্যাপ্লিকেশন স্তরে স্কেল করা কম।

আর একটি বিবেচনা হ'ল সংযুক্ত অ্যাপ্লিকেশন যা একাধিক ডেটা স্টোরগুলিতে অ্যাক্সেস করে। ডিবি স্তরের পৃথক প্ল্যাটফর্ম নির্দিষ্ট প্রশ্নের চেয়ে অ্যাপের স্তরে প্ল্যাটফর্ম অজিনস্টিক কোয়েরি ভাষা লিখতে এবং বজায় রাখা অনেক সহজ।


0

কারণ দেশীয় হোস্ট-ভাষা সামগ্রীর সাথে হোস্ট ভাষায় অবজেক্ট-ওরিয়েন্টেড সফ্টওয়্যার লেখার পদ্ধতিগত সফ্টওয়্যারটি প্রহার করে।


0

আমি সবসময় এমন সিস্টেমে কাজ করেছি যা অনেক ক্লায়েন্টের কাছে বিক্রি হয় এবং ক্লায়েন্টের হার্ডওয়্যারে চালিত হয়। এটাও বিশালাকার:

  • ক্লায়েন্টটি কী ডাটাবেস সফ্টওয়্যারটি চলবে তা আপনি জানেন না।
  • লাইসেন্স ব্যয় বা আইটি নীতিমালার কারণে আপনি যখন চান গ্রাহকরা ডেটাবেস সফ্টওয়্যার আপডেট করতে রাজি নন।
  • এমনকি বস্তুগত দর্শনের মতো মৌলিক বৈশিষ্ট্যগুলি কেবলমাত্র ডেটাবেস সফ্টওয়্যারটির কিছু "সংস্করণ" এ রয়েছে, ছোট গ্রাহকরা প্রায়শই ডাটাবেসের উচ্চ শেষ সংস্করণের জন্য অর্থ প্রদান করতে রাজি হন না।
  • যত তাড়াতাড়ি বা পরে আপনার বিক্রয়কর্মীদের একজন আপনার সফ্টওয়্যারটিকে অন্য কোনও বিক্রেতার আরডিবিএমএসের সাথে ব্যবহার করাতে সম্মত হবে।
  • মাঝারি স্তরে একবার যুক্তি লেখার মধ্যে বেছে নেওয়া বা ডাটাবেসে কমপক্ষে পিএল-এসকিউএল এবং টিএসকিউএল সহজ নির্বাচন!
  • ডাটাবেসে যে কোনও পরিবর্তন (নতুন সঞ্চিত পদ্ধতি, আপডেট ভিউ, ইত্যাদি) এর জন্য ডিবি প্রশাসকের অধিকারের প্রয়োজন হবে; এটি কেবলমাত্র আপনার সফ্টওয়্যারটি আপডেট করার পরে কিছু গ্রাহকের সাইটে এটি আরও শক্ত হতে পারে।
  • ডাটাবেস আপডেট করার জন্য একটি স্ক্রিপ্ট লেখা অ্যাপ্লিকেশনটির ডলসের নতুন সংস্করণ ইনস্টল করার চেয়ে সবসময় শক্ত। (বেশিরভাগ বিল্ড সিস্টেমগুলি আজকাল প্রতিটি বিল্ডের অংশ হিসাবে এমএসআই ফাইল আউটপুট দেয়)
  • এটি একটি মাঝারি স্তর একটি ডাটাবেসে পরীক্ষার কোড ইউনিট করা কঠিন।
  • সি # এর চেয়ে সঞ্চিত প্রোকগুলি ডিবাগ করা শক্ত।
  • এটি কেবল আপনার ডাটাবেসে কাজ করার অর্থ এই নয় যে এটি গ্রাহকের ডাটাবেসে কাজ করবে, আরডিবিএমএসের অনেকগুলি স্যুইচ রয়েছে যা তারা কীভাবে কাজ করে তা পরিবর্তন করে - গ্রাহকরা সর্বদা তাদের বিভিন্ন উপায়ে সেট করতে থাকে।

সুতরাং উপরের সমস্তটি দেওয়া, দীর্ঘমেয়াদী ব্যথার পক্ষে মূল্যবান হওয়ার আগে একটি ডাটাবেস বৈশিষ্ট্যটি ব্যবহার থেকে লাভ অবশ্যই দুর্দান্ত হবে।

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