কখন আপনি কোনও নথি বনাম রিলেশনাল বনাম গ্রাফ ডাটাবেস ব্যবহার করবেন? [বন্ধ]


29

আলোচনার উদ্দেশ্যগুলির জন্য আসুন একটি ফোরস্কয়ার দৃশ্যের বিষয়টি বিবেচনা করি।

দৃশ্যপট

সংস্থাগুলো:

  • ব্যবহারকারীরা
  • জায়গা

সম্পর্ক:

  • চেকিনস: ব্যবহারকারীরা <-> স্থানগুলি, অনেকের কাছে
  • বন্ধুরা: ব্যবহারকারী <-> ব্যবহারকারী, অনেকের কাছে

ডাটাবেস ডিজাইন

এগুলির মধ্যে সম্ভবত ত্রুটি রয়েছে, দয়া করে এগুলি চিহ্নিত করুন।

RDBMS

টেবিল:

  • ব্যবহারকারীরা
  • জায়গা
  • চেকিনস (জংশন)
  • বন্ধুরা (জংশন)

পেশাদাররা:

  • ক্যাপ: ধারাবাহিকতা, প্রাপ্যতা

কনস:

  • ক্যাপ: পার্টিশন সহনশীলতা, ওরফে শারডিং
  • স্কিমগুলি = অবিচ্ছিন্ন কাঠামো
  • দুর্বল প্রতিলিপি?

চিত্রলেখ

অবজেক্টস:

  • ব্যবহারকারীরা
  • জায়গা

প্রান্ত:

  • বন্ধুরা: ব্যবহারকারী <-> ব্যবহারকারী
  • চেকিনস: ব্যবহারকারী -> স্থান
    • টাইমস্ট্যাম্প রয়েছে

পেশাদাররা:

  • ক্যাপ: ধারাবাহিকতা, প্রাপ্যতা?
  • স্কিমহীন, সহজে পরিবর্তনযোগ্য বস্তু এবং প্রান্ত
  • গ্রাফ ট্র্যাভারসাল ক্যোয়ারী, উদাহরণস্বরূপ:
    • থলোথলো
      • বন্ধুদের দলের সন্ধান করা
      • অনুরূপ লোকদের দ্বারা পছন্দ করা রেস্তোঁরাগুলি সন্ধান করুন
    • অন্য কোন সাধারণ / দরকারী প্রশ্ন?

কনস:

  • ক্যাপ: পার্টিশন সহনশীলতা?

দলিল / অবজেক্ট

3 পৃথক ডাটাবেস?

  • ব্যবহারকারীরা
    • বন্ধুর তালিকা
  • চেক ইন করে
    • টাইমস্ট্যাম্প
    • ব্যবহারকারী
    • জায়গা
  • জায়গা

পেশাদাররা:

  • ক্যাপ: প্রাপ্যতা, পার্টিশন সহনশীলতা
  • স্কিমহীন, সহজে পরিবর্তনযোগ্য বস্তু

কনস:

  • ক্যাপ: ধারাবাহিকতা

প্রশ্নাবলি

রেকর্ডের জন্য, তারা মঙ্গোডিবি ব্যবহার করে শেষ হয়েছিল। উপরের সমস্ত প্রশ্ন চিহ্ন ছাড়াও:

  1. ডকুমেন্ট ডাটাবেস কীভাবে প্রয়োগ করা যায় আমি নিশ্চিত নই।
  2. কীভাবে নথির ডাটাবেসগুলি পার্টিশন সহনশীলতা অর্জন করে?
  3. একক ব্যবহারকারীর চেকিনগুলি পেতে, আমি ধরে নিয়েছি যে এই ক্রিয়াকলাপটি সমস্ত চেকিনগুলি পার্স করে এবং ব্যবহারকারীর নাম (মানচিত্র + ফিল্টার) এর জন্য মেটাডেটা ফিল্টার করবে। প্রতিটি ব্যবহারকারীর জন্য ১,০০,০০০+ ডকুমেন্ট পার্স করার পারফরম্যান্স মারাত্মকভাবে দুর্বল হবে। আমি ধরে নিচ্ছি এটি সঠিক আচরণ নয়?
  4. আর কোন প্রো / কনস আছে?

(1) আপনার ব্যবসায়ের পদে 2 টি টেবিলের মধ্যে রিয়েলশনশিপটি বানান করতে হবে। সমান্তরাল সম্পর্ক থাকতে পারে কারণ এটি। উদাহরণস্বরূপ, ব্যবহারকারীরা <--> ব্যবহারকারীরা 1 মিমির সম্পর্কের বোঝায় না। এর অর্থ ১ এরও বেশি হতে পারে উদাহরণস্বরূপ: একজন ব্যবহারকারী অন্য ব্যবহারকারীকে পছন্দ করে এবং ব্যবহারকারী অন্য ব্যবহারকারীকে ঘৃণা করে। এগুলি 2 টি সম্পর্ক। (২) আপনি 'ঠিক' কী চান তা সংক্ষিপ্ত করতে পারলে এটি সাহায্য করবে।
NoChance

@ এমদাদকেরিম: (১) আমি পরিস্থিতি জটিল করতে চাইছি না। একমাত্র ব্যবহারকারীর <-> ব্যবহারকারীর সম্পর্কে আমি আগ্রহী একটি পারস্পরিক বন্ধুত্ব, যা অনেকগুলি সংযোগের সাথে অনেক বেশি। (২) আমি পোস্টের নীচে তালিকাভুক্ত ৪ টি প্রশ্নের উত্তর চাই।
উইটিং

উত্তর:


13

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

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

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

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

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


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

1
@ উইলিয়াম, গুগলের মাধ্যমে সহজেই অ্যাক্সেসযোগ্য আপনার প্রশ্নের উত্তর দেওয়ার জন্য কয়েক ডজন নিবন্ধ রয়েছে। এমনকি বেশ কয়েকটি স্ট্যাক ওভারফ্লোতেও alone আপনার বাড়ির কাজ করুন।
ওল্ড প্রো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.