এক্সএমএল ডেটা স্টোরেজ হিসাবে ব্যবহার করা [বন্ধ]


12

আমি এক্সএমএল ফর্ম্যাট এবং নীচের উদ্ধৃতি সম্পর্কে ভাবছিলাম:

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

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

ব্যক্তিগতভাবে, আমি দ্বিমত পোষণ করি এবং app.configএকটি প্রোগ্রামের সেটিংস সঞ্চয় করতে NET এর ফাইলটি এক্সএমএল ফাইলে ডেটা সঞ্চয় করার উদাহরণ। তবে কনফিগারেশন ইত্যাদির চেয়ে ডাটাবেসের জন্য এক্সএমএল ব্যবহার করা উচিত নয়।

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

সুতরাং আমার প্রশ্নটি হ'ল এটি কি এখনও একটি বৈধ বিবৃতি এবং এটি এখন এক্সএমএল ব্যবহার করে ডেটা সঞ্চয় করা গ্রহণযোগ্য?

সম্পাদনা: আমি তার ইনপুট / অতিরিক্ত প্রসঙ্গে জিজ্ঞাসা করার জন্য সেই উক্তিটির লেখককে একটি ইমেল পাঠিয়েছি।


11
একটি ডাটাবেস ডেটা সংরক্ষণ করার বিষয়ে নয় তবে প্রদত্ত মানদণ্ডে ডেটা পাওয়ার জন্য। এক্সএমএল সহজেই স্কেল করে না - আপনার বর্ণিত ডেটা সহ 100 গিগাবাইট এক্সএমএল ফাইলটি ব্যবহারের চেষ্টা করুন।

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

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

উত্তর:


12

এই উদ্ধৃতিটি এক্সএমএলটিকে সাধারণভাবে স্টোরেজ ফর্ম্যাট হিসাবে ব্যবহার করার বিষয়ে নয় (যার জন্য এটি প্রয়োজনীয়, তার উপর নির্ভর করে ভাল) তবে ডাটাবেস- টাইপ স্টোরেজগুলির ক্ষেত্রে।

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

এক্সএমএল, তবে, এই প্রয়োজনীয়তাগুলি সত্যিই ফিট করে না। নেস্টেড ট্যাগ কাঠামোর কারণে, ফাইলটিতে একটি নির্দিষ্ট মান সঞ্চিত আছে তা নির্ধারণ করা অসম্ভব (কোনও ফাইলকে একটি বাইট অফসেটের শর্তে) পুরো ডকুমেন্ট ট্রি না রেখে ম্যাচ পর্যন্ত অন্তত ম্যাচ পর্যন্ত। একটি রিলেশনাল ডাটাবেস সূচী রয়েছে, এবং একটি সূচীতে একটি মান সন্ধান করে, এমনকি একটি আদিম বাইনারি-অনুসন্ধান প্রয়োগকরণ সহ, একটি একক ও (লগ এন) অনুসন্ধান এবং তারপরে প্রকৃত মানগুলি পাওয়া ফাইল-সন্ধান ছাড়া কিছুই নয় (উদাঃ fseek(data_file_handle, row_index * row_size)), যা ও (1)। একটি এক্সএমএল ফাইলে, সর্বাধিক দক্ষ উপায় হ'ল আপনার ডকুমেন্টের উপর স্যাক্স পার্সার চালানো, আপনার আসল ডেটাতে পৌঁছানোর আগে ভয়ঙ্কর প্রচুর পড়া এবং সন্ধান করা; আপনি সূচকগুলি ব্যবহার না করে আপনি ও (এন) এর চেয়ে কমই এর চেয়ে ভাল আর কিছু পেতে পারেন, তবে তারপরে আপনাকে প্রতিটি সন্নিবেশের জন্য পুরো সূচকটি পুনর্নির্মাণ করতে হবে (নীচে দেখুন)।

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

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


21

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

<foobar>42</foobar>

অন্যদিকে, একটি সত্যিকারের ডাটাবেস 4 বাইট গ্রহণ করে এটি একটি একক পূর্ণসংখ্যার মান হিসাবে সংরক্ষণ করবে। আপনার ডাটাবেস যদি ছোট হয় তবে এর অর্থ খুব বেশি নয়, তবে আপনার যদি 10,000 টি রেকর্ড থাকে তবে এটি একটি সমস্যা।

