নুএসকিউএল ডেটাবেসগুলির ব্যবহার কি বৃহত্তর ডেটাসেটের জন্য অযৌক্তিক যেখানে আপনাকে সামগ্রী দ্বারা অনুসন্ধান করতে হবে?


51

আমি এখন এক সপ্তাহ ধরে নোএসকিউএল ডেটাবেস সম্পর্কে শিখছি।

আমি সত্যিই নোএসকিউএল ডেটাবেসগুলির সুবিধাগুলি এবং সেগুলির জন্য দুর্দান্ত ব্যবহারের অনেকগুলি বিষয় বুঝতে পারি।

তবে প্রায়শই লোকেরা তাদের নিবন্ধগুলি লিখেন যেন NoSQL রিলেশনাল ডেটাবেসগুলিকে প্রতিস্থাপন করতে পারে । এবং আমি এখানে আমার মাথা পেতে পারি না বিন্দু আছে:

নোএসকিউএল ডেটাবেসগুলি (প্রায়শই) কী-মূল্যের স্টোর হয়।

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

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

একটি উদাহরণ:

ওয়েবশপের জন্য আপনাকে ব্যবহারকারীর ডেটা সংরক্ষণ করতে হবে।

রিলেশনাল ডাটাবেসে আপনি প্রতিটি ব্যবহারকারীর usersসারণীতে সারি হিসাবে একটি আইডি, নাম, তার দেশ ইত্যাদি দিয়ে সঞ্চয় করেন

কোনও নোএসকিউএল ডাটাবেসে আপনি প্রতিটি ব্যবহারকারীকে তার আইডি দিয়ে কী এবং তার সমস্ত ডেটা (জেএসএন-এ এনকোড করা ইত্যাদি) হিসাবে মান হিসাবে সঞ্চয় করবেন।

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

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

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

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


16
এটি একটি প্রশ্নের চেয়ে হাঁসের মতো আরও পড়ে। আপনার কাছে কী-মান স্টোরেজ বনাম সম্পর্কিত সম্পর্কিত সুবিধাগুলি এবং অসুবিধাগুলি ভালভাবে উপলব্ধি আছে বলে মনে হয়। তাহলে প্রশ্নটি ঠিক কী?
জ্যাকবিবি

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


5
তবে মঙ্গোডিবি হ'ল ওয়েবস্কেল ! [সতর্কতা: কিছু এনএসএফডাব্লু ভাষা অন্তর্ভুক্ত]
জেরি কফিন

5
@ ডেভওয়ার্ম: আপনি সাধারণভাবে নোএসকিউএল-এর সাথে কী-মান স্টোরগুলিকে ঝাঁকুনি দিয়ে দেখেন না। উদাহরণস্বরূপ গুগলস বিগ টেবিলকে নোএসকিউএল ডাটাবেস হিসাবে বিবেচনা করা হয় তবে আপনি এখনও একাধিক ক্ষেত্রে অনুসন্ধান এবং সূচী তৈরি করতে পারেন। একটি কী-মূল্যের স্টোরটি উপযুক্ত যখন আপনি জানেন যে আপনার কেবলমাত্র একটি একক ক্ষেত্রে (কী) অনুসন্ধান করতে হবে।
জ্যাকবিবি 11:58

উত্তর:


40

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

NoSQL ডাটাবেসে আপনার কেবলমাত্র একটি মানদণ্ড রয়েছে যা আপনি কার্যকরভাবে অনুসন্ধান করতে পারেন - কী।

এটি স্পষ্টভাবে সত্য নয়।

