অ-সম্পর্কিত সম্পর্কিত ডাটাবেস ডিজাইন [বন্ধ]


114

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

বিশেষত, আমি এই নতুন ডাটাবেসের সাথে ধারণাগত ডেটা ডিজাইনের পার্থক্য সম্পর্কে জানতে চাই to কি সহজ, কি কঠিন, কিছু করা যায় না?

  • আপনি কি এমন বিকল্প নকশাগুলি নিয়ে এসেছেন যা অ-সম্পর্কহীন বিশ্বে আরও ভাল কাজ করে?

  • অসম্ভব বলে মনে হচ্ছে এমন কোনও কিছুর বিরুদ্ধে আপনি কি নিজের মাথায় আঘাত করেছেন?

  • আপনি কোনও ডিজাইনের ধরণ দিয়ে ফাঁকটি সরিয়েছেন, যেমন এক থেকে অন্যটিতে অনুবাদ করতে?

  • আপনি কি এখনই সুস্পষ্ট ডেটা মডেলগুলি করেন (যেমন ইউএমএলে) বা আপনি সেগুলি পুরোপুরি আধা-কাঠামোগত / ডকুমেন্ট-ভিত্তিক ডেটা ব্লবগুলির পক্ষে রেখেছেন?

  • আপনি কি আরডিবিএমএস সরবরাহ করে এমন বড় অতিরিক্ত পরিষেবাগুলির কোনওটি মিস করেন, যেমন আপেক্ষিক সততা, নির্বিচারে জটিল লেনদেন সহায়তা, ট্রিগার ইত্যাদি?

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

এফওয়াইআই, এখানে একই জাতীয় বিষয়ে স্ট্যাকওভারফ্লো আলোচনা হয়েছে:


2
কী / মান ডাটাবেস পুরানো নতুন জিনিস।
ক্রিস্টোফার

1
আগ্রহী যে কোনও ব্যক্তির জন্য নোএসকিউএল গুগল গ্রুপে দীর্ঘ-ফর্ম আলোচনা চলছে, এখানে: groups.google.com/group/nosql-discussion/browse_thread/thread/…
ইয়ান

4
এফওয়াইআই, আমি এই বিষয়টিতে একটি দীর্ঘ-রূপের প্রতিবেদন লিখেছি: google.com/url?sa=D&q=http://ianvarley.com/UT/MR/… আপনার সহায়ক ইনপুটটির জন্য আপনাকে সকলকে ধন্যবাদ!
আয়ান বার্লি

উত্তর:


55

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

  1. বিগবেট-এর মতো সিস্টেম (এইচবেস, হাইপার টেবিল ইত্যাদি)
  2. মূল-মূল্য স্টোর (টোকিও, ভলডেমর্ট, ইত্যাদি)
  3. নথি ডাটাবেস (কাউচডিবি, মঙ্গোডিবি, ইত্যাদি)
  4. গ্রাফ ডাটাবেসগুলি (অ্যালেগ্রোগ্রাফ, নিও 4 জ, তিল ইত্যাদি)

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

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

গ্রাফডিবির দৃষ্টিকোণ থেকে নির্দিষ্ট প্রশ্নের উত্তর দেওয়া:

বিকল্প নকশা: কোনও উদ্বেগ ছাড়াই বিভিন্ন সংস্থা বা বিভিন্ন সংস্থার মধ্যে সম্পর্ক যুক্ত করা বা কোন সংস্থাগুলি সংযুক্ত হতে পারে তার পূর্বনির্ধারণের প্রয়োজন নেই।

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

সুস্পষ্ট ডেটা মডেল: আমি এগুলি সর্বদা করি (হোয়াইটবোর্ড শৈলী) এবং তারপরে মডেলটি যেমন ডিবিতে হয় তেমনই ব্যবহার করি।

আরডিবিএমএস বিশ্ব থেকে মিস: প্রতিবেদন তৈরির সহজ উপায়। আপডেট করুন: হয়তো এটা না যে গ্রাফ ডাটাবেস থেকে তৈরি করা কঠিন রিপোর্ট, দেখুন একটি Neo4J নমুনা ডাটাবেস জন্য একটি প্রতিবেদন তৈরি করা হচ্ছে