দ্বিতীয়ত, প্রতিবার ফাইলটি পড়ার সময় একটি এক্সএমএল পাঠ্য থেকে বিশ্লেষণ করতে হয়। উপরের ক্ষেত্রের জন্য, একটি আসল ডাটাবেস কেবল অফসেট থেকে বাইনারি ডেটা পড়তে পারে এটি এটি জানে যে এটি "foobar" ক্ষেত্রটি সংরক্ষণ করেছে the এটি কোন ক্ষেত্রটি নির্ধারণ করুন, তারপরে "42" স্ট্রিংটি পার্স করুন এবং এটিকে বাইনারি 42 এ রূপান্তর করুন।

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

একটি ব্যতিক্রম হ'ল কনফিগারেশন ফাইলগুলি, যা সাধারণত ছোট হয় এবং সাধারণত মানুষের দ্বারা সম্পাদনাযোগ্য হওয়া দরকার।

কোনও এক্সএমএল ডাটাবেস হ'ল যে কোনও যুক্তিসঙ্গত এসকিউএল সিস্টেমের চেয়ে বড় এবং ধীর হবে। আপনি যদি মানুষের পঠনযোগ্যতা বা আন্তঃব্যবহারযোগ্যতার ক্ষেত্রে কাউন্টার ব্যালেন্সিং সুবিধা না পান তবে ডেটা সঞ্চয় করার জন্য এটি ব্যবহার করার কোনও মানে নেই।


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

@ ডেভ: তবে আপনি যদি সেই আকারের অঞ্চলে হন তবে "মানব সম্পাদনযোগ্য" বিভাগে এক্সএমএল ফর্ম্যাটটি উল্লেখযোগ্যভাবে হারাবে।
জোচিম সউর

আরও বেশি সমস্যাটি হাইলাইট করার জন্য, "1000000000" মানটি স্টোর করা সত্যই ডিবিতে 4 বাইট হবে, যখন এক্সএমএলে 27 বাইট থাকবে।
ড্যানিয়েল বি

8

এক্সএমএল প্রসঙ্গে নির্ভরযোগ্য। যদি আপনার ডেটাটি স্থিতিশীল হয় এবং খুব বেশি পরিবর্তন হয় না (উদাহরণস্বরূপ নমুনা ডেটা), হ্যাঁ এক্সএমএল একটি ভাল ব্যবহার।

কনফিগারেশন সেটিংস, নমুনা ডেটা (যদিও এটি কয়েক মিলিয়ন সারি, তবে খুব কমই পরিবর্তিত হয়), এটি এক্সএমএল এর ভাল ব্যবহার।

হার্ড ডিস্ক পড়া / লেখাগুলি ব্যয়বহুল, একটি ওরাকল / এসকিউএল স্ট্যাক থেকে ডেটা অ্যাক্সেস করার চেয়ে আরও বেশি উপায়।


7

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

আপনার ভিত্তি ত্রুটিযুক্ত।

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

এটি স্পষ্ট যে একটি সেটিংস ফাইল ডেটাবেস হিসাবে একই জিনিস নয়, এবং তাই বিভিন্ন প্রযুক্তি (এবং করা উচিত?) ব্যবহার করা যেতে পারে।

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


4

এটি সত্যই বিষয়গত। সেই উক্তিটি হ'ল, কারও মতামত, মানুষ।

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

কটাক্ষপাত dasBlog এবং BlogEngine । এই দুটি অ্যাপ্লিকেশনই ডিফল্ট হিসাবে স্টোরেজের জন্য এক্সএমএল ব্যবহার করে।

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


উদ্ধৃতিটি আসলে একটি বইয়ের। আমার এটি যোগ করা উচিত
কিয়ান

2
"কম উপরি?" আমি মনে করি আপনার অর্থ "কোনও ইনস্টলেশন দরকার নেই"। একটি বড় এক্সএমএল ফাইলে ডেটা অ্যাক্সেস করার বিশাল সময়, আই / ও, এবং প্রসেসরের ওভারহেড থাকে। হ্যাঁ, এক্সএমএল ছোট জিনিসগুলির জন্য ভাল (<1MB), তবে না, এক্সএমএল সাধারণভাবে কম অস্থিরতার ডেটার জন্য ভাল নয়, কেবল সাধারণভাবে ছোট জিনিস।
গ্লেনপিটারসন

