আপনি সম্ভবত অনেকগুলি অনুমান করছেন বলে মনে হচ্ছে, সম্ভবত আপনার এসভিএন এবং সিভিএসের সাথে আপনার অভিজ্ঞতার ভিত্তিতে।
গিট এবং মার্কুরিয়াল মূলত এসভিএন এবং সিভিএসের মতো
গিট এবং সিভিএসের তুলনা করা একটি আইপ্যাড এবং একটি আটারি তুলনা করার মতো। ডিনোয়াররা যখন পৃথিবীতে ঘোরাফেরা করছিল তখন সিভিএস আবার তৈরি হয়েছিল । সাবভার্সন মূলত সিভিএসের একটি উন্নত সংস্করণ। ধরে নিচ্ছি যে আধুনিক সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলি যেমন গিট এবং মার্কুরিয়াল তাদের মতো কাজগুলি খুব কম বোঝায়।
একটি রিলেশনাল ডাটাবেস একক-উদ্দেশ্যমূলক ডাটাবেসের চেয়ে বেশি দক্ষ
কেন? সম্পর্কিত ডেটাবেসগুলি সত্যই জটিল, এবং একক-উদ্দেশ্যমূলক ডাটাবেসের মতো দক্ষ নাও হতে পারে। আমার মাথার উপরের অংশ থেকে কিছু পার্থক্য:
- সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলিকে জটিল লকিংয়ের দরকার নেই, যেহেতু আপনি একই সময়ে একাধিক কমিট করতে পারবেন না।
- স্থানীয় ডাটাবেস রেপোর সম্পূর্ণ অনুলিপি হওয়ায় বিতরণযোগ্য সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলি অত্যন্ত চূড়ান্ত দক্ষ দক্ষ হওয়া দরকার।
- সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলিকে কেবল কয়েকটি নির্দিষ্ট উপায়ে ডেটা সন্ধান করা প্রয়োজন (লেখক দ্বারা, রিভিশন আইডি দ্বারা, কখনও কখনও পূর্ণ-পাঠ্য অনুসন্ধানে)। আপনার নিজস্ব ডেটাবেস তৈরি করা যা লেখক / পুনর্বিবেচনার ID অনুসন্ধানগুলি পরিচালনা করতে পারে তা তুচ্ছ এবং পূর্ণ-পাঠ্য অনুসন্ধানগুলি আমি যে কোনও সম্পর্কযুক্ত ডাটাবেসে চেষ্টা করেছি তা খুব দ্রুত নয়।
- সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলির একাধিক প্ল্যাটফর্মগুলিতে কাজ করা দরকার। এটি এমন একটি ডেটাবেস ব্যবহার করা আরও শক্ত করে তোলে যা ইনস্টল করা এবং পরিষেবা হিসাবে চলমান (মাইএসকিউএল বা পোস্টগ্রিএসকিউএল এর মতো) প্রয়োজন।
- আপনার স্থানীয় মেশিনে সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলি কেবল তখনই চালিত হওয়া দরকার যখন আপনি কিছু করছেন (প্রতিশ্রুতির মতো)। আপনি যদি কোনও প্রতিশ্রুতিবদ্ধতা করতে চান কেবল তখনই সমস্ত সময় মাইএসকিউএল এর মতো একটি পরিষেবা ছেড়ে যাওয়া অব্যর্থ।
- বেশিরভাগ ক্ষেত্রে, সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলি কখনও ইতিহাস মুছতে চায় না, কেবল এতে যুক্ত করুন end এটি বিভিন্ন অপ্টিমাইজেশান এবং সততা রক্ষার বিভিন্ন পদ্ধতির দিকে পরিচালিত করতে পারে।
সম্পর্কিত সম্পর্কিত ডাটাবেসগুলি নিরাপদ
আবার কেন? আপনি ধরে নিয়েছেন বলে মনে হচ্ছে যেহেতু ডেটা ফাইলগুলিতে সঞ্চিত আছে, গিট এবং মার্কুরিয়ালের মতো সংস্করণ নিয়ন্ত্রণ ব্যবস্থাতে পারমাণবিক কমিটি নেই , তবে তারা তা করে। রিলেশনাল ডাটাবেস এছাড়াও ফাইল হিসেবে তাদের ডাটাবেস সংরক্ষণ করি। এখানে উল্লেখযোগ্য যে সিভিএস পারমাণবিক প্রতিশ্রুতি দেয় না , তবে সম্ভবত এটি অন্ধকার যুগের, এ কারণে নয় যে তারা সম্পর্কিত ডেটাবেস ব্যবহার করে না।
ডেটাবেসে একবার ডেটা দুর্নীতির হাত থেকে রক্ষা করার বিষয়টিও ছিল এবং আবার উত্তরটি একই same যদি ফাইল সিস্টেমটি দূষিত হয় তবে আপনি কোন ডাটাবেস ব্যবহার করছেন তা বিবেচ্য নয়। যদি ফাইল সিস্টেমটি দূষিত না হয় তবে আপনার ডাটাবেস ইঞ্জিনটি নষ্ট হয়ে যেতে পারে। আমি দেখতে পাচ্ছি না যে কোনও সংস্করণ নিয়ন্ত্রণ ডেটাবেস কেন এটি আপেক্ষিক ডাটাবেসের চেয়ে বেশি ঝুঁকিতে থাকবে।
আমি যুক্তি দিয়ে বলতে পারি যে বিতরণিত সংস্করণ নিয়ন্ত্রণ ব্যবস্থা (যেমন গিট এবং মার্কুরিয়াল) আপনার ডাটাবেসকে কেন্দ্রিয়ায়িত সংস্করণ নিয়ন্ত্রণের চেয়ে সুরক্ষিত করার জন্য ভাল, যেহেতু আপনি কোনও ক্লোন থেকে পুরো রেপো পুনরুদ্ধার করতে পারেন। সুতরাং, যদি আপনার কেন্দ্রীয় সার্ভারটি স্বতঃস্ফূর্তভাবে আপনার সমস্ত ব্যাকআপের সাথে দহন করে তবে আপনি git init
এটি কোনও নতুন বিকাশকারীর মেশিনgit push
থেকে নতুন সার্ভারে চালিয়ে পুনরুদ্ধার করতে পারেন ।
চাকা পুনর্নির্মাণ খারাপ
যেহেতু আপনি কোনও স্টোরেজ সমস্যার জন্য একটি সম্পর্কিত ডেটাবেস ব্যবহার করতে পারেন তার অর্থ এই নয় যে আপনার উচিত । আপনি কেন কোনও রিলেশনাল ডাটাবেসের পরিবর্তে কনফিগারেশন ফাইল ব্যবহার করেন? আপনি যখন কোনও রিলেশনাল ডাটাবেসে ডেটা সংরক্ষণ করতে পারতেন তখন ফাইল সিস্টেমে চিত্র কেন সংরক্ষণ করবেন? আপনি যখন কোনও আপেক্ষিক ডাটাবেসে সমস্ত সংরক্ষণ করতে পারতেন তখন আপনার কোডটি ফাইল সিস্টেমে রাখবেন কেন?
"আপনার সমস্ত কিছু যদি হাতুড়ি হয় তবে সবকিছুই পেরেকের মতো দেখাচ্ছে" "
এও আছে যে ওপেন সোর্স প্রকল্পগুলি যখনই সুবিধাজনক তখন চাকাটিকে পুনরায় সজ্জিত করতে পারে , যেহেতু বাণিজ্যিক প্রকল্পগুলির মতো ধরণের সংস্থানীয় সীমাবদ্ধতা আপনার নেই। আপনার যদি এমন কোনও স্বেচ্ছাসেবক আছেন যিনি ডাটাবেস লেখার ক্ষেত্রে বিশেষজ্ঞ, তবে কেন সেগুলি ব্যবহার করবেন না?
কেন আমরা রিভিশন কন্ট্রোল সিস্টেমগুলির লেখকদের বিশ্বাস করব যে তারা কী করছে তা জানার জন্য .. আমি অন্যান্য ভিসিএসের পক্ষে কথা বলতে পারি না, তবে আমি লিনাস টরভাল্ডস ফাইল সিস্টেমগুলি বুঝতে পেরে বেশ আত্মবিশ্বাসী ।
কিছু বাণিজ্যিক সংস্করণ নিয়ন্ত্রণ ব্যবস্থা কেন তখন আপেক্ষিক ডাটাবেস ব্যবহার করে?
সম্ভবত নিম্নলিখিতগুলির কিছু সংমিশ্রণ:
- কিছু বিকাশকারী ডাটাবেস লিখতে চান না ।
- বাণিজ্যিক সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলির বিকাশকারীদের হাতে সময় এবং সংস্থান সীমাবদ্ধতা রয়েছে, তাই তারা ইতিমধ্যে যা চান তার কাছাকাছি যখন কিছু থাকে তখন তারা একটি ডেটাবেস লেখার সামর্থ রাখে না। এছাড়াও, বিকাশকারীগুলি ব্যয়বহুল এবং ডেটাবেস বিকাশকারীরা (যেমন হিসাবে, ডাটাবেসগুলি লেখেন এমন লোকেরা) সম্ভবত আরও ব্যয়বহুল, কারণ বেশিরভাগ লোকের মধ্যে এ জাতীয় অভিজ্ঞতা নেই।
- বাণিজ্যিক সংস্করণ নিয়ন্ত্রণ ব্যবস্থার ব্যবহারকারীরা ইতিমধ্যে একটি রিলেশনাল ডাটাবেস সেটআপ এবং চালনার ওভারহেড সম্পর্কে যত্ন নেওয়ার পক্ষে কম সম্ভাবনা রয়েছে।
- বাণিজ্যিক সংস্করণ নিয়ন্ত্রণ সিস্টেমের ব্যবহারকারীরা তাদের পুনর্বিবেচনার ডেটা ব্যাক করে একটি রিলেশনাল ডাটাবেস চান বলে সম্ভবত এটি তাদের প্রক্রিয়াগুলির সাথে আরও ভালভাবে সংহত হতে পারে (উদাহরণস্বরূপ ব্যাকআপের মতো)।