79

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

তবুও, আমার কিছু প্রাথমিক সিদ্ধান্ত রয়েছে:

আপনি কি এমন বিকল্প নকশাগুলি নিয়ে এসেছেন যা অ-সম্পর্কহীন বিশ্বে আরও ভাল কাজ করে?

নকশার ফোকাস শিফট: নথির মডেলটির নকশা (ডিবি টেবিলগুলির সাথে সম্পর্কিত) প্রায় অপ্রাসঙ্গিক হয়ে ওঠে, যখন সমস্ত কিছু দৃষ্টিভঙ্গি ডিজাইনের উপর নির্ভর করে (প্রশ্নের সাথে মিল রেখে)।

ডকুমেন্ট ডিবি সাজানোর ধরণের জটিলতাগুলি: এসকিউএল-তে অবিচ্ছেদ্য ডেটা এবং নমনীয় প্রশ্ন রয়েছে, ডকুমেন্ট ডিবিগুলি অন্য উপায় around

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

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

এসকিউএল বিশ্বের সর্বাপেক্ষা সাদৃশ্যটি হ'ল যদি আপনি কেবল সঞ্চিত পদ্ধতি ব্যবহার করে ডিবি-কে জিজ্ঞাসা করতে পারেন - আপনার যে সমর্থনটি আপনি সমর্থন করতে চান সেগুলি অবশ্যই পূর্বনির্ধারিত হতে হবে।

নথিগুলির নকশাটি অত্যন্ত নমনীয়। আমি কেবল দুটি বাধা পেয়েছি:

  • একই ডকুমারে সম্পর্কিত ডেটা একসাথে রাখুন, যেহেতু যোগদানের সাথে সম্পর্কিত কিছু নেই is
  • দস্তাবেজগুলি এত বড় করবেন না যে সেগুলি খুব ঘন ঘন আপডেট হয় (যেমন বছরের জন্য সমস্ত কোম্পানির বিক্রয় একই দস্তাবেজে রাখে), যেহেতু প্রতিটি নথির আপডেট পুনরায় সূচকে তিরস্কার করে।

তবে সবকিছুই ভিউগুলি ডিজাইনের উপর নির্ভর করে।

বিকল্প নকশাগুলি আমি দেখেছি যে কোনও এসকিউএল ডাটাবেসের তুলনায় কাউচডিবি দিয়ে প্রস্থের কাজের অর্ডারগুলি স্টোরেজ স্তরের চেয়ে সিস্টেম স্তরে রয়েছে। আপনার যদি কিছু ডেটা থাকে এবং ওয়েব পৃষ্ঠায় সেগুলি পরিবেশন করতে চান তবে মোট সিস্টেমের জটিলতা কমপক্ষে 50% হ্রাস পেয়েছে:

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

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

অসম্ভব বলে মনে হচ্ছে এমন কোনও কিছুর বিরুদ্ধে আপনি কি নিজের মাথায় আঘাত করেছেন?

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

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

উদাহরণসীমা সীমাবদ্ধতা হিসাবে, গণনা এবং অঙ্কগুলি সহজ তবে কাউচডিবি ভিউ / কোয়েরি দ্বারা গড় গণনা করা যায় না। ফিক্স: যোগফল এবং পৃথক গণনা করুন এবং ক্লায়েন্টের গড় গণনা করুন।

আপনি কোনও ডিজাইনের ধরণ দিয়ে ফাঁকটি সরিয়েছেন, যেমন এক থেকে অন্যটিতে অনুবাদ করতে?

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

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

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

আপনি কি এখনই সুস্পষ্ট ডেটা মডেলগুলি করেন (যেমন ইউএমএলে)?

দুঃখিত, নথি ডিবিগুলির আগে কখনও খুব বেশি ইউএমএল করেনি :)

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

আপনি কি আরডিবিএমএস সরবরাহ করে এমন কোনও অতিরিক্ত অতিরিক্ত পরিষেবা মিস করেন?

