NoSQL ডাটাবেস ডিজাইনের জন্য সেরা অনুশীলন


34

আমি সবেমাত্র একটি নোএসকিউএল ডকুমেন্ট ভিত্তিক ডাটাবেস (মঙ্গোডিবি) ব্যবহার শুরু করেছি এবং আমি ডাটাবেসগুলি ডিজাইনের সর্বোত্তম অভ্যাস সম্পর্কে আগ্রহী।

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

উদাহরণস্বরূপ আমার একটি বিশেষ ব্যবহারের মামলা রয়েছে;

আমার কাছে ভাড়া ইতিহাস (ঠিকানাগুলির অ্যারে) আছে এমন একটি ব্যবহারকারী কি সেই অ্যারেটি ব্যবহারকারীর উপরে অ্যারে হওয়া উচিত বা একটি ভাগ করা কী সহ আলাদা সংগ্রহ হিসাবে?


বিদেশী কীগুলি ব্যবহার করবেন না
ডুওকোফেমিং করুন

এসকিউএল :-) ব্যবহার করবেন না। সিরিয়াসলি, "নোএসকিউএল" প্রযুক্তি সম্পর্কে আপনাকে অন্য কিছু বলে?

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

উত্তর:


23

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

ঠিকানাগুলির ব্যবহারের উপর নির্ভর করে, আপনি এটিকে আপনার ভাড়া ইতিহাসের মডেল / সত্তার অভ্যন্তরে একটি মান অবজেক্ট হিসাবে সংজ্ঞায়িত করতে পারেন।

এখানে আপনি এমন কিছু উল্লেখ রয়েছে যা নোএসকিউএল দিয়ে নকশার চিন্তাগুলি সাফ করতে পারে:


19

টি এল; ডিআর

আরডিবিএমএস-এ সাধারণকরণ আপনাকে আপেক্ষিক দৃষ্টান্তের শক্তি অর্জন করতে দেয়।

নোএসকিউএল-এ ডেনোরালাইমাইজেশন আপনাকে নোএসকিউএল দৃষ্টান্তের শক্তি অর্জন করতে দেয়।

দীর্ঘ উত্তর

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

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

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

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

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

আরডিবিএমএস আপনাকে দেওয়া প্রতিটি জিনিস আপনাকে কোড এবং আপনার স্কিমাতে ম্যানুয়ালি প্রয়োগ করতে হবে। আপনার যদি কখনও সামগ্রিক সামগ্রিক প্রয়োজন হয় তবে আপনাকে কোডে যোগ দিতে হবে। আপনার যদি সামগ্রিক অংশের কেবলমাত্র অংশ প্রয়োজন হয় তবে আপনাকে পার্স করতে হবে। আপনি যদি নকল জিনিস না চান তবে আপনাকে নিজের স্বতন্ত্রতা পরীক্ষা করতে হবে। সমষ্টি ইত্যাদিতে কাজ করার সময় আপনার নিজের লেনদেনের যুক্তি বাস্তবায়ন করতে হবে etc.

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

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

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