রিলেশনাল ডাটাবেসের পরিবর্তে আমার কেন ডকুমেন্ট ভিত্তিক ডাটাবেস ব্যবহার করা উচিত?


188

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


সম্ভবত কোনও ডকুমেন্ট-ভিত্তিক ডাটাবেস "সত্তা-বৈশিষ্ট্য-মান" (EAV) ডাটাবেসের সাথে কিছু উপায়ে অনুরূপ হতে পারে।
ChrisW

উত্তর:


167

সম্ভবত আপনার উচিত হবে না :-)

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

আমি ব্যক্তিগতভাবে এই সত্যটিও পছন্দ করি যে এইচটিটিপি ক্লায়েন্ট ব্যতীত কাউচডিবিয়ের জন্য আমার কোনও ক্লায়েন্ট লাইব্রেরির প্রয়োজন নেই, যা আজকাল প্রায় প্রতিটি প্রোগ্রামিং ভাষার অন্তর্ভুক্ত।

সম্ভবত সবচেয়ে সুস্পষ্ট উত্তর: আপনি যদি আরডিবিএমএস ব্যবহার করে কোনও ব্যথা অনুভব করেন তবে এটির সাথে থাকুন। আপনার কাজটি শেষ করতে যদি আপনাকে সর্বদা আপনার আরডিবিএমএসের চারপাশে কাজ করতে হয়, তবে একটি দস্তাবেজ ওরিয়েন্টেড ডাটাবেসটি নজর রাখা উচিত।

আরও বিস্তৃত তালিকার জন্য রিচার্ড জোনের এই পোস্টিংটি পরীক্ষা করে দেখুন ।


1
আমি দু'বছরের মধ্যে কোনও ডাটাবেস স্কিমা দেখিনি যে আমরা যে মূল স্কিমার সাথে শুরু করেছি তার সাথে সাদৃশ্য দেখায় ... সুতরাং সবকিছু সমান (যা এটি নয় ...), আপনার সর্বদা একটি স্কিমহীন ডাটাবেস = ডকুমেন্ট-ভিত্তিক একটি ব্যবহার করা উচিত; যা আমি মনে করি এটি একটি বিভ্রান্তিমূলক নাম ...
40 ᆺ ᆼ

2
@ int3 আপনি যদি নিজের ডেটা কলামের সেট হিসাবে বর্ণনা করতে না পারেন তবে কীভাবে বলেন যে ডেটা বুদ্ধিমান প্রশ্ন লিখবেন?
ক্লে স্মিথ

46

কাউচডিবি (তাদের ওয়েবসাইট থেকে )

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

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

  • দ্বি-দিকীয় দ্বন্দ্ব সনাক্তকরণ এবং পরিচালনা সহ শক্তিশালী, বর্ধিত প্রতিরূপ বৈশিষ্ট্যযুক্ত, বিতরণ করা হয়েছে। কিছু এসকিউএল বাণিজ্যিক পণ্য এটি অফার করে। এসকিউএল এপিআই এবং স্থির স্কিমার কারণে এটি জটিল, কঠিন এবং ব্যয়বহুল। পালঙ্কের জন্য, এটি সহজ এবং সস্তা বলে মনে হচ্ছে।

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

So. কাউচডিবি কেন?

  • আরডিএসটি জেডিবিসি বা ওডিবিসির চেয়ে সহজ।
  • কোনও স্কিমা স্কিমার চেয়ে সহজ নয়।
  • এমনভাবে বিতরণ করা হয়েছে যা সহজ এবং সস্তা ব্যয় করে।

12
আমি নোএসকিউএল ডাটাবেসের একটি বড় অনুরাগী হওয়ার পরে, প্রথম দাবি (জেডিবিসি থেকে আরএসটি সহজ) খুব সন্দেহজনক।
4 ᆺ ᆼ

2
আরআরএসটি প্রোটোকলটি আমার কাছে বেশ সহজ বলে মনে হচ্ছে, যেহেতু এটি কেবল এইচটিটিপি: স্টেটলেস, কয়েকটি পদ্ধতি ইত্যাদি Perhaps ইত্যাদি। সম্ভবত জেডিবিসি (হুডের নীচে) সরল; এটি সহজ বলে মনে হচ্ছে না, কেবল রাষ্ট্রীয় হওয়ার ভিত্তিতে।
এস .লট

5
@ এসলট উত্তরটি কেবল কাউচডিবি-র দিকে মনোনিবেশ করার পরিবর্তে আরও "জেনেরিক" হওয়া উচিত নয়?
পেসারিয়ার

"ভঙ্গুর উন্নত পরিকল্পনা" বনাম কি? আমার অভিজ্ঞতার বিকল্পটি হ'ল পরিকল্পনা নয় যা স্প্যাগেটি ডেটা স্ট্রাকচারের দিকে নিয়ে যায় যা এক ঝাঁকুনিতে পরিবর্তিত হয়।
তেজয় কার্ডন

26

বেকুবভাবে অন্য সার্ভার-ডেটা সঞ্চয় এবং পরিবেশন করার জন্য।

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

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


কেন সেগুলি কেবল একটি ফাইলে বা ফিডের জন্য একটি ফাইলে সঞ্চয় করবেন না?
j_random_hacker

6
কারণ কাউচডিবি আপনাকে মানচিত্র / হ্রাস ব্যবহার করে আকর্ষণীয় মতামত তৈরি করতে দেয়। উদাহরণস্বরূপ, আমি ডেটা উত্সের ভিত্তিতে একটি ভিউ তৈরি করতে পারি, বা আমি প্রতিটি উত্সের জন্য মোটের গণনা করতে পারি।
দাওনব

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

1
নোএসকিউএল ডাটাবেসের মান শুনে আমি এটিই প্রথম সত্যিই
দৃ conv়প্রত্যয়ী

20

দ্রুত প্রয়োগের বিকাশ মাথায় আসে।

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

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


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

6

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


1

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

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


0

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

এছাড়াও, আপনার ডেটা ডাটাবেস ব্যবহার করা উচিত যদি আপনার ডেটা সম্পর্কিত না হয় এবং কোনও টেবিলে সংরক্ষণ করা যায় না তবে চিত্রগুলির একটি সেট, বা উদাহরণস্বরূপ সংবাদপত্রের নিবন্ধগুলি।

আর একটি সুবিধা হ'ল ওয়েব বিকাশে নথিভিত্তিক ডাটাবেসগুলি ব্যবহার করার স্বাচ্ছন্দ্য। আরও গভীরতার নোএসকিউএল ডাটাবেস মডেলের জন্য এই উত্সটি পরীক্ষা করুন: https://arxiv.org/ftp/arxiv/papers/1509/1509.08035.pdf

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