দুর্দান্ত লেবোউস্কি উপাসনা!
ইনভিজিবলপান্ডা

1

আমার প্রশ্ন হ'ল এটি কি এখনও একটি বৈধ বিবৃতি এবং এটি এখন এক্সএমএল ব্যবহার করে ডেটা সংরক্ষণ করা গ্রহণযোগ্য?

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

আমি দেখতে পাচ্ছি যে আপনি বিবৃতিটি ধূসর রঙে উপস্থাপন করেছেন, আপনি যদি কোনও সফ্টওয়্যার সিস্টেম হিসাবে কোনও ডেটাবেসকে সংজ্ঞায়িত করেন তবে তা বৈধ এবং সঠিক।

এক্সএমএল- সংজ্ঞাতে এক্সএমএলের সংজ্ঞায় বলা হয়েছে যে "(এক্সএমএল) এমন একটি মার্কআপ ভাষা যা মানব-পঠনযোগ্য এবং মেশিন-পঠনযোগ্য উভয় বিন্যাসে ডকুমেন্টগুলি এনকোডিংয়ের জন্য নিয়মের একটি সেটকে সংজ্ঞায়িত করে।"

এই সংজ্ঞাটি ডেটা পরিচালনা করার পদ্ধতির চেয়ে পাঠযোগ্যতা এবং ভাষার উপর দৃষ্টি নিবদ্ধ করে ।

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

উপরেরটি এক্সএমএল এর অভাবের একটি গণনা নয়, পরিবর্তে এটি এক্সএমএল কোনও ডাটাবেস সফ্টওয়্যার নয় বলে বিবৃতিটির দ্রুত সমর্থনযোগ্যতা হিসাবে সার্ভার করতে পারে ।


1

এক্সএমএল কখনই ডেটাবেস বা এটিকে প্রতিস্থাপনের উদ্দেশ্যে বোঝায় না।

এক্সএমএলটি মূলত ওয়েব নথিগুলির জন্য সংজ্ঞায়িত করা হয় যে allows for the creation of customized tags for individual information fields.যাইহোক, আপনি কখনই এটির সাথে সম্পর্কের কেন্দ্রিয় ডেটা ম্যানেজমেন্ট অর্জন করতে পারবেন না।


0

আপনি কেন প্রথম স্থানে ডেটা সংরক্ষণের জন্য এক্সএমএলটি ব্যবহার করতে চান ? আমি বলতে চাইছি, এটি সর্বোপরি একটি ভাষা ...

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


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

1
তথ্য সংরক্ষণের জন্য প্রাকৃতিক ভাষা ব্যবহার করা নিজেই সমস্যাযুক্ত নয়, তবে প্রকৃতপক্ষে পাঠ্যযোগ্যতা, তথ্য দক্ষতা এবং বিষয়বস্তুর অনুপাতের তথ্য হ'ল এমন ফর্ম্যাটতে ডেটা সংরক্ষণ করা যা স্বতন্ত্রভাবে ভয়ঙ্কর সরবরাহ করে।
zxcdw

0

সংক্ষিপ্ত উত্তর: এটি নির্ভর করে।

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

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


0

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

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


0

শব্দটি ডাটাবেসটি কেবলমাত্র কাঁচা ডেটা বা ডেটাবেস পরিচালনা ব্যবস্থাকে বোঝাতে পারে। এই সংজ্ঞাটি পুরো যুক্তিতে একটি বড় পার্থক্য করে।

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

উপরের অর্থে, না, এক্সএমএল কোনও ডাটাবেস নয় এবং আপনার এটি হিসাবে ব্যবহার করার চেষ্টা করা উচিত নয়।

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

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

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

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


0

আমি সম্মতি জানাই যে এটি কোনও সম্পর্কিত ডেটাবেস নয়। আমি মনে করি লেখক এটিকে এক হিসাবে ব্যবহার না করার জন্য উদ্ধৃতিতে কেবল বলছেন।

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

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

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

এই অর্থে আপনি অন্য যে কোনও কিছুর চেয়ে কন্টেন্ট ম্যানেজমেন্টের মতো কাজ করছেন।

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