تفاضل البيانات
في علوم الحاسوب ونظرية المعلومات ، يُعرف تفاضل البيانات أو الضغط التفاضلي بإنتاج وصف تقني للاختلاف بين مجموعتين من البيانات - مصدر وهدف. وبصورة رسمية، تأخذ خوارزمية تفاضل البيانات بيانات المصدر وبيانات الهدف كمدخلات، وتنتج بيانات الفرق بحيث يمكن، بمعرفة بيانات المصدر وبيانات الفرق، إعادة بناء بيانات الهدف (" بدمج بيانات المصدر مع بيانات الفرق لإنتاج بيانات الهدف").
أمثلة
من أشهر الأمثلة على مقارنة البيانات أداة diff ، التي تُنتج فروقًا سطرًا بسطر في ملفات نصية (وفي بعض التطبيقات، ملفات ثنائية ، ما يجعلها أداة مقارنة عامة). تندرج مقارنة الملفات الثنائية العامة تحت مسمى ترميز دلتا ، ومن الأمثلة الشائعة الاستخدام الخوارزمية المستخدمة في rsync . يُعد VCDIFF تنسيقًا قياسيًا عامًا للمقارنة ، وهو مُطبق في أدوات مثل Xdelta الإصدار 3. أما برنامج bsdiff فهو برنامج مقارنة عالي الكفاءة (لملفات التصحيح الصغيرة)، ويستخدم bzip2 كخطوة ضغط نهائية على دلتا المُولّدة. [ 1 ]
مخاوف
تتمثل الشواغل الرئيسية في تفاضل البيانات في سهولة الاستخدام وكفاءة استخدام المساحة (حجم الرقعة).
إذا رغبنا ببساطة في إعادة بناء الهدف انطلاقًا من المصدر والرقعة، فيمكننا تضمين الهدف بالكامل في الرقعة وتطبيقها بحذف المصدر وإخراج الهدف المُضمّن فيها. وبالمثل، إذا كان حجم المصدر والهدف متساويًا، فيمكننا إنشاء رقعة بسيطة بإجراء عملية XOR بينهما. في كلتا الحالتين، سيكون حجم الرقعة مساويًا لحجم الهدف. وكما توضح هذه الأمثلة، إذا كان الهدف الوحيد هو إعادة بناء الهدف، فيمكن القيام بذلك بسهولة، ولكن على حساب حجم رقعة كبير، بينما يكمن الهدف الرئيسي في عمليات التفاضل الثنائي العامة في تقليل حجم الرقعة.
فيما يخص البيانات المنظمة تحديدًا، تبرز اعتبارات أخرى تندرج في معظمها تحت مسمى "سهولة الاستخدام". على سبيل المثال، عند مقارنة مستندين، يرغب المرء عادةً في معرفة الأقسام التي تغيرت، أو ما إذا تم نقل بعض الأقسام، أي يرغب في فهم أوجه الاختلاف بين المستندين. على سبيل المثال: "هنا تم تغيير كلمة 'cat' إلى 'dog'، وتم نقل الفقرة 13 إلى الفقرة 14". قد يرغب المرء أيضًا في الحصول على اختلافات واضحة ، فعلى سبيل المثال، إذا اختلف المستندان A وB في الفقرة 13، فقد يرغب في تطبيق هذا التعديل حتى لو تم تغيير الفقرة 7 من المستند A. ومن الأمثلة على ذلك أداة diff، التي توضح الأسطر التي تغيرت، حيث يسمح تنسيق السياق بالوضوح ويُحسّن سهولة القراءة.
وتشمل المخاوف الأخرى الكفاءة الحسابية، كما هو الحال بالنسبة لضغط البيانات - فالعثور على رقعة صغيرة يمكن أن يستغرق وقتاً طويلاً ويستهلك الكثير من الذاكرة.
تتحقق أفضل النتائج عند معرفة البيانات المراد مقارنتها والقيود الأخرى: صُممت أداة diff لملفات النصوص ذات التنسيق السطري، وخاصةً شفرة المصدر، وهي الأنسب لها؛ أما خوارزمية rsync فتُستخدم بناءً على وجود المصدر والهدف عبر شبكة منفصلة وبطء الاتصال، مما يقلل من حجم البيانات المنقولة؛ وتستخدم تحديثات جوجل كروم خوارزمية مُخصصة لتنسيق الأرشيف والملف التنفيذي لبيانات البرنامج. [ 2 ] [ 3 ]
الاتصال بضغط البيانات
يمكن اعتبار ضغط البيانات حالة خاصة من تفاضل البيانات [ 4 ] [ 5 ] ، حيث يتألف تفاضل البيانات من إنتاج فرق بين مصدر وهدف ، بينما ينتج عن الترقيع هدفٌ بناءً على مصدر وفرق . أما ضغط البيانات فيتألف من إنتاج ملف مضغوط بناءً على هدف، ويتألف فك الضغط من إنتاج هدف بناءً على ملف مضغوط فقط. وبالتالي، يمكن اعتبار ضغط البيانات بمثابة تفاضل بيانات مع بيانات مصدر فارغة، حيث يمثل الملف المضغوط "فرقًا عن لا شيء". وهذا يُشابه اعتبار الإنتروبيا المطلقة (المقابلة لضغط البيانات) حالة خاصة من الإنتروبيا النسبية (المقابلة لتفاضل البيانات) بدون بيانات أولية.
عندما يرغب المرء في التأكيد على العلاقة، يمكنه استخدام مصطلح الضغط التفاضلي للإشارة إلى تفاضل البيانات.
يُقدّم قاموس يترجم بين مصطلحات المجالين على النحو التالي:
| ضغط | التمايز |
|---|---|
| لا أحد | مصدر |
| غير مضغوط | هدف |
| مضغوط | الفرق، دلتا |
| ضغط | التمايز |
| تخفيف الضغط | ترقيع |
مراجع
- ↑ كولين بيرسيفال ، الاختلافات البسيطة في التعليمات البرمجية القابلة للتنفيذ، http://www.daemonology.net/bsdiff/ ، 2003.
- ↑ مدونة كروميوم: الأصغر حجماً أسرع (وأكثر أماناً أيضاً)
- ↑ تحديثات البرامج: Courgette (مشاريع Chromium)
- ↑ RFC 3284
- ↑ كورن، دي جي؛ فو، كي بي (1995)، بي. كريشنامورثي (محرر)، Vdelta: التفاضل والضغط ، برمجيات يونكس عملية قابلة لإعادة الاستخدام، جون وايلي وأولاده
- تفاضل البيانات
