আমি কখন এসকিউএল এর পরিবর্তে এক্সএমএল ব্যবহার করব? [বন্ধ]


102

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

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


5
আমি মনে করি প্রশ্নটি আরও সঠিকভাবে এক্সএমএল বনাম একটি আরডিবিএমএস, বনাম এসকিউএল নয়।
জাল


5
আমি মনে করি প্রশ্নটি আরও সঠিকভাবে ফাইল বনাম একটি আরডিবিএমএস, এক্সএমএল বনাম এসকিউএল নয়।
পিফিডস

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

উত্তর:


101

এই বইয়ের উদ্ধৃতি দিতে (কার্যকর এক্সএমএল: আপনার এক্সএমএলকে উন্নত করার 50 টি নির্দিষ্ট উপায়):

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

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


4
আমি বুঝতে পারি যে এই উত্তরটি ২০০৮ সালে লেখা হয়েছিল, তবে প্রচুর ফাইল-ভিত্তিক ডাটাবেস সিস্টেমের আবির্ভাবের সাথে আমি নিজেকে ভাবছি যে তারা প্রচুর পরিস্থিতিতে প্রচলিত আরডিবিএমএসের চেয়ে বেশি জ্ঞান অর্জন করে কিনা। এসকিউএল অন্ধকার যুগে ডিজাইন করা হয়েছিল যখন ডিস্কের স্থান ব্যয়বহুল ছিল এবং এটি সফ্টওয়্যার শিল্পের মধ্যে চিন্তার একটি উপায় হয়ে দাঁড়িয়েছে। এর অর্থ এই নয় যে এটি আধুনিক পদ্ধতির ক্ষেত্রে সঠিক।
25:38

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

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

যদি আমি ডেটা পুনরুদ্ধার করতে একটি এসকিউএল এসপি লিখি এবং এক্সএসএলটি ফাইলের পরিবর্তে প্রদর্শন করার জন্য এইচটিএমএল ব্যবহার করি তবে এটি দ্রুত বা কেবল একই রকম?
SearchForKnowledge

4
আজকাল আপনি এক্সএমএল ডাটাবেসগুলির জন্য এক্সকিউরি ব্যবহার করতে পারেন।
ডন দিলঙ্গা

23

অন্যান্য অ্যাপ্লিকেশনগুলিতে প্রেরণ করা দরকার এমন ফাইলগুলি তৈরি করতে এক্সএমএল ব্যবহার করুন। এক্সএমএল ডেটা স্টোরেজ ফরম্যাটের চেয়ে ডেটা ইন্টারচেঞ্জ ফর্ম্যাট হিসাবে বেশি উপযুক্ত।

এক্সএমএল ব্যবহার করার সময় নিম্নলিখিত লিঙ্কটি বর্ণনা করা খারাপ নয়: কেন আমি এক্সএমএল ব্যবহার করব?


২০১২-০৯-০6 হিসাবে লিঙ্ক আপডেট: xml.silmaril.ie/index.html
12:41 এ মুছুন

15

এসকিউএল হ'ল ভাল ট্যাবুলার ডেটা - এমন ডেটা যা সহজেই সারি এবং কলামগুলিতে ফিট করে। এক্সএমএল হায়ারারিকাল ডেটা - এমন ডেটার জন্য ভাল যা বিভিন্ন আকারের বিভিন্ন স্তরের রয়েছে।

এসকিউএল স্টোরেজ এবং অনুসন্ধানের জন্য ভাল। এক্সএমএল প্রেরণ ও ফর্ম্যাট করার জন্য ভাল।


10

1) যখন আপনাকে অন্যদের সাথে আপনার ডেটা এক্সচেঞ্জ করতে হয়। এক্সএমএল হ'ল ওয়েবে " লিঙ্গুয়া ফ্র্যাঙ্কা " - প্রায় সকলেই একটি ডাটাবেস ফাইলের বিপরীতে এটি পড়তে এবং ব্যাখ্যা করতে পারে।

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