উদাহরণস্বরূপ মঙ্গোডিবি সূচকগুলি সমর্থন করে। ( https://docs.mongodb.org/v3.0/core/indexes-intr پيداوار/ থেকে )

সূচকগুলি মঙ্গোডিবি-তে প্রশ্নের কার্যকর কার্যকারিতা সমর্থন করে। সূচি ব্যতীত, মঙ্গোডিবিকে কোয়েরি স্টেটমেন্টের সাথে মিলে এমন নথিগুলি নির্বাচন করতে অবশ্যই সংগ্রহের প্রতিটি স্ক্রিন অবশ্যই সংগ্রহের স্ক্যান করা উচিত। যদি কোনও প্রশ্নের জন্য উপযুক্ত সূচক উপস্থিত থাকে তবে মংগডিবির সূচীটি অবশ্যই নথিগুলির পরিদর্শন করতে হবে যা এটি অবশ্যই পরিদর্শন করতে পারে limit

সূচীগুলি হ'ল বিশেষ ডেটা স্ট্রাকচার [1] যা সংগ্রহের ডেটার একটি ছোট অংশ সেটকে সহজেই অতিক্রম করতে পারে store সূচী ক্ষেত্রের মান অনুসারে নির্দিষ্ট ক্ষেত্রের বা ক্ষেত্রের সেটের মান সঞ্চয় করে। সূচকের এন্ট্রিগুলির ক্রম কার্যকারিতা সমতা ম্যাচ এবং রেঞ্জ-ভিত্তিক ক্যোয়ারী ক্রিয়াকলাপগুলিকে সমর্থন করে। এছাড়াও, মোঙ্গোডিবি সূচীতে ক্রম ব্যবহার করে বাছাই করা ফলাফলগুলি ফিরিয়ে দিতে পারে।

যেমন কাউচবেস ( http://docs.couchbase.com/admin/admin/Views/views-intro.html থেকে )

কাউচবাস ভিউগুলি ইনডেক্সিং এবং ডেটা অনুসন্ধান করতে সক্ষম করে।

একটি ভিউ সংজ্ঞায়িত বিন্যাস এবং কাঠামো অনুযায়ী ডেটাতে একটি সূচক তৈরি করে। ভিউটিতে কাউচবেসে অবজেক্টগুলি থেকে সরিয়ে নেওয়া নির্দিষ্ট ক্ষেত্র এবং তথ্য রয়েছে।

প্রকৃতপক্ষে যে কোনও কিছু যা নিজেকে কী-ভ্যালু স্টোরের চেয়ে একটি নুএসকিউএল ডাটাবেস বলে তার কিছুটা ইনডেক্সিং স্কিম সমর্থন করা উচিত।

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


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

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

40

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

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

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

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

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


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

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

16

নোএসকিউএল একটি বরং অস্পষ্ট শব্দ, যেহেতু এটি মূলত সমস্ত ডেটাবেস সিস্টেমকে অন্তর্ভুক্ত করে যা সম্পর্কিত নয়।

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

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

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


2
"নোএসকিউএল একটি বরং অস্পষ্ট শব্দ, যেহেতু এটি মূলত সমস্ত ডাটাবেস সিস্টেমকে অন্তর্ভুক্ত করে যা সম্পর্কিত নয়" " - এটা সত্যি না. এটিতে সমস্ত ডাটাবেস সিস্টেম রয়েছে যা এসকিউএল ডাটাবেস নয় covers এমন রিলেশনাল ডাটাবেস রয়েছে যা এসকিউএল ব্যবহার করে না, যেমন রেল এবং টিউটোরিয়াল ডি (ডাটাবেসগুলি যা এসকিউএল "নরমীকরণ" না করে সম্পর্কযুক্ত মডেলটিকে আরও নিবিড়ভাবে অনুসরণ করার জন্য ডিজাইন করা হয়েছে )। হাইপার-রিলেশনাল ডাটাবেস রয়েছে। সত্যই, নোএসকিউএল এর অর্থ "কেবল নয় এসকিউএল", যার অর্থ "স্বয়ংক্রিয়ভাবে এসকিউএল অনুমান করবেন না, আপনার তারিখের কাঠামোর সাথে মেলে এমন সঠিক ডাটাবেস মডেল চয়ন করুন ... যা এসকিউএল হতে পারে খুব ভাল"।
Jörg ডব্লু মিট্টাগ

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

1
@ জার্গডব্লিউমিত্যাগ: নোএসকিউএল শব্দটির কোনও আনুষ্ঠানিক সংজ্ঞা আপনার নয়, তবে সাধারণত এটি সম্পর্কহীন ডাটাবেস সিস্টেমকে বোঝায়। "অনট্রাট সিক্লুএল" ব্যাক্রোনিয়ামটি অনিবার্য হাইপ-ব্যাকল্যাশকে মোকাবিলার জন্য একটি সাম্প্রতিক রেটকন। তবে সাধারণ ব্যবহারে, নোএসকিউএলটি মঙ্গোডিবি, বিগ টেবিল ইত্যাদির মতো সিস্টেমগুলি বর্ণনা করতে ব্যবহৃত হয়, টিউটোরিয়াল ডি (যা এমনকি কোনও ডাটাবেসও নয়) বলে না।
জ্যাকবিবি 12:58

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

সম্পূর্ণ একমত. মনে হচ্ছে NoSQL এর মূল নিদর্শনগুলি হ'ল কী-মান (যেমন রেডিস) ডকুমেন্ট স্টোর (যেমন মোংগো) এবং গ্রাফ (যেমন নিও 4 জে)। আমি আশা করি লোকেরা নোএসকিউএল খালি করবে এবং সেগুলির মধ্যে একটি পদ ব্যবহার করবে।
paj28

10

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

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

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


র‌্যামের মধ্যে 10 টিবি পড়তে কিছুটা সময় লাগে @ ড্যানিয়েল ... কয়েক ঘন্টা বেশ সুন্দর ফলাফল হতে পারে। এটি একটি বিপর্যয় থেকে তুলনামূলকভাবে বিপর্যয় পুনরুদ্ধার করা হবে।
বেন

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

5
এটা ভুল. প্রোগ্রামিং অ্যাপ্রোচ হিসাবে ভাগ করে নেওয়া বছরের পর বছর ধরে বড় আকারের ডেটাবেজে স্ট্যান্ডার্ড এবং কিছু ডাটাবেসগুলি ক্লাস্টারগুলিকে স্বচ্ছভাবে ডেটা ভাগ করে নেওয়ার সাথে সমর্থন করে (ওরাকল আরএসি)। আপনারা কী ভাবেন সব ব্যাংক কাজ করে? এবং একটি যথাযথ সেটআপের সাথে আপনি ব্যাকআপগুলি পুনরুদ্ধার করবেন that এটিকে বাস্তব "2 ডেটা সেন্টার জ্বলিয়ে দেওয়া" দৃশ্যের হিসাবে রেখে দেওয়া হয়েছে। এবং হ্যাঁ, একবার 30tb ডাটাবেসে কাজ করা - আমাদের কোনও সমস্যা হয়নি।
টমটম

হ্যাঁ, রিলেশনাল ডাটাবেসগুলি স্বচ্ছ ডেটা শাড়িং এবং ক্লাস্টারিং করে তবে আপনি পারফরম্যান্স অনুকূলকরণের বিষয়ে যত্নশীল হন তবে এটি খুব ফাঁসযুক্ত বিমূর্ততা।
কার্ল বিলেফেল্ট

5

নোএসকিউএল ডাটাবেসগুলির " এসকিউএল" এর সাথে খুব কম সম্পর্ক রয়েছে ।

তারা স্বীকার করে নেবে যে আপনার কাছে স্কেল এমন একটি ডাটাবেস থাকতে পারে না যা সর্বদা সুসংগত এবং জটিল লেনদেনকে সমর্থন করে এবং তার স্থায়িত্ব রয়েছে।

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

কোনও নোএসকিউএল ডাটাবেসে প্রোগ্রামার প্রচুর সূচী বজায় রাখার জন্য দায়বদ্ধ এবং এটি ধরে নেওয়া হয় যে সূচিগুলি সর্বদা পুরানো হবে।

উদাহরণ স্বরূপ:

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

সত্যিকারের উদাহরণ হিসাবে, অ্যামাজন আমাকে সঠিকভাবে লকটি বেরিয়েছে কিনা তা নিশ্চিত করার জন্য 106 কম্পিউটারের জন্য অপেক্ষা করে ওয়েব পৃষ্ঠাগুলি প্রদর্শনে বিলম্ব করার চেয়ে বইয়ের পুরানো বিবরণ প্রদর্শন করবে।

অতএব .....

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

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

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


এই শেষ টিডবিটটি খুব আকর্ষণীয় - নোএসকিউএল-এর (অ) ব্যবহার সম্পর্কে আগ্রহী পাঠকদের জন্য ক্লিক করার জন্য আপনার কাছে কোনও মেটা এসও সাইটের কোনও লিঙ্ক রয়েছে? ধন্যবাদ!
kcrisman

@ কেসিক্রিম্যান, এক্সপ্লোরের জন্য হাইস্ক্ল্যাবিলিটি / স্ট্যাক-ওভারফ্লো- আর্কিটেকচার দেখুন
আয়ান

2

সম্পর্কিত সম্পর্কিত ডেটাবেসগুলি কার্যকরভাবে ডাতারোর কোনও মান সন্ধান করতে অনুকূলিত।

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


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

-1

ইতিমধ্যে অনেক উত্তর আছে, কিন্তু আমি কেবল আমার সংক্ষিপ্ত যোগ করতে চেয়েছিলাম।

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

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


-2

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

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

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

বেশিরভাগ প্রোগ্রামার জাভাস্ক্রিপ্ট বোঝে এবং বেশিরভাগ প্রোগ্রামার মাঝে মাঝে এসকিউএল এর সাথে লড়াই করে।

কাউচডিবিতে, একটি ভিউ জেএসওএন নথির বিমূর্ত হিসাবে বিবেচনা করা যেতে পারে। ভিউ ডেটা কীভাবে গঠন করা যায় তা আপনার উপর নির্ভর করে (আপনি মূল শ্রেণিবদ্ধ দ্বারা বাঁধা নন)।

আমি অত্যন্ত ট্রানজেকশনাল ডেটার জন্য কাউচডিবি ব্যবহার করব না, তবে একটি অংশ-বিস্ফোরণ ধরণের কাঠামোর সাথে আধা-স্থির তথ্যের জন্য এসকিউএল এর চেয়ে কাজ করা খুব সহজ।

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

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