سلامة البيانات — التحقق والتحقق من الصحة
| English | العربية |
|---|---|
| integrity/ɪnˈteɡrɪti/ | الموثوقية |
| validation/ˌvælɪˈdeɪʃn/ | التحقق من صحة |
| verification/ˌverɪfɪˈkeɪʃn/ | التحقق |
| range check/reɪndʒ tʃek/ | فحص النطاق |
| check digit/tʃek ˈdɪdʒɪt/ | رقم التحقق |
| double entry/ˈdʌbl ˈentri/ | التدقيق المزدوج |
| parity check/ˈpærɪti tʃek/ | فحص التكافؤ |
| checksum/ˈtʃeksəm/ | مجموع التحقق |
| cyclic redundancy check/ˈsaɪklɪk rɪˈdʌndənsi tʃek/ | فحص التكرار الدائري |
| parity block check/ˈpærɪti blɒk tʃek/ | فحص كتلة التكافؤ |
كل رقم اجتاز كل فحص
- في سبتمبر 1999، أطلقت ناسا مركبة مدارية للمارس محركها للدخول المدار ولم تُسمع منها مرة أخرى. كانت قد طارت على ارتفاع أقل بـ 170 كم من المخطط وقد احترقت.
- أنتجت برمجيات أحد الفريق قيم دفع بوحدة ثانية-باوند-فورس؛ بينما كانت البرمجيات المستقبلة تتوقع نيوتن-ثانية. كانت كل قيمة رقماً سليماً في نطاق معقول. كانت كل قيمة خاطئة بعامل قدره 4.45.
- لم يكن بإمكان أي فحص تنسيقي أن يلتفت له، لأن البيانات لم تكن مشوهة. كانت ببساطة ليست ما تدعي أنه عليه. $327 مليون.
- هذه الدرس هي العائلتان من الفحوصات اللتين تحمي النزاهة: التحقق من صحة البيانات، الذي يسأل عما إذا كانت البيانات معقولة، والتحقق من الصحة، الذي يسأل عما إذا تم نسخه بشكل صحيح. والفجوة بينهما التي سقط فيها المريخ.
سؤالان
- تمتلك البيانات النزاهة عندما تكون دقيقة ومتساملة وكاملة.
- التحقق من الصحة هو فحص تلقائي يتأكد من أن البيانات المدخلة معقولة وتتبع القواعد المحددة. يسأل: هل هذا معقول؟
- التحقق من الصحة يتأكد من أن البيانات تم إدخالها أو نقلها بشكل صحيح، عن طريق مقارنتها بالمصدر أو بقيمة重新 المحسوبة. يسأل: هل تم نسخ هذا بشكل صحيح؟
- لا يثبت أي منهما صحة البيانات. كلاهما مطلوب.
مختبر مفاهيم الحوسبة.
صنّف الأمثلة المحددة حسب الفكرة الحاسوبية التي تمثلها.
طرق التحقق من الصحة
| الفحص | القاعدة | المثال |
|---|---|---|
| فحص النطاق | بين حدَين | الشهر يكون من 1 إلى 12 |
| فحص الحد | على جانب واحد من حد مفرد | العمر ≥ 18 |
| فحص الوجود (الاستعلام) | القيمة موجودة في قائمة أو جدول | رمز المنتج موجود |
| فحص الطول | العدد الصحيح من الأحرف | رمز بريدي يتكون من 6 أحرف |
| فحص النوع / نوع الحرف | النوع الصحيح للبيانات | حقل الهاتف يسمح بالأرقام فقط |
| فحص التنسيق | يطابق نمطاً معيناً | بريد إلكتروني يحتوي على @ |
| فحص الوجود | الحقول المطلوبة ليست فارغة | تم إدخال اسم |
| رقم التحقق | رقم إضافي يتم حسابه بناءً على الأرقام الأخرى | أرقام ISBN، أرقام البطاقات |
التحقق من أن شهر تم إدخاله يقع بين 1 و12 هو:
يؤكد فحص النطاق أن القيمة تقع ضمن حدود معقولة.
صل كل نوع من فحوصات التحقق بغرضه.
الحضور = غير فارغ؛ التنسيق = يطابق نمطًا؛ رقم التحقق = محسوب للكشف عن الأرقام المكتوبة بشكل خاطئ.
رقم إضافي محسوب من البقية للكشف عن رقم مكتوب بشكل خاطئ (كما في أرقام ISBN وأرقام البطاقات) هو ______ رقم.
يتم إعادة حساب رقم التحقق من الباقي ومقارنته، مما يكشف عن معظم أخطاء الرقم الواحد وتبديل الأرقام.
مثال محلول: حدد نوع الفحص الذي ينجزه الوصف الزائف
| الوصف الزائف | الفحص |
|---|---|
IF x < 0 OR x > 10 THEN OUTPUT "Invalid" |
فحص النطاق: بين حدَين |
IF x = "" THEN OUTPUT "Invalid" |
فحص الوجود: ليس فارغاً |
IF NOT(x = "Red" OR x = "Yellow" OR x = "Blue") THEN OUTPUT "Invalid" |
فحص الوجودية (البحث): واحد ضمن قائمة |
IF LENGTH(x) <> 6 THEN OUTPUT "Invalid" |
فحص الطول: ستة أحرف |
IF MID(x, 1, 1) < "A" OR MID(x, 1, 1) > "Z" THEN OUTPUT "Invalid" |
فحص التنسيق: الحرف الأول حرف أبجدي |
- تسجيل سيارة يتكون من حرف واحد، وثلاثة أرقام وحرفين يحتاج إلى فحص تنسيقي لكل موقع وفحص طول لستة أحرف. تاريخ الميلاد يحتاج إلى فحص تنسيقي (
DD/MM/YYYY)، وفحص نطاق (الشهر بين 1 و12، والسنة ليس في المستقبل) وفحص وجود.
صل كل سطر من الكود الوهمي بنوع فحص التحقق الذي ينجزه.
اختبار الفراغ = الحضور؛ عدّ الأحرف = الطول؛ حدان = النطاق؛ قائمة من القيم المسموحة = الوجود أو البحث.
مثال محلول: رقم التحقق وما يفتقده
- مخطط بسيط: رقم التحقق هو الباقي عند قسمة مجموع الأرقام على 10، ويُضاف إلى الرقم.
4162له مجموع أرقام 13، لذا يُخزن كـ41623. - يدخل المستخدم
41523: المجموع الآن 12، يجب أن يكون رقم التحقق 2، لذا فإن الخطأ يُكتشف. - يدخل المستخدم
14623: تم تبديل أول رقمين، لكن المجموع لا يزال 13، لذا يتطابق رقم التحقق ولا يُكتشف الخطأ. المخططات الحقيقية (مثل ISBN وأرقام البطاقات) تعطي وزناً لكل موقع بحيث يؤدي التبديل إلى تغيير النتيجة.
ما لا تستطيع التحقق منه عملية التحقق
- تكتشف عملية التحقق البيانات التي تكون منسقة بشكل خاطئ أو خارج النطاق.
- لا يمكنها اكتشاف البيانات التي لها الصيغة الصحيحة ولكنها خاطئة واقعياً. تم إدخال
BobعنBibاجتاز جميع الفحوصات؛ وكذلك فعلت كل مركبة الدفع المُرسلة إلى المريخ. - لهذا الغرض، تحتاج إلى التحقق من المصدر، وشخص يقرأ ما كتبه.
لماذا يمكن لفحوصات التحقق أن تسمح بمرور بيانات خاطئة؟
فحوصات التحقق تتأكد من الشكل وليس الحقيقة — فالقيمة الصحيحة تنسيقياً لكن الخاطئة واقعياً تمر.
التحقق أثناء إدخال البيانات
- الإدخال المزدوج: يتم إدخال البيانات مرتين، إما بواسطة نفس الشخص أو بواسطة شخصين، ويقوم الكمبيوتر بمقارنة النسختين وإبلاغ أي اختلاف. يُعد إنشاء كلمة مرور جديدة مثالاً شائعاً على ذلك.
- الفحص البصري: يقارن الشخص ما يظهر على الشاشة بالمستند الأصلي ويصحح أي اختلاف قبل الحفظ.
- كلاهما يحمي سلامة البيانات من خلال ضمان تطابق البيانات المخزنة مع المصدر.
طلب من المستخدم كتابة كلمة مرور جديدة مرتين هو مثال على:
التدقيق المزدوج يقارن نسختين مُدخلتين للتحقق من صحة إدخال البيانات.
التحقق أثناء نقل البيانات
- يمكن أن تنقلب البتات أثناء النقل. تضيف فحص التكافؤ بتاً إضافياً واحداً لكل بايت بحيث يكون عدد 1s زوجياً (تكافؤ زوجي) أو فردياً؛ يقوم المستقبل بإعادة العد، إذا انقلب بت واحد يفشل العد.
- مجموع التحقق هو قيمة يتم حسابها من كتلة بيانات بواسطة خوارزمية وإرسالها معها؛ يعيد المستقبل حسابها ويقارنها. يعمل نقل ملفات الفيديو من الكاميرا إلى الخادم بهذه الطريقة: عدم التطابق يعني إعادة الإرسال.
- فحص redundancy الدوري (CRC) هو مجموع تحقق أقوى يستخدم القسمة متعددة الحدود، مما يلتقط أنماط أخطاء أكثر بكثير.