3) যখন আপনার কাছে অনেক লেখক একই ডেটা অ্যাক্সেস করার চেষ্টা করবেন না। এসকিউএল ডাটাবেসগুলিতে জড়িত রয়েছে একযোগী ব্যবস্থা যা আপনার জন্য পর্দার আড়ালে কাজ করছে। এসকিউএল ডাটাবেসগুলি বৃহত ডেটা সেটগুলিতে তথ্য পুনরুদ্ধারের জন্য সূচকগুলিকে সহায়তা করতে পারে ...


5

আমি এক্সএমএল যে জিনিসগুলির জন্য ব্যবহার করি:

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

এই ব্যবহারের ক্ষেত্রে এবং একটি ডাটাবেসের ব্যবহারের ক্ষেত্রে পুরোটা ওভারল্যাপ হয় না। কিছু, কিন্তু বেশি না।

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

সুতরাং এখানে এমন একটি কেস দেখা যাচ্ছে যা দেখে মনে হচ্ছে যে আমি এক্সএমএলটিকে একটি ডেটাবেস হিসাবে ব্যবহার করছি। তবে আমি আসলেই না। আমি একটি অবজেক্ট মডেল ব্যবহার করছি যা অনেকগুলি ডাটাবেসের মতো কার্যকারিতা বাস্তবায়নের জন্য ঘটে এবং আমি এক্সএমএলকে তার অধ্যবসায় বিন্যাস হিসাবে ব্যবহার করি।


3

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

সুতরাং আমার উত্তর হবে .. যখন ডেটা মেমরি রাখা যথেষ্ট পরিমাণে ছোট, একটি ডাটাবেস কিল শেষ।



1

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

পূর্ববর্তী পোস্টার হিসাবে উল্লিখিত, একটি ইন্টারচেঞ্জ ফর্ম্যাট।


1

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

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

আরডিএমএস (ডাটাবেসগুলি) সাধারণত আরও স্কেলযোগ্য, বৃহত্তর সংমিশ্রণ সমর্থন সরবরাহ করে এবং বিপুল পরিমাণে ডেটা নিয়ে কাজ করার সময় আরও দ্রুত হয়। রিলেশনাল মডেলটি পরে আমার তথ্য ডেটা করা সহজ করে। ডাটাবেসগুলি অবজেক্ট-রিলেশনাল ইম্পিডেন্স ম্যাচ ম্যাচ ( http://en.wikedia.org/wiki/Object-Relational_impedance_mismatch ) দ্বারা ভুগতে পারে যার জন্য আপনাকে কুৎসিত কোড লিখতে বা জটিল ওআরএম ব্যবহার করতে হতে পারে।


1

আমি যদি আমার হোস্টে মাইএসকিএল ডাটাবেসগুলি সীমিত রাখি তবে আমি এক্সএমএমএলকে ডেটাস্টোর হিসাবে ব্যবহারের সুযোগটি দেখতে পাব I


1

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

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

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

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



0

আমি আমার ডেটা সংরক্ষণ করার জন্য কোনও ধরণের এক্সএমএল ব্যবহার করব না

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

এইভাবে আপনার এসকিউএল স্ট্রিং প্রজন্মটি আপনার অ্যাপ্লিকেশনটিতে একটি জিলিয়ন বস্তুর উপরে বিতরণ করা হবে না। রক্ষণাবেক্ষণ অনেক সহজ করে তোলে।


"সমস্ত বস্তু এক্সএসএলটিতে একে অপরের ডেটা প্রেরণ করে," সিরিয়াসলি?
গোরান

যারা সার্ভিস বাসে যোগাযোগ করছেন তারা সবাই।
ট্রাব

এক্সএসএলটি হ'ল এক্সএমএলকে তথ্য বহন না করার পরিবর্তনের জন্য ভাষা। আমি ভাবছি আপনি এক্সএসএলটি ডেটা প্রেরণের জন্য এটি এক্সএমএলের একটি উপসেট হিসাবে ব্যবহার করতে পারেন তবে আপনি কেন চান?
গোরান

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