الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نصيحة إكس إم إلّية

مغلق
بدأه BAZRAMIT في 25 أبريل 2003 · 3 رد · 734 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كنت قد امضيت وقتا طويلا في استخدام الملفات من نوع xml التي يرى البعض أنها الطريقة الأمنة ذات الكفاءة في تخزين البيانات الخاصة بطريقة مشابهة للتخزين في أي قاعدة بيانات تجارية.

ولكن حقيقة مؤلمة أفجعتني في الفترة السابقة عندما بدأت أتعامل مع xml بشكل صارخ ولا محدود، وهي أن استخدام xml غير عملي بالمرة بالمقارنة مع قواعد البيانات بالنظر إلى حجم البيانات.

اسمحولي أن أشرح مبسطا المشاكل التي تواجه المعتمدين على xml:

1- عندما يزيد حجم ملفات الـxml تتفتق مشكلة البطء الشديد في معالجة البيانات المتضمنة في الملف. مثلا لو كان حجم الملف 50MB وأردت أن تقوم بتعديل أحد العقد أو الـnodes أو اضافة أخرى الى الملف، وسواء استخدمت أي component أو اعتمدت على الـstreams، فإنك بلا شك ستلاحظ البطء الشديد في النتائج.

2- أجريت تجربة لتحويل ملف نصي csv حجمه 20MBإلى xml وكانت النتيجة أن حجم الملف الـxml تعدى 100MB مما يعني أن حجم البيانات قد تضاعف بشكل غير مقبول على الإطلاق.

3- معظم الـcomponents الموجودة التي تستخدم لمعالجة البيانات في ملفات xml تحمّل كل العقد (nodes) في الذاكرة، وكمثال أنا كنت أستخدم Microsoft XML DOM، ووجدت أن الذاكرة تتعرض لضغط شديد جدا في حالة استحضار بيانات الـxml.

بعد تجارب عديدة ومضنية وصلت مع xml إلى طريق مسدود، فحين أحتاج لمعالجة البيانات بدون اسراف في الذاكرة ألجأ إلى الـstreams ويصيبني احباط من البطء الشديد. وعندما أقرر استخدام الذاكرة يصيبني الإحباط من البطء+الإسراف المبالغ فيه. وعند التخزين النهائي تنهار أعصابي من الحجم غير المقبول للملفات، وعلى هذا أظن بإمكاني أن أنصح الجميع بأن لا يستخدموا xml إلا في الحالات الأتية:

1- أن يكون حجم البيانات المراد تخزينها صغير نسبيا (مثلا تخزين التفضيلات الخاصة بالمستخدم).

2- أو تكون البيانات شبه ثابتة لن تتغير في كل حين (كالبيانات التي تستنبط من قاعدة بيانات شهرية)

3- أو أن يكون لا سبيل أخر غير استخدام الـxml (لا يوجد مثال على ذلك).

#2

XML is not a real database in terms of storage capabilities and should not be used for that purpose.It is a vehicle for exchanging data between applications .For instance ,a client application might get a list of products in xml format by sending a sql query to SQL Server (Through IIS) ,while another client application is acting as an XML web service consumer .

In both scenarios, the language in which the applications are developed has no importance ,it can be J2EE (Java) , or .NET as long as the format is XML

Madani

#3

madani,

Exchanging small amount of data between distributed applications does not require that the data should be in XML. Imagine you have a query result from a data source that extends to more than million records, which would be more efficient, a XML file or a CSV one?

Not because there are a lot of tools and propaganda for the XML, we should use it. I feel comfortable when dealing with CSV files even though it requires more coding, but only for one thing, its effeciency compared to XML.

As I tried to put it, if the amount of data is small, and requires special format like webservices, then it is nice to know how to use XML. But if the server-client archeticture is completely between the developers crunch, and no one dictates what to use, then I think it is better for one to use other resources.

#4

بالفعل xml ليست قواعد بيانات ولكن هي لغة تخاطب بين التطبيقات وانا جربت استخدامها كقاعدة بيانات صغيرة ونجحت .

هذا الموضوع مغلق.

مواضيع مشابهة