بت إضافي واحد يجعل عدد 1s زوجياً؛ البت المنقلب يكسر هذا التوازن

احسب، أرسل، أعد الحساب، قارن
يعمل فحص التكافؤ عن طريق:
يجعل بت التكافؤ عدد 1s زوجياً أو فردياً؛ ويقوم المستقبل بإعادة العد للكشف عن خطأ في بت واحد.
أي من التالي يعتبر طرق تحقق تُستخدم أثناء نقل البيانات؟ حدد كل ما ينطبق.
يعيد حساب التكافؤ ورقم التحقق قيمة عند الطرف المستقبل. أما التدقيق المزدوج والفحص البصري فيتم أثناء إدخال البيانات.
يكشف فحص تكافؤ البايت عن كل خطأ محتمل في نقل ذلك البايت.
تترك البتات المقلوبة عدد 1 دون تغيير، لذا تمر. يكتشف التكافؤ أخطاء بت واحد بشكل موثوق فقط.
مثال محلول: كتلة تكافؤ تحدد مكان البت
- فحص كتلة التكافؤ يرتب البايتات في شبكة: كل بايت يحمل بت تكافؤ الصف، وبايت تكافؤ إضافي واحد يحمل تكافؤ الأعمدة للبايتات التي فوقه.
- تُرسل أربعة بايتات بتكافؤ زوجي، يليها بايت التكافؤ. عد 1s في كل صف وعمود: بايت 3 يحتوي على خمسة وأعمدة 4 تحتوي على ثلاثة، وكلاهما فردي.
- البت عند تقاطع ذلك الصف وذلك العمود هو الذي تغير، لذا يتم إعادته من 1 إلى 0. يكشف بت التكافؤ الواحد عن الخطأ؛ بينما تحدد كتلة التكافؤ مكانه وتصححه.