নাঃ। তবে আমার পটভূমি হ'ল ওয়েব অ্যাপ্লিকেশন বিকাশকারী, আমরা কেবলমাত্র আমাদের প্রয়োজনীয় ডেটাবেসগুলিতেই ডিল করি :)

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

তাই আমি যা যা দিচ্ছি তা হ'ল এমন কিছু যা আমি আসলেই প্রথম স্থানে ছিলাম না। স্পষ্টতই, আপনার অভিজ্ঞতা পৃথক হতে পারে।


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

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

আমি যা বলতে চাইছি তা হ'ল ডকুমেন্ট ডিবিগুলির সমস্ত সফল অ্যাপ্লিকেশনগুলি এমন ডেটার সাথে ছিল যার প্রথমদিকে খুব বেশি আন্তঃসম্পর্ক ছিল না: নথি (গুগল অনুসন্ধানে), ব্লগ পোস্ট, নিউজ নিবন্ধ, আর্থিক তথ্য ।

আমি প্রত্যাশা করি যে ডকুমেন্টের মডেলের চেয়ে এসকিউএল এর চেয়ে বেশি মানচিত্রের ডেটাসেট রয়েছে, তাই আমি কল্পনা করি যে এসকিউএল টিকে থাকবে।

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


9
খুব দরকারী. বিশেষত "এসকিউএল এর অবিচ্ছেদ্য ডেটা এবং নমনীয় ক্যোয়ারী রয়েছে, ডকুমেন্ট ডিবিগুলি অন্য উপায়ে রয়েছে" এবং এতে যোগদানের অনুপস্থিতি রয়েছে।
j_random_hacker

2
+1, এটি খুব অন্তর্দৃষ্টিযুক্ত ছিল।
মাস

2
সত্য, আমি যদি সম্ভব হয় তবে এটি একাধিকবার ভোট দিয়েছি।
অষ্টাভিয়ান এ। ডামিয়ান

এটি ২০১৪ সালে এখনও অত্যন্ত কার্যকর ছিল, আপনি 2010 এর পর থেকে যা শিখেছেন তা যুক্ত করতে বা আপনার অন্য কোথাও থাকা তথ্যের সাথে লিঙ্ক করতে পারলে দুর্দান্ত হবে great
ম্যাগি

11

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

কঠিনতর:

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

সহজ:

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

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

আমি সি # / সিলভারলাইটের সাথে সুন্দরভাবে সংহত করা একটি ভাল উন্মুক্ত ওও ডাটাবেস দেখতে পছন্দ করতাম liked শুধু পছন্দ আরও কঠিন করতে। :)


1

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

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

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


1

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

আরডিবিএমগুলির আরও একটি বিষয় যেখানে ইতিহাস / সময় নির্ভর কীগুলি পরিচালনা করা হয়।


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

2
এই চিন্তাভাবনা অব্যাহত রাখা: দুর্বল যোগদানগুলি দুর্বল সূচক এবং পরিসংখ্যানের ফলাফল of যদি অপ্টিমাইজারটির সাথে কাজ করার কিছু না থাকে বা এর কী রয়েছে তার তথ্য পুরানো, তবে এটি খারাপ পছন্দ করবে। "দুর্বল যোগদান" এর জন্য অনেকে এটিকে ভুল করে। আধুনিক আরডিবিএম সিস্টেমগুলিতে স্ব-সুর রয়েছে যা সূচক এবং পরিসংখ্যান সেট আপ করার সময় আপনার মস্তিষ্ক ব্যবহারের প্রয়োজনীয়তার মুখোশ দেয়। এছাড়াও, লোকেরা লজিক্যাল স্কিমা (পঞ্চম সাধারণ ফর্ম) এবং শারীরিক স্কিমা (প্রায়শই তৃতীয় স্বাভাবিক হিসাবে অস্বীকৃত) বিভ্রান্ত করে। আপনি যে ডিবিটি দেখেন এটি "প্রশস্ত" এর অর্থ এই নয় যে এটি যুক্তিযুক্তভাবে দুর্বলভাবে তৈরি করা হয়েছিল।
গোদেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.