صف واحد خاطئ، عمود واحد خاطئ: البت موجود عند التقاطع
رتب خطوات فحص كتلة التكافؤ.
الكشف في الصفوف والكشف في الأعمدة، التقاطع يحدد الموقع، والقلب يصحح الخطأ. هذا ما تضيفه الكتلة مقارنة ببت تكافؤ واحد.
مثال محلول: أي فحص يلتقط أي خطأ
- يكتب المستخدم تاريخ ميلاده
31/02/2009، ثم يكتب بريد إلكتروني مرتين. أي فحص يكشف كل خطأ، وما الفرق بينهما؟ - التحقق من صحة (Validation): فحص تنسيق أو نطاق يرفض
31/02/2009، لأن شهر فبراير لا يحتوي على 31 يومًا أبدًا. يختبر الكمبيوتر القيمة مقابل قاعدة ما. - التحقق من الصحة (Verification): الإدخال المزدوج يقارن البريد الإلكترونيين ويبلغ عن عدم تطابق إذا اختلفا. يقارن الكمبيوتر نسختين، وقد يقبل عنوانًا خاطئًا كُتب بشكل متطابق مرتين.
- يسأل التحقق من صحة ما إذا كانت البيانات معقولة؛ ويسأل التحقق من الصحة ما إذا تم إدخالها بشكل صحيح.

*معقول، أو تم نسخه بشكل صحيح: سؤالان مختلفان
أي عبارة صحيحة؟
فحوصات التحقق تختبر المعقولية ضد القواعد؛ وفحوصات التحقق من الصحة تختبر أن البيانات أُدخلت/نقلت دون تغيير.
فحوصات التحقق من الصحة تثبت أن البيانات نُسخَت أو أُدخلت دون تغيير — ولكن ليس أن القيمة صحيحة واقعياً.
التدقيق المزدوج/أرقام التحقق تثبت وصول البيانات دون تغيير؛ فقط إنسان أو فحص متقاطع يمكنه تأكيد أنها حقيقية فعلاً.
علامات ضائعة
- رقم التحقق هو تحقق من صحة عند الإدخال؛ والزوجية ومجموع التحقق يتحققان من النقل. لا تصنفهما تحت العنوان الخاطئ.
- لا يثبت أي منهما أن البيانات صحيحة. يقول التحقق من الصحة "معقول"؛ ويقول التحقق من الصحة "يطابق المصدر".
- يفشل فحص زوجية البايت في اكتشاف بتين معكوسين في نفس البايت، لأنه يتم إلغاؤهما. قل "أخطاء البت الواحد".
- التشفير إجراء أمني. لا يقدم أي حماية لنزاهة البيانات.
لقد فهمت الأمر
- التحقق من صحة = قواعد تلقائية عند الإدخال: النطاق، الحد، الوجود، الطول، النوع، التنسيق، الحضور، رقم التحقق؛ لا يمكنه اكتشاف القيم ذات التنسيق الصحيح ولكن الخاطئة
- التحقق عند الإدخال = الإدخال المزدوج وفحص بصري؛ عند النقل = توافق parity (بايت أو كتلة)، مجموع التحقق checksum، CRC
- كتلة التوافق تحدد موقع البت المعكوس عند تقاطع الصف والعمود الفاشلين
- التحقق يسأل "معقول؟"؛ التحقق من الصحة يسأل "تم نسخه بشكل صحيح؟"؛ لا أي منهما يسأل "صحيح؟"